summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2023-05-24 14:14:55 -0300
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2023-05-30 12:25:56 +0000
commit4d197d228bf456c6a290a677eaeba7acb370e511 (patch)
tree369bf1f35f000195409edaf20aff889025ed10f7
parentMerge pull request #234969 from NixOS/backport-234446-to-release-23.05 (diff)
downloadnixpkgs-origin/backport-234535-to-release-23.05.tar.gz
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> (cherry picked from commit cf377038df027b2e676c15b813d0e0fffd2c552d)
-rw-r--r--pkgs/applications/misc/snagboot/default.nix76
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 78 insertions, 0 deletions
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 8f23cb279bd5..1815ca07902c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1699,6 +1699,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 { };