On 29 January 2018 at 17:18, Florian Weimer <fweimer@redhat.com> wrote:
Igor committed a change to glibc so that from Fedora 28 going forward, glibc will run ldconfig after the transaction if any of the library directory trees was modified.

This means that libraries which package the lib*.so.* symbolic links will no longer have to run ldconfig in %postin/%postun, and we can automate the creation of those symbolic links with a buildroot policy hook, see:

  <https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/12>

Packages which edit ld.so search paths will still have to run ldconfig in %postin/%postun, as before.

As now with file trigger changes are committed and new glibc packages will be in rawhide repo it should be mass change removing all ldconfig execution from *ALL* Fedora specs.

[tkloczko@domek SPECS.fedora]$ grep -e '^%post.*/sbin/ldconfig' * | awk -F\. '{print $1}' | uniq | wc -l
3257
[tkloczko@domek SPECS.fedora]$ grep -e ' */sbin/ldconfig' * | awk -F\. '{print $1}' | uniq | wc -l
3432

And as well:

[tkloczko@domek SPECS.fedora]$ grep -e '^Requires(post):.*/sbin/ldconfig' * |wc -l
125
[tkloczko@domek SPECS.fedora]$ grep -e '^Requires(postun):.*/sbin/ldconfig' * |wc -l
114

This needs to be removed as well. If not it will be like with for example in hicolor-icon-theme.spec after remove %post/%postun/%postrans with gtk-update-icon-cache execution still is possible to find in this spec:

Requires(post): coreutils
Requires(postun): coreutils


If all those changes will be not it will be like with other such changes which never have been finished:

[tkloczko@domek SPECS.fedora]$ grep '^%clean' * | wc -l
3007
[tkloczko@domek SPECS.fedora]$ grep '^BuildRoot:' * | wc -l
2746
[tkloczko@domek SPECS.fedora]$ grep '^Group:' * | wc -l
18065

To be hones I would be personally [1] way happier if Igor will finish first finish remove hicolor icons theme cache update before jumping on ldconfig.

Just please Igor (or anyone else who will be helping him) do this properly finishing whole set of necessary changes within as short as it is only possible time.

Next point which someone needs to take care is update rpmlint to generate warning that use ldconfig in %post/%postun is no longer needed.


==== And yet another thing connected with above.

I've been many times proposing to use in specs single package/file name name in each Reqiure or BuildRequires.
I know that many packages do not like this because they are already using other style.
However it is not about what me or someone else may or may not prefer.
Using single package per Reqiure or BuildRequires is not a matter of personal preferences because if all those Reqiure/BuildRequires will be with single package or file path all mass changes will be way easier to do by simple "sed -ie 'd,^Requires(post):.*/sbin/ldconfig,' *spec"

