540 Commits
Author SHA1 Message Date
John Baldwin 22293f8c54 release: Use "debug info" for lib32 set description
This mirrors the changes applied to kernel debug symbol sets in commit
9a354a41be.

Reviewed by:	emaste
Sponsored by:	AFRL, DARPA
Differential Revision:	https://reviews.freebsd.org/D59058
2026-08-26 15:01:39 -04:00
Colin Percival ca0cff7932 Revert "release: Ship firmware from kmods repo on DVD"
This was a good idea, but we don't build metapackages in the kmods
repo so it ends up breaking the release build.  I might resurrect this
change if/when the kmods repo includes the wifi-firmware-kmod
metapackage.

This reverts commit bda8028146.

MFC after:	1 second
2026-08-07 08:52:39 -07:00
Colin Percival 8d92f32ae0 make-pkg-package.sh: Fix build for pkg 2.8.0
We used to pass CONFIGURE_ARGS to the make command which builds pkg,
but ports/ports-mgmt/pkg/Makefile has its own CONFIGURE_ARGS and the
version we were providing at the command line didn't contain the
--mandir setting which was added to the port with pkg 2.8.0.  This
broke release builds.

Instead of passing --prefix=${LOCALBASE} via CONFIGURE_ARGS, pass
PREFIX=${LOCALBASE}; the port Makefile passes that value through to
its configure script.  We also used to pass a --host parameter, but
that seems to have become unnecessary at some point in the past decade.

MFC after:	1 day
Sponsored by:	Amazon
2026-07-27 18:49:28 -07:00
Ed Maste 0068c706f8 make-pkg-package: Add set -e; abort if a cmd fails
This makes it less likely we will silently generate broken artifacts.

Reviewed by:	ivy
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56671
2026-04-27 17:16:18 -04:00
Ed Maste 4846afc910 pkg-stage: Improve symlink creation
Invoke ln with -n and -f.  In normal use it doesn't matter, but during
development this might be run in a partially populated leftover tree.

Reviewed by:	ivy
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D52883
2026-04-27 15:47:24 -04:00
Dave Cottlehuber 3b10806812 release: remove Oracle Cloud Infrastructure build targets
Oracle's previous support is no longer available to the project.
Repeated attempts to find a sponsor within Oracle's cloud business
have not been successful.

The last published official images are from 15.0-RELEASE.

https://marketplace.oracle.com/app/freebsd-release

Relnotes:	yes
Sponsored by:	SkunkWerks, GmbH
Differential Revision:	https://reviews.freebsd.org/D56360
MFC after:	3 days
2026-04-13 15:34:17 +00:00
Colin Percival 6881fd278d pkg-stage.sh: Add ext2 and ntfs
Having these packages available on release media may help users who
need to sneakernet other packages (e.g. firmware) from systems running
Linux or Windows.

Suggested by:	vladlen, ziaee
MFC after:	3 days
2026-02-21 16:41:02 -08:00
Colin Percival 18721be356 release: Turn off debugging in pkg(8)
Running `pkg -d` in pkg-stage.sh results in multiple GB of network
traffic being written into the log files, which is less than helpful
when it comes to tracking down build failures.  Remove the -d flag.

MFC after:	5 days
X-MFC-note:	The code in 15 has diverged from 14, but the flag is
		there, just in a different place.
2026-02-06 13:05:26 -08:00
zxbv3 49d75d9320 pkgbase-stage.lua: Add '*-jail-dbg' variant to dvd1
- Add *-jail-dbg variant to dvd1 to match the non-jail variant;
- Remove assertion introduced in the previous commit for consistency with existing code.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1991
2026-02-01 14:51:11 -07:00
zxbv3 638fb31a75 pkgbase-stage.lua: Add *-jail metapackages to the offline repo
Having *-jail metapackage variants on the installation media allows convenient offline jail creation.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/1991
2026-02-01 14:51:10 -07:00
Colin Percival bda8028146 release: Ship firmware from kmods repo on DVD
The packages for X.Y-RELEASE are a snapshot of the quarterly branch
for stable/X, i.e. typically built on X.(Y-1)-RELEASE.  (The case of
Y=0 is an exception for obvious reasons.)  This works for most ports
but not for kernel modules, which may need to be built on the release
in question; this is why we have a separate "kmods" repository.

Make sure that we put the packages from the kmods repository onto the
mini-pkg-repo on the DVD rather than shipping unusable firmware.

