NetBSD Problem Report #58697
From martin@duskware.de Wed Sep 25 15:35:54 2024
Return-Path: <martin@duskware.de>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
client-signature RSA-PSS (2048 bits) client-digest SHA256)
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id F04021A923B
for <gnats-bugs@gnats.NetBSD.org>; Wed, 25 Sep 2024 15:35:53 +0000 (UTC)
From: martin@NetBSD.org
Reply-To: martin@NetBSD.org
To: gnats-bugs@NetBSD.org
Subject: postinstall(8) removes non-obsolete compat libs
X-Send-Pr-Version: 3.95
>Number: 58697
>Category: bin
>Synopsis: postinstall(8) removes non-obsolete compat libs
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: bin-bug-people
>State: needs-pullups
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Sep 25 15:40:01 +0000 2024
>Closed-Date:
>Last-Modified: Thu Oct 10 22:34:20 +0000 2024
>Originator: Martin Husemann
>Release: NetBSD 10.99.12
>Organization:
The NetBSD Foundation, Inc.
>Environment:
System: NetBSD thirdstage.duskware.de 10.99.12 NetBSD 10.99.12 (MODULAR) #749: Tue Sep 24 14:54:29 CEST 2024 martin@thirdstage.duskware.de:/home/martin/current/src/sys/arch/sparc64/compile/MODULAR sparc64
Architecture: sparc64
Machine: sparc64
>Description:
Runing postinstall(8) after extracting all sets on a sparc64 machine tries
to remove the sparc compat version of libossaudio (and all its related
files, e.g. the .debug data).
Running the script with sh -X points at the "exclude()" function:
+ exclude -t libamu.so.4.0 libamu.so.5.0 libarchive.so.3.1 libarchive.so.4.0 libarchive.so.5.1 libasan.so.0.0 libasan.so.1.0 libasan.so.2.0 libasan.so.4.0 libasan.so.5.0 libasan.so.6.0 libasn1.so.10.0 libasn1.so.8.0 libasn1.so.9.0 libatf-c++.so.0.0 libatf-c++.so.1.0 libatf-c++.so.2.0 libatf-c.so.0.0 libavl.so.0.0 libbfd.so.11.0 libbfd.so.12.0 libbfd.so.13.0 libbfd.so.14.0 libbfd.so.15.0 libbfd.so.16.0 libbfd.so.17.0 libbfd.so.18.0 libbfd.so.19.0 libbind9.so.10.0 libbind9.so.11.0 libbind9.so.12.0 libbind9.so.13.0 libbind9.so.14.0 libbind9.so.15.0 libbind9.so.16.0 libbind9.so.17.0 libbind9.so.18.0 libbind9.so.19.0 libbind9.so.20.0 libbind9.so.21.0 libbind9.so.22.0 libbind9.so.5.8 libbind9.so.6.0 libbind9.so.7.0 libbind9.so.8.5 libbind9.so.9.0 libblocklist.so.0.1 libbluetooth.so.4.2 libbozohttpd.so.0.0 libbozohttpd.so.1.0 libbsdmalloc.so.0.1 libbz2.so.1.1 libc.so.12.222 libcbor.so.0.5 libcom_err.so.6.0 libcom_err.so.7.0 libcom_err.so.8.0 libcrypt.so.1.0 libcrypto.so.11.0 libcrypto.so.12
.0 libcrypto.so.13.0 libcrypto.so.14.1 libcrypto.so.15.0 libcrypto.so.6.1 libcrypto.so.7.0 libcrypto.so.8.4 libcurses.so.7.2 libcurses.so.8.2 libcurses.so.9.1 libdes.so.11.0 libdes.so.12.0 libdes.so.13.0 libdes.so.14.0 libdes.so.15.0 libdes.so.8.2 libdevmapper.so.1.0 libdm.so.0.0 libdns.so.10.0 libdns.so.11.0 libdns.so.12.0 libdns.so.13.0 libdns.so.14.0 libdns.so.15.0 libdns.so.16.0 libdns.so.17.0 libdns.so.18.0 libdns.so.19.0 libdns.so.20.0 libdns.so.21.0 libdns.so.22.0 libdns.so.5.8 libdns.so.6.0 libdns.so.7.0 libdns.so.8.5 libdns.so.9.0 libdns_sd.so.0.0 libdwarf.so.0.1 libdwarf.so.1.0 libdwarf.so.2.0 libedit.so.3.1 libelf.so.0.0 libelf.so.1.0 libelf.so.2.0 libevent.so.3.2 libevent.so.4.2 libevent.so.5.0 libevent_openssl.so.4.2 libevent_openssl.so.5.0 libevent_pthreads.so.4.2 libevent_pthreads.so.5.0 libexecinfo.so.0.0 libexpat.so.2.3 libfetch.so.3.0 libfetch.so.4.0 libfido2.so.2.1 libfido2.so.3.0 libfido2.so.4.0 libfido2.so.5.0 libform.so.6.0 libform.so.7.0 libform.so.8.0 libgcc_
s.so.1.0 libgnuctf.so.0.0 libgnuctf.so.1.0 libgnuctf.so.2.0 libgnumalloc.so.1.0 libgomp.so.2.2 libgssapi.so.10.0 libgssapi.so.11.0 libgssapi.so.12.0 libgssapi.so.9.0 libhdb.so.13.0 libhdb.so.14.0 libhdb.so.15.0 libhdb.so.16.0 libheimbase.so.1.0 libheimbase.so.2.0 libheimntlm.so.3.0 libheimntlm.so.4.0 libheimntlm.so.5.0 libheimntlm.so.6.0 libhx509.so.4.0 libhx509.so.5.0 libhx509.so.6.0 libhx509.so.7.0 libintl.so.1.1 libipsec.so.3.0 libirs.so.10.0 libirs.so.11.0 libirs.so.12.0 libirs.so.13.0 libirs.so.14.0 libirs.so.15.0 libirs.so.16.0 libirs.so.17.0 libirs.so.18.0 libirs.so.19.0 libirs.so.20.0 libirs.so.21.0 libirs.so.22.0 libirs.so.8.5 libirs.so.9.0 libisc.so.10.0 libisc.so.11.0 libisc.so.12.0 libisc.so.13.0 libisc.so.14.0 libisc.so.15.0 libisc.so.16.0 libisc.so.17.0 libisc.so.18.0 libisc.so.19.0 libisc.so.20.0 libisc.so.21.0 libisc.so.22.0 libisc.so.5.8 libisc.so.6.0 libisc.so.7.1 libisc.so.8.5 libisc.so.9.0 libisccc.so.10.0 libisccc.so.11.0 libisccc.so.12.0 libisccc.so.13.0 libisc
cc.so.14.0 libisccc.so.15.0 libisccc.so.16.0 libisccc.so.17.0 libisccc.so.18.0 libisccc.so.19.0 libisccc.so.20.0 libisccc.so.21.0 libisccc.so.22.0 libisccc.so.5.8 libisccc.so.6.0 libisccc.so.7.0 libisccc.so.8.5 libisccc.so.9.0 libisccfg.so.10.0 libisccfg.so.11.0 libisccfg.so.12.0 libisccfg.so.13.0 libisccfg.so.14.0 libisccfg.so.15.0 libisccfg.so.16.0 libisccfg.so.17.0 libisccfg.so.18.0 libisccfg.so.19.0 libisccfg.so.20.0 libisccfg.so.21.0 libisccfg.so.22.0 libisccfg.so.5.8 libisccfg.so.6.0 libisccfg.so.7.0 libisccfg.so.8.5 libisccfg.so.9.0 libiscsi.so.2.0 libisns.so.0.0 libjemalloc.so.0.0 libkadm5clnt.so.12.0 libkadm5clnt.so.13.0 libkadm5clnt.so.14.0 libkadm5clnt.so.15.0 libkadm5srv.so.13.0 libkadm5srv.so.14.0 libkadm5srv.so.15.0 libkadm5srv.so.16.0 libkafs.so.11.0 libkafs.so.12.0 libkafs.so.13.0 libkafs.so.14.0 libkdc.so.2.0 libkdc.so.3.0 libkdc.so.4.0 libkrb5.so.24.0 libkrb5.so.26.0 libkrb5.so.27.0 libkrb5.so.28.0 libkvm.so.6.0 liblber.so.3.3 liblber.so.5.0 libldap.so.4.3 libldap.
so.5.0 libldap.so.6.0 libldap_r.so.4.3 libldap_r.so.5.0 libldap_r.so.6.0 liblsan.so.2.0 liblsan.so.3.0 liblua.so.1.0 liblua.so.5.3 liblua.so.6.1 liblwres.so.5.8 liblwres.so.6.0 liblwres.so.7.0 liblwres.so.8.5 liblzf.so.0.0 liblzf.so.1.0 liblzma.so.1.1 liblzma.so.2.0 libm.so.0.14 libmagic.so.3.1 libmagic.so.4.0 libmagic.so.5.2 libmagic.so.6.0 libmagic.so.7.0 libmagic.so.8.0 libmenu.so.6.0 libmenu.so.7.0 libmenu.so.8.0 libmj.so.0.0 libmj.so.1.0 libmudflap.so.0.0 libmudflapth.so.0.0 libnetpgp.so.2.0 libnetpgp.so.3.0 libnetpgp.so.4.0 libnetpgpverify.so.4.0 libnetpgpverify.so.5.0 libnpf.so.0.1 libns.so.10.0 libns.so.11.0 libns.so.12.0 libns.so.13.0 libns.so.14.0 libns.so.15.0 libns.so.16.0 libns.so.17.0 libns.so.18.0 libns.so.19.0 libns.so.20.0 libns.so.21.0 libns.so.22.0 libns.so.9.0 libnvpair.so.0.0 libobjc.so.3.0 libobjc.so.4.0 libopcodes.so.10.0 libopcodes.so.11.0 libopcodes.so.12.0 libopcodes.so.4.0 libopcodes.so.5.0 libopcodes.so.6.0 libopcodes.so.7.0 libopcodes.so.8.0 libopcodes.s
o.9.0 libossaudio.so.1.1 libp2k.so.1.0 libp2k.so.2.0 libpam.so.3.0 libpam.so.4.1 libpanel.so.1.0 libpanel.so.2.0 libpanel.so.3.0 libpcap.so.10.0 libpcap.so.3.0 libpcap.so.4.0 libpcap.so.5.1 libpcap.so.6.0 libpcap.so.7.0 libpcap.so.9.0 libpci.so.2.2 libperfuse.so.0.0 libposix.so.0.1 libppath.so.0.0 libprop.so.1.2 libpthread.so.1.4 libpthread_dbg.so.2.0 libpuffs.so.1.1 libpuffs.so.2.0 libquota.so.0.1 libquota.so.1.0 libradius.so.4.0 libradius.so.5.0 librefuse.so.1.0 librefuse.so.2.0 libresolv.so.2.0 libresolv.so.3.0 libroken.so.14.0 libroken.so.19.0 libroken.so.20.0 librpcsvc.so.1.0 librt.so.1.1 librump.so.0.0 librumpclient.so.0.0 librumpdev.so.0.0 librumphijack.so.0.0 librumpnet.so.0.0 librumpres.so.0.0 librumpuser.so.0.1 librumpvfs.so.0.0 libsaslc.so.0.0 libsaslc.so.1.0 libskey.so.2.0 libsl.so.4.0 libsl.so.5.0 libsl.so.6.0 libsl.so.7.0 libsqlite3.so.1.5 libssh.so.15.0 libssh.so.16.0 libssh.so.17.0 libssh.so.18.0 libssh.so.19.0 libssh.so.20.0 libssh.so.21.0 libssh.so.22.0 libssh.so.2
3.0 libssh.so.24.0 libssh.so.25.0 libssh.so.26.0 libssh.so.27.0 libssh.so.28.0 libssh.so.29.0 libssh.so.30.0 libssh.so.31.0 libssh.so.32.0 libssh.so.33.0 libssh.so.34.0 libssh.so.35.0 libssh.so.36.0 libssh.so.37.0 libssh.so.38.0 libssh.so.39.0 libssh.so.40.0 libssh.so.41.0 libssh.so.42.0 libssh.so.43.0 libssh.so.44.0 libssh.so.45.1 libssh.so.46.1 libssh.so.47.0 libssl.so.10.5 libssl.so.11.0 libssl.so.12.0 libssl.so.13.0 libssl.so.14.0 libssl.so.15.0 libssl.so.8.1 libssl.so.9.0 libstdc++.so.7.4 libstdc++.so.9.1 libterminfo.so.1.0 libterminfo.so.2 libterminfo.so.2.0 libtre.so.0.8 libubsan.so.0.0 libubsan.so.1.0 libubsan.so.3.0 libubsan.so.4.0 libubsan.so.5.0 libukfs.so.1.0 libumem.so.0.0 libunbound.so.6.2 libunbound.so.7.0 libunbound.so.8.0 libunbound.so.9.0 libusbhid.so.1.0 libutil.so.7.24 libuutil.so.0.0 libwind.so.0.0 libwind.so.1.0 libwrap.so.1.0 libz.so.1.0 libzfs.so.0.0 libzfs_core.so.0.0 libzpool.so.0.0
+ local dollar
+ dollar='$'
+ shift
+ '[' -z 'libamu.so.4.0 libamu.so.5.0 libarchive.so.3.1 libarchive.so.4.0 libarchive.so.5.1 libasan.so.0.0 libasan.so.1.0 libasan.so.2.0 libasan.so.4.0 libasan.so.5.0 libasan.so.6.0 libasn1.so.10.0 libasn1.so.8.0 libasn1.so.9.0 libatf-c++.so.0.0 libatf-c++.so.1.0 libatf-c++.so.2.0 libatf-c.so.0.0 libavl.so.0.0 libbfd.so.11.0 libbfd.so.12.0 libbfd.so.13.0 libbfd.so.14.0 libbfd.so.15.0 libbfd.so.16.0 libbfd.so.17.0 libbfd.so.18.0 libbfd.so.19.0 libbind9.so.10.0 libbind9.so.11.0 libbind9.so.12.0 libbind9.so.13.0 libbind9.so.14.0 libbind9.so.15.0 libbind9.so.16.0 libbind9.so.17.0 libbind9.so.18.0 libbind9.so.19.0 libbind9.so.20.0 libbind9.so.21.0 libbind9.so.22.0 libbind9.so.5.8 libbind9.so.6.0 libbind9.so.7.0 libbind9.so.8.5 libbind9.so.9.0 libblocklist.so.0.1 libbluetooth.so.4.2 libbozohttpd.so.0.0 libbozohttpd.so.1.0 libbsdmalloc.so.0.1 libbz2.so.1.1 libc.so.12.222 libcbor.so.0.5 libcom_err.so.6.0 libcom_err.so.7.0 libcom_err.so.8.0 libcrypt.so.1.0 libcrypto.so.11.0 libcrypto.so.12.0
libcrypto.so.13.0 libcrypto.so.14.1 libcrypto.so.15.0 libcrypto.so.6.1 libcrypto.so.7.0 libcrypto.so.8.4 libcurses.so.7.2 libcurses.so.8.2 libcurses.so.9.1 libdes.so.11.0 libdes.so.12.0 libdes.so.13.0 libdes.so.14.0 libdes.so.15.0 libdes.so.8.2 libdevmapper.so.1.0 libdm.so.0.0 libdns.so.10.0 libdns.so.11.0 libdns.so.12.0 libdns.so.13.0 libdns.so.14.0 libdns.so.15.0 libdns.so.16.0 libdns.so.17.0 libdns.so.18.0 libdns.so.19.0 libdns.so.20.0 libdns.so.21.0 libdns.so.22.0 libdns.so.5.8 libdns.so.6.0 libdns.so.7.0 libdns.so.8.5 libdns.so.9.0 libdns_sd.so.0.0 libdwarf.so.0.1 libdwarf.so.1.0 libdwarf.so.2.0 libedit.so.3.1 libelf.so.0.0 libelf.so.1.0 libelf.so.2.0 libevent.so.3.2 libevent.so.4.2 libevent.so.5.0 libevent_openssl.so.4.2 libevent_openssl.so.5.0 libevent_pthreads.so.4.2 libevent_pthreads.so.5.0 libexecinfo.so.0.0 libexpat.so.2.3 libfetch.so.3.0 libfetch.so.4.0 libfido2.so.2.1 libfido2.so.3.0 libfido2.so.4.0 libfido2.so.5.0 libform.so.6.0 libform.so.7.0 libform.so.8.0 libgcc_s.s
o.1.0 libgnuctf.so.0.0 libgnuctf.so.1.0 libgnuctf.so.2.0 libgnumalloc.so.1.0 libgomp.so.2.2 libgssapi.so.10.0 libgssapi.so.11.0 libgssapi.so.12.0 libgssapi.so.9.0 libhdb.so.13.0 libhdb.so.14.0 libhdb.so.15.0 libhdb.so.16.0 libheimbase.so.1.0 libheimbase.so.2.0 libheimntlm.so.3.0 libheimntlm.so.4.0 libheimntlm.so.5.0 libheimntlm.so.6.0 libhx509.so.4.0 libhx509.so.5.0 libhx509.so.6.0 libhx509.so.7.0 libintl.so.1.1 libipsec.so.3.0 libirs.so.10.0 libirs.so.11.0 libirs.so.12.0 libirs.so.13.0 libirs.so.14.0 libirs.so.15.0 libirs.so.16.0 libirs.so.17.0 libirs.so.18.0 libirs.so.19.0 libirs.so.20.0 libirs.so.21.0 libirs.so.22.0 libirs.so.8.5 libirs.so.9.0 libisc.so.10.0 libisc.so.11.0 libisc.so.12.0 libisc.so.13.0 libisc.so.14.0 libisc.so.15.0 libisc.so.16.0 libisc.so.17.0 libisc.so.18.0 libisc.so.19.0 libisc.so.20.0 libisc.so.21.0 libisc.so.22.0 libisc.so.5.8 libisc.so.6.0 libisc.so.7.1 libisc.so.8.5 libisc.so.9.0 libisccc.so.10.0 libisccc.so.11.0 libisccc.so.12.0 libisccc.so.13.0 libisccc.
so.14.0 libisccc.so.15.0 libisccc.so.16.0 libisccc.so.17.0 libisccc.so.18.0 libisccc.so.19.0 libisccc.so.20.0 libisccc.so.21.0 libisccc.so.22.0 libisccc.so.5.8 libisccc.so.6.0 libisccc.so.7.0 libisccc.so.8.5 libisccc.so.9.0 libisccfg.so.10.0 libisccfg.so.11.0 libisccfg.so.12.0 libisccfg.so.13.0 libisccfg.so.14.0 libisccfg.so.15.0 libisccfg.so.16.0 libisccfg.so.17.0 libisccfg.so.18.0 libisccfg.so.19.0 libisccfg.so.20.0 libisccfg.so.21.0 libisccfg.so.22.0 libisccfg.so.5.8 libisccfg.so.6.0 libisccfg.so.7.0 libisccfg.so.8.5 libisccfg.so.9.0 libiscsi.so.2.0 libisns.so.0.0 libjemalloc.so.0.0 libkadm5clnt.so.12.0 libkadm5clnt.so.13.0 libkadm5clnt.so.14.0 libkadm5clnt.so.15.0 libkadm5srv.so.13.0 libkadm5srv.so.14.0 libkadm5srv.so.15.0 libkadm5srv.so.16.0 libkafs.so.11.0 libkafs.so.12.0 libkafs.so.13.0 libkafs.so.14.0 libkdc.so.2.0 libkdc.so.3.0 libkdc.so.4.0 libkrb5.so.24.0 libkrb5.so.26.0 libkrb5.so.27.0 libkrb5.so.28.0 libkvm.so.6.0 liblber.so.3.3 liblber.so.5.0 libldap.so.4.3 libldap.so.
5.0 libldap.so.6.0 libldap_r.so.4.3 libldap_r.so.5.0 libldap_r.so.6.0 liblsan.so.2.0 liblsan.so.3.0 liblua.so.1.0 liblua.so.5.3 liblua.so.6.1 liblwres.so.5.8 liblwres.so.6.0 liblwres.so.7.0 liblwres.so.8.5 liblzf.so.0.0 liblzf.so.1.0 liblzma.so.1.1 liblzma.so.2.0 libm.so.0.14 libmagic.so.3.1 libmagic.so.4.0 libmagic.so.5.2 libmagic.so.6.0 libmagic.so.7.0 libmagic.so.8.0 libmenu.so.6.0 libmenu.so.7.0 libmenu.so.8.0 libmj.so.0.0 libmj.so.1.0 libmudflap.so.0.0 libmudflapth.so.0.0 libnetpgp.so.2.0 libnetpgp.so.3.0 libnetpgp.so.4.0 libnetpgpverify.so.4.0 libnetpgpverify.so.5.0 libnpf.so.0.1 libns.so.10.0 libns.so.11.0 libns.so.12.0 libns.so.13.0 libns.so.14.0 libns.so.15.0 libns.so.16.0 libns.so.17.0 libns.so.18.0 libns.so.19.0 libns.so.20.0 libns.so.21.0 libns.so.22.0 libns.so.9.0 libnvpair.so.0.0 libobjc.so.3.0 libobjc.so.4.0 libopcodes.so.10.0 libopcodes.so.11.0 libopcodes.so.12.0 libopcodes.so.4.0 libopcodes.so.5.0 libopcodes.so.6.0 libopcodes.so.7.0 libopcodes.so.8.0 libopcodes.so.9
.0 libossaudio.so.1.1 libp2k.so.1.0 libp2k.so.2.0 libpam.so.3.0 libpam.so.4.1 libpanel.so.1.0 libpanel.so.2.0 libpanel.so.3.0 libpcap.so.10.0 libpcap.so.3.0 libpcap.so.4.0 libpcap.so.5.1 libpcap.so.6.0 libpcap.so.7.0 libpcap.so.9.0 libpci.so.2.2 libperfuse.so.0.0 libposix.so.0.1 libppath.so.0.0 libprop.so.1.2 libpthread.so.1.4 libpthread_dbg.so.2.0 libpuffs.so.1.1 libpuffs.so.2.0 libquota.so.0.1 libquota.so.1.0 libradius.so.4.0 libradius.so.5.0 librefuse.so.1.0 librefuse.so.2.0 libresolv.so.2.0 libresolv.so.3.0 libroken.so.14.0 libroken.so.19.0 libroken.so.20.0 librpcsvc.so.1.0 librt.so.1.1 librump.so.0.0 librumpclient.so.0.0 librumpdev.so.0.0 librumphijack.so.0.0 librumpnet.so.0.0 librumpres.so.0.0 librumpuser.so.0.1 librumpvfs.so.0.0 libsaslc.so.0.0 libsaslc.so.1.0 libskey.so.2.0 libsl.so.4.0 libsl.so.5.0 libsl.so.6.0 libsl.so.7.0 libsqlite3.so.1.5 libssh.so.15.0 libssh.so.16.0 libssh.so.17.0 libssh.so.18.0 libssh.so.19.0 libssh.so.20.0 libssh.so.21.0 libssh.so.22.0 libssh.so.23.0
libssh.so.24.0 libssh.so.25.0 libssh.so.26.0 libssh.so.27.0 libssh.so.28.0 libssh.so.29.0 libssh.so.30.0 libssh.so.31.0 libssh.so.32.0 libssh.so.33.0 libssh.so.34.0 libssh.so.35.0 libssh.so.36.0 libssh.so.37.0 libssh.so.38.0 libssh.so.39.0 libssh.so.40.0 libssh.so.41.0 libssh.so.42.0 libssh.so.43.0 libssh.so.44.0 libssh.so.45.1 libssh.so.46.1 libssh.so.47.0 libssl.so.10.5 libssl.so.11.0 libssl.so.12.0 libssl.so.13.0 libssl.so.14.0 libssl.so.15.0 libssl.so.8.1 libssl.so.9.0 libstdc++.so.7.4 libstdc++.so.9.1 libterminfo.so.1.0 libterminfo.so.2 libterminfo.so.2.0 libtre.so.0.8 libubsan.so.0.0 libubsan.so.1.0 libubsan.so.3.0 libubsan.so.4.0 libubsan.so.5.0 libukfs.so.1.0 libumem.so.0.0 libunbound.so.6.2 libunbound.so.7.0 libunbound.so.8.0 libunbound.so.9.0 libusbhid.so.1.0 libutil.so.7.24 libuutil.so.0.0 libwind.so.0.0 libwind.so.1.0 libwrap.so.1.0 libz.so.1.0 libzfs.so.0.0 libzfs_core.so.0.0 libzpool.so.0.0' ']'
+ sed -e 's/\./\\./g' -e 's/ /$|^/g'
+ echo libamu.so.4.0 libamu.so.5.0 libarchive.so.3.1 libarchive.so.4.0 libarchive.so.5.1 libasan.so.0.0 libasan.so.1.0 libasan.so.2.0 libasan.so.4.0 libasan.so.5.0 libasan.so.6.0 libasn1.so.10.0 libasn1.so.8.0 libasn1.so.9.0 libatf-c++.so.0.0 libatf-c++.so.1.0 libatf-c++.so.2.0 libatf-c.so.0.0 libavl.so.0.0 libbfd.so.11.0 libbfd.so.12.0 libbfd.so.13.0 libbfd.so.14.0 libbfd.so.15.0 libbfd.so.16.0 libbfd.so.17.0 libbfd.so.18.0 libbfd.so.19.0 libbind9.so.10.0 libbind9.so.11.0 libbind9.so.12.0 libbind9.so.13.0 libbind9.so.14.0 libbind9.so.15.0 libbind9.so.16.0 libbind9.so.17.0 libbind9.so.18.0 libbind9.so.19.0 libbind9.so.20.0 libbind9.so.21.0 libbind9.so.22.0 libbind9.so.5.8 libbind9.so.6.0 libbind9.so.7.0 libbind9.so.8.5 libbind9.so.9.0 libblocklist.so.0.1 libbluetooth.so.4.2 libbozohttpd.so.0.0 libbozohttpd.so.1.0 libbsdmalloc.so.0.1 libbz2.so.1.1 libc.so.12.222 libcbor.so.0.5 libcom_err.so.6.0 libcom_err.so.7.0 libcom_err.so.8.0 libcrypt.so.1.0 libcrypto.so.11.0 libcrypto.so.12.0 lib
crypto.so.13.0 libcrypto.so.14.1 libcrypto.so.15.0 libcrypto.so.6.1 libcrypto.so.7.0 libcrypto.so.8.4 libcurses.so.7.2 libcurses.so.8.2 libcurses.so.9.1 libdes.so.11.0 libdes.so.12.0 libdes.so.13.0 libdes.so.14.0 libdes.so.15.0 libdes.so.8.2 libdevmapper.so.1.0 libdm.so.0.0 libdns.so.10.0 libdns.so.11.0 libdns.so.12.0 libdns.so.13.0 libdns.so.14.0 libdns.so.15.0 libdns.so.16.0 libdns.so.17.0 libdns.so.18.0 libdns.so.19.0 libdns.so.20.0 libdns.so.21.0 libdns.so.22.0 libdns.so.5.8 libdns.so.6.0 libdns.so.7.0 libdns.so.8.5 libdns.so.9.0 libdns_sd.so.0.0 libdwarf.so.0.1 libdwarf.so.1.0 libdwarf.so.2.0 libedit.so.3.1 libelf.so.0.0 libelf.so.1.0 libelf.so.2.0 libevent.so.3.2 libevent.so.4.2 libevent.so.5.0 libevent_openssl.so.4.2 libevent_openssl.so.5.0 libevent_pthreads.so.4.2 libevent_pthreads.so.5.0 libexecinfo.so.0.0 libexpat.so.2.3 libfetch.so.3.0 libfetch.so.4.0 libfido2.so.2.1 libfido2.so.3.0 libfido2.so.4.0 libfido2.so.5.0 libform.so.6.0 libform.so.7.0 libform.so.8.0 libgcc_s.so.1
.0 libgnuctf.so.0.0 libgnuctf.so.1.0 libgnuctf.so.2.0 libgnumalloc.so.1.0 libgomp.so.2.2 libgssapi.so.10.0 libgssapi.so.11.0 libgssapi.so.12.0 libgssapi.so.9.0 libhdb.so.13.0 libhdb.so.14.0 libhdb.so.15.0 libhdb.so.16.0 libheimbase.so.1.0 libheimbase.so.2.0 libheimntlm.so.3.0 libheimntlm.so.4.0 libheimntlm.so.5.0 libheimntlm.so.6.0 libhx509.so.4.0 libhx509.so.5.0 libhx509.so.6.0 libhx509.so.7.0 libintl.so.1.1 libipsec.so.3.0 libirs.so.10.0 libirs.so.11.0 libirs.so.12.0 libirs.so.13.0 libirs.so.14.0 libirs.so.15.0 libirs.so.16.0 libirs.so.17.0 libirs.so.18.0 libirs.so.19.0 libirs.so.20.0 libirs.so.21.0 libirs.so.22.0 libirs.so.8.5 libirs.so.9.0 libisc.so.10.0 libisc.so.11.0 libisc.so.12.0 libisc.so.13.0 libisc.so.14.0 libisc.so.15.0 libisc.so.16.0 libisc.so.17.0 libisc.so.18.0 libisc.so.19.0 libisc.so.20.0 libisc.so.21.0 libisc.so.22.0 libisc.so.5.8 libisc.so.6.0 libisc.so.7.1 libisc.so.8.5 libisc.so.9.0 libisccc.so.10.0 libisccc.so.11.0 libisccc.so.12.0 libisccc.so.13.0 libisccc.so.
14.0 libisccc.so.15.0 libisccc.so.16.0 libisccc.so.17.0 libisccc.so.18.0 libisccc.so.19.0 libisccc.so.20.0 libisccc.so.21.0 libisccc.so.22.0 libisccc.so.5.8 libisccc.so.6.0 libisccc.so.7.0 libisccc.so.8.5 libisccc.so.9.0 libisccfg.so.10.0 libisccfg.so.11.0 libisccfg.so.12.0 libisccfg.so.13.0 libisccfg.so.14.0 libisccfg.so.15.0 libisccfg.so.16.0 libisccfg.so.17.0 libisccfg.so.18.0 libisccfg.so.19.0 libisccfg.so.20.0 libisccfg.so.21.0 libisccfg.so.22.0 libisccfg.so.5.8 libisccfg.so.6.0 libisccfg.so.7.0 libisccfg.so.8.5 libisccfg.so.9.0 libiscsi.so.2.0 libisns.so.0.0 libjemalloc.so.0.0 libkadm5clnt.so.12.0 libkadm5clnt.so.13.0 libkadm5clnt.so.14.0 libkadm5clnt.so.15.0 libkadm5srv.so.13.0 libkadm5srv.so.14.0 libkadm5srv.so.15.0 libkadm5srv.so.16.0 libkafs.so.11.0 libkafs.so.12.0 libkafs.so.13.0 libkafs.so.14.0 libkdc.so.2.0 libkdc.so.3.0 libkdc.so.4.0 libkrb5.so.24.0 libkrb5.so.26.0 libkrb5.so.27.0 libkrb5.so.28.0 libkvm.so.6.0 liblber.so.3.3 liblber.so.5.0 libldap.so.4.3 libldap.so.5.0
libldap.so.6.0 libldap_r.so.4.3 libldap_r.so.5.0 libldap_r.so.6.0 liblsan.so.2.0 liblsan.so.3.0 liblua.so.1.0 liblua.so.5.3 liblua.so.6.1 liblwres.so.5.8 liblwres.so.6.0 liblwres.so.7.0 liblwres.so.8.5 liblzf.so.0.0 liblzf.so.1.0 liblzma.so.1.1 liblzma.so.2.0 libm.so.0.14 libmagic.so.3.1 libmagic.so.4.0 libmagic.so.5.2 libmagic.so.6.0 libmagic.so.7.0 libmagic.so.8.0 libmenu.so.6.0 libmenu.so.7.0 libmenu.so.8.0 libmj.so.0.0 libmj.so.1.0 libmudflap.so.0.0 libmudflapth.so.0.0 libnetpgp.so.2.0 libnetpgp.so.3.0 libnetpgp.so.4.0 libnetpgpverify.so.4.0 libnetpgpverify.so.5.0 libnpf.so.0.1 libns.so.10.0 libns.so.11.0 libns.so.12.0 libns.so.13.0 libns.so.14.0 libns.so.15.0 libns.so.16.0 libns.so.17.0 libns.so.18.0 libns.so.19.0 libns.so.20.0 libns.so.21.0 libns.so.22.0 libns.so.9.0 libnvpair.so.0.0 libobjc.so.3.0 libobjc.so.4.0 libopcodes.so.10.0 libopcodes.so.11.0 libopcodes.so.12.0 libopcodes.so.4.0 libopcodes.so.5.0 libopcodes.so.6.0 libopcodes.so.7.0 libopcodes.so.8.0 libopcodes.so.9.0
libossaudio.so.1.1 libp2k.so.1.0 libp2k.so.2.0 libpam.so.3.0 libpam.so.4.1 libpanel.so.1.0 libpanel.so.2.0 libpanel.so.3.0 libpcap.so.10.0 libpcap.so.3.0 libpcap.so.4.0 libpcap.so.5.1 libpcap.so.6.0 libpcap.so.7.0 libpcap.so.9.0 libpci.so.2.2 libperfuse.so.0.0 libposix.so.0.1 libppath.so.0.0 libprop.so.1.2 libpthread.so.1.4 libpthread_dbg.so.2.0 libpuffs.so.1.1 libpuffs.so.2.0 libquota.so.0.1 libquota.so.1.0 libradius.so.4.0 libradius.so.5.0 librefuse.so.1.0 librefuse.so.2.0 libresolv.so.2.0 libresolv.so.3.0 libroken.so.14.0 libroken.so.19.0 libroken.so.20.0 librpcsvc.so.1.0 librt.so.1.1 librump.so.0.0 librumpclient.so.0.0 librumpdev.so.0.0 librumphijack.so.0.0 librumpnet.so.0.0 librumpres.so.0.0 librumpuser.so.0.1 librumpvfs.so.0.0 libsaslc.so.0.0 libsaslc.so.1.0 libskey.so.2.0 libsl.so.4.0 libsl.so.5.0 libsl.so.6.0 libsl.so.7.0 libsqlite3.so.1.5 libssh.so.15.0 libssh.so.16.0 libssh.so.17.0 libssh.so.18.0 libssh.so.19.0 libssh.so.20.0 libssh.so.21.0 libssh.so.22.0 libssh.so.23.0 li
bssh.so.24.0 libssh.so.25.0 libssh.so.26.0 libssh.so.27.0 libssh.so.28.0 libssh.so.29.0 libssh.so.30.0 libssh.so.31.0 libssh.so.32.0 libssh.so.33.0 libssh.so.34.0 libssh.so.35.0 libssh.so.36.0 libssh.so.37.0 libssh.so.38.0 libssh.so.39.0 libssh.so.40.0 libssh.so.41.0 libssh.so.42.0 libssh.so.43.0 libssh.so.44.0 libssh.so.45.1 libssh.so.46.1 libssh.so.47.0 libssl.so.10.5 libssl.so.11.0 libssl.so.12.0 libssl.so.13.0 libssl.so.14.0 libssl.so.15.0 libssl.so.8.1 libssl.so.9.0 libstdc++.so.7.4 libstdc++.so.9.1 libterminfo.so.1.0 libterminfo.so.2 libterminfo.so.2.0 libtre.so.0.8 libubsan.so.0.0 libubsan.so.1.0 libubsan.so.3.0 libubsan.so.4.0 libubsan.so.5.0 libukfs.so.1.0 libumem.so.0.0 libunbound.so.6.2 libunbound.so.7.0 libunbound.so.8.0 libunbound.so.9.0 libusbhid.so.1.0 libutil.so.7.24 libuutil.so.0.0 libwind.so.0.0 libwind.so.1.0 libwrap.so.1.0 libz.so.1.0 libzfs.so.0.0 libzfs_core.so.0.0 libzpool.so.0.0
+ eval grep -v -E \''(^libamu\.so\.4\.0$|^libamu\.so\.5\.0$|^libarchive\.so\.3\.1$|^libarchive\.so\.4\.0$|^libarchive\.so\.5\.1$|^libasan\.so\.0\.0$|^libasan\.so\.1\.0$|^libasan\.so\.2\.0$|^libasan\.so\.4\.0$|^libasan\.so\.5\.0$|^libasan\.so\.6\.0$|^libasn1\.so\.10\.0$|^libasn1\.so\.8\.0$|^libasn1\.so\.9\.0$|^libatf-c++\.so\.0\.0$|^libatf-c++\.so\.1\.0$|^libatf-c++\.so\.2\.0$|^libatf-c\.so\.0\.0$|^libavl\.so\.0\.0$|^libbfd\.so\.11\.0$|^libbfd\.so\.12\.0$|^libbfd\.so\.13\.0$|^libbfd\.so\.14\.0$|^libbfd\.so\.15\.0$|^libbfd\.so\.16\.0$|^libbfd\.so\.17\.0$|^libbfd\.so\.18\.0$|^libbfd\.so\.19\.0$|^libbind9\.so\.10\.0$|^libbind9\.so\.11\.0$|^libbind9\.so\.12\.0$|^libbind9\.so\.13\.0$|^libbind9\.so\.14\.0$|^libbind9\.so\.15\.0$|^libbind9\.so\.16\.0$|^libbind9\.so\.17\.0$|^libbind9\.so\.18\.0$|^libbind9\.so\.19\.0$|^libbind9\.so\.20\.0$|^libbind9\.so\.21\.0$|^libbind9\.so\.22\.0$|^libbind9\.so\.5\.8$|^libbind9\.so\.6\.0$|^libbind9\.so\.7\.0$|^libbind9\.so\.8\.5$|^libbind9\.so\.9\.0$|^libbloc
klist\.so\.0\.1$|^libbluetooth\.so\.4\.2$|^libbozohttpd\.so\.0\.0$|^libbozohttpd\.so\.1\.0$|^libbsdmalloc\.so\.0\.1$|^libbz2\.so\.1\.1$|^libc\.so\.12\.222$|^libcbor\.so\.0\.5$|^libcom_err\.so\.6\.0$|^libcom_err\.so\.7\.0$|^libcom_err\.so\.8\.0$|^libcrypt\.so\.1\.0$|^libcrypto\.so\.11\.0$|^libcrypto\.so\.12\.0$|^libcrypto\.so\.13\.0$|^libcrypto\.so\.14\.1$|^libcrypto\.so\.15\.0$|^libcrypto\.so\.6\.1$|^libcrypto\.so\.7\.0$|^libcrypto\.so\.8\.4$|^libcurses\.so\.7\.2$|^libcurses\.so\.8\.2$|^libcurses\.so\.9\.1$|^libdes\.so\.11\.0$|^libdes\.so\.12\.0$|^libdes\.so\.13\.0$|^libdes\.so\.14\.0$|^libdes\.so\.15\.0$|^libdes\.so\.8\.2$|^libdevmapper\.so\.1\.0$|^libdm\.so\.0\.0$|^libdns\.so\.10\.0$|^libdns\.so\.11\.0$|^libdns\.so\.12\.0$|^libdns\.so\.13\.0$|^libdns\.so\.14\.0$|^libdns\.so\.15\.0$|^libdns\.so\.16\.0$|^libdns\.so\.17\.0$|^libdns\.so\.18\.0$|^libdns\.so\.19\.0$|^libdns\.so\.20\.0$|^libdns\.so\.21\.0$|^libdns\.so\.22\.0$|^libdns\.so\.5\.8$|^libdns\.so\.6\.0$|^libdns\.so\.7\.0$|^libd
ns\.so\.8\.5$|^libdns\.so\.9\.0$|^libdns_sd\.so\.0\.0$|^libdwarf\.so\.0\.1$|^libdwarf\.so\.1\.0$|^libdwarf\.so\.2\.0$|^libedit\.so\.3\.1$|^libelf\.so\.0\.0$|^libelf\.so\.1\.0$|^libelf\.so\.2\.0$|^libevent\.so\.3\.2$|^libevent\.so\.4\.2$|^libevent\.so\.5\.0$|^libevent_openssl\.so\.4\.2$|^libevent_openssl\.so\.5\.0$|^libevent_pthreads\.so\.4\.2$|^libevent_pthreads\.so\.5\.0$|^libexecinfo\.so\.0\.0$|^libexpat\.so\.2\.3$|^libfetch\.so\.3\.0$|^libfetch\.so\.4\.0$|^libfido2\.so\.2\.1$|^libfido2\.so\.3\.0$|^libfido2\.so\.4\.0$|^libfido2\.so\.5\.0$|^libform\.so\.6\.0$|^libform\.so\.7\.0$|^libform\.so\.8\.0$|^libgcc_s\.so\.1\.0$|^libgnuctf\.so\.0\.0$|^libgnuctf\.so\.1\.0$|^libgnuctf\.so\.2\.0$|^libgnumalloc\.so\.1\.0$|^libgomp\.so\.2\.2$|^libgssapi\.so\.10\.0$|^libgssapi\.so\.11\.0$|^libgssapi\.so\.12\.0$|^libgssapi\.so\.9\.0$|^libhdb\.so\.13\.0$|^libhdb\.so\.14\.0$|^libhdb\.so\.15\.0$|^libhdb\.so\.16\.0$|^libheimbase\.so\.1\.0$|^libheimbase\.so\.2\.0$|^libheimntlm\.so\.3\.0$|^libheimntlm\.s
o\.4\.0$|^libheimntlm\.so\.5\.0$|^libheimntlm\.so\.6\.0$|^libhx509\.so\.4\.0$|^libhx509\.so\.5\.0$|^libhx509\.so\.6\.0$|^libhx509\.so\.7\.0$|^libintl\.so\.1\.1$|^libipsec\.so\.3\.0$|^libirs\.so\.10\.0$|^libirs\.so\.11\.0$|^libirs\.so\.12\.0$|^libirs\.so\.13\.0$|^libirs\.so\.14\.0$|^libirs\.so\.15\.0$|^libirs\.so\.16\.0$|^libirs\.so\.17\.0$|^libirs\.so\.18\.0$|^libirs\.so\.19\.0$|^libirs\.so\.20\.0$|^libirs\.so\.21\.0$|^libirs\.so\.22\.0$|^libirs\.so\.8\.5$|^libirs\.so\.9\.0$|^libisc\.so\.10\.0$|^libisc\.so\.11\.0$|^libisc\.so\.12\.0$|^libisc\.so\.13\.0$|^libisc\.so\.14\.0$|^libisc\.so\.15\.0$|^libisc\.so\.16\.0$|^libisc\.so\.17\.0$|^libisc\.so\.18\.0$|^libisc\.so\.19\.0$|^libisc\.so\.20\.0$|^libisc\.so\.21\.0$|^libisc\.so\.22\.0$|^libisc\.so\.5\.8$|^libisc\.so\.6\.0$|^libisc\.so\.7\.1$|^libisc\.so\.8\.5$|^libisc\.so\.9\.0$|^libisccc\.so\.10\.0$|^libisccc\.so\.11\.0$|^libisccc\.so\.12\.0$|^libisccc\.so\.13\.0$|^libisccc\.so\.14\.0$|^libisccc\.so\.15\.0$|^libisccc\.so\.16\.0$|^libiscc
c\.so\.17\.0$|^libisccc\.so\.18\.0$|^libisccc\.so\.19\.0$|^libisccc\.so\.20\.0$|^libisccc\.so\.21\.0$|^libisccc\.so\.22\.0$|^libisccc\.so\.5\.8$|^libisccc\.so\.6\.0$|^libisccc\.so\.7\.0$|^libisccc\.so\.8\.5$|^libisccc\.so\.9\.0$|^libisccfg\.so\.10\.0$|^libisccfg\.so\.11\.0$|^libisccfg\.so\.12\.0$|^libisccfg\.so\.13\.0$|^libisccfg\.so\.14\.0$|^libisccfg\.so\.15\.0$|^libisccfg\.so\.16\.0$|^libisccfg\.so\.17\.0$|^libisccfg\.so\.18\.0$|^libisccfg\.so\.19\.0$|^libisccfg\.so\.20\.0$|^libisccfg\.so\.21\.0$|^libisccfg\.so\.22\.0$|^libisccfg\.so\.5\.8$|^libisccfg\.so\.6\.0$|^libisccfg\.so\.7\.0$|^libisccfg\.so\.8\.5$|^libisccfg\.so\.9\.0$|^libiscsi\.so\.2\.0$|^libisns\.so\.0\.0$|^libjemalloc\.so\.0\.0$|^libkadm5clnt\.so\.12\.0$|^libkadm5clnt\.so\.13\.0$|^libkadm5clnt\.so\.14\.0$|^libkadm5clnt\.so\.15\.0$|^libkadm5srv\.so\.13\.0$|^libkadm5srv\.so\.14\.0$|^libkadm5srv\.so\.15\.0$|^libkadm5srv\.so\.16\.0$|^libkafs\.so\.11\.0$|^libkafs\.so\.12\.0$|^libkafs\.so\.13\.0$|^libkafs\.so\.14\.0$|^libkd
c\.so\.2\.0$|^libkdc\.so\.3\.0$|^libkdc\.so\.4\.0$|^libkrb5\.so\.24\.0$|^libkrb5\.so\.26\.0$|^libkrb5\.so\.27\.0$|^libkrb5\.so\.28\.0$|^libkvm\.so\.6\.0$|^liblber\.so\.3\.3$|^liblber\.so\.5\.0$|^libldap\.so\.4\.3$|^libldap\.so\.5\.0$|^libldap\.so\.6\.0$|^libldap_r\.so\.4\.3$|^libldap_r\.so\.5\.0$|^libldap_r\.so\.6\.0$|^liblsan\.so\.2\.0$|^liblsan\.so\.3\.0$|^liblua\.so\.1\.0$|^liblua\.so\.5\.3$|^liblua\.so\.6\.1$|^liblwres\.so\.5\.8$|^liblwres\.so\.6\.0$|^liblwres\.so\.7\.0$|^liblwres\.so\.8\.5$|^liblzf\.so\.0\.0$|^liblzf\.so\.1\.0$|^liblzma\.so\.1\.1$|^liblzma\.so\.2\.0$|^libm\.so\.0\.14$|^libmagic\.so\.3\.1$|^libmagic\.so\.4\.0$|^libmagic\.so\.5\.2$|^libmagic\.so\.6\.0$|^libmagic\.so\.7\.0$|^libmagic\.so\.8\.0$|^libmenu\.so\.6\.0$|^libmenu\.so\.7\.0$|^libmenu\.so\.8\.0$|^libmj\.so\.0\.0$|^libmj\.so\.1\.0$|^libmudflap\.so\.0\.0$|^libmudflapth\.so\.0\.0$|^libnetpgp\.so\.2\.0$|^libnetpgp\.so\.3\.0$|^libnetpgp\.so\.4\.0$|^libnetpgpverify\.so\.4\.0$|^libnetpgpverify\.so\.5\.0$|^libnpf\
.so\.0\.1$|^libns\.so\.10\.0$|^libns\.so\.11\.0$|^libns\.so\.12\.0$|^libns\.so\.13\.0$|^libns\.so\.14\.0$|^libns\.so\.15\.0$|^libns\.so\.16\.0$|^libns\.so\.17\.0$|^libns\.so\.18\.0$|^libns\.so\.19\.0$|^libns\.so\.20\.0$|^libns\.so\.21\.0$|^libns\.so\.22\.0$|^libns\.so\.9\.0$|^libnvpair\.so\.0\.0$|^libobjc\.so\.3\.0$|^libobjc\.so\.4\.0$|^libopcodes\.so\.10\.0$|^libopcodes\.so\.11\.0$|^libopcodes\.so\.12\.0$|^libopcodes\.so\.4\.0$|^libopcodes\.so\.5\.0$|^libopcodes\.so\.6\.0$|^libopcodes\.so\.7\.0$|^libopcodes\.so\.8\.0$|^libopcodes\.so\.9\.0$|^libossaudio\.so\.1\.1$|^libp2k\.so\.1\.0$|^libp2k\.so\.2\.0$|^libpam\.so\.3\.0$|^libpam\.so\.4\.1$|^libpanel\.so\.1\.0$|^libpanel\.so\.2\.0$|^libpanel\.so\.3\.0$|^libpcap\.so\.10\.0$|^libpcap\.so\.3\.0$|^libpcap\.so\.4\.0$|^libpcap\.so\.5\.1$|^libpcap\.so\.6\.0$|^libpcap\.so\.7\.0$|^libpcap\.so\.9\.0$|^libpci\.so\.2\.2$|^libperfuse\.so\.0\.0$|^libposix\.so\.0\.1$|^libppath\.so\.0\.0$|^libprop\.so\.1\.2$|^libpthread\.so\.1\.4$|^libpthread_dbg\.s
o\.2\.0$|^libpuffs\.so\.1\.1$|^libpuffs\.so\.2\.0$|^libquota\.so\.0\.1$|^libquota\.so\.1\.0$|^libradius\.so\.4\.0$|^libradius\.so\.5\.0$|^librefuse\.so\.1\.0$|^librefuse\.so\.2\.0$|^libresolv\.so\.2\.0$|^libresolv\.so\.3\.0$|^libroken\.so\.14\.0$|^libroken\.so\.19\.0$|^libroken\.so\.20\.0$|^librpcsvc\.so\.1\.0$|^librt\.so\.1\.1$|^librump\.so\.0\.0$|^librumpclient\.so\.0\.0$|^librumpdev\.so\.0\.0$|^librumphijack\.so\.0\.0$|^librumpnet\.so\.0\.0$|^librumpres\.so\.0\.0$|^librumpuser\.so\.0\.1$|^librumpvfs\.so\.0\.0$|^libsaslc\.so\.0\.0$|^libsaslc\.so\.1\.0$|^libskey\.so\.2\.0$|^libsl\.so\.4\.0$|^libsl\.so\.5\.0$|^libsl\.so\.6\.0$|^libsl\.so\.7\.0$|^libsqlite3\.so\.1\.5$|^libssh\.so\.15\.0$|^libssh\.so\.16\.0$|^libssh\.so\.17\.0$|^libssh\.so\.18\.0$|^libssh\.so\.19\.0$|^libssh\.so\.20\.0$|^libssh\.so\.21\.0$|^libssh\.so\.22\.0$|^libssh\.so\.23\.0$|^libssh\.so\.24\.0$|^libssh\.so\.25\.0$|^libssh\.so\.26\.0$|^libssh\.so\.27\.0$|^libssh\.so\.28\.0$|^libssh\.so\.29\.0$|^libssh\.so\.30\.0$|^
libssh\.so\.31\.0$|^libssh\.so\.32\.0$|^libssh\.so\.33\.0$|^libssh\.so\.34\.0$|^libssh\.so\.35\.0$|^libssh\.so\.36\.0$|^libssh\.so\.37\.0$|^libssh\.so\.38\.0$|^libssh\.so\.39\.0$|^libssh\.so\.40\.0$|^libssh\.so\.41\.0$|^libssh\.so\.42\.0$|^libssh\.so\.43\.0$|^libssh\.so\.44\.0$|^libssh\.so\.45\.1$|^libssh\.so\.46\.1$|^libssh\.so\.47\.0$|^libssl\.so\.10\.5$|^libssl\.so\.11\.0$|^libssl\.so\.12\.0$|^libssl\.so\.13\.0$|^libssl\.so\.14\.0$|^libssl\.so\.15\.0$|^libssl\.so\.8\.1$|^libssl\.so\.9\.0$|^libstdc++\.so\.7\.4$|^libstdc++\.so\.9\.1$|^libterminfo\.so\.1\.0$|^libterminfo\.so\.2$|^libterminfo\.so\.2\.0$|^libtre\.so\.0\.8$|^libubsan\.so\.0\.0$|^libubsan\.so\.1\.0$|^libubsan\.so\.3\.0$|^libubsan\.so\.4\.0$|^libubsan\.so\.5\.0$|^libukfs\.so\.1\.0$|^libumem\.so\.0\.0$|^libunbound\.so\.6\.2$|^libunbound\.so\.7\.0$|^libunbound\.so\.8\.0$|^libunbound\.so\.9\.0$|^libusbhid\.so\.1\.0$|^libutil\.so\.7\.24$|^libuutil\.so\.0\.0$|^libwind\.so\.0\.0$|^libwind\.so\.1\.0$|^libwrap\.so\.1\.0$|^libz\.
so\.1\.0$|^libzfs\.so\.0\.0$|^libzfs_core\.so\.0\.0$|^libzpool\.so\.0\.0$)'\'
+ grep -v -E '(^libamu\.so\.4\.0$|^libamu\.so\.5\.0$|^libarchive\.so\.3\.1$|^libarchive\.so\.4\.0$|^libarchive\.so\.5\.1$|^libasan\.so\.0\.0$|^libasan\.so\.1\.0$|^libasan\.so\.2\.0$|^libasan\.so\.4\.0$|^libasan\.so\.5\.0$|^libasan\.so\.6\.0$|^libasn1\.so\.10\.0$|^libasn1\.so\.8\.0$|^libasn1\.so\.9\.0$|^libatf-c++\.so\.0\.0$|^libatf-c++\.so\.1\.0$|^libatf-c++\.so\.2\.0$|^libatf-c\.so\.0\.0$|^libavl\.so\.0\.0$|^libbfd\.so\.11\.0$|^libbfd\.so\.12\.0$|^libbfd\.so\.13\.0$|^libbfd\.so\.14\.0$|^libbfd\.so\.15\.0$|^libbfd\.so\.16\.0$|^libbfd\.so\.17\.0$|^libbfd\.so\.18\.0$|^libbfd\.so\.19\.0$|^libbind9\.so\.10\.0$|^libbind9\.so\.11\.0$|^libbind9\.so\.12\.0$|^libbind9\.so\.13\.0$|^libbind9\.so\.14\.0$|^libbind9\.so\.15\.0$|^libbind9\.so\.16\.0$|^libbind9\.so\.17\.0$|^libbind9\.so\.18\.0$|^libbind9\.so\.19\.0$|^libbind9\.so\.20\.0$|^libbind9\.so\.21\.0$|^libbind9\.so\.22\.0$|^libbind9\.so\.5\.8$|^libbind9\.so\.6\.0$|^libbind9\.so\.7\.0$|^libbind9\.so\.8\.5$|^libbind9\.so\.9\.0$|^libblocklist\.
so\.0\.1$|^libbluetooth\.so\.4\.2$|^libbozohttpd\.so\.0\.0$|^libbozohttpd\.so\.1\.0$|^libbsdmalloc\.so\.0\.1$|^libbz2\.so\.1\.1$|^libc\.so\.12\.222$|^libcbor\.so\.0\.5$|^libcom_err\.so\.6\.0$|^libcom_err\.so\.7\.0$|^libcom_err\.so\.8\.0$|^libcrypt\.so\.1\.0$|^libcrypto\.so\.11\.0$|^libcrypto\.so\.12\.0$|^libcrypto\.so\.13\.0$|^libcrypto\.so\.14\.1$|^libcrypto\.so\.15\.0$|^libcrypto\.so\.6\.1$|^libcrypto\.so\.7\.0$|^libcrypto\.so\.8\.4$|^libcurses\.so\.7\.2$|^libcurses\.so\.8\.2$|^libcurses\.so\.9\.1$|^libdes\.so\.11\.0$|^libdes\.so\.12\.0$|^libdes\.so\.13\.0$|^libdes\.so\.14\.0$|^libdes\.so\.15\.0$|^libdes\.so\.8\.2$|^libdevmapper\.so\.1\.0$|^libdm\.so\.0\.0$|^libdns\.so\.10\.0$|^libdns\.so\.11\.0$|^libdns\.so\.12\.0$|^libdns\.so\.13\.0$|^libdns\.so\.14\.0$|^libdns\.so\.15\.0$|^libdns\.so\.16\.0$|^libdns\.so\.17\.0$|^libdns\.so\.18\.0$|^libdns\.so\.19\.0$|^libdns\.so\.20\.0$|^libdns\.so\.21\.0$|^libdns\.so\.22\.0$|^libdns\.so\.5\.8$|^libdns\.so\.6\.0$|^libdns\.so\.7\.0$|^libdns\.so\
.8\.5$|^libdns\.so\.9\.0$|^libdns_sd\.so\.0\.0$|^libdwarf\.so\.0\.1$|^libdwarf\.so\.1\.0$|^libdwarf\.so\.2\.0$|^libedit\.so\.3\.1$|^libelf\.so\.0\.0$|^libelf\.so\.1\.0$|^libelf\.so\.2\.0$|^libevent\.so\.3\.2$|^libevent\.so\.4\.2$|^libevent\.so\.5\.0$|^libevent_openssl\.so\.4\.2$|^libevent_openssl\.so\.5\.0$|^libevent_pthreads\.so\.4\.2$|^libevent_pthreads\.so\.5\.0$|^libexecinfo\.so\.0\.0$|^libexpat\.so\.2\.3$|^libfetch\.so\.3\.0$|^libfetch\.so\.4\.0$|^libfido2\.so\.2\.1$|^libfido2\.so\.3\.0$|^libfido2\.so\.4\.0$|^libfido2\.so\.5\.0$|^libform\.so\.6\.0$|^libform\.so\.7\.0$|^libform\.so\.8\.0$|^libgcc_s\.so\.1\.0$|^libgnuctf\.so\.0\.0$|^libgnuctf\.so\.1\.0$|^libgnuctf\.so\.2\.0$|^libgnumalloc\.so\.1\.0$|^libgomp\.so\.2\.2$|^libgssapi\.so\.10\.0$|^libgssapi\.so\.11\.0$|^libgssapi\.so\.12\.0$|^libgssapi\.so\.9\.0$|^libhdb\.so\.13\.0$|^libhdb\.so\.14\.0$|^libhdb\.so\.15\.0$|^libhdb\.so\.16\.0$|^libheimbase\.so\.1\.0$|^libheimbase\.so\.2\.0$|^libheimntlm\.so\.3\.0$|^libheimntlm\.so\.4\.0
$|^libheimntlm\.so\.5\.0$|^libheimntlm\.so\.6\.0$|^libhx509\.so\.4\.0$|^libhx509\.so\.5\.0$|^libhx509\.so\.6\.0$|^libhx509\.so\.7\.0$|^libintl\.so\.1\.1$|^libipsec\.so\.3\.0$|^libirs\.so\.10\.0$|^libirs\.so\.11\.0$|^libirs\.so\.12\.0$|^libirs\.so\.13\.0$|^libirs\.so\.14\.0$|^libirs\.so\.15\.0$|^libirs\.so\.16\.0$|^libirs\.so\.17\.0$|^libirs\.so\.18\.0$|^libirs\.so\.19\.0$|^libirs\.so\.20\.0$|^libirs\.so\.21\.0$|^libirs\.so\.22\.0$|^libirs\.so\.8\.5$|^libirs\.so\.9\.0$|^libisc\.so\.10\.0$|^libisc\.so\.11\.0$|^libisc\.so\.12\.0$|^libisc\.so\.13\.0$|^libisc\.so\.14\.0$|^libisc\.so\.15\.0$|^libisc\.so\.16\.0$|^libisc\.so\.17\.0$|^libisc\.so\.18\.0$|^libisc\.so\.19\.0$|^libisc\.so\.20\.0$|^libisc\.so\.21\.0$|^libisc\.so\.22\.0$|^libisc\.so\.5\.8$|^libisc\.so\.6\.0$|^libisc\.so\.7\.1$|^libisc\.so\.8\.5$|^libisc\.so\.9\.0$|^libisccc\.so\.10\.0$|^libisccc\.so\.11\.0$|^libisccc\.so\.12\.0$|^libisccc\.so\.13\.0$|^libisccc\.so\.14\.0$|^libisccc\.so\.15\.0$|^libisccc\.so\.16\.0$|^libisccc\.so\.
17\.0$|^libisccc\.so\.18\.0$|^libisccc\.so\.19\.0$|^libisccc\.so\.20\.0$|^libisccc\.so\.21\.0$|^libisccc\.so\.22\.0$|^libisccc\.so\.5\.8$|^libisccc\.so\.6\.0$|^libisccc\.so\.7\.0$|^libisccc\.so\.8\.5$|^libisccc\.so\.9\.0$|^libisccfg\.so\.10\.0$|^libisccfg\.so\.11\.0$|^libisccfg\.so\.12\.0$|^libisccfg\.so\.13\.0$|^libisccfg\.so\.14\.0$|^libisccfg\.so\.15\.0$|^libisccfg\.so\.16\.0$|^libisccfg\.so\.17\.0$|^libisccfg\.so\.18\.0$|^libisccfg\.so\.19\.0$|^libisccfg\.so\.20\.0$|^libisccfg\.so\.21\.0$|^libisccfg\.so\.22\.0$|^libisccfg\.so\.5\.8$|^libisccfg\.so\.6\.0$|^libisccfg\.so\.7\.0$|^libisccfg\.so\.8\.5$|^libisccfg\.so\.9\.0$|^libiscsi\.so\.2\.0$|^libisns\.so\.0\.0$|^libjemalloc\.so\.0\.0$|^libkadm5clnt\.so\.12\.0$|^libkadm5clnt\.so\.13\.0$|^libkadm5clnt\.so\.14\.0$|^libkadm5clnt\.so\.15\.0$|^libkadm5srv\.so\.13\.0$|^libkadm5srv\.so\.14\.0$|^libkadm5srv\.so\.15\.0$|^libkadm5srv\.so\.16\.0$|^libkafs\.so\.11\.0$|^libkafs\.so\.12\.0$|^libkafs\.so\.13\.0$|^libkafs\.so\.14\.0$|^libkdc\.so\.
2\.0$|^libkdc\.so\.3\.0$|^libkdc\.so\.4\.0$|^libkrb5\.so\.24\.0$|^libkrb5\.so\.26\.0$|^libkrb5\.so\.27\.0$|^libkrb5\.so\.28\.0$|^libkvm\.so\.6\.0$|^liblber\.so\.3\.3$|^liblber\.so\.5\.0$|^libldap\.so\.4\.3$|^libldap\.so\.5\.0$|^libldap\.so\.6\.0$|^libldap_r\.so\.4\.3$|^libldap_r\.so\.5\.0$|^libldap_r\.so\.6\.0$|^liblsan\.so\.2\.0$|^liblsan\.so\.3\.0$|^liblua\.so\.1\.0$|^liblua\.so\.5\.3$|^liblua\.so\.6\.1$|^liblwres\.so\.5\.8$|^liblwres\.so\.6\.0$|^liblwres\.so\.7\.0$|^liblwres\.so\.8\.5$|^liblzf\.so\.0\.0$|^liblzf\.so\.1\.0$|^liblzma\.so\.1\.1$|^liblzma\.so\.2\.0$|^libm\.so\.0\.14$|^libmagic\.so\.3\.1$|^libmagic\.so\.4\.0$|^libmagic\.so\.5\.2$|^libmagic\.so\.6\.0$|^libmagic\.so\.7\.0$|^libmagic\.so\.8\.0$|^libmenu\.so\.6\.0$|^libmenu\.so\.7\.0$|^libmenu\.so\.8\.0$|^libmj\.so\.0\.0$|^libmj\.so\.1\.0$|^libmudflap\.so\.0\.0$|^libmudflapth\.so\.0\.0$|^libnetpgp\.so\.2\.0$|^libnetpgp\.so\.3\.0$|^libnetpgp\.so\.4\.0$|^libnetpgpverify\.so\.4\.0$|^libnetpgpverify\.so\.5\.0$|^libnpf\.so\.0\
.1$|^libns\.so\.10\.0$|^libns\.so\.11\.0$|^libns\.so\.12\.0$|^libns\.so\.13\.0$|^libns\.so\.14\.0$|^libns\.so\.15\.0$|^libns\.so\.16\.0$|^libns\.so\.17\.0$|^libns\.so\.18\.0$|^libns\.so\.19\.0$|^libns\.so\.20\.0$|^libns\.so\.21\.0$|^libns\.so\.22\.0$|^libns\.so\.9\.0$|^libnvpair\.so\.0\.0$|^libobjc\.so\.3\.0$|^libobjc\.so\.4\.0$|^libopcodes\.so\.10\.0$|^libopcodes\.so\.11\.0$|^libopcodes\.so\.12\.0$|^libopcodes\.so\.4\.0$|^libopcodes\.so\.5\.0$|^libopcodes\.so\.6\.0$|^libopcodes\.so\.7\.0$|^libopcodes\.so\.8\.0$|^libopcodes\.so\.9\.0$|^libossaudio\.so\.1\.1$|^libp2k\.so\.1\.0$|^libp2k\.so\.2\.0$|^libpam\.so\.3\.0$|^libpam\.so\.4\.1$|^libpanel\.so\.1\.0$|^libpanel\.so\.2\.0$|^libpanel\.so\.3\.0$|^libpcap\.so\.10\.0$|^libpcap\.so\.3\.0$|^libpcap\.so\.4\.0$|^libpcap\.so\.5\.1$|^libpcap\.so\.6\.0$|^libpcap\.so\.7\.0$|^libpcap\.so\.9\.0$|^libpci\.so\.2\.2$|^libperfuse\.so\.0\.0$|^libposix\.so\.0\.1$|^libppath\.so\.0\.0$|^libprop\.so\.1\.2$|^libpthread\.so\.1\.4$|^libpthread_dbg\.so\.2\.0
$|^libpuffs\.so\.1\.1$|^libpuffs\.so\.2\.0$|^libquota\.so\.0\.1$|^libquota\.so\.1\.0$|^libradius\.so\.4\.0$|^libradius\.so\.5\.0$|^librefuse\.so\.1\.0$|^librefuse\.so\.2\.0$|^libresolv\.so\.2\.0$|^libresolv\.so\.3\.0$|^libroken\.so\.14\.0$|^libroken\.so\.19\.0$|^libroken\.so\.20\.0$|^librpcsvc\.so\.1\.0$|^librt\.so\.1\.1$|^librump\.so\.0\.0$|^librumpclient\.so\.0\.0$|^librumpdev\.so\.0\.0$|^librumphijack\.so\.0\.0$|^librumpnet\.so\.0\.0$|^librumpres\.so\.0\.0$|^librumpuser\.so\.0\.1$|^librumpvfs\.so\.0\.0$|^libsaslc\.so\.0\.0$|^libsaslc\.so\.1\.0$|^libskey\.so\.2\.0$|^libsl\.so\.4\.0$|^libsl\.so\.5\.0$|^libsl\.so\.6\.0$|^libsl\.so\.7\.0$|^libsqlite3\.so\.1\.5$|^libssh\.so\.15\.0$|^libssh\.so\.16\.0$|^libssh\.so\.17\.0$|^libssh\.so\.18\.0$|^libssh\.so\.19\.0$|^libssh\.so\.20\.0$|^libssh\.so\.21\.0$|^libssh\.so\.22\.0$|^libssh\.so\.23\.0$|^libssh\.so\.24\.0$|^libssh\.so\.25\.0$|^libssh\.so\.26\.0$|^libssh\.so\.27\.0$|^libssh\.so\.28\.0$|^libssh\.so\.29\.0$|^libssh\.so\.30\.0$|^libssh\
.so\.31\.0$|^libssh\.so\.32\.0$|^libssh\.so\.33\.0$|^libssh\.so\.34\.0$|^libssh\.so\.35\.0$|^libssh\.so\.36\.0$|^libssh\.so\.37\.0$|^libssh\.so\.38\.0$|^libssh\.so\.39\.0$|^libssh\.so\.40\.0$|^libssh\.so\.41\.0$|^libssh\.so\.42\.0$|^libssh\.so\.43\.0$|^libssh\.so\.44\.0$|^libssh\.so\.45\.1$|^libssh\.so\.46\.1$|^libssh\.so\.47\.0$|^libssl\.so\.10\.5$|^libssl\.so\.11\.0$|^libssl\.so\.12\.0$|^libssl\.so\.13\.0$|^libssl\.so\.14\.0$|^libssl\.so\.15\.0$|^libssl\.so\.8\.1$|^libssl\.so\.9\.0$|^libstdc++\.so\.7\.4$|^libstdc++\.so\.9\.1$|^libterminfo\.so\.1\.0$|^libterminfo\.so\.2$|^libterminfo\.so\.2\.0$|^libtre\.so\.0\.8$|^libubsan\.so\.0\.0$|^libubsan\.so\.1\.0$|^libubsan\.so\.3\.0$|^libubsan\.so\.4\.0$|^libubsan\.so\.5\.0$|^libukfs\.so\.1\.0$|^libumem\.so\.0\.0$|^libunbound\.so\.6\.2$|^libunbound\.so\.7\.0$|^libunbound\.so\.8\.0$|^libunbound\.so\.9\.0$|^libusbhid\.so\.1\.0$|^libutil\.so\.7\.24$|^libuutil\.so\.0\.0$|^libwind\.so\.0\.0$|^libwind\.so\.1\.0$|^libwrap\.so\.1\.0$|^libz\.so\.1\.
0$|^libzfs\.so\.0\.0$|^libzfs_core\.so\.0\.0$|^libzpool\.so\.0\.0$)'
+ ':' /usr/lib/sparc/libossaudio.so.1.1
+ ofile=/usr/lib/sparc/libossaudio.so.1.1
+ cmd=rm
+ ftype=file
+ '[' -h /usr/lib/sparc/libossaudio.so.1.1 ']'
+ '[' -d /usr/lib/sparc/libossaudio.so.1.1 ']'
+ '[' '!' -e /usr/lib/sparc/libossaudio.so.1.1 ']'
+ '[' check = check ']'
+ msg 'Remove obsolete file /usr/lib/sparc/libossaudio.so.1.1'
+ echo ' Remove obsolete file /usr/lib/sparc/libossaudio.so.1.1'
Remove obsolete file /usr/lib/sparc/libossaudio.so.1.1
+ failed=1
So: it tries to remove the non-obsolete (just extracted) /usr/lib/sparc/libossaudio.so.1.1
but leaves alone all the obsolete libs I happen to have in that dir, like
usr/lib/sparc/libarchive.so.4.
>How-To-Repeat:
see above
>Fix:
n/a
>Release-Note:
>Audit-Trail:
From: Valery Ushakov <uwe@stderr.spb.ru>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: bin/58697: postinstall(8) removes non-obsolete compat libs
Date: Wed, 25 Sep 2024 22:21:46 +0300
That's a bit weird. We run "fix obsolete" on the destdir for update
builds, so if there's any issue there, it should have manifested at
build time.
$ grep -A4 'fix obsolete$' .log.sparc64
AWK=/home/uwe/work/netbsd/build/tools/bin/nbawk DB=/home/uwe/work/netbsd/build/tools/bin/nbdb HOST_SH=/usr/bin/sh MAKE=/home/uwe/work/netbsd/build/tools/bin/nbmake PWD_MKDB=/home/uwe/work/netbsd/build/tools/bin/nbpwd_mkdb SED=/home/uwe/work/netbsd/build/tools/bin/nbsed STAT=/home/uwe/work/netbsd/build/tools/bin/nbstat /usr/bin/sh /home/uwe/work/netbsd/build/obj/sparc64/usr.sbin/postinstall/postinstall -m sparc64 -a sparc64 -s /home/uwe/work/netbsd/ro/src -x /home/uwe/work/netbsd/ro/src/../xsrc -d /home/uwe/work/netbsd/build/distrib/sparc64/ fix obsolete
Source directory: /home/uwe/work/netbsd/ro/src
Target directory: /home/uwe/work/netbsd/build/distrib/sparc64/
obsolete fix:
postinstall fixes passed: obsolete
-uwe
From: Martin Husemann <martin@duskware.de>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: bin/58697: postinstall(8) removes non-obsolete compat libs
Date: Thu, 26 Sep 2024 13:28:11 +0200
This turned out to be a local issue - I had a spurious "libossaudio.so.1.2"
around (from years ago, for whatever reasons) and the duplicate minor
script correctly infered that libossaudio.so.1.1 is superseeded by
that. The "exclude_libs" part does not work at all because it gets
passed full qualified paths but expects to match only basenames.
Removing the spurious versions made the whole thing work for me
(but leaves the exclude_libs issue open).
Martin
From: Valery Ushakov <uwe@stderr.spb.ru>
To: gnats-bugs@NetBSD.org
Cc:
Subject: Re: bin/58697: postinstall(8) removes non-obsolete compat libs
Date: Tue, 8 Oct 2024 13:47:14 +0300
This made me look at postinstall again, which reminded me that
_obsolete_libs has an awk script that is unnecessarily opaque (with
variable names like "res", "result", "line", a function "digit" that
actually returns a number, not necessarily single-digit, etc). Since
I had to dig into that awk script anyway, I thought it might be a good
time to fix it, so that I don't need to re-do that work of untabgling
it the next time.
While there, I noticed that Christos attempt to protect new old libs
when downgrading never really worked b/c it filters by filename, but
the awk script emits absolute pathnames.
Here's the patch, only very lightly tested. It's a context diff, b/c
the unfied version is not very readable.
Feedback is welcome.
*** postinstall.in.~1.63.~ 2024-04-27 02:31:54.577307347 +0300
--- postinstall.in 2024-09-27 00:19:43.813013871 +0300
***************
*** 608,664 ****
(
! if [ ! -e "${DEST_DIR}/${dir}" ]
! then
! return 0
! fi
!
cd "${DEST_DIR}/${dir}" || err 2 "can't cd to ${DEST_DIR}/${dir}"
! echo lib*.so.* \
! | tr ' ' '\n' \
! | ${AWK} -v LibDir="${dir}/" '
#{
! function digit(v, c, n) { return (n <= c) ? v[n] : 0 }
! function checklib(results, line, regex) {
! if (! match(line, regex))
return
! lib = substr(line, RSTART, RLENGTH)
! rev = substr($0, RLENGTH+1)
! if (! (lib in results)) {
! results[lib] = rev
return
}
! orevc = split(results[lib], orev, ".")
! nrevc = split(rev, nrev, ".")
! maxc = (orevc > nrevc) ? orevc : nrevc
! for (i = 1; i <= maxc; i++) {
! res = digit(orev, orevc, i) - digit(nrev, nrevc, i)
! if (res < 0) {
! print LibDir lib results[lib]
! results[lib] = rev
return
! } else if (res > 0) {
! print LibDir lib rev
return
}
}
}
! /^lib.*\.so\.[0-9]+\.[0-9]+(\.[0-9]+)?(\.debug)?$/ {
! if (AllLibs)
! checklib(minor, $0, "^lib.*\\.so\\.")
! else
! checklib(found, $0, "^lib.*\\.so\\.[0-9]+\\.")
! }
!
! /^lib.*\.so\.[0-9]+$/ {
! if (AllLibs)
! checklib(major, $0, "^lib.*\\.so\\.")
! }
!
! #}' | exclude_libs
)
}
--- 608,693 ----
(
! [ -e "${DEST_DIR}/${dir}" ] || return 0
cd "${DEST_DIR}/${dir}" || err 2 "can't cd to ${DEST_DIR}/${dir}"
!
! # TODO: make this selectable with a command line option?
! local maybe_purge_major
! #maybe_purge_major='-v PurgeOldMajor=1'
!
! printf '%s\n' lib*.so.* | ${AWK} ${maybe_purge_major} '
#{
! BEGIN {
! BASE_REGEX = "^lib.*\\.so\\."
! MAJOR_REGEX = (BASE_REGEX "[0-9]+\\.")
!
! # in the usual case different major versions of the same
! # library are considered different stems and do not compete
! # with each other, we keep one of each, but you may request to
! # purge old majors, in which case all versions compete for the
! # single basename stem
! if (PurgeOldMajor)
! keepone = BASE_REGEX
! else
! keepone = MAJOR_REGEX
! }
!
! # major version symlink
! PurgeOldMajor && /^lib.*\.so\.[0-9]+$/ {
! checklib(major, $0, BASE_REGEX)
! }
!
! # specific minor version of a library
! /^lib.*\.so\.[0-9]+\.[0-9]+(\.[0-9]+)?(\.debug)?$/ {
! checklib(minor, $0, keepone)
! }
! function checklib(latest, libname, stem_regex) {
! if (! match(libname, stem_regex))
return
! stem = substr(libname, RSTART, RLENGTH)
! vers = substr(libname, RLENGTH + 1)
!
! # first time we see this stem? just record the version
! if (! (stem in latest)) {
! latest[stem] = vers
return
}
!
! # split version suffixes into the list of numeric components
! oversc = split(latest[stem], overs, ".")
! nversc = split(vers, nvers, ".")
! maxc = (oversc > nversc) ? oversc : nversc
!
! # is the new version "later" than the one we have seen?
! for (i = 1; i <= maxc; ++i) {
! cmp = (overs[i]+0) - (nvers[i]+0)
!
! if (cmp < 0) {
! # the one we have seen is older, so report it
! # as obsolete and update the latest seen
! # version to this new one
! print stem latest[stem]
! latest[stem] = vers
return
! }
! else if (cmp > 0) {
! # the one we have just read is older than the
! # one we have seen previously, so report this
! # "new" one as obsolete
! print libname
return
}
}
}
! # the ouput if further filtered by exclude_libs that protects
! # libraries that have symlinks pointing to them, which one
! # encounters when downgrading
! #}' \
! | exclude_libs \
! | ${SED} "s|^|${dir}/|"
)
}
-uwe
From: "Valery Ushakov" <uwe@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/58697 CVS commit: src/usr.sbin/postinstall
Date: Thu, 10 Oct 2024 13:06:23 +0000
Module Name: src
Committed By: uwe
Date: Thu Oct 10 13:06:23 UTC 2024
Modified Files:
src/usr.sbin/postinstall: postinstall.in
Log Message:
postinstall: clarify/simplify awk script in _obsolete_libs
Add comments and rename variables to better reflect their purpose.
Emit plain filenames, not absolute paths, b/c that's what exclude_libs
expects. While here explain what might trigger the exclude_libs
scenario (downgrades).
PR bin/58697: postinstall(8) removes non-obsolete compat libs
To generate a diff of this commit:
cvs rdiff -u -r1.63 -r1.64 src/usr.sbin/postinstall/postinstall.in
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: open->needs-pullups
State-Changed-By: uwe@NetBSD.org
State-Changed-When: Thu, 10 Oct 2024 22:34:20 +0000
State-Changed-Why:
exclude_libs seemingly never worked as intended.
need to pull up at least the awk script fix (in the PR),
but may be also the follow up cleanups too.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.49 2026/05/14 01:52:41 riastradh Exp $
$NetBSD: gnats_config.sh,v 1.10 2026/05/13 22:00:09 riastradh Exp $
Copyright © 1994-2026
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.