rpm-software-management / dnf5

Next-generation RPM package management system
Other
255 stars 86 forks source link

Optional metadata are not used even though they are downloaded #520

Closed jan-kolarik closed 1 year ago

jan-kolarik commented 1 year ago

Having no metadata present on the system after running a dnf5 command, f.e. search, the necessary fresh metadata are downloaded from the remote repositories. When subsequently running some other command, which needs some additional metadata like FILELISTS for repoclosure, metadata are being downloaded and are apparently stored on the system as observing with the ls command, but they are probably not complete or in incorrect state, because the command reports different results than when running it on the system without any metadata present before.

I am providing an example below which was discovered during the review of https://github.com/rpm-software-management/dnf5/pull/500 and it requires the changes from this PR.

Output of the dnf5 repoclosure command when fresh metadata are present before on the system, but FILELISTS are missing:

package: amg4psblas-openmpi-1.1.0-5.fc38.i686 from fedora
  unresolved deps (4):
    libpsb_base.so.3.8(openmpi-i386)
    libpsb_cbind.so.3.8(openmpi-i386)
    libpsb_krylov.so.3.8(openmpi-i386)
    libpsb_prec.so.3.8(openmpi-i386)
package: amg4psblas-openmpi-devel-1.1.0-5.fc38.i686 from fedora
  unresolved deps (1):
    psblas3-openmpi-devel(x86-32) >= 3.7.1
package: buildnumber-maven-plugin-1.3-24.fc38.noarch from fedora
  unresolved deps (11):
    mvn(org.apache.maven.scm:maven-scm-api)
    mvn(org.apache.maven.scm:maven-scm-manager-plexus)
    mvn(org.apache.maven.scm:maven-scm-provider-bazaar)
    mvn(org.apache.maven.scm:maven-scm-provider-clearcase)
    mvn(org.apache.maven.scm:maven-scm-provider-cvsexe)
    mvn(org.apache.maven.scm:maven-scm-provider-gitexe)
    mvn(org.apache.maven.scm:maven-scm-provider-hg)
    mvn(org.apache.maven.scm:maven-scm-provider-perforce)
    mvn(org.apache.maven.scm:maven-scm-provider-starteam)
    mvn(org.apache.maven.scm:maven-scm-provider-svn-commons)
    mvn(org.apache.maven.scm:maven-scm-provider-svnexe)
package: clang10-libs-10.0.0-16.fc38.i686 from fedora
  unresolved deps (2):
    libLLVM-10.so
    libLLVM-10.so(LLVM_10)
package: clang10-libs-10.0.0-16.fc38.x86_64 from fedora
  unresolved deps (2):
    libLLVM-10.so()(64bit)
    libLLVM-10.so(LLVM_10)(64bit)
package: clazy-1.11-4.fc38.x86_64 from fedora
  unresolved deps (1):
    clang(major) = 15
package: coin-or-Bonmin-1.8.8-12.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: coin-or-Cbc-2.10.5-12.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: coin-or-Couenne-0.5.8-11.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: coin-or-Ipopt-3.14.9-2.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: coin-or-Ipopt-mpich-3.14.9-2.fc38.i686 from fedora
  unresolved deps (2):
    libasl.so.3
    libmp.so.3
package: coin-or-Ipopt-openmpi-3.14.9-2.fc38.i686 from fedora
  unresolved deps (2):
    libasl.so.3
    libmp.so.3
package: coin-or-OS-2.10.3-5.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: dkms-3.0.10-3.fc38.noarch from fedora
  unresolved deps (1):
    (kernel-lpae-devel-matched if kernel-lpae-core)
package: dmlite-apache-httpd-1.15.2-13.fc38.i686 from fedora
  unresolved deps (2):
    httpd-mmn = 20120211x8632
    mod_ssl(x86-32)
package: dmlite-apache-httpd-1.15.2-15.fc38.i686 from updates
  unresolved deps (2):
    httpd-mmn = 20120211x8632
    mod_ssl(x86-32)
package: dnstwist-20230413-2.fc38.noarch from updates
  unresolved deps (1):
    (python3dist(selenium) >= 3.141.0 if chromedriver)
package: ghdl-0.38~dev-16.20201208git83dfd49.fc37.x86_64 from fedora
  unresolved deps (1):
    libgnat-12.so()(64bit)
