Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144469121
D20394.1774808588.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
83 KB
Referenced Files
None
Subscribers
None
D20394.1774808588.diff
View Options
Index: Mk/Scripts/actual-package-depends.sh
===================================================================
--- Mk/Scripts/actual-package-depends.sh
+++ Mk/Scripts/actual-package-depends.sh
@@ -69,6 +69,66 @@
fi
}
+inject_base_dep() {
+ ORIGIN="${1}"
+ NAME=$(make -C ${PORTSDIR}/${ORIGIN} -V PKGBASE)
+ VERSION=$(make -C ${PORTSDIR}/${ORIGIN} -V PKGVERSION)
+ echo "\"${NAME}\": {origin: \"${ORIGIN}\", version: \"$VERSION\"}"
+}
+
for lookup; do
+ # Ugly, but currently we cannot install BASE packages into read-only poudriere base
+ # This allows us to still inject depends on os/* packages
+ case ${lookup} in
+ /COPYRIGHT)
+ inject_base_dep "os/userland-base"
+ continue
+ ;;
+ /bin/sh)
+ inject_base_dep "os/userland-bin"
+ continue
+ ;;
+ /boot/defaults/loader.conf)
+ inject_base_dep "os/userland-boot"
+ continue
+ ;;
+ /libexec/ld-elf.so.1)
+ inject_base_dep "os/userland-base-bootstrap"
+ continue
+ ;;
+ /etc/rc)
+ inject_base_dep "os/userland-conf"
+ continue
+ ;;
+ /usr/lib/debug/bin/sh.debug)
+ inject_base_dep "os/userland-debug"
+ continue
+ ;;
+ /usr/share/man/man1/sh.1.gz)
+ inject_base_dep "os/userland-docs"
+ continue
+ ;;
+ /usr/lib/libelf.so)
+ inject_base_dep "os/userland-lib"
+ continue
+ ;;
+ /usr/lib32/libc.so)
+ inject_base_dep "os/userland-lib32"
+ continue
+ ;;
+ /rescue/sh)
+ inject_base_dep "os/userland-rescue"
+ continue
+ ;;
+ /sbin/init)
+ inject_base_dep "os/userland-sbin"
+ continue
+ ;;
+ /usr/tests/README)
+ inject_base_dep "os/userland-tests"
+ continue
+ ;;
+ *) ;;
+ esac
${PKG_BIN} query "\"%n\": {origin: \"%o\", version: \"%v\"}" "$(find_dep ${lookup})" || :
done
Index: Mk/Scripts/create-manifest.sh
===================================================================
--- Mk/Scripts/create-manifest.sh
+++ Mk/Scripts/create-manifest.sh
@@ -7,14 +7,14 @@
. "${dp_SCRIPTSDIR}/functions.sh"
-validate_env dp_ACTUAL_PACKAGE_DEPENDS dp_CATEGORIES dp_COMMENT \
+validate_env dp_ABISTRING dp_ACTUAL_PACKAGE_DEPENDS dp_CATEGORIES dp_COMMENT \
dp_COMPLETE_OPTIONS_LIST dp_DEPRECATED dp_DESCR dp_EXPIRATION_DATE \
dp_GROUPS dp_LICENSE dp_LICENSE_COMB dp_MAINTAINER dp_METADIR \
dp_NO_ARCH dp_PKGBASE dp_PKGDEINSTALL dp_PKGINSTALL dp_PKGMESSAGES \
dp_PKGORIGIN dp_PKGPOSTDEINSTALL dp_PKGPOSTINSTALL dp_PKGPOSTUPGRADE \
dp_PKGPREDEINSTALL dp_PKGPREINSTALL dp_PKGPREUPGRADE dp_PKGUPGRADE \
dp_PKGVERSION dp_PKG_BIN dp_PKG_IGNORE_DEPENDS dp_PKG_NOTES \
- dp_PORT_OPTIONS dp_PREFIX dp_USERS dp_WWW
+ dp_PORT_OPTIONS dp_PREFIX dp_USERS dp_WWW dp_VITAL
[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_CREATE_MANIFEST}" ] && set -x
@@ -57,8 +57,14 @@
[ -z "${dp_LICENSE}" ] || echo "licenses: [ ${dp_LICENSE} ]"
[ -z "${dp_USERS}" ] || echo "users: [ ${dp_USERS} ]"
[ -z "${dp_GROUPS}" ] || echo "groups: [ ${dp_GROUPS} ]"
-[ -n "${dp_NO_ARCH}" ] && echo "arch : $(${dp_PKG_BIN} config abi | tr '[:upper:]' '[:lower:]' | cut -d: -f1,2):*"
-[ -n "${dp_NO_ARCH}" ] && echo "abi : $(${dp_PKG_BIN} config abi | cut -d: -f1,2):*"
+if [ -n "${dp_NO_ARCH}" -a -z "${dp_ABISTRING}" ] ; then
+ echo "arch : $(${dp_PKG_BIN} config abi | tr '[:upper:]' '[:lower:]' | cut -d: -f1,2):*"
+ echo "abi : $(${dp_PKG_BIN} config abi | cut -d: -f1,2):*"
+elif [ -n "${dp_ABISTRING}" ] ; then
+ echo "arch : $(echo ${dp_ABISTRING} | tr '[:upper:]' '[:lower:]')"
+ echo "abi : $(echo ${dp_ABISTRING})"
+fi
+[ -n "${dp_VITAL}" ] && echo "vital: true"
# Then the key/values sections
echo "deps: { "
Index: Mk/bsd.commands.mk
===================================================================
--- Mk/bsd.commands.mk
+++ Mk/bsd.commands.mk
@@ -22,6 +22,7 @@
BZCAT?= /usr/bin/bzcat
BZIP2_CMD?= /usr/bin/bzip2
CAT?= /bin/cat
+CHFLAGS?= /bin/chflags
CHGRP?= /usr/bin/chgrp
CHMOD?= /bin/chmod
CHOWN?= /usr/sbin/chown
Index: Mk/bsd.port.mk
===================================================================
--- Mk/bsd.port.mk
+++ Mk/bsd.port.mk
@@ -2533,7 +2533,7 @@
deskutils devel docs dns editors elisp emulators enlightenment finance french ftp \
games geography german gnome gnustep graphics hamradio haskell hebrew hungarian \
ipv6 irc japanese java kde ${_KDE_CATEGORIES_SUPPORTED} kld korean lang linux lisp \
- mail mate math mbone misc multimedia net net-im net-mgmt net-p2p news \
+ mail mate math mbone misc multimedia net net-im net-mgmt net-p2p news os \
palm parallel pear perl5 plan9 polish portuguese ports-mgmt \
print python ruby rubygems russian \
scheme science security shells spanish sysutils \
@@ -4211,7 +4211,7 @@
for lib in ${LIB_DEPENDS:C/\:.*//}; do \
depfiles="$$depfiles `${SETENV} LIB_DIRS="${LIB_DIRS}" LOCALBASE="${LOCALBASE}" ${SH} ${SCRIPTSDIR}/find-lib.sh $${lib}`" ; \
done ; \
- ${SETENV} PKG_BIN="${PKG_BIN}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS:C/(.*)\:.*/"\1"/}
+ ${SETENV} PKG_BIN="${PKG_BIN}" PORTSDIR="${PORTSDIR}" ${SH} ${SCRIPTSDIR}/actual-package-depends.sh $${depfiles} ${RUN_DEPENDS:C/(.*)\:.*/"\1"/}
PKG_NOTES_ENV?=
.for note in ${PKG_NOTES}
@@ -4221,6 +4221,7 @@
create-manifest:
@${SETENV} \
dp_SCRIPTSDIR='${SCRIPTSDIR}' \
+ dp_ABISTRING='${PKG_ABISTRING}' \
dp_ACTUAL_PACKAGE_DEPENDS='${ACTUAL-PACKAGE-DEPENDS}' \
dp_CATEGORIES='${CATEGORIES:u:S/$/,/}' \
dp_COMMENT=${COMMENT:Q} \
@@ -4254,6 +4255,7 @@
dp_PREFIX='${PREFIX}' \
dp_USERS='${USERS:u:S/$/,/}' \
dp_WWW='${WWW}' \
+ dp_VITAL='${PKGVITAL}' \
${PKG_NOTES_ENV} \
${SH} ${SCRIPTSDIR}/create-manifest.sh
Index: os/Makefile
===================================================================
--- /dev/null
+++ os/Makefile
@@ -0,0 +1,30 @@
+# $FreeBSD$
+#
+
+ COMMENT = Operating System Ports
+
+ SUBDIR += buildkernel
+ SUBDIR += buildkernel-debug
+ SUBDIR += buildworld
+ SUBDIR += kernel
+ SUBDIR += kernel-symbols
+ SUBDIR += kernel-debug
+ SUBDIR += kernel-debug-symbols
+ SUBDIR += src
+ SUBDIR += userland
+ SUBDIR += userland-base
+ SUBDIR += userland-base-bootstrap
+ SUBDIR += userland-bin
+ SUBDIR += userland-boot
+ SUBDIR += userland-conf
+ SUBDIR += userland-debug
+ SUBDIR += userland-devtools
+ SUBDIR += userland-docs
+ SUBDIR += userland-lib
+ SUBDIR += userland-lib32
+ SUBDIR += userland-lib32-development
+ SUBDIR += userland-rescue
+ SUBDIR += userland-sbin
+ SUBDIR += userland-tests
+
+.include <bsd.port.subdir.mk>
Index: os/Makefile.common
===================================================================
--- /dev/null
+++ os/Makefile.common
@@ -0,0 +1,26 @@
+BASEPKG_SRCDIR?= /usr/src
+NEWVERS= ${BASEPKG_SRCDIR}/sys/conf/newvers.sh
+BASEPKG_VERSION= ${BASEPKG_SRCDIR}/sys/conf/package-version
+
+.if exists(${BASEPKG_SRCDIR}/Makefile)
+SRCVERSION!= eval $$(egrep '^(REVISION)=' ${NEWVERS}) && echo $${REVISION}
+. if exists(${BASEPKG_VERSION})
+# We have a manually set version string, lets use it
+MANUALVER!= cat ${BASEPKG_VERSION}
+BASEPKG_PORTVERSION= ${SRCVERSION}.${MANUALVER}
+. else
+# Get the version from BASEPKG_SRCDIR dynamically
+SRCDATE!= stat -f %Sm -t "%Y%m%d%H%M%S" ${BASEPKG_SRCDIR}
+BASEPKG_PORTVERSION= ${SRCVERSION}.${SRCDATE}
+. endif
+.else
+IGNORE= Missing system sources in ${BASEPKG_SRCDIR}
+.endif
+
+.if defined(BASEPKG_ABISTRING)
+PKG_ABISTRING= ${BASEPKG_ABISTRING}
+.else
+ABIVERSION!= eval $$(egrep '^(REVISION)=' ${NEWVERS}) && echo $${REVISION} | cut -d '.' -f 1
+PKG_ABISTRING= FreeBSD:${ABIVERSION}:${ARCH}
+.endif
+
Index: os/buildkernel-debug/Makefile
===================================================================
--- /dev/null
+++ os/buildkernel-debug/Makefile
@@ -0,0 +1,84 @@
+# $FreeBSD$
+
+PORTNAME= buildkernel-debug
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= Distribution tarball of debug kernel for packaging
+
+SRCDIR?=/usr/src
+.if !exists(${SRCDIR}/Makefile)
+BUILD_DEPENDS= ${SRCDIR}/Makefile:os/src
+.endif
+
+USES= os:flavors
+
+PREFIX=/
+WITHOUT_FBSD10_FIX= yes
+WRKSRC=${SRCDIR}
+PLIST_FILES+= ${OS_KERNDIST_DEBUG}
+LOCAL_SDIR?= /usr/local_source
+NEED_ROOT= yes
+.if exists(${LOCAL_SDIR}/${PORTNAME})
+WRKSRC= ${LOCAL_SDIR}/${PORTNAME}
+.endif
+
+# Set default debug config
+.if defined(${DEBUGKERNCONF})
+KERNCONF= ${DEBUGKERNCONF}
+.else
+KERNCONF= GENERIC
+.endif
+
+.if defined(_MAKE_JOBS_NUMBER)
+JOBFLAG= -j ${_MAKE_JOBS_NUMBER}
+.else
+JOBFLAG= -j ${_SMP_CPUS}
+.endif
+
+.if defined(__MAKE_CONF)
+MCONF= __MAKE_CONF=${__MAKE_CONF}
+.else
+MCONF=
+.endif
+
+.include "../buildworld/Makefile.options"
+.include "../buildworld/Makefile.options.desc"
+
+.include <bsd.port.pre.mk>
+
+.for var in ${OPTIONS_DEFINE}
+.if !${PORT_OPTIONS:M${var}}
+MFLAGS+= WITHOUT_${var}=YES
+.else
+MFLAGS+= WITH_${var}=YES
+.endif
+.endfor
+
+check-sanity:
+
+do-build:
+ cd ${WRKSRC} && ${SETENV} -i MAKEOBJDIRPREFIX=${WRKDIR} make ${JOBFLAG} ${MCONF} ${KERNEL_MAKE_FLAGS} \
+ KERNCONF=${KERNCONF} \
+ ${MFLAGS} \
+ buildkernel
+
+do-install:
+ @${MKDIR} ${STAGEDIR}/kernel-debug
+ @${MKDIR} ${STAGEDIR}/usr/dist
+ cd ${WRKSRC} && ${SETENV} -i MAKEOBJDIRPREFIX=${WRKDIR} make ${JOBFLAG} ${MCONF} ${KERNEL_MAKE_FLAGS} \
+ KERNCONF=${KERNCONF} \
+ ${MFLAGS} \
+ DESTDIR=${STAGEDIR}/kernel-debug \
+ installkernel
+ ${MV} ${STAGEDIR}/kernel-debug/boot/kernel ${STAGEDIR}/kernel-debug/boot/kernel-debug
+ ${TAR} cvJf ${STAGEDIR}/${OS_KERNDIST_DEBUG} -C ${STAGEDIR}/kernel-debug .
+ ${CHFLAGS} -R noschg ${STAGEDIR}/kernel-debug
+ ${RM} -rf ${STAGEDIR}/kernel-debug
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/buildkernel-debug/pkg-descr
===================================================================
--- /dev/null
+++ os/buildkernel-debug/pkg-descr
@@ -0,0 +1,8 @@
+This FreeBSD OS port performs the 'buildkernel' portion of the base build,
+using the default KERNCONF with WITNESS and other debugging explicitly enabled.
+The resulting kernel is packaged and stored as a .txz file in /usr/dist/.
+
+This .txz file is used by other OS ports in the packaging process for the
+kernel. This package does not need to be installed for runtime.
+
+WWW: https://www.freebsd.org
Index: os/buildkernel/Makefile
===================================================================
--- /dev/null
+++ os/buildkernel/Makefile
@@ -0,0 +1,83 @@
+# $FreeBSD$
+
+PORTNAME= buildkernel
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= Distribution tarball of kernel for packaging
+
+SRCDIR?=/usr/src
+.if !exists(${SRCDIR}/Makefile)
+BUILD_DEPENDS= ${SRCDIR}/Makefile:os/src
+.endif
+
+USES= os:flavors
+
+PREFIX=/
+WITHOUT_FBSD10_FIX= yes
+WRKSRC=${SRCDIR}
+PLIST_FILES+= ${OS_KERNDIST}
+LOCAL_SDIR?= /usr/local_source
+NEED_ROOT= yes
+.if exists(${LOCAL_SDIR}/${PORTNAME})
+WRKSRC= ${LOCAL_SDIR}/${PORTNAME}
+.endif
+
+# Set default non-debug config for HEAD / Other
+.if exists(${SRCDIR}/sys/${ARCH}/conf/GENERIC-NODEBUG)
+KERNCONF?= GENERIC-NODEBUG
+.else
+KERNCONF?= GENERIC
+.endif
+
+.if defined(_MAKE_JOBS_NUMBER)
+JOBFLAG= -j ${_MAKE_JOBS_NUMBER}
+.else
+JOBFLAG= -j ${_SMP_CPUS}
+.endif
+
+.if defined(__MAKE_CONF)
+MCONF= __MAKE_CONF=${__MAKE_CONF}
+.else
+MCONF=
+.endif
+
+.include "../buildworld/Makefile.options"
+.include "../buildworld/Makefile.options.desc"
+
+.include <bsd.port.pre.mk>
+
+.for var in ${OPTIONS_DEFINE}
+.if !${PORT_OPTIONS:M${var}}
+MFLAGS+= WITHOUT_${var}=YES
+.else
+MFLAGS+= WITH_${var}=YES
+.endif
+.endfor
+
+check-sanity:
+
+do-build:
+ cd ${WRKSRC} && ${SETENV} -i MAKEOBJDIRPREFIX=${WRKDIR} make ${JOBFLAG} ${MCONF} ${KERNEL_MAKE_FLAGS} \
+ KERNCONF=${KERNCONF} \
+ ${MFLAGS} \
+ buildkernel
+
+do-install:
+ @${MKDIR} ${STAGEDIR}/kernel
+ @${MKDIR} ${STAGEDIR}/usr/dist
+ cd ${WRKSRC} && ${SETENV} -i MAKEOBJDIRPREFIX=${WRKDIR} make ${JOBFLAG} ${MCONF} ${KERNEL_MAKE_FLAGS} \
+ KERNCONF=${KERNCONF} \
+ ${MFLAGS} \
+ DESTDIR=${STAGEDIR}/kernel \
+ installkernel
+ ${TAR} cvJf ${STAGEDIR}/${OS_KERNDIST} -C ${STAGEDIR}/kernel .
+ ${CHFLAGS} -R noschg ${STAGEDIR}/kernel
+ ${RM} -rf ${STAGEDIR}/kernel
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/buildkernel/pkg-descr
===================================================================
--- /dev/null
+++ os/buildkernel/pkg-descr
@@ -0,0 +1,7 @@
+This FreeBSD OS port performs the 'buildkernel' portion of the base build.
+The resulting kernel is packaged and stored as a .txz file in /usr/dist/.
+
+This .txz file is used by other OS ports in the packaging process for the
+kernel. This package does not need to be installed for runtime.
+
+WWW: https://www.freebsd.org
Index: os/buildworld/Makefile
===================================================================
--- /dev/null
+++ os/buildworld/Makefile
@@ -0,0 +1,93 @@
+# $FreeBSD$
+
+PORTNAME= buildworld
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= Distribution tarball of world for packaging
+
+BUILD_DEPENDS= ${SRCDIR}/Makefile:os/src
+
+USES= os:flavors
+
+PREFIX=/
+SRCDIR?= /usr/src
+WRKSRC=${SRCDIR}
+WITHOUT_FBSD10_FIX= yes
+LOCAL_SDIR?= /usr/local_source
+NEED_ROOT= yes
+.if exists(${LOCAL_SDIR}/${PORTNAME})
+WRKSRC= ${LOCAL_SDIR}/${PORTNAME}
+.endif
+
+.include "Makefile.options"
+.include "Makefile.options.desc"
+
+.include <bsd.port.pre.mk>
+
+.for var in ${OPTIONS_DEFINE}
+.if !${PORT_OPTIONS:M${var}}
+MFLAGS+= WITHOUT_${var}=YES
+.else
+MFLAGS+= WITH_${var}=YES
+.endif
+.endfor
+
+.if defined(_MAKE_JOBS_NUMBER)
+JOBFLAG= -j ${_MAKE_JOBS_NUMBER}
+.else
+JOBFLAG= -j ${_SMP_CPUS}
+.endif
+
+.if defined(__MAKE_CONF)
+MCONF= __MAKE_CONF=${__MAKE_CONF}
+.else
+MCONF=
+.endif
+
+PLIST_FILES+= ${OS_WORLDDIST}
+
+check-sanity:
+
+do-build:
+ cd ${WRKSRC} && ${SETENV} -i MAKEOBJDIRPREFIX=${WRKDIR} make ${JOBFLAG} ${MCONF} ${WORLD_MAKE_FLAGS} \
+ ${MFLAGS} \
+ buildworld
+
+do-install:
+ @${MKDIR} ${STAGEDIR}/world
+ @${MKDIR} ${STAGEDIR}/usr/dist
+ cd ${WRKSRC} && ${SETENV} -i MAKEOBJDIRPREFIX=${WRKDIR} make ${JOBFLAG} ${MCONF} ${WORLD_MAKE_FLAGS} \
+ ${MFLAGS} \
+ DESTDIR=${STAGEDIR}/world \
+ installworld
+ cd ${WRKSRC} && ${SETENV} -i MAKEOBJDIRPREFIX=${WRKDIR} make ${JOBFLAG} ${MCONF} ${WORLD_MAKE_FLAGS} \
+ ${MFLAGS} \
+ DESTDIR=${STAGEDIR}/world \
+ distribution
+ if [ -e "${PORTSDIR}/local_source/trueos-manifest.json" ] ; then \
+ ${INSTALL_SCRIPT} ${FILESDIR}/trueos-manifest.json ${STAGEDIR}/world/var/db/trueos-manifest.json ; \
+ elif [ -n "${TRUEOS_MANIFEST}" -a -e "${TRUEOS_MANIFEST}" ] ; then \
+ ${INSTALL_SCRIPT} ${TRUEOS_MANIFEST} ${STAGEDIR}/world/var/db/trueos-manifest.json ; \
+ fi
+ ${TAR} cvJf ${STAGEDIR}/${OS_WORLDDIST} -C ${STAGEDIR}/world .
+ ${CHFLAGS} -R noschg ${STAGEDIR}/world
+ ${RM} -rf ${STAGEDIR}/world
+
+clean:
+ @if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/buildworld/Makefile.options
===================================================================
--- /dev/null
+++ os/buildworld/Makefile.options
@@ -0,0 +1,275 @@
+
+OPTIONS_DEFINE= ACCT \
+ ACPI \
+ AMD \
+ APM \
+ AT \
+ ASSERT_DEBUG \
+ ATM \
+ AUDIT \
+ AUTHPF \
+ AUTOFS \
+ BHYVE \
+ BINUTILS \
+ BINUTILS_BOOTSTRAP \
+ BLACKLIST \
+ BLUETOOTH \
+ BOOT \
+ BOOTPARAMD \
+ BOOTPD \
+ BSD_CPIO \
+ BSD_CRTBEGIN \
+ BSD_GREP \
+ BSDINSTALL \
+ BSNMP \
+ BZIP2 \
+ CALENDAR \
+ CAPSICUM \
+ CASPER \
+ CCD \
+ CDDL \
+ CPP \
+ CROSS_COMPILER \
+ CRYPT \
+ CUSE \
+ CXX \
+ CXGBETOOL \
+ DIALOG \
+ DICT \
+ DMAGENT \
+ DYNAMICROOT \
+ EE \
+ EFI \
+ ELFTOOLCHAIN_BOOTSTRAP \
+ EXAMPLES \
+ FDT \
+ FILE \
+ FINGER \
+ FLOPPY \
+ FMTREE \
+ FP_LIBC \
+ FREEBSD_UPDATE \
+ FTP \
+ GAMES \
+ GCOV \
+ GDB \
+ GNU_DIFF \
+ GNU_GREP \
+ GPIO \
+ HAST \
+ HTML \
+ HYPERV \
+ ICONV \
+ INET \
+ INET6 \
+ INETD \
+ IPFILTER \
+ IPFW \
+ ISCSI \
+ JAIL \
+ KDUMP \
+ KVM \
+ LDNS \
+ LDNS_UTILS \
+ LEGACY_CONSOLE \
+ LIB32 \
+ LIBPTHREAD \
+ LIBTHR \
+ LLVM_COV \
+ LOADER_EFI_SECUREBOOT \
+ LOADER_GELI \
+ LOADER_OFW \
+ LOADER_UBOOT \
+ LOCALES \
+ LOCATE \
+ LPR \
+ LS_COLORS \
+ LZMA_SUPPORT \
+ MAIL \
+ MAILWRAPPER \
+ MAKE \
+ META_MODE \
+ MLX5TOOL \
+ NDIS \
+ NETCAT \
+ NETGRAPH \
+ NLS_CATALOGS \
+ NS_CACHING \
+ NTP \
+ NVME \
+ OFED \
+ PC_SYSINSTALL \
+ PF \
+ PKGBOOTSTRAP \
+ PMC \
+ PORTSNAP \
+ PPP \
+ QUOTAS \
+ RADIUS_SUPPORT \
+ RBOOTD \
+ REPRODUCIBLE_BUILD \
+ RESCUE \
+ ROUTED \
+ SENDMAIL \
+ SERVICESDB \
+ SETUID_LOGIN \
+ SHAREDOCS \
+ SOURCELESS_HOST \
+ SOURCELESS_UCODE \
+ SVNLITE \
+ SYSCONS \
+ SYSTEM_COMPILER \
+ SYSTEM_LINKER \
+ TALK \
+ TCP_WRAPPERS \
+ TCSH \
+ TELNET \
+ TEXTPROC \
+ TFTP \
+ UNBOUND \
+ USB \
+ UTMPX \
+ VI \
+ VT \
+ WIRELESS \
+ WPA_SUPPLICANT_EAPOL \
+ ZFS \
+ LOADER_ZFS \
+ ZONEINFO
+
+OPTIONS_DEFAULT= ACCT \
+ ACPI \
+ AMD \
+ APM \
+ AT \
+ ATM \
+ AUDIT \
+ AUTHPF \
+ AUTOFS \
+ BHYVE \
+ BINUTILS \
+ BINUTILS_BOOTSTRAP \
+ BLACKLIST \
+ BLUETOOTH \
+ BOOT \
+ BOOTPARAMD \
+ BOOTPD \
+ BSD_CPIO \
+ BSD_CRTBEGIN \
+ BSD_GREP \
+ BSDINSTALL \
+ BSNMP \
+ BZIP2 \
+ CALENDAR \
+ CAPSICUM \
+ CASPER \
+ CCD \
+ CDDL \
+ CPP \
+ CROSS_COMPILER \
+ CRYPT \
+ CUSE \
+ CXX \
+ CXGBETOOL \
+ DIALOG \
+ DICT \
+ DMAGENT \
+ DYNAMICROOT \
+ EE \
+ EFI \
+ ELFTOOLCHAIN_BOOTSTRAP \
+ EXAMPLES \
+ FDT \
+ FILE \
+ FINGER \
+ FLOPPY \
+ FMTREE \
+ FP_LIBC \
+ FREEBSD_UPDATE \
+ FTP \
+ GAMES \
+ GCOV \
+ GDB \
+ GNU_DIFF \
+ GNU_GREP \
+ GPIO \
+ HAST \
+ HTML \
+ HYPERV \
+ ICONV \
+ INET \
+ INET6 \
+ INETD \
+ IPFILTER \
+ IPFW \
+ ISCSI \
+ JAIL \
+ KDUMP \
+ KVM \
+ LDNS \
+ LDNS_UTILS \
+ LEGACY_CONSOLE \
+ LIB32 \
+ LIBPTHREAD \
+ LIBTHR \
+ LLVM_COV \
+ LOADER_GELI \
+ LOADER_OFW \
+ LOADER_UBOOT \
+ LOCALES \
+ LOCATE \
+ LPR \
+ LS_COLORS \
+ LZMA_SUPPORT \
+ MAIL \
+ MAILWRAPPER \
+ MAKE \
+ MLX5TOOL \
+ NDIS \
+ NETCAT \
+ NETGRAPH \
+ NLS_CATALOGS \
+ NS_CACHING \
+ NTP \
+ NVME \
+ OFED \
+ PC_SYSINSTALL \
+ PF \
+ PKGBOOTSTRAP \
+ PMC \
+ PORTSNAP \
+ PPP \
+ QUOTAS \
+ RADIUS_SUPPORT \
+ RBOOTD \
+ REPRODUCIBLE_BUILD \
+ RESCUE \
+ ROUTED \
+ SENDMAIL \
+ SERVICESDB \
+ SETUID_LOGIN \
+ SHAREDOCS \
+ SOURCELESS_HOST \
+ SOURCELESS_UCODE \
+ SVNLITE \
+ SYSCONS \
+ SYSTEM_COMPILER \
+ SYSTEM_LINKER \
+ TALK \
+ TCP_WRAPPERS \
+ TCSH \
+ TELNET \
+ TEXTPROC \
+ TFTP \
+ UNBOUND \
+ USB \
+ UTMPX \
+ VI \
+ VT \
+ WIRELESS \
+ WPA_SUPPLICANT_EAPOL \
+ ZFS \
+ LOADER_ZFS \
+ ZONEINFO
+
+OPTIONS_SUB= yes
Index: os/buildworld/Makefile.options.desc
===================================================================
--- /dev/null
+++ os/buildworld/Makefile.options.desc
@@ -0,0 +1,139 @@
+# $FreeBSD$
+
+ACCT_DESC= Build process accounting tools such as "accton" and "sa"
+ACPI_DESC= Build "acpiconf", "acpidump", and related programs
+AMD_DESC= Build "amd" and related programs
+APM_DESC= Build "apm", "apmd", and related programs
+ASSERT_DEBUG_DESC= Compile with the "assert" debugging checks enabled
+AT_DESC= Build "at" and related utilities
+ATM_DESC= Build programs and libraries related to ATM networking.
+AUDIT_DESC= Build audit support into system programs
+AUTHPF_DESC= Build "authpf"
+AUTOFS_DESC= Build "autofs" related programs, libraries, and kernel modules
+BHYVE_DESC= Build "bhyve", associated utilities, and examples.
+BINUTILS_DESC= Build GNU "as", "objdump", and "ld.bfd". Required to build programs from source.
+BINUTILS_BOOTSTRAP_DESC= Build binutils as part of the bootstrap process.
+BLACKLIST_DESC= Build "blacklistd" and "blacklistctl"
+BLUETOOTH_DESC= Build Bluetooth related kernel modules, programs, and libraries.
+BOOT_DESC= Build the boot blocks and loader
+BOOTPARAMD_DESC= Build "bootparamd" utility.
+BOOTPD_DESC= Build "bootpd" utility.
+BSD_CPIO_DESC= Build the BSD licensed version of cpio based on "libarchive"
+BSD_CRTBEGIN_DESC= Build the BSD licensed "crtbegin.o" and "crtend.o"
+BSD_GREP_DESC= Build the BSD "grep" instead of the GNU "[ef]grep"
+BSDINSTALL_DESC= Build "bsdinstall", "sade", and related programs
+BSNMP_DESC= Build "bsnmpd" and related libraries and data files.
+BZIP2_DESC= Build contributed "bzip2" software as part of the base system
+CALENDAR_DESC= Build the "calendar" utility
+CAPSICUM_DESC= Build Capsicum support into system programs
+CASPER_DESC= Build Casper program and related libraries
+CCD_DESC= Build "geom_ccd" and related utilities
+CDDL_DESC= Build code licensed under Sun's CDDL
+CPP_DESC= Build "cpp" utility
+CROSS_COMPILER_DESC=
+CRYPT_DESC= Build crypto code
+CUSE_DESC= Build CUSE-related programs and libraries
+CXX_DESC= Build "c++" and related libraries. Includes "gperf" and "devd".
+CXGBETOOL_DESC= Build "cxgbetool"
+DIALOG_DESC= Build "dialog" and "dpv"
+DICT_DESC= Build Webster dictionary files
+DMAGENT_DESC= Build dma Mail Transport Agent
+DYNAMICROOT_DESC= Link "/bin" and "/sbin" dynamically
+EE_DESC= Build "edit", "ee", and related programs.
+EFI_DESC= Build "efivar"
+ELFTOOLCHAIN_BOOTSTRAP_DESC= Build ELF Tool Chain tools ("addr2line", "nm", "size", "strings", "strip") as part of the bootstrap process.
+EXAMPLES_DESC= Install example files in /usr/share/examples
+FDT_DESC= Build Flattened Device Tree support. Includes device tree compiler (dtc) and "libfdt"
+FILE_DESC= Build "file" and related programs
+FINGER_DESC= Build "finger" and "fingerd"
+FLOPPY_DESC= Build programs for operating floppy disk drivers
+FMTREE_DESC= Build /usr/sbin/fmtree
+FP_LIBC_DESC= Build "libc" with floating-point support
+FREEBSD_UPDATE_DESC= Build "freebsd-update"
+FTP_DESC= Build "ftp" and "ftpd"
+GAMES_DESC= Build games
+GCOV_DESC= Build "gcov" utility
+GDB_DESC= Build "gdb" utility
+GNU_DIFF_DESC= Build GNU "diff" and "diff3"
+GNU_GREP_DESC= Build GNU "grep"
+GPIO_DESC= Build "gpioctl" as part of the base system
+HAST_DESC= Build "hastd" and related utilities
+HTML_DESC= Build HTML documentation
+HYPERV_DESC= Build HyperV utilities
+ICONV_DESC= Build "iconv" as part of "libc"
+INET_DESC= Build programs and libraries related to IPv4 networking
+INET6_DESC= Build programs and libraries related to IPv6 networking
+INETD_DESC= Build "inetd" utility
+IPFILTER_DESC= Build the IP Filter utilities
+IPFW_DESC= Build the IPFW tools
+ISCSI_DESC= Build "iscsid" ad related utilities.
+JAIL_DESC= Build tools for the support of jails, such as "jail"
+KDUMP_DESC= Build "kdump" and "truss"
+KVM_DESC= Build "libkvm" as part of the base system
+LDNS_DESC= Build the LDNS library
+LDNS_UTILS_DESC= Build the LDNS utilities "drill" and "host"
+LEGACY_CONSOLE_DESC= Build legacy PC console support programs "kbdcontrol" and "vidcontrol"
+LIB32_DESC= Build the 32-bit library set and "ld-elf32.so.1" runtime linker
+LIBPTHREAD_DESC= Build the "libpthread" providing library, "libthr"
+LIBTHR_DESC= Build the "libthr" library (1:1 threading)
+LLVM_COV_DESC= Build the "llvm-cov" utility
+LOADER_EFI_SECUREBOOT= Build "loader" with support for verification from UEFI certificates
+LOADER_GELI_DESC= Include GELI crypto support in the boot chain binaries
+LOADER_OFW_DESC= Build openfirmware bootloader components
+LOADER_UBOOT_DESC= Build ubldr
+LOADER_ZFS_DESC= Build ZFS file system boot loader support.
+LOCALES_DESC= Build localization files such as "locale"
+LOCATE_DESC= Build "locate" and related programs
+LPR_DESC= Build "lpr" and related programs
+LS_COLORS_DESC= Build "ls" with support for colors to distinguish file types
+LZMA_SUPPORT_DESC= Build programs with optional "lzma" compression support
+MAIL_DESC= Build mail support (MUA/MTA)
+MAILWRAPPER_DESC= Build the "mailwrapper" MTA selector
+MAKE_DESC= Install "make" and related support files
+META_MODE_DESC= Incremental build mode
+MLX5TOOL_DESC= Build "mlx5tool"
+NDIS_DESC= Build programs and libraries related to NDIS emulation support
+NETCAT_DESC= Build the "nc" utility
+NETGRAPH_DESC= Build applications to support "netgraph" library functions
+NLS_CATALOGS_DESC= Build NLS catalog support for "csh"
+NS_CACHING_DESC= Enable name caching in the "nsswitch" subsystem, and build "nscd" utility.
+NTP_DESC= Build "ntpd" and related programs
+NVME_DESC= Build NVME related tools and kernel modules
+OFED_DESC= OpenFabrics Enterprise Distribution drivers such as Infiniband drivers
+PC_SYSINSTALL_DESC= Build "pc-sysinstall" and related programs
+PF_DESC= Build PF firewall package
+PKGBOOTSTRAP_DESC= Build "pkg" bootstrap tool
+PMC_DESC= Build "pmccontrol" and related programs.
+PORTSNAP_DESC= Build "portsnap" and related files
+PPP_DESC= Build "ppp" and related programs
+QUOTAS_DESC= Build "quota" and related programs
+RADIUS_SUPPORT_DESC= Build radius support into applications like "pad_radius" and "ppp"
+RBOOTD_DESC= Build "rbootd"
+REPRODUCIBLE_BUILD_DESC= Avoid placing build metadata (build time, user, host) in the kernel, boot loaders, and uname output.
+RESCUE_DESC= Build "rescue" utilities in /rescue
+ROUTED_DESC= Build "routed" utility
+SENDMAIL_DESC= Build "sendmail" and related programs
+SERVICESDB_DESC= Install "/var/db/services.db"
+SETUID_LOGIN_DESC= Allow "login" to be a set-user-ID root program
+SHAREDOCS_DESC= Build the BSD4.4 legacy documentaion
+SOURCELESS_HOST_DESC= Build kernel modules that include sourceless native code for host CPU
+SOURCELESS_UCODE_DESC= Build kernel modules that include sourceless microcode
+SVNLITE_DESC= Build "svnlite" and related programs
+SYSCONS_DESC= Build "syscons" support files such as keyboard maps, fonts, and screen output maps.
+SYSTEM_COMPILER_DESC= Try to skip building a cross-compiler during bootstrap phase of build.
+SYSTEM_LINKER_DESC= Try to skip building a cross-linker during the bootstrap phase of the build. Required LLD_BOOTSTRAP option.
+TALK_DESC= Build "talk" and "talkd" utilities
+TCP_WRAPPERS_DESC= Build "tcpd" and related utilities
+TCSH_DESC= Build /bin/csh (which is actually tcsh)
+TELNET_DESC= Build "telnet" and related programs
+TEXTPROC_DESC= Build programs used for text processing
+TFTP_DESC= Build "tftp" and "tftpd"
+UNBOUND_DESC= Build "unbound" and related programs
+USB_DESC= Build USB-related programs and libraries
+UTMPX_DESC= Build user accounting tools such as "last", "users", "who", "ac", "lastlogin", and "utx"
+VI_DESC= Build "vi", "view", "ex", and related programs
+VT_DESC= Build "vt" support files (fonts and keymaps)
+WIRELESS_DESC= Build programs used for 802.11 wireless networks such as "wpa_supplicant" and "hostapd".
+WPA_SUPPLICANT_EAPOL_DESC= Build "wpa_supplicant" with support for the EAP-[PEAP, TLS, LEAP, and TTLS] protocols.
+ZFS_DESC= Build base system ZFS
+ZONEINFO_DESC= Build the timezone database
Index: os/buildworld/pkg-descr
===================================================================
--- /dev/null
+++ os/buildworld/pkg-descr
@@ -0,0 +1,9 @@
+This FreeBSD OS port performs the 'buildworld' portion of the base build.
+The resulting world is packaged and stored as a .txz file in /usr/dist/.
+
+This .txz file is used by other OS ports in the packaging process for the
+userland. This package does not need to be installed for runtime, but may
+be helpful to feed into other programs that can make use of a tarball of
+world, I.E. jail managers, Poudriere and similar.
+
+WWW: https://www.freebsd.org
Index: os/kernel-debug-symbols/Makefile
===================================================================
--- /dev/null
+++ os/kernel-debug-symbols/Makefile
@@ -0,0 +1,41 @@
+# $FreeBSD$
+
+PORTNAME= kernel-debug-symbols
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD kernel debugging symbols
+
+BUILD_DEPENDS= ${OS_KERNDIST_DEBUG}:os/buildkernel-debug@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_KERNDIST_DEBUG}..."
+ ${TAR} xpf ${OS_KERNDIST_DEBUG} -C ${STAGEDIR}
+ ${MV} ${STAGEDIR}/usr/lib/debug/boot/kernel ${STAGEDIR}/usr/lib/debug/boot/kernel-debug
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib/debug/boot/kernel-debug \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib/debug/boot/kernel-debug \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${XARGS} -I '{}' echo "@dir {}" >> ${TMPPLIST})
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/kernel-debug-symbols/pkg-descr
===================================================================
--- /dev/null
+++ os/kernel-debug-symbols/pkg-descr
@@ -0,0 +1,4 @@
+This FreeBSD OS port installs the debugging symbols for kernel built with
+WITNESS and other debugging features enabled.
+
+WWW: https://www.freebsd.org
Index: os/kernel-debug/Makefile
===================================================================
--- /dev/null
+++ os/kernel-debug/Makefile
@@ -0,0 +1,41 @@
+# $FreeBSD$
+
+PORTNAME= kernel-debug
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD kernel with debug enabled
+
+BUILD_DEPENDS= ${OS_KERNDIST_DEBUG}:os/buildkernel-debug@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_KERNDIST_DEBUG}..."
+ ${TAR} xpf ${OS_KERNDIST_DEBUG} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ @${MKDIR} ${STAGEDIR}
+ (cd ${STAGEDIR}; ${FIND} ./boot/kernel-debug \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./boot/kernel-debug \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${XARGS} -I '{}' echo "@dir {}" >> ${TMPPLIST})
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/kernel-debug/pkg-descr
===================================================================
--- /dev/null
+++ os/kernel-debug/pkg-descr
@@ -0,0 +1,7 @@
+This FreeBSD OS port installs the debugging kernel in /boot/kernel-debug.
+This kernel can be selected at boot-up to run with WITNESS and other debugging
+features enabled.
+
+This is not required for jails or other chroot environments.
+
+WWW: https://www.freebsd.org
Index: os/kernel-symbols/Makefile
===================================================================
--- /dev/null
+++ os/kernel-symbols/Makefile
@@ -0,0 +1,42 @@
+# $FreeBSD$
+
+PORTNAME= kernel-symbols
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD kernel debugging symbols
+
+BUILD_DEPENDS= ${OS_KERNDIST}:os/buildkernel@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+PKGVITAL= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_KERNDIST}..."
+ ${TAR} xpf ${OS_KERNDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ @${MKDIR} ${STAGEDIR}
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib/debug/boot/kernel \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib/debug/boot/kernel \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${XARGS} -I '{}' echo "@dir {}" >> ${TMPPLIST})
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/kernel-symbols/pkg-descr
===================================================================
--- /dev/null
+++ os/kernel-symbols/pkg-descr
@@ -0,0 +1,3 @@
+This FreeBSD OS port installs the debugging symbols for the default kernel.
+
+WWW: https://www.freebsd.org
Index: os/kernel/Makefile
===================================================================
--- /dev/null
+++ os/kernel/Makefile
@@ -0,0 +1,51 @@
+# $FreeBSD$
+
+PORTNAME= kernel
+PORTVERSION= ${BASEPKG_PORTVERSION}
+PORTEPOCH= 1
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD kernel without debug enabled
+
+BUILD_DEPENDS= ${OS_KERNDIST}:os/buildkernel@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+PKGVITAL= yes
+
+OPTIONS_DEFINE= DEBUG
+OPTIONS_DEFAULT=
+OPTIONS_SUB= yes
+
+.include <bsd.port.pre.mk>
+
+.if ${PORT_OPTIONS:MDEBUG}
+RUN_DEPENDS+= kernel-symbols=${BASEPKG_PORTVERSION}:os/kernel-symbols@${OS_FLAVOR}
+.endif
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_KERNDIST}..."
+ ${TAR} xpf ${OS_KERNDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ @${MKDIR} ${STAGEDIR}
+ (cd ${STAGEDIR}; ${FIND} ./boot/kernel \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./boot/kernel \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${XARGS} -I '{}' echo "@dir {}" >> ${TMPPLIST})
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/kernel/pkg-descr
===================================================================
--- /dev/null
+++ os/kernel/pkg-descr
@@ -0,0 +1,5 @@
+This FreeBSD OS port installs the default kernel in /boot/kernel.
+
+This is not required for jails or other chroot environments.
+
+WWW: https://www.freebsd.org
Index: os/src/Makefile
===================================================================
--- /dev/null
+++ os/src/Makefile
@@ -0,0 +1,42 @@
+# $FreeBSD$
+
+PORTNAME= src
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD base system source
+
+PREFIX=/
+SRCDIR?=/usr/src
+NO_BUILD= yes
+WITHOUT_FBSD10_FIX= yes
+WRKSRC= ${BASEPKG_SRCDIR}
+
+.include <bsd.port.pre.mk>
+
+patch:
+ ${MKDIR} ${WRKDIR}
+
+checksum fetch extract:
+ ${ECHO_MSG} ${.TARGET} not needed because building direct
+
+stage-qa: stage
+
+do-install:
+ @${MKDIR} ${STAGEDIR}/${SRCDIR}
+ ${TAR} cf - -C ${WRKSRC} --exclude .git --exclude .svn . | ${TAR} xpf - -C ${STAGEDIR}/${SRCDIR}
+ (cd ${STAGEDIR}; ${FIND} . \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} .${SRCDIR} \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${XARGS} -I '{}' echo "@dir {}" >> ${TMPPLIST})
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/src/pkg-descr
===================================================================
--- /dev/null
+++ os/src/pkg-descr
@@ -0,0 +1,4 @@
+This FreeBSD OS port installs the system sources into /usr/src that
+were used to create the other OS packages.
+
+WWW: https://www.freebsd.org
Index: os/userland-base-bootstrap/Makefile
===================================================================
--- /dev/null
+++ os/userland-base-bootstrap/Makefile
@@ -0,0 +1,60 @@
+# $FreeBSD$
+
+PORTNAME= userland-base-bootstrap
+PORTVERSION= ${BASEPKG_PORTVERSION}
+PORTREVISION= 1
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland libelf, rtld and other critical early libraries
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+PKGVITAL= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./libexec/ld-elf* ./lib/libc.* ./lib/libthr.* ./lib/libm.* \
+ ./usr/lib/libthr.* ./usr/lib/libm.* ./usr/lib/libc.* \
+ \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -e '\.a' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./libexec ./lib ./usr/lib \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -e '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -w '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-base-bootstrap/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-base-bootstrap/pkg-descr
@@ -0,0 +1,6 @@
+This FreeBSD OS port installs the critical runtime libraries, such as RTLD,
+libc, libm and others. This package should be updated after the kernel, but before
+other userland packages. This updating best-practice is enforced when using the
+'base-update' tool for updating.
+
+WWW: https://www.freebsd.org
Index: os/userland-base/Makefile
===================================================================
--- /dev/null
+++ os/userland-base/Makefile
@@ -0,0 +1,79 @@
+# $FreeBSD$
+
+PORTNAME= userland-base
+PORTVERSION= ${BASEPKG_PORTVERSION}
+PORTREVISION= 4
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD base system share and libexec dirs
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR} \
+ jq:textproc/jq
+RUN_DEPENDS= /libexec/ld-elf.so.1:os/userland-base-bootstrap@${OS_FLAVOR} \
+ /bin/sh:os/userland-bin@${OS_FLAVOR} \
+ /boot/defaults/loader.conf:os/userland-boot@${OS_FLAVOR} \
+ /etc/rc:os/userland-conf@${OS_FLAVOR} \
+ /usr/lib/libelf.so:os/userland-lib@${OS_FLAVOR} \
+ /rescue/sh:os/userland-rescue@${OS_FLAVOR} \
+ /sbin/init:os/userland-sbin@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+PKGVITAL= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+ ${INSTALL_SCRIPT} ${FILESDIR}/base-update.in ${STAGEDIR}/usr/sbin/base-update
+ ${INSTALL_SCRIPT} ${FILESDIR}/pkgbase.setup.in ${STAGEDIR}/etc/pkgbase.setup
+ if [ -e "${STAGEDIR}/var/db/trueos-manifest.json" ] ; then \
+ ${SH} ${FILESDIR}/mk-pkg-repo.sh ${STAGEDIR}/var/db/trueos-manifest.json ${STAGEDIR} ; \
+ fi
+ ${ECHO} "${_OSVERSION_MAJOR}-${PKGVERSION}" > ${STAGEDIR}/etc/base_version
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ ${ECHO} "usr/sbin/base-update" >> ${TMPPLIST}
+ ${ECHO} "etc/pkgbase.setup" >> ${TMPPLIST}
+ if [ -e "${STAGEDIR}/etc/pkg/Train.conf" ] ; then \
+ ${ECHO} "etc/pkg/Train.conf" >> ${TMPPLIST} ; \
+ fi
+ (cd ${STAGEDIR}; ${FIND} . \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -f ${FILESDIR}/exclude-list \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./ \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -e '/' \
+ | ${GREP} -v -f ${FILESDIR}/exclude-list \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -w '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+ ${SH} ${FILESDIR}/scrubplist.sh ${FILESDIR}/configs ${TMPPLIST} ${STAGEDIR}
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-base/files/base-update.in
===================================================================
--- /dev/null
+++ os/userland-base/files/base-update.in
@@ -0,0 +1,380 @@
+#!/bin/sh
+
+# Copyright 2019 Kris Moore
+# All rights reserved
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted providing that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+
+PKG="pkg-static"
+
+exit_err()
+{
+ echo "ERROR: $@" >&2
+ exit 1
+}
+
+get_userland_bootstrap_pkgs()
+{
+ # Get which world is in play
+ USERLANDPKGNAME=$(${PKG} query '%n' os/userland-base-bootstrap)
+ if [ -z "$USERLANDPKGNAME" ] ; then
+ exit_err "Could not determine userland-base-bootstrap package, is this using base packages?"
+ fi
+ echo $USERLANDPKGNAME
+}
+
+get_userland_pkgs()
+{
+ # Get which world is in play
+ USERLANDPKGNAME=$(${PKG} query '%n' os/userland)
+ if [ -z "$USERLANDPKGNAME" ] ; then
+ exit_err "Could not determine userland package, is this using base packages?"
+ fi
+ echo $USERLANDPKGNAME
+}
+
+do_userland_updates()
+{
+
+ check_userland_updates >/dev/null
+ case $? in
+ 0)
+ echo "Your system is up to date!"
+ return
+ ;;
+ 1)
+ ;;
+ *)
+ exit_err "Failed to check for userland updates"
+ ;;
+ esac
+
+ # Check and do upgrade to bootstrap pkg first
+ ${PKG} upgrade -y $(get_userland_bootstrap_pkgs)
+ if [ $? -ne 0 ] ; then
+ exit_err "Failed upgrading userland base bootstrap package"
+ fi
+
+ ${PKG} upgrade -y -g $(get_userland_pkgs)-*
+ if [ $? -ne 0 ] ; then
+ exit_err "Failed upgrading userland"
+ fi
+
+ echo "Userland update complete!"
+ exit 0
+
+}
+
+check_updates()
+{
+ ${PKG} upgrade -n $@
+ return $?
+}
+
+
+get_kernel_pkgs()
+{
+ # Get which kernel is booted
+ CURKERN=$(sysctl -n kern.bootfile)
+ if [ -z "$CURKERN" ] ; then
+ exit_err "Could not determine booted kernel via: kern.bootfile"
+ fi
+
+ KERNPKG=$(${PKG} which -q ${CURKERN})
+ if [ -z "$KERNPKG" ] ; then
+ exit_err "Could not determine kernel package, is this using base packages?"
+ fi
+
+ KERNPKGNAME=$(${PKG} query '%n' ${KERNPKG})
+ if [ -z "$KERNPKGNAME" ] ; then
+ exit_err "Could not determine kernel package, is this using base packages?"
+ fi
+
+ # Update kmod packages at same time
+ KERNKMODS=$(${PKG} query -g '%n' \*-kmod | tr -s '\n' ' ')
+
+ echo "$KERNPKGNAME $KERNKMODS"
+}
+
+check_userland_updates()
+{
+ check_updates $(get_userland_pkgs) $(get_userland_bootstrap_pkgs)
+ return $?
+}
+
+check_kernel_updates()
+{
+ check_updates $(get_kernel_pkgs)
+ return $?
+}
+
+do_kernel_updates()
+{
+ check_kernel_updates >/dev/null
+ case $? in
+ 0)
+ return
+ ;;
+ 1)
+ ;;
+ *)
+ exit_err "Failed to check for kernel updates"
+ ;;
+ esac
+
+ ${PKG} upgrade -y $(get_kernel_pkgs)
+ if [ $? -ne 0 ] ; then
+ exit_err "Failed updating kernel"
+ fi
+
+ echo "Kernel update complete!"
+ echo "Please reboot before running $0 again to continue the base update."
+ exit 0
+
+}
+
+check_skip_file()
+{
+ case $1 in
+ /etc/login.conf.db)
+ return 1
+ ;;
+ /etc/pwd.db)
+ return 1
+ ;;
+ /etc/spwd.db)
+ return 1
+ ;;
+ esac
+
+ return 0
+}
+
+# Look for pkgnew files and attempt to merge
+do_etcmerge()
+{
+
+ for nfile in $(find /etc | grep '\.pkgnew$' | tr '\n' ' ')
+ do
+ ofile=$(echo $nfile | sed 's|.pkgnew||g')
+
+ # Stale file from a previous merge conflict
+ if [ ! -e "${ofile}" ] ; then
+ echo "Removing stale ${nfile}"
+ rm "${nfile}"
+ continue
+ fi
+
+ # Skip some files always
+ check_skip_file "${ofile}"
+ if [ $? -ne 0 ] ; then
+ rm "${nfile}"
+ continue
+ fi
+
+ # Yes, sometimes we've seen this
+ if [ "$(sha256 -q $nfile)" = "$(sha256 -q $ofile)" ] ; then
+ echo "Moving identical ${nfile} -> ${ofile}"
+ cp "${nfile}" "${ofile}"
+ if [ $? -ne 0 ] ; then
+ echo "ERROR: Failed to copy $nfile -> $ofile"
+ fi
+ rm "${nfile}"
+ continue
+ fi
+
+ # Need to merge the files, lets instruct the user on howto
+ echo "The File: ${ofile}"
+ echo "Needs manual updating. Do you wish to:"
+ echo ""
+ echo "m) Merge"
+ echo "d) Delete the new file"
+ echo "s) Skip (Default)"
+ echo -e ">\c"
+ read response
+ case $response in
+ m)
+ merge_file "$ofile" "$nfile"
+ check_db_gen "$ofile"
+ ;;
+ d)
+ echo "Removing ${nfile}"
+ rm "${nfile}"
+ ;;
+ *)
+ continue
+ ;;
+ esac
+
+ done
+}
+
+check_db_gen()
+{
+ if [ "$1" = "/etc/login.conf" ] ; then
+ cap_mkdb /etc/login.conf
+ fi
+ if [ "$1" = "/etc/services" ] ; then
+ services_mkdb -q -o /var/db/services.db /etc/services
+ fi
+ if [ "$1" = "/etc/master.passwd" ] ; then
+ pwd_mkdb -p /etc/master.passwd
+ fi
+ if [ "$1" = "/etc/mail/aliases" ] ; then
+ newaliases
+ fi
+}
+
+merge_file()
+{
+ echo "Starting merge of $1"
+ echo "-----------------------"
+ echo "Old contents are on left, new contents on right."
+ echo "Enter 'l' select the left or 'r' to select the right side to merge"
+ echo "Use 'q' to quit"
+ cp -p ${2} ${1}.merged
+ sdiff -o "${1}.merged" --text --suppress-common-lines \
+ --width=80 "${1}" "${2}"
+ while :
+ do
+ echo "Editing finshed. Do you wish to:"
+ echo "v) View merged file"
+ echo "i) Install merged file"
+ echo "s) Skip (Default)"
+ echo -e ">\c"
+ read response
+ case $response in
+ v|V)
+ ${PAGER} ${1}.merged
+ ;;
+ i|I) cp "${1}.merged" "${1}"
+ rm "${1}.merged"
+ rm "${2}"
+ break
+ ;;
+ *) break
+ ;;
+ esac
+ done
+}
+
+update_pkg()
+{
+ ${PKG} upgrade -y ports-mgmt/pkg
+}
+
+list_flavors()
+{
+ echo "Current: $(current_flavor)"
+ echo "Available:"
+ echo "-----------------------------------"
+ ${PKG} rquery '%n' os/userland | cut -d '-' -f 2
+ echo "-----------------------------------"
+ echo "Use \"${0} flavor <name>\" to change to a new flavor"
+}
+
+current_flavor()
+{
+ # Get the current FLAVOR
+ KERNPKG=$(${PKG} which -q /boot/kernel/kernel)
+ if [ -z "${KERNPKG}" ] ; then
+ exit_err "Unable to determine current OS flavor"
+ fi
+ ${PKG} query '%n' ${KERNPKG} | cut -d '-' -f 2
+}
+
+change_flavor()
+{
+ CFLAV=$(current_flavor)
+ if [ "$1" = "${CFLAV}" ] ; then
+ exit_err "The flavor \"${CFLAV}\" is already installed."
+ fi
+
+ # Get list of packages to change
+ for pkg in $(${PKG} query -g '%n' os-${CFLAV}-* | tr -s '\n' ' ')
+ do
+ pkgname=$(echo ${pkg} | cut -d '-' -f 3-)
+ echo "${PKG} set --change-name ${pkg}:os-${1}-${pkgname} -y ${pkg}"
+ ${PKG} set --change-name ${pkg}:os-${1}-${pkgname} -y ${pkg}
+ if [ $? -ne 0 ] ; then
+ exit_err "Failed renaming: ${pkg}"
+ fi
+ done
+
+ echo "Package renaming complete!"
+ echo "On next upgrade, you will be migrated too the new OS flavor"
+}
+
+do_flavor()
+{
+ if [ -z "$1" ] ; then
+ list_flavors
+ else
+ change_flavor "$1"
+ fi
+}
+
+usage()
+{
+ cat << EOF
+
+$0 - Keep your base packages up to date
+----------------------------------------------
+Arguments (Requires one)
+
+ check - Check if updates exist for kernel/userland
+
+ flavor - Manage which OS flavor is installed
+
+ merge - Merge updates to /etc files that did not automatically update
+
+ update - Perform updates to kernel/userland packages
+
+EOF
+ exit 1
+}
+
+if [ -z "$1" ] ; then
+ usage
+fi
+
+case $1 in
+ check)
+ update_pkg
+ check_updates $(get_kernel_pkgs) $(get_userland_pkgs) $(get_userland_bootstrap_pkgs)
+ ;;
+ update)
+ update_pkg
+ do_kernel_updates
+ do_userland_updates
+ ;;
+ merge)
+ do_etcmerge
+ ;;
+ flavor)
+ do_flavor "$2"
+ ;;
+ *)
+ usage
+ ;;
+esac
Index: os/userland-base/files/configs
===================================================================
--- /dev/null
+++ os/userland-base/files/configs
@@ -0,0 +1,158 @@
+etc/amd.map
+etc/auto_master
+etc/autofs/include_ldap
+etc/autofs/include_nis
+etc/autofs/include_nis_nullfs
+etc/autofs/special_automount
+etc/autofs/special_hosts
+etc/autofs/special_media
+etc/autofs/special_noauto
+etc/autofs/special_null
+etc/blacklistd.conf
+etc/bluetooth/hcsecd.conf
+etc/bluetooth/hosts
+etc/bluetooth/protocols
+etc/conf.d/bootmisc
+etc/conf.d/fsck
+etc/conf.d/ipfw
+etc/conf.d/ldconfig
+etc/conf.d/localmount
+etc/conf.d/moused
+etc/conf.d/netmount
+etc/conf.d/powerd
+etc/conf.d/rarpd
+etc/conf.d/savecore
+etc/conf.d/staticroute
+etc/conf.d/swap
+etc/conf.d/syscons
+etc/conf.d/tmpfiles
+etc/conf.d/urandom
+etc/cron.d/at
+etc/crontab
+etc/csh.cshrc
+etc/csh.login
+etc/csh.logout
+etc/ddb.conf
+etc/devd-openrc.conf
+etc/devd-openrc/asus.conf
+etc/devd-openrc/devmatch-openrc.conf
+etc/devd-openrc/hyperv.conf
+etc/devd-openrc/uath.conf
+etc/devd-openrc/ulpt.conf
+etc/devd-openrc/zfs.conf
+etc/devd.conf
+etc/devd/asus.conf
+etc/devd/devmatch.conf
+etc/devd/hyperv.conf
+etc/devd/uath.conf
+etc/devd/ulpt.conf
+etc/devfs.conf
+etc/dhclient.conf
+etc/dhcpcd.conf
+etc/disktab
+etc/dma/dma.conf
+etc/dumpdates
+etc/fbtab
+etc/freebsd-update.conf
+etc/ftpusers
+etc/gettytab
+etc/group
+etc/gss/mech
+etc/gss/qop
+etc/hosts
+etc/hosts.allow
+etc/hosts.equiv
+etc/hosts.lpd
+etc/inetd.conf
+etc/libalias.conf
+etc/libmap.conf
+etc/locate.rc
+etc/login.access
+etc/login.conf
+etc/login.conf.db
+etc/mac.conf
+etc/mail.rc
+etc/mail/access.sample
+etc/mail/aliases
+etc/mail/freebsd.cf
+etc/mail/freebsd.mc
+etc/mail/freebsd.submit.cf
+etc/mail/freebsd.submit.mc
+etc/mail/freefall.mc
+etc/mail/mailer.conf
+etc/mail/mailertable.sample
+etc/mail/README
+etc/mail/sendmail.cf
+etc/mail/submit.cf
+etc/mail/virtusertable.sample
+etc/master.passwd
+etc/motd
+etc/netconfig
+etc/netstart
+etc/network.subr
+etc/networks
+etc/newsyslog.conf
+etc/newsyslog.conf.d/amd.conf
+etc/newsyslog.conf.d/ftp.conf
+etc/newsyslog.conf.d/lpr.conf
+etc/newsyslog.conf.d/opensm.conf
+etc/newsyslog.conf.d/pf.conf
+etc/newsyslog.conf.d/ppp.conf
+etc/newsyslog.conf.d/sendmail.conf
+etc/nscd.conf
+etc/nsmb.conf
+etc/nsswitch.conf
+etc/ntp.conf
+etc/ntp/leap-seconds
+etc/opieaccess
+etc/pam.d/atrun
+etc/pam.d/cron
+etc/pam.d/ftp
+etc/pam.d/ftpd
+etc/pam.d/imap
+etc/pam.d/login
+etc/pam.d/other
+etc/pam.d/passwd
+etc/pam.d/pop3
+etc/pam.d/README
+etc/pam.d/sshd
+etc/pam.d/su
+etc/pam.d/system
+etc/pam.d/telnetd
+etc/pam.d/xdm
+etc/pccard_ether
+etc/pf.os
+etc/phones
+etc/pkg/Train.conf
+etc/portsnap.conf
+etc/ppp/ppp.conf
+etc/printcap
+etc/profile
+etc/protocols
+etc/rc.devd
+etc/rc.dynamicdiskless
+etc/rc.firewall
+etc/rc.resume
+etc/regdomain.xml
+etc/remote
+etc/rpc
+etc/security/audit_class
+etc/security/audit_control
+etc/security/audit_event
+etc/security/audit_user
+etc/security/audit_warn
+etc/services
+etc/shells
+etc/snmpd.config
+etc/ssh/moduli
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssl/openssl.cnf
+etc/sysctl.d/README
+etc/syslog.conf
+etc/syslog.d/ftp.conf
+etc/syslog.d/lpr.conf
+etc/syslog.d/ppp.conf
+etc/termcap.small
+etc/ttys
+usr/local/etc/pkg/repos/FreeBSD.conf
Index: os/userland-base/files/exclude-list
===================================================================
--- /dev/null
+++ os/userland-base/files/exclude-list
@@ -0,0 +1,17 @@
+^bin/
+^boot/
+^etc/
+^lib/
+^libexec/ld-elf.so.1
+^libexec/ld-elf32.so.1
+^usr/bin
+^usr/lib/
+^usr/lib32
+^usr/include
+^usr/sbin
+^usr/share/doc
+^usr/share/man
+^usr/tests
+^rescue/
+^sbin/
+^var/db/services.db
Index: os/userland-base/files/mk-pkg-repo.sh
===================================================================
--- /dev/null
+++ os/userland-base/files/mk-pkg-repo.sh
@@ -0,0 +1,54 @@
+#!/bin/sh
+
+# TrueOS Build Manifest
+TM=${1}
+
+# Where to create repo
+STAGEDIR="${2}"
+
+REPONAME="TrueOS"
+if [ "$(jq -r '."pkg-repo-name" | length' ${TM})" != "0" ]; then
+ REPONAME=`jq -r '."pkg-repo-name"' ${TM}`
+fi
+TRAINNAME="TrueOS"
+if [ "$(jq -r '."pkg-train-name" | length' ${TM})" != "0" ]; then
+ TRAINNAME=`jq -r '."pkg-train-name"' ${TM}`
+fi
+# Do the first-time setup of package repo
+if [ ! -e "${STAGEDIR}/etc/pkg/Train.conf" ] ; then
+
+ # Disable the FreeBSD repo by default
+ if [ -e "${STAGEDIR}/etc/pkg/FreeBSD.conf" ] ; then
+ mkdir -p ${STAGEDIR}/usr/local/etc/pkg/repos || true
+ echo "FreeBSD: { enabled: no }" >${STAGEDIR}/usr/local/etc/pkg/repos/FreeBSD.conf
+ fi
+
+ # Do Setup for pkg repo
+ TM_PUBKEY="none"
+ if [ "$(jq -r '."pkg-repo"."pubKey" | length' ${TM})" != "0" ]; then
+ echo "Saving pkg ports repository public key"
+ jq -r '."pkg-repo"."pubKey" | join("\n")' ${TM} \
+ > ${STAGEDIR}/usr/share/keys/pkg/${REPONAME}.pub
+ TM_PUBKEY="/usr/share/keys/pkg/${REPONAME}.pub"
+ if [ "$(jq -r '."pkg-repo"."url" | length' ${TM})" != "0" ]; then
+ TM_PKGURL="$(jq -r '."pkg-repo"."url"' ${TM})"
+ cat >${STAGEDIR}/etc/pkg/Train.conf <<-EOF
+ ${REPONAME}: {
+ url: "${TM_PKGURL}",
+ signature_type: "pubkey",
+ pubkey: "${TM_PUBKEY}",
+ }
+ EOF
+ fi
+ else
+ if [ "$(jq -r '."pkg-repo"."url" | length' ${TM})" != "0" ]; then
+ TM_PKGURL="$(jq -r '."pkg-repo"."url"' ${TM})"
+ cat >${STAGEDIR}/etc/pkg/Train.conf <<-EOF
+ ${REPONAME}: {
+ url: "${TM_PKGURL}",
+ signature_type: "none",
+ }
+ EOF
+ fi
+ fi
+fi
Index: os/userland-base/files/pkgbase.setup.in
===================================================================
--- /dev/null
+++ os/userland-base/files/pkgbase.setup.in
@@ -0,0 +1,29 @@
+#!/bin/sh
+# License: 2CLAUSEBSD
+# Author: Kris Moore <kmoore@FreeBSD.org>
+#
+# Setup script called by userland package during
+# installation / upgrade
+
+PKG_ROOTDIR="$1"
+
+# Make sure /etc/fstab exists to silence warnings from openrc
+if [ ! -e "${PKG_ROOTDIR}/etc/fstab" ]; then
+ touch ${PKG_ROOTDIR}/etc/fstab
+fi
+
+# Update any missing dirs which need added now from mtree spec
+mtree -deU -f ${PKG_ROOTDIR}/etc/mtree/BSD.root.dist \
+ -p ${PKG_ROOTDIR} >/dev/null 2>/dev/null
+mtree -deU -f ${PKG_ROOTDIR}/etc/mtree/BSD.usr.dist \
+ -p ${PKG_ROOTDIR}/usr >/dev/null 2>/dev/null
+mtree -deU -f ${PKG_ROOTDIR}/etc/mtree/BSD.var.dist \
+ -p ${PKG_ROOTDIR}/var >/dev/null 2>/dev/null
+mtree -deU -f ${PKG_ROOTDIR}/etc/mtree/BSD.include.dist \
+ -p ${PKG_ROOTDIR}/usr/include >/dev/null 2>/dev/null
+if [ -e ${PKG_ROOTDIR}/etc/mtree/BSD.lib32.dist ] ; then
+ mtree -deU -f ${PKG_ROOTDIR}/etc/mtree/BSD.lib32.dist \
+ -p ${PKG_ROOTDIR}/usr >/dev/null 2>/dev/null
+fi
+
+exit 0
Index: os/userland-base/files/scrubplist.sh
===================================================================
--- /dev/null
+++ os/userland-base/files/scrubplist.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+CONFIGS="$1"
+PLIST="$2"
+STAGEDIR="$3"
+
+get_prop_line() {
+ # Use a single stat due to it being expensive
+ local SOUT=$(stat -f '%Sf %Su,%Sg,%OMp%OLp' ${STAGEDIR}/${1})
+ local flags=$(echo $SOUT | awk '{print $1}')
+ local prop=$(echo $SOUT | awk '{print $2}')
+
+ echo $flags | grep -q "schg"
+ if [ $? -eq 0 ] ; then
+ echo "${prop},schg"
+ else
+ echo "${prop}"
+ fi
+}
+
+if [ -e "${PLIST}.new" ] ; then
+ rm ${PLIST}.new
+fi
+touch ${PLIST}.new
+
+# Read through the temp plist and cleanup
+while read pline
+do
+
+ # Check for directory first
+ echo ${pline} | grep -q "^@dir"
+ if [ $? -eq 0 ] ; then
+ pdir=$(echo $pline | awk '{print $2}')
+ props=$(get_prop_line ${pdir})
+ echo "@dir(${props}) ${pdir}" >> ${PLIST}.new
+ continue
+ fi
+
+ props=$(get_prop_line $pline)
+
+ # Is this a config file?
+ grep -q -w "${pline}" ${CONFIGS} 2>/dev/null
+ if [ $? -eq 0 ] ; then
+ echo "@config(${props}) ${pline}" >> ${PLIST}.new
+ else
+ echo "@(${props}) ${pline}" >> ${PLIST}.new
+ fi
+
+
+done < ${PLIST}
+mv ${PLIST}.new ${PLIST}
+
Index: os/userland-base/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-base/pkg-descr
@@ -0,0 +1,8 @@
+This FreeBSD OS port installs the directories and files that are apart of
+/usr/share as well as /libexec and /usr/libexec. It is part of the 'userland'
+metapackage, and is normally installed as part of its dependancy chain.
+
+This package includes the 'base-update' command, which can be used to safely
+update your base-package system.
+
+WWW: https://www.freebsd.org
Index: os/userland-base/pkg-install
===================================================================
--- /dev/null
+++ os/userland-base/pkg-install
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+if [ -z "${PKG_ROOTDIR}" ] ; then
+ PKG_ROOTDIR=/
+fi
+
+if [ "$2" != "POST-INSTALL" ] ; then
+ exit 0
+fi
+
+cap_mkdb -l ${PKG_ROOTDIR}/etc/login.conf
+pwd_mkdb -i -p -d ${PKG_ROOTDIR}/etc ${PKG_ROOTDIR}/etc/master.passwd
+services_mkdb -l -q -o ${PKG_ROOTDIR}/var/db/services.db ${PKG_ROOTDIR}/etc/services
+chmod 1777 ${PKG_ROOTDIR}/tmp
+
+sh ${PKG_ROOTDIR}/etc/pkgbase.setup $PKG_ROOTDIR
Index: os/userland-bin/Makefile
===================================================================
--- /dev/null
+++ os/userland-bin/Makefile
@@ -0,0 +1,57 @@
+# $FreeBSD$
+
+PORTNAME= userland-bin
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland bin directories and binaries
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./bin ./usr/bin \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -e 'usr/bin/clang' -e 'usr/bin/cc' -e 'usr/bin/c++' \
+ -e 'usr/bin/ld' -e 'usr/bin/llvm' -e 'usr/bin/lldb' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./bin ./usr/bin \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-bin/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-bin/pkg-descr
@@ -0,0 +1,4 @@
+This FreeBSD OS port installs the binaries that are included in the /bin and
+/usr/bin directories, minus the compilers and other development related tools.
+
+WWW: https://www.freebsd.org
Index: os/userland-boot/Makefile
===================================================================
--- /dev/null
+++ os/userland-boot/Makefile
@@ -0,0 +1,55 @@
+# $FreeBSD$
+
+PORTNAME= userland-boot
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD Userland boot directories and files
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./boot \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./boot \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-boot/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-boot/pkg-descr
@@ -0,0 +1,4 @@
+This FreeBSD OS port installs the /boot support files, including
+the loaders, menus and other configuration files.
+
+WWW: https://www.freebsd.org
Index: os/userland-conf/Makefile
===================================================================
--- /dev/null
+++ os/userland-conf/Makefile
@@ -0,0 +1,59 @@
+# $FreeBSD$
+
+PORTNAME= userland-conf
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland etc files and directories
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./etc \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -e etc/login.conf.db -e etc/pwd.db -e etc/spwd.db \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./etc \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+ ${SH} ${PORTSDIR}/os/userland-base/files/scrubplist.sh \
+ ${PORTSDIR}/os/userland-base/files/configs \
+ ${TMPPLIST} ${STAGEDIR}
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-conf/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-conf/pkg-descr
@@ -0,0 +1,9 @@
+This FreeBSD OS port installs the configuration files that are included
+in the /etc directory. These files are updated when using 'pkg upgrade' or
+the 'base-update' system utility. Files that are unable to be merged
+automatically can be interactively updated using the 'base-update merge'
+command.
+
+WARNING: Removing this package will delete your configuration files in /etc!
+
+WWW: https://www.freebsd.org
Index: os/userland-debug/Makefile
===================================================================
--- /dev/null
+++ os/userland-debug/Makefile
@@ -0,0 +1,55 @@
+# $FreeBSD$
+
+PORTNAME= userland-debug
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland debugging symbols
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib/debug \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib/debug \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-debug/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-debug/pkg-descr
@@ -0,0 +1,4 @@
+This FreeBSD OS port installs the userland debug files normally found in
+/usr/lib/debug.
+
+WWW: https://www.freebsd.org
Index: os/userland-devtools/Makefile
===================================================================
--- /dev/null
+++ os/userland-devtools/Makefile
@@ -0,0 +1,67 @@
+# $FreeBSD$
+
+PORTNAME= userland-devtools
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland compilers and libraries
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./usr/bin ./usr/include ./usr/lib \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -e 'usr/include' \
+ -e '\.a' \
+ -e 'usr/bin/lldb' \
+ -e 'usr/bin/llvm' \
+ -e 'usr/bin/ld' \
+ -e 'usr/bin/ld\.' \
+ -e 'usr/bin/c++' \
+ -e 'usr/bin/cc' \
+ -e 'usr/bin/clang' \
+ -e 'usr/lib/clang' \
+ | grep -v -e 'usr/lib/debug' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./usr/include ./usr/lib \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${GREP} -v -e 'usr/lib/debug' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-devtools/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-devtools/pkg-descr
@@ -0,0 +1,9 @@
+This FreeBSD OS port installs programs, libraries, and header files that are
+used to build other software. Some major programs like clang, make, and lldb
+are included. If you want to build and/or compile anything, you will need to
+install this port.
+
+Restricted jails may want to skip this port, to minimize the arsenal available
+to intruders.
+
+WWW: https://www.freebsd.org
Index: os/userland-docs/Makefile
===================================================================
--- /dev/null
+++ os/userland-docs/Makefile
@@ -0,0 +1,57 @@
+# $FreeBSD$
+
+PORTNAME= userland-docs
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland documentation and man pages
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./usr/share/doc ./usr/share/man \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./usr/share/doc ./usr/share/man \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+ ${SH} ${PORTSDIR}/os/userland-base/files/scrubplist.sh \
+ ${PORTSDIR}/os/userland-base/files/configs \
+ ${TMPPLIST} ${STAGEDIR}
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-docs/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-docs/pkg-descr
@@ -0,0 +1,6 @@
+This FreeBSD OS port installs the userland man pages, as well as info files.
+
+This package is not required for runtime and can be ignored if space
+is at a premium.
+
+WWW: https://www.freebsd.org
Index: os/userland-lib/Makefile
===================================================================
--- /dev/null
+++ os/userland-lib/Makefile
@@ -0,0 +1,64 @@
+# $FreeBSD$
+
+PORTNAME= userland-lib
+PORTVERSION= ${BASEPKG_PORTVERSION}
+PORTREVISION= 1
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland lib directories and files
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./lib ./usr/lib \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -e '\.a' \
+ | ${GREP} -v -e 'usr/lib/debug' \
+ | ${GREP} -v -e 'lib/libc\.so' \
+ | ${GREP} -v -e 'lib/libthr\.so' \
+ | ${GREP} -v -e 'lib/libm\.so' \
+ | ${GREP} -v -e 'usr/lib/clang' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./lib ./usr/lib \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${GREP} -v -e 'usr/lib/debug' \
+ | ${GREP} -v -e 'usr/lib/clang' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-lib/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-lib/pkg-descr
@@ -0,0 +1,3 @@
+This FreeBSD OS port installs the runtime libraries from /lib and /usr/lib.
+
+WWW: https://www.freebsd.org
Index: os/userland-lib32-development/Makefile
===================================================================
--- /dev/null
+++ os/userland-lib32-development/Makefile
@@ -0,0 +1,59 @@
+# $FreeBSD$
+
+PORTNAME= userland-lib32-development
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland 32bit library debug files
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib32 \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -e '\.a' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib32 \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+ ${SH} ${PORTSDIR}/os/userland-base/files/scrubplist.sh \
+ ${PORTSDIR}/os/userland-base/files/configs \
+ ${TMPPLIST} ${STAGEDIR}
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-lib32-development/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-lib32-development/pkg-descr
@@ -0,0 +1,3 @@
+This FreeBSD OS port installs the lib32 debugging files in /usr/lib32.
+
+WWW: https://www.freebsd.org
Index: os/userland-lib32/Makefile
===================================================================
--- /dev/null
+++ os/userland-lib32/Makefile
@@ -0,0 +1,59 @@
+# $FreeBSD$
+
+PORTNAME= userland-lib32
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland 32bit libraries
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib32 \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -e '\.a' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./usr/lib32 \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+ ${SH} ${PORTSDIR}/os/userland-base/files/scrubplist.sh \
+ ${PORTSDIR}/os/userland-base/files/configs \
+ ${TMPPLIST} ${STAGEDIR}
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-lib32/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-lib32/pkg-descr
@@ -0,0 +1,5 @@
+This FreeBSD OS port installs the 32bit Compat libraries in /usr/lib32, for
+amd64 hosts. This port is not required for normal runtime of 64bit host
+systems.
+
+WWW: https://www.freebsd.org
Index: os/userland-rescue/Makefile
===================================================================
--- /dev/null
+++ os/userland-rescue/Makefile
@@ -0,0 +1,55 @@
+# $FreeBSD$
+
+PORTNAME= userland-rescue
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland rescue directory and binaries
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./rescue \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./rescue \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-rescue/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-rescue/pkg-descr
@@ -0,0 +1,5 @@
+This FreeBSD OS port installs the static userland binaries in /rescue, which
+can be used in single-user mode or in other instances where system libraries
+have been corrupted.
+
+WWW: https://www.freebsd.org
Index: os/userland-sbin/Makefile
===================================================================
--- /dev/null
+++ os/userland-sbin/Makefile
@@ -0,0 +1,55 @@
+# $FreeBSD$
+
+PORTNAME= userland-sbin
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland bin directories and binaries
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT= yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./sbin ./usr/sbin \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./sbin ./usr/sbin \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-sbin/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-sbin/pkg-descr
@@ -0,0 +1,4 @@
+This FreeBSD OS port installs the binaries that are included in the /sbin and
+/usr/sbin directories.
+
+WWW: https://www.freebsd.org
Index: os/userland-tests/Makefile
===================================================================
--- /dev/null
+++ os/userland-tests/Makefile
@@ -0,0 +1,58 @@
+# $FreeBSD$
+
+PORTNAME= userland-tests
+PORTVERSION= ${BASEPKG_PORTVERSION}
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+DISTFILES=
+EXTRACT_ONLY=
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= FreeBSD userland tests directory and files
+
+BUILD_DEPENDS= ${OS_WORLDDIST}:os/buildworld@${OS_FLAVOR}
+
+USES= os:flavors
+
+PREFIX=/
+NEED_ROOT=yes
+
+.include <bsd.port.pre.mk>
+
+do-build:
+ @${MKDIR} ${STAGEDIR}
+ ${ECHO_MSG} "==> Extracting ${OS_WORLDDIST}..."
+ ${TAR} xpf ${OS_WORLDDIST} -C ${STAGEDIR}
+
+do-install:
+ ${ECHO_MSG} "==> Generating plist..."
+ (cd ${STAGEDIR}; ${FIND} ./usr/tests \( -type f -o -type l \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ >> ${TMPPLIST})
+ (cd ${STAGEDIR}; ${FIND} ./usr/tests \( -type d \) \
+ | ${SED} -e 's,^\./,,g' \
+ | ${AWK} '{print length, $$0}' | ${SORT} -rn \
+ | ${AWK} '{print $$2 }' \
+ | ${GREP} -v -x '/' \
+ | ${XARGS} -I '{}' echo "@dir {}" \
+ | ${GREP} -v -x '@dir ' \
+ | ${CAT} >> ${TMPPLIST})
+ ${SH} ${PORTSDIR}/os/userland-base/files/scrubplist.sh \
+ ${PORTSDIR}/os/userland-base/files/configs \
+ ${TMPPLIST} ${STAGEDIR}
+
+clean:
+ if [ -d ${WRKDIR} ]; then \
+ if [ -w ${WRKDIR} ]; then \
+ ${ECHO_MSG} "===> Cleaning for ${PKGNAME}"; \
+ ${CHFLAGS} -R noschg ${WRKDIR} ; \
+ ${RM} -r ${WRKDIR}; \
+ else \
+ ${ECHO_MSG} "===> ${WRKDIR} not writable, skipping"; \
+ fi; \
+ fi
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland-tests/pkg-descr
===================================================================
--- /dev/null
+++ os/userland-tests/pkg-descr
@@ -0,0 +1,6 @@
+This FreeBSD OS port installs the userland tests located in /usr/tests.
+
+This is normally used for running in development environments and/or as part
+of a CI framework.
+
+WWW: https://www.freebsd.org
Index: os/userland/Makefile
===================================================================
--- /dev/null
+++ os/userland/Makefile
@@ -0,0 +1,49 @@
+# $FreeBSD$
+
+PORTNAME= userland
+PORTVERSION= ${BASEPKG_PORTVERSION}
+PORTEPOCH= 1
+CATEGORIES= os
+PKGNAMEPREFIX= ${OS_PKGNAMEPREFIX}
+
+MAINTAINER= kmoore@FreeBSD.org
+COMMENT= Metaport for the FreeBSD userland
+
+USES= metaport os:flavors
+
+OPTIONS_DEFINE= DEBUG DOCS LIB32 TESTS OPENZFS
+OPTIONS_DEFAULT= DOCS
+OPTIONS_SUB= yes
+DOCS_DESC= Include manpages and other documentation
+LIB32_DESC= Support for execution of i386 applications
+TESTS_DESC= Optional test framework scripts and tools
+OPENZFS_DESC= OpenZFS userland and kernel support
+
+RUN_DEPENDS+= /COPYRIGHT:os/userland-base@${OS_FLAVOR}
+
+.include <bsd.port.pre.mk>
+
+.if ${PORT_OPTIONS:MDEBUG}
+RUN_DEPENDS+= /usr/lib/debug/bin/sh.debug:os/userland-debug@${OS_FLAVOR}
+.endif
+
+.if ${PORT_OPTIONS:MDOCS}
+RUN_DEPENDS+= /usr/share/man/man1/sh.1.gz:os/userland-docs@${OS_FLAVOR}
+.endif
+
+.if ${PORT_OPTIONS:MLIB32}
+RUN_DEPENDS+= /usr/lib32/libc.so:os/userland-lib32@${OS_FLAVOR}
+.endif
+
+.if ${PORT_OPTIONS:MTESTS}
+RUN_DEPENDS+= /usr/tests/README:os/userland-tests@${OS_FLAVOR}
+.endif
+
+.if ${PORT_OPTIONS:MOPENZFS}
+WITH_OPENZFS= YES
+OPTIONS_SET+= OPENZFS
+RUN_DEPENDS+= ${LOCALBASE}/sbin/zpool:sysutils/openzfs
+.endif
+
+.include "../Makefile.common"
+.include <bsd.port.post.mk>
Index: os/userland/pkg-descr
===================================================================
--- /dev/null
+++ os/userland/pkg-descr
@@ -0,0 +1,5 @@
+This FreeBSD OS port installs the userland meta-package. This package
+installs the other OS dependancies to give you a fully functional FreeBSD
+environment, suitable for both a host system and jails.
+
+WWW: https://www.freebsd.org
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Mar 29, 6:23 PM (4 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28225279
Default Alt Text
D20394.1774808588.diff (83 KB)
Attached To
Mode
D20394: Ports Tree Base Packages
Attached
Detach File
Event Timeline
Log In to Comment