rpm-software-management / rpmlint

Tool for checking common errors in rpm packages
GNU General Public License v2.0
128 stars 119 forks source link

postin-without-ldconfig obsolete? #922

Closed brianjmurrell closed 2 years ago

brianjmurrell commented 2 years ago

Am I misunderstanding, or is postin-without-ldconfig obsolete with Changes/Removing ldconfig scriptlets?

Conan-Kudo commented 2 years ago

It is, it should be disabled for Fedora's rpmlint config...

brianjmurrell commented 2 years ago

Interesting. I am hitting it building in a Fedora 36 Docker container using mock for EL8 and Leap 15.3 chroots. But ultimately, the resulting EL8 and Leap 15.3 RPMs are being rpmlinted on Fedora 36.

brianjmurrell commented 2 years ago

It is, it should be disabled for Fedora's rpmlint config...

This does raise an interesting question though. Even if I am running rpmlint on a Fedora machine, if the RPMs are for an EL8 system, I probably should be using an EL rpmlint config, yes?

Conan-Kudo commented 2 years ago

The configs are derived from Fedora. But in the case of EL8, the rpmlint config is similarly out of date there.

The only distribution family that still requires the ldconfig scriptlets in the latest releases is the SUSE family. For the Red Hat family, it's only required for RHEL 7 and older.

brianjmurrell commented 2 years ago

Yes, completely agreed. In my universal .spec file I am (now, as a result of this rpmlint error) using %{?ldconfig_scriptlets} (which even seems superfluous, but does at least cover older distributions), as well as %{?run_ldconfig} in various %post* scriptlets to cover SUSE.

But even with that, I am still getting daos-client.x86_64: E: postin-without-ldconfig /usr/lib64/libdaos.so.2.4.0 for an rpmlint running on F36 for EL8 packages.

marxin commented 2 years ago

Can you please use --print-config and show it here for F36?