package: ghdl-llvm-0.38~dev-16.20201208git83dfd49.fc37.x86_64 from fedora
  unresolved deps (1):
    libgnat-12.so()(64bit)
package: ghdl-mcode-0.38~dev-16.20201208git83dfd49.fc37.x86_64 from fedora
  unresolved deps (1):
    libgnat-12.so()(64bit)
package: glusterfs-resource-agents-11.0-1.fc38.noarch from fedora
  unresolved deps (1):
    /usr/lib/ocf/resource.d
package: gnome-keyring-42.1-3.fc38.x86_64 from fedora
  unresolved deps (1):
    /usr/libexec/gcr-ssh-askpass
package: golang-github-caddyserver-caddy-1-devel-1.0.4-11.fc38.noarch from fedora
  unresolved deps (1):
    golang(github.com/mholt/certmagic-0.8)
package: golang-github-ipfs-cid-devel-0.1.0-2.fc37.noarch from fedora
  unresolved deps (1):
    golang(github.com/multiformats/go-multihash)
package: golang-honnef-js-dom-devel-0-0.13.20210113gitd4405f7.fc38.noarch from fedora
  unresolved deps (1):
    golang(github.com/gopherjs/gopherjs/js)
package: golang-nanomsg-mangos-3-devel-3.2.1-9.fc38.noarch from fedora
  unresolved deps (1):
    golang(github.com/gdamore/optopia)
package: gridsite-3.0.0-0.24.20180202git2fdbc6f.fc38.i686 from fedora
  unresolved deps (1):
    httpd-mmn = 20120211x8632
package: kata-containers-3.0.1-1.fc38.1.x86_64 from fedora
  unresolved deps (1):
    /usr/libexec/virtiofsd
package: krb5-server-1.20.1-8.fc38.x86_64 from fedora
  unresolved deps (1):
    /usr/share/dict/words
package: krb5-tests-1.20.1-8.fc38.x86_64 from fedora
  unresolved deps (1):
    /usr/share/dict/words
package: libebml-devel-1.4.4-2.fc38.i686 from fedora
  unresolved deps (1):
    /usr/lib/cmake
package: libebml-devel-1.4.4-2.fc38.x86_64 from fedora
  unresolved deps (1):
    /usr/lib64/cmake
package: libmatroska-devel-1.7.1-2.fc38.i686 from fedora
  unresolved deps (1):
    /usr/lib/cmake
package: libmatroska-devel-1.7.1-2.fc38.x86_64 from fedora
  unresolved deps (1):
    /usr/lib64/cmake
package: librem-2.12.0-1.fc38.i686 from fedora
  unresolved deps (1):
    libre.so.14
package: librem-2.12.0-1.fc38.x86_64 from fedora
  unresolved deps (1):
    libre.so.14()(64bit)
package: lightsquid-1.8-32.fc38.noarch from fedora
  unresolved deps (1):
    /usr/share/lightsquid/common.pl
package: lightsquid-apache-1.8-32.fc38.noarch from fedora
  unresolved deps (1):
    /usr/share/lightsquid/common.pl
package: linphone-3.6.1-50.fc38.i686 from fedora
  unresolved deps (2):
    libortp.so.9
    ortp(x86-32) >= 1:0.22.0
package: linphone-3.6.1-50.fc38.x86_64 from fedora
  unresolved deps (2):
    libortp.so.9()(64bit)
    ortp(x86-64) >= 1:0.22.0
package: linphone-devel-3.6.1-50.fc38.i686 from fedora
  unresolved deps (1):
    pkgconfig(ortp)
package: linphone-devel-3.6.1-50.fc38.x86_64 from fedora
  unresolved deps (1):
    pkgconfig(ortp)
package: linphone-mediastreamer-3.6.1-50.fc38.i686 from fedora
  unresolved deps (1):
    libortp.so.9
package: linphone-mediastreamer-3.6.1-50.fc38.x86_64 from fedora
  unresolved deps (1):
    libortp.so.9()(64bit)
package: linphone-mediastreamer-devel-3.6.1-50.fc38.i686 from fedora
  unresolved deps (2):
    ortp-devel(x86-32)
    pkgconfig(ortp)
