Wire Apple KMS release signing
Some checks failed
Cache: Publish Nix / Publish Nix Cache (push) Waiting to run
Build Rust / Cargo Test (push) Successful in 11m0s
Build Site / Next.js Build (push) Failing after 5s
Lint Governance / BEP Metadata (push) Successful in 1s

This commit is contained in:
Conrad Kramer 2026-06-07 07:28:48 -07:00
parent ed73d7d16a
commit 126af6b5cf
17 changed files with 1913 additions and 16 deletions

View file

@ -51,6 +51,64 @@
else
pkgs.bazel-buildtools;
optionalPackage = name: lib.optional (lib.hasAttr name pkgs) (lib.getAttr name pkgs);
googleKmsPkcs11Package =
if pkgs.stdenv.hostPlatform.isx86_64 && pkgs.stdenv.isLinux then
let
version = "1.9";
in
pkgs.stdenv.mkDerivation {
pname = "google-kms-pkcs11";
inherit version;
src = pkgs.fetchurl {
url = "https://github.com/GoogleCloudPlatform/kms-integrations/releases/download/pkcs11-v${version}/libkmsp11-${version}-linux-amd64.tar.gz";
sha256 = "sha256-U5f5ZQc81dHixD5RSPEC8xp8g1kC+X60HHycDxuHakA=";
};
nativeBuildInputs = [ pkgs.autoPatchelfHook ];
buildInputs = [ pkgs.stdenv.cc.cc.lib ];
installPhase = ''
runHook preInstall
install -Dm755 libkmsp11.so "$out/lib/libkmsp11.so"
install -Dm644 kmsp11.h "$out/include/kmsp11.h"
install -Dm644 LICENSE "$out/share/licenses/google-kms-pkcs11/LICENSE"
mkdir -p "$out/bin"
cat > "$out/bin/google-kms-pkcs11-module" <<EOF
#!/usr/bin/env sh
printf '%s\n' "$out/lib/libkmsp11.so"
EOF
chmod 755 "$out/bin/google-kms-pkcs11-module"
runHook postInstall
'';
meta = with lib; {
description = "Google Cloud KMS PKCS#11 library";
homepage = "https://github.com/GoogleCloudPlatform/kms-integrations";
license = licenses.asl20;
platforms = [ "x86_64-linux" ];
};
}
else
null;
rcodesignPkcs11Package =
if pkgs ? rcodesign then
pkgs.rcodesign.overrideAttrs (old: {
pname = "rcodesign-pkcs11";
patches = (old.patches or [ ]) ++ [
./patches/rcodesign-pkcs11-tool.patch
];
nativeBuildInputs = (old.nativeBuildInputs or [ ]) ++ [ pkgs.makeWrapper ];
postInstall = (old.postInstall or "") + ''
wrapProgram "$out/bin/rcodesign" \
--prefix PATH : ${lib.makeBinPath [ pkgs.opensc pkgs.openssl ]} \
--set-default BURROW_OPENSSL_MODULES ${pkgs.pkcs11-provider}/lib/ossl-modules
'';
passthru = (old.passthru or { }) // {
isBurrowPkcs11Fork = true;
};
meta = (old.meta or { }) // {
description = "rcodesign with Burrow PKCS#11 signing support";
};
})
else
null;
commonPackages = with pkgs; [
cargo
rustc
@ -69,12 +127,17 @@
jq
nodejs_20
python3
openssl
rsync
zip
unzip
] ++ optionalPackage "google-cloud-sdk"
++ optionalPackage "awscli2"
++ optionalPackage "attic-client";
++ optionalPackage "attic-client"
++ optionalPackage "opensc"
++ optionalPackage "pkcs11-provider"
++ lib.optional (googleKmsPkcs11Package != null) googleKmsPkcs11Package
++ lib.optional (rcodesignPkcs11Package != null) rcodesignPkcs11Package;
linuxRepositoryPackages = lib.optionals pkgs.stdenv.isLinux (
(with pkgs; [
dpkg
@ -273,7 +336,9 @@
forgejo-nsc-dispatcher = forgejoNscDispatcher;
forgejo-nsc-autoscaler = forgejoNscAutoscaler;
}
// lib.optionalAttrs (nscPkg != null) { nsc = nscPkg; };
// lib.optionalAttrs (nscPkg != null) { nsc = nscPkg; }
// lib.optionalAttrs (googleKmsPkcs11Package != null) { google-kms-pkcs11 = googleKmsPkcs11Package; }
// lib.optionalAttrs (rcodesignPkcs11Package != null) { rcodesign-pkcs11 = rcodesignPkcs11Package; };
}))
// {
nixosModules.burrow-forge = import ./nixos/modules/burrow-forge.nix;