Name: build-drv Version: 0.1 Release: 1%{?dist} Summary: Build Guix derivations License: GPL-2.0 URL: https://codeberg.org/zanc/%{name} Source0: https://ftp.gnu.org/gnu/guix/guix-binary-1.5.0.x86_64-linux.tar.xz Source1: https://substitutes.nonguix.org/signing-key.pub Source2: channels.scm BuildRequires: wget %description Don't forget to enable network to the builder (e.g. --enable-network in mock/fedpkg). %build tar --extract --strip-components=1 --file %SOURCE0 -C / groupadd --system guix-daemon useradd -g "guix-daemon" -G "guix-daemon" \ -d /var/empty -s "$(command -v nologin)" \ -c "Unprivileged Guix Daemon User" --system "guix-daemon" mkdir -p ~root/.config/guix ln -sf /var/guix/profiles/per-user/root/current-guix \ ~root/.config/guix/current GUIX_PROFILE=~root/.config/guix/current source "${GUIX_PROFILE}/etc/profile" chown -R guix-daemon:guix-daemon /gnu /var/guix chown -R root:root /var/guix/profiles/per-user/root mkdir -p /var/log/guix chown guix-daemon:guix-daemon /var/log/guix chmod 755 /var/log/guix groupadd --system guixbuild for i in $(seq -w 1 10); do useradd -g "guixbuild" -G guixbuild \ -d /var/empty -s "$(command -v nologin)" \ -c "Guix build user $i" --system "guixbuilder${i}" done for host in bordeaux.guix.gnu.org ci.guix.gnu.org %SOURCE1; do key=~root/.config/guix/current/share/guix/$host.pub [ -f "$key" ] \ && guix archive --authorize < "$key" done guix-daemon --build-users-group=guixbuild --disable-chroot \ --substitute-urls='https://bordeaux.guix.gnu.org https://ci.guix.gnu.org https://substitutes.nonguix.org' & cp -f %SOURCE2 ~root/.config/guix guix pull guix archive --generate-key # generates /etc/guix/signing-key.pub guix archive --export -r $(realpath ~root/.guix-profile) linux-7.2 >result.nar # To import the resulting derivations to your Guix machine: # rpm2cpio build-drv-0.1-1.fc44.x86_64.rpm | cpio -idmuv # guix archive --authorize - initial version