nix/trivionomicon/pkgs/athena-bccr/default.nix

36 lines
1.1 KiB
Nix

{
callPackage,
lib,
mirror ? null,
vendor ? "idopte",
}: let
releases = lib.mapAttrs resolveRelease (import ./releases.nix).${vendor};
resolveRelease = name: release:
if builtins.isString release
then releases.${release}
else release // {name = name;};
overrideUnwrapped = default: new: let
args = default // new;
unwrappedPkgs = lib.filterAttrs (name: _: ! lib.elem name ["override" "overrideDerivation"]) (callPackage ./unwrapped.nix args);
in
lib.fix (unwrapped: lib.mapAttrs (_: pkg: callPackage pkg unwrapped) unwrappedPkgs)
// {
override = overrideUnwrapped args;
};
pkgsForRelease = release: let
inherit (unwrapped) card-driver bccr-cacerts;
unwrapped = overrideUnwrapped {inherit mirror release vendor;} {};
pkcs11-module = "${card-driver.lib}/${card-driver.pkcs11-path}";
in {
inherit card-driver bccr-cacerts pkcs11-module;
inherit (release) vendor;
gaudi = callPackage ./gaudi-env.nix {inherit unwrapped;};
firmador = callPackage ./firmador.nix {inherit pkcs11-module;};
};
in
lib.mapAttrs (_: pkgsForRelease) releases