summaryrefslogtreecommitdiff
path: root/trivionomicon
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2026-03-10 20:03:02 -0600
committerAlejandro Soto <alejandro@34project.org>2026-03-11 01:27:55 -0600
commitd73def49bd0ae2f20fdde89774c1a117a586c0c0 (patch)
treed4711935962ad05d967d2dfe81123855cbfccf65 /trivionomicon
parente164446b53866ceda3bdd748f3d4777cadbcdeee (diff)
trivionomicon: athena-bccr: separate releases by vendor, add 'vendor' option
Diffstat (limited to '')
-rw-r--r--trivionomicon/modules/athena-bccr/hm.nix11
-rw-r--r--trivionomicon/modules/athena-bccr/options.nix48
-rw-r--r--trivionomicon/modules/athena-bccr/sys.nix14
-rw-r--r--trivionomicon/pkgs/athena-bccr/default.nix12
-rw-r--r--trivionomicon/pkgs/athena-bccr/releases.nix42
-rw-r--r--trivionomicon/pkgs/athena-bccr/unwrapped.nix3
-rw-r--r--trivionomicon/pkgs/default.nix3
7 files changed, 70 insertions, 63 deletions
diff --git a/trivionomicon/modules/athena-bccr/hm.nix b/trivionomicon/modules/athena-bccr/hm.nix
index df41f12..683cb4d 100644
--- a/trivionomicon/modules/athena-bccr/hm.nix
+++ b/trivionomicon/modules/athena-bccr/hm.nix
@@ -5,12 +5,11 @@
doctrine,
...
}: let
- athena =
- (pkgs.${doctrine.prefix}.athena-bccr.override {
- inherit (cfg) mirror;
- }).${
- cfg.release
- };
+ releases = pkgs.${doctrine.prefix}.athena-bccr.override {
+ inherit (cfg) mirror vendor;
+ };
+
+ athena = releases.${cfg.release};
in {
home.packages = [
athena.firmador
diff --git a/trivionomicon/modules/athena-bccr/options.nix b/trivionomicon/modules/athena-bccr/options.nix
index 7b6cf93..dc4c986 100644
--- a/trivionomicon/modules/athena-bccr/options.nix
+++ b/trivionomicon/modules/athena-bccr/options.nix
@@ -1,42 +1,40 @@
{lib, ...}:
-with lib.types; {
+with lib.types; let
+ mirror = lib.mkOption {
+ type = nullOr str;
+ default = null;
+ description = "release zip mirror base URL, if null then the release zip must be manually added to the Nix store";
+ };
+
+ release = lib.mkOption {
+ type = str;
+ default = "latest";
+ description = "pinned athena-bccr release tag";
+ };
+
+ vendor = lib.mkOption {
+ type = enum ["athena" "idopte"];
+ default = "idopte";
+ description = "driver dvendor";
+ };
+in {
hm = {
+ inherit mirror release vendor;
+
gaudiHash = lib.mkOption {
type = nullOr str;
default = null;
description = "hash of the Gaudi client";
};
-
- mirror = lib.mkOption {
- type = nullOr str;
- default = null;
- description = "release zip mirror base URL, if null then the release zip must be manually added to the Nix store";
- };
-
- release = lib.mkOption {
- type = str;
- default = "latest";
- description = "pinned athena-bccr release tag";
- };
};
sys = {
+ inherit mirror release vendor;
+
group = lib.mkOption {
type = str;
default = "users";
description = "user group with full access to the smartcard reader";
};
-
- mirror = lib.mkOption {
- type = nullOr str;
- default = null;
- description = "release zip mirror base URL, if null then the release zip must be manually added to the Nix store";
- };
-
- release = lib.mkOption {
- type = str;
- default = "latest";
- description = "pinned athena-bccr release tag";
- };
};
}
diff --git a/trivionomicon/modules/athena-bccr/sys.nix b/trivionomicon/modules/athena-bccr/sys.nix
index bd7d758..0b4658c 100644
--- a/trivionomicon/modules/athena-bccr/sys.nix
+++ b/trivionomicon/modules/athena-bccr/sys.nix
@@ -6,17 +6,15 @@
doctrine,
...
}: let
- athena =
- (pkgs.${doctrine.prefix}.athena-bccr.override {
- inherit (cfg) mirror;
- }).${
- cfg.release
- };
-
- inherit (athena) vendor;
+ releases = pkgs.${doctrine.prefix}.athena-bccr.override {
+ inherit (cfg) mirror vendor;
+ };
+ athena = releases.${cfg.release};
driver = athena.card-driver.lib;
scmiddleware = "${driver}/lib/SCMiddleware";
+
+ inherit (cfg) vendor;
in {
environment = {
etc =
diff --git a/trivionomicon/pkgs/athena-bccr/default.nix b/trivionomicon/pkgs/athena-bccr/default.nix
index 038220b..c17911e 100644
--- a/trivionomicon/pkgs/athena-bccr/default.nix
+++ b/trivionomicon/pkgs/athena-bccr/default.nix
@@ -2,10 +2,14 @@
callPackage,
lib,
mirror ? null,
+ vendor ? "idopte",
}: let
- latest = "deb64-rev26.2";
+ releases = lib.mapAttrs resolveRelease (import ./releases.nix).${vendor};
- releases = lib.mapAttrs (name: release: release // {name = name;}) (import ./releases.nix);
+ resolveRelease = name: release:
+ if builtins.isString release
+ then releases.${release}
+ else release // {name = name;};
overrideUnwrapped = default: new: let
args = default // new;
@@ -19,7 +23,7 @@
pkgsForRelease = release: let
inherit (unwrapped) card-driver bccr-cacerts;
- unwrapped = overrideUnwrapped {inherit mirror release;} {};
+ unwrapped = overrideUnwrapped {inherit mirror release vendor;} {};
pkcs11-module = "${card-driver.lib}/${card-driver.pkcs11-path}";
in {
inherit card-driver bccr-cacerts pkcs11-module;
@@ -29,4 +33,4 @@
firmador = callPackage ./firmador.nix {inherit pkcs11-module;};
};
in
- lib.mapAttrs (_: pkgsForRelease) (releases // {latest = releases.${latest};})
+ lib.mapAttrs (_: pkgsForRelease) releases
diff --git a/trivionomicon/pkgs/athena-bccr/releases.nix b/trivionomicon/pkgs/athena-bccr/releases.nix
index cbc5bdb..203e57c 100644
--- a/trivionomicon/pkgs/athena-bccr/releases.nix
+++ b/trivionomicon/pkgs/athena-bccr/releases.nix
@@ -1,27 +1,33 @@
{
- "deb64-rev26" = {
- # nix hash convert --hash-algo sha256 --from base16 --to sri $(sha256sum sfd_ClientesLinux_DEB64_Rev26.zip | cut -d' ' -f1)
- hash = "sha256-ZPWP9TqJQ5coJAPzUSiaXKVItBWlqFM4smCjOf+gqQM=";
- filename = "sfd_ClientesLinux_DEB64_Rev26.zip";
- basename = "sfd_ClientesLinux_DEB64_Rev26";
- vendor = "athena";
+ "athena" = {
+ latest = "deb64-rev26";
- srcPaths = {
- gaudi = "Firma Digital/Agente GAUDI/agente-gaudi_20.0_amd64.deb";
- idprotect = "Firma Digital/PinTool/IDProtect PINTool 7.24.02/DEB/idprotectclient_7.24.02-0_amd64.deb";
+ "deb64-rev26" = {
+ # nix hash convert --hash-algo sha256 --from base16 --to sri $(sha256sum sfd_ClientesLinux_DEB64_Rev26.zip | cut -d' ' -f1)
+ hash = "sha256-ZPWP9TqJQ5coJAPzUSiaXKVItBWlqFM4smCjOf+gqQM=";
+ filename = "sfd_ClientesLinux_DEB64_Rev26.zip";
+ basename = "sfd_ClientesLinux_DEB64_Rev26";
+
+ srcPaths = {
+ gaudi = "Firma Digital/Agente GAUDI/agente-gaudi_20.0_amd64.deb";
+ idprotect = "Firma Digital/PinTool/IDProtect PINTool 7.24.02/DEB/idprotectclient_7.24.02-0_amd64.deb";
+ };
};
};
- "deb64-rev26.2" = {
- # nix hash convert --hash-algo sha256 --from base16 --to sri $(sha256sum sfd_ClientesLinux_DEB64_Ubuntu24_rev26_02 | cut -d' ' -f1)
- hash = "sha256-DNzP0YRnuUbfKLhi7JeQCirdGx4kM7ROqHDkTuVs0mA=";
- filename = "sfd_ClientesLinux_DEB64_Ubuntu24_rev26_02.zip";
- basename = "sfd_ClientesLinux_DEB64_Ubuntu24_26_02";
- vendor = "idopte";
+ "idopte" = {
+ latest = "deb64-rev26.2";
+
+ "deb64-rev26.2" = {
+ # nix hash convert --hash-algo sha256 --from base16 --to sri $(sha256sum sfd_ClientesLinux_DEB64_Ubuntu24_rev26_02 | cut -d' ' -f1)
+ hash = "sha256-DNzP0YRnuUbfKLhi7JeQCirdGx4kM7ROqHDkTuVs0mA=";
+ filename = "sfd_ClientesLinux_DEB64_Ubuntu24_rev26_02.zip";
+ basename = "sfd_ClientesLinux_DEB64_Ubuntu24_26_02";
- srcPaths = {
- gaudi = "Firma Digital/Agente GAUDI/agente-gaudi_27.0_amd64.deb";
- idopte = "Firma Digital/Idopte/Idopte_6.23.44.0_ubun24_amd64.deb";
+ srcPaths = {
+ gaudi = "Firma Digital/Agente GAUDI/agente-gaudi_27.0_amd64.deb";
+ idopte = "Firma Digital/Idopte/Idopte_6.23.44.0_ubun24_amd64.deb";
+ };
};
};
}
diff --git a/trivionomicon/pkgs/athena-bccr/unwrapped.nix b/trivionomicon/pkgs/athena-bccr/unwrapped.nix
index bf99a84..dc9f142 100644
--- a/trivionomicon/pkgs/athena-bccr/unwrapped.nix
+++ b/trivionomicon/pkgs/athena-bccr/unwrapped.nix
@@ -5,9 +5,10 @@
requireFile,
release,
gaudiHash ? null,
+ vendor,
...
}: let
- inherit (release) srcPaths vendor;
+ inherit (release) srcPaths;
url =
if mirror != null
diff --git a/trivionomicon/pkgs/default.nix b/trivionomicon/pkgs/default.nix
index 1b11af9..6339da3 100644
--- a/trivionomicon/pkgs/default.nix
+++ b/trivionomicon/pkgs/default.nix
@@ -4,7 +4,8 @@ with prev.lib; let
in {
override = {};
- athena-bccr = callPackage ./athena-bccr {};
+ athena-bccr = callPackage ./athena-bccr {vendor = "athena";};
+ idopte-bccr = callPackage ./athena-bccr {vendor = "idopte";};
snapborg = final.python3Packages.callPackage ./snapborg {};
socialpredict = callPackage ./socialpredict {};
spliit = callPackage ./spliit {};