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 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 + +.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 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 + +.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 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 + +.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 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 + +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 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 + +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 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 + +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 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 + +.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 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 + +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 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 + +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 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 + +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 Index: os/userland-base/files/base-update.in =================================================================== --- /dev/null +++ os/userland-base/files/base-update.in @@ -0,0 +1,323 @@ +#!/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 $(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 +} + +usage() +{ + cat << EOF + +$0 - Keep your base packages up to date +---------------------------------------------- +Arguments (Requires one) + + check - Check if updates exist for kernel/userland + + update - Perform updates to kernel/userland packages + + merge - Merge updates to /etc files that did not automatically update +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 + ;; + *) + 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 +# +# 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 + +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 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 + +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 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 + +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 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 + +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 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 + +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 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 + +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 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 + +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 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 + +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 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 + +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 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 + +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 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 + +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 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 + +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 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 + +.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 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