summaryrefslogtreecommitdiff
path: root/release/scripts
AgeCommit message (Collapse)Author
2025-12-06release: Include comms/usbmuxd to DVD to ensure ipheth(4) worksLi-Wen Hsu
PR: 291370 Reviewed by: emaste, aokblast, dch MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D54074
2025-11-22release: Ship DVD with only emacs@nox flavourColin Percival
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: 6cc6beb4c889 ("release: Remove KDE from dvd1.iso") MFC after: 1 day (for 15.0-RC4)
2025-11-19release: Remove KDE from dvd1.isoColin Percival
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-10-26packages: Remove the /boot hack from mtree-to-plist.awkLexi Winter
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-16pkg-stage: Correct /packages permissionsEd Maste
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-08release: Avoid generating .pkgsave files in OCI imagesDoug Rabson
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-04Makefile.inc1: Fix package-pkg with CROSS_TOOLCHAINLexi Winter
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-09-26pkgbase-stage: Use unique PKG_DBDIRColin Percival
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-25release: create pkgbase repo config from MakefileIsaac Freund
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-24release: Improve kernel package handlingLexi Winter
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-24pkgbase-stage.lua: Add pkg package to the offline repoLexi Winter
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-24Makefile.inc1: Fix package-pkg with a non-default LOCALBASELexi Winter
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-19release: More fixes for building pkg packageColin Percival
* 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-19release: use sets to select base packagesIsaac Freund
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-18release: Allow pkg build on "wrong" majorColin Percival
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-17release: Allow powerpc GENERIC64(le)? kernelsColin Percival
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-17Include a pkg package in the pkgbase repoColin Percival
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-17release: Add images for almost all packages, with & without toolchainDave Cottlehuber
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-13release: Pass ABI to pkgbase-stage.luaColin Percival
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-07-30release, bsdinstall: include FreeBSD-kernel-man packageIsaac Freund
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-21release: Generalise the OCI image build's pkg configDoug Rabson
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-16release: Add a helper script for common toolsBojan Novković
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-06-17release: Add set -e to abort upon failureEd Maste
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-05-20release: Add -DPKGBASE option to include pkgbase packagesIsaac Freund
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-13release: Use "debug info" in dist set descriptionsEd Maste
"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-11release: Don't put drm-kmod package onto DVDColin Percival
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-08release/pkg-stage: Support non-release artifact buildsEd Maste
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-06release/pkg-stage: Put each package on a separate lineEd Maste
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-06release/pkg-stage: Stop creating pkg.txz symlinkEd Maste
Contemporary pkg never uses any file other than pkg.pkg now. Reviewed by: Isaac Freund <ifreund@freebsdfoundation.org> Fixes: 0cd9513a5ba5 ("pkg: retire backwards compatibility bootstrap support") Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D50171
2025-04-29release: style: prefer `-n` over `! -z`Brooks Davis
This is (nearly) universally the style of other shell scripts. Reviewed by: cperciva, imp, emaste Differential Revision: https://reviews.freebsd.org/D50056
2025-04-15release: avoid sparse-file handling for container image layersDoug Rabson
This improves compatiblity with Podman. See https://github.com/containers/podman/issues/25270 for details. Differential Revision: https://reviews.freebsd.org/D49821
2025-03-04release: add cloudware oracle targets to package and upload .oci filesDave Cottlehuber
- 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-02release: build OCI images with shell scriptsDoug Rabson
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-02-28release: ensure default sudo flavor is selectedDave Cottlehuber
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-19pkg-stage.sh: kde5 -> kdeColin Percival
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
2024-12-16pkgbase: Remove /boot/firmware from bootloader packageEmmanuel Vadot
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-13release: fix architecture for OCI imagesDoug Rabson
PR: 283260 MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D48051
2024-11-10release: add wifi-firmware-kmod@release to ship as packageBjoern A. Zeeb
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-08release: add optional OCI imagesDoug Rabson
This adds three OCI archive format files to the release containing FreeBSD base images suitable for static linked, dynamic linked and shell workloads. The shell image also contains pkg-bootstrap and can be easily extended by installing packages (including pkgbase packages). Reviewed by: dch, cpersiva, jlduran, zlei Differential Revision: https://reviews.freebsd.org/D46759 MFC after: 2 days
2024-06-17release: Remove mergemaster mm-mtree.sh scriptEd Maste
It is unused after 8ee478dfd46d ("release: stop generating mergemaster databases"). Sponsored by: The FreeBSD Foundation
2024-05-23Add rtw88 firmware to DVD package setColin Percival
Add net/wifi-firmware-rtw88-kmod since it is no longer included in the base system on 15.x. (It is present in 14.x, so this change will not be MFCed.)
2024-05-23Modernize DVD package set in preparation for 14.1Colin Percival
Remove archivers/unzip (now in base) and emulators/linux_base-c7 (old and unlikely to be useful without other linux packages being installed), ports-mgmt/portmaster (now largely obsolete and discouraged in favour of using pkg and binary packages) and x11-drivers/xf86-video-vmware (questionably useful). Replace devel/git with devel/git@lite (sufficient for most purposes), and adjust the "ensure the ports exist to sanitize the list" code to ignore the @lite part when checking that /usr/ports/devel/git exists. Add sysutils/seatd and x11-wm/sway for wayland support. MFC after: 1 minute Differential Revision: https://reviews.freebsd.org/D45278
2024-05-06release: Rework vm_extra_pre_umountColin Percival
The vm_extra_pre_umount function in vmimage.subr served two purposes: It removed /etc/resolv.conf and /qemu (if cross-building), and it provided a function for cloudware to override in order to make cloud specific changes to the filesystem before constructing a disk image. This resulted in a number of bugs: 1. When cross-building, the emulator binary was left as /qemu in the Azure, GCE, Openstack and Vagrant images. 2. The build host's resolv.conf was left as /etc/resolv.conf in the basic-ci and basic-cloudinit images. 3. When building GCE images, a Google-specific resolv.conf file was constructed, and then deleted before the disk image was created. Move the bits needed for running code inside a VM staging directory from vm_install_base into a new vm_emulation_setup routine, and move the corresponding cleanup bits from vm_extra_pre_umount to a new vm_emulation_cleanup routine. Remove the /qemu and /etc/resolv.conf cleanups from the cloudware configuration files (where they exist) since we will now be running vm_emulation_cleanup to remove those even when vm_extra_pre_umount has been overridden. Override vm_emulation_cleanup in gce.conf since in that one case (and *only* that one case) we don't want to clean up resolv.conf (since it was constructed for the VM image rather than copied from the host). releng/14.1 candidate. MFC after: 1 week Sponsored by: https://www.patreon.com/cperciva
2024-04-14release: Use the ABI of the target release to fetch packagesJohn Baldwin
- Point --rootdir at the installed destdir in the dvd tree. This causes pkg to determine the ABI from the installed destdir instead of the host's binaries. Previously the result was that packages for the host's ABI were always downloaded breaking cross-releases (e.g. arm64 releases built on an amd64 host included amd64 packages on the DVD ISO image rather than arm64 packages). This also handles version mismatches, and I tested this by cross-building a 15.x arm64 release on a 14.x amd64 host. - As a result, pkg now does a chdir(3) to the rootdir before running, so the -o argument to fetch needs to be updated to be relative to rootdir instead of the CWD as make runs. - Add a new ROOTDIR variable to limit references to "dvd" to one place. Ideally ROOTDIR would be an argument to this script so that it didn't really know about the dvd layout at all. - While here, simplify creation of symlinks by just using a longer path to the link name instead of using 'cd' in the shell before invoking ln(1). Also use ln -sf to create the pkg.pkg symlink rather than rm + ln. PR: 278273 Reported by: gatekeeper <tiago.gasiba@gmail.com> Reviewed by: imp, delphij MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D44749
2024-02-03Reapply "pkgbase: Create a FreeBSD-dtb package"Emmanuel Vadot
This reverts commit 9bbe06b004e2cadb55a3792c77991ee640bf0f52. Before that dtbs where included in each kernel packages which prevents us to install multiple kernels. Fix mtree-to-plist.awk to only generate a dtb.plist when we create the kernel one (because dtb are installed during make installkernel). Sponsored by: Beckhoff Automation GmbH & Co. KG
2024-02-02pkg-stage.sh: add x11/sddmGraham Perrin
MFC After: 2 days Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/996
2024-02-02Revert "pkgbase: Create a FreeBSD-dtb package"Emmanuel Vadot
Somehow this doesn't work iwth make packages due to some kind of a race. The package is first created correctly but later in the process it is overwritten by a badly created empty package. Revert in the mean time so we can have working pkgbase on arm/arm64 This reverts commit a5afd7920d50ff23f91bdbabb1f0fd7ba028ba9e.
2024-01-29pkgbase: Create a FreeBSD-dtb packageEmmanuel Vadot
Before that dtbs where included in each kernel packages which prevents us to install multiple kernels. Differential Revision: https://reviews.freebsd.org/D43632 Reviewed by: bapt Sponsored by: Beckhoff Automation GmbH & Co. KG
2023-12-04pkgbase: propagate SRCRELDATE to the packages correctlyBaptiste Daroussin
MFC After: 3 days Reviewed by: manu Differential Revision: https://reviews.freebsd.org/D42892
2023-08-16Remove $FreeBSD$: one-line sh patternWarner Losh
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/