Page MenuHomeFreeBSD

release: switch OCI containers to use pkg sets
AbandonedPublic

Authored by dch on Wed, Sep 24, 7:30 PM.
Tags
None
Referenced Files
F133160159: D52716.id.diff
Thu, Oct 23, 12:48 PM
Unknown Object (File)
Tue, Oct 21, 10:39 AM
Unknown Object (File)
Sat, Oct 18, 9:35 AM
Unknown Object (File)
Fri, Oct 17, 6:49 AM
Unknown Object (File)
Fri, Oct 17, 6:46 AM
Unknown Object (File)
Fri, Oct 17, 3:52 AM
Unknown Object (File)
Thu, Oct 16, 5:46 PM
Unknown Object (File)
Thu, Oct 16, 3:17 PM

Details

Reviewers
None
Summary

This also indirectly addresses the lack of FreeBSD-lldb package on
RISCV by offloading that to pkgbase sets.

Test Plan
  • built arm64 amd64 oci-containers successfully, & riscv packages successfully
  • there is some build step blocking OCI containers for being built on riscv at all
  • exported pkg info | cut -wf 1 from toolchain and no-toolchain containers below
  • the list isn't quite the same as the manual list, but we can discuss that later
# toolchain
FreeBSD-at-16.snap20250924190449
FreeBSD-atf-16.snap20250924190449
FreeBSD-atf-dev-16.snap20250924190449
FreeBSD-atf-lib-16.snap20250924190449
FreeBSD-audit-16.snap20250924190449
FreeBSD-audit-dev-16.snap20250924190449
FreeBSD-blocklist-16.snap20250924190449
FreeBSD-blocklist-dev-16.snap20250924190449
FreeBSD-bluetooth-16.snap20250924190449
FreeBSD-bluetooth-dev-16.snap20250924190449
FreeBSD-bmake-16.snap20250924190449
FreeBSD-bootloader-16.snap20250924190449
FreeBSD-bootloader-dev-16.snap20250924190449
FreeBSD-bsnmp-16.snap20250924190449
FreeBSD-bsnmp-dev-16.snap20250924190449
FreeBSD-bzip2-16.snap20250924190449
FreeBSD-bzip2-dev-16.snap20250924190449
FreeBSD-bzip2-lib-16.snap20250924190449
FreeBSD-caroot-16.snap20250924190449
FreeBSD-certctl-16.snap20250924190449
FreeBSD-clang-16.snap20250924190449
FreeBSD-clang-dev-16.snap20250924190449
FreeBSD-clibs-16.snap20250924190449
FreeBSD-clibs-dev-16.snap20250924190449
FreeBSD-cron-16.snap20250924190449
FreeBSD-ctf-tools-16.snap20250924190449
FreeBSD-devd-16.snap20250924190449
FreeBSD-devmatch-16.snap20250924190449
FreeBSD-devmatch-dev-16.snap20250924190449
FreeBSD-dhclient-16.snap20250924190449
FreeBSD-dtrace-16.snap20250924190449
FreeBSD-dtrace-dev-16.snap20250924190449
FreeBSD-efi-tools-16.snap20250924190449
FreeBSD-efi-tools-dev-16.snap20250924190449
FreeBSD-fetch-16.snap20250924190449
FreeBSD-fetch-dev-16.snap20250924190449
FreeBSD-firmware-iwm-16.snap20250924190449
FreeBSD-fwget-16.snap20250924190449
FreeBSD-geom-16.snap20250924190449
FreeBSD-hyperv-tools-16.snap20250924190449
FreeBSD-inetd-16.snap20250924190449
FreeBSD-kerberos-16.snap20250924190449
FreeBSD-kerberos-dev-16.snap20250924190449
FreeBSD-kerberos-lib-16.snap20250924190449
FreeBSD-kernel-man-16.snap20250924190449
FreeBSD-lib9p-16.snap20250924190449
FreeBSD-lib9p-dev-16.snap20250924190449
FreeBSD-libarchive-16.snap20250924190449
FreeBSD-libarchive-dev-16.snap20250924190449
FreeBSD-libbegemot-16.snap20250924190449
FreeBSD-libbegemot-dev-16.snap20250924190449
FreeBSD-libblocksruntime-16.snap20250924190449
FreeBSD-libblocksruntime-dev-16.snap20250924190449
FreeBSD-libbsdstat-16.snap20250924190449
FreeBSD-libbsdstat-dev-16.snap20250924190449
FreeBSD-libbsm-16.snap20250924190449
FreeBSD-libbsm-dev-16.snap20250924190449
FreeBSD-libcasper-16.snap20250924190449
FreeBSD-libcasper-dev-16.snap20250924190449
FreeBSD-libcompat-dev-16.snap20250924190449
FreeBSD-libcompiler_rt-dev-16.snap20250924190449
FreeBSD-libcuse-16.snap20250924190449
FreeBSD-libcuse-dev-16.snap20250924190449
FreeBSD-libdwarf-16.snap20250924190449
FreeBSD-libdwarf-dev-16.snap20250924190449
FreeBSD-libevent1-16.snap20250924190449
FreeBSD-libevent1-dev-16.snap20250924190449
FreeBSD-libexecinfo-16.snap20250924190449
FreeBSD-libexecinfo-dev-16.snap20250924190449
FreeBSD-libipt-16.snap20250924190449
FreeBSD-libipt-dev-16.snap20250924190449
FreeBSD-libldns-16.snap20250924190449
FreeBSD-libldns-dev-16.snap20250924190449
FreeBSD-liblzma-16.snap20250924190449
FreeBSD-liblzma-dev-16.snap20250924190449
FreeBSD-libmagic-16.snap20250924190449
FreeBSD-libmagic-dev-16.snap20250924190449
FreeBSD-libmilter-16.snap20250924190449
FreeBSD-libmilter-dev-16.snap20250924190449
FreeBSD-libpathconv-16.snap20250924190449
FreeBSD-libpathconv-dev-16.snap20250924190449
FreeBSD-librpcsec_gss-16.snap20250924190449
FreeBSD-librpcsec_gss-dev-16.snap20250924190449
FreeBSD-librss-16.snap20250924190449
FreeBSD-librss-dev-16.snap20250924190449
FreeBSD-libsdp-16.snap20250924190449
FreeBSD-libsdp-dev-16.snap20250924190449
FreeBSD-libsqlite3-16.snap20250924190449
FreeBSD-libsqlite3-dev-16.snap20250924190449
FreeBSD-libstdbuf-16.snap20250924190449
FreeBSD-libstdbuf-dev-16.snap20250924190449
FreeBSD-libstdthreads-16.snap20250924190449
FreeBSD-libstdthreads-dev-16.snap20250924190449
FreeBSD-libthread_db-16.snap20250924190449
FreeBSD-libthread_db-dev-16.snap20250924190449
FreeBSD-libucl-16.snap20250924190449
FreeBSD-libucl-dev-16.snap20250924190449
FreeBSD-libvgl-16.snap20250924190449
FreeBSD-libvgl-dev-16.snap20250924190449
FreeBSD-libvmmapi-16.snap20250924190449
FreeBSD-libvmmapi-dev-16.snap20250924190449
FreeBSD-liby-dev-16.snap20250924190449
FreeBSD-libyaml-16.snap20250924190449
FreeBSD-libyaml-dev-16.snap20250924190449
FreeBSD-lld-16.snap20250924190449
FreeBSD-lldb-16.snap20250924190449
FreeBSD-lldb-dev-16.snap20250924190449
FreeBSD-locales-16.snap20250924190449
FreeBSD-mandoc-16.snap20250924190449
FreeBSD-mtree-16.snap20250924190449
FreeBSD-natd-16.snap20250924190449
FreeBSD-natd-dev-16.snap20250924190449
FreeBSD-netmap-16.snap20250924190449
FreeBSD-netmap-dev-16.snap20250924190449
FreeBSD-newsyslog-16.snap20250924190449
FreeBSD-nuageinit-16.snap20250924190449
FreeBSD-openssl-16.snap20250924190449
FreeBSD-openssl-dev-16.snap20250924190449
FreeBSD-openssl-lib-16.snap20250924190449
FreeBSD-periodic-16.snap20250924190449
FreeBSD-pf-16.snap20250924190449
FreeBSD-pf-dev-16.snap20250924190449
FreeBSD-pkg-bootstrap-16.snap20250924190449
FreeBSD-pmc-16.snap20250924190449
FreeBSD-pmc-dev-16.snap20250924190449
FreeBSD-powerd-16.snap20250924190449
FreeBSD-ppp-16.snap20250924190449
FreeBSD-rc-16.snap20250924190449
FreeBSD-rescue-16.snap20250924190449
FreeBSD-resolvconf-16.snap20250924190449
FreeBSD-runtime-16.snap20250924190449
FreeBSD-runtime-dev-16.snap20250924190449
FreeBSD-set-devel-16.snap20250924190449
FreeBSD-set-minimal-16.snap20250924190449
FreeBSD-set-minimal-jail-16.snap20250924190449
FreeBSD-smbutils-16.snap20250924190449
FreeBSD-smbutils-dev-16.snap20250924190449
FreeBSD-ssh-16.snap20250924190449
FreeBSD-ssh-dev-16.snap20250924190449
FreeBSD-syslogd-16.snap20250924190449
FreeBSD-tcpd-16.snap20250924190449
FreeBSD-tcpd-dev-16.snap20250924190449
FreeBSD-toolchain-16.snap20250924190449
FreeBSD-toolchain-dev-16.snap20250924190449
FreeBSD-ufs-16.snap20250924190449
FreeBSD-ufs-dev-16.snap20250924190449
FreeBSD-ufs-lib-16.snap20250924190449
FreeBSD-unbound-16.snap20250924190449
FreeBSD-unbound-dev-16.snap20250924190449
FreeBSD-utilities-16.snap20250924190449
FreeBSD-utilities-dev-16.snap20250924190449
FreeBSD-vi-16.snap20250924190449
FreeBSD-vt-data-16.snap20250924190449
FreeBSD-wpa-16.snap20250924190449
FreeBSD-zfs-16.snap20250924190449
FreeBSD-zfs-dev-16.snap20250924190449
FreeBSD-zfs-lib-16.snap20250924190449
FreeBSD-zoneinfo-16.snap20250924190449
# no toolchain
FreeBSD-at-16.snap20250924190449
FreeBSD-blocklist-16.snap20250924190449
FreeBSD-bzip2-16.snap20250924190449
FreeBSD-bzip2-lib-16.snap20250924190449
FreeBSD-caroot-16.snap20250924190449
FreeBSD-certctl-16.snap20250924190449
FreeBSD-clibs-16.snap20250924190449
FreeBSD-cron-16.snap20250924190449
FreeBSD-devd-16.snap20250924190449
FreeBSD-fetch-16.snap20250924190449
FreeBSD-inetd-16.snap20250924190449
FreeBSD-kerberos-lib-16.snap20250924190449
FreeBSD-libarchive-16.snap20250924190449
FreeBSD-libbsdstat-16.snap20250924190449
FreeBSD-libbsm-16.snap20250924190449
FreeBSD-libcasper-16.snap20250924190449
FreeBSD-libexecinfo-16.snap20250924190449
FreeBSD-libldns-16.snap20250924190449
FreeBSD-liblzma-16.snap20250924190449
FreeBSD-libmagic-16.snap20250924190449
FreeBSD-libucl-16.snap20250924190449
FreeBSD-libyaml-16.snap20250924190449
FreeBSD-locales-16.snap20250924190449
FreeBSD-mtree-16.snap20250924190449
FreeBSD-newsyslog-16.snap20250924190449
FreeBSD-openssl-16.snap20250924190449
FreeBSD-openssl-lib-16.snap20250924190449
FreeBSD-periodic-16.snap20250924190449
FreeBSD-pkg-bootstrap-16.snap20250924190449
FreeBSD-rc-16.snap20250924190449
FreeBSD-runtime-16.snap20250924190449
FreeBSD-set-minimal-jail-16.snap20250924190449
FreeBSD-syslogd-16.snap20250924190449
FreeBSD-tcpd-16.snap20250924190449
FreeBSD-ufs-lib-16.snap20250924190449
FreeBSD-utilities-16.snap20250924190449
FreeBSD-vi-16.snap20250924190449
FreeBSD-zfs-lib-16.snap20250924190449
FreeBSD-zoneinfo-16.snap20250924190449

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 67679
Build 64562: arc lint + arc unit

