An odd vital FreeBSD-set-* result?

From: Mark Millard <marklmi_at_yahoo.com>
Date: Fri, 19 Sep 2025 03:48:11 UTC
This is a potential bug report, I'm not sure. main 16
context. For reference, using the amd64 example
(details are for after updating activity):

# uname -apKU
FreeBSD 7950X3D-ZFS 16.0-CURRENT FreeBSD 16.0-CURRENT main-n280461-506b36c4fdde GENERIC-NODEBUG amd64 amd64 1600000 1600000

# pkg -v
2.3.1

# file /usr/local/sbin/pkg /usr/local/sbin/pkg-static 
/usr/local/sbin/pkg:        ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 16.0 (1600000), FreeBSD-style, with debug_info, not stripped
/usr/local/sbin/pkg-static: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), statically linked, for FreeBSD 16.0 (1600000), FreeBSD-style, with debug_info, not stripped

(The port=packages were not updated, including pkg.)


I updated both an amd64 system and a aarch64 system today
directly with pkg-static commands and the /usr/src/ that
resulted for both has:

# grep -r vital /usr/src/release/packages/sets/ | sort
/usr/src/release/packages/sets/base.ucl:vital = true
/usr/src/release/packages/sets/devel.ucl:vital = true
/usr/src/release/packages/sets/lib32.ucl:vital = true
/usr/src/release/packages/sets/minimal-jail.ucl:vital = true
/usr/src/release/packages/sets/minimal.ucl:vital = true
/usr/src/release/packages/sets/src.ucl:vital = yes
/usr/src/release/packages/sets/tests.ucl:vital = yes

I fetch separately from updating. I also install booting
materials (bootloader files, dtb files if involved, and
kernels) and reboot into a new kernel before doing other
installs.

My updates were via the likes of:

# pkg-static install    -U -rFreeBSD-base -g 'FreeBSD-*'

(smaller list for the earlier booting materials install).

Afterwards I tried deleting FreeBSD-set-* without force
being requested and it reported only 4 as vital and
allowed the others to be deleted:

# pkg-static del FreeBSD-set-base FreeBSD-set-base-dbg FreeBSD-set-devel FreeBSD-set-devel-dbg FreeBSD-set-minimal FreeBSD-set-minimal-dbg FreeBSD-set-kernels FreeBSD-set-kernels-dbg FreeBSD-set-lib32 FreeBSD-set-lib32-dbg FreeBSD-set-minimal-jail FreeBSD-set-minimal-jail-dbg FreeBSD-set-src FreeBSD-set-tests
pkg-static: Warning: Major OS version upgrade detected.  Running "pkg bootstrap -f" recommended
Checking integrity... done (0 conflicting)
The following package(s) are locked or vital and may not be removed:

	FreeBSD-set-base
	FreeBSD-set-devel
	FreeBSD-set-minimal
	FreeBSD-set-minimal-jail

Deinstallation has been requested for the following 10 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
	FreeBSD-set-base-dbg: 16.snap20250918100450
	FreeBSD-set-devel-dbg: 16.snap20250912210739
	FreeBSD-set-kernels: 16.snap20250917214757
	FreeBSD-set-kernels-dbg: 16.snap20250912210739
	FreeBSD-set-lib32: 16.snap20250912210739
	FreeBSD-set-lib32-dbg: 16.snap20250912210739
	FreeBSD-set-minimal-dbg: 16.snap20250918100450
	FreeBSD-set-minimal-jail-dbg: 16.snap20250917214757
	FreeBSD-set-src: 16.snap20250916221226
	FreeBSD-set-tests: 16.snap20250916221226

Number of packages to be removed: 10

Proceed with deinstalling packages? [y/N]: y
[1/10] Deinstalling FreeBSD-set-base-dbg-16.snap20250918100450...
[2/10] Deinstalling FreeBSD-set-devel-dbg-16.snap20250912210739...
[3/10] Deinstalling FreeBSD-set-kernels-16.snap20250917214757...
[4/10] Deinstalling FreeBSD-set-kernels-dbg-16.snap20250912210739...
[5/10] Deinstalling FreeBSD-set-lib32-16.snap20250912210739...
[6/10] Deinstalling FreeBSD-set-lib32-dbg-16.snap20250912210739...
[7/10] Deinstalling FreeBSD-set-minimal-dbg-16.snap20250918100450...
[8/10] Deinstalling FreeBSD-set-minimal-jail-dbg-16.snap20250917214757...
[9/10] Deinstalling FreeBSD-set-src-16.snap20250916221226...
[10/10] Deinstalling FreeBSD-set-tests-16.snap20250916221226...


That behavior does not seem to match the (not -dbg) files:

/usr/src/release/packages/sets/*.ucl

that I reported on earlier above. One possibility
might be that some built FreeBSD-set-*.pkg files
were not based on the provided /usr/src/ content.


I'll note that after the above I did:

# pkg-static del -f FreeBSD-set-base FreeBSD-set-base-dbg FreeBSD-set-devel FreeBSD-set-devel-dbg FreeBSD-set-minimal FreeBSD-set-minimal-dbg FreeBSD-set-minimal-jail FreeBSD-set-minimal-jail-dbg

so that no FreeBSD-set-* would be installed. (The -dbg likely
were unnecessary but I included them anyay.)


===
Mark Millard
marklmi at yahoo.com