# SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2026 Bryan Joshua Pedini # tests/unit/data/rpm/db.bash - the fake rpm database (sourced by fakes/rpm/rpm). # Shaped after discovery/rpm.md sections 4-5 (EL9): the fixture packages incl. the # SU_FIXTURE_EXTRAS su-dummy-d (file dep, versioned dep, rich dep, rpmlib()), plus a small # glibc/bash base (REQUIRENAME values carry no version, like rpm's; rich deps are whole) whose glibc carries the "(glibc-gconv-extra ... if redhat-rpm-config)" rich dep. # shellcheck shell=bash disable=SC2034 declare -A ARCH=( [su-dummy-a]=noarch [su-dummy-b]=noarch [su-dummy-c]=x86_64 [su-dummy-d]=noarch [bash]=x86_64 [glibc]=x86_64 [glibc-gconv-extra]=x86_64 [glibc-common]=x86_64 [basesystem]=noarch [setup]=noarch [filesystem]=x86_64 [ncurses-libs]=x86_64 [redhat-rpm-config]=noarch [rpm]=x86_64 [gnutls]=x86_64 [vim-minimal]=x86_64 [kernel-core]=x86_64 [ca-certificates]=noarch [curl]=x86_64 ) # installed versions ("epoch:version-release" or "version-release"); kernel-core is installonly (two versions) declare -A EVR=( [su-dummy-a]=1.0-1 [su-dummy-b]=1.0-1 [su-dummy-c]=1.0-1 [su-dummy-d]=1.0-1 [bash]=5.1.8-9.el9 [glibc]=2.34-275.el9_8 [glibc-gconv-extra]=2.34-275.el9_8 [glibc-common]=2.34-275.el9_8 [basesystem]=11-13.el9 [setup]=2.13.7-10.el9 [filesystem]=3.16-5.el9 [ncurses-libs]=6.2-12.20210508.el9 [redhat-rpm-config]=210-1.el9 [rpm]=4.16.1.3-40.el9 [gnutls]=3.8.10-4.el9_8 [vim-minimal]=2:8.2.2637-26.el9_8.21 [kernel-core]='5.14.0-570.1.el9 5.14.0-611.5.el9' [ca-certificates]=2025.2.80_v9.0.305-91.el9 [curl]=8.18.0-1.fc44 ) declare -A SUMMARY=( [su-dummy-a]='skeptical-updater dummy su-dummy-a (v1.0)' [su-dummy-b]='skeptical-updater dummy su-dummy-b (v1.0)' [su-dummy-c]='skeptical-updater dummy su-dummy-c (v1.0)' [su-dummy-d]='skeptical-updater dummy su-dummy-d (v1.0)' [bash]='The GNU Bourne Again shell' [glibc]='The GNU libc libraries' ) declare -A REQUIRES=( [su-dummy-a]=$'su-dummy-b\nrpmlib(CompressedFileNames)\nrpmlib(FileDigests)' [su-dummy-b]=$'rpmlib(CompressedFileNames)\nrpmlib(FileDigests)' [su-dummy-c]=$'rpmlib(CompressedFileNames)' [su-dummy-d]=$'su-dummy-a\n/bin/sh\nsu-dummy-b\n(su-dummy-c if su-dummy-b)\nrpmlib(CompressedFileNames)' [bash]=$'/usr/bin/sh\nfilesystem\nlibc.so.6()(64bit)\nlibc.so.6(GLIBC_2.34)(64bit)\nlibtinfo.so.6()(64bit)\nrtld(GNU_HASH)' [glibc]=$'(glibc-gconv-extra(x86-64) = 2.34-275.el9_8 if redhat-rpm-config)\nbasesystem\nglibc-common' [glibc-gconv-extra]=$'glibc(x86-64)' [glibc-common]=$'/usr/bin/sh\nglibc' [basesystem]=$'filesystem\nsetup' [setup]=$'system-release' [filesystem]=$'/bin/sh\nsetup' [ncurses-libs]=$'libc.so.6()(64bit)\nrtld(GNU_HASH)' [redhat-rpm-config]=$'rpm\n/usr/bin/sh' [rpm]=$'/usr/bin/sh\nlibc.so.6()(64bit)' ) declare -A PROVIDES=( [su-dummy-a]=su-dummy-a [su-dummy-b]=su-dummy-b [su-dummy-c]=$'su-dummy-c\nsu-dummy-c(x86-64)' [su-dummy-d]=su-dummy-d [bash]=$'bash\nbash(x86-64)\nconfig(bash)' [glibc]=$'glibc\nglibc(x86-64)\nlibc.so.6()(64bit)\nlibc.so.6(GLIBC_2.34)(64bit)\nrtld(GNU_HASH)' [glibc-gconv-extra]=$'glibc-gconv-extra\nglibc-gconv-extra(x86-64)' [glibc-common]=glibc-common [basesystem]=basesystem [setup]=setup [filesystem]=filesystem [ncurses-libs]=$'ncurses-libs\nlibtinfo.so.6()(64bit)' [redhat-rpm-config]=redhat-rpm-config [rpm]=rpm ) # FAKE_RPM_NO_D=1: su-dummy-d (which requires every dummy) is not installed declare -A FILES=( [su-dummy-a]=/usr/share/su-dummy/su-dummy-a [su-dummy-b]=/usr/share/su-dummy/su-dummy-b [su-dummy-c]=/usr/share/su-dummy/su-dummy-c [su-dummy-d]=/usr/share/su-dummy/su-dummy-d [bash]=$'/bin/sh\n/usr/bin/bash\n/usr/bin/sh' [glibc]=/usr/lib64/libc.so.6 ) if [[ -n ${FAKE_RPM_NO_D:-} ]]; then unset 'EVR[su-dummy-d]'; fi