NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: lib/57603: openssl shlib major bump requires major bump of all dependent libraries too



The following reply was made to PR lib/57603; it has been noted by GNATS.

From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: netbsd-bugs%NetBSD.org@localhost
Subject: Re: lib/57603: openssl shlib major bump requires major bump of all dependent libraries too
Date: Mon, 4 Sep 2023 12:12:14 +0000

 This is a multi-part message in MIME format.
 --=_FblLIh6fA/vqLEevxIbPgIwHgRLcbVX9
 Content-Transfer-Encoding: quoted-printable
 
 With the help of the attached scripts, and omitting pam_* modules and
 the named filter-aaaa module, I think I've narrowed it down to the
 following list of libraries needing a revbump:
 
 archive external/bsd/libarchive/lib/libarchive
 bind9 external/mpl/bind/lib/libbind9
 dns external/mpl/bind/lib/libdns
 event_openssl external/bsd/libevent/lib/libevent_openssl
 fetch external/bsd/fetch/lib share/examples/refuse/ian/libfetch
 gssapi crypto/external/bsd/heimdal/lib/libgssapi
 hdb crypto/external/bsd/heimdal/lib/libhdb
 heimntlm crypto/external/bsd/heimdal/lib/libheimntlm
 hx509 crypto/external/bsd/heimdal/lib/libhx509
 irs external/mpl/bind/lib/libirs
 isc external/mpl/bind/lib/libisc
 isccc external/mpl/bind/lib/libisccc
 isccfg external/mpl/bind/lib/libisccfg
 kadm5clnt crypto/external/bsd/heimdal/lib/libkadm5clnt
 kadm5srv crypto/external/bsd/heimdal/lib/libkadm5srv
 kafs crypto/external/bsd/heimdal/lib/libkafs
 kdc crypto/external/bsd/heimdal/lib/libkdc
 krb5 crypto/external/bsd/heimdal/lib/libkrb5
 ldap external/bsd/openldap/lib/libldap
 ldap_r external/bsd/openldap/lib/libldap_r
 legacy crypto/external/bsd/openssl/lib/liblegacy
 netpgp crypto/external/bsd/netpgp/lib/netpgp
 ns external/mpl/bind/lib/libns
 paa crypto/external/bsd/netpgp/libpaa
 radius lib/libradius
 saslc crypto/external/bsd/libsaslc/lib
 ssh crypto/external/bsd/openssh/lib
 ssl crypto/external/bsd/openssl.old/lib/libssl crypto/external/bsd/openssl/=
 lib/libssl
 tpm_unseal crypto/external/cpl/tpm-tools/lib/libtpm_unseal
 tspi crypto/external/cpl/trousers/lib/libtspi
 unbound external/bsd/unbound/lib/libunbound
 
 Working on applying that revbump to shlib_version and the associated
 set lists.  How tedious!
 
 --=_FblLIh6fA/vqLEevxIbPgIwHgRLcbVX9
 Content-Type: text/plain; charset="ISO-8859-1"; name="listlibs"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment; filename="listlibs.sh"
 
 #!/bin/sh
 
 # $NetBSD$
 #
 # Copyright (c) 2023 The NetBSD Foundation, Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
 # are met:
 # 1. Redistributions of source code must retain the above copyright
 #    notice, this list of conditions and the following disclaimer.
 # 2. Redistributions in binary form must reproduce the above copyright
 #    notice, this list of conditions and the following disclaimer in the
 #    documentation and/or other materials provided with the distribution.
 #
 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMIT=
 ED
 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
 #
 
 set -Ceu
 
 : ${MAKE:=3Dmake}
 
 git grep -w -l -F bsd.lib.mk -- '**/Makefile' \
 | while read -r m; do
         d=3D$(dirname -- "$m")
         (
                 cd -- "$d"
                 lib=3D$($MAKE -V '${LIB}') || continue
                 test "$($MAKE -V '${LIBISPRIVATE}')" !=3D yes || continue
                 echo $lib $d $($MAKE -V '${LIBDPLIBS}')
         )
 done
 
 --=_FblLIh6fA/vqLEevxIbPgIwHgRLcbVX9
 Content-Type: text/plain; charset="ISO-8859-1"; name="libusers"
 Content-Transfer-Encoding: quoted-printable
 Content-Disposition: attachment; filename="libusers.awk"
 
 #!/usr/bin/awk -f
 
 # $NetBSD$
 #
 # Copyright (c) 2023 The NetBSD Foundation, Inc.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
 # are met:
 # 1. Redistributions of source code must retain the above copyright
 #    notice, this list of conditions and the following disclaimer.
 # 2. Redistributions in binary form must reproduce the above copyright
 #    notice, this list of conditions and the following disclaimer in the
 #    documentation and/or other materials provided with the distribution.
 #
 # THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMIT=
 ED
 # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 # PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 # POSSIBILITY OF SUCH DAMAGE.
 #
 
 BEGIN {
 	if (!target) {
 		printf "error: specify -v target=3D...\n" >"/dev/stder"
 		exit 1
 	}
 	error =3D 0
 }
 
 {
 	# lib libdir dep1 dep1dir dep2 dep2dir ...
 	lib =3D $1
 	libdir =3D $2
 
 	# record this library's location if it's new
 	for (j =3D 0; j < nlocs[lib]; j++) {
 		if (loc[lib" "j] =3D=3D libdir)
 			break
 	}
 	if (j =3D=3D nlocs[lib])
 		loc[lib" "nlocs[lib]++] =3D libdir
 
 	# record this as a user of each of its dependencies; ignore
 	# their locations and assume two libraries with the same name
 	# are the same
 	for (j =3D 3; j < NF; j +=3D 2) {
 		dep =3D $(j)
 		users[dep" "nusers[dep]++] =3D lib
 	}
 }
 
 END {
 	# make sure we saw the target
 	if (!(target" "0 in loc)) {
 		printf "error: unknown library: %s\n", target >"/dev/stderr"
 		exit 1
 	}
 
 	# prime the queue
 	head =3D 0
 	tail =3D 0
 	for (j =3D 0; j < nusers[target]; j++) {
 		user =3D users[target" "j]
 		if (visited[user])
 			continue
 		q[tail++] =3D user
 		visited[user] =3D 1
 	}
 
 	# breadth-first search to compute transitive closure
 	while (head < tail) {
 		for (j =3D 0; j < nusers[q[head]]; j++) {
 			user =3D users[q[head]" "j]
 			if (visited[user])
 				continue
 			q[tail++] =3D user
 			visited[user] =3D 1
 		}
 		head++
 	}
 
 	# print the libraries and their locations
 	for (i =3D 0; i < head; i++) {
 		printf "%s", q[i]
 		for (j =3D 0; j < nlocs[q[i]]; j++)
 			printf " %s", loc[q[i]" "j]
 		printf "\n"
 	}
 
 	exit error
 }
 
 --=_FblLIh6fA/vqLEevxIbPgIwHgRLcbVX9--
 


Home | Main Index | Thread Index | Old Index