589 lines
22 KiB
Scheme
589 lines
22 KiB
Scheme
(define-module (fruix packages freebsd)
|
|
#:use-module (srfi srfi-1)
|
|
#:use-module (srfi srfi-9)
|
|
#:export (freebsd-release
|
|
freebsd-package?
|
|
freebsd-package-name
|
|
freebsd-package-version
|
|
freebsd-package-build-system
|
|
freebsd-package-inputs
|
|
freebsd-package-home-page
|
|
freebsd-package-synopsis
|
|
freebsd-package-description
|
|
freebsd-package-license
|
|
freebsd-package-install-plan
|
|
freebsd-kernel
|
|
freebsd-kernel-headers
|
|
freebsd-libc
|
|
freebsd-bootloader
|
|
freebsd-rc-scripts
|
|
freebsd-runtime
|
|
freebsd-networking
|
|
freebsd-openssh
|
|
freebsd-userland
|
|
freebsd-clang-toolchain
|
|
freebsd-gmake
|
|
freebsd-autotools
|
|
freebsd-openssl
|
|
freebsd-zlib
|
|
freebsd-sh
|
|
freebsd-bash
|
|
freebsd-native-kernel
|
|
freebsd-native-world
|
|
freebsd-native-build-package?
|
|
freebsd-host-staged-package?
|
|
%freebsd-host-staged-all-packages
|
|
%freebsd-host-staged-core-packages
|
|
%freebsd-host-staged-development-profile-packages
|
|
%freebsd-host-staged-system-packages
|
|
%freebsd-host-staged-replacement-order
|
|
%freebsd-core-packages
|
|
%freebsd-development-profile-packages
|
|
%freebsd-system-packages))
|
|
|
|
(define-record-type <freebsd-package>
|
|
(make-freebsd-package name version build-system inputs home-page synopsis
|
|
description license install-plan)
|
|
freebsd-package?
|
|
(name freebsd-package-name)
|
|
(version freebsd-package-version)
|
|
(build-system freebsd-package-build-system)
|
|
(inputs freebsd-package-inputs)
|
|
(home-page freebsd-package-home-page)
|
|
(synopsis freebsd-package-synopsis)
|
|
(description freebsd-package-description)
|
|
(license freebsd-package-license)
|
|
(install-plan freebsd-package-install-plan))
|
|
|
|
(define* (freebsd-package #:key name version build-system (inputs '()) home-page
|
|
synopsis description license install-plan)
|
|
(make-freebsd-package name version build-system inputs home-page synopsis
|
|
description license install-plan))
|
|
|
|
(define freebsd-release "15.0-STABLE")
|
|
|
|
(define freebsd-kernel
|
|
(freebsd-package
|
|
#:name "freebsd-kernel"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for the running FreeBSD kernel"
|
|
#:description
|
|
"Prototype package definition that stages the currently installed FreeBSD
|
|
kernel image into a store-like output for FreeBSD porting experiments."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/boot/kernel/kernel" "boot/kernel/kernel")
|
|
(file "/boot/kernel/linker.hints" "boot/kernel/linker.hints"))))
|
|
|
|
(define freebsd-kernel-headers
|
|
(freebsd-package
|
|
#:name "freebsd-kernel-headers"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for FreeBSD kernel headers"
|
|
#:description
|
|
"Prototype package definition that stages a minimal set of FreeBSD kernel
|
|
header directories from /usr/src for Guix porting experiments."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((directory "/usr/src/sys/sys" "include/sys"))))
|
|
|
|
(define freebsd-libc
|
|
(freebsd-package
|
|
#:name "freebsd-libc"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-kernel-headers)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for FreeBSD libc and userland headers"
|
|
#:description
|
|
"Prototype package definition that stages FreeBSD libc, the dynamic loader,
|
|
and the userland C headers needed for development profiles."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/lib/libc.so.7" "lib/libc.so.7")
|
|
(file "/lib/libsys.so.7" "lib/libsys.so.7")
|
|
(file "/lib/libthr.so.3" "lib/libthr.so.3")
|
|
(file "/lib/libutil.so.10" "lib/libutil.so.10")
|
|
(file "/lib/libxo.so.0" "lib/libxo.so.0")
|
|
(file "/lib/libgeom.so.5" "lib/libgeom.so.5")
|
|
(file "/lib/libc++.so.1" "lib/libc++.so.1")
|
|
(file "/lib/libcxxrt.so.1" "lib/libcxxrt.so.1")
|
|
(file "/lib/libgcc_s.so.1" "lib/libgcc_s.so.1")
|
|
(file "/lib/libm.so.5" "lib/libm.so.5")
|
|
(file "/lib/libelf.so.2" "lib/libelf.so.2")
|
|
(file "/lib/libkvm.so.7" "lib/libkvm.so.7")
|
|
(file "/lib/lib80211.so.1" "lib/lib80211.so.1")
|
|
(file "/lib/libjail.so.1" "lib/libjail.so.1")
|
|
(file "/lib/libnv.so.1" "lib/libnv.so.1")
|
|
(file "/lib/libsbuf.so.6" "lib/libsbuf.so.6")
|
|
(file "/lib/libbsdxml.so.4" "lib/libbsdxml.so.4")
|
|
(file "/lib/libcrypt.so.5" "lib/libcrypt.so.5")
|
|
(file "/lib/libmd.so.7" "lib/libmd.so.7")
|
|
(file "/lib/libedit.so.8" "lib/libedit.so.8")
|
|
(file "/lib/libtinfow.so.9" "lib/libtinfow.so.9")
|
|
(file "/lib/libcasper.so.1" "lib/libcasper.so.1")
|
|
(file "/lib/libcap_syslog.so.1" "lib/libcap_syslog.so.1")
|
|
(file "/lib/libcap_fileargs.so.1" "lib/libcap_fileargs.so.1")
|
|
(file "/lib/libcap_net.so.1" "lib/libcap_net.so.1")
|
|
(file "/lib/libufs.so.8" "lib/libufs.so.8")
|
|
(file "/usr/lib/libdevinfo.so.7" "usr/lib/libdevinfo.so.7")
|
|
(file "/usr/lib/libdevctl.so.5" "usr/lib/libdevctl.so.5")
|
|
(file "/lib/libz.so.6" "lib/libz.so.6")
|
|
(file "/lib/libcrypto.so.35" "lib/libcrypto.so.35")
|
|
(file "/usr/lib/libssl.so.35" "usr/lib/libssl.so.35")
|
|
(file "/usr/lib/libdl.so.1" "usr/lib/libdl.so.1")
|
|
(file "/usr/lib/libpam.so.6" "usr/lib/libpam.so.6")
|
|
(file "/usr/lib/libbsm.so.3" "usr/lib/libbsm.so.3")
|
|
(file "/usr/lib/libblocklist.so.0" "usr/lib/libblocklist.so.0")
|
|
(file "/usr/lib/libregex.so.1" "usr/lib/libregex.so.1")
|
|
(file "/usr/lib/libprivatessh.so.5" "usr/lib/libprivatessh.so.5")
|
|
(file "/usr/lib/libprivateldns.so.5" "usr/lib/libprivateldns.so.5")
|
|
(file "/usr/lib/libwrap.so.6" "usr/lib/libwrap.so.6")
|
|
(file "/usr/lib/libgssapi_krb5.so.122" "usr/lib/libgssapi_krb5.so.122")
|
|
(file "/usr/lib/libkrb5.so.122" "usr/lib/libkrb5.so.122")
|
|
(file "/usr/lib/libk5crypto.so.122" "usr/lib/libk5crypto.so.122")
|
|
(file "/usr/lib/libcom_err.so.122" "usr/lib/libcom_err.so.122")
|
|
(file "/usr/lib/libkrb5support.so.122" "usr/lib/libkrb5support.so.122")
|
|
(file "/libexec/ld-elf.so.1" "libexec/ld-elf.so.1"))))
|
|
|
|
(define freebsd-bootloader
|
|
(freebsd-package
|
|
#:name "freebsd-bootloader"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for FreeBSD loader and boot assets"
|
|
#:description
|
|
"Prototype package definition that stages the FreeBSD boot loader and the
|
|
minimal loader support tree needed for declarative system-closure experiments."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/boot/loader" "boot/loader")
|
|
(file "/boot/loader.efi" "boot/loader.efi")
|
|
(file "/boot/device.hints" "boot/device.hints")
|
|
(directory "/boot/defaults" "boot/defaults")
|
|
(directory "/boot/lua" "boot/lua"))))
|
|
|
|
(define freebsd-sh
|
|
(freebsd-package
|
|
#:name "freebsd-sh"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for the FreeBSD POSIX shell"
|
|
#:description
|
|
"Prototype package definition that stages the base system POSIX shell from
|
|
FreeBSD."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/bin/sh" "bin/sh"))))
|
|
|
|
(define freebsd-userland
|
|
(freebsd-package
|
|
#:name "freebsd-userland"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc freebsd-sh)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for selected FreeBSD userland utilities"
|
|
#:description
|
|
"Prototype package definition that stages a small set of base FreeBSD
|
|
userland commands needed for development and build experiments."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/bin/cat" "bin/cat")
|
|
(file "/bin/chflags" "bin/chflags")
|
|
(file "/bin/chmod" "bin/chmod")
|
|
(file "/bin/cp" "bin/cp")
|
|
(file "/bin/date" "bin/date")
|
|
(file "/bin/dd" "bin/dd")
|
|
(file "/bin/echo" "bin/echo")
|
|
(file "/bin/expr" "bin/expr")
|
|
(file "/bin/ln" "bin/ln")
|
|
(file "/bin/ls" "bin/ls")
|
|
(file "/bin/mkdir" "bin/mkdir")
|
|
(file "/bin/mv" "bin/mv")
|
|
(file "/bin/ps" "bin/ps")
|
|
(file "/bin/pwd" "bin/pwd")
|
|
(file "/bin/rmdir" "bin/rmdir")
|
|
(file "/bin/rm" "bin/rm")
|
|
(file "/bin/sleep" "bin/sleep")
|
|
(file "/bin/stty" "bin/stty")
|
|
(file "/bin/sync" "bin/sync")
|
|
(file "/usr/bin/awk" "usr/bin/awk")
|
|
(file "/usr/bin/basename" "usr/bin/basename")
|
|
(file "/usr/bin/cap_mkdb" "usr/bin/cap_mkdb")
|
|
(file "/usr/bin/cut" "usr/bin/cut")
|
|
(file "/usr/bin/dirname" "usr/bin/dirname")
|
|
(file "/usr/bin/egrep" "usr/bin/egrep")
|
|
(file "/usr/bin/env" "usr/bin/env")
|
|
(file "/usr/bin/find" "bin/find")
|
|
(file "/usr/bin/fsync" "usr/bin/fsync")
|
|
(file "/usr/bin/grep" "usr/bin/grep")
|
|
(file "/usr/bin/mktemp" "usr/bin/mktemp")
|
|
(file "/usr/bin/head" "usr/bin/head")
|
|
(file "/usr/bin/install" "usr/bin/install")
|
|
(file "/usr/bin/limits" "usr/bin/limits")
|
|
(file "/usr/bin/logger" "usr/bin/logger")
|
|
(file "/usr/bin/readlink" "usr/bin/readlink")
|
|
(file "/usr/bin/sed" "usr/bin/sed")
|
|
(file "/usr/bin/sort" "usr/bin/sort")
|
|
(file "/usr/bin/tar" "bin/tar")
|
|
(file "/usr/bin/tr" "usr/bin/tr")
|
|
(file "/usr/bin/uname" "usr/bin/uname")
|
|
(file "/usr/bin/xargs" "bin/xargs"))))
|
|
|
|
(define freebsd-rc-scripts
|
|
(freebsd-package
|
|
#:name "freebsd-rc-scripts"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-sh)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for FreeBSD init and rc script assets"
|
|
#:description
|
|
"Prototype package definition that stages the FreeBSD init and rc support
|
|
files needed by the first Fruix system-closure experiments."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/etc/rc" "etc/rc")
|
|
(file "/etc/rc.subr" "etc/rc.subr")
|
|
(file "/etc/rc.shutdown" "etc/rc.shutdown")
|
|
(file "/etc/devd.conf" "etc/devd.conf")
|
|
(file "/etc/network.subr" "etc/network.subr")
|
|
(file "/etc/newsyslog.conf" "etc/newsyslog.conf")
|
|
(file "/etc/syslog.conf" "etc/syslog.conf")
|
|
(directory "/etc/rc.d" "etc/rc.d")
|
|
(directory "/etc/defaults" "etc/defaults"))))
|
|
|
|
(define freebsd-runtime
|
|
(freebsd-package
|
|
#:name "freebsd-runtime"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc freebsd-sh freebsd-userland freebsd-rc-scripts)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for the minimal FreeBSD runtime"
|
|
#:description
|
|
"Prototype package definition that stages the minimal FreeBSD runtime
|
|
commands needed by the first declarative Fruix system and activation payload
|
|
experiments."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/sbin/adjkerntz" "sbin/adjkerntz")
|
|
(file "/usr/sbin/daemon" "usr/sbin/daemon")
|
|
(file "/sbin/devd" "sbin/devd")
|
|
(file "/sbin/devmatch" "sbin/devmatch")
|
|
(file "/sbin/dmesg" "sbin/dmesg")
|
|
(file "/sbin/fsck" "sbin/fsck")
|
|
(file "/sbin/fsck_ufs" "sbin/fsck_ufs")
|
|
(file "/sbin/gpart" "sbin/gpart")
|
|
(file "/sbin/init" "sbin/init")
|
|
(file "/sbin/ifconfig" "sbin/ifconfig")
|
|
(file "/sbin/md5" "sbin/md5")
|
|
(file "/sbin/mount" "sbin/mount")
|
|
(file "/sbin/rcorder" "sbin/rcorder")
|
|
(file "/sbin/reboot" "sbin/reboot")
|
|
(file "/sbin/sha256" "sbin/sha256")
|
|
(file "/sbin/shutdown" "sbin/shutdown")
|
|
(file "/sbin/swapon" "sbin/swapon")
|
|
(file "/sbin/sysctl" "sbin/sysctl")
|
|
(file "/usr/sbin/chown" "usr/sbin/chown")
|
|
(file "/usr/sbin/cron" "usr/sbin/cron")
|
|
(file "/usr/sbin/devctl" "usr/sbin/devctl")
|
|
(file "/usr/sbin/nologin" "usr/sbin/nologin")
|
|
(file "/usr/sbin/pwd_mkdb" "usr/sbin/pwd_mkdb")
|
|
(file "/usr/sbin/service" "usr/sbin/service")
|
|
(file "/usr/sbin/ip6addrctl" "usr/sbin/ip6addrctl")
|
|
(file "/usr/sbin/newsyslog" "usr/sbin/newsyslog")
|
|
(file "/usr/sbin/syslogd" "usr/sbin/syslogd")
|
|
(file "/usr/sbin/utx" "usr/sbin/utx")
|
|
(file "/usr/bin/id" "usr/bin/id")
|
|
(file "/sbin/kldload" "sbin/kldload")
|
|
(file "/sbin/kldstat" "sbin/kldstat")
|
|
(file "/sbin/devfs" "sbin/devfs")
|
|
(file "/bin/freebsd-version" "bin/freebsd-version")
|
|
(file "/bin/hostname" "bin/hostname")
|
|
(file "/bin/kenv" "bin/kenv")
|
|
(file "/usr/share/locale/C.UTF-8/LC_CTYPE" "usr/share/locale/C.UTF-8/LC_CTYPE"))))
|
|
|
|
(define freebsd-networking
|
|
(freebsd-package
|
|
#:name "freebsd-networking"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc freebsd-runtime freebsd-sh)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for FreeBSD network runtime tools"
|
|
#:description
|
|
"Prototype package definition that stages the minimal FreeBSD networking
|
|
runtime needed for DHCP-based boot validation in virtual machines."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/sbin/dhclient" "sbin/dhclient")
|
|
(file "/sbin/dhclient-script" "sbin/dhclient-script")
|
|
(file "/sbin/route" "sbin/route")
|
|
(file "/usr/bin/netstat" "usr/bin/netstat")
|
|
(file "/usr/sbin/arp" "usr/sbin/arp"))))
|
|
|
|
(define freebsd-openssh
|
|
(freebsd-package
|
|
#:name "freebsd-openssh"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc freebsd-runtime freebsd-sh)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for the FreeBSD OpenSSH runtime"
|
|
#:description
|
|
"Prototype package definition that stages the FreeBSD OpenSSH server and
|
|
client tools needed for first-boot operator access on the Fruix prototype
|
|
track."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/usr/sbin/sshd" "usr/sbin/sshd")
|
|
(file "/usr/bin/ssh" "usr/bin/ssh")
|
|
(file "/usr/bin/ssh-keygen" "usr/bin/ssh-keygen")
|
|
(file "/usr/libexec/sshd-auth" "usr/libexec/sshd-auth")
|
|
(file "/usr/libexec/sshd-session" "usr/libexec/sshd-session")
|
|
(file "/etc/ssh/moduli" "etc/ssh/moduli"))))
|
|
|
|
(define freebsd-clang-toolchain
|
|
(freebsd-package
|
|
#:name "freebsd-clang-toolchain"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc freebsd-kernel-headers freebsd-sh)
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Prototype package for the FreeBSD Clang toolchain"
|
|
#:description
|
|
"Prototype package definition that stages the base FreeBSD Clang-based C
|
|
and C++ toolchain into a profile-friendly output."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((file "/usr/bin/cc" "bin/cc")
|
|
(file "/usr/bin/c++" "bin/c++")
|
|
(file "/usr/bin/clang" "bin/clang")
|
|
(file "/usr/bin/clang++" "bin/clang++")
|
|
(file "/usr/bin/ar" "bin/ar")
|
|
(file "/usr/bin/ranlib" "bin/ranlib")
|
|
(file "/usr/bin/nm" "bin/nm")
|
|
(file "/usr/bin/ld" "bin/ld"))))
|
|
|
|
(define freebsd-gmake
|
|
(freebsd-package
|
|
#:name "freebsd-gmake"
|
|
#:version "4.4.1"
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-sh freebsd-libc)
|
|
#:home-page "https://www.gnu.org/software/make/"
|
|
#:synopsis "Prototype package for GNU Make on FreeBSD"
|
|
#:description
|
|
"Prototype package definition that stages the GNU Make binary from the
|
|
FreeBSD ports collection for use in build profiles."
|
|
#:license 'gpl3+
|
|
#:install-plan
|
|
'((file "/usr/local/bin/gmake" "bin/gmake")
|
|
(file "/usr/local/bin/gmake" "bin/make"))))
|
|
|
|
(define freebsd-bash
|
|
(freebsd-package
|
|
#:name "freebsd-bash"
|
|
#:version "5.3.9"
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc)
|
|
#:home-page "https://www.gnu.org/software/bash/"
|
|
#:synopsis "Prototype package for GNU Bash on FreeBSD"
|
|
#:description
|
|
"Prototype package definition that stages the Bash binary from the
|
|
FreeBSD ports collection for development profiles."
|
|
#:license 'gpl3+
|
|
#:install-plan
|
|
'((file "/usr/local/bin/bash" "bin/bash"))))
|
|
|
|
(define freebsd-autotools
|
|
(freebsd-package
|
|
#:name "freebsd-autotools"
|
|
#:version "2026-04"
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-gmake freebsd-bash freebsd-libc)
|
|
#:home-page "https://www.gnu.org/software/autoconf/"
|
|
#:synopsis "Prototype package for Autotools on FreeBSD"
|
|
#:description
|
|
"Prototype package definition that stages the Autoconf, Automake, Libtool,
|
|
pkg-config, and GNU m4 tools needed by FreeBSD Guix build experiments."
|
|
#:license 'gpl3+
|
|
#:install-plan
|
|
'((file "/usr/local/bin/autoconf" "bin/autoconf")
|
|
(file "/usr/local/bin/autoheader" "bin/autoheader")
|
|
(file "/usr/local/bin/autom4te" "bin/autom4te")
|
|
(file "/usr/local/bin/automake" "bin/automake")
|
|
(file "/usr/local/bin/aclocal" "bin/aclocal")
|
|
(file "/usr/local/bin/autoreconf" "bin/autoreconf")
|
|
(file "/usr/local/bin/libtoolize" "bin/libtoolize")
|
|
(file "/usr/local/bin/pkg-config" "bin/pkg-config")
|
|
(file "/usr/local/bin/gm4" "bin/m4")
|
|
(directory "/usr/local/share/autoconf2.72" "share/autoconf2.72")
|
|
(directory "/usr/local/share/automake-1.18" "share/automake-1.18")
|
|
(directory "/usr/local/share/aclocal" "share/aclocal")
|
|
(directory "/usr/local/share/libtool" "share/libtool"))))
|
|
|
|
(define freebsd-openssl
|
|
(freebsd-package
|
|
#:name "freebsd-openssl"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc)
|
|
#:home-page "https://www.openssl.org/"
|
|
#:synopsis "Prototype package for OpenSSL libraries from FreeBSD base"
|
|
#:description
|
|
"Prototype package definition that stages the OpenSSL shared libraries
|
|
shipped with FreeBSD base."
|
|
#:license 'openssl
|
|
#:install-plan
|
|
'((file "/usr/lib/libcrypto.so" "lib/libcrypto.so")
|
|
(file "/usr/lib/libssl.so" "lib/libssl.so"))))
|
|
|
|
(define freebsd-zlib
|
|
(freebsd-package
|
|
#:name "freebsd-zlib"
|
|
#:version freebsd-release
|
|
#:build-system 'copy-build-system
|
|
#:inputs (list freebsd-libc)
|
|
#:home-page "https://zlib.net/"
|
|
#:synopsis "Prototype package for zlib from FreeBSD base"
|
|
#:description
|
|
"Prototype package definition that stages the base FreeBSD zlib shared
|
|
library for profile experiments."
|
|
#:license 'zlib
|
|
#:install-plan
|
|
'((file "/lib/libz.so.6" "lib/libz.so.6"))))
|
|
|
|
(define freebsd-native-kernel
|
|
(freebsd-package
|
|
#:name "freebsd-native-kernel"
|
|
#:version freebsd-release
|
|
#:build-system 'freebsd-kernel-build-system
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Native Fruix-managed FreeBSD kernel artifact"
|
|
#:description
|
|
"FreeBSD-specific package definition that builds a kernel from /usr/src and
|
|
stages the resulting boot/kernel tree as a real Fruix store artifact. This is
|
|
the first native replacement for the earlier host-copy kernel package."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((source-root . "/usr/src")
|
|
(target . "amd64")
|
|
(target-arch . "amd64")
|
|
(kernconf . "GENERIC")
|
|
(make-flags . ("__MAKE_CONF=/dev/null"
|
|
"SRCCONF=/dev/null"
|
|
"SRC_ENV_CONF=/dev/null"
|
|
"MK_DEBUG_FILES=no"
|
|
"MK_TESTS=no")))))
|
|
|
|
(define freebsd-native-world
|
|
(freebsd-package
|
|
#:name "freebsd-native-world"
|
|
#:version freebsd-release
|
|
#:build-system 'freebsd-world-build-system
|
|
#:home-page "https://www.freebsd.org/"
|
|
#:synopsis "Native Fruix-managed FreeBSD world artifact"
|
|
#:description
|
|
"FreeBSD-specific package definition that builds and installs a minimal
|
|
runtime-oriented world from /usr/src into a real Fruix store artifact. The
|
|
first split intentionally focuses on the world needed for the Fruix guest to
|
|
boot, network, activate, and run Shepherd."
|
|
#:license 'bsd-2
|
|
#:install-plan
|
|
'((source-root . "/usr/src")
|
|
(target . "amd64")
|
|
(target-arch . "amd64")
|
|
(kernconf . "GENERIC")
|
|
(make-flags . ("__MAKE_CONF=/dev/null"
|
|
"SRCCONF=/dev/null"
|
|
"SRC_ENV_CONF=/dev/null"
|
|
"MK_DEBUG_FILES=no"
|
|
"MK_TESTS=no"))
|
|
(prune-paths . ("usr/share/doc"
|
|
"usr/share/examples"
|
|
"usr/share/info"
|
|
"usr/share/man"
|
|
"usr/tests")))))
|
|
|
|
(define (freebsd-native-build-package? package)
|
|
(not (not (memq (freebsd-package-build-system package)
|
|
'(freebsd-kernel-build-system freebsd-world-build-system)))))
|
|
|
|
;; Transitional boundary: the FreeBSD base layer below is still staged by
|
|
;; copying selected artifacts from the builder host. Plan 3 keeps these
|
|
;; package sets explicit so they can be replaced incrementally by native
|
|
;; FreeBSD world/kernel build outputs in /frx/store.
|
|
|
|
(define %freebsd-host-staged-core-packages
|
|
(list freebsd-kernel
|
|
freebsd-kernel-headers
|
|
freebsd-libc
|
|
freebsd-userland
|
|
freebsd-clang-toolchain
|
|
freebsd-gmake
|
|
freebsd-autotools
|
|
freebsd-openssl
|
|
freebsd-zlib
|
|
freebsd-sh
|
|
freebsd-bash))
|
|
|
|
(define %freebsd-host-staged-development-profile-packages
|
|
(list freebsd-kernel
|
|
freebsd-kernel-headers
|
|
freebsd-libc
|
|
freebsd-userland
|
|
freebsd-clang-toolchain
|
|
freebsd-gmake
|
|
freebsd-autotools
|
|
freebsd-openssl
|
|
freebsd-zlib
|
|
freebsd-sh
|
|
freebsd-bash))
|
|
|
|
(define %freebsd-host-staged-system-packages
|
|
(list freebsd-kernel
|
|
freebsd-bootloader
|
|
freebsd-libc
|
|
freebsd-rc-scripts
|
|
freebsd-runtime
|
|
freebsd-networking
|
|
freebsd-openssh
|
|
freebsd-userland
|
|
freebsd-sh
|
|
freebsd-bash))
|
|
|
|
(define %freebsd-host-staged-all-packages
|
|
(delete-duplicates
|
|
(append %freebsd-host-staged-core-packages
|
|
%freebsd-host-staged-development-profile-packages
|
|
%freebsd-host-staged-system-packages)))
|
|
|
|
(define (freebsd-host-staged-package? package)
|
|
(and (not (freebsd-native-build-package? package))
|
|
(any (lambda (candidate)
|
|
(string=? (freebsd-package-name candidate)
|
|
(freebsd-package-name package)))
|
|
%freebsd-host-staged-all-packages)))
|
|
|
|
(define %freebsd-host-staged-replacement-order
|
|
'((first-wave . (freebsd-kernel freebsd-bootloader))
|
|
(second-wave . (freebsd-runtime freebsd-libc freebsd-userland freebsd-rc-scripts))
|
|
(third-wave . (freebsd-networking freebsd-openssh))
|
|
(fourth-wave . (freebsd-kernel-headers freebsd-clang-toolchain))
|
|
(fifth-wave . (freebsd-gmake freebsd-autotools freebsd-openssl freebsd-zlib freebsd-sh freebsd-bash))))
|
|
|
|
(define %freebsd-core-packages %freebsd-host-staged-core-packages)
|
|
(define %freebsd-development-profile-packages %freebsd-host-staged-development-profile-packages)
|
|
(define %freebsd-system-packages %freebsd-host-staged-system-packages)
|