Unverified Commit 1a2ca14a authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

nitrokey-fido2-firmware: drop (#503896)

parents caaca4e4 b7547244
Loading
Loading
Loading
Loading
+0 −84
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchFromGitHub,
  writeShellScriptBin,
  gcc-arm-embedded,
  pynitrokey,
  python3,

  # The make target to run
  makeTarget ? "release-buildv",
  # Whether the firmware should include the production public key for the bootloader
  release ? true,
}:

let
  # The latest release is found on the releases page; do not rely on the latest tag.
  # They normally contain the suffix `.nitrokey`.
  # https://github.com/Nitrokey/nitrokey-fido2-firmware/releases
  version = "2.4.1";

  # The firmware version is pulled from `git` so we stub it here to avoid pulling the whole program.
  fakeGit = writeShellScriptBin "git" ''
    echo "${version}.nitrokey"
  '';

in
stdenv.mkDerivation {
  pname = "nitrokey-fido2-firmware";
  inherit version;

  src = fetchFromGitHub {
    owner = "Nitrokey";
    repo = "nitrokey-fido2-firmware";
    tag = "${version}.nitrokey";
    hash = "sha256-7AsnxRf8mdybI6Mup2mV01U09r5C/oUX6fG2ymkkOOo=";
    fetchSubmodules = true;
  };

  postPatch = ''
    # Remove a duplicate firmware_version definition. Without this,
    # firmware_version is defined multiple times, triggering a build error.
    substituteInPlace fido2/version.h \
      --replace-fail "const version_t firmware_version ;" ""
  '';

  nativeBuildInputs = [
    fakeGit
    # only gcc-arm-embedded includes libc_nano.a
    gcc-arm-embedded
    pynitrokey
    python3
  ];

  preBuild = ''
    cd targets/stm32l432
  '';

  makeFlags = [
    "${makeTarget}"
    "RELEASE=${toString release}"
  ];

  installPhase = ''
    runHook preInstall
    cp -r release $out
    runHook postInstall
  '';

  meta = {
    description = "Firmware for the Nitrokey FIDO2 device";
    homepage = "https://github.com/Nitrokey/nitrokey-fido2-firmware";
    maintainers = with lib.maintainers; [
      amerino
      kiike
      imadnyc
    ];
    license = with lib.licenses; [
      asl20
      mit
    ];
    platforms = lib.platforms.unix;
  };
}
+1 −0
Original line number Diff line number Diff line
@@ -1457,6 +1457,7 @@ mapAliases {
  nginxQuic = throw "'nginxQuic' has been removed. QUIC support is now available in the default nginx builds.";
  ngrid = throw "'ngrid' has been removed as it has been unmaintained upstream and broken"; # Added 2025-11-15
  nimbo = throw "'nimbo' has been removed due to being archived upstream."; # Added 2026-01-18
  nitrokey-fido2-firmware = throw "'nitrokey-fido2-firmware' has been removed as it was broken and unmaintained upstream since 2022"; # Added 2026-03-23
  nix-direnv-flakes = throw "'nix-direnv-flakes' has been renamed to/replaced by 'nix-direnv'"; # Converted to throw 2025-10-27
  nix-ld-rs = throw "'nix-ld-rs' has been renamed to/replaced by 'nix-ld'"; # Converted to throw 2025-10-27
  nix-linter = throw "nix-linter has been removed as it was broken for 3 years and unmaintained upstream"; # Added 2025-09-06