Reviewed by:	bz
MFC after:	1 week
Sponsored by:	https://www.patreon.com/cperciva
Differential Revision:	https://reviews.freebsd.org/D52581
2026-01-30 09:41:51 -08:00
Ed Maste 54e006369c release: Remove not-NO_ROOT cases
We always use NO_ROOT for release artifact builds, so remove the
alternate code paths.

For the first step we set NO_ROOT unconditionally in cases that invoke
submakes, and turn NO_ROOT being unset into an error in lover-level
targets so that we can catch potential out-of-tree build scripts (or
missed in-tree cases) that expect to run not-NO_ROOT builds.  The second
step will be to remove those entirely.

Reviewed by:	cperciva
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D54179
2026-01-29 12:03:20 -05:00
Li-Wen Hsu 90eda62996 release: Include comms/usbmuxd to DVD to ensure ipheth(4) works
PR:		291370
Reviewed by:	emaste, aokblast, dch
MFC after:	3 days
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D54074
2025-12-06 07:57:48 +08:00
Colin Percival c8cf5a99f8 release: Ship DVD with only emacs@nox flavour
Contrary to the claim made in a previous commit, removing KDE and
adding all of vim and emacs results in an image which does not fit
into 4.7 GB; to be specific, it lands at 4.722 GB rather than the
claimed 4.689 GB.  (This descrepancy resulted from doing test DVD
image builds using an out-of-date tree, and became visible when the
15.0-RC3 images were built.)

Limit the emacs packages shipped on the DVD to the "nox" flavor;
this brings the disk image down to 4.407 GB, aka under the 4.7 GB
limit for standard DVDs.

Fixes:	6cc6beb4c8 ("release: Remove KDE from dvd1.iso")
MFC after:	1 day (for 15.0-RC4)
2025-11-22 22:09:10 -08:00
Colin Percival 6cc6beb4c8 release: Remove KDE from dvd1.iso
Prior to this commit, we were shipping 2155 MB of packages (from the
ports tree, not counting pkgbase) on dvd1.iso.  Due to the amount of
space required by shipping pkgbase packages *and* distribution sets
on the DVD images, we only have 1696 MB available if we want to fit
into the 4.7 GB limit for DVDs.  Many users have indicated that this
is indeed important.

It is practically impossible to hit this target without removing KDE;
while KDE and its dependencies narrowly fit (1550 MB), we exceed the
limit as soon as we include either of freebsd-doc-all or gnome.  While
we would pick KDE over GNOME (surveys regularly indicate that KDE is
the more widely used of the two), we believe that documentation is the
most important thing to include.

Since removing KDE leaves a bit of extra space, add editors/emacs and
editors/vim.  This takes the 15.0 amd64 dvd1.iso up to 4.689 GB. [1]

Requested by:	adamw [1]
MFC after:	immediately (for 15.0-RC3)
Differential Revision:	https://reviews.freebsd.org/D53800
2025-11-19 12:06:18 -08:00
Lexi Winter 842942be28 packages: Remove the /boot hack from mtree-to-plist.awk
Currently, files in /boot (other than /boot/kernel) are assigned to the
bootloader package using a filename match in mtree-to-plist.awk.  This
causes some problems, most notably that debug info for userboot ends up
in the utilities-dbg package instead of bootloader-dbg.

Remove the path handling from mtree-to-plist and instead set PACKAGE
in the appropriate Makefiles to put these in the correct package.

While here, move userboot*.so from bootloader-dev to bootloader.

MFC after:	3 days
Reviewed by:	cperciva
Sponsored by:	https://www.patreon.com/bsdivy
Differential Revision:	https://reviews.freebsd.org/D53179
2025-10-26 02:22:47 +00:00
Ed Maste 2db11dda84 pkg-stage: Correct /packages permissions
Include /packages in the METALOG used to create dvd1.iso.  Previously
we used an expression ^./packages/ (with a trailing /) which did not
match /packages itself, and then with no METALOG entry /packages on
dvd1.iso ended up with mode d---------.

PR:		290222
Reviewed by:	cperciva
MFC after:	1 minute
Sponsored by:	The FreeBSD Foundation
2025-10-16 21:23:15 -04:00
Doug Rabson e21e6e96b6 release: Avoid generating .pkgsave files in OCI images
This also installs the pkg key from the current source tree instead of
using the one currently installed on the host.

