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:31:43 UTC
On Aug 13, 2025, at 03:13, Mark Millard <marklmi@yahoo.com> wrote:

> 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.

The above paragraph of my note was not coherent since pkg is
installed later via the bootstrap process.

It would be more like: the bootstrap validates library version
compatibilities and reports any library version "not found" status
and then indicates to try bootstrapping again later to hopefully
get a newer build of pkg that might be library compatible with
the FreeBSD vintage in question. That likely gets into a more
overall error handling sequence as well.

> 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