RE: libutil.so.9 not found (was: HEADS-UP: pkgbase pkg upgrade breaks systems Re: after updating to latest, pkg base segfaults and leaves me unbootable)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Wed, 13 Aug 2025 10:13:05 UTC
Graham Perrin <grahamperrin_at_gmail.com> wrote on
Date: Wed, 13 Aug 2025 06:34:46 UTC :

> On 11/08/2025 01:17, Dan Mahoney (Ports) wrote:
> > … pkg is still being persnickety, and I don't know what the mechanism is to bootstrap it is:
> >
> > # ldd /usr/local/sbin/pkg
> > /usr/local/sbin/pkg:
> > libelf.so.2 => /lib/libelf.so.2 (0x2a08ac8d1000)
> > libjail.so.1 => /lib/libjail.so.1 (0x2a08ad283000)
> > libm.so.5 => /lib/libm.so.5 (0x2a08adcbd000)
> > libarchive.so.7 => /usr/lib/libarchive.so.7 (0x2a08ae37a000)
> > libz.so.6 => /lib/libz.so.6 (0x2a08abe01000)
> > libutil.so.9 => not found (0)
> > …
> 
> 
> I guess, that explains pkg non-usable in the shell when booting
> FreeBSD-15.0-CURRENT-amd64-20250807-02f394281fd6-279407-disc1.iso
> 
> > ld-elf.so.1: Shared object "libutil.so.9" not found, required by "pkg"

Yes, the port-packages builder's poudriere jail world was older than
the change to libutil.so.10 and, so, still had libutil.so.9 . That
was mixed with a newer FreeBSD that instead had libutil.so.10 .

There are later changes from libcrypto.so.30 to libcrypto.so.35 and
libssl.so.30 to libssl.so.35 that have the same time relationship
issue for some more recent port package builder poudriere runs as
I understand.

Such coordination issues are one of the consequences of pkg not being
built and distributed as part of the FreeBSD world but as a
ports-package. (I ignore here, other constraints that lead it to
be a ports-package instead.)

At some point the port-package builder jail worlds for main-* (amd64,
aarch64, armv7, and possibly i386 for a time) need to be updated to
have a FreeBSD world version that is based on having all 3 of:

libutil.so.10
libcrypto.so.35
libssl.so.35

May be at some point the infrastructure could detect such mismatches
for the likes of FreeBSD-*.0-CURRENT-*.iso being assembled using a
too-old pkg that would otherwise be included --and prevent forming
a distribution with a pkg that was not operable because it is too
old.

Another issue is how long main-* port-package builder runs take as
stands, especially for aarch64 and armv7 that share the same builder
machine (ampere2).

===
Mark Millard
marklmi at yahoo.com