package: linphone-mediastreamer-devel-3.6.1-50.fc38.x86_64 from fedora
  unresolved deps (2):
    ortp-devel(x86-64)
    pkgconfig(ortp)
package: mingw32-qt6-qtbase-6.4.2-2.fc38.x86_64 from fedora
  unresolved deps (1):
    qt6-qtbase-devel = 6.4.2
package: mingw32-qt6-qtdeclarative-6.4.2-2.fc38.noarch from fedora
  unresolved deps (1):
    qt6-qtdeclarative-devel = 6.4.2
package: mingw32-qt6-qtshadertools-6.4.2-2.fc38.noarch from fedora
  unresolved deps (1):
    qt6-qtshadertools-devel = 6.4.2
package: mingw32-qt6-qttools-6.4.2-2.fc38.x86_64 from fedora
  unresolved deps (1):
    qt6-qttools-devel = 6.4.2
package: mingw64-qt6-qtbase-6.4.2-2.fc38.x86_64 from fedora
  unresolved deps (1):
    qt6-qtbase-devel = 6.4.2
package: mingw64-qt6-qtdeclarative-6.4.2-2.fc38.noarch from fedora
  unresolved deps (1):
    qt6-qtdeclarative-devel = 6.4.2
package: mingw64-qt6-qtshadertools-6.4.2-2.fc38.noarch from fedora
  unresolved deps (1):
    qt6-qtshadertools-devel = 6.4.2
package: mingw64-qt6-qttools-6.4.2-2.fc38.x86_64 from fedora
  unresolved deps (1):
    qt6-qttools-devel = 6.4.2
package: mod_nss-1.0.17-16.fc38.x86_64 from fedora
  unresolved deps (1):
    /usr/lib64/libnssckbi.so
package: mp-devel-3.1.0-41.20200303git7fd4828.fc38.i686 from fedora
  unresolved deps (3):
    libasl.so.3
    libmp.so.3
    mp(x86-32) = 3.1.0-41.20200303git7fd4828.fc38
package: netbox-2.11.10-5.fc38.noarch from fedora
  unresolved deps (1):
    python3dist(drf-yasg[validation])
package: olpc-utils-6.0.6-10.fc38.i686 from fedora
  unresolved deps (1):
    xorg-x11-drv-sisusb
package: php-deepend-Mockery-0.9.11-10.fc38.noarch from fedora
  unresolved deps (1):
    (php-composer(hamcrest/hamcrest-php) >= 1.1 with php-composer(hamcrest/hamcrest-php) < 2)
package: php-laminas-di-2.6.1-10.fc38.noarch from fedora
  unresolved deps (1):
    (php-autoloader(laminas/laminas-code) >= 3.0 with php-autoloader(laminas/laminas-code) < 4)
package: php-laminas-mvc-form-1.2.0-4.fc38.noarch from fedora
  unresolved deps (1):
    (php-autoloader(laminas/laminas-code) >= 3.5.1 with php-autoloader(laminas/laminas-code) < 4)
package: php-ocramius-proxy-manager-2.2.3-8.fc38.noarch from fedora
  unresolved deps (1):
    (php-autoloader(zendframework/zend-code) >= 3.3 with php-autoloader(zendframework/zend-code) < 4)
package: python3-aioguardian-1.0.4-8.fc38.noarch from fedora
  unresolved deps (3):
    (python3.11dist(async-timeout) < 4~~ with python3.11dist(async-timeout) >= 3.0.1)
    (python3.11dist(asyncio-dgram) < 2~~ with python3.11dist(asyncio-dgram) >= 1.0.1)
    (python3.11dist(voluptuous) < 0.13~~ with python3.11dist(voluptuous) >= 0.11.7)
package: python3-cle-9.0.9572-4.fc37.noarch from fedora
  unresolved deps (1):
    python3.11dist(pyvex) = 9.0.9572
package: python3-pyvex-9.2.32-2.fc38.x86_64 from fedora
  unresolved deps (1):
    python3.11dist(archinfo) = 9.2.32
package: python3-scrapy-2.6.1-4.fc38.noarch from fedora
  unresolved deps (2):
    python3-pydispatcher
    python3.11dist(pydispatcher) >= 2.0.5
package: rocm-opencl-5.4.3-1.fc38.x86_64 from fedora
  unresolved deps (1):
    comgr(rocm) = 5.4
