Skip to content

[WIP] Pkgbase 15.0#15

Open
foudfou wants to merge 4 commits intoemtiu:mainfrom
foudfou:pkgbase-15.0
Open

[WIP] Pkgbase 15.0#15
foudfou wants to merge 4 commits intoemtiu:mainfrom
foudfou:pkgbase-15.0

Conversation

@foudfou
Copy link
Copy Markdown

@foudfou foudfou commented Dec 6, 2025

First draft at adapting to RELEASE-15.0 and pkgbase. See #14

Tested in vm (will add instructions shortly).

@emtiu
Copy link
Copy Markdown
Owner

emtiu commented Dec 7, 2025

This looks promising, thanks a lot! Looking forward to reports from testing.

I've been using a custom outer base for years, recompiling it for every update, and it seems very promising to just replace this with a minimal pkgbase set :)

When upgrading the script to FreeBSD 15.x, I would probably rename the previous version to outerbase-install-14.sh to keep it around for a while.

Comment thread outerbase-install.sh

# called without argument: present drive info and exit
if [ -z $1 ]; then
dialog --msgbox \
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dialog simply not available in bsdinstall and seemingly replaced by bsddialog.

Comment thread outerbase-install.sh

if [ -z "$customdrives" ]; then
zpool create -o ashift=12 -m none -o altroot=/mnt $poolname /dev/gpt/inner.eli
zpool create -o ashift=12 -m none -o altroot=$INNER_CHROOT $poolname /dev/gpt/inner.eli
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I took the liberty to refactor and use INNER_CHROOT consistently. But this may be a matter of taste, so happy to revert.

Comment thread outerbase-install.sh
fi
# if set, install debug symbols for selected packages
# This will install -dbg variants of installed package sets
install_debug=""
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe bloat. I'm personally not using this, unless someone finds it useful, I'm more than happy to remove.

Comment thread outerbase-install.sh
$pkg_cmd update

# Build package list - always install minimal, kernel, and pkg (if available)
local packages="FreeBSD-set-minimal FreeBSD-kernel-generic"
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we want FreeBSD-kernel-generic only for outer. Will fix that when I get a chance.

Comment thread outerbase-install.sh
fi

# Not part of FreeBSD-set-minimal, but FreeBSD-set-optional
packages="$packages FreeBSD-ssh FreeBSD-bsdconfig"
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Outer gets FreeBSD-set-minimal only (while inner gets FreeBSD-set-base which includes FreeBSD-set-optional), but we:

  1. want ssh in outer
  2. use bsdconfig later on, during installation, when we chroot in to outer to configure

We could also remove FreeBSD-bsdconfig after configuring to keep a lean outer.

@foudfou
Copy link
Copy Markdown
Author

foudfou commented Dec 7, 2025

Basic tests on a vm are successful. It'd be nice if people would test their use cases (customdrives for instance).

A couple of remarks toward pkgbase in 15.0 are:

  • It's still considered kinda experimental. The installer advertises it as such. Although Distribution Sets (.txz) won't be supported in 16.0.
  • I have adapted my thin jail management scripts and for example BastilleBSD have already adapted.
  • The upgrade to 15.1 will enable us to see the full process. I'm not 100% sure of the repos configuration in outerbase right now. The idea is that there is a specific repo for the base system, distinct from ports (see /etc/pkg/FreeBSD.conf in new install).
  • As stated in DEVELOPMENT.md, pkgbase installs require 1GB+ mem nodes. Since .txz install didn't have that constraint, I filled a bug.

Sharing here because outerbase, and this PR in particular, might need tweaking as we gain understanding/experience.

While there is the pkgbasify option, I think a full re-install with outerbase would be cleaner. So I might test this on real hardware but not before months.

Comment thread DEVELOPMENT.md
@@ -0,0 +1,32 @@
# Development
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just some notes of mine for testing that I thought would be useful to others. Happy to remove them if we prefer to keep the repo tiny.

@emtiu
Copy link
Copy Markdown
Owner

emtiu commented Dec 9, 2025

Thank you for your efforts so far, this looks promising, and I'm looking forward to seeing more :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants