Date: Mon, 3 Mar 2025 12:06:41 +0100 From: Robert Clausecker <fuz@fuz.su> To: freebsd-current@freebsd.org Subject: Re: Creating poudriere jail fails with libmd.so.6 not found Message-ID: <Z8WNQR53omjSwDXe@fuz.su> In-Reply-To: <Z8VUoEgcSaQVpGNb@c720-1400094> References: <Z8VUoEgcSaQVpGNb@c720-1400094>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Matthias, Am Mon, Mar 03, 2025 at 08:05:04AM +0100 schrieb Matthias Apitz: > I tried to create a new jail in my CURRENT from March 1 > This fails with: >=20 > # poudriere jail -c -j 150-CURRENT -m src=3D/usr/src >=20 > [00:00:00] Creating 150-CURRENT fs at /usr/local/poudriere/jails/150-CURR= ENT... done > [00:00:01] Copying /usr/src to /usr/local/poudriere/jails/150-CURRENT/usr= /src... done > [00:02:31] Starting make installworld > --- installworld --- > make[1]: "/usr/obj/usr/src/amd64.amd64/toolchain-metadata.mk" line 1: Usi= ng cached toolchain metadata from build at jet on Sat Mar 1 20:51:42 CET 2= 025 > --- _installcheck_world --- > -------------------------------------------------------------- > >>> Install check world started on Sun Mar 2 22:04:40 CET 2025 > -------------------------------------------------------------- > --- installworld --- > mkdir -p /tmp/install.APjSa9v82y > progs=3D$(for prog in [ awk cap_mkdb cat chflags chmod chown cmp cp date= echo egrep find grep id install ln make mkdir mtree mv pwd_mkdb rm sed = services_mkdb sh sort strip sysctl test time true uname wc tzsetup makewhat= is ; do if progpath=3D`env PATH=3D/usr/obj/usr/src/amd64.amd64/tmp/bin:/us= r/obj/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr= /bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd6= 4.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr= /obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/= bin which $prog`; then echo $progpath; else echo "Required tool $prog no= t found in PATH ("/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd= 64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr= /src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legac= y/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd6= 4.amd64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin")." >&2; exi= t 1; fi; done); if [ -z "" ] ; then libs=3D$(ldd -f "%o %p\n" -f "%o %p= \n" $progs 2>/dev/null | sort -u | grep -Ev '\[.*]' | while read line; do = $line; if [ "$2 $3" !=3D "not found" ]; then echo $2; else echo "Requi= red library $1 not found." >&2; exit 1; fi; done); fi; cp $libs $progs= /tmp/install.APjSa9v82y > Required library libmd.so.6 not found. > *** [installworld] Error code 1 >=20 > make[1]: stopped making "installworld" in /usr/src > make[1]: 1 error >=20 > make[1]: stopped making "installworld" in /usr/src >=20 > make: stopped making "installworld" in /usr/src > [00:02:32] Error: /usr/local/share/poudriere/jail.sh:installworld:12:Fail= ed to 'make installworld' > [00:02:32] Error while creating jail, cleaning up. > [00:02:32] Removing 150-CURRENT jail... done > [00:02:34] Cleaning 150-CURRENT data... done >=20 > I investigated the problem and the old libmd.so.6 is used by some > binaries in /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin/mtree > which the 'make buildworld' copied to this place from the underlying old > system: >=20 > # ldd /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin/mtree | grep libmd= =2Eso.6 > libmd.so.6 =3D> not found (0) > # ldd /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin/sort | grep libmd.= so.6 > libmd.so.6 =3D> not found (0) > # ls -l /usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin/mtree /usr/obj/u= sr/src/amd64.amd64/tmp/legacy/usr/sbin/sort > -r-xr-xr-x 1 root wheel 65392 Aug 6 2023 /usr/obj/usr/src/amd64.amd64/= tmp/legacy/usr/sbin/mtree > -r-xr-xr-x 1 root wheel 62544 Aug 6 2023 /usr/obj/usr/src/amd64.amd64/= tmp/legacy/usr/sbin/sort >=20 > Aug 6, 2023 the 14-CURRENT was setup where I built the now 15-CURRENT on > March 2: >=20 > # uname -a > FreeBSD jet 15.0-CURRENT FreeBSD 15.0-CURRENT #0 main-n275738-7ee310c80ea= 7: Sun Mar 2 01:13:00 CET 2025 guru@jet:/usr/obj/usr/src/amd64.amd64/s= ys/GENERIC amd64 >=20 > What would be the correct way to fix this? Re-run 'make buildworld' > again? Or copying the shared lib libmd.so.6 into place? The simplest solution is to clear the object directory and do a fresh world= build. libmd.so.6 was turned into libmd.so.7 as part of a recent API change. It s= hould also work to link libmd.so.7 to libmd.so.6. Yours, Robert Clausecker --=20 () ascii ribbon campaign - for an encoding-agnostic world /\ - against html email - against proprietary attachments
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Z8WNQR53omjSwDXe>