Skip site navigation (1)Skip section navigation (2)
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>