Page MenuHomeFreeBSD

D56087.largetrue.diff
No OneTemporary

D56087.largetrue.diff

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

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)

Event Timeline