package: rt-5.0.3-4.fc38.noarch from fedora
  unresolved deps (2):
    /usr/share/fonts/google-droid-sans-fonts/DroidSans.ttf
    /usr/share/fonts/google-droid-sans-fonts/DroidSansFallbackFull.ttf
package: rubygem-bundler-doc-2.3.25-2.fc38.noarch from fedora
  unresolved deps (1):
    rubygem-bundler = 2.3.25-2.fc38
package: rubygem-rdoc-doc-6.4.0-203.fc38.noarch from fedora
  unresolved deps (1):
    rubygem-rdoc = 6.4.0-203.fc38
package: rubygems-doc-3.3.25-202.fc38.noarch from fedora
  unresolved deps (1):
    ruby(rubygems) = 3.3.25-202.fc38
package: rust-picky-asn1-x509+widestring-devel-0.7.0-3.fc38.noarch from fedora
  unresolved deps (1):
    (crate(widestring/alloc) >= 0.5.1 with crate(widestring/alloc) < 0.6.0~)
package: rust-reedline+clipboard-devel-0.16.0-1.fc38.noarch from fedora
  unresolved deps (1):
    (crate(clipboard/default) >= 0.5.0 with crate(clipboard/default) < 0.6.0~)
package: rust-reedline+sqlite-devel-0.16.0-1.fc38.noarch from fedora
  unresolved deps (1):
    (crate(rusqlite/bundled) >= 0.28.0 with crate(rusqlite/bundled) < 0.29.0~)
package: rust-rsa+nightly-devel-0.5.0-3.fc38.noarch from fedora
  unresolved deps (1):
    crate(num-bigint-dig/nightly) >= 0.7.0
package: sng-1.1.0-16.fc38.x86_64 from fedora
  unresolved deps (1):
    /usr/share/X11/rgb.txt
package: sqlninja-0.2.999-0.19.alpha1.fc38.noarch from fedora
  unresolved deps (16):
    /usr/share/sqlninja/backscan.pl
    /usr/share/sqlninja/bruteforce.pl
    /usr/share/sqlninja/dirshell.pl
    /usr/share/sqlninja/dns.pl
    /usr/share/sqlninja/escalation.pl
    /usr/share/sqlninja/fingerprint.pl
    /usr/share/sqlninja/getdata.pl
    /usr/share/sqlninja/icmp.pl
    /usr/share/sqlninja/metasploit.pl
    /usr/share/sqlninja/resurrectxp.pl
    /usr/share/sqlninja/revshell.pl
    /usr/share/sqlninja/session.pl
    /usr/share/sqlninja/sqlcmd.pl
    /usr/share/sqlninja/test.pl
    /usr/share/sqlninja/upload.pl
    /usr/share/sqlninja/utils.pl
package: studio-controls-2.1.0-7.fc38.noarch from fedora
  unresolved deps (1):
    jack-audio-connection-kit-example-clients
package: terminus-fonts-console-4.49.1-21.fc38.noarch from fedora
  unresolved deps (1):
    /usr/lib/kbd
package: twincam-0.5.4-6.fc38.x86_64 from fedora
  unresolved deps (2):
    libcamera-base.so.0.0.3()(64bit)
    libcamera.so.0.0.3()(64bit)
Error: Repoclosure ended with unresolved dependencies (125) across 80 packages.

Output of the dnf5 repoclosure command when no metadata are present before on the system:

package: amg4psblas-openmpi-1.1.0-5.fc38.i686 from fedora
  unresolved deps (4):
    libpsb_base.so.3.8(openmpi-i386)
    libpsb_cbind.so.3.8(openmpi-i386)
    libpsb_krylov.so.3.8(openmpi-i386)
    libpsb_prec.so.3.8(openmpi-i386)
package: amg4psblas-openmpi-devel-1.1.0-5.fc38.i686 from fedora
  unresolved deps (1):
    psblas3-openmpi-devel(x86-32) >= 3.7.1