brianjmurrell commented 2 years ago
Checks = [ "AlternativesCheck", "AppDataCheck", "BinariesCheck", "BuildDateCheck", "BuildRootCheck", "ConfigFilesCheck", "DBusPolicyCheck", "DuplicatesCheck", "DocCheck", "ErlangCheck", "FHSCheck", "FilesCheck", "IconSizesCheck", "I18NCheck", "LibraryDependencyCheck", "LogrotateCheck", "MenuCheck", "MenuXDGCheck", "MixedOwnershipCheck", "PkgConfigCheck", "PostCheck", "SignatureCheck", "SourceCheck", "SpecCheck", "TagsCheck", "ZipCheck", "ZyppSyntaxCheck", "BashismsCheck", "PAMModulesCheck", "TmpFilesCheck", "SysVInitOnSystemdCheck", "SharedLibraryPolicyCheck",]
Filters = [ ".*not-standard-release-extension.*", ".*executable-in-library-package.*", ".*non-versioned-file-in-library-package.*", ".*shlib-policy-name-error.*", ".*no-buildroot-tag.*", ".*devel-package-with-non-devel-group.*", ".*no-group-tag.*", ".*non-standard-group.*", " non-standard-dir-in-usr ", " no-signature", "hardcoded-library-path", "outside-libdir-files", " no-major-in-name ", " lib-package-without-%mklibname", " requires-on-release", " symlink-should-be-relative ", " no-packager-tag", " jar-not-indexed ", " no-dependency-on locales", " no-dependency-on perl-base", " no-dependency-on python-base", " python-naming-policy-not-applied", " perl-naming-policy-not-applied", " -debug(info|source).* no-documentation", " postin-without-ghost-file-creation ", " invalid-build-requires ", " ghost-files-without-postin", " no-provides ", " -debuginfo.* /usr/lib/debug/", " -debugsource.* /usr/src/debug/", "^gpg-pubkey:", " doc-file-dependency .* /bin/sh$", "explicit-lib-dependency (liberation-fonts|libertas-.*-firmware|libvirt$|.*-(java|python|utils)$)", "explicit-lib-dependency (python-.*lib.*|python2-.*lib.*|python3-.*lib.*)$", "explicit-lib-dependency libreoffice.*$", "dangling-\\S*symlink /usr/share/doc/HTML/\\S+/common .+/common$", "hidden-file-or-dir .*/man5/\\.k5login\\.5[^/]+$", "blender.+ (wrong-script-interpreter|non-executable-script) .+/blender/.+\\.py.*BPY.*", " no-cleaning-of-buildroot ", "files-attr-not-set", "non-ghost-in-run", "script-without-shebang .*\\.desktop$", "non-conffile-in-etc /etc/rpm/.*$", "non-readable /etc/ovirt-engine/isouploader.conf", "invalid-url .*\\.googlecode\\.com/.*HTTP Error 404", "invalid-url .*\\.jboss\\.org/.*HTTP Error 403", "invalid-url .*bitbucket\\.org/.*HTTP Error 403", "invalid-url .*github\\.com/.*HTTP Error 403", "-debuginfo.* description-line-too-long", "spelling-error.* \\b(runtime|Runtime|metadata|cryptographic|multi|linux|filesystem|filesystems|backend|backends|userspace|addon|wayland|Wayland|util|utils|lossless|virtualization|toolkits|libvirtd|crypto|glyphs|GStreamer|http|extensibility|codec|codecs|truetype|scalable|pluggable|pixbuf|Kerberos|customizable|bitstream|tcp|libXss|libs|libc|encodings|GLib|udev|posix|libpng|glapi|gbm|freedesktop|spi|realtime|preprocessor|libaudit|hypervisor|embeddable|distributable|devel|config|cairo|bootloader|adaptors|pragma|passphrase|malloc|libvirt|libmagic|io|datetime|boolean|argparse|py|pinentry|namespace|middleware|lowlevel|libxcb|libudev|libsoup|libgcrypt|libcom|iSCSI|initramfs|GObject|executables|dialogs|checkpolicy|bitmapped|assistive|btrfs|crypttab|defrag|dracut|hostname|luks|mountpoints|netdev|rpmnew|rpmsave|storaged|tss|unlocker)\\b", "library-without-ldconfig-postin", "library-without-ldconfig-postun", "non-standard-dir-perm /etc/.* 700", "non-standard-dir-perm /var/lib/.* 700", "zero-length .+/site-packages/.+\\.dist-info/REQUESTED\\b", "zero-length .+/site-packages/.+/py\\.typed\\b", "coreutils.* (setuid-binary|non-standard-executable-perm) /bin/su (root )?04", "krb5-workstation.* (setuid-binary|non-standard-executable-perm) /usr/kerberos/bin/ksu (root )?04", "passwd.* (setuid-binary|non-standard-executable-perm) /usr/bin/passwd (root )?04", "sudo.* (setuid-binary|non-standard-executable-perm) /usr/bin/sudo(edit)? (root )?04", "upstart.* (setuid-binary|non-standard-executable-perm) /sbin/initctl (root )?04", "usermode.* (setuid-binary|non-standard-executable-perm) /usr/sbin/userhelper (root )?04", "no-library-dependency-for", "no-library-dependency-on", " info-files-without-install-info-postin", " info-files-without-install-info-postun ", " postin-without-install-info ",]
BlockedFilters = []
BadnessThreshold = -1
CompressExtension = "gz"
ExtractDir = "/tmp"
ForbiddenWords = ""
IconFilename = ".*\\.png$"
InvalidURL = ""
KernelModuleRPMsOK = false
MaxLineLength = 80
MetaPackageRegexp = "^(bundle|task)-"
Packager = ""
PythonDefaultVersion = ""
PerlVersionTrick = true
ReleaseExtension = "\\.(fc|rhe?l|el)\\d+(?=\\.|$)"
RpmGamesGroup = "Games"
SkipDocsRegexp = "\\.(?:rtf|x?html?|svg|ml[ily]?)$"
UseEnchant = true
UseDebugSource = true
UseEpoch = false
UseDefaultRunlevels = false
UseRelativeSymlinks = true
UseVersionInChangelog = true
UseVarLockSubsys = true
ValidBuildHost = ""
ExtraMenuNeeds = [ "gnome", "icewm", "kde", "wmaker",]
HardcodedLibPathExceptions = "/lib/(modules|cpp|perl5|rpm|hotplug|firmware|systemd)($|[\\s/,])"
ValidMenuSections = [ "Office/Accessories", "Office/Address Books", "Office/Communications/Fax", "Office/Communications/PDA", "Office/Communications/Phone", "Office/Communications/Other", "Office/Drawing", "Office/Graphs", "Office/Presentations", "Office/Publishing", "Office/Spreadsheets", "Office/Tasks Management", "Office/Time Management", "Office/Wordprocessors", "Office/Other", "Internet/Chat", "Internet/File Transfer", "Internet/Instant Messaging", "Internet/Mail", "Internet/News", "Internet/Remote Access", "Internet/Video Conference", "Internet/Web Browsers", "Internet/Web Editors", "Internet/Other", "Multimedia/Graphics", "Multimedia/Sound", "Multimedia/Video", "Multimedia/Other", "System/Archiving/Backup", "System/Archiving/CD Burning", "System/Archiving/Compression", "System/Archiving/Other", "System/Configuration/Boot and Init", "System/Configuration/GNOME", "System/Configuration/Hardware", "System/Configuration/KDE", "System/Configuration/Networking", "System/Configuration/Packaging", "System/Configuration/Printing", "System/Configuration/Users", "System/Configuration/Other", "System/File Tools", "System/Monitoring", "System/Session/Windowmanagers", "System/Terminals", "System/Text Tools", "System/Other", "More Applications/Accessibility", "More Applications/Communications", "More Applications/Databases", "More Applications/Development/Code Generators", "More Applications/Development/Development Environments", "More Applications/Development/Interpreters", "More Applications/Development/Tools", "More Applications/Development/Other", "More Applications/Documentation", "More Applications/Editors", "More Applications/Education/Economy", "More Applications/Education/Geography", "More Applications/Education/History", "More Applications/Education/Languages", "More Applications/Education/Literature", "More Applications/Education/Sciences", "More Applications/Education/Sports", "More Applications/Education/Other", "More Applications/Emulators", "More Applications/Finances", "More Applications/Games/Adventure", "More Applications/Games/Arcade", "More Applications/Games/Boards", "More Applications/Games/Cards", "More Applications/Games/Puzzles", "More Applications/Games/Sports", "More Applications/Games/Strategy", "More Applications/Games/Toys", "More Applications/Games/Other", "More Applications/Sciences/Artificial Intelligence", "More Applications/Sciences/Astronomy", "More Applications/Sciences/Biology", "More Applications/Sciences/Chemistry", "More Applications/Sciences/Computer Science", "More Applications/Sciences/Data visualization", "More Applications/Sciences/Electricity", "More Applications/Sciences/Geosciences", "More Applications/Sciences/Image Processing", "More Applications/Sciences/Mathematics", "More Applications/Sciences/Numerical Analysis", "More Applications/Sciences/Parallel Computing", "More Applications/Sciences/Physics", "More Applications/Sciences/Robotics", "More Applications/Sciences/Other", "More Applications/Other",]
InvalidRequires = [ "^is$", "^not$", "^owned$", "^by$", "^any$", "^package$", "^libsafe\\.so\\.",]
DisallowedDirs = [ "/home", "/mnt", "/opt", "/proc", "/tmp", "/usr/local", "/usr/tmp", "/var/local", "/var/lock", "/var/run", "/var/tmp",]
StandardGroups = [ "root", "bin", "daemon", "adm", "lp", "sync", "shutdown", "halt", "mail", "news", "uucp", "man", "nobody", "pkiuser", "sshd", "keystone", "squid", "pppusers", "kvm", "popusers", "dovecot", "oprofile", "disk", "ldap", "arpwatch", "retrace", "nut", "polkituser", "audio", "mailman", "stapusr", "saned", "mailnull", "rtkit", "postfix", "utmp", "cimsrvr", "wheel", "postgres", "vhostmd", "smmsp", "realtime", "kmem", "rpcuser", "dbus", "screen", "utempter", "video", "named", "radvd", "ntp", "systemd-resolve", "nova", "tss", "sys", "cdrom", "wildfly", "ricci", "mysql", "apache", "usbmuxd", "jbosson", "systemd-network", "vcsa", "console", "sabayon", "quantum", "katello", "haclient", "xfs", "tomcat", "beagleindex", "fax", "haldaemon", "systemd-journal", "pulse", "hsqldb", "cassandra", "pegasus", "clamav", "piranha", "mongodb", "netdump", "activemq", "ovirtagent", "saslauth", "aeolus", "radiusd", "mem", "rpm", "webalizer", "floppy", "nocpulse", "elasticsearch", "games", "pvm", "wnn", "tty", "snortd", "slipusers", "nscd", "gdm", "privoxy", "mock", "prelude-manager", "cinder", "dialout", "rpc", "condor", "#systemd-journal-gateway", "heat", "qemu", "stapsys", "avahi", "myproxy", "majordomo", "tape", "puppet", "exim", "sanlock", "rhevm", "swift", "wallaby", "ftp", "ident", "frontpage", "ats", "ceilometer", "distcache", "stapdev", "users", "ovirt", "ceph", "desktop", "glance", "jonas", "postdrop", "haproxy", "abrt", "quagga", "stap-server", "lock", "dhcpd", "wbpriv", "luci", "quaggavt", "bacula", "avahi-autoipd", "gopher", "wine", "tcpdump", "dip", "slocate", "jetty",]
StandardUsers = [ "root", "bin", "daemon", "adm", "lp", "sync", "shutdown", "halt", "mail", "news", "uucp", "operator", "man", "nobody", "pkiuser", "sshd", "cyrus", "keystone", "squid", "dovecot", "oprofile", "ldap", "arpwatch", "retrace", "vdsm", "nut", "hacluster", "polkituser", "mailman", "saned", "mailnull", "rtkit", "postfix", "cimsrvr", "postgres", "vhostmd", "smmsp", "dbus", "rpcuser", "nslcd", "named", "radvd", "ntp", "systemd-resolve", "nova", "tss", "wildfly", "ricci", "mysql", "apache", "usbmuxd", "systemd-network", "vcsa", "sabayon", "quantum", "katello", "xfs", "tomcat", "beagleindex", "jbosson-agent", "fax", "haldaemon", "pulse", "hsqldb", "cassandra", "pegasus", "clamav", "piranha", "mongodb", "netdump", "activemq", "ovirtagent", "aeolus", "radiusd", "rpm", "webalizer", "nocpulse", "elasticsearch", "games", "pvm", "wnn", "snortd", "privoxy", "nscd", "gdm", "prelude-manager", "cinder", "rpc", "condor", "#systemd-journal-gateway", "heat", "qemu", "myproxy", "avahi", "majordomo", "puppet", "exim", "sanlock", "rhevm", "swift", "wallaby", "ftp", "ident", "frontpage", "ats", "ceilometer", "distcache", "ovirt", "ceph", "desktop", "glance", "jonas", "haproxy", "abrt", "quagga", "stap-server", "dhcpd", "luci", "bacula", "avahi-autoipd", "gopher", "tcpdump", "amandabackup", "jetty",]
SystemLibPaths = [ "/lib", "/usr/lib", "/usr/X11R6/lib", "/lib64", "/usr/lib64", "/usr/X11R6/lib64",]
PieExecutables = []
UsrLibBinaryException = "^/usr/lib(64)?/(perl|python|ruby|menu|pkgconfig|ocaml|lib[^/]+\\.(so|l?a)$|bonobo/servers/|\\.build-id|firmware)"
MandatoryOptflags = []
ForbiddenOptflags = []
ValidEmptyShells = [ "/sbin/ldconfig", "/usr/sbin/ldconfig",]
ValidShells = [ "<lua>", "/bin/sh", "/bin/bash", "/sbin/sash", "/usr/bin/perl", "/sbin/ldconfig", "/usr/bin/sh", "/usr/bin/bash", "/usr/sbin/ldconfig", "/usr/bin/python", "/usr/bin/python3",]
ValidGroups = []
ValidSrcPerms = [ "0o644", "0o755", "0o664",]
ValidLicenses = [ "0BSD", "AAL", "Abstyles", "Adobe", "ADSL", "AFL", "Afmparse", "AGPLv1", "AGPLv3", "AGPLv3+", "AGPLv3 with exceptions", "AMDPLPA", "AML", "AMPAS BSD", "ANTLR-PD", "APAFML", "App-s2p", "APSL 2.0", "ARL", "Array", "Artistic 2.0", "Artistic clarified", "ASL 1.0", "ASL 1.1", "ASL 2.0", "Bahyph", "Barr", "Beerware", "BeOpen", "Bibtex", "BitTorrent", "Boost", "Borceux", "BSD", "BSD-2-Clause-Patent", "BSD Protection", "BSD with advertising", "BSD with attribution", "CATOSL", "CC0", "CeCILL", "CeCILL-B", "CeCILL-C", "CDDL-1.0", "CDDL-1.1", "CNRI", "Condor", "Copyright only", "CPAL", "CPL", "CPM", "CRC32", "Crossword", "Crystal Stacker", "Cube", "diffmark", "DMIT", "DOC", "Dotseqn", "DSDP", "dvipdfm", "DWPL", "ECL 1.0", "ECL 2.0", "eCos", "EFL 2.0", "eGenix", "Entessa", "EPICS", "EPL-1.0", "EPL-2.0", "ERPL", "EU Datagrid", "EUPL 1.1", "EUPL 1.2", "Eurosym", "Fair", "FDK-AAC", "FSFAP", "FSFUL", "FSFULLR", "FTL", "Giftware", "GL2PS", "Glide", "Glulxe", "gnuplot", "GPL+", "GPL+ or Artistic", "GPL+ with exceptions", "GPLv1", "GPLv2 or Artistic", "GPLv2+ or Artistic", "GPLv2", "GPLv2 with exceptions", "GPLv2+", "GPLv2+ with exceptions", "GPLv3", "GPLv3 with exceptions", "GPLv3+", "GPLv3+ with exceptions", "HaskellReport", "HSRL", "IBM", "IJG", "ImageMagick", "iMatix", "Imlib2", "Inner-Net", "Intel ACPI", "Interbase", "ISC", "Jabber", "JasPer", "JPython", "Julius", "Knuth", "Latex2e", "LBNL BSD", "Leptonica", "LGPLv2", "LGPLv2 with exceptions", "LGPLv2+", "LGPLv2+ or Artistic", "LGPLv2+ with exceptions", "LGPLv3", "LGPLv3 with exceptions", "LGPLv3+", "LGPLv3+ with exceptions", "Lhcyr", "libtiff", "LLGPL", "Logica", "LOSLA", "LPL", "LPPL", "MakeIndex", "mecab-ipadic", "midnight", "Minpack", "MirOS", "MIT", "MIT-0", "MITNFA", "MIT with advertising", "mod_macro", "Motosoto", "MPLv1.0", "MPLv1.1", "MPLv2.0", "MS-PL", "MS-RL", "MTLL", "Mup", "Naumen", "NCSA", "NetCDF", "Netscape", "Newmat", "Newsletr", "NGPL", "NISTSL", "NLPL", "Nmap", "Nokia", "NOSL", "Noweb", "OGL", "OML", "OpenLDAP", "OpenPBS", "OpenSSL", "OReilly", "OSL 1.0", "OSL 1.1", "OSL 2.0", "OSL 2.1", "OSL 3.0", "Par", "Phorum", "PHP", "PlainTeX", "Plexus", "PostgreSQL", "psfrag", "psutils", "Public Domain", "Python", "Qhull", "QPL", "radvd", "Rdisc", "REX", "RiceBSD", "Romio", "RPSL", "RSA", "Rsfs", "Ruby", "Saxpath", "Sequence", "SCEA", "SCRIP", "Sendmail", "Sleepycat", "SISSL", "SLIB", "SNIA", "softSurfer", "SPL", "STMPL", "SWL", "TCGL", "TCL", "Teeworlds", "TGPPL", "TGPPL with exceptions", "Threeparttable", "TMate", "Tolua", "TORQUEv1.1", "TOSL", "TPDL", "TPL", "TTWL", "Tumbolia", "UCAR", "UCD", "Unicode", "Unlicense", "UPL", "Vim", "VNLSL", "VOSTROM", "VSL", "W3C", "Webmin", "Wsuipa", "WTFPL", "wxWidgets", "wxWindows", "Xerox", "xinetd", "xpp", "XSkat", "YPLv1.1", "Zed", "Zend", "zlib", "zlib with acknowledgement", "ZPLv1.0", "ZPLv2.0", "ZPLv2.1", "CDL", "FBSDDL", "GFDL", "IEEE", "LDPL", "OFSFDL", "Open Publication", "Public Use", "Verbatim", "CC-BY", "CC-BY-ND", "CC-BY-SA", "DL-DE-BY", "DMTF", "DSL", "EFML", "Free Art", "GeoGratis", "Green OpenMusic", "OAL", "Ouverte", "PDDL-1.0", "AMS", "Arphic", "AHFL", "Baekmuk", "Bitstream Vera", "Charter", "DoubleStroke", "ec", "Elvish", "Hershey", "HOFL", "IPA", "Liberation", "Lucida", "MgOpen", "mplus", "OFL", "PTFL", "Punknova", "STIX", "Utopia", "Wadalab", "XANO", "Redistributable, no modification permitted", "Freely redistributable without restriction",]
ValidLicenseExceptions = []
PAMAuthorizedModules = []

