From 3c8725287cfd3be14b9d8921c91fd6b0fe3d806b Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 8 Aug 2026 09:39:13 +0000 Subject: [PATCH 1/7] Add anisette-v3-server package (SideStore anisette server) --- overlays/default.nix | 1 + pkgs/anisette-v3-server/default.nix | 27 +++++++ pkgs/anisette-v3-server/dub-lock.json | 108 ++++++++++++++++++++++++++ pkgs/default.nix | 1 + 4 files changed, 137 insertions(+) create mode 100644 pkgs/anisette-v3-server/default.nix create mode 100644 pkgs/anisette-v3-server/dub-lock.json diff --git a/overlays/default.nix b/overlays/default.nix index c264017..d60b235 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -4,6 +4,7 @@ let in { inherit (packages) + anisette-v3-server audiveris example-a example-b diff --git a/pkgs/anisette-v3-server/default.nix b/pkgs/anisette-v3-server/default.nix new file mode 100644 index 0000000..d6f9350 --- /dev/null +++ b/pkgs/anisette-v3-server/default.nix @@ -0,0 +1,27 @@ +{ + lib, + buildDubPackage, + fetchFromGitHub, +}: + +buildDubPackage rec { + pname = "anisette-v3-server"; + version = "unstable-2026-08-01"; + + src = fetchFromGitHub { + owner = "Dadoum"; + repo = "anisette-v3-server"; + rev = "2ef18d7da2abe3a6d070aa478f774538b947aaa2"; + hash = "sha256-G8loi2BTIRKamLeY8DiN4BLSrRxh13BNvs8bC2l9zNo="; + }; + + dubLock = ./dub-lock.json; + + meta = { + description = "Anisette server implementing SideStore's anisette v3 protocol"; + homepage = "https://github.com/Dadoum/anisette-v3-server"; + license = lib.licenses.agpl3Only; + mainProgram = "anisette-v3-server"; + platforms = lib.platforms.linux; + }; +} diff --git a/pkgs/anisette-v3-server/dub-lock.json b/pkgs/anisette-v3-server/dub-lock.json new file mode 100644 index 0000000..0d86e36 --- /dev/null +++ b/pkgs/anisette-v3-server/dub-lock.json @@ -0,0 +1,108 @@ +{ + "dependencies": { + "automem": { + "version": "0.6.11", + "sha256": "0l3cbkji47p9myhdpmm83s4j8rjvdwkyln1hinlw1kzph4dgb5wn" + }, + "cachetools": { + "version": "0.4.2", + "sha256": "0l24y3pwnwxdf1zkx7nxgiscf2ycyj4a4cqhy2qn9syvmdgy6rd4" + }, + "diet-ng": { + "version": "1.8.4", + "sha256": "03c3pmc9w0s3yf1xipmiw5jiy3aifk6bby3z015vvn80s59mk18c" + }, + "during": { + "version": "0.3.0", + "sha256": "1xkfwhvnr67k0vy664sadj0hjifbs0257cbfjw86jp7rvjkn0myi" + }, + "dxml": { + "version": "0.4.4", + "sha256": "0p5vmkw29ksh5wdxz1ijms1wblq288pv15vnbl93z7q2vgnq995w" + }, + "dynamic-loader": { + "version": "9202b389affa6be0740e7295dea8f0146537a784", + "repository": "https://github.com/Dadoum/dynamicloader.git", + "sha256": "0l2d7pd5r3crkvgi9i8fbcmcbzkw12syf1i7pnics75w1gk5f717" + }, + "eventcore": { + "version": "0.9.38", + "sha256": "00hk3n75c7vvzggxlr9zclhy6n4fdjkm0f1jj5riymhznm3prmqi" + }, + "libasync": { + "version": "0.8.6", + "sha256": "0hhk5asfdccby8ky77a25qn7dfmfdmwyzkrg3zk064bicmgdwlnj" + }, + "memutils": { + "version": "1.0.10", + "sha256": "0hm31birbw59sw1bi9syjhbcdgwwwyyx6r9jg7ar9i6a74cjr52c" + }, + "mir-linux-kernel": { + "version": "1.0.1", + "sha256": "0adyjpcgd65z44iydnrrrpjwbvmrm08a3pkcriqi7npqylfysqn6" + }, + "openssl": { + "version": "3.4.0", + "sha256": "0y71p03v05v797bkk0b3sbdkncqb5ch3a48nxaly6dxfdz4w247m" + }, + "openssl-static": { + "version": "1.0.5+3.0.8", + "sha256": "0wpqz29yrbbh39g3cwlgd6h6hh1msws7w5baw1kywdkgj761gx2k" + }, + "plist": { + "version": "a425458e2c3d8195c6a9ad68e643f2d823850693", + "repository": "https://github.com/Dadoum/plist.git", + "sha256": "0174dpkkf8l235f8p0d1ql26646xd8y869ckz1xmg6rjc71vlvnc" + }, + "plist-d": { + "version": "6fdaa60d62bbf7c55044069e8f03cbe74401c444", + "repository": "https://github.com/Dadoum/libplist-d.git", + "sha256": "00v556i9ky3r8dixa53dmy3dfbq19mih6fd7a38cjwpk6pvc1is2" + }, + "provision": { + "version": "7717ce1f7b3c9779fe9982005d07b6665071a239", + "repository": "https://github.com/Dadoum/Provision.git", + "sha256": "0298v7m434vqdqjyfbz06yq5ksn1vylkrizdv39smk59xjdpqdk0" + }, + "requests": { + "version": "2.2.0", + "sha256": "08bffhn9jbba1kvyi3fp1sg28cbdj49vvd3dga1s8q6zd679lnic" + }, + "silly": { + "version": "1.1.1", + "sha256": "0fz7ib715sfk3w69i6xns5pwd4caahvfqjf32v13daxm1ms8xdzz" + }, + "slf4d": { + "version": "2.1.1", + "sha256": "1ds9p4mrsfc7a94x5asgyp8hm53qix7yi92233yk1xd5qz5slp0a" + }, + "stdx-allocator": { + "version": "2.77.5", + "sha256": "1g8382wr49sjyar0jay8j7y2if7h1i87dhapkgxphnizp24d7kaj" + }, + "taggedalgebraic": { + "version": "1.0.1", + "sha256": "1xwczhidhb4d6lw342fwx8da4vdwryv9gq8p41bh7184300aafl9" + }, + "test_allocator": { + "version": "0.3.4", + "sha256": "1xpjz6smxwgm4walrv3xbzi46cddc80q5n4gs7j9gm2yx11sf7gj" + }, + "unit-threaded": { + "version": "2.2.3", + "sha256": "070qlnr33miyg6w6q8yvry8nnxng23vdklvbr94dmjrbplxb9fy8" + }, + "vibe-container": { + "version": "1.7.1", + "sha256": "1fll4lwf2lrjwqlhgdfzwbnw1x3fk8r49329jj1clch6acspzf3m" + }, + "vibe-core": { + "version": "2.13.3", + "sha256": "0iq65j0wan812lpq4d1zsqd2fjwbz8fnl3cagghqq4iq0wl3xlrv" + }, + "vibe-d": { + "version": "0.9.8", + "sha256": "1gficgfzwswaxj9qlnca28c65gl7xq6q8y47qlf4m1gvkxj4ij2k" + } + } +} diff --git a/pkgs/default.nix b/pkgs/default.nix index a72de11..0841270 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -3,6 +3,7 @@ }: let self = { + anisette-v3-server = pkgs.callPackage ./anisette-v3-server { }; audiveris = pkgs.callPackage ./audiveris { }; dolos = pkgs.callPackage ./dolos { nodejs = pkgs.nodejs_22; }; eqc = pkgs.callPackage ./eqc { }; -- 2.55.0 From 54cddab7cc1500510421cf24068877cc311069fa Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 8 Aug 2026 09:43:06 +0000 Subject: [PATCH 2/7] Add zlib and openssl buildInputs for linking --- pkgs/anisette-v3-server/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/anisette-v3-server/default.nix b/pkgs/anisette-v3-server/default.nix index d6f9350..e715e2b 100644 --- a/pkgs/anisette-v3-server/default.nix +++ b/pkgs/anisette-v3-server/default.nix @@ -2,6 +2,8 @@ lib, buildDubPackage, fetchFromGitHub, + zlib, + openssl, }: buildDubPackage rec { @@ -17,6 +19,8 @@ buildDubPackage rec { dubLock = ./dub-lock.json; + buildInputs = [ zlib openssl ]; + meta = { description = "Anisette server implementing SideStore's anisette v3 protocol"; homepage = "https://github.com/Dadoum/anisette-v3-server"; -- 2.55.0 From adcc79ac9e00a551f644ff7ae7f61c8f244f8e43 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 8 Aug 2026 09:46:01 +0000 Subject: [PATCH 3/7] Use openssl_1_1 (vibe-d 0.9.8 TLS needs removed OpenSSL 3 symbols) --- pkgs/anisette-v3-server/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/anisette-v3-server/default.nix b/pkgs/anisette-v3-server/default.nix index e715e2b..742a6fc 100644 --- a/pkgs/anisette-v3-server/default.nix +++ b/pkgs/anisette-v3-server/default.nix @@ -3,7 +3,7 @@ buildDubPackage, fetchFromGitHub, zlib, - openssl, + openssl_1_1, }: buildDubPackage rec { @@ -19,7 +19,7 @@ buildDubPackage rec { dubLock = ./dub-lock.json; - buildInputs = [ zlib openssl ]; + buildInputs = [ zlib openssl_1_1 ]; meta = { description = "Anisette server implementing SideStore's anisette v3 protocol"; -- 2.55.0 From ba1652dab4b7ed86d0a09494dd9fd7fe92201aaf Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 8 Aug 2026 09:46:13 +0000 Subject: [PATCH 4/7] Allow insecure openssl_1_1 (build-time link only) --- pkgs/anisette-v3-server/default.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/anisette-v3-server/default.nix b/pkgs/anisette-v3-server/default.nix index 742a6fc..f509275 100644 --- a/pkgs/anisette-v3-server/default.nix +++ b/pkgs/anisette-v3-server/default.nix @@ -19,6 +19,11 @@ buildDubPackage rec { dubLock = ./dub-lock.json; + # openssl_1_1 is EOL and marked insecure in nixpkgs, but it's only a + # build-time link dependency (vibe-d 0.9.8 TLS needs symbols removed in + # OpenSSL 3). The resulting binary statically links it. + permittedInsecurePackages = [ "openssl-1.1.1w" ]; + buildInputs = [ zlib openssl_1_1 ]; meta = { -- 2.55.0 From afc9ae8cc5a05bde5acfa08b328dd0573ffc4773 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 8 Aug 2026 09:46:31 +0000 Subject: [PATCH 5/7] Allow insecure openssl_1_1 at flake nixpkgs config level --- flake.nix | 11 ++++++++++- pkgs/anisette-v3-server/default.nix | 5 ----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/flake.nix b/flake.nix index 8223c60..8dd6c6a 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,16 @@ flake-utils.lib.eachDefaultSystem ( system: let - pkgs = nixpkgs.legacyPackages.${system}; + pkgs = nixpkgs.legacyPackages.${system}.extend ( + final: prev: { + config = prev.config // { + permittedInsecurePackages = (prev.config.permittedInsecurePackages or [ ]) ++ [ + # openssl_1_1 is EOL but needed to link vibe-d 0.9.8 TLS + "openssl-1.1.1w" + ]; + }; + } + ); in { packages = import ./pkgs { diff --git a/pkgs/anisette-v3-server/default.nix b/pkgs/anisette-v3-server/default.nix index f509275..742a6fc 100644 --- a/pkgs/anisette-v3-server/default.nix +++ b/pkgs/anisette-v3-server/default.nix @@ -19,11 +19,6 @@ buildDubPackage rec { dubLock = ./dub-lock.json; - # openssl_1_1 is EOL and marked insecure in nixpkgs, but it's only a - # build-time link dependency (vibe-d 0.9.8 TLS needs symbols removed in - # OpenSSL 3). The resulting binary statically links it. - permittedInsecurePackages = [ "openssl-1.1.1w" ]; - buildInputs = [ zlib openssl_1_1 ]; meta = { -- 2.55.0 From 6f0b0294403507a7755b89bf202442ce95dc1fbc Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 8 Aug 2026 09:46:45 +0000 Subject: [PATCH 6/7] Import nixpkgs with permittedInsecurePackages config --- flake.nix | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/flake.nix b/flake.nix index 8dd6c6a..cef0de1 100644 --- a/flake.nix +++ b/flake.nix @@ -24,16 +24,13 @@ flake-utils.lib.eachDefaultSystem ( system: let - pkgs = nixpkgs.legacyPackages.${system}.extend ( - final: prev: { - config = prev.config // { - permittedInsecurePackages = (prev.config.permittedInsecurePackages or [ ]) ++ [ - # openssl_1_1 is EOL but needed to link vibe-d 0.9.8 TLS - "openssl-1.1.1w" - ]; - }; - } - ); + # openssl_1_1 is EOL and marked insecure in nixpkgs, but it's only a + # build-time link dependency (vibe-d 0.9.8 TLS needs symbols removed in + # OpenSSL 3). The resulting binary statically links it. + pkgs = import nixpkgs { + inherit system; + config.permittedInsecurePackages = [ "openssl-1.1.1w" ]; + }; in { packages = import ./pkgs { -- 2.55.0 From af8d36af8b9e0291c33df4a0808e6ecd428f5914 Mon Sep 17 00:00:00 2001 From: Hermes Date: Sat, 8 Aug 2026 10:13:50 +0000 Subject: [PATCH 7/7] Add installPhase to place the built binary --- pkgs/anisette-v3-server/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/anisette-v3-server/default.nix b/pkgs/anisette-v3-server/default.nix index 742a6fc..a64ba54 100644 --- a/pkgs/anisette-v3-server/default.nix +++ b/pkgs/anisette-v3-server/default.nix @@ -21,6 +21,13 @@ buildDubPackage rec { buildInputs = [ zlib openssl_1_1 ]; + installPhase = '' + runHook preInstall + mkdir -p $out/bin + install -Dm755 anisette-v3-server $out/bin/anisette-v3-server + runHook postInstall + ''; + meta = { description = "Anisette server implementing SideStore's anisette v3 protocol"; homepage = "https://github.com/Dadoum/anisette-v3-server"; -- 2.55.0