trivionomicon: athena-bccr: separate releases by vendor, add 'vendor' option
This commit is contained in:
parent
a74fc0c70e
commit
aac5bbeb91
7 changed files with 70 additions and 63 deletions
|
|
@ -5,12 +5,11 @@
|
||||||
doctrine,
|
doctrine,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
athena =
|
releases = pkgs.${doctrine.prefix}.athena-bccr.override {
|
||||||
(pkgs.${doctrine.prefix}.athena-bccr.override {
|
inherit (cfg) mirror vendor;
|
||||||
inherit (cfg) mirror;
|
|
||||||
}).${
|
|
||||||
cfg.release
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
athena = releases.${cfg.release};
|
||||||
in {
|
in {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
athena.firmador
|
athena.firmador
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,40 @@
|
||||||
{lib, ...}:
|
{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 = {
|
hm = {
|
||||||
|
inherit mirror release vendor;
|
||||||
|
|
||||||
gaudiHash = lib.mkOption {
|
gaudiHash = lib.mkOption {
|
||||||
type = nullOr str;
|
type = nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "hash of the Gaudi client";
|
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 = {
|
sys = {
|
||||||
|
inherit mirror release vendor;
|
||||||
|
|
||||||
group = lib.mkOption {
|
group = lib.mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
default = "users";
|
default = "users";
|
||||||
description = "user group with full access to the smartcard reader";
|
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";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,17 +6,15 @@
|
||||||
doctrine,
|
doctrine,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
athena =
|
releases = pkgs.${doctrine.prefix}.athena-bccr.override {
|
||||||
(pkgs.${doctrine.prefix}.athena-bccr.override {
|
inherit (cfg) mirror vendor;
|
||||||
inherit (cfg) mirror;
|
|
||||||
}).${
|
|
||||||
cfg.release
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inherit (athena) vendor;
|
athena = releases.${cfg.release};
|
||||||
|
|
||||||
driver = athena.card-driver.lib;
|
driver = athena.card-driver.lib;
|
||||||
scmiddleware = "${driver}/lib/SCMiddleware";
|
scmiddleware = "${driver}/lib/SCMiddleware";
|
||||||
|
|
||||||
|
inherit (cfg) vendor;
|
||||||
in {
|
in {
|
||||||
environment = {
|
environment = {
|
||||||
etc =
|
etc =
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,14 @@
|
||||||
callPackage,
|
callPackage,
|
||||||
lib,
|
lib,
|
||||||
mirror ? null,
|
mirror ? null,
|
||||||
|
vendor ? "idopte",
|
||||||
}: let
|
}: 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
|
overrideUnwrapped = default: new: let
|
||||||
args = default // new;
|
args = default // new;
|
||||||
|
|
@ -19,7 +23,7 @@
|
||||||
pkgsForRelease = release: let
|
pkgsForRelease = release: let
|
||||||
inherit (unwrapped) card-driver bccr-cacerts;
|
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}";
|
pkcs11-module = "${card-driver.lib}/${card-driver.pkcs11-path}";
|
||||||
in {
|
in {
|
||||||
inherit card-driver bccr-cacerts pkcs11-module;
|
inherit card-driver bccr-cacerts pkcs11-module;
|
||||||
|
|
@ -29,4 +33,4 @@
|
||||||
firmador = callPackage ./firmador.nix {inherit pkcs11-module;};
|
firmador = callPackage ./firmador.nix {inherit pkcs11-module;};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
lib.mapAttrs (_: pkgsForRelease) (releases // {latest = releases.${latest};})
|
lib.mapAttrs (_: pkgsForRelease) releases
|
||||||
|
|
|
||||||
|
|
@ -1,27 +1,33 @@
|
||||||
{
|
{
|
||||||
|
"athena" = {
|
||||||
|
latest = "deb64-rev26";
|
||||||
|
|
||||||
"deb64-rev26" = {
|
"deb64-rev26" = {
|
||||||
# nix hash convert --hash-algo sha256 --from base16 --to sri $(sha256sum sfd_ClientesLinux_DEB64_Rev26.zip | cut -d' ' -f1)
|
# nix hash convert --hash-algo sha256 --from base16 --to sri $(sha256sum sfd_ClientesLinux_DEB64_Rev26.zip | cut -d' ' -f1)
|
||||||
hash = "sha256-ZPWP9TqJQ5coJAPzUSiaXKVItBWlqFM4smCjOf+gqQM=";
|
hash = "sha256-ZPWP9TqJQ5coJAPzUSiaXKVItBWlqFM4smCjOf+gqQM=";
|
||||||
filename = "sfd_ClientesLinux_DEB64_Rev26.zip";
|
filename = "sfd_ClientesLinux_DEB64_Rev26.zip";
|
||||||
basename = "sfd_ClientesLinux_DEB64_Rev26";
|
basename = "sfd_ClientesLinux_DEB64_Rev26";
|
||||||
vendor = "athena";
|
|
||||||
|
|
||||||
srcPaths = {
|
srcPaths = {
|
||||||
gaudi = "Firma Digital/Agente GAUDI/agente-gaudi_20.0_amd64.deb";
|
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";
|
idprotect = "Firma Digital/PinTool/IDProtect PINTool 7.24.02/DEB/idprotectclient_7.24.02-0_amd64.deb";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"idopte" = {
|
||||||
|
latest = "deb64-rev26.2";
|
||||||
|
|
||||||
"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)
|
# nix hash convert --hash-algo sha256 --from base16 --to sri $(sha256sum sfd_ClientesLinux_DEB64_Ubuntu24_rev26_02 | cut -d' ' -f1)
|
||||||
hash = "sha256-DNzP0YRnuUbfKLhi7JeQCirdGx4kM7ROqHDkTuVs0mA=";
|
hash = "sha256-DNzP0YRnuUbfKLhi7JeQCirdGx4kM7ROqHDkTuVs0mA=";
|
||||||
filename = "sfd_ClientesLinux_DEB64_Ubuntu24_rev26_02.zip";
|
filename = "sfd_ClientesLinux_DEB64_Ubuntu24_rev26_02.zip";
|
||||||
basename = "sfd_ClientesLinux_DEB64_Ubuntu24_26_02";
|
basename = "sfd_ClientesLinux_DEB64_Ubuntu24_26_02";
|
||||||
vendor = "idopte";
|
|
||||||
|
|
||||||
srcPaths = {
|
srcPaths = {
|
||||||
gaudi = "Firma Digital/Agente GAUDI/agente-gaudi_27.0_amd64.deb";
|
gaudi = "Firma Digital/Agente GAUDI/agente-gaudi_27.0_amd64.deb";
|
||||||
idopte = "Firma Digital/Idopte/Idopte_6.23.44.0_ubun24_amd64.deb";
|
idopte = "Firma Digital/Idopte/Idopte_6.23.44.0_ubun24_amd64.deb";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,10 @@
|
||||||
requireFile,
|
requireFile,
|
||||||
release,
|
release,
|
||||||
gaudiHash ? null,
|
gaudiHash ? null,
|
||||||
|
vendor,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (release) srcPaths vendor;
|
inherit (release) srcPaths;
|
||||||
|
|
||||||
url =
|
url =
|
||||||
if mirror != null
|
if mirror != null
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@ with prev.lib; let
|
||||||
in {
|
in {
|
||||||
override = {};
|
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 {};
|
snapborg = final.python3Packages.callPackage ./snapborg {};
|
||||||
socialpredict = callPackage ./socialpredict {};
|
socialpredict = callPackage ./socialpredict {};
|
||||||
spliit = callPackage ./spliit {};
|
spliit = callPackage ./spliit {};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue