From cf377038df027b2e676c15b813d0e0fffd2c552d Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Wed, 24 May 2023 14:14:55 -0300 Subject: [PATCH] snagboot: init at 1.0 Signed-off-by: Otavio Salvador --- pkgs/applications/misc/snagboot/default.nix | 76 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 78 insertions(+) create mode 100644 pkgs/applications/misc/snagboot/default.nix diff --git a/pkgs/applications/misc/snagboot/default.nix b/pkgs/applications/misc/snagboot/default.nix new file mode 100644 index 000000000000..143b5c1c6a41 --- /dev/null +++ b/pkgs/applications/misc/snagboot/default.nix @@ -0,0 +1,76 @@ +{ lib +, stdenv +, fetchPypi +, pythonRelaxDepsHook +, python3 +, snagboot +, testers +, gitUpdater +}: + +python3.pkgs.buildPythonApplication rec { + pname = "snagboot"; + version = "1.0"; + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-wtIcrd3s/ZfdYqi2a2+IvVYnJie5txJy6d2m+GjuhxU="; + }; + + passthru = { + updateScript = gitUpdater { + rev-prefix = "v"; + ignoredVersions = ".(rc|beta).*"; + }; + + tests.version = testers.testVersion { + package = snagboot; + command = "snagrecover --version"; + version = "v${version}"; + }; + }; + + nativeBuildInputs = [ + pythonRelaxDepsHook + ]; + + pythonRemoveDeps = [ + "pylibfdt" + "swig" + ]; + + propagatedBuildInputs = with python3.pkgs; [ + setuptools + pyusb + pyserial + hid + crccheck + six + xmodem + pyyaml + libfdt + tftpy + ]; + + postInstall = lib.optionalString stdenv.isLinux '' + rules="src/snagrecover/80-snagboot.rules" + if [ ! -f "$rules" ]; then + echo "$rules is missing, must update the Nix file." + exit 1 + fi + + mkdir -p "$out/lib/udev/rules.d" + cp "$rules" "$out/lib/udev/rules.d/80-snagboot.rules" + ''; + + # There are no tests + doCheck = false; + + meta = { + homepage = "https://github.com/bootlin/snagboot"; + description = "Generic recovery and reflashing tool for embedded platforms"; + license = lib.licenses.gpl2; + maintainers = with lib.maintainers; [ otavio ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 88b2453197be..b2a038f2cb90 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1705,6 +1705,8 @@ with pkgs; shell-genie = callPackage ../applications/misc/shell-genie { }; + snagboot = python3.pkgs.callPackage ../applications/misc/snagboot { }; + simple-dlna-browser = callPackage ../tools/networking/simple-dlna-browser { }; sorted-grep = callPackage ../tools/text/sorted-grep { };