aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-07 16:58:28 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-07 16:59:02 +0200
commit395d39c80c4281840755e54eec65bcf157eae509 (patch)
tree6d2e4841d72584196c1780648755fa6c8e199fc5
parentpkgs/stalwart-mail-patched: Use different native-ca-roots patch (diff)
downloadnixos-server-395d39c80c4281840755e54eec65bcf157eae509.zip
pkgs/stalwart-mail-patched/spamfilter: Provide infrastructure to update it
Otherwise, this package will never be updated.
Diffstat (limited to '')
-rw-r--r--flake.nix11
-rw-r--r--pkgs/by-name/st/stalwart-mail-patched/package.nix1
-rw-r--r--pkgs/by-name/st/stalwart-mail-patched/spam-filter.nix4
-rwxr-xr-xpkgs/by-name/st/stalwart-mail-patched/update.sh5
-rw-r--r--pkgs/standalone_pkgs.nix11
5 files changed, 26 insertions, 6 deletions
diff --git a/flake.nix b/flake.nix
index 3fb7728..b67caa5 100644
--- a/flake.nix
+++ b/flake.nix
@@ -153,13 +153,16 @@
devShells."${system}" = {
default = pkgs.mkShell {
- packages = with pkgs; [
+ packages = [
pkgs.deploy-rs
- git-bug
+ pkgs.git-bug
- cocogitto
- ragenix
+ # Used to update the stalwart-mail spamfilter
+ pkgs.nix-update
+
+ pkgs.cocogitto
+ pkgs.ragenix
];
};
};
diff --git a/pkgs/by-name/st/stalwart-mail-patched/package.nix b/pkgs/by-name/st/stalwart-mail-patched/package.nix
index 9058f2c..85ab840 100644
--- a/pkgs/by-name/st/stalwart-mail-patched/package.nix
+++ b/pkgs/by-name/st/stalwart-mail-patched/package.nix
@@ -9,6 +9,7 @@ in
pname = "stalwart-mail-patched";
passthru = nixLib.warnMerge (prev.passthru or {}) {
+ # Use a reproducible source for the spamfilter instead of fetching it at runtime from GitHub.
inherit spamfilter;
} "stalwart-mail passthru";
diff --git a/pkgs/by-name/st/stalwart-mail-patched/spam-filter.nix b/pkgs/by-name/st/stalwart-mail-patched/spam-filter.nix
index ce3466d..32f5e06 100644
--- a/pkgs/by-name/st/stalwart-mail-patched/spam-filter.nix
+++ b/pkgs/by-name/st/stalwart-mail-patched/spam-filter.nix
@@ -4,13 +4,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "spam-filter";
- version = "2.0.2";
+ version = "2.0.3";
src = fetchFromGitHub {
owner = "stalwartlabs";
repo = "spam-filter";
tag = "v${finalAttrs.version}";
- hash = "sha256-p2F0bwYBNWeoHjp9csWWaqeOISk9dNQT28OqkhUr7ew=";
+ hash = "sha256-NhD/qUiGhgESwR2IOzAHfDATRlgWMcCktlktvVfDONk=";
};
buildPhase = ''
diff --git a/pkgs/by-name/st/stalwart-mail-patched/update.sh b/pkgs/by-name/st/stalwart-mail-patched/update.sh
new file mode 100755
index 0000000..f32f117
--- /dev/null
+++ b/pkgs/by-name/st/stalwart-mail-patched/update.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env sh
+
+nix-update --file ../../../standalone_pkgs.nix stalwart-mail-patched.passthru.spamfilter --build --option pure-eval false
+
+# vim: ft=sh
diff --git a/pkgs/standalone_pkgs.nix b/pkgs/standalone_pkgs.nix
new file mode 100644
index 0000000..1eeaad3
--- /dev/null
+++ b/pkgs/standalone_pkgs.nix
@@ -0,0 +1,11 @@
+# `nix-update` wants a entry point similar to `release.nix`.
+# This means that we have to fetch our dependencies on our own.
+{}: let
+ get = input: import (builtins.fetchTree input.locked).outPath {};
+
+ lock = (builtins.fromJSON (builtins.readFile ../flake.lock)).nodes;
+ pkgs = get lock.nixpkgs;
+ pkgsUnstable = get lock.nixpkgs-unstable;
+ nixLib = get lock.library;
+in
+ import ./default.nix {inherit pkgs pkgsUnstable nixLib;}