From 3d794b1dfe66ec8a555361687d0c15afb4581374 Mon Sep 17 00:00:00 2001 From: Fernando Rodrigues Date: Thu, 31 Oct 2024 14:52:18 +0000 Subject: [PATCH] gnuk: convert into a saner derivation This absolutely does not need a generic builder. Signed-off-by: Fernando Rodrigues --- pkgs/misc/gnuk/default.nix | 49 ++++++++++++++++++++++++++++++++--- pkgs/misc/gnuk/generic.nix | 52 -------------------------------------- 2 files changed, 46 insertions(+), 55 deletions(-) delete mode 100644 pkgs/misc/gnuk/generic.nix diff --git a/pkgs/misc/gnuk/default.nix b/pkgs/misc/gnuk/default.nix index afef861c0dc4..29198c196ad5 100644 --- a/pkgs/misc/gnuk/default.nix +++ b/pkgs/misc/gnuk/default.nix @@ -1,6 +1,13 @@ -{ callPackage, fetchgit, ... } @ args: +{ lib, stdenv, gcc-arm-embedded, binutils-arm-embedded, makeWrapper +, python3Packages, fetchgit + +# Extra options +, vid ? "234b", pid ? "0000" +}: + +stdenv.mkDerivation { + pname = "gnuk"; -callPackage ./generic.nix (args // { version = "1.2.14"; src = fetchgit { @@ -8,4 +15,40 @@ callPackage ./generic.nix (args // { rev = "177ef67edfa2306c2a369a037362385c354083e1"; sha256 = "16wa3xsaq4r8caw6c24hnv4j78bklacix4in2y66j35h68ggr3j1"; }; -}) + + nativeBuildInputs = [ gcc-arm-embedded binutils-arm-embedded makeWrapper ]; + buildInputs = with python3Packages; [ python pyusb colorama ]; + + configurePhase = '' + cd src + patchShebangs configure + ./configure --vidpid=${vid}:${pid} + ''; + + installPhase = '' + mkdir -p $out/bin + + find . -name gnuk.bin -exec cp {} $out \; + + #sed -i 's,Exception as e,IOError as e,' ../tool/stlinkv2.py + sed -i ../tool/stlinkv2.py \ + -e "1a import array" \ + -e "s,\(data_received =\) (),\1 array.array('B'),g" \ + -e "s,\(data_received\) = data_received + \(.*\),\1.extend(\2),g" + cp ../tool/stlinkv2.py $out/bin/stlinkv2 + wrapProgram $out/bin/stlinkv2 --prefix PYTHONPATH : "$PYTHONPATH" + + # Some useful helpers + echo "#! ${stdenv.shell} -e" | tee $out/bin/{unlock,flash} + echo "$out/bin/stlinkv2 -u \$@" >> $out/bin/unlock + echo "$out/bin/stlinkv2 -b \$@ $out/gnuk.bin" >> $out/bin/flash + chmod +x $out/bin/{unlock,flash} + ''; + + meta = with lib; { + homepage = "https://www.fsij.org/doc-gnuk/"; + description = "Implementation of USB cryptographic token for gpg"; + license = licenses.gpl3; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/misc/gnuk/generic.nix b/pkgs/misc/gnuk/generic.nix deleted file mode 100644 index e9cc3aff2cf6..000000000000 --- a/pkgs/misc/gnuk/generic.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ lib, stdenv, gcc-arm-embedded, binutils-arm-embedded, makeWrapper -, python3Packages - -# Extra options -, device ? "fsij", vid ? "234b", pid ? "0000" - -# Version specific options -, version, src -, ... -}: - -stdenv.mkDerivation { - pname = "gnuk-${device}"; - - inherit version src; - - nativeBuildInputs = [ gcc-arm-embedded binutils-arm-embedded makeWrapper ]; - buildInputs = with python3Packages; [ python pyusb colorama ]; - - configurePhase = '' - cd src - patchShebangs configure - ./configure --vidpid=${vid}:${pid} - ''; - - installPhase = '' - mkdir -p $out/bin - - find . -name gnuk.bin -exec cp {} $out \; - - #sed -i 's,Exception as e,IOError as e,' ../tool/stlinkv2.py - sed -i ../tool/stlinkv2.py \ - -e "1a import array" \ - -e "s,\(data_received =\) (),\1 array.array('B'),g" \ - -e "s,\(data_received\) = data_received + \(.*\),\1.extend(\2),g" - cp ../tool/stlinkv2.py $out/bin/stlinkv2 - wrapProgram $out/bin/stlinkv2 --prefix PYTHONPATH : "$PYTHONPATH" - - # Some useful helpers - echo "#! ${stdenv.shell} -e" | tee $out/bin/{unlock,flash} - echo "$out/bin/stlinkv2 -u \$@" >> $out/bin/unlock - echo "$out/bin/stlinkv2 -b \$@ $out/gnuk.bin" >> $out/bin/flash - chmod +x $out/bin/{unlock,flash} - ''; - - meta = with lib; { - homepage = "https://www.fsij.org/doc-gnuk/"; - description = "Implementation of USB cryptographic token for gpg"; - license = licenses.gpl3; - platforms = with platforms; linux; - }; -}