diff options
Diffstat (limited to 'release')
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 -} |