From dadded91e177c5ae64099e4d82b8de90812a3bdc Mon Sep 17 00:00:00 2001 From: Steffen Beyer Date: Tue, 31 Mar 2026 00:04:51 +0200 Subject: [PATCH] Add substitute seed manifests --- manifests/substitutes/base.scm | 44 +++++++++++++++++++++++++++ manifests/substitutes/installer.scm | 37 ++++++++++++++++++++++ manifests/substitutes/tribes-node.scm | 39 ++++++++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 manifests/substitutes/base.scm create mode 100644 manifests/substitutes/installer.scm create mode 100644 manifests/substitutes/tribes-node.scm diff --git a/manifests/substitutes/base.scm b/manifests/substitutes/base.scm new file mode 100644 index 0000000..ee2f6de --- /dev/null +++ b/manifests/substitutes/base.scm @@ -0,0 +1,44 @@ +(define-module (manifests substitutes base) + #:use-module (gnu packages) + #:use-module (guix profiles) + #:use-module (nbde packages crypto) + #:use-module (tribes packages otp) + #:use-module (tribes packages terminals)) + +(define %base-specifications + '("bash-minimal" + "coreutils" + "diffutils" + "findutils" + "gawk" + "grep" + "gzip" + "inetutils" + "iproute2" + "less" + "nss-certs" + "openssh" + "postgresql" + "procps" + "rsync" + "sed" + "tar" + "which" + "xz" + "cryptsetup" + "dosfstools" + "e2fsprogs" + "gptfdisk" + "kmod" + "parted" + "util-linux")) + +(packages->manifest + (append (map specification->package %base-specifications) + (list clevis + tang + luksmeta + erlang-28 + elixir-otp28 + elixir-hex-otp28 + ghostty-terminfo))) diff --git a/manifests/substitutes/installer.scm b/manifests/substitutes/installer.scm new file mode 100644 index 0000000..efaa599 --- /dev/null +++ b/manifests/substitutes/installer.scm @@ -0,0 +1,37 @@ +(define-module (manifests substitutes installer) + #:use-module (gnu packages) + #:use-module (guix profiles) + #:use-module (nbde packages crypto)) + +(define %installer-specifications + '("bash-minimal" + "coreutils" + "diffutils" + "findutils" + "gawk" + "grep" + "gzip" + "guix" + "inetutils" + "iproute2" + "kexec-tools" + "less" + "nss-certs" + "procps" + "rsync" + "sed" + "tar" + "which" + "xz" + "cryptsetup" + "dosfstools" + "e2fsprogs" + "gptfdisk" + "kmod" + "parted" + "util-linux")) + +(packages->manifest + (append (map specification->package %installer-specifications) + (list clevis + luksmeta))) diff --git a/manifests/substitutes/tribes-node.scm b/manifests/substitutes/tribes-node.scm new file mode 100644 index 0000000..7d18659 --- /dev/null +++ b/manifests/substitutes/tribes-node.scm @@ -0,0 +1,39 @@ +(define-module (manifests substitutes tribes-node) + #:use-module (gnu packages) + #:use-module (guix profiles) + #:use-module (tribes packages otp) + #:use-module (tribes packages source) + #:use-module (tribes packages terminals)) + +(define %tribes-node-specifications + '("nss-certs" + "openssh" + "postgresql" + "rsync" + "ripgrep" + "fd" + "tmux" + "neovim" + "btop")) + +(define (make-tribes-node-manifest) + (let ((source-directory (getenv "TRIBES_SOURCE_DIRECTORY")) + (mix-deps-directory (getenv "TRIBES_MIX_DEPS_DIRECTORY")) + (parrhesia-directory (getenv "TRIBES_PARRHESIA_DIRECTORY"))) + (packages->manifest + (append + (map specification->package %tribes-node-specifications) + (list erlang-28 + elixir-otp28 + elixir-hex-otp28 + ghostty-terminfo) + (if (and source-directory mix-deps-directory parrhesia-directory) + (list + (tribes-source-package + (tribes-source-directory->local-file source-directory) + (tribes-source-directory->local-file mix-deps-directory) + (tribes-source-directory->local-file parrhesia-directory) + #:version (or (getenv "TRIBES_RELEASE_VERSION") "dev"))) + '()))))) + +(make-tribes-node-manifest)