aboutsummaryrefslogtreecommitdiff
path: root/release
diff options
context:
space:
mode:
Diffstat (limited to 'release')
-rwxr-xr-xrelease/packages/create-sets.sh45
-rwxr-xr-xrelease/packages/generate-set-ucl.lua96
-rwxr-xr-xrelease/packages/generate-ucl.lua41
-rwxr-xr-xrelease/packages/generate-ucl.sh3
-rw-r--r--release/packages/set-template.ucl15
-rw-r--r--release/packages/sets/base-dbg.ucl16
-rw-r--r--release/packages/sets/base.ucl16
-rw-r--r--release/packages/sets/devel-dbg.ucl13
-rw-r--r--release/packages/sets/devel.ucl13
-rw-r--r--release/packages/sets/kernels-dbg.ucl6
-rw-r--r--release/packages/sets/kernels.ucl6
-rw-r--r--release/packages/sets/lib32-dbg.ucl6
-rw-r--r--release/packages/sets/lib32.ucl6
-rw-r--r--release/packages/sets/minimal-dbg.ucl6
-rw-r--r--release/packages/sets/minimal.ucl6
-rw-r--r--release/packages/template.ucl33
-rw-r--r--release/packages/ucl/README21
-rw-r--r--release/packages/ucl/at-all.ucl4
-rw-r--r--release/packages/ucl/bmake-all.ucl5
-rw-r--r--release/packages/ucl/bootloader-all.ucl4
-rw-r--r--release/packages/ucl/caroot-all.ucl4
-rw-r--r--release/packages/ucl/certctl-all.ucl4
-rw-r--r--release/packages/ucl/clang-all.ucl4
-rw-r--r--release/packages/ucl/clibs-all.ucl5
-rw-r--r--release/packages/ucl/cron-all.ucl4
-rw-r--r--release/packages/ucl/ctf-tools-all.ucl5
-rw-r--r--release/packages/ucl/devd-all.ucl5
-rw-r--r--release/packages/ucl/devmatch-all.ucl11
-rw-r--r--release/packages/ucl/dhclient-all.ucl5
-rw-r--r--release/packages/ucl/dma-all.ucl12
-rw-r--r--release/packages/ucl/dtb-all.ucl5
-rw-r--r--release/packages/ucl/fetch-all.ucl10
-rw-r--r--release/packages/ucl/firmware-iwm-all.ucl10
-rw-r--r--release/packages/ucl/fwget-all.ucl10
-rw-r--r--release/packages/ucl/geom-all.ucl11
-rw-r--r--release/packages/ucl/hyperv-tools-all.ucl10
-rw-r--r--release/packages/ucl/inetd-all.ucl9
-rw-r--r--release/packages/ucl/kerberos-lib-all.ucl4
-rw-r--r--release/packages/ucl/kernel-all.ucl5
-rw-r--r--release/packages/ucl/libmilter-all.ucl7
-rw-r--r--release/packages/ucl/libufs-all.ucl8
-rw-r--r--release/packages/ucl/libzfs-all.ucl5
-rw-r--r--release/packages/ucl/lld-all.ucl4
-rw-r--r--release/packages/ucl/lldb-all.ucl4
-rw-r--r--release/packages/ucl/locales-all.ucl5
-rw-r--r--release/packages/ucl/mtree-all.ucl5
-rw-r--r--release/packages/ucl/newsyslog-all.ucl10
-rw-r--r--release/packages/ucl/nuageinit-all.ucl5
-rw-r--r--release/packages/ucl/openssl-lib-all.ucl4
-rw-r--r--release/packages/ucl/periodic-all.ucl11
-rw-r--r--release/packages/ucl/pkg-bootstrap-all.ucl11
-rw-r--r--release/packages/ucl/ppp-all.ucl5
-rw-r--r--release/packages/ucl/rc-all.ucl11
-rw-r--r--release/packages/ucl/rdma-all.ucl3
-rw-r--r--release/packages/ucl/rescue-all.ucl11
-rw-r--r--release/packages/ucl/resolvconf-all.ucl11
-rw-r--r--release/packages/ucl/runtime-all.ucl10
-rw-r--r--release/packages/ucl/runtime.ucl1
-rw-r--r--release/packages/ucl/sendmail-all.ucl15
-rw-r--r--release/packages/ucl/syslogd-all.ucl10
-rw-r--r--release/packages/ucl/toolchain-all.ucl5
-rw-r--r--release/packages/ucl/ufs-all.ucl5
-rw-r--r--release/packages/ucl/utilities-all.ucl5
-rw-r--r--release/packages/ucl/vi-all.ucl10
-rw-r--r--release/packages/ucl/vt-data-all.ucl5
-rw-r--r--release/packages/ucl/wpa-all.ucl5
-rw-r--r--release/packages/ucl/zfs-all.ucl5
-rw-r--r--release/packages/ucl/zoneinfo-all.ucl7
-rwxr-xr-xrelease/release.sh2
-rw-r--r--release/tools/azure.conf5
-rw-r--r--release/tools/basic-ci.conf2
-rw-r--r--release/tools/basic-cloudinit.conf2
-rw-r--r--release/tools/ec2.conf6
-rw-r--r--release/tools/gce.conf2
-rw-r--r--release/tools/openstack.conf1
-rw-r--r--release/tools/oracle.conf3
-rw-r--r--release/tools/vagrant.conf3
-rw-r--r--release/tools/vmimage.subr28
78 files changed, 660 insertions, 91 deletions
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 a243c6ea7ad0..47f0a0e9a6a9 100755
--- a/release/packages/generate-ucl.lua
+++ b/release/packages/generate-ucl.lua
@@ -39,6 +39,10 @@ pkg_suffixes = {
"applications on a 64-bit host.",
},
{
+ "%-lib$", "(libraries)",
+ "This package contains runtime shared libraries.",
+ },
+ {
"%-dev$", "(development files)",
"This package contains development files for "..
"compiling applications."
@@ -98,6 +102,9 @@ function add_gen_dep(pkgname, pkggenname)
if no_gen_deps[pkgname] ~= nil then
return false
end
+ if pkgname:match("%-lib$") ~= nil then
+ return false
+ end
if pkggenname == "kernel" then
return false
end
@@ -158,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/generate-ucl.sh b/release/packages/generate-ucl.sh
index 3078185a3c4e..a08840d5b321 100755
--- a/release/packages/generate-ucl.sh
+++ b/release/packages/generate-ucl.sh
@@ -49,6 +49,9 @@ main() {
*-lib32)
outname="${outname%%-lib32}"
;;
+ *-lib)
+ outname="${outname%%-lib}"
+ ;;
*-man)
outname="${outname%%-man}"
;;
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/dma-all.ucl b/release/packages/ucl/dma-all.ucl
index e8824acf7a36..63d6c86b0be4 100644
--- a/release/packages/ucl/dma-all.ucl
+++ b/release/packages/ucl/dma-all.ucl
@@ -1,4 +1,12 @@
-comment = "DMA Mail Agent Utilities"
+comment = "DragonFly Mail Agent"
desc = <<EOD
-DMA Mail Agent Utilities
+The DragonFly Mail Agent (dma) is a lightweight mail transport agent intended
+for home and office use. dma can accept mail from local users and deliver it
+either locally or remotely (via SMTP). dma can be configured to route remote
+mail via an SMTP smart host, optionally using STARTTLS and/or authentication.
+
+dma does not implement an SMTP server and cannot receive mail from remote
+systems, nor act as a mail exchanger for other hosts. If an SMTP server
+is required, or when more advanced mail routing is needed, consider using
+the $PKG_NAME_PREFIX-sendmail package instead.
EOD
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/kerberos-lib-all.ucl b/release/packages/ucl/kerberos-lib-all.ucl
deleted file mode 100644
index b524563a976d..000000000000
--- a/release/packages/ucl/kerberos-lib-all.ucl
+++ /dev/null
@@ -1,4 +0,0 @@
-comment = "Kerberos libraries"
-desc = <<EOD
-Libraries requires to run programs that use Kerberos.
-EOD
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/libmilter-all.ucl b/release/packages/ucl/libmilter-all.ucl
new file mode 100644
index 000000000000..5c0e4925a9c2
--- /dev/null
+++ b/release/packages/ucl/libmilter-all.ucl
@@ -0,0 +1,7 @@
+comment = "sendmail Mail Filter API library"
+desc = <<EOD
+The sendmail Mail Filter API (Milter) is designed to allow third-party
+programs access to mail messages as they are being processed in order
+to filter meta-information and content. libmilter provides support for
+applications implementing the milter interface.
+EOD
diff --git a/release/packages/ucl/libufs-all.ucl b/release/packages/ucl/libufs-all.ucl
deleted file mode 100644
index d86a84bbd637..000000000000
--- a/release/packages/ucl/libufs-all.ucl
+++ /dev/null
@@ -1,8 +0,0 @@
-comment = "Low-level access to UFS filesystems"
-desc = <<EOD
-The libufs library and the functions it provides are used for implementing
-utilities which need to access a UFS file system at a low level from userland.
-Facilities provided are used to implement utilities such as newfs(8) and
-dumpfs(8). The libufs library is designed to be simple, and to provide
-functions that are traditionally useful to have.
-EOD
diff --git a/release/packages/ucl/libzfs-all.ucl b/release/packages/ucl/libzfs-all.ucl
deleted file mode 100644
index bd53521f3aa0..000000000000
--- a/release/packages/ucl/libzfs-all.ucl
+++ /dev/null
@@ -1,5 +0,0 @@
-comment = "ZFS filesystem library"
-desc = <<EOD
-libzfs allows applications to manage ZFS pools and filesystems. Several
-libraries which libzfs requires are also provided.
-EOD
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
+}
diff --git a/release/packages/ucl/newsyslog-all.ucl b/release/packages/ucl/newsyslog-all.ucl
index e52b34dbdcba..824a5d62f587 100644
--- 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
index 4d510b799fa7..c3862c52b8ff 100644
--- 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/openssl-lib-all.ucl b/release/packages/ucl/openssl-lib-all.ucl
deleted file mode 100644
index c81dd44855cd..000000000000
--- a/release/packages/ucl/openssl-lib-all.ucl
+++ /dev/null
@@ -1,4 +0,0 @@
-comment = "OpenSSL Libraries"
-desc = <<EOD
-OpenSSL Libraries
-EOD
diff --git a/release/packages/ucl/periodic-all.ucl b/release/packages/ucl/periodic-all.ucl
index 569bf8d829c4..b1b3e47ec10a 100644
--- 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
index 9ca6ccd2af58..47b28ba1d374 100644
--- 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
index 454e54b7b872..f3206da7cd45 100644
--- 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
index 04ed0dafacf0..1d5a1b9b728d 100644
--- 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
index 313c2b7d17e0..eb9e39210143 100644
--- 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
index da870079bbb7..417ced079a6a 100644
--- 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
index a2d2e0debfa1..47d7d8232972 100644
--- 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
index f614a3ef3d43..7635248dd76e 100644
--- 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
index b04bc32f33cc..5f90a1181334 100644
--- 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/sendmail-all.ucl b/release/packages/ucl/sendmail-all.ucl
index 2711e33a31a8..38f697da24fc 100644
--- a/release/packages/ucl/sendmail-all.ucl
+++ b/release/packages/ucl/sendmail-all.ucl
@@ -1,4 +1,15 @@
-comment = "Sendmail Utilities"
+comment = "sendmail mail transport agent"
desc = <<EOD
-Sendmail Utilities
+The sendmail mail transport agent allows the system to send and receive mail
+for both local and remote users. sendmail can also act as a mail exchanger
+for other hosts, and has a flexible configuration format that can be used to
+rewrite, filter or otherwise process mail before delivering it.
+
+sendmail supports multiple mail transport protocols, including Internet SMTP,
+LMTP, UUCP and DECnet. Support for protocols other than SMTP and LMTP needs
+third-party software not shipped with the base system.
+
+When the full functionality of sendmail is not required, consider using the
+$PKG_NAME_PREFIX-dma package instead, a lightweight MTA which can send (but
+not receive) mail over SMTP.
EOD
diff --git a/release/packages/ucl/syslogd-all.ucl b/release/packages/ucl/syslogd-all.ucl
index 0f82c31fdf0f..0f174ef7401d 100644
--- 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
index dd6517745722..5e89691c6380 100644
--- 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
index 48f9975e0dbd..87aaf428bae7 100644
--- 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
index aeb82b0cfed5..6e83b6584c02 100644
--- 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
index c2ad2f8e95eb..4504281e0549 100644
--- 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
index 4142b2eeae70..d5e1a36e5b1c 100644
--- 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
index e5ad7f36db95..dd2ca13fd4c1 100644
--- 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
index f4178acc481c..51d5a1d8c602 100644
--- 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
index 39991bf144e6..3fc90fc3f88a 100644
--- a/release/packages/ucl/zoneinfo-all.ucl
+++ b/release/packages/ucl/zoneinfo-all.ucl
@@ -1,5 +1,12 @@
comment = "Timezone database"
+
desc = <<EOD
The timezone database allows applications to convert dates and times between
UTC and local timezones.
EOD
+
+licenses = [ "PD" ]
+
+annotations {
+ set = minimal
+}
diff --git a/release/release.sh b/release/release.sh
index 8f0624e57344..eed02f0f36d3 100755
--- a/release/release.sh
+++ b/release/release.sh
@@ -199,7 +199,7 @@ env_check() {
KERNCONF=\"${KERNEL}\" ${CONF_FILES} ${SRCPORTS} \
WITH_DVD=${WITH_DVD} WITH_VMIMAGES=${WITH_VMIMAGES} \
WITH_CLOUDWARE=${WITH_CLOUDWARE} WITH_OCIIMAGES=${WITH_OCIIMAGES} \
- XZ_THREADS=${XZ_THREADS}"
+ XZ_THREADS=${XZ_THREADS} PKGBASE=${PKGBASE}"
return 0
} # env_check()
diff --git a/release/tools/azure.conf b/release/tools/azure.conf
index 519ab13fe432..e13b63067fee 100644
--- a/release/tools/azure.conf
+++ b/release/tools/azure.conf
@@ -27,7 +27,8 @@ vm_extra_pre_umount() {
# them from the image allows it to boot faster.
chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
/usr/sbin/pkg delete -f -y pkg
- rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
chroot ${DESTDIR} ${EMULATOR} pw usermod root -h -
@@ -51,7 +52,5 @@ mlx4en_load="YES"
mlx5en_load="YES"
EOF
- touch ${DESTDIR}/firstboot
-
return 0
}
diff --git a/release/tools/basic-ci.conf b/release/tools/basic-ci.conf
index 4bcb87aec791..e235c03d39fe 100644
--- a/release/tools/basic-ci.conf
+++ b/release/tools/basic-ci.conf
@@ -30,7 +30,5 @@ PermitEmptyPasswords yes
UsePAM no
EOF
- touch_firstboot
-
return 0
}
diff --git a/release/tools/basic-cloudinit.conf b/release/tools/basic-cloudinit.conf
index 7088c0a5f72a..f8554c42f49c 100644
--- a/release/tools/basic-cloudinit.conf
+++ b/release/tools/basic-cloudinit.conf
@@ -34,7 +34,5 @@ PasswordAuthentication yes
UsePAM no
EOF
- touch ${DESTDIR}/firstboot
-
return 0
}
diff --git a/release/tools/ec2.conf b/release/tools/ec2.conf
index ef7a603efea9..704a8f3f0073 100644
--- a/release/tools/ec2.conf
+++ b/release/tools/ec2.conf
@@ -27,7 +27,8 @@ ec2_common() {
chroot ${DESTDIR} ${EMULATOR} env ASSUME_ALWAYS_YES=yes \
/usr/sbin/pkg delete -f -y pkg
umount ${DESTDIR}/dev
- rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
# Turn off IPv6 Duplicate Address Detection; the EC2 networking
# configuration makes it unnecessary.
@@ -127,9 +128,6 @@ echo "-nfsv4,minorversion=1,oneopenown ${FS}.efs.${REGION}.amazonaws.com:/"
EOF
chmod 755 ${DESTDIR}/etc/autofs/special_efs
- # The first time the AMI boots, run "first boot" scripts.
- touch ${DESTDIR}/firstboot
-
return 0
}
diff --git a/release/tools/gce.conf b/release/tools/gce.conf
index 382a839786f3..dc56be30c7ca 100644
--- a/release/tools/gce.conf
+++ b/release/tools/gce.conf
@@ -119,8 +119,6 @@ EOF
## of the image prior to packaging for upload to GCE.
#sed -E -i '' 's/^([^#].*[[:space:]])on/\1off/' ${DESTDIR}/etc/ttys
- touch ${DESTDIR}/firstboot
-
return 0
}
diff --git a/release/tools/openstack.conf b/release/tools/openstack.conf
index 05d2d13bbb39..b73734a4fd04 100644
--- a/release/tools/openstack.conf
+++ b/release/tools/openstack.conf
@@ -47,6 +47,5 @@ vm_extra_pre_umount() {
echo 'debug.debugger_on_panic=0' >> ${DESTDIR}/etc/sysctl.conf
echo 'kern.panic_reboot_wait_time=0' >> ${DESTDIR}/etc/sysctl.conf
- touch ${DESTDIR}/firstboot
return 0
}
diff --git a/release/tools/oracle.conf b/release/tools/oracle.conf
index 8a4206c05623..688820be9cbe 100644
--- a/release/tools/oracle.conf
+++ b/release/tools/oracle.conf
@@ -17,7 +17,6 @@ export VM_EXTRA_PACKAGES="
net/py-netifaces
net/py-oauth
net/rsync
- panicmail
security/ca_root_nss
security/sudo@default
sysutils/firstboot-freebsd-update
@@ -88,7 +87,5 @@ EOF
sed -i '' -E -e 's/^pool.*iburst/server 169.254.169.254 iburst/' \
${DESTDIR}/etc/ntp.conf
- touch ${DESTDIR}/firstboot
-
return 0
}
diff --git a/release/tools/vagrant.conf b/release/tools/vagrant.conf
index c212af7d012e..506174d0ea16 100644
--- a/release/tools/vagrant.conf
+++ b/release/tools/vagrant.conf
@@ -20,7 +20,8 @@ vagrant_common () {
# them from the image allows it to boot faster.
env ASSUME_ALWAYS_YES=yes pkg -c ${DESTDIR} clean -y -a
env ASSUME_ALWAYS_YES=yes pkg -c ${DESTDIR} delete -f -y pkg
- rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports
+ rm -r ${DESTDIR}/var/db/pkg/repos/FreeBSD-ports-kmods
# Vagrant instances use DHCP to get their network configuration.
echo 'ifconfig_DEFAULT="SYNCDHCP"' >> ${DESTDIR}/etc/rc.conf
diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr
index 156987e33457..41f889a1e665 100644
--- a/release/tools/vmimage.subr
+++ b/release/tools/vmimage.subr
@@ -39,8 +39,21 @@ cleanup() {
}
metalog_add_data() {
+ local file mode type
+
if [ -n "${NO_ROOT}" ]; then
- echo "$1 type=file uname=root gname=wheel mode=0644" >> \
+ file=$1
+ if [ -f ${DESTDIR}/${file} ]; then
+ type=file
+ mode=${2:-0644}
+ elif [ -d ${DESTDIR}/${file} ]; then
+ type=dir
+ mode=${2:-0755}
+ else
+ echo "metalog_add_data: ${file} not found" >&2
+ return 1
+ fi
+ echo "${file} type=${type} uname=root gname=wheel mode=${mode}" >> \
${DESTDIR}/METALOG
fi
}
@@ -82,7 +95,7 @@ vm_install_base() {
echo '# Custom /etc/fstab for FreeBSD VM images' \
> ${DESTDIR}/etc/fstab
if [ "${VMFS}" != zfs ]; then
- echo "/dev/${ROOTLABEL}/rootfs / ${VMFS} rw 1 1" \
+ echo "/dev/${ROOTLABEL}/rootfs / ${VMFS} rw,noatime 1 1" \
>> ${DESTDIR}/etc/fstab
fi
if [ -z "${NOSWAP}" ]; then
@@ -144,7 +157,6 @@ vm_extra_enable_services() {
${DESTDIR}/etc/rc.conf
# Expand the filesystem to fill the disk.
echo 'growfs_enable="YES"' >> ${DESTDIR}/etc/rc.conf
- touch ${DESTDIR}/firstboot
fi
return 0
@@ -338,6 +350,11 @@ vm_create_disk() {
>> ${DESTDIR}/etc/fstab
fi
+ # Add a marker file which indicates that this image has never
+ # been booted. Some services run only upon the first boot.
+ touch ${DESTDIR}/firstboot
+ metalog_add_data ./firstboot
+
echo "Building filesystem... Please wait."
buildfs
@@ -362,8 +379,3 @@ vm_extra_create_disk() {
return 0
}
-
-touch_firstboot() {
- touch ${DESTDIR}/firstboot
- metalog_add_data ./firstboot
-}