Description of problem: In Fedora there are several packages which requires files outside of /etc, /usr/(s)bin. This issue will appear after DNF5 adoption, because DNF5 does not download filelists by default. Packages that requires files are not following Fedora packaging guidelines therefore we should not handle the issue as DNF5 problem. I think we need to do something with the issue to improve an efficiency of Fedora distribution. Packages 94 alliance-libs requires: /sbin/ldconfig amanda requires: /sbin/ldconfig atlas requires: /sbin/ldconfig atlas-corei2 requires: /sbin/ldconfig belle-sip requires: /sbin/ldconfig cjson requires: /sbin/ldconfig dyninst requires: /sbin/ldconfig fann requires: /sbin/ldconfig garmintools requires: /sbin/ldconfig ghc-base requires: /sbin/ldconfig ghc9.0-base requires: /sbin/ldconfig ghc9.2-base requires: /sbin/ldconfig ghc9.4-base requires: /sbin/ldconfig ghc9.6-base requires: /sbin/ldconfig glusterfs requires: /sbin/ldconfig glusterfs-resource-agents requires: /usr/lib/ocf/resource.d glusterfs-server requires: /sbin/ldconfig gnome-keyring requires: /usr/libexec/gcr-ssh-askpass graphviz requires: /sbin/ldconfig graphviz-gd requires: /sbin/ldconfig graphviz-gtk2 requires: /sbin/ldconfig grass-libs requires: /sbin/ldconfig gsequencer requires: /sbin/ldconfig hylafax+ requires: /sbin/ldconfig hylafax+-client requires: /sbin/ldconfig kata-containers requires: /usr/libexec/virtiofsd kdelibs3 requires: /sbin/ldconfig kdepimlibs requires: /sbin/ldconfig kdepimlibs-akonadi requires: /sbin/ldconfig krb5-server requires: /usr/share/dict/words krb5-tests requires: /usr/share/dict/words libcephfs2 requires: /sbin/ldconfig libcephfs_jni1 requires: /sbin/ldconfig libcephsqlite requires: /sbin/ldconfig libebml-devel requires: /usr/lib/cmake libebml-devel requires: /usr/lib64/cmake libesedb requires: /sbin/ldconfig libglusterfs0 requires: /sbin/ldconfig libipmctl requires: /sbin/ldconfig libiscsi requires: /sbin/ldconfig libknet1 requires: /sbin/ldconfig libmatroska-devel requires: /usr/lib/cmake libmatroska-devel requires: /usr/lib64/cmake libnozzle1 requires: /sbin/ldconfig librados2 requires: /sbin/ldconfig libradosstriper1 requires: /sbin/ldconfig librbd1 requires: /sbin/ldconfig librgw2 requires: /sbin/ldconfig libvirt-cim requires: /sbin/ldconfig libyaz requires: /sbin/ldconfig lightsquid requires: /usr/share/lightsquid/common.pl lightsquid-apache requires: /usr/share/lightsquid/common.pl lxc-libs requires: /sbin/ldconfig mod_nss requires: /usr/lib64/libnssckbi.so mpibash-mpich-examples requires: /usr/lib64/mpich/bin/mpibash_mpich mpibash-openmpi-examples requires: /usr/lib64/openmpi/bin/mpibash_openmpi mptcpd requires: /sbin/ldconfig mupen64plus requires: /sbin/ldconfig nco requires: /sbin/ldconfig netatalk requires: /sbin/ldconfig netcdf-cxx requires: /sbin/ldconfig openelp requires: /sbin/ldconfig openni-primesense requires: /sbin/ldconfig opentrep requires: /sbin/ldconfig pluto requires: /sbin/ldconfig portmidi requires: /sbin/ldconfig qt3 requires: /sbin/ldconfig recoll requires: /sbin/ldconfig resource-agents requires: /sbin/mount.nfs /sbin/mount.nfs4 /sbin/rpc.statd root-core requires: /sbin/ldconfig rt requires: /usr/share/fonts/google-droid-sans-fonts/DroidSans.ttf /usr/share/fonts/google-droid-sans-fonts/DroidSansFallbackFull.ttf sblim-cmpi-base requires: /sbin/ldconfig sblim-cmpi-fsvol requires: /sbin/ldconfig sblim-cmpi-network requires: /sbin/ldconfig sblim-cmpi-nfsv3 requires: /sbin/ldconfig sblim-cmpi-nfsv4 requires: /sbin/ldconfig sblim-cmpi-rpm requires: /sbin/ldconfig sblim-cmpi-sysfs requires: /sbin/ldconfig sblim-cmpi-syslog requires: /sbin/ldconfig scalasca-mpich requires: /usr/lib64/mpich/bin/scorep-config scalasca-openmpi requires: /usr/lib64/openmpi/bin/scorep-config sng requires: /usr/share/X11/rgb.txt sqliteodbc requires: /sbin/ldconfig sqlninja requires: /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 swift-lang requires: /sbin/ldconfig tclx requires: /sbin/ldconfig terminus-fonts-console requires: /usr/lib/kbd tix requires: /sbin/ldconfig tog-pegasus requires: /sbin/ldconfig tog-pegasus-libs requires: /sbin/ldconfig uim requires: /sbin/ldconfig usbguard requires: /sbin/ldconfig wine-core requires: /sbin/ldconfig xrdp requires: /sbin/ldconfig Unique requires 36 /sbin/ldconfig /sbin/mount.nfs /sbin/mount.nfs4 /sbin/rpc.statd /usr/lib/cmake /usr/lib/kbd /usr/lib/ocf/resource.d /usr/lib64/cmake /usr/lib64/libnssckbi.so /usr/lib64/mpich/bin/mpibash_mpich /usr/lib64/mpich/bin/scorep-config /usr/lib64/openmpi/bin/mpibash_openmpi /usr/lib64/openmpi/bin/scorep-config /usr/libexec/gcr-ssh-askpass /usr/libexec/virtiofsd /usr/share/X11/rgb.txt /usr/share/dict/words /usr/share/fonts/google-droid-sans-fonts/DroidSans.ttf /usr/share/fonts/google-droid-sans-fonts/DroidSansFallbackFull.ttf /usr/share/lightsquid/common.pl /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 Source packages 72 alliance amanda atlas belle-sip ceph cjson dyninst fann garmintools ghc ghc9.0 ghc9.2 ghc9.4 ghc9.6 glusterfs gnome-keyring graphviz grass gsequencer hylafax+ ipmctl kata-containers kdelibs3 kdepimlibs krb5 kronosnet libebml libesedb libiscsi libmatroska libvirt-cim lightsquid lxc mod_nss mpibash mptcpd mupen64plus nco netatalk netcdf-cxx openelp openni-primesense opentrep pluto portmidi qt3 recoll resource-agents root rt sblim-cmpi-base sblim-cmpi-fsvol sblim-cmpi-network sblim-cmpi-nfsv3 sblim-cmpi-nfsv4 sblim-cmpi-rpm sblim-cmpi-sysfs sblim-cmpi-syslog scalasca sng sqliteodbc sqlninja swift-lang tclx terminus-fonts tix tog-pegasus uim usbguard wine xrdp yaz
Thanks. I'll coordinate filing bugs against the offending components and set them to directly block the dnf 5 tracker (RHBZ 2166026). Once those bugs are filed, I'll close this bug and we can track status as part of 2166026.
Before I go creating a bunch of bugs, I want to make sure I understand something. A lot of the files listed here are `/sbin/ldconfig`. I looked at the specfiles for atlas[1] and alliance[2] and neither of them have a Requires: for that file. However, they *do* invoke them in scriptlets. Is that how they ended up on the list? In that case, should they set an explicit runtime dependency on the glibc package? Or should they just change the scriptlets to use `/usr/sbin/ldconfig` instead? My understanding is that the latter should work for that case. [1] https://src.fedoraproject.org/rpms/atlas/blob/rawhide/f/atlas.spec [2] https://src.fedoraproject.org/rpms/alliance/blob/rawhide/f/alliance.spec Also, here's the description template I'm planning to use. Do you see anything that is incorrect or misleading? BUG_BODY = """ The DNF team has identified {{ PACKAGE }} as requiring files outside of /etc, /usr/{s,}bin: {{ REQUIRED_FILES }} DNF5 will not download file lists by default, so packages that require files outside /etc, /usr/{s,}bin will fail to install under the default configuration beginning with F39. NOTE: If the only files listed above are in `/sbin`, you can fix this by using `/usr/sbin` instead. Otherwise, you should update your package to require a package instead of a directory, or work with the required package maintainer to add an explicit `Provides:` for the file you require. See the Fedora Packaging Guidelines[1] and the "Make DNF5 The Default" Change proposal[2] for more information. [1] https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_and_directory_dependencies [2] https://fedoraproject.org/wiki/Changes/ReplaceDnfWithDnf5 """
I think they should use `/usr/sbin/ldconfig`, and not `/sbin/ldconfig` variant is supposed to die in Fedora distribution. `/sbin` symlink is Fedora specific and DNF does not support it. The whole distribution is moving from that symlink to proper location. The problem is also in `glibc` package because they install binaries into /sbin and not into `/usr/sbin/`. Therefore I suggest that the change must start in `glibc`, but they need to have a compatible solution (provide binaries in both paths - `/sbin` and `/usr/sbin` ).
The movement /sbin to /usr/sbin was a feature of Fedora 17. See https://fedoraproject.org/wiki/Features/UsrMove.
I have good news. I am really grateful to maintainers of glibc, because their update significantly shortened the list of components with problematic requires. 21 packages with problematic dependencies: glusterfs-resource-agents requires: /usr/lib/ocf/resource.d gnome-keyring requires: /usr/libexec/gcr-ssh-askpass kata-containers requires: /usr/libexec/virtiofsd krb5-server requires: /usr/share/dict/words krb5-tests requires: /usr/share/dict/words libebml-devel requires: /usr/lib/cmake libebml-devel requires: /usr/lib64/cmake libmatroska-devel requires: /usr/lib/cmake libmatroska-devel requires: /usr/lib64/cmake lightsquid requires: /usr/share/lightsquid/common.pl lightsquid-apache requires: /usr/share/lightsquid/common.pl mod_nss requires: /usr/lib64/libnssckbi.so mpibash-mpich-examples requires: /usr/lib64/mpich/bin/mpibash_mpich mpibash-openmpi-examples requires: /usr/lib64/openmpi/bin/mpibash_openmpi resource-agents requires: /sbin/mount.nfs /sbin/mount.nfs4 /sbin/rpc.statd rt requires: /usr/share/fonts/google-droid-sans-fonts/DroidSans.ttf /usr/share/fonts/google-droid-sans-fonts/DroidSansFallbackFull.ttf scalasca-mpich requires: /usr/lib64/mpich/bin/scorep-config scalasca-openmpi requires: /usr/lib64/openmpi/bin/scorep-config sng requires: /usr/share/X11/rgb.txt sqlninja requires: /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 terminus-fonts-console requires: /usr/lib/kbd From 15 source packages glusterfs gnome-keyring kata-containers krb5 libebml libmatroska lightsquid mod_nss mpibash resource-agents rt scalasca sng sqlninja terminus-fonts
I already filed some bugs previously, and Igor Raits even more previously: sng was fixed in https://bugzilla.redhat.com/show_bug.cgi?id=1731702. I'll do a build for F38 too. sqlninja - https://bugzilla.redhat.com/show_bug.cgi?id=1731703 rt - https://bugzilla.redhat.com/show_bug.cgi?id=1731700 - PR SUBMITTED lightsquid - https://bugzilla.redhat.com/show_bug.cgi?id=1731696 kata-containers - https://src.fedoraproject.org/rpms/kata-containers/pull-request/4 - PR MERGED glusterfs - https://bugzilla.redhat.com/show_bug.cgi?id=1731689 libebml - https://bugzilla.redhat.com/show_bug.cgi?id=1731694 libmatroska - https://bugzilla.redhat.com/show_bug.cgi?id=1731695
Maybe someone can fix the ldconfig examples in https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/ and eliminate some confusion
Good news, only 8 src packages are effected in f39 Source packages glusterfs - Bug 2229910 - Problem with requirement `/usr/lib/ocf/resource.d` kata-containers - Bug 2229932 - Problem with requirement of `/usr/libexec/virtiofsd` mod_nss - Bug 2229934 - Problem with requirement of `/usr/lib64/libnssckbi.so` mpibash - Bug 2229948 - Problem with file requirements resource-agents - Bug 2229951 - Problem with file requirements rt - Bug 1731700 - rt depends on files/directories from non-standard locations scalasca - Bug 2229953 - Problem with file requirements sqlninja - Bug 1731703 - sqlninja depends on files/directories from non-standard locations
Update for Fedora 40. Only 7 packages from 5 sources would have broken dependencies without file lists: mpibash-mpich-examples requires: /usr/lib64/mpich/bin/mpibash_mpich mpibash-openmpi-examples requires: /usr/lib64/openmpi/bin/mpibash_openmpi resource-agents requires: /sbin/mount.nfs /sbin/mount.nfs4 /sbin/rpc.statd rt requires: /usr/share/fonts/google-droid-sans-fonts/DroidSans.ttf /usr/share/fonts/google-droid-sans-fonts/DroidSansFallbackFull.ttf scalasca-mpich requires: /usr/lib64/mpich/bin/scorep-config scalasca-openmpi requires: /usr/lib64/openmpi/bin/scorep-config sqlninja requires: /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
I have investigated the packages and bugs mentioned in the previous comments. For Fedora 40, the status is as follows: - rt: A PR already exists to fix the issue: https://src.fedoraproject.org/rpms/rt/pull-request/1 - resource-agents: A PR already exists to fix the issue: https://src.fedoraproject.org/rpms/resource-agents/pull-request/7 - sqlninja: The issue has already been fixed, as looking in the linked https://bugzilla.redhat.com/show_bug.cgi?id=1731703 - mpibash: Upon reviewing the current Rawhide spec file, there doesn't appear to be any file dependency-related issue, likely a false positive: https://src.fedoraproject.org/rpms/mpibash/blob/rawhide/f/mpibash.spec - scalasca: I've created a PR to fix the issue: https://src.fedoraproject.org/rpms/scalasca/pull-request/1 Therefore, I hope we're ready to drop the filelists for Fedora 40 :)
Good to hear this is resolved. Just note that there's a plan to implement https://fedoraproject.org/wiki/Changes/BuildWithDNF5 very soon, before the F40 mass rebuild starts.
BuildRequires also need to be considered, not just Requires; e.g gcc is currently FTBFS with dnf5. $ grep -E '^BuildRequires.+(/usr/([^bs].*|share)|[^fn]dir\})' * gcc.spec:BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so gnu-efi.spec:BuildRequires: /usr/include/gnu/stubs-32.h ispc.spec:BuildRequires: /usr/lib/crt1.o mapserver.spec:BuildRequires: /usr/share/fonts/dejavu-sans-fonts/DejaVuSans.ttf mapserver.spec:BuildRequires: /usr/share/fonts/dejavu-sans-fonts/DejaVuSans-Bold.ttf mold.spec:BuildRequires: /usr/lib/libc.so perl-Convert-Color.spec:BuildRequires: /usr/share/X11/rgb.txt perl-Font-AFM.spec:BuildRequires: %{_fontbasedir}/urw-base35/NimbusSans-Bold.afm rt.spec:BuildRequires: /usr/share/fonts/google-droid-sans-fonts/DroidSansFallbackFull.ttf rt.spec:BuildRequires: /usr/share/fonts/google-droid-sans-fonts/DroidSans.ttf sqlite2.spec:BuildRequires: ncurses-devel, readline-devel, %{_includedir}/tcl.h syslinux.spec:BuildRequires: /usr/include/gnu/stubs-32.h systemtap.spec:BuildRequires: xmlto /usr/share/xmlto/format/fo/pdf xen.spec:BuildRequires: /usr/include/gnu/stubs-32.h
This message is a reminder that Fedora Linux 38 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora Linux 38 on 2024-05-21. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a 'version' of '38'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, change the 'version' to a later Fedora Linux version. Note that the version field may be hidden. Click the "Show advanced fields" button if you do not see it. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora Linux 38 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora Linux, you are encouraged to change the 'version' to a later version prior to this bug being closed.