Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F153410727
D56087.largetrue.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
133 KB
Referenced Files
None
Subscribers
None
D56087.largetrue.diff
View Options
diff --git a/Makefile.inc1 b/Makefile.inc1
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -2258,48 +2258,15 @@
@cd ${WSTAGEDIR} ; \
${METALOG_SORT_CMD} ${WSTAGEDIR}/${DISTDIR}/METALOG | \
awk -f ${SRCDIR}/release/scripts/mtree-to-plist.awk
- @for plist in ${WSTAGEDIR}/*.plist; do \
- plist=$${plist##*/} ; \
- pkgname=$${plist%.plist} ; \
- echo "_PKGS+= $${pkgname}" ; \
- done > ${WSTAGEDIR}/packages.mk
- ${_+_}@cd ${.CURDIR}; \
- PATH="${TMPPATH}" ${MAKE} -f Makefile.inc1 \
- create-world-packages-jobs \
- SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \
- .MAKE.JOB.PREFIX=
-
-.if make(create-world-packages-jobs)
-.include "${WSTAGEDIR}/packages.mk"
-.endif
-
-create-world-packages-jobs: .PHONY
-.for pkgname in ${_PKGS}
-create-world-packages-jobs: create-world-package-${pkgname}
-create-world-package-${pkgname}: .PHONY
- @sh ${SRCDIR}/release/packages/generate-ucl.sh -o ${pkgname} \
- -s ${SRCDIR} -u ${WSTAGEDIR}/${pkgname}.ucl
- @if [ "$$(grep -vc '^@dir' ${WSTAGEDIR}/${pkgname}.plist)" -gt 0 ]; then \
- awk -F\" ' \
- /^name/ { printf("===> Creating %s-", $$2); next } \
- /^version/ { print $$2; next } \
- ' ${WSTAGEDIR}/${pkgname}.ucl && \
- ${PKG_CMD} -o ABI=${PKG_ABI} -o ALLOW_BASE_SHLIBS=yes \
- -o SHLIB_PROVIDE_PATHS_NATIVE=/lib,/usr/lib \
- ${_ALL_LIBCOMPATS:range:@i@-o SHLIB_PROVIDE_PATHS_COMPAT_${_ALL_LIBCOMPATS:[$i]}=/usr/lib${_ALL_libcompats:[$i]}@} \
- -o OSVERSION="${SRCRELDATE}" \
- create -f ${PKG_FORMAT} ${PKG_CLEVEL} -T${PKG_CTHREADS} \
- -M ${WSTAGEDIR}/${pkgname}.ucl \
- -p ${WSTAGEDIR}/${pkgname}.plist \
- -r ${WSTAGEDIR} \
- -o ${REPODIR}/${PKG_ABI}/${PKG_OUTPUT_DIR}; \
- else \
- awk -F\" ' \
- /^name/ { printf("===> Skipping %s-", $$2); next } \
- /^version/ { print $$2; next } \
- ' ${WSTAGEDIR}/${pkgname}.ucl; \
- fi
-.endfor
+ # bsd.pkg.mk doesn't always know about the dependencies of things
+ # it builds, so for now, always run clean here.
+ ${CROSSENV} ${MAKE} -C ${.CURDIR}/packages \
+ FLUA=${WORLDTMP}/legacy/usr/libexec/flua \
+ REPODIR=${REPODIR} \
+ WSTAGEDIR=${WSTAGEDIR} \
+ PKG_VERSION=${PKG_VERSION} \
+ MK_AUTO_OBJ=yes \
+ clean all stagepackages
create-sets-packages-jobs: .PHONY create-sets-packages
create-sets-packages: .PHONY
diff --git a/packages/Makefile b/packages/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/Makefile
@@ -0,0 +1,164 @@
+# SPDX-License-Identifier: ISC
+#
+# Copyright (c) 2026 Lexi Winter <ivy@FreeBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+.include <src.opts.mk>
+
+SUBDIR= blocklist \
+ bsdconfig \
+ bzip2 \
+ clibs \
+ cron \
+ ctl \
+ devd \
+ devmatch \
+ dhclient \
+ fetch \
+ flua \
+ firmware-iwm \
+ fwget \
+ geom \
+ ggate \
+ lib9p \
+ libarchive \
+ libbegemot \
+ libblocksruntime \
+ libbsdstat \
+ libcasper \
+ libcompat \
+ libcompiler_rt \
+ libdwarf \
+ libevent1 \
+ libexecinfo \
+ libpathconv \
+ librss \
+ libsqlite3 \
+ libthread_db \
+ libucl \
+ libyaml \
+ locales \
+ mandoc \
+ mtree \
+ natd \
+ ncurses \
+ netmap \
+ newsyslog \
+ nfs \
+ nvme-tools \
+ pam \
+ periodic \
+ powerd \
+ ppp \
+ quotacheck \
+ rc \
+ rcmds \
+ resolvconf \
+ rip \
+ runtime \
+ smbutils \
+ syslogd \
+ tcpd \
+ toolchain \
+ ufs \
+ utilities \
+ xz \
+ zlib \
+ zstd
+
+.if ${MK_ACCT} != "no" || ${MK_UTMPX} != "no"
+SUBDIR+= acct
+.endif
+
+.if ${MK_CLANG} != "no" || ${MK_TOOLCHAIN} != "no"
+SUBDIR+= clang
+.endif
+
+.if ${MK_AUTHPF} != "no" || ${MK_PF} != "no"
+SUBDIR+= pf
+.endif
+
+# XXX - certctl probably shouldn't depend on caroot. This logic comes from
+# the src build, so we have to match it.
+.if ${MK_CAROOT} != "no"
+SUBDIR.${MK_OPENSSL}+= certctl
+SUBDIR+= caroot
+.endif
+
+SUBDIR.${MK_AT}+= at
+SUBDIR.${MK_AUDIT}+= audit
+SUBDIR.${MK_AUTOFS}+= autofs
+SUBDIR.${MK_BLUETOOTH}+= bluetooth
+SUBDIR.${MK_BOOT}+= bootloader
+SUBDIR.${MK_BSDINSTALL}+= bsdinstall
+SUBDIR.${MK_BSNMP}+= bsnmp
+SUBDIR.${MK_CCD}+= ccdconfig
+SUBDIR.${MK_CUSE}+= libcuse
+SUBDIR.${MK_CXGBETOOL}+= cxgbe-tools
+SUBDIR.${MK_DMAGENT}+= dma
+SUBDIR.${MK_DTRACE}+= ctf dtrace dwatch
+SUBDIR.${MK_EE}+= ee
+SUBDIR.${MK_EFI}+= efi-tools
+SUBDIR.${MK_EXAMPLES}+= examples
+SUBDIR.${MK_FILE}+= libmagic
+SUBDIR.${MK_FLOPPY}+= fd
+SUBDIR.${MK_FTP}+= ftp
+SUBDIR.${MK_GAMES}+= games
+SUBDIR.${MK_GOOGLETEST}+= googletest
+SUBDIR.${MK_HAST}+= hast
+SUBDIR.${MK_HYPERV}+= hyperv-tools
+SUBDIR.${MK_INETD}+= inetd
+SUBDIR.${MK_IPFILTER}+= ipf
+SUBDIR.${MK_IPFW}+= ipfw
+SUBDIR.${MK_ISCSI}+= iscsi
+SUBDIR.${MK_JAIL}+= jail
+SUBDIR.${MK_KERBEROS}+= kerberos kerberos-kdc librpcsec_gss gssd
+SUBDIR.${MK_LDNS}+= libldns
+SUBDIR.${MK_LEGACY_CONSOLE}+= console-tools
+SUBDIR.${MK_LLD}+= lld
+SUBDIR.${MK_LLDB}+= lldb
+SUBDIR.${MK_LPR}+= lp
+SUBDIR.${MK_MAKE}+= bmake
+SUBDIR.${MK_MAN}+= kernel-man
+SUBDIR.${MK_MLX5TOOL}+= mlx-tools
+SUBDIR.${MK_NIS}+= yp
+SUBDIR.${MK_NTP}+= ntp
+SUBDIR.${MK_NUAGEINIT}+= nuageinit
+SUBDIR.${MK_OFED}+= rdma
+SUBDIR.${MK_OPENSSH}+= ssh
+SUBDIR.${MK_OPENSSL}+= openssl
+SUBDIR.${MK_PKGBOOTSTRAP}+= pkg-bootstrap
+SUBDIR.${MK_PMC}+= pmc
+SUBDIR.${MK_RESCUE}+= rescue
+SUBDIR.${MK_SENDMAIL}+= sendmail libmilter
+SUBDIR.${MK_SOUND}+= sound
+SUBDIR.${MK_SYSCONS}+= syscons-data
+SUBDIR.${MK_TCSH}+= csh
+SUBDIR.${MK_TELNET}+= telnet
+SUBDIR.${MK_TESTS}+= tests
+SUBDIR.${MK_TESTS_SUPPORT}+= atf kyua
+SUBDIR.${MK_UNBOUND}+= local-unbound
+SUBDIR.${MK_VI}+= vi
+SUBDIR.${MK_VT}+= vt-data
+SUBDIR.${MK_WIRELESS}+= hostapd wpa
+SUBDIR.${MK_ZFS}+= zfs
+SUBDIR.${MK_ZONEINFO}+= zoneinfo
+
+.include <bsd.arch.inc.mk>
+
+SUBDIR_PARALLEL=
+
+.ORDER: all stagepackages
+
+.include <bsd.subdir.mk>
diff --git a/packages/Makefile.amd64 b/packages/Makefile.amd64
new file mode 100644
--- /dev/null
+++ b/packages/Makefile.amd64
@@ -0,0 +1,23 @@
+# SPDX-License-Identifier: ISC
+#
+# Copyright (c) 2026 Lexi Winter <ivy@FreeBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+SUBDIR+= libvgl
+
+SUBDIR.${MK_ACPI}+= acpi
+SUBDIR.${MK_APM}+= apm
+SUBDIR.${MK_BHYVE}+= bhyve
+SUBDIR.${MK_BHYVE}+= libvmmapi
+SUBDIR.${MK_PMC}+= libipt
diff --git a/packages/Makefile.arm b/packages/Makefile.arm
new file mode 100644
--- /dev/null
+++ b/packages/Makefile.arm
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: ISC
+#
+# Copyright (c) 2026 Lexi Winter <ivy@FreeBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+SUBDIR.${MK_ACPI}+= acpi
+SUBDIR.${MK_APM}+= apm
diff --git a/packages/Makefile.arm64 b/packages/Makefile.arm64
new file mode 100644
--- /dev/null
+++ b/packages/Makefile.arm64
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: ISC
+#
+# Copyright (c) 2026 Lexi Winter <ivy@FreeBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+SUBDIR.${MK_ACPI}+= acpi
+SUBDIR.${MK_APM}+= apm
+SUBDIR.${MK_BHYVE}+= bhyve
+SUBDIR.${MK_BHYVE}+= libvmmapi
diff --git a/packages/Makefile.powerpc b/packages/Makefile.powerpc
new file mode 100644
--- /dev/null
+++ b/packages/Makefile.powerpc
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: ISC
+#
+# Copyright (c) 2026 Lexi Winter <ivy@FreeBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+SUBDIR.${MK_ACPI}+= acpi
+SUBDIR.${MK_APM}+= apm
diff --git a/packages/Makefile.riscv64 b/packages/Makefile.riscv64
new file mode 100644
--- /dev/null
+++ b/packages/Makefile.riscv64
@@ -0,0 +1,20 @@
+# SPDX-License-Identifier: ISC
+#
+# Copyright (c) 2026 Lexi Winter <ivy@FreeBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+SUBDIR.${MK_ACPI}+= acpi
+SUBDIR.${MK_APM}+= apm
+SUBDIR.${MK_BHYVE}+= bhyve
+SUBDIR.${MK_BHYVE}+= libvmmapi
diff --git a/packages/acct/Makefile b/packages/acct/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/acct/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= acct
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/acct-all.ucl b/packages/acct/acct.ucl
rename from release/packages/ucl/acct-all.ucl
rename to packages/acct/acct.ucl
--- a/release/packages/ucl/acct-all.ucl
+++ b/packages/acct/acct.ucl
@@ -29,7 +29,3 @@
is not intended as a security auditing mechanism; use the OpenBSM auditing
system provided in the $PKG_NAME_PREFIX-audit package for that.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/acpi/Makefile b/packages/acpi/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/acpi/Makefile
@@ -0,0 +1,12 @@
+WORLDPACKAGE= acpi
+
+# On these platforms, acpi only contains config files.
+.if ${MACHINE_ARCH} == "armv7" || ${MACHINE} == "powerpc" || \
+ ${MACHINE_ARCH} == "riscv64"
+SUBPACKAGES=
+.endif
+
+# ACPI isn't applicable in a jail.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/acpi-all.ucl b/packages/acpi/acpi.ucl
rename from release/packages/ucl/acpi-all.ucl
rename to packages/acpi/acpi.ucl
--- a/release/packages/ucl/acpi-all.ucl
+++ b/packages/acpi/acpi.ucl
@@ -34,7 +34,3 @@
* acpidump(8) dumps the system's raw ACPI data.
* iasl(8) is the Intel ACPI compiler/decompiler
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/apm/Makefile b/packages/apm/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/apm/Makefile
@@ -0,0 +1,12 @@
+WORLDPACKAGE= apm
+
+# On non-amd64 platforms, this package only contain an rc script.
+# (This should be fixed.)
+.if ${MACHINE_CPUARCH} != "amd64"
+SUBPACKAGES=
+.endif
+
+# APM isn't applicable to jails.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/apm-all.ucl b/packages/apm/apm.ucl
rename from release/packages/ucl/apm-all.ucl
rename to packages/apm/apm.ucl
--- a/release/packages/ucl/apm-all.ucl
+++ b/packages/apm/apm.ucl
@@ -27,7 +27,3 @@
state and change the system power mode, and the /etc/rc.d/apm service which
can enable and disable APM at system startup and shutdown.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/at/Makefile b/packages/at/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/at/Makefile
@@ -0,0 +1,10 @@
+WORLDPACKAGE= at
+
+PKG_SETS= minimal minimal-jail
+
+# atrun relies on cron to work.
+PKG_DEPS.at+= cron
+# at(1) passes the command to /bin/sh
+PKG_DEPS.at+= runtime
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/at-all.ucl b/packages/at/at.ucl
rename from release/packages/ucl/at-all.ucl
rename to packages/at/at.ucl
--- a/release/packages/ucl/at-all.ucl
+++ b/packages/at/at.ucl
@@ -27,7 +27,3 @@
Note that batch(1) is not intended to be a full batch scheduling system,
and can only run commands on the local system.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/atf/Makefile b/packages/atf/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/atf/Makefile
@@ -0,0 +1,4 @@
+WORLDPACKAGE= atf
+SUBPACKAGES= dbg dev lib man
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/atf-all.ucl b/packages/atf/atf.ucl
rename from release/packages/ucl/atf-all.ucl
rename to packages/atf/atf.ucl
--- a/release/packages/ucl/atf-all.ucl
+++ b/packages/atf/atf.ucl
@@ -33,7 +33,3 @@
functionality and any test program written with them exposes a consistent user
interface.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/audit/Makefile b/packages/audit/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/audit/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= audit
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/audit-all.ucl b/packages/audit/audit.ucl
rename from release/packages/ucl/audit-all.ucl
rename to packages/audit/audit.ucl
--- a/release/packages/ucl/audit-all.ucl
+++ b/packages/audit/audit.ucl
@@ -42,7 +42,3 @@
This package provides the auditing daemon auditd(8) and various utilities
used to manage the auditing system and work with audit data.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/autofs/Makefile b/packages/autofs/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/autofs/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= autofs
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/autofs-all.ucl b/packages/autofs/autofs.ucl
rename from release/packages/ucl/autofs-all.ucl
rename to packages/autofs/autofs.ucl
--- a/release/packages/ucl/autofs-all.ucl
+++ b/packages/autofs/autofs.ucl
@@ -27,7 +27,3 @@
This package provides the automountd(8) daemon which is responsible for
managing this, as well as the management utility automount(8).
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/bhyve/Makefile b/packages/bhyve/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/bhyve/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= bhyve
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/bhyve-all.ucl b/packages/bhyve/bhyve.ucl
rename from release/packages/ucl/bhyve-all.ucl
rename to packages/bhyve/bhyve.ucl
--- a/release/packages/ucl/bhyve-all.ucl
+++ b/packages/bhyve/bhyve.ucl
@@ -40,7 +40,3 @@
An example script is also provided in /usr/share/examples/bhyve/vmrun.sh
which can be used to run simple virtual machines.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/blocklist/Makefile b/packages/blocklist/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/blocklist/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= blocklist
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/blocklist-all.ucl b/packages/blocklist/blocklist.ucl
rename from release/packages/ucl/blocklist-all.ucl
rename to packages/blocklist/blocklist.ucl
--- a/release/packages/ucl/blocklist-all.ucl
+++ b/packages/blocklist/blocklist.ucl
@@ -28,7 +28,3 @@
The blocklistd(8) daemon was previously named blacklistd(8).
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/bluetooth/Makefile b/packages/bluetooth/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/bluetooth/Makefile
@@ -0,0 +1,11 @@
+WORLDPACKAGE= bluetooth
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+# Bluetooth isn't applicable to jails.
+PKG_SETS= optional
+
+# rfcomm_pppd(8) uses ppp(8)
+PKG_DEPS.bluetooth+= ppp
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/bluetooth-all.ucl b/packages/bluetooth/bluetooth.ucl
rename from release/packages/ucl/bluetooth-all.ucl
rename to packages/bluetooth/bluetooth.ucl
--- a/release/packages/ucl/bluetooth-all.ucl
+++ b/packages/bluetooth/bluetooth.ucl
@@ -24,7 +24,3 @@
the Bluetooth stack when Bluetooth devices are attached or removed, and
the rfcomm_pppd(8) daemon which manages PPP connections over Bluetooth.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/bmake/Makefile b/packages/bmake/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/bmake/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= bmake
+
+PKG_SETS= devel
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/bmake-all.ucl b/packages/bmake/bmake.ucl
rename from release/packages/ucl/bmake-all.ucl
rename to packages/bmake/bmake.ucl
--- a/release/packages/ucl/bmake-all.ucl
+++ b/packages/bmake/bmake.ucl
@@ -22,7 +22,3 @@
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/packages/bootloader/Makefile b/packages/bootloader/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/bootloader/Makefile
@@ -0,0 +1,24 @@
+.include <src.opts.mk>
+
+WORLDPACKAGE= bootloader
+SUBPACKAGES=
+
+# bootloader-dbg is only built if we're building userboot, which is specific
+# to amd64.
+.if ${MACHINE_CPUARCH} == "amd64"
+SUBPACKAGES+= dbg
+.endif
+
+# The bootloader "dev" package only contains manpages.
+.if ${MK_MAN} != "no"
+. if ${MK_MANSPLITPKG} != "no"
+SUBPACKAGES+= man
+. else
+SUBPACKAGES+= dev
+. endif
+.endif
+
+# The bootloader isn't normally used in a jail.
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/bootloader-all.ucl b/packages/bootloader/bootloader.ucl
rename from release/packages/ucl/bootloader-all.ucl
rename to packages/bootloader/bootloader.ucl
--- a/release/packages/ucl/bootloader-all.ucl
+++ b/packages/bootloader/bootloader.ucl
@@ -23,7 +23,3 @@
environment during startup. This package contains the loader itself and
various configuration files and scripts used by the loader.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/bsdconfig/Makefile b/packages/bsdconfig/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/bsdconfig/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= bsdconfig
+SUBPACKAGES= man
+
+# bsdconfig is written in shell script, so it needs /bin/sh
+PKG_DEPS.bsdconfig+= runtime
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/bsdconfig-all.ucl b/packages/bsdconfig/bsdconfig.ucl
rename from release/packages/ucl/bsdconfig-all.ucl
rename to packages/bsdconfig/bsdconfig.ucl
--- a/release/packages/ucl/bsdconfig-all.ucl
+++ b/packages/bsdconfig/bsdconfig.ucl
@@ -25,7 +25,3 @@
This package also provides sysrc(8), a command-line utility for managing
the rc.conf(5) configuration.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/bsdinstall/Makefile b/packages/bsdinstall/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/bsdinstall/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= bsdinstall
+
+# bsdinstall is written in shell script, so it needs /bin/sh
+PKG_DEPS.bsdinstall+= runtime
+# The pkgbase script requires flua
+PKG_DEPS.bsdinstall+= flua
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/bsdinstall-all.ucl b/packages/bsdinstall/bsdinstall.ucl
rename from release/packages/ucl/bsdinstall-all.ucl
rename to packages/bsdinstall/bsdinstall.ucl
--- a/release/packages/ucl/bsdinstall-all.ucl
+++ b/packages/bsdinstall/bsdinstall.ucl
@@ -35,7 +35,3 @@
installation media, e.g., CD-ROMs, and for use on live systems to prepare VM
images and jails.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/bsnmp/Makefile b/packages/bsnmp/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/bsnmp/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= bsnmp
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/bsnmp-all.ucl b/packages/bsnmp/bsnmp.ucl
rename from release/packages/ucl/bsnmp-all.ucl
rename to packages/bsnmp/bsnmp.ucl
--- a/release/packages/ucl/bsnmp-all.ucl
+++ b/packages/bsnmp/bsnmp.ucl
@@ -40,7 +40,3 @@
implement all other MIBs through loadable modules. In this way the
bsnmpd can be used in unexpected ways.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/bzip2/Makefile b/packages/bzip2/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/bzip2/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= bzip2
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/bzip2-all.ucl b/packages/bzip2/bzip2.ucl
rename from release/packages/ucl/bzip2-all.ucl
rename to packages/bzip2/bzip2.ucl
--- a/release/packages/ucl/bzip2-all.ucl
+++ b/packages/bzip2/bzip2.ucl
@@ -6,7 +6,3 @@
than that achieved by more conventional LZ77/LZ78-based compressors, and
approaches the performance of the PPM family of statistical compressors.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/caroot/Makefile b/packages/caroot/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/caroot/Makefile
@@ -0,0 +1,11 @@
+WORLDPACKAGE= caroot
+SUBPACKAGES=
+
+PKG_SETS= minimal minimal-jail
+
+UCLSRC= common.ucl
+UCLSRC.caroot= caroot.ucl
+
+PKG_DEPS.caroot+= certctl
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/caroot.ucl b/packages/caroot/caroot.ucl
rename from release/packages/ucl/caroot.ucl
rename to packages/caroot/caroot.ucl
--- a/release/packages/ucl/caroot.ucl
+++ b/packages/caroot/caroot.ucl
@@ -1,8 +1,5 @@
-deps {
- "certctl": {
- version = "${VERSION}"
- }
-}
+.include(try=false) "${SRCDIR}/common.ucl"
+
scripts: {
post-install = "/usr/sbin/certctl -D${PKG_ROOTDIR}/ ${PKG_METALOG:+-U -M $PKG_METALOG} rehash"
post-deinstall = "/usr/sbin/certctl -D${PKG_ROOTDIR}/ ${PKG_METALOG:+-U -M $PKG_METALOG} rehash"
diff --git a/release/packages/ucl/caroot-all.ucl b/packages/caroot/common.ucl
rename from release/packages/ucl/caroot-all.ucl
rename to packages/caroot/common.ucl
--- a/release/packages/ucl/caroot-all.ucl
+++ b/packages/caroot/common.ucl
@@ -30,7 +30,3 @@
https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/policy/
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/ccdconfig/Makefile b/packages/ccdconfig/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ccdconfig/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= ccdconfig
+
+# ccdconfig doesn't work in a jail.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ccdconfig-all.ucl b/packages/ccdconfig/ccdconfig.ucl
rename from release/packages/ucl/ccdconfig-all.ucl
rename to packages/ccdconfig/ccdconfig.ucl
--- a/release/packages/ucl/ccdconfig-all.ucl
+++ b/packages/ccdconfig/ccdconfig.ucl
@@ -22,7 +22,3 @@
ccdconfig(8) is used to configure the concatenated disk driver, ccd(4).
ccdconfig(8) may also be started on boot using the "ccd" rc(8) service.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/certctl/Makefile b/packages/certctl/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/certctl/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= certctl
+
+PKG_SETS= minimal minimal-jail
+
+PKG_DEPS.certctl+= openssl
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/certctl-all.ucl b/packages/certctl/certctl.ucl
rename from release/packages/ucl/certctl-all.ucl
rename to packages/certctl/certctl.ucl
--- a/release/packages/ucl/certctl-all.ucl
+++ b/packages/certctl/certctl.ucl
@@ -31,7 +31,3 @@
The certctl utility manages the list of TLS Certificate Authorities that are
trusted by applications that use OpenSSL.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/clang/Makefile b/packages/clang/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/clang/Makefile
@@ -0,0 +1,10 @@
+WORLDPACKAGE= clang
+SUBPACKAGES= dbg dev man
+
+PKG_SETS= devel
+PKG_LICENSES= "Apache-2.0 WITH LLVM-exception"
+
+PKG_DEPS.clang+= lld
+PKG_DEPS.clang+= libcompiler_rt-dev
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/clang-all.ucl b/packages/clang/clang.ucl
rename from release/packages/ucl/clang-all.ucl
rename to packages/clang/clang.ucl
--- a/release/packages/ucl/clang-all.ucl
+++ b/packages/clang/clang.ucl
@@ -25,8 +25,7 @@
working with object files.
EOD
-licenses = [ "Apache-2.0 WITH LLVM-exception" ]
-
-annotations {
- set = devel
-}
+shlibs_required_ignore: [
+ "libc.so.7:32",
+ "libgcc_s.so.1:32",
+]
diff --git a/packages/clibs/Makefile b/packages/clibs/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/clibs/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= clibs
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+PKG_SETS= minimal minimal-jail
+PKG_VITAL.clibs=
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/clibs-all.ucl b/packages/clibs/clibs.ucl
rename from release/packages/ucl/clibs-all.ucl
rename to packages/clibs/clibs.ucl
--- a/release/packages/ucl/clibs-all.ucl
+++ b/packages/clibs/clibs.ucl
@@ -22,7 +22,3 @@
This package provides the basic runtime libraries required for system operation,
including libc and libc++, and the runtime link loader /libexec/ld-elf.so.1.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/console-tools/Makefile b/packages/console-tools/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/console-tools/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= console-tools
+
+# console-tools isn't applicable to jails.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/console-tools-all.ucl b/packages/console-tools/console-tools.ucl
rename from release/packages/ucl/console-tools-all.ucl
rename to packages/console-tools/console-tools.ucl
--- a/release/packages/ucl/console-tools-all.ucl
+++ b/packages/console-tools/console-tools.ucl
@@ -29,7 +29,3 @@
* moused(8) can be used to interface with a mouse and provide a graphical
mouse cursor on the video console.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/cron/Makefile b/packages/cron/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/cron/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= cron
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/cron-all.ucl b/packages/cron/cron.ucl
rename from release/packages/ucl/cron-all.ucl
rename to packages/cron/cron.ucl
--- a/release/packages/ucl/cron-all.ucl
+++ b/packages/cron/cron.ucl
@@ -25,7 +25,3 @@
This implementation of cron(8) is based on Vixie Cron.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/csh/Makefile b/packages/csh/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/csh/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= csh
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/csh-all.ucl b/packages/csh/csh.ucl
rename from release/packages/ucl/csh-all.ucl
rename to packages/csh/csh.ucl
--- a/release/packages/ucl/csh-all.ucl
+++ b/packages/csh/csh.ucl
@@ -38,7 +38,3 @@
a command-line editor, programmable word completion, spelling correction,
a history mechanism, job control, and a C-like syntax.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/ctf/Makefile b/packages/ctf/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ctf/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= ctf
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+PKG_LICENSES= CDDL-1.0
+PKG_SETS= devel
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ctf-all.ucl b/packages/ctf/ctf.ucl
rename from release/packages/ucl/ctf-all.ucl
rename to packages/ctf/ctf.ucl
--- a/release/packages/ucl/ctf-all.ucl
+++ b/packages/ctf/ctf.ucl
@@ -32,9 +32,3 @@
which are used to work with CTF data, and the libctf library which allows
applications to access CTF debugging information programmatically.
EOD
-
-licenses = [ "CDDL-1.0" ]
-
-annotations {
- set = devel
-}
diff --git a/packages/ctl/Makefile b/packages/ctl/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ctl/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= ctl
+
+# The CAM target layer doesn't work in a jail.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ctl-all.ucl b/packages/ctl/ctl.ucl
rename from release/packages/ucl/ctl-all.ucl
rename to packages/ctl/ctl.ucl
--- a/release/packages/ucl/ctl-all.ucl
+++ b/packages/ctl/ctl.ucl
@@ -39,7 +39,3 @@
performing authentication and passing connections to the kernel part of the
native iSCSI target.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/cxgbe-tools/Makefile b/packages/cxgbe-tools/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/cxgbe-tools/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= cxgbe-tools
+
+# cxgbe-tools is not generally useful in a jail.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/cxgbe-tools-all.ucl b/packages/cxgbe-tools/cxgbe-tools.ucl
rename from release/packages/ucl/cxgbe-tools-all.ucl
rename to packages/cxgbe-tools/cxgbe-tools.ucl
--- a/release/packages/ucl/cxgbe-tools-all.ucl
+++ b/packages/cxgbe-tools/cxgbe-tools.ucl
@@ -25,7 +25,3 @@
as the hardware packet filter, Quality-of-Service (QoS) scheduler, and
TCP offload engine.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/devd/Makefile b/packages/devd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/devd/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= devd
+
+PKG_SETS= minimal minimal-jail
+
+# devd uses /bin/sh to invoke hooks.
+PKG_DEPS.devd+= runtime
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/devd-all.ucl b/packages/devd/devd.ucl
rename from release/packages/ucl/devd-all.ucl
rename to packages/devd/devd.ucl
--- a/release/packages/ucl/devd-all.ucl
+++ b/packages/devd/devd.ucl
@@ -34,7 +34,3 @@
be for devd to use a table to locate and load via kldload(8) the proper driver
for an unrecognized device that is added to the system.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/devmatch/Makefile b/packages/devmatch/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/devmatch/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= devmatch
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+# devmatch is not applicable to jails.
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/devmatch-all.ucl b/packages/devmatch/devmatch.ucl
rename from release/packages/ucl/devmatch-all.ucl
rename to packages/devmatch/devmatch.ucl
--- a/release/packages/ucl/devmatch-all.ucl
+++ b/packages/devmatch/devmatch.ucl
@@ -23,7 +23,3 @@
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/packages/dhclient/Makefile b/packages/dhclient/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/dhclient/Makefile
@@ -0,0 +1,10 @@
+WORLDPACKAGE= dhclient
+
+PKG_LICENSES= BSD-3-Clause
+PKG_SETS= minimal minimal-jail
+
+# dhclient uses resolvconf to update /etc/resolv.conf in case the
+# DHCP server returns nameserver addresses.
+PKG_DEPS.dhclient+= resolvconf
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/dhclient-all.ucl b/packages/dhclient/dhclient.ucl
rename from release/packages/ucl/dhclient-all.ucl
rename to packages/dhclient/dhclient.ucl
--- a/release/packages/ucl/dhclient-all.ucl
+++ b/packages/dhclient/dhclient.ucl
@@ -42,9 +42,3 @@
The DHCP client is typically started automatically on boot, or by devd(8)
when a new network interface is attached to the system.
EOD
-
-licenses = [ "BSD-3-Clause" ]
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/dma/Makefile b/packages/dma/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/dma/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= dma
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/dma-all.ucl b/packages/dma/dma.ucl
rename from release/packages/ucl/dma-all.ucl
rename to packages/dma/dma.ucl
--- a/release/packages/ucl/dma-all.ucl
+++ b/packages/dma/dma.ucl
@@ -46,7 +46,3 @@
is required, or when more advanced mail routing is needed, consider using
the $PKG_NAME_PREFIX-sendmail package instead.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/dtrace/Makefile b/packages/dtrace/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/dtrace/Makefile
@@ -0,0 +1,9 @@
+WORLDPACKAGE= dtrace
+SUBPACKAGES= dbg dev man
+COMPAT_PKG= yes
+COMPAT_PKGS= dbg dev
+
+# DTrace doesn't work in a jail.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/dtrace-all.ucl b/packages/dtrace/dtrace.ucl
rename from release/packages/ucl/dtrace-all.ucl
rename to packages/dtrace/dtrace.ucl
--- a/release/packages/ucl/dtrace-all.ucl
+++ b/packages/dtrace/dtrace.ucl
@@ -27,7 +27,3 @@
in the D language, the utilities lockstat(1) and plockstat(1), and several
example D scripts installed in /usr/share/dtrace.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/dwatch/Makefile b/packages/dwatch/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/dwatch/Makefile
@@ -0,0 +1,10 @@
+WORLDPACKAGE= dwatch
+SUBPACKAGES= man
+
+# DTrace doesn't work in a jail.
+PKG_SETS= optional
+
+# dwatch is implemented using dtrace.
+PKG_DEPS.dwatch+= dtrace
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/dwatch-all.ucl b/packages/dwatch/dwatch.ucl
rename from release/packages/ucl/dwatch-all.ucl
rename to packages/dwatch/dwatch.ucl
--- a/release/packages/ucl/dwatch-all.ucl
+++ b/packages/dwatch/dwatch.ucl
@@ -35,7 +35,3 @@
[optionally] probe-specific data. dwatch also includes a set of pre-defined
profiles for tracing common system operations.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/ee/Makefile b/packages/ee/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ee/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= ee
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ee-all.ucl b/packages/ee/ee.ucl
rename from release/packages/ucl/ee-all.ucl
rename to packages/ee/ee.ucl
--- a/release/packages/ucl/ee-all.ucl
+++ b/packages/ee/ee.ucl
@@ -23,7 +23,3 @@
a full-screen editing interface similar to vi(1), but is easier to learn for
new users.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/efi-tools/Makefile b/packages/efi-tools/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/efi-tools/Makefile
@@ -0,0 +1,13 @@
+WORLDPACKAGE= efi-tools
+SUBPACKAGES= dbg dev man
+
+# The 32-bit libraries are only built on certain architectures.
+.if ${MACHINE_ARCH} == "aarch64"
+COMPAT_PKG= yes
+COMPAT_PKGS= dbg dev
+.endif
+
+# efi-tools is not applicable to jails.
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/efi-tools-all.ucl b/packages/efi-tools/efi-tools.ucl
rename from release/packages/ucl/efi-tools-all.ucl
rename to packages/efi-tools/efi-tools.ucl
--- a/release/packages/ucl/efi-tools-all.ucl
+++ b/packages/efi-tools/efi-tools.ucl
@@ -35,7 +35,3 @@
* efitable(8) can dump UEFI tables.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/examples/Makefile b/packages/examples/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/examples/Makefile
@@ -0,0 +1,4 @@
+WORLDPACKAGE= examples
+SUBPACKAGES=
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/examples-all.ucl b/packages/examples/examples.ucl
rename from release/packages/ucl/examples-all.ucl
rename to packages/examples/examples.ucl
--- a/release/packages/ucl/examples-all.ucl
+++ b/packages/examples/examples.ucl
@@ -24,7 +24,3 @@
Some useful graphics data related to the "Beastie" mascot are also provided.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/fd/Makefile b/packages/fd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/fd/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= fd
+
+# Using fd in a jail would be unusual.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/fd-all.ucl b/packages/fd/fd.ucl
rename from release/packages/ucl/fd-all.ucl
rename to packages/fd/fd.ucl
--- a/release/packages/ucl/fd-all.ucl
+++ b/packages/fd/fd.ucl
@@ -26,7 +26,3 @@
* fdformat(8) is used to format disks.
* fdread(1) and fdwrite(1) read and write data to or from floppy disks.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/fetch/Makefile b/packages/fetch/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/fetch/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= fetch
+SUBPACKAGES= dbg dev man
+COMPAT_PKG= yes
+COMPAT_PKGS= dbg dev
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/fetch-all.ucl b/packages/fetch/fetch.ucl
rename from release/packages/ucl/fetch-all.ucl
rename to packages/fetch/fetch.ucl
--- a/release/packages/ucl/fetch-all.ucl
+++ b/packages/fetch/fetch.ucl
@@ -27,7 +27,3 @@
Also provided is fetch(3), a library which allows applications to use
this functionality programmatically.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/firmware-iwm/Makefile b/packages/firmware-iwm/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/firmware-iwm/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= firmware-iwm
+SUBPACKAGES=
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/firmware-iwm-all.ucl b/packages/firmware-iwm/firmware-iwm.ucl
rename from release/packages/ucl/firmware-iwm-all.ucl
rename to packages/firmware-iwm/firmware-iwm.ucl
--- a/release/packages/ucl/firmware-iwm-all.ucl
+++ b/packages/firmware-iwm/firmware-iwm.ucl
@@ -22,7 +22,3 @@
This firmware is required for Intel 802.11ac wireless network cards supported
by the iwm(4) driver.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/flua/Makefile b/packages/flua/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/flua/Makefile
@@ -0,0 +1,15 @@
+.include <src.opts.mk>
+
+WORLDPACKAGE= flua
+SUBPACKAGES= dbg
+
+# The flua "dev" package only contains manpages.
+.if ${MK_MAN} != "no"
+. if ${MK_MANSPLITPKG} != "no"
+SUBPACKAGES+= man
+. else
+SUBPACKAGES+= dev
+. endif
+.endif
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/flua-all.ucl b/packages/flua/flua.ucl
rename from release/packages/ucl/flua-all.ucl
rename to packages/flua/flua.ucl
--- a/release/packages/ucl/flua-all.ucl
+++ b/packages/flua/flua.ucl
@@ -26,7 +26,3 @@
Supported versions of Lua for general use are available in the FreeBSD Ports
Collection.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/ftp/Makefile b/packages/ftp/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ftp/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= ftp
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ftp-all.ucl b/packages/ftp/ftp.ucl
rename from release/packages/ucl/ftp-all.ucl
rename to packages/ftp/ftp.ucl
--- a/release/packages/ucl/ftp-all.ucl
+++ b/packages/ftp/ftp.ucl
@@ -22,7 +22,3 @@
The ftp(1) utility connects to a remote system implementing the Internet FTP
protocol (RFC 959) to upload and download files.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/fwget/Makefile b/packages/fwget/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/fwget/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= fwget
+SUBPACKAGES= man
+
+# fwget is not applicable to jails.
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/fwget-all.ucl b/packages/fwget/fwget.ucl
rename from release/packages/ucl/fwget-all.ucl
rename to packages/fwget/fwget.ucl
--- a/release/packages/ucl/fwget-all.ucl
+++ b/packages/fwget/fwget.ucl
@@ -28,7 +28,3 @@
The fwget(8) utility can be used to detect and install the necessary
firmware packages for hardware devices present on a running system.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/games/Makefile b/packages/games/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/games/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= games
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/games-all.ucl b/packages/games/games.ucl
rename from release/packages/ucl/games-all.ucl
rename to packages/games/games.ucl
--- a/release/packages/ucl/games-all.ucl
+++ b/packages/games/games.ucl
@@ -26,7 +26,3 @@
* caesar(6) and rot13(6) implement a trivial (and easily broken) text
encryption system called a Caesar cipher.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/geom/Makefile b/packages/geom/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/geom/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= geom
+COMPAT_PKG= yes
+COMPAT_PKGS= dbg
+
+# GEOM doesn't work in a jail.
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/geom-all.ucl b/packages/geom/geom.ucl
rename from release/packages/ucl/geom-all.ucl
rename to packages/geom/geom.ucl
--- a/release/packages/ucl/geom-all.ucl
+++ b/packages/geom/geom.ucl
@@ -23,7 +23,3 @@
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/packages/ggate/Makefile b/packages/ggate/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ggate/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= ggate
+
+# GEOM Gate doesn't work in a jail.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ggate-all.ucl b/packages/ggate/ggate.ucl
rename from release/packages/ucl/ggate-all.ucl
rename to packages/ggate/ggate.ucl
--- a/release/packages/ucl/ggate-all.ucl
+++ b/packages/ggate/ggate.ucl
@@ -30,7 +30,3 @@
This package provides the ggated(8) server used to export devices, and
the ggatec(8) client used to access them.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/googletest/Makefile b/packages/googletest/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/googletest/Makefile
@@ -0,0 +1,4 @@
+WORLDPACKAGE= googletest
+SUBPACKAGES= dbg dev
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/googletest-all.ucl b/packages/googletest/googletest.ucl
rename from release/packages/ucl/googletest-all.ucl
rename to packages/googletest/googletest.ucl
--- a/release/packages/ucl/googletest-all.ucl
+++ b/packages/googletest/googletest.ucl
@@ -27,7 +27,3 @@
version of Google Test may be found in the FreeBSD Ports Collection
as devel/googletest.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/gssd/Makefile b/packages/gssd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/gssd/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= gssd
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/gssd-all.ucl b/packages/gssd/gssd.ucl
rename from release/packages/ucl/gssd-all.ucl
rename to packages/gssd/gssd.ucl
--- a/release/packages/ucl/gssd-all.ucl
+++ b/packages/gssd/gssd.ucl
@@ -28,7 +28,3 @@
This daemon is required when using Kerberos authentication with NFS.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/hast/Makefile b/packages/hast/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/hast/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= hast
+
+# HAST doesn't work in a jail.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/hast-all.ucl b/packages/hast/hast.ucl
rename from release/packages/ucl/hast-all.ucl
rename to packages/hast/hast.ucl
--- a/release/packages/ucl/hast-all.ucl
+++ b/packages/hast/hast.ucl
@@ -23,7 +23,3 @@
storage devices between two machines on a network. HAST can be used by itself
or as part of an HA cluster to provide redundant cluster storage.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/hostapd/Makefile b/packages/hostapd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/hostapd/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= hostapd
+
+# Using hostapd in a jail would be unusual.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/hostapd-all.ucl b/packages/hostapd/hostapd.ucl
rename from release/packages/ucl/hostapd-all.ucl
rename to packages/hostapd/hostapd.ucl
--- a/release/packages/ucl/hostapd-all.ucl
+++ b/packages/hostapd/hostapd.ucl
@@ -24,7 +24,3 @@
mode. hostapd can authenticate clients itself via 802.11i (WPA), or via
802.1X (EAP) using an external RADIUS server.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/hyperv-tools/Makefile b/packages/hyperv-tools/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/hyperv-tools/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= hyperv-tools
+
+# Hyper-V tools aren't applicable to jails.
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/hyperv-tools-all.ucl b/packages/hyperv-tools/hyperv-tools.ucl
rename from release/packages/ucl/hyperv-tools-all.ucl
rename to packages/hyperv-tools/hyperv-tools.ucl
--- a/release/packages/ucl/hyperv-tools-all.ucl
+++ b/packages/hyperv-tools/hyperv-tools.ucl
@@ -22,7 +22,3 @@
This package provides utilities used when running on the Microsoft Hyper-V
virtualisation platform.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/inetd/Makefile b/packages/inetd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/inetd/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= inetd
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/inetd-all.ucl b/packages/inetd/inetd.ucl
rename from release/packages/ucl/inetd-all.ucl
rename to packages/inetd/inetd.ucl
--- a/release/packages/ucl/inetd-all.ucl
+++ b/packages/inetd/inetd.ucl
@@ -23,7 +23,3 @@
process to handle the connection based on its configuration file. Some
built-in servers for basic services are also provided.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/ipf/Makefile b/packages/ipf/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ipf/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= ipf
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ipf-all.ucl b/packages/ipf/ipf.ucl
rename from release/packages/ucl/ipf-all.ucl
rename to packages/ipf/ipf.ucl
--- a/release/packages/ucl/ipf-all.ucl
+++ b/packages/ipf/ipf.ucl
@@ -25,7 +25,3 @@
packet filter, and periodic(8) reports for filter activity. Some examples
of configuring IP Filter are also provided in /usr/share/examples/ipfilter.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/ipfw/Makefile b/packages/ipfw/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ipfw/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= ipfw
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ipfw-all.ucl b/packages/ipfw/ipfw.ucl
rename from release/packages/ucl/ipfw-all.ucl
rename to packages/ipfw/ipfw.ucl
--- a/release/packages/ucl/ipfw-all.ucl
+++ b/packages/ipfw/ipfw.ucl
@@ -28,7 +28,3 @@
reports on filter activity, and rc(8) services to automatically start ipfw
at system startup.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/iscsi/Makefile b/packages/iscsi/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/iscsi/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= iscsi
+
+# The iSCSI initiator does not work in a jail.
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/iscsi-all.ucl b/packages/iscsi/iscsi.ucl
rename from release/packages/ucl/iscsi-all.ucl
rename to packages/iscsi/iscsi.ucl
--- a/release/packages/ucl/iscsi-all.ucl
+++ b/packages/iscsi/iscsi.ucl
@@ -24,7 +24,3 @@
initiator, the iscsictl(8) utility used to monitor and configure the initiator,
and rc(8) services to configure the initiator during system startup.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/jail/Makefile b/packages/jail/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/jail/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/jail-all.ucl b/packages/jail/jail.ucl
rename from release/packages/ucl/jail-all.ucl
rename to packages/jail/jail.ucl
--- a/release/packages/ucl/jail-all.ucl
+++ b/packages/jail/jail.ucl
@@ -30,7 +30,3 @@
jails, and an optional rc(8) service to start jails during system startup using
the /etc/jail.conf configuration file.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/kerberos-kdc/Makefile b/packages/kerberos-kdc/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/kerberos-kdc/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= kerberos-kdc
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/kerberos-kdc-all.ucl b/packages/kerberos-kdc/kerberos-kdc.ucl
rename from release/packages/ucl/kerberos-kdc-all.ucl
rename to packages/kerberos-kdc/kerberos-kdc.ucl
--- a/release/packages/ucl/kerberos-kdc-all.ucl
+++ b/packages/kerberos-kdc/kerberos-kdc.ucl
@@ -27,7 +27,3 @@
This package provides the Kerberos key distribution center (KDC), which
manages the Kerberos database and issues tickets to Kerberos users.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/kerberos/Makefile b/packages/kerberos/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/kerberos/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= kerberos
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/kerberos-all.ucl b/packages/kerberos/kerberos.ucl
rename from release/packages/ucl/kerberos-all.ucl
rename to packages/kerberos/kerberos.ucl
--- a/release/packages/ucl/kerberos-all.ucl
+++ b/packages/kerberos/kerberos.ucl
@@ -32,7 +32,3 @@
This version of Kerberos implements version 5 of the Kerberos protocol,
sometimes called Kerberos V.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/kernel-man/Makefile b/packages/kernel-man/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/kernel-man/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= kernel-man
+# kernel-man is already a man package, so there's no man subpackage.
+SUBPACKAGES=
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/kernel-man.ucl b/packages/kernel-man/kernel-man.ucl
rename from release/packages/ucl/kernel-man.ucl
rename to packages/kernel-man/kernel-man.ucl
--- a/release/packages/ucl/kernel-man.ucl
+++ b/packages/kernel-man/kernel-man.ucl
@@ -22,7 +22,3 @@
Manual pages for kernel interfaces and drivers (section 4) and the kernel
developer manual pages (section 9).
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/kyua/Makefile b/packages/kyua/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/kyua/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= kyua
+
+PKG_SETS= devel
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/kyua-all.ucl b/packages/kyua/kyua.ucl
rename from release/packages/ucl/kyua-all.ucl
rename to packages/kyua/kyua.ucl
--- a/release/packages/ucl/kyua-all.ucl
+++ b/packages/kyua/kyua.ucl
@@ -50,7 +50,3 @@
kyua's design originated from. However, framework-less test programs and
TAP-compliant test programs can also be executed through kyua.
EOD
-
-annotations {
- set = "devel"
-}
diff --git a/packages/lib9p/Makefile b/packages/lib9p/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/lib9p/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= lib9p
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/lib9p-all.ucl b/packages/lib9p/lib9p.ucl
rename from release/packages/ucl/lib9p-all.ucl
rename to packages/lib9p/lib9p.ucl
--- a/release/packages/ucl/lib9p-all.ucl
+++ b/packages/lib9p/lib9p.ucl
@@ -22,7 +22,3 @@
lib9p implements the server side of the 9p2000, 9p2000.u and 9p2000.L revisions
of the 9P protocol.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libarchive/Makefile b/packages/libarchive/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libarchive/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libarchive
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libarchive-all.ucl b/packages/libarchive/libarchive.ucl
rename from release/packages/ucl/libarchive-all.ucl
rename to packages/libarchive/libarchive.ucl
--- a/release/packages/ucl/libarchive-all.ucl
+++ b/packages/libarchive/libarchive.ucl
@@ -32,7 +32,3 @@
reading and writing archives compressed using various compression filters
such as gzip and bzip2.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libbegemot/Makefile b/packages/libbegemot/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libbegemot/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libbegemot
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libbegemot-all.ucl b/packages/libbegemot/libbegemot.ucl
rename from release/packages/ucl/libbegemot-all.ucl
rename to packages/libbegemot/libbegemot.ucl
--- a/release/packages/ucl/libbegemot-all.ucl
+++ b/packages/libbegemot/libbegemot.ucl
@@ -44,7 +44,3 @@
They support the well known and understood technique of event driven
programming and, in addition to select(2) and poll(2) also support timers.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libblocksruntime/Makefile b/packages/libblocksruntime/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libblocksruntime/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libblocksruntime
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libblocksruntime-all.ucl b/packages/libblocksruntime/libblocksruntime.ucl
rename from release/packages/ucl/libblocksruntime-all.ucl
rename to packages/libblocksruntime/libblocksruntime.ucl
--- a/release/packages/ucl/libblocksruntime-all.ucl
+++ b/packages/libblocksruntime/libblocksruntime.ucl
@@ -23,7 +23,3 @@
non-standard extension to the C programming language which adds
support for lambda expressions and closures.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libbsdstat/Makefile b/packages/libbsdstat/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libbsdstat/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libbsdstat
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libbsdstat-all.ucl b/packages/libbsdstat/libbsdstat.ucl
rename from release/packages/ucl/libbsdstat-all.ucl
rename to packages/libbsdstat/libbsdstat.ucl
--- a/release/packages/ucl/libbsdstat-all.ucl
+++ b/packages/libbsdstat/libbsdstat.ucl
@@ -22,7 +22,3 @@
libbsdstat is a library for managing and displaying periodically collected
statistics.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libcasper/Makefile b/packages/libcasper/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libcasper/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libcasper
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libcasper-all.ucl b/packages/libcasper/libcasper.ucl
rename from release/packages/ucl/libcasper-all.ucl
rename to packages/libcasper/libcasper.ucl
--- a/release/packages/ucl/libcasper-all.ucl
+++ b/packages/libcasper/libcasper.ucl
@@ -24,7 +24,3 @@
passing messages and capabilities between the sandboxed application and a
helper process to allow restricted access to system and network resources.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libcompat/Makefile b/packages/libcompat/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libcompat/Makefile
@@ -0,0 +1,15 @@
+.include <src.opts.mk>
+
+WORLDPACKAGE= libcompat
+SUBPACKAGES= dev
+COMPAT_PKGS= dev
+
+# libcompat only contains static libraries and manpages, and therefore
+# doesn't have a base package.
+PKG_NO_BASE=
+
+.if ${MK_MANSPLITPKG} != "no"
+SUBPACKAGES= man
+.endif
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libcompat-all.ucl b/packages/libcompat/libcompat.ucl
rename from release/packages/ucl/libcompat-all.ucl
rename to packages/libcompat/libcompat.ucl
--- a/release/packages/ucl/libcompat-all.ucl
+++ b/packages/libcompat/libcompat.ucl
@@ -22,7 +22,3 @@
libcompat provides an implementation of some obsolete library functions:
cuserid(3), re_comp(3), re_exec(3) and rexec(3).
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libcompiler_rt/Makefile b/packages/libcompiler_rt/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libcompiler_rt/Makefile
@@ -0,0 +1,11 @@
+.include <src.opts.mk>
+
+WORLDPACKAGE= libcompiler_rt
+SUBPACKAGES= dev
+COMPAT_PKGS= dev
+
+# libcompiler_rt only contains static libraries and manpages, and therefore
+# doesn't have a base package.
+PKG_NO_BASE=
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libcompiler_rt-all.ucl b/packages/libcompiler_rt/libcompiler_rt.ucl
rename from release/packages/ucl/libcompiler_rt-all.ucl
rename to packages/libcompiler_rt/libcompiler_rt.ucl
--- a/release/packages/ucl/libcompiler_rt-all.ucl
+++ b/packages/libcompiler_rt/libcompiler_rt.ucl
@@ -2,7 +2,3 @@
desc = <<EOD
The libcompiler_rt library from LLVM.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libcuse/Makefile b/packages/libcuse/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libcuse/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libcuse
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libcuse-all.ucl b/packages/libcuse/libcuse.ucl
rename from release/packages/ucl/libcuse-all.ucl
rename to packages/libcuse/libcuse.ucl
--- a/release/packages/ucl/libcuse-all.ucl
+++ b/packages/libcuse/libcuse.ucl
@@ -33,7 +33,3 @@
The libcuse library contains functions to create a character device in
userspace.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libdwarf/Makefile b/packages/libdwarf/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libdwarf/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libdwarf
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libdwarf-all.ucl b/packages/libdwarf/libdwarf.ucl
rename from release/packages/ucl/libdwarf-all.ucl
rename to packages/libdwarf/libdwarf.ucl
--- a/release/packages/ucl/libdwarf-all.ucl
+++ b/packages/libdwarf/libdwarf.ucl
@@ -32,7 +32,3 @@
and write debugging information in object files. The format of debugging
information accessible through this API is defined by the DWARF standard.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libevent1/Makefile b/packages/libevent1/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libevent1/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libevent1
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libevent1-all.ucl b/packages/libevent1/libevent1.ucl
rename from release/packages/ucl/libevent1-all.ucl
rename to packages/libevent1/libevent1.ucl
--- a/release/packages/ucl/libevent1-all.ucl
+++ b/packages/libevent1/libevent1.ucl
@@ -21,7 +21,3 @@
desc = <<EOD
A private library used by applications in the base system.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libexecinfo/Makefile b/packages/libexecinfo/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libexecinfo/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libexecinfo
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libexecinfo-all.ucl b/packages/libexecinfo/libexecinfo.ucl
rename from release/packages/ucl/libexecinfo-all.ucl
rename to packages/libexecinfo/libexecinfo.ucl
--- a/release/packages/ucl/libexecinfo-all.ucl
+++ b/packages/libexecinfo/libexecinfo.ucl
@@ -22,7 +22,3 @@
libexecinfo provides the backtrace(3) interface to allow an application to
examine its current call stack.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libipt/Makefile b/packages/libipt/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libipt/Makefile
@@ -0,0 +1,4 @@
+WORLDPACKAGE= libipt
+SUBPACKAGES= dbg dev
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libipt-all.ucl b/packages/libipt/libipt.ucl
rename from release/packages/ucl/libipt-all.ucl
rename to packages/libipt/libipt.ucl
--- a/release/packages/ucl/libipt-all.ucl
+++ b/packages/libipt/libipt.ucl
@@ -4,7 +4,3 @@
implementation for decoding Intel PT. It can be used as a standalone library
or it can be partially or fully integrated into your tool.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libldns/Makefile b/packages/libldns/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libldns/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libldns
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libldns-all.ucl b/packages/libldns/libldns.ucl
rename from release/packages/ucl/libldns-all.ucl
rename to packages/libldns/libldns.ucl
--- a/release/packages/ucl/libldns-all.ucl
+++ b/packages/libldns/libldns.ucl
@@ -22,7 +22,3 @@
This package provides a private version of the NLnet Labs LDNS library for
use by applications in the base system.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libmagic/Makefile b/packages/libmagic/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libmagic/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libmagic
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libmagic-all.ucl b/packages/libmagic/libmagic.ucl
rename from release/packages/ucl/libmagic-all.ucl
rename to packages/libmagic/libmagic.ucl
--- a/release/packages/ucl/libmagic-all.ucl
+++ b/packages/libmagic/libmagic.ucl
@@ -22,7 +22,3 @@
libmagic allows an application to identity a file based on its contents
using the magic(5) magic number database.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libmilter/Makefile b/packages/libmilter/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libmilter/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libmilter
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libmilter-all.ucl b/packages/libmilter/libmilter.ucl
rename from release/packages/ucl/libmilter-all.ucl
rename to packages/libmilter/libmilter.ucl
--- a/release/packages/ucl/libmilter-all.ucl
+++ b/packages/libmilter/libmilter.ucl
@@ -5,7 +5,3 @@
to filter meta-information and content. libmilter provides support for
applications implementing the milter interface.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libpathconv/Makefile b/packages/libpathconv/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libpathconv/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libpathconv
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libpathconv-all.ucl b/packages/libpathconv/libpathconv.ucl
rename from release/packages/ucl/libpathconv-all.ucl
rename to packages/libpathconv/libpathconv.ucl
--- a/release/packages/ucl/libpathconv-all.ucl
+++ b/packages/libpathconv/libpathconv.ucl
@@ -22,7 +22,3 @@
libpathconv provides the abs2rel() and rel2abs() functions to convert between
absolute and relative pathnames.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/librpcsec_gss/Makefile b/packages/librpcsec_gss/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/librpcsec_gss/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= librpcsec_gss
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/librpcsec_gss-all.ucl b/packages/librpcsec_gss/librpcsec_gss.ucl
rename from release/packages/ucl/librpcsec_gss-all.ucl
rename to packages/librpcsec_gss/librpcsec_gss.ucl
--- a/release/packages/ucl/librpcsec_gss-all.ucl
+++ b/packages/librpcsec_gss/librpcsec_gss.ucl
@@ -41,7 +41,3 @@
The librpcsec_gss provides an API to allow applications to interact with the
RPCSEC_GSS security mechanism.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/librss/Makefile b/packages/librss/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/librss/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= librss
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/librss-all.ucl b/packages/librss/librss.ucl
rename from release/packages/ucl/librss-all.ucl
rename to packages/librss/librss.ucl
--- a/release/packages/ucl/librss-all.ucl
+++ b/packages/librss/librss.ucl
@@ -4,7 +4,3 @@
The librss library and the functions it provides are used for both fetching the
system RSS configuration and interacting with RSS aware sockets.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libsqlite3/Makefile b/packages/libsqlite3/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libsqlite3/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libsqlite3
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libsqlite3-all.ucl b/packages/libsqlite3/libsqlite3.ucl
rename from release/packages/ucl/libsqlite3-all.ucl
rename to packages/libsqlite3/libsqlite3.ucl
--- a/release/packages/ucl/libsqlite3-all.ucl
+++ b/packages/libsqlite3/libsqlite3.ucl
@@ -21,7 +21,3 @@
desc = <<EOD
A private version of SQLite for use by applications in the base system.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libthread_db/Makefile b/packages/libthread_db/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libthread_db/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libthread_db
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libthread_db-all.ucl b/packages/libthread_db/libthread_db.ucl
rename from release/packages/ucl/libthread_db-all.ucl
rename to packages/libthread_db/libthread_db.ucl
--- a/release/packages/ucl/libthread_db-all.ucl
+++ b/packages/libthread_db/libthread_db.ucl
@@ -22,7 +22,3 @@
libthread_db is used by the debugger to examine and interact with a
multithreaded process being debugged.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libucl/Makefile b/packages/libucl/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libucl/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libucl
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libucl-all.ucl b/packages/libucl/libucl.ucl
rename from release/packages/ucl/libucl-all.ucl
rename to packages/libucl/libucl.ucl
--- a/release/packages/ucl/libucl-all.ucl
+++ b/packages/libucl/libucl.ucl
@@ -22,7 +22,3 @@
A private library for reading and writing UCL files, for used by applications
in the base system.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libvgl/Makefile b/packages/libvgl/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libvgl/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libvgl
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libvgl-all.ucl b/packages/libvgl/libvgl.ucl
rename from release/packages/ucl/libvgl-all.ucl
rename to packages/libvgl/libvgl.ucl
--- a/release/packages/ucl/libvgl-all.ucl
+++ b/packages/libvgl/libvgl.ucl
@@ -45,7 +45,3 @@
user switches back. This allows several graphic applications at once, but
on different virtual consoles.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libvmmapi/Makefile b/packages/libvmmapi/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libvmmapi/Makefile
@@ -0,0 +1,4 @@
+WORLDPACKAGE= libvmmapi
+SUBPACKAGES= dbg dev
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libvmmapi-all.ucl b/packages/libvmmapi/libvmmapi.ucl
rename from release/packages/ucl/libvmmapi-all.ucl
rename to packages/libvmmapi/libvmmapi.ucl
--- a/release/packages/ucl/libvmmapi-all.ucl
+++ b/packages/libvmmapi/libvmmapi.ucl
@@ -21,7 +21,3 @@
desc = <<EOD
libvmmapi provides an interface for applications to access the vmm(4) driver.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/libyaml/Makefile b/packages/libyaml/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/libyaml/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= libyaml
+SUBPACKAGES= dbg dev
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/libyaml-all.ucl b/packages/libyaml/libyaml.ucl
rename from release/packages/ucl/libyaml-all.ucl
rename to packages/libyaml/libyaml.ucl
--- a/release/packages/ucl/libyaml-all.ucl
+++ b/packages/libyaml/libyaml.ucl
@@ -22,7 +22,3 @@
The libprivateyaml library is used by the FreeBSD base system to parse YAML
files. This library is not intended for use outside of the base system.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/lld/Makefile b/packages/lld/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/lld/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= lld
+
+PKG_SETS= devel
+PKG_LICENSES= "Apache-2.0 WITH LLVM-exception"
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/lld-all.ucl b/packages/lld/lld.ucl
rename from release/packages/ucl/lld-all.ucl
rename to packages/lld/lld.ucl
--- a/release/packages/ucl/lld-all.ucl
+++ b/packages/lld/lld.ucl
@@ -23,9 +23,3 @@
lld is used to assemble compiled object files into an ELF executable or shared
object file.
EOD
-
-licenses = [ NCSA ]
-
-annotations {
- set = devel
-}
diff --git a/packages/lldb/Makefile b/packages/lldb/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/lldb/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= lldb
+
+PKG_SETS= devel
+PKG_LICENSES= "Apache-2.0 WITH LLVM-exception"
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/lldb-all.ucl b/packages/lldb/lldb.ucl
rename from release/packages/ucl/lldb-all.ucl
rename to packages/lldb/lldb.ucl
--- a/release/packages/ucl/lldb-all.ucl
+++ b/packages/lldb/lldb.ucl
@@ -21,9 +21,3 @@
desc = <<EOD
lldb is a source-level debugger from the LLVM project.
EOD
-
-licenses = [ NCSA ]
-
-annotations {
- set = devel
-}
diff --git a/packages/local-unbound/Makefile b/packages/local-unbound/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/local-unbound/Makefile
@@ -0,0 +1,14 @@
+WORLDPACKAGE= local-unbound
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+PKG_LICENSES= BSD4CLAUSE
+
+UCLSRC= common.ucl
+UCLSRC.local-unbound= local-unbound.ucl
+
+# local-unbound uses resolvconf to update resolv.conf and to generate
+# its forward.conf.
+PKG_DEPS.local-unbound+=resolvconf
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/local-unbound-all.ucl b/packages/local-unbound/common.ucl
rename from release/packages/ucl/local-unbound-all.ucl
rename to packages/local-unbound/common.ucl
--- a/release/packages/ucl/local-unbound-all.ucl
+++ b/packages/local-unbound/common.ucl
@@ -27,9 +27,3 @@
A full-featured version of Unbound is available in the FreeBSD Ports Collection
as "dns/unbound".
EOD
-
-licenses = [ BSD4CLAUSE ]
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/release/packages/ucl/local-unbound.ucl b/packages/local-unbound/local-unbound.ucl
rename from release/packages/ucl/local-unbound.ucl
rename to packages/local-unbound/local-unbound.ucl
--- a/release/packages/ucl/local-unbound.ucl
+++ b/packages/local-unbound/local-unbound.ucl
@@ -16,6 +16,8 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+.include(try=false) "${SRCDIR}/common.ucl"
+
messages = [
{
type: upgrade
@@ -25,11 +27,3 @@
EOM
}
]
-
-deps {
- # local-unbound uses resolvconf to update resolv.conf and to generate
- # its forward.conf.
- "resolvconf" {
- version = "${VERSION}"
- },
-}
diff --git a/packages/locales/Makefile b/packages/locales/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/locales/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= locales
+SUBPACKAGES=
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/locales-all.ucl b/packages/locales/locales.ucl
rename from release/packages/ucl/locales-all.ucl
rename to packages/locales/locales.ucl
--- a/release/packages/ucl/locales-all.ucl
+++ b/packages/locales/locales.ucl
@@ -23,7 +23,3 @@
allowing applications to adapt the format of numbers, dates and other values
to the user's preferred locale and character encoding.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/lp/Makefile b/packages/lp/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/lp/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= lp
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/lp-all.ucl b/packages/lp/lp.ucl
rename from release/packages/ucl/lp-all.ucl
rename to packages/lp/lp.ucl
--- a/release/packages/ucl/lp-all.ucl
+++ b/packages/lp/lp.ucl
@@ -27,7 +27,3 @@
Some sample lp filters for common printers are also provided in
/usr/share/examples/printing.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/mandoc/Makefile b/packages/mandoc/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/mandoc/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= mandoc
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/mandoc-all.ucl b/packages/mandoc/mandoc.ucl
rename from release/packages/ucl/mandoc-all.ucl
rename to packages/mandoc/mandoc.ucl
--- a/release/packages/ucl/mandoc-all.ucl
+++ b/packages/mandoc/mandoc.ucl
@@ -23,7 +23,3 @@
manual pages, along with the related utilities apropos(1) and makewhatis(8),
and the mandoc(1) rendering backend.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/mlx-tools/Makefile b/packages/mlx-tools/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/mlx-tools/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= mlx-tools
+
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/mlx-tools-all.ucl b/packages/mlx-tools/mlx-tools.ucl
rename from release/packages/ucl/mlx-tools-all.ucl
rename to packages/mlx-tools/mlx-tools.ucl
--- a/release/packages/ucl/mlx-tools-all.ucl
+++ b/packages/mlx-tools/mlx-tools.ucl
@@ -33,7 +33,3 @@
6 network adapters in the aspects not covered by the generic ifconfig(8)
command, mostly related to the PCIe attachment and internal card working.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/mtree/Makefile b/packages/mtree/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/mtree/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= mtree
+
+PKG_SETS= devel
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/mtree-all.ucl b/packages/mtree/mtree.ucl
rename from release/packages/ucl/mtree-all.ucl
rename to packages/mtree/mtree.ucl
--- a/release/packages/ucl/mtree-all.ucl
+++ b/packages/mtree/mtree.ucl
@@ -27,7 +27,3 @@
This package also provides mtree(1) definitions for the base system
filesystem in /etc/mtree.
EOD
-
-annotations {
- set = devel
-}
diff --git a/packages/natd/Makefile b/packages/natd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/natd/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= natd
+SUBPACKAGES= dbg dev man
+COMPAT_PKG= yes
+COMPAT_PKGS= dbg dev
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/natd-all.ucl b/packages/natd/natd.ucl
rename from release/packages/ucl/natd-all.ucl
rename to packages/natd/natd.ucl
--- a/release/packages/ucl/natd-all.ucl
+++ b/packages/natd/natd.ucl
@@ -26,7 +26,3 @@
available in ipfw, such as Application Level Gateway (ALG) for the FTP
or IRC protocols.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/ncurses/Makefile b/packages/ncurses/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ncurses/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= ncurses
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ncurses-all.ucl b/packages/ncurses/ncurses.ucl
rename from release/packages/ucl/ncurses-all.ucl
rename to packages/ncurses/ncurses.ucl
--- a/release/packages/ucl/ncurses-all.ucl
+++ b/packages/ncurses/ncurses.ucl
@@ -39,7 +39,3 @@
This package ships with a limited termcap database, but it is designed to use
a terminfo database provided by ports, such as in misc/terminfo-db.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/netmap/Makefile b/packages/netmap/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/netmap/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= netmap
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/netmap-all.ucl b/packages/netmap/netmap.ucl
rename from release/packages/ucl/netmap-all.ucl
rename to packages/netmap/netmap.ucl
--- a/release/packages/ucl/netmap-all.ucl
+++ b/packages/netmap/netmap.ucl
@@ -27,7 +27,3 @@
This package provides libnetmap, a library used by applications to interact
with netmap, and valectl(8), a utility to manage vale(4) network switches.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/newsyslog/Makefile b/packages/newsyslog/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/newsyslog/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= newsyslog
+
+PKG_SETS= minimal minimal-jail
+
+# newsyslog uses bzip2 to compress log files.
+PKG_DEPS.newsyslog+= bzip2
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/newsyslog-all.ucl b/packages/newsyslog/newsyslog.ucl
rename from release/packages/ucl/newsyslog-all.ucl
rename to packages/newsyslog/newsyslog.ucl
--- a/release/packages/ucl/newsyslog-all.ucl
+++ b/packages/newsyslog/newsyslog.ucl
@@ -26,7 +26,3 @@
but it can be configured to rotate any user-configured logfile based on a set
of rules defined in its configuration file.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/nfs/Makefile b/packages/nfs/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/nfs/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= nfs
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/nfs-all.ucl b/packages/nfs/nfs.ucl
rename from release/packages/ucl/nfs-all.ucl
rename to packages/nfs/nfs.ucl
--- a/release/packages/ucl/nfs-all.ucl
+++ b/packages/nfs/nfs.ucl
@@ -32,7 +32,3 @@
the client. Several other daemons and utilities are also provided which may
be necessary depending on the NFS configuration.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/ntp/Makefile b/packages/ntp/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ntp/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= ntp
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ntp-all.ucl b/packages/ntp/ntp.ucl
rename from release/packages/ucl/ntp-all.ucl
rename to packages/ntp/ntp.ucl
--- a/release/packages/ucl/ntp-all.ucl
+++ b/packages/ntp/ntp.ucl
@@ -37,7 +37,3 @@
A periodic(8) script to monitor the status of the NTP daemon is also provided.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/nuageinit/Makefile b/packages/nuageinit/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/nuageinit/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= nuageinit
+SUBPACKAGES= man
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/nuageinit-all.ucl b/packages/nuageinit/nuageinit.ucl
rename from release/packages/ucl/nuageinit-all.ucl
rename to packages/nuageinit/nuageinit.ucl
--- a/release/packages/ucl/nuageinit-all.ucl
+++ b/packages/nuageinit/nuageinit.ucl
@@ -33,7 +33,3 @@
version = "${VERSION}"
},
}
-
-annotations {
- set = minimal
-}
diff --git a/packages/nvme-tools/Makefile b/packages/nvme-tools/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/nvme-tools/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= nvme-tools
+
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/nvme-tools-all.ucl b/packages/nvme-tools/nvme-tools.ucl
rename from release/packages/ucl/nvme-tools-all.ucl
rename to packages/nvme-tools/nvme-tools.ucl
--- a/release/packages/ucl/nvme-tools-all.ucl
+++ b/packages/nvme-tools/nvme-tools.ucl
@@ -23,7 +23,3 @@
and configure NVMe devices connected to the local system, and to discover
and connect to remote NVMe over Fabrics (NVMe-oF) targets.
EOD
-
-annotations {
- set = optional
-}
diff --git a/packages/openssl/Makefile b/packages/openssl/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/openssl/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= openssl
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/openssl-all.ucl b/packages/openssl/openssl.ucl
rename from release/packages/ucl/openssl-all.ucl
rename to packages/openssl/openssl.ucl
--- a/release/packages/ucl/openssl-all.ucl
+++ b/packages/openssl/openssl.ucl
@@ -35,7 +35,3 @@
OpenSSL also provides support for the obsolete Secure Sockets Layer (SSL)
protocol, which was commonly used prior to the standardisation of TLS.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/pam/Makefile b/packages/pam/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/pam/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= pam
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/pam-all.ucl b/packages/pam/pam.ucl
rename from release/packages/ucl/pam-all.ucl
rename to packages/pam/pam.ucl
--- a/release/packages/ucl/pam-all.ucl
+++ b/packages/pam/pam.ucl
@@ -29,7 +29,3 @@
operating system. This implementation of PAM comes from OpenPAM, and aims
to be compatible with Solaris PAM.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/periodic/Makefile b/packages/periodic/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/periodic/Makefile
@@ -0,0 +1,11 @@
+WORLDPACKAGE= periodic
+SUBPACKAGES= man
+
+PKG_SETS= minimal minimal-jail
+
+# periodic scripts are invoked from cron.
+PKG_DEPS.periodic+= cron
+# periodic scripts are written in shell script.
+PKG_DEPS.periodic+= runtime
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/periodic-all.ucl b/packages/periodic/periodic.ucl
rename from release/packages/ucl/periodic-all.ucl
rename to packages/periodic/periodic.ucl
--- a/release/packages/ucl/periodic-all.ucl
+++ b/packages/periodic/periodic.ucl
@@ -23,7 +23,3 @@
scheduling regular system maintenance tasks. This package also provides
the base periodic tasks for the base system.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/pf/Makefile b/packages/pf/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/pf/Makefile
@@ -0,0 +1,4 @@
+WORLDPACKAGE= pf
+SUBPACKAGES= dbg dev man
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/pf-all.ucl b/packages/pf/pf.ucl
rename from release/packages/ucl/pf-all.ucl
rename to packages/pf/pf.ucl
--- a/release/packages/ucl/pf-all.ucl
+++ b/packages/pf/pf.ucl
@@ -32,7 +32,3 @@
Several example pf rulesets are also provided in /usr/share/examples/pf.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/pkg-bootstrap/Makefile b/packages/pkg-bootstrap/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/pkg-bootstrap/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= pkg-bootstrap
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/pkg-bootstrap-all.ucl b/packages/pkg-bootstrap/pkg-bootstrap.ucl
rename from release/packages/ucl/pkg-bootstrap-all.ucl
rename to packages/pkg-bootstrap/pkg-bootstrap.ucl
--- a/release/packages/ucl/pkg-bootstrap-all.ucl
+++ b/packages/pkg-bootstrap/pkg-bootstrap.ucl
@@ -23,7 +23,3 @@
package management system. This package also contains the public keys
necessary to authenticate packages from the FreeBSD.org package repository.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/pmc/Makefile b/packages/pmc/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/pmc/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= pmc
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/pmc-all.ucl b/packages/pmc/pmc.ucl
rename from release/packages/ucl/pmc-all.ucl
rename to packages/pmc/pmc.ucl
--- a/release/packages/ucl/pmc-all.ucl
+++ b/packages/pmc/pmc.ucl
@@ -10,7 +10,3 @@
The utilities pmc(8), pmcannotate(8), pmccontrol(8) and pmcstat(8) provide
command-line access to the facilities provided by libpmc.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/powerd/Makefile b/packages/powerd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/powerd/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= powerd
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/powerd-all.ucl b/packages/powerd/powerd.ucl
rename from release/packages/ucl/powerd-all.ucl
rename to packages/powerd/powerd.ucl
--- a/release/packages/ucl/powerd-all.ucl
+++ b/packages/powerd/powerd.ucl
@@ -5,7 +5,3 @@
options accordingly. It offers power-saving modes that can be individually
selected for operation on AC power or batteries.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/ppp/Makefile b/packages/ppp/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ppp/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= ppp
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ppp-all.ucl b/packages/ppp/ppp.ucl
rename from release/packages/ucl/ppp-all.ucl
rename to packages/ppp/ppp.ucl
--- a/release/packages/ucl/ppp-all.ucl
+++ b/packages/ppp/ppp.ucl
@@ -22,7 +22,3 @@
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/packages/quotacheck/Makefile b/packages/quotacheck/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/quotacheck/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= quotacheck
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/quotacheck-all.ucl b/packages/quotacheck/quotacheck.ucl
rename from release/packages/ucl/quotacheck-all.ucl
rename to packages/quotacheck/quotacheck.ucl
--- a/release/packages/ucl/quotacheck-all.ucl
+++ b/packages/quotacheck/quotacheck.ucl
@@ -41,7 +41,3 @@
file and the current system copy of the incorrect quotas are updated (the
latter only occurs if an active file system is checked).
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/rc/Makefile b/packages/rc/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/rc/Makefile
@@ -0,0 +1,11 @@
+WORLDPACKAGE= rc
+
+PKG_SETS= minimal minimal-jail
+
+# rc scripts require /bin/sh.
+PKG_DEPS.rc+= runtime
+
+# /etc/rc.d/var_run depends on mtree.
+PKG_DEPS.rc+= mtree
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/rc-all.ucl b/packages/rc/rc.ucl
rename from release/packages/ucl/rc-all.ucl
rename to packages/rc/rc.ucl
--- a/release/packages/ucl/rc-all.ucl
+++ b/packages/rc/rc.ucl
@@ -23,7 +23,3 @@
stop them at shutdown. This package provides the rc(8) subsystem itself and
the service scripts for the base system.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/rcmds/Makefile b/packages/rcmds/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/rcmds/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= rcmds
+
+# The RPC daemons require rpcbind.
+PKG_DEPS.rcmds+= utilities
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/rcmds-all.ucl b/packages/rcmds/rcmds.ucl
rename from release/packages/ucl/rcmds-all.ucl
rename to packages/rcmds/rcmds.ucl
--- a/release/packages/ucl/rcmds-all.ucl
+++ b/packages/rcmds/rcmds.ucl
@@ -24,7 +24,3 @@
rwho, ruptime, rup, rusers and rwall and the daemons rwhod, rpc.rstatd,
rpc.rusersd, and rpc.rwalld.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/rdma/Makefile b/packages/rdma/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/rdma/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= rdma
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/rdma-all.ucl b/packages/rdma/rdma.ucl
rename from release/packages/ucl/rdma-all.ucl
rename to packages/rdma/rdma.ucl
--- a/release/packages/ucl/rdma-all.ucl
+++ b/packages/rdma/rdma.ucl
@@ -23,7 +23,3 @@
networks, including the rping(1) and mckey(1) utilities used to test
network functionality.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/rescue/Makefile b/packages/rescue/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/rescue/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= rescue
+SUBPACKAGES=
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/rescue-all.ucl b/packages/rescue/rescue.ucl
rename from release/packages/ucl/rescue-all.ucl
rename to packages/rescue/rescue.ucl
--- a/release/packages/ucl/rescue-all.ucl
+++ b/packages/rescue/rescue.ucl
@@ -25,7 +25,3 @@
tools are statically linked, so they can be used even if the runtime linker
or system libraries are missing or damaged.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/resolvconf/Makefile b/packages/resolvconf/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/resolvconf/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= resolvconf
+SUBPACKAGES= man
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/resolvconf-all.ucl b/packages/resolvconf/resolvconf.ucl
rename from release/packages/ucl/resolvconf-all.ucl
rename to packages/resolvconf/resolvconf.ucl
--- a/release/packages/ucl/resolvconf-all.ucl
+++ b/packages/resolvconf/resolvconf.ucl
@@ -23,7 +23,3 @@
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/packages/rip/Makefile b/packages/rip/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/rip/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= rip
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/rip-all.ucl b/packages/rip/rip.ucl
rename from release/packages/ucl/rip-all.ucl
rename to packages/rip/rip.ucl
--- a/release/packages/ucl/rip-all.ucl
+++ b/packages/rip/rip.ucl
@@ -25,7 +25,3 @@
RIP and RIPng support is deprecated and will be removed in FreeBSD 16.0.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/runtime/Makefile b/packages/runtime/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/runtime/Makefile
@@ -0,0 +1,14 @@
+WORLDPACKAGE= runtime
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+.include <bsd.endian.mk>
+PKG_UCLVARS+= CAP_MKDB_ENDIAN "${CAP_MKDB_ENDIAN}"
+
+PKG_SETS= minimal minimal-jail
+PKG_VITAL.runtime=
+
+UCLSRC= common.ucl
+UCLSRC.runtime= runtime.ucl
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/runtime-all.ucl b/packages/runtime/common.ucl
rename from release/packages/ucl/runtime-all.ucl
rename to packages/runtime/common.ucl
--- a/release/packages/ucl/runtime-all.ucl
+++ b/packages/runtime/common.ucl
@@ -22,7 +22,3 @@
This is the core system, including utilities, libraries and configuration files
required for basic multi-user operation.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/release/packages/ucl/runtime.ucl b/packages/runtime/runtime.ucl
rename from release/packages/ucl/runtime.ucl
rename to packages/runtime/runtime.ucl
--- a/release/packages/ucl/runtime.ucl
+++ b/packages/runtime/runtime.ucl
@@ -1,4 +1,4 @@
-vital: true
+.include(try=false) "${SRCDIR}/common.ucl"
scripts: {
post-install = <<EOD
diff --git a/packages/sendmail/Makefile b/packages/sendmail/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/sendmail/Makefile
@@ -0,0 +1,12 @@
+.include <src.opts.mk>
+
+WORLDPACKAGE= sendmail
+
+# sendmail requires make to build its configuration file. However, sendmail
+# is still built even if WITHOUT_MAKE is set; in that case, just assume the
+# user has some other way to create the configuration file.
+.if ${MK_MAKE} != "no"
+PKG_DEPS.sendmail+= bmake
+.endif
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/sendmail-all.ucl b/packages/sendmail/sendmail.ucl
rename from release/packages/ucl/sendmail-all.ucl
rename to packages/sendmail/sendmail.ucl
--- a/release/packages/ucl/sendmail-all.ucl
+++ b/packages/sendmail/sendmail.ucl
@@ -32,7 +32,3 @@
$PKG_NAME_PREFIX-dma package instead, a lightweight MTA which can send (but
not receive) mail over SMTP.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/smbutils/Makefile b/packages/smbutils/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/smbutils/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= smbutils
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/smbutils-all.ucl b/packages/smbutils/smbutils.ucl
rename from release/packages/ucl/smbutils-all.ucl
rename to packages/smbutils/smbutils.ucl
--- a/release/packages/ucl/smbutils-all.ucl
+++ b/packages/smbutils/smbutils.ucl
@@ -26,7 +26,3 @@
This facility only supports SMB version 1, which is strongly deprecated
and not supported by most SMB servers.
EOD
-
-annotations {
- set = optional
-}
diff --git a/packages/sound/Makefile b/packages/sound/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/sound/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= sound
+SUBPACKAGES= dbg dev man
+COMPAT_PKG= yes
+COMPAT_PKGS= dbg dev
+
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/sound-all.ucl b/packages/sound/sound.ucl
rename from release/packages/ucl/sound-all.ucl
rename to packages/sound/sound.ucl
--- a/release/packages/ucl/sound-all.ucl
+++ b/packages/sound/sound.ucl
@@ -36,7 +36,3 @@
* mididump(1) can monitor the incoming MIDI events on a MIDI port.
EOD
-
-annotations {
- set = "optional"
-}
diff --git a/packages/ssh/Makefile b/packages/ssh/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ssh/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= ssh
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+PKG_LICENSES= ISCL
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ssh-all.ucl b/packages/ssh/ssh.ucl
rename from release/packages/ucl/ssh-all.ucl
rename to packages/ssh/ssh.ucl
--- a/release/packages/ucl/ssh-all.ucl
+++ b/packages/ssh/ssh.ucl
@@ -33,9 +33,3 @@
and sftp(1) file transfer utilities, the ssh-agent(1) key management agent
and related utilities for managing SSH keys, and the sshd(8) server daemon.
EOD
-
-licenses = [ ISCL ]
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/syscons-data/Makefile b/packages/syscons-data/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/syscons-data/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= syscons-data
+SUBPACKAGES=
+
+PKG_SETS= optional
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/syscons-data-all.ucl b/packages/syscons-data/syscons-data.ucl
rename from release/packages/ucl/syscons-data-all.ucl
rename to packages/syscons-data/syscons-data.ucl
--- a/release/packages/ucl/syscons-data-all.ucl
+++ b/packages/syscons-data/syscons-data.ucl
@@ -21,7 +21,3 @@
desc = <<EOD
Fonts and keymaps for use with the legacy syscons(4) video console driver.
EOD
-
-annotations {
- set = optional
-}
diff --git a/packages/syslogd/Makefile b/packages/syslogd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/syslogd/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= syslogd
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/syslogd-all.ucl b/packages/syslogd/syslogd.ucl
rename from release/packages/ucl/syslogd-all.ucl
rename to packages/syslogd/syslogd.ucl
--- a/release/packages/ucl/syslogd-all.ucl
+++ b/packages/syslogd/syslogd.ucl
@@ -25,7 +25,3 @@
It can also receive log messages from a remote system and write them to
a local file.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/tcpd/Makefile b/packages/tcpd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/tcpd/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= tcpd
+SUBPACKAGES= dbg dev man
+COMPAT_PKG= yes
+COMPAT_PKGS= dbg dev
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/tcpd-all.ucl b/packages/tcpd/tcpd.ucl
rename from release/packages/ucl/tcpd-all.ucl
rename to packages/tcpd/tcpd.ucl
--- a/release/packages/ucl/tcpd-all.ucl
+++ b/packages/tcpd/tcpd.ucl
@@ -31,7 +31,3 @@
This package also provides a periodic(8) script used to report TCP Wrappers
activity.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/telnet/Makefile b/packages/telnet/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/telnet/Makefile
@@ -0,0 +1,3 @@
+WORLDPACKAGE= telnet
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/telnet-all.ucl b/packages/telnet/telnet.ucl
rename from release/packages/ucl/telnet-all.ucl
rename to packages/telnet/telnet.ucl
--- a/release/packages/ucl/telnet-all.ucl
+++ b/packages/telnet/telnet.ucl
@@ -27,7 +27,3 @@
should not be used to transfer sensitive data such as passwords.
In most situations, the Secure Shell protocol is preferred over TELNET.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/tests/Makefile b/packages/tests/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/tests/Makefile
@@ -0,0 +1,22 @@
+WORLDPACKAGE= tests
+SUBPACKAGES= dbg
+
+PKG_SETS= tests
+
+# Nearly all the tests require atf to run.
+PKG_DEPS.tests+= atf
+
+# Quite a few tests require flua.
+PKG_DEPS.tests+= flua
+
+# Some tests need GoogleTest
+PKG_DEPS.tests+= googletest
+
+# The test framework requires Kyua.
+PKG_DEPS.tests+= kyua
+
+# Since the purpose of the tests is to test the base system, the base
+# system must be installed.
+PKG_DEPS.tests+= set-base
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/tests-all.ucl b/packages/tests/tests.ucl
rename from release/packages/ucl/tests-all.ucl
rename to packages/tests/tests.ucl
--- a/release/packages/ucl/tests-all.ucl
+++ b/packages/tests/tests.ucl
@@ -22,7 +22,3 @@
The test suite, installed in /usr/tests, allows the functionality of the
installed system to be verified.
EOD
-
-annotations {
- set = tests
-}
diff --git a/packages/toolchain/Makefile b/packages/toolchain/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/toolchain/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= toolchain
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dev
+
+PKG_SETS= devel
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/toolchain-all.ucl b/packages/toolchain/toolchain.ucl
rename from release/packages/ucl/toolchain-all.ucl
rename to packages/toolchain/toolchain.ucl
--- a/release/packages/ucl/toolchain-all.ucl
+++ b/packages/toolchain/toolchain.ucl
@@ -22,7 +22,3 @@
This package provides various utilities used to build software, and to
examine and manipulate object files, executables, and libraries.
EOD
-
-annotations {
- set = devel
-}
diff --git a/packages/ufs/Makefile b/packages/ufs/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/ufs/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= ufs
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/ufs-all.ucl b/packages/ufs/ufs.ucl
rename from release/packages/ucl/ufs-all.ucl
rename to packages/ufs/ufs.ucl
--- a/release/packages/ucl/ufs-all.ucl
+++ b/packages/ufs/ufs.ucl
@@ -34,7 +34,3 @@
The libufs library is also provided, which allows applications to access
UFS filesystems programmatically.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/utilities/Makefile b/packages/utilities/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/utilities/Makefile
@@ -0,0 +1,14 @@
+WORLDPACKAGE= utilities
+SUBPACKAGES= dbg dev man
+COMPAT_PKG= yes
+COMPAT_PKGS= dbg dev
+
+.include <bsd.endian.mk>
+PKG_UCLVARS+= CAP_MKDB_ENDIAN "${CAP_MKDB_ENDIAN}"
+
+PKG_SETS= minimal minimal-jail
+
+UCLSRC= common.ucl
+UCLSRC.utilities= utilities.ucl
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/utilities-all.ucl b/packages/utilities/common.ucl
rename from release/packages/ucl/utilities-all.ucl
rename to packages/utilities/common.ucl
--- a/release/packages/ucl/utilities-all.ucl
+++ b/packages/utilities/common.ucl
@@ -22,7 +22,3 @@
This package provides various shell utilities, tools, and libraries which
are commonly used but are not considered essential to system operation.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/release/packages/ucl/utilities.ucl b/packages/utilities/utilities.ucl
rename from release/packages/ucl/utilities.ucl
rename to packages/utilities/utilities.ucl
--- a/release/packages/ucl/utilities.ucl
+++ b/packages/utilities/utilities.ucl
@@ -1,3 +1,5 @@
+.include(try=false) "${SRCDIR}/common.ucl"
+
scripts: {
post-install = <<EOD
cap_mkdb ${CAP_MKDB_ENDIAN} ${PKG_ROOTDIR}/etc/login.conf
diff --git a/packages/vi/Makefile b/packages/vi/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/vi/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= vi
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/vi-all.ucl b/packages/vi/vi.ucl
rename from release/packages/ucl/vi-all.ucl
rename to packages/vi/vi.ucl
--- a/release/packages/ucl/vi-all.ucl
+++ b/packages/vi/vi.ucl
@@ -22,7 +22,3 @@
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,minimal-jail"
-}
diff --git a/packages/vt-data/Makefile b/packages/vt-data/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/vt-data/Makefile
@@ -0,0 +1,6 @@
+WORLDPACKAGE= vt-data
+SUBPACKAGES=
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/vt-data-all.ucl b/packages/vt-data/vt-data.ucl
rename from release/packages/ucl/vt-data-all.ucl
rename to packages/vt-data/vt-data.ucl
--- a/release/packages/ucl/vt-data-all.ucl
+++ b/packages/vt-data/vt-data.ucl
@@ -21,7 +21,3 @@
desc = <<EOD
Fonts and keymaps for use with the vt(4) video console driver.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/wpa/Makefile b/packages/wpa/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/wpa/Makefile
@@ -0,0 +1,5 @@
+WORLDPACKAGE= wpa
+
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/wpa-all.ucl b/packages/wpa/wpa.ucl
rename from release/packages/ucl/wpa-all.ucl
rename to packages/wpa/wpa.ucl
--- a/release/packages/ucl/wpa-all.ucl
+++ b/packages/wpa/wpa.ucl
@@ -43,7 +43,3 @@
the wireless connection. It supports separate frontend programs such
as the text-based wpa_cli(8) program.
EOD
-
-annotations {
- set = minimal
-}
diff --git a/packages/xz/Makefile b/packages/xz/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/xz/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= xz
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/xz-all.ucl b/packages/xz/xz.ucl
rename from release/packages/ucl/xz-all.ucl
rename to packages/xz/xz.ucl
--- a/release/packages/ucl/xz-all.ucl
+++ b/packages/xz/xz.ucl
@@ -23,7 +23,3 @@
provides the front-end xz(1) utility, and the liblzma library which allows
applications to use this functionality programmatically.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/yp/Makefile b/packages/yp/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/yp/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= yp
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+# YP requires bmake to rebuild the database.
+PKG_DEPS.yp+= bmake
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/yp-all.ucl b/packages/yp/yp.ucl
rename from release/packages/ucl/yp-all.ucl
rename to packages/yp/yp.ucl
--- a/release/packages/ucl/yp-all.ucl
+++ b/packages/yp/yp.ucl
@@ -24,7 +24,3 @@
server, YP management utilities, the YP-LDAP gateway (ypldap), YP client
utilities and a sample Makefile for building the YP database.
EOD
-
-annotations {
- set = "optional,optional-jail"
-}
diff --git a/packages/zfs/Makefile b/packages/zfs/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/zfs/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= zfs
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+PKG_LICENSES= CDDL-1.0
+PKG_SETS= minimal
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/zfs-all.ucl b/packages/zfs/zfs.ucl
rename from release/packages/ucl/zfs-all.ucl
rename to packages/zfs/zfs.ucl
--- a/release/packages/ucl/zfs-all.ucl
+++ b/packages/zfs/zfs.ucl
@@ -41,9 +41,3 @@
itself, and the libzfs_core library providing a stable interface for
managing ZFS programmatically.
EOD
-
-licenses = [ "CDDL-1.0" ]
-
-annotations {
- set = minimal
-}
diff --git a/packages/zlib/Makefile b/packages/zlib/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/zlib/Makefile
@@ -0,0 +1,8 @@
+WORLDPACKAGE= zlib
+SUBPACKAGES= dbg dev man
+COMPAT_PKGS= dbg dev lib
+
+PKG_LICENSES= Zlib
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/zlib-all.ucl b/packages/zlib/zlib.ucl
rename from release/packages/ucl/zlib-all.ucl
rename to packages/zlib/zlib.ucl
--- a/release/packages/ucl/zlib-all.ucl
+++ b/packages/zlib/zlib.ucl
@@ -24,9 +24,3 @@
as network protocols (including HTTP) that need to compress data in
transit, and in utilities that compress data on disk.
EOD
-
-licenses = [ "Zlib" ]
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/zoneinfo/Makefile b/packages/zoneinfo/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/zoneinfo/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= zoneinfo
+SUBPACKAGES=
+
+PKG_LICENSES= PD
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/zoneinfo-all.ucl b/packages/zoneinfo/zoneinfo.ucl
rename from release/packages/ucl/zoneinfo-all.ucl
rename to packages/zoneinfo/zoneinfo.ucl
--- a/release/packages/ucl/zoneinfo-all.ucl
+++ b/packages/zoneinfo/zoneinfo.ucl
@@ -22,9 +22,3 @@
The timezone database allows applications to convert dates and times between
UTC and local timezones.
EOD
-
-licenses = [ "PD" ]
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/packages/zstd/Makefile b/packages/zstd/Makefile
new file mode 100644
--- /dev/null
+++ b/packages/zstd/Makefile
@@ -0,0 +1,7 @@
+WORLDPACKAGE= zstd
+SUBPACKAGES= dbg dev lib man
+COMPAT_PKGS= dbg dev lib
+
+PKG_SETS= minimal minimal-jail
+
+.include <bsd.pkg.mk>
diff --git a/release/packages/ucl/zstd-all.ucl b/packages/zstd/zstd.ucl
rename from release/packages/ucl/zstd-all.ucl
rename to packages/zstd/zstd.ucl
--- a/release/packages/ucl/zstd-all.ucl
+++ b/packages/zstd/zstd.ucl
@@ -24,7 +24,3 @@
designed to offer a compression ratio comparable to DEFLATE (zlib), but with
performance suitable for real-time compression applications.
EOD
-
-annotations {
- set = "minimal,minimal-jail"
-}
diff --git a/release/packages/ucl/at.ucl b/release/packages/ucl/at.ucl
deleted file mode 100644
--- a/release/packages/ucl/at.ucl
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # atrun relies on cron to work.
- "cron" {
- version = "${VERSION}"
- },
-
- # at(1) passes the command to /bin/sh
- "runtime" {
- version = "${VERSION}"
- },
-}
-
-
diff --git a/release/packages/ucl/bluetooth.ucl b/release/packages/ucl/bluetooth.ucl
deleted file mode 100644
--- a/release/packages/ucl/bluetooth.ucl
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # rfcomm_pppd(8) uses ppp(8)
- "ppp" {
- version = "${VERSION}"
- },
-}
-
-
-
diff --git a/release/packages/ucl/bsdconfig.ucl b/release/packages/ucl/bsdconfig.ucl
deleted file mode 100644
--- a/release/packages/ucl/bsdconfig.ucl
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # bsdconfig is written in shell script, so it needs /bin/sh
- "runtime" {
- version = "${VERSION}"
- },
-}
diff --git a/release/packages/ucl/bsdinstall.ucl b/release/packages/ucl/bsdinstall.ucl
deleted file mode 100644
--- a/release/packages/ucl/bsdinstall.ucl
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # bsdinstall is written in shell script, so it needs /bin/sh
- "runtime" {
- version = "${VERSION}"
- },
-
- # the pkgbase script requires flua
- "flua" {
- version = "${VERSION}"
- },
-}
diff --git a/release/packages/ucl/certctl.ucl b/release/packages/ucl/certctl.ucl
deleted file mode 100644
--- a/release/packages/ucl/certctl.ucl
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- "openssl": {
- version = "${VERSION}"
- }
-}
diff --git a/release/packages/ucl/clang.ucl b/release/packages/ucl/clang.ucl
deleted file mode 100644
--- a/release/packages/ucl/clang.ucl
+++ /dev/null
@@ -1,14 +0,0 @@
-deps {
- "lld" {
- version = "${VERSION}"
- }
-
- "libcompiler_rt-dev" {
- version = "${VERSION}"
- }
-}
-
-shlibs_required_ignore: [
- "libc.so.7:32",
- "libgcc_s.so.1:32",
-]
diff --git a/release/packages/ucl/clibs.ucl b/release/packages/ucl/clibs.ucl
deleted file mode 100644
--- a/release/packages/ucl/clibs.ucl
+++ /dev/null
@@ -1 +0,0 @@
-vital: true
diff --git a/release/packages/ucl/devd.ucl b/release/packages/ucl/devd.ucl
deleted file mode 100644
--- a/release/packages/ucl/devd.ucl
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # devd uses /bin/sh to invoke hooks.
- "runtime" {
- version = "${VERSION}"
- },
-}
diff --git a/release/packages/ucl/dhclient.ucl b/release/packages/ucl/dhclient.ucl
deleted file mode 100644
--- a/release/packages/ucl/dhclient.ucl
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # dhclient uses resolvconf to update /etc/resolv.conf in case the
- # DHCP server returns nameserver addresses.
- "resolvconf" {
- version = "${VERSION}"
- },
-}
-
diff --git a/release/packages/ucl/newsyslog.ucl b/release/packages/ucl/newsyslog.ucl
deleted file mode 100644
--- a/release/packages/ucl/newsyslog.ucl
+++ /dev/null
@@ -1,6 +0,0 @@
-deps {
- # newsyslog uses bzip2 to compress log files.
- "bzip2" {
- version = "${VERSION}"
- }
-}
diff --git a/release/packages/ucl/periodic.ucl b/release/packages/ucl/periodic.ucl
deleted file mode 100644
--- a/release/packages/ucl/periodic.ucl
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- "cron" {
- version = "${VERSION}"
- }
-}
diff --git a/release/packages/ucl/rc.ucl b/release/packages/ucl/rc.ucl
deleted file mode 100644
--- a/release/packages/ucl/rc.ucl
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- "runtime": {
- version = "${VERSION}"
- },
- # /etc/rc.d/var_run depends on mtree.
- "mtree": {
- version = "${VERSION}"
- },
-}
diff --git a/release/packages/ucl/rcmds.ucl b/release/packages/ucl/rcmds.ucl
deleted file mode 100644
--- a/release/packages/ucl/rcmds.ucl
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # The RPC daemons require rpcbind.
- "utilities" {
- version = "${VERSION}"
- }
-}
-
diff --git a/release/packages/ucl/sendmail.ucl b/release/packages/ucl/sendmail.ucl
deleted file mode 100644
--- a/release/packages/ucl/sendmail.ucl
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # sendmail requires make to build its configuration file.
- "bmake": {
- version = "${VERSION}"
- }
-}
diff --git a/release/packages/ucl/tests.ucl b/release/packages/ucl/tests.ucl
deleted file mode 100644
--- a/release/packages/ucl/tests.ucl
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-
-deps {
- # Nearly all the tests require atf to run.
- "atf": {
- version = "${VERSION}"
- },
-
- # Quite a few tests require flua.
- "flua" {
- version = "${VERSION}"
- },
-
- # Some tests need GoogleTest
- "googletest": {
- version = "${VERSION}"
- },
-
- # The test framework requires Kyua.
- "kyua": {
- version = "${VERSION}"
- },
-
- # Since the purpose of the tests is to test the base system, the base
- # system must be installed.
- "set-base": {
- version = "${VERSION}"
- }
-}
diff --git a/release/packages/ucl/yp.ucl b/release/packages/ucl/yp.ucl
deleted file mode 100644
--- a/release/packages/ucl/yp.ucl
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * SPDX-License-Identifier: ISC
- *
- * Copyright (c) 2025 Lexi Winter <ivy@FreeBSD.org>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-deps {
- # YP requires bmake to rebuild the database.
- "bmake": {
- version = "${VERSION}"
- }
-}
diff --git a/share/mk/bsd.pkg.mk b/share/mk/bsd.pkg.mk
new file mode 100644
--- /dev/null
+++ b/share/mk/bsd.pkg.mk
@@ -0,0 +1,218 @@
+# SPDX-License-Identifier: ISC
+#
+# Copyright (c) 2026 Lexi Winter <ivy@FreeBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+# bsd.pkg.mk: Create a package based on an existing plist and the template
+# UCL files. This is intended for use by packages/* during the build, and
+# cannot be used to generate standalone packages.
+
+.if !defined(REPODIR)
+. error REPODIR must be set
+.endif
+
+.if !defined(PKG_VERSION)
+. error PKG_VERSION must be set
+.endif
+
+_PKG_NEED_ABI=
+.include <bsd.pkg.pre.mk>
+.include <bsd.compat.pre.mk>
+.include <src.opts.mk>
+
+# Allow flua to be overridden; the world build does this to use the
+# bootstrap version.
+FLUA?= /usr/libexec/flua
+
+# The directory that files to be packaged have been staged into.
+# If ${WSTAGEDIR} is set from Makefile.inc1, use that, otherwise
+# use the default location.
+.if defined(WSTAGEDIR)
+_PKG_WORLDSTAGE= ${WSTAGEDIR}
+.else
+_PKG_WORLDSTAGE= ${OBJTOP}/worldstage
+.endif
+
+_PKGDIR= ${SRCTOP}/packages
+_STAGEDIR= ${REPODIR}/${PKG_ABI}/${PKG_VERSION}
+
+# These are the default UCL variables we pass to generate-ucl.lua.
+# Allow the caller to add additional variables via PKG_UCLVARS.
+_UCLVARS= \
+ VERSION "${PKG_VERSION}" \
+ PKG_NAME_PREFIX "${PKG_NAME_PREFIX}" \
+ PKG_WWW "${PKG_WWW}" \
+ PKG_MAINTAINER "${PKG_MAINTAINER}" \
+ ${PKG_UCLVARS}
+
+# Global pkg(8) arguments.
+_PKG_ARGS= \
+ -o ABI=${PKG_ABI} \
+ -o OSVERSION=${PKG_OSVERSION} \
+ -o ALLOW_BASE_SHLIBS=yes \
+ -o SHLIB_PROVIDE_PATHS_NATIVE=/lib,/usr/lib \
+ ${_ALL_LIBCOMPATS:range:@i@-o SHLIB_PROVIDE_PATHS_COMPAT_${_ALL_LIBCOMPATS:[$i]}=/usr/lib${_ALL_libcompats:[$i]}@} \
+
+# Arguments to pkg-create(8).
+_PKG_CREATE_ARGS= \
+ -f ${PKG_FORMAT} \
+ ${PKG_CLEVEL} \
+ -T ${PKG_CTHREADS} \
+ -r ${_PKG_WORLDSTAGE} \
+ -o ${.OBJDIR}
+
+_PKG_CREATE= ${PKG_CMD} ${_PKG_ARGS} create ${_PKG_CREATE_ARGS}
+
+# If WORLDPACKAGE is set, we're building a world package.
+.if defined(WORLDPACKAGE)
+
+# Default to using the same UCL file for all subpackages, since the vast
+# majority of packages are built this way.
+UCLSRC?= ${WORLDPACKAGE}.ucl
+
+# Nearly all packages have a dbg and man subpackage, so enable that by default.
+SUBPACKAGES?= dbg man
+
+# This lets the caller use constructs like SUBPACKAGES.${MK_FOO}+= foo
+_SUBPACKAGES= ${SUBPACKAGES} ${SUBPACKAGES.yes} ${SUBPACKAGES.yes.yes}
+
+# Remove the dbg subpackage if debug files are disabled.
+.if ${MK_DEBUG_FILES} == "no"
+_SUBPACKAGES:= ${_SUBPACKAGES:Ndbg}
+. if defined(COMPAT_PKGS)
+COMPAT_PKGS:= ${COMPAT_PKGS:Ndbg}
+. endif # defined(COMPAT_PKGS)
+.endif # ${MK_DEBUG_FILES} == "no"
+
+# Remove the man subpackage if split man packages are disabled.
+.if ${MK_MANSPLITPKG} == "no"
+_SUBPACKAGES:= ${_SUBPACKAGES:Nman}
+.endif # ${MK_MANSPLITPKG} == "no"
+
+# Add the base package, unless there isn't one, which can happen with
+# static library packages.
+.if !defined(PKG_NO_BASE)
+_ALLPACKAGES= ${WORLDPACKAGE}
+.endif
+
+# Add basic subpackages.
+.for _subpackage in ${_SUBPACKAGES}
+_ALLPACKAGES+= ${_subpackage:S/^/${WORLDPACKAGE}-/}
+.endfor # _subpackage in ${_SUBPACKAGES}
+
+# Add libcompat subpackages.
+.for LIBCOMPAT libcompat in ${_ALL_LIBCOMPATS_libcompats}
+. if ${MK_LIB${LIBCOMPAT}} != "no"
+
+# For the base package...
+. if ${COMPAT_PKG:Uno} != "no"
+_ALLPACKAGES+= ${WORLDPACKAGE}-lib${libcompat}
+. endif
+
+# And for subpackages.
+. for _pkg in ${COMPAT_PKGS}
+# lib is special, because it gets -lib32, not -lib-lib32.
+. if ${_pkg} == "lib"
+_ALLPACKAGES+= ${WORLDPACKAGE}-lib${libcompat}
+. else
+_ALLPACKAGES+= ${WORLDPACKAGE}-${_pkg}-lib${libcompat}
+. endif
+. endfor
+
+. endif # ${MK_LIB${LIBCOMPAT}} != "no"
+.endfor
+
+CLEANFILES+= *.pkgucl *.ucl.in *.plist *.pkg
+
+all: .PHONY
+
+. for _pkg in ${_ALLPACKAGES}
+_pkgfullname:= ${PKG_NAME_PREFIX}-${_pkg}
+_pkgfilename:= ${_pkgfullname}-${PKG_VERSION}.pkg
+
+all: ${_pkgfilename}
+
+${_pkgfilename}: ${_pkgfullname}.pkgucl ${_pkg}.plist
+ # We should never create an empty package; this means we intended to
+ # build the package, but we didn't build the things which are supposed
+ # to be in the package, which means something went wrong somewhere.
+ # If you hit this check when building, it probably means a package is
+ # not properly excluded in packages/Makefile based on src.conf options.
+ @if [ "$$(grep -vc '^@dir' "${.ALLSRC:M*.plist}")" -eq 0 ]; \
+ then \
+ printf >&2 'ERROR: Refusing to build empty package %s from %s\n' \
+ "${.TARGET}" "${.ALLSRC:M*.plist}"; \
+ exit 1; \
+ fi
+ ${_PKG_CREATE} -M ${.ALLSRC:M*.pkgucl} -p ${.ALLSRC:M*.plist}
+
+${_pkgfullname}.ucl.in: ${UCLSRC.${_pkg}:U${UCLSRC:U${_pkg}.ucl}}
+ @echo 'Generating ${.TARGET} from ${.ALLSRC}'
+ @cp ${.ALLSRC} ${.TARGET}
+ @echo >>${.TARGET} 'name = "${PKG_NAME_PREFIX}-${_pkg}"'
+ @echo >>${.TARGET} 'origin = "base/${PKG_NAME_PREFIX}-${_pkg}"'
+ @echo >>${.TARGET} 'categories [ "base" ]'
+ @echo >>${.TARGET} 'prefix = "/"'
+ @echo >>${.TARGET} 'version = "${PKG_VERSION}"'
+ @echo >>${.TARGET} 'maintainer = "${PKG_MAINTAINER}"'
+ @echo >>${.TARGET} 'www = "${PKG_WWW}"'
+.if defined(PKG_VITAL.${_pkg})
+ @echo >>${.TARGET} 'vital = true'
+.endif
+ @echo >>${.TARGET} 'licenselogic = "${PKG_LICENSELOGIC}"'
+ @echo >>${.TARGET} 'licenses ['
+.for _license in ${PKG_LICENSES}
+ # When a value contains spaces and is quoted (e.g., "X WITH Y"),
+ # make preserves the quotes in the value, so we need to strip them.
+ @echo >>${.TARGET} ' "${_license:S/"//g}",'
+.endfor
+ @echo >>${.TARGET} ']'
+ @echo >>${.TARGET} 'annotations {'
+.for _annotation in ${PKG_ANNOTATIONS}
+ @echo >>${.TARGET} ' ${_annotation} = "${PKG_ANNOTATIONS.${_annotation}}"'
+.endfor
+ @echo >>${.TARGET} '}'
+.if defined(PKG_DEPS.${_pkg})
+ @echo >>${.TARGET} 'deps {'
+. for _dep in ${PKG_DEPS.${_pkg}}
+ @echo >>${.TARGET} ' "${_dep}" {'
+ @echo >>${.TARGET} ' "origin" = "base/${PKG_NAME_PREFIX}-${_dep}"'
+ @echo >>${.TARGET} ' "version" = "${PKG_VERSION}"'
+ @echo >>${.TARGET} ' },'
+. endfor
+ @echo >>${.TARGET} '}'
+.endif
+
+${_pkgfullname}.pkgucl: ${_pkgfullname}.ucl.in
+ ${FLUA} ${SRCTOP}/release/packages/generate-ucl.lua \
+ ${_UCLVARS} \
+ PKGNAME "${_pkg}" \
+ PKGGENNAME "${WORLDPACKAGE}" \
+ SRCDIR "${.CURDIR}" \
+ "${.ALLSRC:M*.ucl.in}" ${.TARGET}
+
+. endfor # _pkg in ${_ALLPACKAGES}
+.endif # defined(WORLDPACKAGE)
+
+# Stage the packages from objdir into repodir.
+
+stagepackages: .PHONY
+ mkdir -p ${_STAGEDIR}
+ cp ${_ALLPACKAGES:S/^/${PKG_NAME_PREFIX}-/:S/$/-${PKG_VERSION}.pkg/} \
+ ${_STAGEDIR}
+
+.SUFFIXES: .plist .ucl .pkg
+.PATH: ${_PKG_WORLDSTAGE}
+
+.include <bsd.obj.mk>
diff --git a/share/mk/bsd.pkg.pre.mk b/share/mk/bsd.pkg.pre.mk
new file mode 100644
--- /dev/null
+++ b/share/mk/bsd.pkg.pre.mk
@@ -0,0 +1,92 @@
+# SPDX-License-Identifier: ISC
+#
+# Copyright (c) 2026 Lexi Winter <ivy@FreeBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+# Variable definitions used by bsd.pkg.mk. All of these may be overridden:
+#
+# PKG_CMD The pkg command. [pkg]
+# PKG_FORMAT The archive format used when creating packages. One of
+# "tzst", "txz", "tbz", "tgz" or "tar". [tzst]
+# PKG_LEVEL The compression level for compressed package formats.
+# The meaning depends on the exact format, or one of the
+# special values "fast" or "best" may be used. [-1]
+# PKG_CTHREADS How many threads to use when creating compressed packages.
+# Set to "0" or "auto" to auto-detect based on the number
+# of CPUs. [0]
+# PKG_ABI_FILE The file used to determine the ABI to use when creating
+# packages. This should refer to the system being built,
+# not the host system. [${WSTAGEDIR}/usr/bin/uname}
+#
+#
+# Package metadata:
+#
+# PKG_NAME_PREFIX The prefix to use for package names. [FreeBSD]
+# PKG_MAINTAINER The package maintainer. [re@FreeBSD.org]
+# PKG_WWW The package website. [https://www.FreeBSD.org]
+#
+#
+# Only if _PKG_NEED_ABI is defined:
+#
+# PKG_ABI The ABI string to use when creating packages. [autodetected]
+#
+.if !target(__<bsd.pkg.pre.mk>__)
+__<bsd.pkg.pre.mk>__: .NOTMAIN
+
+# How we invoke pkg.
+PKG_CMD?= pkg
+PKG_FORMAT?= tzst
+PKG_LEVEL?= -1
+PKG_CLEVEL= ${"${PKG_FORMAT:Mtar}" != "":?:-l ${PKG_LEVEL}}
+PKG_CTHREADS?= 0
+PKG_ABI_FILE?= ${WSTAGEDIR}/usr/bin/uname
+
+# These are used in the generated packages, and can be overridden for
+# downstream builds.
+PKG_NAME_PREFIX?= FreeBSD
+PKG_MAINTAINER?= re@FreeBSD.org
+PKG_WWW?= https://www.FreeBSD.org
+
+# These can be set per-package.
+PKG_LICENSELOGIC?= single
+PKG_LICENSES?= BSD2CLAUSE
+PKG_SETS?= optional optional-jail
+
+# The set annotation may be removed in the future, so don't rely on
+# it being here.
+PKG_ANNOTATIONS+= set
+PKG_ANNOTATIONS.set= ${PKG_SETS:ts,:[*]}
+
+.endif # !target(__<bsd.pkg.pre.mk>__)
+
+# This always needs to be evaluated since something may have previously
+# included us without setting _PKG_NEED_ABI.
+.if defined(_PKG_NEED_ABI)
+
+. if !defined(PKG_ABI)
+PKG_ABI!= ${PKG_CMD} -o ABI_FILE=${PKG_ABI_FILE} config ABI
+. endif
+
+# Usually SRCRELDATE comes from Makefile.inc1, but if it's missing,
+# find it ourselves.
+. if !defined(PKG_OSVERSION)
+. if defined(SRCRELDATE)
+PKG_OSVERSION= ${SRCRELDATE}
+. else
+PKG_OSVERSION!= awk '/^\#define[[:space:]]*__FreeBSD_version/ { print $$3 }' \
+ ${SRCTOP}/sys/sys/param.h
+. endif
+. endif
+
+.endif # defined(_PKG_NEED_ABI)
diff --git a/share/mk/bsd.subdir.mk b/share/mk/bsd.subdir.mk
--- a/share/mk/bsd.subdir.mk
+++ b/share/mk/bsd.subdir.mk
@@ -45,14 +45,14 @@
cleanobj depend distribute files includes installconfig \
installdirs \
installfiles installincludes print-dir realinstall \
- maninstall manlint ${_obj} objlink tags \
+ maninstall manlint ${_obj} objlink stagepackages tags \
# Described above.
STANDALONE_SUBDIR_TARGETS+= \
all-man buildconfig buildfiles buildincludes check checkdpadd \
clean cleandepend cleandir cleanilinks cleanobj files includes \
installconfig installdirs installincludes installfiles print-dir \
- maninstall manlint obj objlink
+ maninstall manlint obj objlink stagepackages
.include <bsd.init.mk>
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Apr 22, 12:34 AM (20 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31924022
Default Alt Text
D56087.largetrue.diff (133 KB)
Attached To
Mode
D56087: packages: Convert world to a subdir build
Attached
Detach File
Event Timeline
Log In to Comment