Reviewed by:		dch
MFC after:		1 day
Differential Revision:	https://reviews.freebsd.org/D52615
2025-10-08 15:30:31 +01:00
Lexi Winter b09dd58651 Makefile.inc1: Fix package-pkg with CROSS_TOOLCHAIN
CROSS_TOOLCHAIN is used to build src with a different toolchain than
the bundled one.  Ports also has a CROSS_TOOLCHAIN option, but it has
a different meaning.  When building ports-mgmt/pkg from ports for the
package-pkg target, unset CROSS_TOOLCHAIN to prevent ports from being
confused.

This fixes 'make CROSS_TOOLCHAIN=llvm19 package-pkg' for the native
target, but cross-building (e.g., targetting powerpc from amd64) is
still broken due to an issue in pkg itself.

MFC after:	3 seconds
Reviewed by:	emaste
Sponsored by:	https://www.patreon.com/bsdivy
Differential Revision:	https://reviews.freebsd.org/D52902
2025-10-04 18:52:39 +01:00
Colin Percival 523fece9d1 pkgbase-stage: Use unique PKG_DBDIR
Prior to this commit, pkgbase-stage.lua used a hard-coded PKG_DBDIR
"./pkgdb"; unfortunately this creates a race condition if we start
building disc1.iso and dvd1.iso at the same time

  pkg: sqlite error while executing CREATE TABLE licenses [...]
  in file pkgdb.c:2330: table licenses already exists

since pkg checks to see if the pkgdb is initialized and initializes
it if not.

Use separate pkgdb-disc1 and pkgdb-dvd directories.

MFC after:	1 minute
Sponsored by:	https://www.patreon.com/cperciva
Differential Revision:	https://reviews.freebsd.org/D52755
2025-09-26 21:08:00 -07:00
Isaac Freund f4f0308440 release: create pkgbase repo config from Makefile
This will allow the VM image build scripts to use the same repository
config file for installing base system packages at build time.

Reviewed by:	emaste
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51482
2025-09-25 14:35:54 +02:00
Lexi Winter 3f5385beea release: Improve kernel package handling
Although support for PowerPC kernels (GENERIC64 and GENERIC64LE) was
added to pkgbase-stage.lua, the equivalent support was missing from
bsdinstall, so the installer would fail at runtime since it wouldn't
find a kernel package.

Improve the pkgbase-stage logic to have a specific list of kernels
we want to support (which avoids breaking if multiple kernels are
available), and use the same logic in both bsdinstall and pkgbase-stage.

MFC after:	1 day
Reviewed by:	cperciva
Differential Revision:	https://reviews.freebsd.org/D52638
2025-09-24 10:16:13 +01:00
Lexi Winter 5bb96dab06 pkgbase-stage.lua: Add pkg package to the offline repo
We need a pkg package on the media so we can install it for offline
installations; copy this package from the staging repository to the
pkgbase offline repository on the media.

MFC after:	1 day
Reviewed by:	ifreund_freebsdfoundation.org, cperciva
Differential Revision:	https://reviews.freebsd.org/D52636
2025-09-24 10:16:13 +01:00
Lexi Winter f259daa708 Makefile.inc1: Fix package-pkg with a non-default LOCALBASE
package-pkg (via make-pkg-package.sh) passes CONFIGURE_ARGS to make when
building ports-mgmt/pkg, which overrides the port's default configure
args that are supposed to set --prefix.  This means that pkg is always
built with the default prefix of /usr/local, which then fails when ports
tries to package it from LOCALBASE.

Work around this by explicitly adding --prefix to CONFIGURE_ARGS.

MFC after:	1 day
Reviewed by:	bapt
Differential Revision:	https://reviews.freebsd.org/D52634
2025-09-24 10:16:12 +01:00
Colin Percival 088e210005 release: More fixes for building pkg package
* Ignore "wrong major" errors when obtaining WRKDIR.
* Put distfiles in /tmp in case /usr/ports is read-only.

MFC after:	6 hours
Sponsored by:	https://www.patreon.com/cperciva
2025-09-19 01:09:01 -07:00
Isaac Freund 7e79bc8ce7 release: use sets to select base packages
The introduction of package sets allows us to replace the current
fragile string matching with this simpler and more robust alternative.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 seconds
Reviewed by:	emaste, ivy
Differential Revision:	https://reviews.freebsd.org/D52592
2025-09-19 02:15:10 +01:00
Colin Percival 5918b4866a release: Allow pkg build on "wrong" major
While we usually build FreeBSD releases on the same major version, we
do need to be able to e.g. build 15 on 16.  Tell the ports tree that
we know what we're doing.  (We don't, not really, but we can at least
pretend...)

