Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F140348337
D52412.id161678.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
30 KB
Referenced Files
None
Subscribers
None
D52412.id161678.diff
View Options
diff --git a/Makefile.inc1 b/Makefile.inc1
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -2097,6 +2097,14 @@
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-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 @@
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 @@
-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
--- /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
--- /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
--- a/release/packages/generate-ucl.lua
+++ b/release/packages/generate-ucl.lua
@@ -165,6 +165,40 @@
}
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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- 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
--- /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
--- a/release/packages/ucl/at-all.ucl
+++ b/release/packages/ucl/at-all.ucl
@@ -2,3 +2,7 @@
desc = <<EOD
AT Utilities
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/bmake-all.ucl b/release/packages/ucl/bmake-all.ucl
--- 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
--- a/release/packages/ucl/bootloader-all.ucl
+++ b/release/packages/ucl/bootloader-all.ucl
@@ -2,3 +2,7 @@
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
--- a/release/packages/ucl/caroot-all.ucl
+++ b/release/packages/ucl/caroot-all.ucl
@@ -2,3 +2,7 @@
desc = <<EOD
SSL Certificates
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/certctl-all.ucl b/release/packages/ucl/certctl-all.ucl
--- a/release/packages/ucl/certctl-all.ucl
+++ b/release/packages/ucl/certctl-all.ucl
@@ -2,3 +2,7 @@
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
--- a/release/packages/ucl/clang-all.ucl
+++ b/release/packages/ucl/clang-all.ucl
@@ -3,3 +3,7 @@
Clang Utilities
EOD
licenses = [ NCSA ]
+
+annotations {
+ set = devel
+}
diff --git a/release/packages/ucl/clibs-all.ucl b/release/packages/ucl/clibs-all.ucl
--- 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
--- a/release/packages/ucl/cron-all.ucl
+++ b/release/packages/ucl/cron-all.ucl
@@ -2,3 +2,7 @@
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
--- 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
--- 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/dhclient-all.ucl b/release/packages/ucl/dhclient-all.ucl
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- a/release/packages/ucl/lld-all.ucl
+++ b/release/packages/ucl/lld-all.ucl
@@ -4,3 +4,7 @@
EOD
licenses = [ NCSA ]
+
+annotations {
+ set = devel
+}
diff --git a/release/packages/ucl/lldb-all.ucl b/release/packages/ucl/lldb-all.ucl
--- a/release/packages/ucl/lldb-all.ucl
+++ b/release/packages/ucl/lldb-all.ucl
@@ -4,3 +4,7 @@
EOD
licenses = [ NCSA ]
+
+annotations {
+ set = devel
+}
diff --git a/release/packages/ucl/locales-all.ucl b/release/packages/ucl/locales-all.ucl
--- 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
--- 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
+}
diff --git a/release/packages/ucl/newsyslog-all.ucl b/release/packages/ucl/newsyslog-all.ucl
--- a/release/packages/ucl/newsyslog-all.ucl
+++ b/release/packages/ucl/newsyslog-all.ucl
@@ -1,4 +1,10 @@
-comment = "Newsyslog Utility"
+comment = "Create and rotate system log files"
+
desc = <<EOD
-Newsyslog Utility
+The newsyslog(8) utility, usually run automatically from cron(8), is used to
+create log files in /var/log and periodically rotate existing log files.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/nuageinit-all.ucl b/release/packages/ucl/nuageinit-all.ucl
--- a/release/packages/ucl/nuageinit-all.ucl
+++ b/release/packages/ucl/nuageinit-all.ucl
@@ -1,4 +1,9 @@
comment = "CloudInit support scripts"
+
desc = <<EOD
CloudInit support scripts
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/periodic-all.ucl b/release/packages/ucl/periodic-all.ucl
--- a/release/packages/ucl/periodic-all.ucl
+++ b/release/packages/ucl/periodic-all.ucl
@@ -1,4 +1,11 @@
-comment = "Periodic Utility"
+comment = "Run periodic system functions"
+
desc = <<EOD
-Periodic Utility
+The periodic(8) utility, usually run from cron(8), provides a system for
+scheduling regular system maintenance tasks. This package also provides
+the base periodic tasks for the base system.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/pkg-bootstrap-all.ucl b/release/packages/ucl/pkg-bootstrap-all.ucl
--- a/release/packages/ucl/pkg-bootstrap-all.ucl
+++ b/release/packages/ucl/pkg-bootstrap-all.ucl
@@ -1,4 +1,11 @@
-comment = "pkg bootstrap Utility"
+comment = "pkg(7) bootstrap utility"
+
desc = <<EOD
-pkg bootstrap Utility
+/usr/sbin/pkg is a minimal bootstrap tool used to install the full pkg(8)
+package management system. This package also contains the PGP keys for
+the FreeBSD.org package repository.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/ppp-all.ucl b/release/packages/ucl/ppp-all.ucl
--- a/release/packages/ucl/ppp-all.ucl
+++ b/release/packages/ucl/ppp-all.ucl
@@ -1,5 +1,10 @@
comment = "Userland PPP implementation"
+
desc = <<EOD
ppp(8) is a userland implementations of the Point to Point Protocol for serial
lines and Ethernet (PPPoE).
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/rc-all.ucl b/release/packages/ucl/rc-all.ucl
--- a/release/packages/ucl/rc-all.ucl
+++ b/release/packages/ucl/rc-all.ucl
@@ -1,4 +1,11 @@
-comment = "RC Scripts"
+comment = "rc(8) subsystem"
+
desc = <<EOD
-RC Scripts
+The rc(8) subsystem provides a method to start services at system startup and
+stop them at shutdown. This package provides the rc(8) subsystem itself and
+the service scripts for the base system.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/rdma-all.ucl b/release/packages/ucl/rdma-all.ucl
--- a/release/packages/ucl/rdma-all.ucl
+++ b/release/packages/ucl/rdma-all.ucl
@@ -1 +1,4 @@
comment = "RDMA Utilities"
+desc = <<EOD
+RDMA Utilities
+EOD
diff --git a/release/packages/ucl/rescue-all.ucl b/release/packages/ucl/rescue-all.ucl
--- a/release/packages/ucl/rescue-all.ucl
+++ b/release/packages/ucl/rescue-all.ucl
@@ -1,4 +1,11 @@
-comment = "Rescue Utilities"
+comment = "Rescue system"
+
desc = <<EOD
-Rescue Utilities
+The rescue system, installed in /rescue, provides a basic set of tools that
+may be used to recover from a system failure which prevents the standard
+utilities from working.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/resolvconf-all.ucl b/release/packages/ucl/resolvconf-all.ucl
--- a/release/packages/ucl/resolvconf-all.ucl
+++ b/release/packages/ucl/resolvconf-all.ucl
@@ -1,4 +1,11 @@
-comment = "Resolvconf Utility and scripts"
+comment = "A framework for managing multiple DNS configurations"
+
desc = <<EOD
-Resolvconf Utility and scripts
+resolvconf(8) is used to manage /etc/resolv.conf for systems which move between
+different networks, such as laptops. It is typically invoked by dhclient(8) to
+provide new nameservers when connecting to a network.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/runtime-all.ucl b/release/packages/ucl/runtime-all.ucl
--- a/release/packages/ucl/runtime-all.ucl
+++ b/release/packages/ucl/runtime-all.ucl
@@ -1,4 +1,10 @@
-comment = "FreeBSD Base System"
+comment = "Core system"
+
desc = <<EOD
-FreeBSD Base System
+This is the core system, including utilities, libraries and configuration files
+required for basic multi-user operation.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/runtime.ucl b/release/packages/ucl/runtime.ucl
--- a/release/packages/ucl/runtime.ucl
+++ b/release/packages/ucl/runtime.ucl
@@ -1,4 +1,5 @@
vital: true
+
scripts: {
post-install = <<EOD
pwd_mkdb -i -p -d ${PKG_ROOTDIR}/etc ${PKG_ROOTDIR}/etc/master.passwd
diff --git a/release/packages/ucl/syslogd-all.ucl b/release/packages/ucl/syslogd-all.ucl
--- a/release/packages/ucl/syslogd-all.ucl
+++ b/release/packages/ucl/syslogd-all.ucl
@@ -1,4 +1,10 @@
-comment = "Syslog Daemon"
+comment = "System logging daemon"
+
desc = <<EOD
-Syslog Daemon
+The syslogd(8) daemon receives log messages from local and remote processes and
+writes them to an appropriate log file.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/toolchain-all.ucl b/release/packages/ucl/toolchain-all.ucl
--- a/release/packages/ucl/toolchain-all.ucl
+++ b/release/packages/ucl/toolchain-all.ucl
@@ -1,4 +1,9 @@
comment = "Utilities for program development"
+
desc = <<EOD
Utilities for program development.
EOD
+
+annotations {
+ set = devel
+}
diff --git a/release/packages/ucl/ufs-all.ucl b/release/packages/ucl/ufs-all.ucl
--- a/release/packages/ucl/ufs-all.ucl
+++ b/release/packages/ucl/ufs-all.ucl
@@ -1,4 +1,9 @@
comment = "UFS Libraries and Utilities"
+
desc = <<EOD
UFS Libraries and Utilities
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/utilities-all.ucl b/release/packages/ucl/utilities-all.ucl
--- a/release/packages/ucl/utilities-all.ucl
+++ b/release/packages/ucl/utilities-all.ucl
@@ -1,4 +1,9 @@
comment = "Non-vital programs and libraries"
+
desc = <<EOD
Non-vital programs and libraries
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/vi-all.ucl b/release/packages/ucl/vi-all.ucl
--- a/release/packages/ucl/vi-all.ucl
+++ b/release/packages/ucl/vi-all.ucl
@@ -1,4 +1,10 @@
-comment = "Vi Editor"
+comment = "Text editor"
+
desc = <<EOD
-Vi Editor
+This package provides ex(1), an extended version of the ed(1) line-oriented
+text editor, and vi(1), a user-friendly full-screen text editor based on ex.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/vt-data-all.ucl b/release/packages/ucl/vt-data-all.ucl
--- a/release/packages/ucl/vt-data-all.ucl
+++ b/release/packages/ucl/vt-data-all.ucl
@@ -1,4 +1,9 @@
comment = "vt(4) fonts and keymaps"
+
desc = <<EOD
Fonts and keymaps for use with the vt(4) video console driver.
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/wpa-all.ucl b/release/packages/ucl/wpa-all.ucl
--- a/release/packages/ucl/wpa-all.ucl
+++ b/release/packages/ucl/wpa-all.ucl
@@ -1,4 +1,9 @@
comment = "802.11 Supplicant"
+
desc = <<EOD
802.11 Supplicant
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/zfs-all.ucl b/release/packages/ucl/zfs-all.ucl
--- a/release/packages/ucl/zfs-all.ucl
+++ b/release/packages/ucl/zfs-all.ucl
@@ -1,4 +1,9 @@
comment = "ZFS Libraries and Utilities"
+
desc = <<EOD
ZFS Libraries and Utilities
EOD
+
+annotations {
+ set = minimal
+}
diff --git a/release/packages/ucl/zoneinfo-all.ucl b/release/packages/ucl/zoneinfo-all.ucl
--- a/release/packages/ucl/zoneinfo-all.ucl
+++ b/release/packages/ucl/zoneinfo-all.ucl
@@ -1,5 +1,10 @@
comment = "Timezone database"
+
desc = <<EOD
The timezone database allows applications to convert dates and times between
UTC and local timezones.
EOD
+
+annotations {
+ set = minimal
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Dec 23, 11:11 PM (8 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27199544
Default Alt Text
D52412.id161678.diff (30 KB)
Attached To
Mode
D52412: packages: Add meta-package sets
Attached
Detach File
Event Timeline
Log In to Comment