Event Timeline

dch requested review of this revision.Wed, Sep 24, 7:30 PM
dch edited the test plan for this revision. (Show Details)
dch added subscribers: ivy, cperciva, releng, dfr.
dch edited the test plan for this revision. (Show Details)
release/tools/oci-image-notoolchain.conf
24

a lot of your packages are not included in minimal-jail, so this seems like it's going to break things for users who expected those packages to be installed. my suggestion would be to just remove the packages which are already in minimal-jail.

release/tools/oci-image-toolchain.conf
10 ↗(On Diff #162754)

set-devel only depends on set-minimal, so if this image is supposed to be all of FreeBSD, i suggest adding set-base explicitly.

release/tools/oci-image-toolchain.conf
10 ↗(On Diff #162754)

@ivy The way OCI bits work, the "toolchain" image will get what we specify here *plus* everything in the OCI_BASE_IMAGE image. So I think this is correct but perhaps the listing for "notoolchain" is not?

In light of time zones and the lack of clarity about which packages should be in the "notoolchain" image, I'm going to commit the change to "toolchain" (which fixes the build) and leave the "notoolchain" change for further discussion.

dch planned changes to this revision.Thu, Sep 25, 3:40 PM

I've done a manual diff of minimal-jail vs what we had in no-toolchain.

We should either add these to minimal-jail set, *or* add them to
no-toolchain explicitly.

Lexi this is up to you, I'll modify this diff as needed

packages in no-toolchain but not in minimal-jail

FreeBSD-acct
FreeBSD-audit
FreeBSD-bmake
FreeBSD-bsnmp
FreeBSD-csh
FreeBSD-devmatch
FreeBSD-dma
FreeBSD-ee
FreeBSD-fd
FreeBSD-ftp
FreeBSD-ipf
FreeBSD-ipfw
FreeBSD-jail
FreeBSD-kerberos
FreeBSD-lp
FreeBSD-natd
FreeBSD-netmap
FreeBSD-nfs
FreeBSD-pf
FreeBSD-resolvconf
FreeBSD-ssh
FreeBSD-unbound
FreeBSD-zfs
  1. packages already in no-toolchain that IMO we don't explicitly
  2. need; if these are pulled in from other sets that's OK.
# FreeBSD-autofs
# FreeBSD-console-tools
# FreeBSD-ftpd
# FreeBSD-iscsi
# FreeBSD-libbegemot
# FreeBSD-libbz2
# FreeBSD-libcompiler_rt-dev
# FreeBSD-libevent1
# FreeBSD-nuageinit
# FreeBSD-quotacheck
# FreeBSD-rcmds
# FreeBSD-rescue
# FreeBSD-telnet
# FreeBSD-ufs
# FreeBSD-yp
In D52716#1204713, @dch wrote:
  1. packages in no-toolchain but not in minimal-jail

none of these belong in minimal, so i would add them to the image, except for FreeBSD-devmatch which doesn't work in a jail and shouldn't be installed at all. the inclusion of FreeBSD-fd is also a little doubtful, although in theory i suppose that could work in a jail so there's no harm including it.

  1. packages already in no-toolchain that IMO we don't explicitly
  2. need; if these are pulled in from other sets that's OK.
# FreeBSD-libbegemot
# FreeBSD-libbz2
# FreeBSD-libevent1

the approach i took for set-base-jail is to include all libraries, even if they aren't needed or don't make sense in a jail, because the user may have an existing binary that requires them. note that libbz2 was recently renamed to bzip2-lib.

# FreeBSD-libcompiler_rt-dev

this is part of the toolchain and shouldn't be in a notoolchain image.

# FreeBSD-telnet

some people use telnet(1) for testing and debugging.

use minimal-jail in no-toolchain

results in the following packages, with *** for those I'd like to remove,
if possible, from set-minimal-jail:

FreeBSD-at
FreeBSD-audit-lib
FreeBSD-bhyve
FreeBSD-blocklist
FreeBSD-bluetooth         ***
FreeBSD-bluetooth-lib     ***
FreeBSD-bmake
FreeBSD-bzip2
FreeBSD-bzip2-lib
FreeBSD-caroot
FreeBSD-certctl
FreeBSD-clibs
FreeBSD-cron
FreeBSD-ctf-lib
FreeBSD-devd              ***
FreeBSD-dma
FreeBSD-fetch
FreeBSD-inetd
FreeBSD-ipf
FreeBSD-ipfw
FreeBSD-kerberos-lib
FreeBSD-kernel-man
FreeBSD-lib9p
FreeBSD-libarchive
FreeBSD-libbsdstat
FreeBSD-libcasper
FreeBSD-libcuse
FreeBSD-libevent1
FreeBSD-libexecinfo
FreeBSD-libldns
FreeBSD-libmagic
FreeBSD-libucl
FreeBSD-libvmmapi
FreeBSD-libyaml
FreeBSD-locales
FreeBSD-mandoc
FreeBSD-mtree
FreeBSD-natd
FreeBSD-ncurses
FreeBSD-netmap
FreeBSD-newsyslog
FreeBSD-openssl
FreeBSD-openssl-lib
FreeBSD-periodic
FreeBSD-pf
FreeBSD-pkg-bootstrap
FreeBSD-ppp               ***
FreeBSD-rc
FreeBSD-runtime
FreeBSD-set-minimal-jail
FreeBSD-sound             ***
FreeBSD-ssh
FreeBSD-syslogd
FreeBSD-tcpd
FreeBSD-telnet
FreeBSD-ufs-lib
FreeBSD-utilities
FreeBSD-vi
FreeBSD-xz
FreeBSD-xz-lib
FreeBSD-zfs
FreeBSD-zfs-lib
FreeBSD-zoneinfo

moving this to a new review, the history is confusing.