MFC after:	6 hours
Sponsored by:	https://www.patreon.com/cperciva
2025-09-18 16:41:14 -07:00
Colin Percival b9afd7f6a5 release: Allow powerpc GENERIC64(le)? kernels
The pkgbase-stage.lua script asserts that it has exactly one "kernel",
but only accepts GENERIC as a "kernel".  Use a slightly more permissive
regex in order to capture kernels with names which start "GENERIC".

Reviwed by:	ivy
MFC after:	12 hours
Sponsored by:	https://www.patreon.com/cperciva
Differential Revision:	https://reviews.freebsd.org/D52544
2025-09-17 21:40:43 -07:00
Colin Percival 6b5adf3387 Include a pkg package in the pkgbase repo
It is essential that users be able to install the FreeBSD base system
from release media and have all the bits needed to update the FreeBSD
base system without touching the ports tree or pkg.freebsd.org.  To
that end, resurrect (and heavily rewrite) the make-pkg-package.sh
script and hook it into the create-packages target; if /usr/ports
exists when building pkgbase packages, we'll also (cross)build pkg
and include it in the repository.

Scripting for actually installing this package as part of the FreeBSD
installation process to come later, but I wanted this in the tree in
time to test it in this week's snapshots.

MFC after:	1 day
Sponsored by:	https://www.patreon.com/cperciva
2025-09-17 15:34:25 -07:00
Dave Cottlehuber 728ec0c094 release: Add images for almost all packages, with & without toolchain
Contains almost everything of use in a container except:

- *lib32
- *dev
- *dbg
- *src
- anything expecting hardware such as device config tools

Differential Revision:	https://reviews.freebsd.org/D51471

Reviewed by:	dfr, emaste
Approved by:	cperciva
MFC after:	1 day
Sponsored by:	SkunkWerks, GmbH
2025-09-17 21:16:37 +00:00
Colin Percival 340e68fd7c release: Pass ABI to pkgbase-stage.lua
We then pass ABI from pkgbase-stage.lua to pkg(8); without this,
cross-building releases with PKGBASE enabled fails with

pkg: wrong architecture: ...
pkg: repository FreeBSD-base contains packages with wrong ABI: ...

MFC after:	1 minute
Discussed with:	emaste, jrtc27
Sponsored by:	https://www.patreon.com/c/cperciva
2025-09-13 19:01:26 -07:00
Isaac Freund 6fa24b29d8 release, bsdinstall: include FreeBSD-kernel-man package
This package has been newly split off during man page reorganization and
should be considered part of the "base" component rather than being
ignored. Update pkgbase release and bsdinstall scripts for this change.

Reviewed by:	ivy
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51519
2025-07-30 18:57:17 -04:00
Doug Rabson 2e2903faa6 release: Generalise the OCI image build's pkg config
Allow building OCI images if the source tree is not /usr/src. This also
removes the copy of /etc/pkg/FreeBSD.conf which is not needed for the
OCI image build.

MFC after:	3 days
2025-07-21 13:43:21 +01:00
Bojan Novković ceab09e3db release: Add a helper script for common tools
Add a helper script that populates variables used to invoke several tools.
This is also the first step towards cleaning up several inconsistencies
related to tool invocation in various release scripts (e.g. ${MAKEFS} vs makefs).

Sponsored by: Klara, Inc.
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D51038
Reviewed by:	emaste, des
2025-07-16 17:03:49 +02:00
Ed Maste 611c1457ff release: Add set -e to abort upon failure
We don't want to blindly continue and produce broken VM images if
something goes wrong.

Reviewed by:	cperciva
Event:		Kitchener-Waterloo Hackathon 202506
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50711
2025-06-17 13:40:33 -04:00
Isaac Freund 62d18f8c4c release: Add -DPKGBASE option to include pkgbase packages
If this option is set, an offline repo of pkgbase packages corresponding
to base.txz and kernel.txz will be included in the disc1 release media
rather than the base.txz and kernel.txz tarballs.

Reviewed by:	bapt
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50346
2025-05-20 16:30:12 -04:00
Ed Maste 9a354a41be release: Use "debug info" in dist set descriptions
"Kernel (Debugging)" could suggest that this is a debugging kernel --
an alternative to a "Kernel (Standard)".  These dist sets contain the
standalone debug info files for the kernel, base system, and other
components.  Change the MANIFEST descriptions (used by bsdinstall's
dist selection menu) to use "debug info".

Reviewed by:	brooks
Relnotes:	yes
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50254
2025-05-13 12:59:21 -04:00
Colin Percival 94e44a074e release: Don't put drm-kmod package onto DVD
The X.Y-RELEASE DVDs use a quarterly package set which was built on
X.(Y-1)-RELEASE, and those kernel modules are never going to be
useful.

