The branch main has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=66f36c3686762d9a6e48b0453fc7221be36a0eb8
commit 66f36c3686762d9a6e48b0453fc7221be36a0eb8 Author: Lexi Winter <i...@freebsd.org> AuthorDate: 2025-09-12 20:59:25 +0000 Commit: Lexi Winter <i...@freebsd.org> CommitDate: 2025-09-12 20:59:25 +0000 packages: Add meta-package sets Add several metapackages which contain no files themselves, but depend on other packages. This allows the user to install a system by using a set like "FreeBSD-set-minimal" instead of having to know which specific packages are required, and it means if we add more package in the future, existing installations will get them automatically as long as they were installed using a set. The defined sets are significantly less granular than the actual packages; the assumption is that users who want a very specific set of packages installed can do that manually, while sets are intended more for typical users who just want to install FreeBSD. The following sets are defined: * minimal: the set of packages required to boot the system and bring up a multi-user UNIX system. This includes hardware support, networking (wireless, DHCP), basic functionality like syslogd, cron and periodic. It does not include a kernel, because the kernels are quite large and the user might want to use a custom kernel. sendmail and DMA are not included in minimal. Since we provide two MTAs, the user should select which one they want, or install one from ports. sshd is not included because it's not required for the base system, and the user might want to install it from ports. Some other significant subsystems (e.g. NFS, Kerberos) are also not included. The minimal set does not include any libraries itself, since we rely on dependencies to pull these in. This implies it doesn't include library manpages, which is fine, since users won't want manpages for libraries unless they've also installed the development packages. * devel: the compiler toolchain for building software, along with all "-dev" packages which include header files and static libraries. * lib32: 32-bit compatibility packages. This includes both runtime and development packages. * kernels: the kernel packages. For freebsd.org builds, this will be GENERIC, GENERIC-DEBUG, etc., for custom builds it will be whatever was set in $KERNCONF. * base: everything else; this includes the entire base system. For each set, also generate a <setname>-dbg set containing the debug packages for the set. The sets are built along with the rest of the packages using a new script called create-sets.sh, which examines the "set" annotation in each package and puts it in the appropriate set. This is in anticipation of the later "groups" feature appearing in pkg itself, at which point we can simply replace the set annotation with the group. MFC after: 3 days Reviewed by: imp, bapt Differential Revision: https://reviews.freebsd.org/D52412 --- Makefile.inc1 | 30 +++++++++- release/packages/create-sets.sh | 45 ++++++++++++++ release/packages/generate-set-ucl.lua | 96 ++++++++++++++++++++++++++++++ release/packages/generate-ucl.lua | 34 +++++++++++ release/packages/set-template.ucl | 15 +++++ release/packages/sets/base-dbg.ucl | 16 +++++ release/packages/sets/base.ucl | 16 +++++ release/packages/sets/devel-dbg.ucl | 13 ++++ release/packages/sets/devel.ucl | 13 ++++ release/packages/sets/kernels-dbg.ucl | 6 ++ release/packages/sets/kernels.ucl | 6 ++ release/packages/sets/lib32-dbg.ucl | 6 ++ release/packages/sets/lib32.ucl | 6 ++ release/packages/sets/minimal-dbg.ucl | 6 ++ release/packages/sets/minimal.ucl | 6 ++ release/packages/template.ucl | 33 +++++++--- release/packages/ucl/README | 21 +++++++ release/packages/ucl/at-all.ucl | 4 ++ release/packages/ucl/bmake-all.ucl | 5 ++ release/packages/ucl/bootloader-all.ucl | 4 ++ release/packages/ucl/caroot-all.ucl | 4 ++ release/packages/ucl/certctl-all.ucl | 4 ++ release/packages/ucl/clang-all.ucl | 4 ++ release/packages/ucl/clibs-all.ucl | 5 ++ release/packages/ucl/cron-all.ucl | 4 ++ release/packages/ucl/ctf-tools-all.ucl | 5 ++ release/packages/ucl/devd-all.ucl | 5 ++ release/packages/ucl/devmatch-all.ucl | 11 +++- release/packages/ucl/dhclient-all.ucl | 5 ++ release/packages/ucl/dtb-all.ucl | 5 ++ release/packages/ucl/fetch-all.ucl | 10 +++- release/packages/ucl/firmware-iwm-all.ucl | 10 +++- release/packages/ucl/fwget-all.ucl | 10 +++- release/packages/ucl/geom-all.ucl | 11 +++- release/packages/ucl/hyperv-tools-all.ucl | 10 +++- release/packages/ucl/inetd-all.ucl | 9 ++- release/packages/ucl/kernel-all.ucl | 5 ++ release/packages/ucl/lld-all.ucl | 4 ++ release/packages/ucl/lldb-all.ucl | 4 ++ release/packages/ucl/locales-all.ucl | 5 ++ release/packages/ucl/mtree-all.ucl | 5 ++ release/packages/ucl/newsyslog-all.ucl | 10 +++- release/packages/ucl/nuageinit-all.ucl | 5 ++ release/packages/ucl/periodic-all.ucl | 11 +++- release/packages/ucl/pkg-bootstrap-all.ucl | 11 +++- release/packages/ucl/ppp-all.ucl | 5 ++ release/packages/ucl/rc-all.ucl | 11 +++- release/packages/ucl/rdma-all.ucl | 3 + release/packages/ucl/rescue-all.ucl | 11 +++- release/packages/ucl/resolvconf-all.ucl | 11 +++- release/packages/ucl/runtime-all.ucl | 10 +++- release/packages/ucl/runtime.ucl | 1 + release/packages/ucl/syslogd-all.ucl | 10 +++- release/packages/ucl/toolchain-all.ucl | 5 ++ release/packages/ucl/ufs-all.ucl | 5 ++ release/packages/ucl/utilities-all.ucl | 5 ++ release/packages/ucl/vi-all.ucl | 10 +++- release/packages/ucl/vt-data-all.ucl | 5 ++ release/packages/ucl/wpa-all.ucl | 5 ++ release/packages/ucl/zfs-all.ucl | 5 ++ release/packages/ucl/zoneinfo-all.ucl | 4 ++ 61 files changed, 619 insertions(+), 40 deletions(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 98059640daab..97a0b00cc517 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2097,6 +2097,14 @@ create-packages-world: _pkgbootstrap _repodir .PHONY DESTDIR=${WSTAGEDIR} \ PKG_VERSION=${PKG_VERSION} create-world-packages +.ORDER: create-packages-world create-packages-sets +.ORDER: create-packages-kernel create-packages-sets +create-packages-sets: _pkgbootstrap _repodir .PHONY + ${_+_}@cd ${.CURDIR}; \ + ${MAKE} -f Makefile.inc1 \ + DESTDIR=${WSTAGEDIR} \ + PKG_VERSION=${PKG_VERSION} create-sets-packages + create-packages-kernel: _pkgbootstrap _repodir .PHONY ${_+_}@cd ${.CURDIR}; \ ${MAKE} -f Makefile.inc1 \ @@ -2109,6 +2117,8 @@ create-packages-kernel-repo: .PHONY create-packages-kernel sign-packages create-packages-world-repo: .PHONY create-packages-world sign-packages +create-packages-sets-repo: .PHONY create-packages-sets sign-packages + create-packages-source: _pkgbootstrap _repodir .PHONY ${_+_}@cd ${.CURDIR}; \ ${MAKE} -f Makefile.inc1 \ @@ -2117,7 +2127,7 @@ create-packages-source: _pkgbootstrap _repodir .PHONY SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ create-source-packages -create-packages: .PHONY create-packages-world create-packages-kernel create-packages-source +create-packages: .PHONY create-packages-world create-packages-kernel create-packages-source create-packages-sets create-source-src-package: _pkgbootstrap .PHONY rm -f ${SSTAGEDIR}/src.plist 2>/dev/null || : @@ -2214,6 +2224,24 @@ create-world-package-${pkgname}: .PHONY -o ${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR} .endfor +create-sets-packages-jobs: .PHONY create-sets-packages +create-sets-packages: .PHONY + @echo "==> Creating set metapackages." + sh "${SRCDIR}/release/packages/create-sets.sh" "${SRCDIR}" \ + "${WSTAGEDIR}" "${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR}" \ + VERSION "${PKG_VERSION}" \ + PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \ + PKG_MAINTAINER "${PKG_MAINTAINER}" \ + PKG_WWW "${PKG_WWW}" + @for manifest in ${WSTAGEDIR}/set-*.ucl; do \ + echo "--> Processing manifest: $$manifest"; \ + ${PKG_CMD} -o ABI=${PKG_ABI} -o OSVERSION="${SRCRELDATE}" \ + create -f ${PKG_FORMAT} ${PKG_CLEVEL} \ + -M $$manifest \ + -o "${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR}" \ + || exit 1; \ + done + _default_flavor= -default .if make(*package*) && exists(${KSTAGEDIR}/kernel.meta) . if ${MK_DEBUG_FILES} != "no" diff --git a/release/packages/create-sets.sh b/release/packages/create-sets.sh new file mode 100755 index 000000000000..6c034834672e --- /dev/null +++ b/release/packages/create-sets.sh @@ -0,0 +1,45 @@ +#! /bin/sh + +# Generate metapackage sets. We do this by examining the annotations field +# of the packages we previously built. + +set -e + +if [ $# -lt 3 ]; then + printf >&2 'usage: %s <srcdir> <wstagedir> <repodir>\n' "$0" + exit 1 +fi + +srcdir="$1"; shift +wstagedir="$1"; shift +repodir="$1"; shift +# Everything after the first three arguments is UCL variables we pass to +# generate-set-ucl.lua. +UCL_VARS="$@" + +for pkg in "$repodir"/*.pkg; do + # If the package name doesn't containing a '-', then it's + # probably data.pkg or packagesite.pkg, which are not real + # packages. + { echo "$pkg" | grep -q '-'; } || continue + + set -- $(pkg query -F "$pkg" '%At %n %Av' | grep '^set ') + pkgname="$2" + set="$3" + SETS="$SETS $set" + setvar="$(echo "$set" | tr - _)" + eval PKGS_${setvar}=\"\$PKGS_${setvar} $pkgname\" +done + +for set in $(echo $SETS | tr ' ' '\n' | sort | uniq); do + setvar="$(echo "$set" | tr - _)" + eval deps=\"\$PKGS_${setvar}\" + + "${srcdir}/release/packages/generate-set-ucl.lua" \ + "${srcdir}/release/packages/set-template.ucl" \ + PKGNAME "$set" \ + SET_DEPENDS "$deps" \ + UCLFILES "${srcdir}/release/packages/sets" \ + $UCL_VARS \ + > "${wstagedir}/set-${set}.ucl" +done diff --git a/release/packages/generate-set-ucl.lua b/release/packages/generate-set-ucl.lua new file mode 100755 index 000000000000..b1b70053b02a --- /dev/null +++ b/release/packages/generate-set-ucl.lua @@ -0,0 +1,96 @@ +#!/usr/libexec/flua + +--[[ usage: +generare-set-ucl.lua <template> [<variablename> <variablevalue>] + +Generate the UCL for a set metapackage. The variables provided will be +substituted as UCL variables. +]]-- + +local ucl = require("ucl") + +-- This parser is the output UCL we want to build. +local parser = ucl.parser() + +if #arg < 1 then + io.stderr:write(arg[0] .. ": missing template filename\n") + os.exit(1) +end + +local template = table.remove(arg, 1) + +-- Set any $VARIABLES from the command line in the parser. This causes ucl to +-- automatically replace them when we load the source ucl. +if #arg % 2 ~= 0 then + io.stderr:write(arg[0] .. ": expected an even number of arguments, " + .. "got " .. #arg .. "\n") + os.exit(1) +end + +local pkgprefix = nil +local pkgversion = nil +local pkgdeps = "" + +for i = 2, #arg, 2 do + local varname = arg[i - 1] + local varvalue = arg[i] + + if varname == "PKG_NAME_PREFIX" and #varvalue > 0 then + pkgprefix = varvalue + elseif varname == "VERSION" and #varvalue > 0 then + pkgversion = varvalue + elseif varname == "SET_DEPENDS" and #varvalue > 0 then + pkgdeps = varvalue + end + + parser:register_variable(varname, varvalue) +end + +-- Load the source template. +local res,err = parser:parse_file(template) +if not res then + io.stderr:write(arg[0] .. ": fail to parse(" .. template .. "): " + .. err .. "\n") + os.exit(1) +end + +local obj = parser:get_object() + +-- Dependency handling. +obj["deps"] = obj["deps"] or {} + +-- If PKG_NAME_PREFIX is provided, rewrite the names of dependency packages. +-- We can't do this in UCL since variable substitution doesn't work in array +-- keys. Note that this only applies to dependencies from the set UCL files, +-- because SET_DEPENDS already have the correct prefix. +if pkgprefix ~= nil then + newdeps = {} + for dep, opts in pairs(obj["deps"]) do + local newdep = pkgprefix .. "-" .. dep + newdeps[newdep] = opts + end + obj["deps"] = newdeps +end + +-- Add dependencies from SET_DEPENDS. +for dep in string.gmatch(pkgdeps, "[^%s]+") do + obj["deps"][dep] = { + ["origin"] = "base" + } +end + +-- Add a version key to all dependencies, otherwise pkg doesn't like it. +for dep, opts in pairs(obj["deps"]) do + if obj["deps"][dep]["version"] == nil then + obj["deps"][dep]["version"] = pkgversion + end +end + +-- If there are no dependencies, remove the deps key, otherwise pkg raises an +-- error trying to read the manifest. +if next(obj["deps"]) == nil then + obj["deps"] = nil +end + +-- Write the output. +io.stdout:write(ucl.to_format(obj, 'ucl', true)) diff --git a/release/packages/generate-ucl.lua b/release/packages/generate-ucl.lua index 5637bbd3ad99..47f0a0e9a6a9 100755 --- a/release/packages/generate-ucl.lua +++ b/release/packages/generate-ucl.lua @@ -165,6 +165,40 @@ if add_gen_dep(pkgname, pkggenname) then } end +-- +-- Handle the 'set' annotation. +-- +-- Ensure we have an annotations table to work with. +obj["annotations"] = obj["annotations"] or {} +-- If no set is provided, use the default set which is "base". +set = obj["annotations"]["set"] or "base" +-- For subpackages, we may need to rewrite the set name. This is done a little +-- differently from the normal pkg suffix processing, because we don't need sets +-- to be as a granular as the base packages. +-- +-- Create a single lib32 set for all lib32 packages. Most users don't need +-- lib32, so this avoids creating a large number of unnecessary lib32 sets. +-- However, lib32 debug symbols still go into their own package since they're +-- quite large. +if pkgname:match("%-dbg%-lib32$") then + set = "lib32-dbg" +elseif pkgname:match("%-lib32$") then + set = "lib32" +-- If this is a -dev package, put it in a single set called "devel" which +-- contains all development files. Also include lib*-man packages, which +-- contain manpages for libraries. Having a separate <set>-dev for every +-- set is not necessary, because generally you either want development +-- support or you don't. +elseif pkgname:match("%-dev$") or pkgname:match("^lib.*%-man$") then + set = "devel" +-- If this is a -dbg package, it goes in <set>-dbg, which means the user can +-- install debug symbols only for the sets they have installed. +elseif pkgname:match("%-dbg$") then + set = set .. "-dbg" +end +-- Put our new set back into the package. +obj["annotations"]["set"] = set + -- If PKG_NAME_PREFIX is provided, rewrite the names of dependency packages. -- We can't do this in UCL since variable substitution doesn't work in array -- keys. diff --git a/release/packages/set-template.ucl b/release/packages/set-template.ucl new file mode 100644 index 000000000000..b7ea2b830168 --- /dev/null +++ b/release/packages/set-template.ucl @@ -0,0 +1,15 @@ +# This is the default set of options applied to the set metapackages. +# The options are the same as template.ucl, but we don't include any +# additional UCL files. + +name = "${PKG_NAME_PREFIX}-set-${PKGNAME}" +prefix = "/" +origin = "base" +categories = [ base ] +version = "${VERSION}" +maintainer = "${PKG_MAINTAINER}" +www = "${PKG_WWW}" +licenselogic = "single" +licenses = [ BSD2CLAUSE ] + +.include(try=false,duplicate=merge) "${UCLFILES}/${PKGNAME}.ucl" diff --git a/release/packages/sets/base-dbg.ucl b/release/packages/sets/base-dbg.ucl new file mode 100644 index 000000000000..c34e8b575834 --- /dev/null +++ b/release/packages/sets/base-dbg.ucl @@ -0,0 +1,16 @@ +comment = "Base system debug symbols (metapackage)" + +desc = <<EOD +This metapackage installs debugging symbols for the complete base system. +EOD + +deps { + "set-minimal-dbg" { + version = "${VERSION}" + origin = "base" + }, + "set-devel-dbg" { + version = "${VERSION}" + origin = "base" + } +} diff --git a/release/packages/sets/base.ucl b/release/packages/sets/base.ucl new file mode 100644 index 000000000000..42dd2095f808 --- /dev/null +++ b/release/packages/sets/base.ucl @@ -0,0 +1,16 @@ +comment = "Base system (metapackage)" + +desc = <<EOD +This metapackage installs all packages which are part of the base system. +EOD + +deps { + "set-minimal" { + version = "${VERSION}" + origin = "base" + }, + "set-devel" { + version = "${VERSION}" + origin = "base" + } +} diff --git a/release/packages/sets/devel-dbg.ucl b/release/packages/sets/devel-dbg.ucl new file mode 100644 index 000000000000..5da492b93750 --- /dev/null +++ b/release/packages/sets/devel-dbg.ucl @@ -0,0 +1,13 @@ +comment = "Developments tools debugging symbols (metapackage)" + +desc = <<EOD +This metapackage installs debugging symbols for the base system compiler and +toolchain. +EOD + +deps { + "set-minimal-dbg" { + version = "${VERSION}" + origin = "base" + }, +} diff --git a/release/packages/sets/devel.ucl b/release/packages/sets/devel.ucl new file mode 100644 index 000000000000..ac6b6bab7ef8 --- /dev/null +++ b/release/packages/sets/devel.ucl @@ -0,0 +1,13 @@ +comment = "Developments tools (metapackage)" + +desc = <<EOD +This metapackage installs development support for the base system, including +compilers, toolchain utilities, header files, and static libraries. +EOD + +deps { + "set-minimal" { + version = "${VERSION}" + origin = "base" + }, +} diff --git a/release/packages/sets/kernels-dbg.ucl b/release/packages/sets/kernels-dbg.ucl new file mode 100644 index 000000000000..cf789c29d35a --- /dev/null +++ b/release/packages/sets/kernels-dbg.ucl @@ -0,0 +1,6 @@ +comment = "Base system kernels debugging symbols (metapackage)" + +desc = <<EOD +This metapackage installs debugging symbols for the operating system kernels +provided with the base system. +EOD diff --git a/release/packages/sets/kernels.ucl b/release/packages/sets/kernels.ucl new file mode 100644 index 000000000000..a57bd5f16905 --- /dev/null +++ b/release/packages/sets/kernels.ucl @@ -0,0 +1,6 @@ +comment = "Base system kernels (metapackage)" + +desc = <<EOD +This metapackage installs the operating system kernels provided with the +base system. +EOD diff --git a/release/packages/sets/lib32-dbg.ucl b/release/packages/sets/lib32-dbg.ucl new file mode 100644 index 000000000000..12722510dc94 --- /dev/null +++ b/release/packages/sets/lib32-dbg.ucl @@ -0,0 +1,6 @@ +comment = "32-bit compatibility library debugging symbols (metapackage)" + +desc = <<EOD +This metapackage installs debugging symbols for the compatibility libraries +required for building and running 32-bit applications on a 64-bit host system. +EOD diff --git a/release/packages/sets/lib32.ucl b/release/packages/sets/lib32.ucl new file mode 100644 index 000000000000..c1b921c30b2e --- /dev/null +++ b/release/packages/sets/lib32.ucl @@ -0,0 +1,6 @@ +comment = "32-bit compatibility libraries (metapackage)" + +desc = <<EOD +This metapackage installs compatibility libraries required for building and +running 32-bit applications on a 64-bit host system. +EOD diff --git a/release/packages/sets/minimal-dbg.ucl b/release/packages/sets/minimal-dbg.ucl new file mode 100644 index 000000000000..606394001696 --- /dev/null +++ b/release/packages/sets/minimal-dbg.ucl @@ -0,0 +1,6 @@ +comment = "Basic multi-user system debugging symbols (metapackage)" + +desc = <<EOD +This metapackage installs debugging symbols for the packages required to bring +up a basic multi-user system. +EOD diff --git a/release/packages/sets/minimal.ucl b/release/packages/sets/minimal.ucl new file mode 100644 index 000000000000..0895f198824e --- /dev/null +++ b/release/packages/sets/minimal.ucl @@ -0,0 +1,6 @@ +comment = "Basic multi-user system (metapackage)" + +desc = <<EOD +This metapackage installs the packages required to bring up a basic multi-user +system. +EOD diff --git a/release/packages/template.ucl b/release/packages/template.ucl index faa48effe1ad..bf4b1b44bbec 100644 --- a/release/packages/template.ucl +++ b/release/packages/template.ucl @@ -1,19 +1,36 @@ -# -# +# This is the default set of options applied to all packages, unless overridden +# in the package-specific manifests. +# The name of the package. $PKG_NAME_PREFIX is "FreeBSD", or might be replaced +# by a downstream packager. name = "${PKG_NAME_PREFIX}-${PKGNAME}" + +# Base packages always install to /. +prefix = "/" + +# For base packages, origin is always "base". origin = "base" -version = "${VERSION}" -comment = "${PKGNAME} package" categories = [ base ] + +# $VERSION is the version of the base system being built. +version = "${VERSION}" + +# Maintainer and WWW point to freebsd.org by default. This should not be +# changed in package-specific manifests even for third-party packages. maintainer = "${PKG_MAINTAINER}" www = "${PKG_WWW}" -prefix = "/" + +# Default the license to BSD2CLAUSE since this is the standard license for +# the base system. licenselogic = "single" licenses = [ BSD2CLAUSE ] -desc = <<EOD -${PKGNAME} package -EOD + +# By default, packages go in the "base" set which includes everything. +annotations { + set = base +} + +# Include the package-specific UCL. .include(try=false,duplicate=rewrite) "${UCLFILES}/${PKGGENNAME}-all.ucl" .include(try=true,duplicate=rewrite) "${UCLFILES}/${PKGNAME}.ucl" .include(try=true,duplicate=rewrite) "${UCLFILES}/${FORCEINCLUDE}.ucl" diff --git a/release/packages/ucl/README b/release/packages/ucl/README new file mode 100644 index 000000000000..85b6130c0488 --- /dev/null +++ b/release/packages/ucl/README @@ -0,0 +1,21 @@ +This directory contains package manifests for the base packages in UCL format. +There are two types of manifest: "<package>.ucl" applies specifically to the +package called "<package>", and "<package>-all.ucl" applies to all of that +package's subpackages. + +For example, if a Makefile sets PACKAGE=foo, then the build might generate the +following packages: + + FreeBSD-foo + FreeBSD-foo-dev + FreeBSD-foo-lib32 + FreeBSD-foo-man + +All of these packages will include "foo-all.ucl", but "foo.ucl" will only be +included by FreeBSD-foo, "foo-dev.ucl" will only be included by FreeBSD-foo-dev, +and so on. + +In general, dependencies and post-install scripts should be added in the +package-specific manifests, while comment and description should be set +in the "-all" manifest. + diff --git a/release/packages/ucl/at-all.ucl b/release/packages/ucl/at-all.ucl index c15642737b36..3e837d781d38 100644 --- a/release/packages/ucl/at-all.ucl +++ b/release/packages/ucl/at-all.ucl @@ -2,3 +2,7 @@ comment = "AT Utilities" desc = <<EOD AT Utilities EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/bmake-all.ucl b/release/packages/ucl/bmake-all.ucl index ee8175d1dd8a..3f5a5d9cd879 100644 --- a/release/packages/ucl/bmake-all.ucl +++ b/release/packages/ucl/bmake-all.ucl @@ -1,5 +1,10 @@ comment = "Program maintenance utility" + desc = <<EOD make(1) allows programs to be built from source files based on a specification of the program's dependencies called a Makefile. EOD + +annotations { + set = devel +} diff --git a/release/packages/ucl/bootloader-all.ucl b/release/packages/ucl/bootloader-all.ucl index c5690e85c7ba..ea5e94919c96 100644 --- a/release/packages/ucl/bootloader-all.ucl +++ b/release/packages/ucl/bootloader-all.ucl @@ -2,3 +2,7 @@ comment = "Bootloader" desc = <<EOD Bootloader and configuration files EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/caroot-all.ucl b/release/packages/ucl/caroot-all.ucl index 151c1f18ae39..f62f4ff2be37 100644 --- a/release/packages/ucl/caroot-all.ucl +++ b/release/packages/ucl/caroot-all.ucl @@ -2,3 +2,7 @@ comment = "SSL Certificates" desc = <<EOD SSL Certificates EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/certctl-all.ucl b/release/packages/ucl/certctl-all.ucl index b4bc5ae261c5..0e3dd49d7b00 100644 --- a/release/packages/ucl/certctl-all.ucl +++ b/release/packages/ucl/certctl-all.ucl @@ -2,3 +2,7 @@ comment = "SSL Certificate Utility" desc = <<EOD SSL Certificate Utility EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/clang-all.ucl b/release/packages/ucl/clang-all.ucl index 3f79f0acb229..e0fe8f35f40e 100644 --- a/release/packages/ucl/clang-all.ucl +++ b/release/packages/ucl/clang-all.ucl @@ -3,3 +3,7 @@ desc = <<EOD Clang Utilities EOD licenses = [ NCSA ] + +annotations { + set = devel +} diff --git a/release/packages/ucl/clibs-all.ucl b/release/packages/ucl/clibs-all.ucl index 69ae018d4d1f..65353d515403 100644 --- a/release/packages/ucl/clibs-all.ucl +++ b/release/packages/ucl/clibs-all.ucl @@ -1,4 +1,9 @@ comment = "Core C Libraries" + desc = <<EOD Core C Libraries EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/cron-all.ucl b/release/packages/ucl/cron-all.ucl index d9edf6bfde52..39bd69b0ba4b 100644 --- a/release/packages/ucl/cron-all.ucl +++ b/release/packages/ucl/cron-all.ucl @@ -2,3 +2,7 @@ comment = "cron(8) and crontab(1)" desc = <<EOD cron(8) and crontab(1) EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/ctf-tools-all.ucl b/release/packages/ucl/ctf-tools-all.ucl index 38ca769f6109..ba092792dea4 100644 --- a/release/packages/ucl/ctf-tools-all.ucl +++ b/release/packages/ucl/ctf-tools-all.ucl @@ -1,4 +1,9 @@ comment = "CTF Utilities" + desc = <<EOD CTF Utilities EOD + +annotations { + set = devel +} diff --git a/release/packages/ucl/devd-all.ucl b/release/packages/ucl/devd-all.ucl index dc7d162a1930..a78718955f24 100644 --- a/release/packages/ucl/devd-all.ucl +++ b/release/packages/ucl/devd-all.ucl @@ -1,4 +1,9 @@ comment = "Devd Utility and scripts" + desc = <<EOD Devd Utility and scripts EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/devmatch-all.ucl b/release/packages/ucl/devmatch-all.ucl index 02dc903fd422..56e37461a747 100644 --- a/release/packages/ucl/devmatch-all.ucl +++ b/release/packages/ucl/devmatch-all.ucl @@ -1,4 +1,11 @@ -comment = "Devmatch Utility" +comment = "Automatically load kernel drivers for attached hardware" + desc = <<EOD -Devmatch Utility +The devmatch(8) utility is used to load kernel drivers for hardware attached to +the running system. devmatch(8) is started at boot by rc(8), and during system +operation by devd(8) when new hardware is attached to the system. EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/dhclient-all.ucl b/release/packages/ucl/dhclient-all.ucl index 6785366aea5e..a5035075bf23 100644 --- a/release/packages/ucl/dhclient-all.ucl +++ b/release/packages/ucl/dhclient-all.ucl @@ -1,4 +1,9 @@ comment = "DHCP Client" + desc = <<EOD DHCP Client EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/dtb-all.ucl b/release/packages/ucl/dtb-all.ucl index cc5c1c60f062..5de470796adc 100644 --- a/release/packages/ucl/dtb-all.ucl +++ b/release/packages/ucl/dtb-all.ucl @@ -1,4 +1,9 @@ comment = "FreeBSD Devicetree Blobs" + desc = <<EOD FreeBSD Devicetree Blobs EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/fetch-all.ucl b/release/packages/ucl/fetch-all.ucl index f9a3e03e6fa4..5c488cc1d865 100644 --- a/release/packages/ucl/fetch-all.ucl +++ b/release/packages/ucl/fetch-all.ucl @@ -1,4 +1,10 @@ -comment = "Fetch Utility" +comment = "Retrieve a file from a remote URL" + desc = <<EOD -Fetch Utility +The fetch(1) utility can be used to retieve files from a remote URL via +HTTP or FTP. EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/firmware-iwm-all.ucl b/release/packages/ucl/firmware-iwm-all.ucl index 6fec27c15351..e9952c5f7f56 100644 --- a/release/packages/ucl/firmware-iwm-all.ucl +++ b/release/packages/ucl/firmware-iwm-all.ucl @@ -1,4 +1,10 @@ -comment = "iwm(4) firmwares" +comment = "Firmware for iwm(4) Intel 802.11ac network interfaces" + desc = <<EOD -iwm(4) firmwares +This firmware is required for Intel 802.11ac wireless network cards supported +by the iwm(4) driver. EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/fwget-all.ucl b/release/packages/ucl/fwget-all.ucl index 7a6f9dff5cc9..9ef27df625c3 100644 --- a/release/packages/ucl/fwget-all.ucl +++ b/release/packages/ucl/fwget-all.ucl @@ -1,4 +1,10 @@ -comment = "FWGET Utility" +comment = "Install firmware packages for the running system" + desc = <<EOD -FWGET Utility +The fwget(8) utility can be used to detect and install firmware packages for +hardware devices present on a running system. EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/geom-all.ucl b/release/packages/ucl/geom-all.ucl index 6d80b4458f64..a7b335236048 100644 --- a/release/packages/ucl/geom-all.ucl +++ b/release/packages/ucl/geom-all.ucl @@ -1,4 +1,11 @@ -comment = "GEOM Utilitites" +comment = "GEOM configuration utilities" + desc = <<EOD -GEOM Utilitites +The geom(4) subsystem provides a modular, generic interface to manage disk +devices, including disk partitioning, basic RAID, and block-level encryption. +This package provides the command-line utilities used to manage GEOM. EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/hyperv-tools-all.ucl b/release/packages/ucl/hyperv-tools-all.ucl index e16fd5b4b053..95c7b6dc0b49 100644 --- a/release/packages/ucl/hyperv-tools-all.ucl +++ b/release/packages/ucl/hyperv-tools-all.ucl @@ -1,4 +1,10 @@ -comment = "Microsoft HyperV Utilities" +comment = "Microsoft Hyper-V utilities" + desc = <<EOD -Microsoft HyperV Utilities +This package provides utilities used when running on the Microsoft Hyper-V +virtualisation platform. EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/inetd-all.ucl b/release/packages/ucl/inetd-all.ucl index 731769bdc399..5a6bb05f1675 100644 --- a/release/packages/ucl/inetd-all.ucl +++ b/release/packages/ucl/inetd-all.ucl @@ -1,4 +1,11 @@ comment = "Internet super-server" + desc = <<EOD -Internet super-server +The inetd(8) server listens for incoming network connections and spawns a +process to handle the connection based on its configuration file. Some +built-in servers for basic services are also provided. EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/kernel-all.ucl b/release/packages/ucl/kernel-all.ucl index 31671602a947..be55373397eb 100644 --- a/release/packages/ucl/kernel-all.ucl +++ b/release/packages/ucl/kernel-all.ucl @@ -1,4 +1,9 @@ comment = "FreeBSD ${KERNEL_NAME} Kernel ${KERNEL_FLAVOR}" + desc = <<EOD FreeBSD ${KERNEL_NAME} Kernel ${KERNEL_FLAVOR} EOD + +annotations { + set = kernels +} diff --git a/release/packages/ucl/lld-all.ucl b/release/packages/ucl/lld-all.ucl index 03daf1b235e6..4c96d8d7b313 100644 --- a/release/packages/ucl/lld-all.ucl +++ b/release/packages/ucl/lld-all.ucl @@ -4,3 +4,7 @@ ld.lld is the ELF linker provided by LLVM. EOD licenses = [ NCSA ] + +annotations { + set = devel +} diff --git a/release/packages/ucl/lldb-all.ucl b/release/packages/ucl/lldb-all.ucl index da481c026981..d6ff16421724 100644 --- a/release/packages/ucl/lldb-all.ucl +++ b/release/packages/ucl/lldb-all.ucl @@ -4,3 +4,7 @@ lldb is a source-level debugger from the LLVM project. EOD licenses = [ NCSA ] + +annotations { + set = devel +} diff --git a/release/packages/ucl/locales-all.ucl b/release/packages/ucl/locales-all.ucl index 6fc53ab10fca..78a15501d493 100644 --- a/release/packages/ucl/locales-all.ucl +++ b/release/packages/ucl/locales-all.ucl @@ -1,4 +1,9 @@ comment = "Locale definitions" + desc = <<EOD Provides the locale definitions (LC_*) for supported locales. EOD + +annotations { + set = minimal +} diff --git a/release/packages/ucl/mtree-all.ucl b/release/packages/ucl/mtree-all.ucl index b921c51a6afb..f7c12f9def88 100644 --- a/release/packages/ucl/mtree-all.ucl +++ b/release/packages/ucl/mtree-all.ucl @@ -1,4 +1,9 @@ comment = "MTREE Files" + desc = <<EOD MTREE Files EOD + +annotations { + set = devel *** 303 LINES SKIPPED ***