360 lines
12 KiB
Scheme
360 lines
12 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-userland
|
|
freebsd-clang-toolchain
|
|
freebsd-gmake
|
|
freebsd-autotools
|
|
freebsd-openssl
|
|
freebsd-zlib
|
|
freebsd-sh
|
|
freebsd-bash
|
|
%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/libutil.so.10" "lib/libutil.so.10")
|
|
(file "/lib/libxo.so.0" "lib/libxo.so.0")
|
|
(file "/lib/libm.so.5" "lib/libm.so.5")
|
|
(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 "/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/cp" "bin/cp")
|
|
(file "/bin/echo" "bin/echo")
|
|
(file "/bin/ln" "bin/ln")
|
|
(file "/bin/ls" "bin/ls")
|
|
(file "/bin/mkdir" "bin/mkdir")
|
|
(file "/bin/mv" "bin/mv")
|
|
(file "/bin/pwd" "bin/pwd")
|
|
(file "/bin/rm" "bin/rm")
|
|
(file "/usr/bin/find" "bin/find")
|
|
(file "/usr/bin/tar" "bin/tar")
|
|
(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")
|
|
(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/init" "sbin/init")
|
|
(file "/sbin/mount" "sbin/mount")
|
|
(file "/sbin/ifconfig" "sbin/ifconfig")
|
|
(file "/sbin/reboot" "sbin/reboot")
|
|
(file "/sbin/shutdown" "sbin/shutdown")
|
|
(file "/usr/sbin/service" "usr/sbin/service")
|
|
(file "/usr/sbin/pw" "usr/sbin/pw")
|
|
(file "/usr/bin/id" "usr/bin/id")
|
|
(file "/bin/hostname" "bin/hostname")
|
|
(file "/bin/kenv" "bin/kenv"))))
|
|
|
|
(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-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-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-system-packages
|
|
(list freebsd-kernel
|
|
freebsd-bootloader
|
|
freebsd-libc
|
|
freebsd-rc-scripts
|
|
freebsd-runtime
|
|
freebsd-userland
|
|
freebsd-sh
|
|
freebsd-bash))
|