MFC after:	30 seconds
Sponsored by:	Amazon
2025-05-11 15:19:33 -07:00
Ed Maste b064317fa8 release/pkg-stage: Support non-release artifact builds
Add -N flag to invoke pkg commands with INSTALL_AS_USER mode, and
add package repo contents to METALOG.

Reviewed by:	bapt, brooks
PR:		283387
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50173
2025-05-08 12:46:24 -04:00
Ed Maste 16d0fe1f72 release/pkg-stage: Put each package on a separate line
The list of packages included in dvd1.iso is maintained in pkg-stage.sh
itself, and sees regular additions and deletions.  Rearrange the
beginning and end of the variable so that each package is alone on a
line, to make it easier to track changes.

Reviewed by:	cperciva
Sponsored by:	The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50221
2025-05-06 17:51:50 -04:00
Ed Maste a2aabd2493 release/pkg-stage: Stop creating pkg.txz symlink
Contemporary pkg never uses any file other than pkg.pkg now.

Reviewed by: Isaac Freund <[email protected]>
Fixes: 0cd9513a5b ("pkg: retire backwards compatibility bootstrap support")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50171
2025-05-06 08:04:42 -04:00
Brooks Davis 64b9e40dc5 release: style: prefer -n over ! -z
This is (nearly) universally the style of other shell scripts.

Reviewed by:	cperciva, imp, emaste
Differential Revision:	https://reviews.freebsd.org/D50056
2025-04-29 18:18:33 +01:00
Doug Rabson 3a79ca6553 release: avoid sparse-file handling for container image layers
This improves compatiblity with Podman. See
https://github.com/containers/podman/issues/25270 for details.

Differential Revision:  https://reviews.freebsd.org/D49821
2025-04-15 22:01:45 +00:00
Dave Cottlehuber 0ce9a414ad release: add cloudware oracle targets to package and upload .oci files
- requires base tar & flua, qemu-tools & curl from ports
- set ORACLE_PAR_URL to upload to local file:/// dir or cloud buckets

Reviewed by:	emaste
Approved by:	cperciva
Differential Revision:	https://reviews.freebsd.org/D48382
Sponsored by:	SkunkWerks, GmbH
2025-03-04 23:56:00 +00:00
Doug Rabson e8a5b9fd73 release: build OCI images with shell scripts
This avoids the need for buildah and skopeo for building releases.

Reviewed by:		cpersiva
MFC after:		1 day
Differential Revision:	https://reviews.freebsd.org/D48574
2025-03-02 15:17:13 +00:00
Dave Cottlehuber 457d745d90 release: ensure default sudo flavor is selected
pkg behaviour selects the non-default flavour, this trims
0,5GiB per cloudware image, by being explicit.

Approved by:	cperciva
Differential Revision:	https://reviews.freebsd.org/D48599
Sponsored by:	SkunkWerks, GmbH
PR:		284278
MFC after:	10 days
2025-02-28 22:33:46 +00:00
Colin Percival 0d7b98c06c pkg-stage.sh: kde5 -> kde
The "kde5" package no longer exists; KDE goes to 6.

Note: Depending on the size of 13.5-BETA3 DVD images, KDE might end
up being removed from this list in the near future.

With hat:	re@
MFC after:	30 seconds
Sponsored by:	Amazon
2025-02-19 11:24:06 -08:00
Emmanuel Vadot 11f3da5655 pkgbase: Remove /boot/firmware from bootloader package
For now we don't ship anything in /boot/firmware, but some up coming commit
will ship wifi drivers in it and we want them to be in their own package.

Sponsored by:	Beckhoff Automation GmbH & Co. KG
2024-12-16 10:44:45 +01:00
Doug Rabson e2fc29e539 release: fix architecture for OCI images
PR:			283260
MFC after:		3 days
Differential Revision:	https://reviews.freebsd.org/D48051
2024-12-13 16:47:05 +00:00
Bjoern A. Zeeb 2483a2d368 release: add wifi-firmware-kmod@release to ship as package
Rather than adding the rtw88 package add the flavored port for all the
supported wireless drivers we recently added support for.

Sponsored by:	The FreeBSD Foundation
MFC after:	3 days
Pointed out by:	cperciva (as part of the set of changes)
Reviewed by:	cperciva (#releng)
Differential Revision: https://reviews.freebsd.org/D47406
2024-11-10 19:00:55 +00:00