[Scoring]
no-group-tag = 1

[Descriptions]
non-standard-uid = "A file in this package is owned by an unregistered user id.\nTo register the user, please make a pull request to the rpmlint config file\nconfigs/Fedora/fedora.toml in the rpmlint repository.\n"
non-standard-gid = "A file in this package is owned by an unregistered group id.\nTo register the group, please make a pull request to the rpmlint config file\nconfigs/Fedora/fedora.toml in the rpmlint repository.\n"
no-changelogname-tag = "There is no changelog. Please insert a '%changelog' section heading in your\nspec file and prepare your changelog entry using e.g. the 'rpmdev-bumpspec' command."

[WarnOnFunction.crypto-policy-non-compliance-openssl]
f_name = "SSL_CTX_set_cipher_list"
good_param = "PROFILE=SYSTEM"
description = "This application package calls a function to explicitly set crypto ciphers\nfor SSL/TLS. That may cause the application not to use the system-wide set\ncryptographic policy and should be modified in accordance to:\nhttps://fedoraproject.org/wiki/Packaging:CryptoPolicies"

[WarnOnFunction.crypto-policy-non-compliance-gnutls-1]
f_name = "gnutls_priority_set_direct"
description = "This application package calls a function to explicitly set crypto ciphers\nfor SSL/TLS. That may cause the application not to use the system-wide set\ncryptographic policy and should be modified in accordance to:\nhttps://fedoraproject.org/wiki/Packaging:CryptoPolicies"