package: buildnumber-maven-plugin-1.3-24.fc38.noarch from fedora
  unresolved deps (11):
    mvn(org.apache.maven.scm:maven-scm-api)
    mvn(org.apache.maven.scm:maven-scm-manager-plexus)
    mvn(org.apache.maven.scm:maven-scm-provider-bazaar)
    mvn(org.apache.maven.scm:maven-scm-provider-clearcase)
    mvn(org.apache.maven.scm:maven-scm-provider-cvsexe)
    mvn(org.apache.maven.scm:maven-scm-provider-gitexe)
    mvn(org.apache.maven.scm:maven-scm-provider-hg)
    mvn(org.apache.maven.scm:maven-scm-provider-perforce)
    mvn(org.apache.maven.scm:maven-scm-provider-starteam)
    mvn(org.apache.maven.scm:maven-scm-provider-svn-commons)
    mvn(org.apache.maven.scm:maven-scm-provider-svnexe)
package: clang10-libs-10.0.0-16.fc38.i686 from fedora
  unresolved deps (2):
    libLLVM-10.so
    libLLVM-10.so(LLVM_10)
package: clang10-libs-10.0.0-16.fc38.x86_64 from fedora
  unresolved deps (2):
    libLLVM-10.so()(64bit)
    libLLVM-10.so(LLVM_10)(64bit)
package: clazy-1.11-4.fc38.x86_64 from fedora
  unresolved deps (1):
    clang(major) = 15
package: coin-or-Bonmin-1.8.8-12.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: coin-or-Cbc-2.10.5-12.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: coin-or-Couenne-0.5.8-11.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: coin-or-Ipopt-3.14.9-2.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: coin-or-Ipopt-mpich-3.14.9-2.fc38.i686 from fedora
  unresolved deps (2):
    libasl.so.3
    libmp.so.3
package: coin-or-Ipopt-openmpi-3.14.9-2.fc38.i686 from fedora
  unresolved deps (2):
    libasl.so.3
    libmp.so.3
package: coin-or-OS-2.10.3-5.fc38.i686 from fedora
  unresolved deps (1):
    libasl.so.3
package: dkms-3.0.10-3.fc38.noarch from fedora
  unresolved deps (1):
    (kernel-lpae-devel-matched if kernel-lpae-core)
package: dmlite-apache-httpd-1.15.2-13.fc38.i686 from fedora
  unresolved deps (2):
    httpd-mmn = 20120211x8632
    mod_ssl(x86-32)
package: dmlite-apache-httpd-1.15.2-15.fc38.i686 from updates
  unresolved deps (2):
    httpd-mmn = 20120211x8632
    mod_ssl(x86-32)
package: dnstwist-20230413-2.fc38.noarch from updates
  unresolved deps (1):
    (python3dist(selenium) >= 3.141.0 if chromedriver)
package: ghdl-0.38~dev-16.20201208git83dfd49.fc37.x86_64 from fedora
  unresolved deps (1):
    libgnat-12.so()(64bit)
package: ghdl-llvm-0.38~dev-16.20201208git83dfd49.fc37.x86_64 from fedora
  unresolved deps (1):
    libgnat-12.so()(64bit)
package: ghdl-mcode-0.38~dev-16.20201208git83dfd49.fc37.x86_64 from fedora
  unresolved deps (1):
    libgnat-12.so()(64bit)
package: golang-github-caddyserver-caddy-1-devel-1.0.4-11.fc38.noarch from fedora
  unresolved deps (1):
    golang(github.com/mholt/certmagic-0.8)
package: golang-github-ipfs-cid-devel-0.1.0-2.fc37.noarch from fedora
  unresolved deps (1):
    golang(github.com/multiformats/go-multihash)
package: golang-honnef-js-dom-devel-0-0.13.20210113gitd4405f7.fc38.noarch from fedora
  unresolved deps (1):
    golang(github.com/gopherjs/gopherjs/js)
package: golang-nanomsg-mangos-3-devel-3.2.1-9.fc38.noarch from fedora
  unresolved deps (1):
    golang(github.com/gdamore/optopia)
package: gridsite-3.0.0-0.24.20180202git2fdbc6f.fc38.i686 from fedora
  unresolved deps (1):
    httpd-mmn = 20120211x8632
package: librem-2.12.0-1.fc38.i686 from fedora
  unresolved deps (1):
    libre.so.14
package: librem-2.12.0-1.fc38.x86_64 from fedora
  unresolved deps (1):
    libre.so.14()(64bit)
package: linphone-3.6.1-50.fc38.i686 from fedora
  unresolved deps (2):
    libortp.so.9
    ortp(x86-32) >= 1:0.22.0
