summaryrefslogtreecommitdiff
path: root/guix/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'guix/PKGBUILD')
-rw-r--r--guix/PKGBUILD139
1 files changed, 139 insertions, 0 deletions
diff --git a/guix/PKGBUILD b/guix/PKGBUILD
new file mode 100644
index 0000000..2c6f93c
--- /dev/null
+++ b/guix/PKGBUILD
@@ -0,0 +1,139 @@
+# Copyright (C) 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the CC0 1.0 License.
+# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+_distro=guix
+pkgbase=guix
+pkgname=("${pkgbase}"
+ "${pkgbase}-all"
+ "${pkgbase}-src"
+ "${pkgbase}-1.4.0-x86_64-linux"
+ "${pkgbase}-1.4.0-i686-linux")
+pkgver=1.4.0
+pkgrel=1
+pkgdesc="Guix docker image(s)"
+arch=('x86_64')
+url='https://guix.gnu.org/'
+license=('FSDG')
+# This docker image follows the Free System Distribution Guidelines (GNU FSDG)
+# The FSDG itself is under the CC-BY-ND-4.0
+source=('free-system-distribution-guidelines.html'
+ 'CC-BY-ND-4.0.txt'
+ 'docker-image.scm'
+ 'GPL3.txt'
+ "${pkgbase}.sha512")
+sha512sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP')
+
+prepare(){
+ mkdir -p build
+ mkdir -p sources
+}
+
+_build_tarball(){
+ _version="$1"
+ _system="$2"
+ _guix="${HOME}/.config/guix/current/bin/guix"
+
+ cd "${srcdir}/build"
+
+ install \
+ -m644 \
+ $(${_guix} time-machine --commit="v${_version}" -- \
+ system image -s "${_system}" \
+ -t docker \
+ "${srcdir}/docker-image.scm") \
+ "${pkgbase}-${_version}-${_system}.tar.gz"
+
+ # Comment the gunzip and xz commands and uncomment the mv
+ # command if you want to do faster builds for testing
+ # some modifications.
+ gunzip -f -v "${pkgbase}-${_version}-${_system}.tar.gz"
+ xz -f -9e --verbose -T 0 "${pkgbase}-${_version}-${_system}.tar"
+ # mv -f "${pkgbase}-v${_version}-${_system}.tar.gz" \
+ # "${pkgbase}-v${_version}-${_system}.tar.xz"
+}
+
+_build_source_tarball(){
+ _version="$1"
+ _system="$2"
+ _guix="${HOME}/.config/guix/current/bin/guix"
+
+ cd "${srcdir}/sources"
+
+ tar cf "${pkgbase}-${_version}-${_system}-src.tar" \
+ $(${_guix} time-machine --commit="v${_version}" -- \
+ build -s "${_system}" \
+ --source \
+ -e '(@@ (gnu system) %base-packages)')
+}
+
+build(){
+ _build_tarball "${pkgver}" "x86_64-linux"
+ _build_source_tarball "${pkgver}" "x86_64-linux"
+ _build_tarball "${pkgver}" "i686-linux"
+ _build_source_tarball "${pkgver}" "i686-linux"
+}
+
+_install_tarball(){
+ _tarball="$1"
+
+ cd "${srcdir}/build"
+ install \
+ -d "${pkgdir}/usr/share/docker-images/${pkgbase}/"
+ install "${_tarball}" \
+ -t "${pkgdir}/usr/share/docker-images/${pkgbase}/"
+}
+
+_install_source_tarball(){
+ _version="$1"
+ _system="$2"
+ _tarball="${pkgbase}-${_version}-${_system}-src.tar"
+
+ cd "${srcdir}/sources"
+ install \
+ -d "${pkgdir}/usr/share/docker-images/${pkgbase}/"
+ install "${_tarball}" \
+ -t "${pkgdir}/usr/share/docker-images/${pkgbase}/"
+}
+
+package_guix() {
+ install \
+ -d "${pkgdir}/usr/share/licenses/${pkgbase}/"
+ install free-system-distribution-guidelines.html \
+ -t "${pkgdir}/usr/share/licenses/${pkgbase}/"
+ install CC-BY-ND-4.0.txt \
+ -t "${pkgdir}/usr/share/licenses/${pkgbase}/"
+ install GPL3.txt \
+ -t "${pkgdir}/usr/share/licenses/${pkgbase}/"
+
+ install \
+ -d "${pkgdir}/usr/share/docker-images/${pkgbase}/"
+ install "docker-image.scm" \
+ -t "${pkgdir}/usr/share/docker-images/${pkgbase}/"
+}
+
+package_guix-all(){
+ depends=("${pkgbase}"
+ "${pkgbase}-1.4.0-x86_64-linux"
+ "${pkgbase}-1.4.0-i686-linux")
+}
+
+package_guix-1.4.0-x86_64-linux(){
+ _install_tarball "${pkgname}.tar.xz"
+}
+package_guix-1.4.0-i686-linux(){
+ _install_tarball "${pkgname}.tar.xz"
+}
+package_guix-src(){
+ _install_source_tarball "${pkgver}" "x86_64-linux"
+ _install_source_tarball "${pkgver}" "i686-linux"
+}
+
+check(){
+ cd "${srcdir}/build"
+ sha512sum -c "${srcdir}/${pkgbase}.sha512"
+}