[WarnOnFunction.crypto-policy-non-compliance-gnutls-2]
f_name = "gnutls_priority_init"
good_param = "SYSTEM"
description = "This application package calls a function to explicitly set crypto ciphers\nfor SSL/TLS. That may cause the application not to use the system-wide set\ncryptographic policy and should be modified in accordance to:\nhttps://fedoraproject.org/wiki/Packaging:CryptoPolicies"

[IconPath."/usr/share/icons/"]
path = "/usr/share/icons/"
type = "normal"

[IconPath."/usr/share/icons/mini"]
path = "/usr/share/icons/mini"
type = "mini"

[IconPath."/usr/share/icons/large"]
path = "/usr/share/icons/large"
type = "large"

[MenuLaunchers.kdesu]
regexp = "(?:/usr/bin/)?kdesu"
binaries = [ "/usr/bin/kdesu", "kdesu",]

[MenuLaunchers.x11_clanapp]
regexp = "(?:/usr/bin/)?launch_x11_clanapp"
binaries = [ "/usr/bin/launch_x11_clanapp", "clanlib", "libclanlib0",]

[MenuLaunchers.soundwrapper]
regexp = "(?:/usr/bin/)?soundwrapper"
binaries = false

[DanglingSymlinkExceptions."/usr/share/doc/licenses/"]
path = "/usr/share/doc/licenses/"
name = "licenses"

[DanglingSymlinkExceptions."consolehelper$"]
path = "consolehelper$"
name = "usermode"

[DanglingSymlinkExceptions."consolehelper-gtk$"]
path = "consolehelper-gtk$"
name = "usermode-gtk"

The RPM that is causing the error: daos-client-2.3.100-21.8577.g4dd01856.el8.x86_64.rpm.tar.gz

brianjmurrell commented 2 years ago

As an aside, is it valid to use the Fedora config on an EL8 RPM or should EL8 have it's own config? Surely given the (ever growing) delta between Fedora and EL8, there must be some differences in a resulting rpmlint config, no?

Using this case as an example, surely there must have been a window where Fedora no longer needed ldconfig to be used in scriptlets but EL8 was (naturally) lagging and still did require it.

There would even be differences for SUSE SLES/Leap that would require it's own config wouldn't there?

Conan-Kudo commented 2 years ago

Using this case as an example, surely there must have been a window where Fedora no longer needed ldconfig to be used in scriptlets but EL8 was (naturally) lagging and still did require it.

There was not. The transition to no longer requiring scriptlets happened in Fedora 28, which is what RHEL 8 branched from.