package: linphone-3.6.1-50.fc38.x86_64 from fedora
  unresolved deps (2):
    libortp.so.9()(64bit)
    ortp(x86-64) >= 1:0.22.0
package: linphone-devel-3.6.1-50.fc38.i686 from fedora
  unresolved deps (1):
    pkgconfig(ortp)
package: linphone-devel-3.6.1-50.fc38.x86_64 from fedora
  unresolved deps (1):
    pkgconfig(ortp)
package: linphone-mediastreamer-3.6.1-50.fc38.i686 from fedora
  unresolved deps (1):
    libortp.so.9
package: linphone-mediastreamer-3.6.1-50.fc38.x86_64 from fedora
  unresolved deps (1):
    libortp.so.9()(64bit)
package: linphone-mediastreamer-devel-3.6.1-50.fc38.i686 from fedora
  unresolved deps (2):
    ortp-devel(x86-32)
    pkgconfig(ortp)
package: linphone-mediastreamer-devel-3.6.1-50.fc38.x86_64 from fedora
  unresolved deps (2):
    ortp-devel(x86-64)
    pkgconfig(ortp)
package: mingw32-qt6-qtbase-6.4.2-2.fc38.x86_64 from fedora
  unresolved deps (1):
    qt6-qtbase-devel = 6.4.2
package: mingw32-qt6-qtdeclarative-6.4.2-2.fc38.noarch from fedora
  unresolved deps (1):
    qt6-qtdeclarative-devel = 6.4.2
package: mingw32-qt6-qtshadertools-6.4.2-2.fc38.noarch from fedora
  unresolved deps (1):
    qt6-qtshadertools-devel = 6.4.2
package: mingw32-qt6-qttools-6.4.2-2.fc38.x86_64 from fedora
  unresolved deps (1):
    qt6-qttools-devel = 6.4.2
package: mingw64-qt6-qtbase-6.4.2-2.fc38.x86_64 from fedora
  unresolved deps (1):
    qt6-qtbase-devel = 6.4.2
package: mingw64-qt6-qtdeclarative-6.4.2-2.fc38.noarch from fedora
  unresolved deps (1):
    qt6-qtdeclarative-devel = 6.4.2
package: mingw64-qt6-qtshadertools-6.4.2-2.fc38.noarch from fedora
  unresolved deps (1):
    qt6-qtshadertools-devel = 6.4.2
package: mingw64-qt6-qttools-6.4.2-2.fc38.x86_64 from fedora
  unresolved deps (1):
    qt6-qttools-devel = 6.4.2
package: mp-devel-3.1.0-41.20200303git7fd4828.fc38.i686 from fedora
  unresolved deps (3):
    libasl.so.3
    libmp.so.3
    mp(x86-32) = 3.1.0-41.20200303git7fd4828.fc38
package: netbox-2.11.10-5.fc38.noarch from fedora
  unresolved deps (1):
    python3dist(drf-yasg[validation])
package: olpc-utils-6.0.6-10.fc38.i686 from fedora
  unresolved deps (1):
    xorg-x11-drv-sisusb
package: php-deepend-Mockery-0.9.11-10.fc38.noarch from fedora
  unresolved deps (1):
    (php-composer(hamcrest/hamcrest-php) >= 1.1 with php-composer(hamcrest/hamcrest-php) < 2)
package: php-laminas-di-2.6.1-10.fc38.noarch from fedora
  unresolved deps (1):
    (php-autoloader(laminas/laminas-code) >= 3.0 with php-autoloader(laminas/laminas-code) < 4)
package: php-laminas-mvc-form-1.2.0-4.fc38.noarch from fedora
  unresolved deps (1):
    (php-autoloader(laminas/laminas-code) >= 3.5.1 with php-autoloader(laminas/laminas-code) < 4)
package: php-ocramius-proxy-manager-2.2.3-8.fc38.noarch from fedora
  unresolved deps (1):
    (php-autoloader(zendframework/zend-code) >= 3.3 with php-autoloader(zendframework/zend-code) < 4)