[tkloczko@domek SPECS.fedora]$ grep -e '^Requires(post):.*/sbin/ldconfig' *
acl.spec:Requires(post): /sbin/ldconfig
alsa-lib.spec:Requires(post): /sbin/ldconfig, coreutils
blitz.spec:Requires(post): /sbin/install-info /sbin/ldconfig
cfitsio.spec:Requires(post):    /sbin/ldconfig
cinnamon-session.spec:Requires(post): /sbin/ldconfig
Coin2.spec:Requires(post): /sbin/ldconfig
Coin3.spec:Requires(post): /sbin/ldconfig
concordance.spec:Requires(post): /sbin/ldconfig
cyrus-imapd.spec:Requires(post): /sbin/ldconfig
dapl.spec:Requires(post): /sbin/ldconfig
ddccontrol.spec:Requires(post):   /sbin/ldconfig
drumstick0.spec:Requires(post): /sbin/ldconfig
drumstick.spec:Requires(post): /sbin/ldconfig
eb.spec:Requires(post): /sbin/ldconfig
eventlog.spec:Requires(post): /sbin/ldconfig
festival.spec:Requires(post): /sbin/ldconfig
festival.spec:Requires(post): /sbin/ldconfig
firebird.spec:Requires(post):   /sbin/ldconfig
firebird.spec:Requires(post):   /sbin/ldconfig
freehdl.spec:Requires(post): /sbin/install-info /sbin/ldconfig
fwknop.spec:Requires(post): /sbin/ldconfig
gauche.spec:Requires(post): /sbin/install-info, /sbin/ldconfig
gconfmm26.spec:Requires(post):   /sbin/ldconfig
geda-gaf.spec:Requires(post):   /sbin/ldconfig
gerbv.spec:Requires(post):   /sbin/ldconfig
getdata.spec:Requires(post):    /sbin/ldconfig
gnucash.spec:Requires(post): /sbin/ldconfig
gnumeric.spec:Requires(post):   /sbin/ldconfig
gr-air-modes.spec:Requires(post):   /sbin/ldconfig
graphviz.spec:Requires(post): /sbin/ldconfig
graphviz.spec:Requires(post): %{_bindir}/dot /sbin/ldconfig
gr-fcdproplus.spec:Requires(post):   /sbin/ldconfig
gr-iqbal.spec:Requires(post):   /sbin/ldconfig
groonga.spec:Requires(post): /sbin/ldconfig
gr-osmosdr.spec:Requires(post):   /sbin/ldconfig
gtkglextmm.spec:Requires(post): /sbin/ldconfig
gtkglext.spec:Requires(post): /sbin/ldconfig
gwenhywfar.spec:Requires(post): /sbin/ldconfig
hylafax+.spec:Requires(post): /sbin/ldconfig
infiniband-diags.spec:Requires(post): /sbin/ldconfig
infinipath-psm.spec:Requires(post):   /sbin/ldconfig
infinipath-psm.spec:Requires(post):   /sbin/ldconfig
k3d.spec:Requires(post):   /sbin/ldconfig
kdebase3.spec:Requires(post): /sbin/ldconfig
kdelibs3.spec:Requires(post): /sbin/ldconfig
kdelibs.spec:Requires(post): /sbin/ldconfig
kita.spec:Requires(post):      /sbin/ldconfig 
kst.spec:Requires(post):   /sbin/ldconfig
kvirc.spec:Requires(post):   /sbin/ldconfig
ledger.spec:Requires(post):   /sbin/ldconfig
libannodex.spec:Requires(post): /sbin/ldconfig
libapreq2.spec:Requires(post): /sbin/ldconfig
libcdio.spec:Requires(post): /sbin/ldconfig
libfm.spec:Requires(post): /sbin/ldconfig
libglademm.spec:Requires(post):   /sbin/ldconfig
libgle.spec:Requires(post):   /sbin/ldconfig
libgnomecanvasmm.spec:Requires(post):   /sbin/ldconfig
libhangul.spec:Requires(post): /sbin/ldconfig
libibcommon.spec:Requires(post): /sbin/ldconfig
libidn2.spec:Requires(post):   /sbin/install-info, /sbin/ldconfig
libidn.spec:Requires(post): /sbin/install-info /sbin/ldconfig
libitl.spec:Requires(post): /sbin/ldconfig
liblogging.spec:Requires(post): /sbin/ldconfig
liborigin.spec:Requires(post):    /sbin/ldconfig
libosmocore.spec:Requires(post):   /sbin/ldconfig
libosmo-dsp.spec:Requires(post):   /sbin/ldconfig
librelp.spec:Requires(post): /sbin/ldconfig
libsexymm.spec:Requires(post):   /sbin/ldconfig
libstroke.spec:Requires(post):    /sbin/ldconfig
libstroke.spec:Requires(post):    /sbin/ldconfig
libtool.spec:Requires(post):  /sbin/ldconfig
libutempter.spec:Requires(post): /sbin/ldconfig
libvma.spec:Requires(post): /sbin/ldconfig
loki-lib.spec:Requires(post): /sbin/ldconfig
miredo.spec:Requires(post):   /sbin/ldconfig
mISDN.spec:Requires(post): /sbin/ldconfig
mpfr.spec:Requires(post): /sbin/ldconfig
nss-pam-ldapd.spec:Requires(post): /sbin/ldconfig, chkconfig, grep, sed
oath-toolkit.spec:Requires(post):   /sbin/ldconfig
oath-toolkit.spec:Requires(post):   /sbin/ldconfig
openscap.spec:Requires(post):   /sbin/ldconfig
pam.spec:Requires(post): coreutils, /sbin/ldconfig
parted.spec:Requires(post): /sbin/ldconfig
pilot-link.spec:Requires(post): /sbin/ldconfig
plotutils.spec:Requires(post):  /sbin/ldconfig
plplot.spec:Requires(post): /sbin/ldconfig
polkit.spec:Requires(post): /sbin/ldconfig, systemd
procps-ng.spec:Requires(post): /sbin/ldconfig
qmmp.spec:Requires(post): /sbin/ldconfig
q.spec:Requires(post): /sbin/ldconfig /sbin/install-info
rapidsvn.spec:Requires(post): /sbin/ldconfig
recode.spec:Requires(post): /sbin/ldconfig
recutils.spec:Requires(post): /sbin/ldconfig
richacl.spec:Requires(post): /sbin/ldconfig
rtl-sdr.spec:Requires(post):   /sbin/ldconfig
sblim-cmpi-fsvol.spec:Requires(post): /sbin/ldconfig
sblim-cmpi-nfsv3.spec:Requires(post): /sbin/ldconfig
sblim-cmpi-nfsv4.spec:Requires(post): /sbin/ldconfig
sblim-cmpi-syslog.spec:Requires(post): /sbin/ldconfig
sblim-smis-hba.spec:Requires(post): /sbin/ldconfig
sim.spec:Requires(post): /sbin/ldconfig
SIMVoleon.spec:Requires(post): /sbin/ldconfig
slimdata.spec:Requires(post):    /sbin/ldconfig
SoQt.spec:Requires(post): /sbin/ldconfig
sssd.spec:Requires(post): /sbin/ldconfig
sssd.spec:Requires(post): /sbin/ldconfig
sssd.spec:Requires(post): /sbin/ldconfig
sssd.spec:Requires(post): /sbin/ldconfig
sssd.spec:Requires(post): /sbin/ldconfig
sssd.spec:Requires(post): /sbin/ldconfig
sssd.spec:Requires(post): /sbin/ldconfig
stellarium.spec:Requires(post): /sbin/ldconfig
subtitleeditor.spec:Requires(post): /sbin/ldconfig
tcpcrypt.spec:Requires(post): /sbin/ldconfig
tk.spec:Requires(post): /sbin/ldconfig
tn5250.spec:Requires(post): /sbin/ldconfig
tog-pegasus.spec:Requires(post): /sbin/ldconfig
tog-pegasus.spec:Requires(post): /sbin/ldconfig
uim.spec:Requires(post): %{_sbindir}/update-alternatives /sbin/ldconfig
unbound.spec:Requires(post): /sbin/ldconfig
unuran.spec:Requires(post): /sbin/ldconfig, /sbin/install-info
usbguard.spec:Requires(post): /sbin/ldconfig
wine.spec:Requires(post): /sbin/ldconfig
xalan-c.spec:Requires(post): /sbin/ldconfig
xen.spec:Requires(post): /sbin/ldconfig



[1]  [tkloczko@domek SPECS.fedora]$ grep 'gtk-update-icon-cache' * | grep hicolor | awk -F\. '{print $1}' | uniq | wc -l
304

Still about 2/3 of all above specs are waiting on finish remove gtk-update-icon-cache execution in %post/%postun/%postrans.
I would be personally happier because I've requested to remove those updates and Igor have been removing all those executions.
More than 3 weeks after this change started still is not finished.

kloczek
-- 
Tomasz Kłoczko | LinkedIn: http://lnkd.in/FXPWxH