package: python3-aioguardian-1.0.4-8.fc38.noarch from fedora
  unresolved deps (3):
    (python3.11dist(async-timeout) < 4~~ with python3.11dist(async-timeout) >= 3.0.1)
    (python3.11dist(asyncio-dgram) < 2~~ with python3.11dist(asyncio-dgram) >= 1.0.1)
    (python3.11dist(voluptuous) < 0.13~~ with python3.11dist(voluptuous) >= 0.11.7)
package: python3-cle-9.0.9572-4.fc37.noarch from fedora
  unresolved deps (1):
    python3.11dist(pyvex) = 9.0.9572
package: python3-pyvex-9.2.32-2.fc38.x86_64 from fedora
  unresolved deps (1):
    python3.11dist(archinfo) = 9.2.32
package: python3-scrapy-2.6.1-4.fc38.noarch from fedora
  unresolved deps (2):
    python3-pydispatcher
    python3.11dist(pydispatcher) >= 2.0.5
package: rocm-opencl-5.4.3-1.fc38.x86_64 from fedora
  unresolved deps (1):
    comgr(rocm) = 5.4
package: rubygem-bundler-doc-2.3.25-2.fc38.noarch from fedora
  unresolved deps (1):
    rubygem-bundler = 2.3.25-2.fc38
package: rubygem-rdoc-doc-6.4.0-203.fc38.noarch from fedora
  unresolved deps (1):
    rubygem-rdoc = 6.4.0-203.fc38
package: rubygems-doc-3.3.25-202.fc38.noarch from fedora
  unresolved deps (1):
    ruby(rubygems) = 3.3.25-202.fc38
package: rust-picky-asn1-x509+widestring-devel-0.7.0-3.fc38.noarch from fedora
  unresolved deps (1):
    (crate(widestring/alloc) >= 0.5.1 with crate(widestring/alloc) < 0.6.0~)
package: rust-reedline+clipboard-devel-0.16.0-1.fc38.noarch from fedora
  unresolved deps (1):
    (crate(clipboard/default) >= 0.5.0 with crate(clipboard/default) < 0.6.0~)
package: rust-reedline+sqlite-devel-0.16.0-1.fc38.noarch from fedora
  unresolved deps (1):
    (crate(rusqlite/bundled) >= 0.28.0 with crate(rusqlite/bundled) < 0.29.0~)
package: rust-rsa+nightly-devel-0.5.0-3.fc38.noarch from fedora
  unresolved deps (1):
    crate(num-bigint-dig/nightly) >= 0.7.0
package: studio-controls-2.1.0-7.fc38.noarch from fedora
  unresolved deps (1):
    jack-audio-connection-kit-example-clients
package: twincam-0.5.4-6.fc38.x86_64 from fedora
  unresolved deps (2):
    libcamera-base.so.0.0.3()(64bit)
    libcamera.so.0.0.3()(64bit)
Error: Repoclosure ended with unresolved dependencies (93) across 64 packages.
m-blaha commented 1 year ago

It's a long shot and I still do not have reliable reproducer, but: I have two sets of repository metadata, the repodata/* files are exactly the same, updated and valid. But the solv/fedora.solv files in both locations are different. dnf5 happily uses both of these caches without downloading anything, and of course I can see different outputs of the repoclosure command with these caches.

Could it be, that we check cache validity according downloaded metadata, but related *.solv(x) files are then used even if they are stale and not consistent with repodata?

kontura commented 1 year ago

I think not, we write at the begging of the *.solv(x) files a checksum of corresponding repomd.xml and those have to match. https://github.com/rpm-software-management/dnf5/blob/main/libdnf/repo/solv_repo.cpp#L139

m-blaha commented 1 year ago

Yeah, I've just found it. One more interesting thing - according to dumpsolv fedora.solv file contains also filelists metadata, which is kind of wierd. They should be in fedora-filelists.solvx, shouldnt't they? These files in both cache locations differ. The fedora-filelists.solvx are the same. So maybe some flaw in writing *.solv files?

m-blaha commented 1 year ago

So both sets of *.solv files are valid, created from the same repomd.xml and still contain different data.

jan-kolarik commented 1 year ago

There was some potentially similar issue with the comps metadata recently: https://github.com/rpm-software-management/dnf5/pull/346. Maybe it's something of a similar manner...

kontura commented 1 year ago

I have made a libsolv PR: https://github.com/openSUSE/libsolv/pull/531 as a possible solution.