summary refs log tree commit diff
path: root/pkgs/tools/security/pass
diff options
context:
space:
mode:
authorMaximilian Bosch <maximilian@mbosch.me>2020-12-04 22:29:47 +0100
committerMaximilian Bosch <maximilian@mbosch.me>2020-12-04 22:33:53 +0100
commit2b674912b4d2f3c51046a14cba5e483cbe9dbfd6 (patch)
tree91af0437eca09e1a2be7dbb7def629ca97f7145d /pkgs/tools/security/pass
parent85d4fa9769c1859f5a9fb7b3c515a3807e4e00d4 (diff)
downloadnixpkgs-2b674912b4d2f3c51046a14cba5e483cbe9dbfd6.tar
nixpkgs-2b674912b4d2f3c51046a14cba5e483cbe9dbfd6.tar.gz
nixpkgs-2b674912b4d2f3c51046a14cba5e483cbe9dbfd6.tar.bz2
nixpkgs-2b674912b4d2f3c51046a14cba5e483cbe9dbfd6.tar.lz
nixpkgs-2b674912b4d2f3c51046a14cba5e483cbe9dbfd6.tar.xz
nixpkgs-2b674912b4d2f3c51046a14cba5e483cbe9dbfd6.tar.zst
nixpkgs-2b674912b4d2f3c51046a14cba5e483cbe9dbfd6.zip
passExtensions.pass-import: 2.6 -> 3.1
ChangeLog: https://github.com/roddhjav/pass-import/blob/v3.1/CHANGELOG.rst#31---2020-10-25

* Make sure that all features are enabled by adding `pykeepass`,
  `filemagic` etc.

* Patch & use `setup.py` to make sure that everything gets installed
  properly into `$out`.

Co-authored-by: elseym <elseym@me.com>
Diffstat (limited to 'pkgs/tools/security/pass')
-rw-r--r--pkgs/tools/security/pass/extensions/0001-Fix-installation-with-Nix.patch41
-rw-r--r--pkgs/tools/security/pass/extensions/import.nix38
2 files changed, 55 insertions, 24 deletions
diff --git a/pkgs/tools/security/pass/extensions/0001-Fix-installation-with-Nix.patch b/pkgs/tools/security/pass/extensions/0001-Fix-installation-with-Nix.patch
new file mode 100644
index 00000000000..55822f170d1
--- /dev/null
+++ b/pkgs/tools/security/pass/extensions/0001-Fix-installation-with-Nix.patch
@@ -0,0 +1,41 @@
+From 611cb2de31a460789c44615d3a52b8d24dbd6fdd Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Fri, 4 Dec 2020 21:53:52 +0100
+Subject: [PATCH] Fix installation with Nix
+
+---
+ Makefile | 2 +-
+ setup.py | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 2febf4e..8feab91 100644
+--- a/Makefile
++++ b/Makefile
+@@ -7,7 +7,7 @@ all:
+ 	@echo
+ 
+ install:
+-	@python3 setup.py install --root="$(DESTDIR)" --optimize=1 --skip-build
++	@python3 setup.py install --root="$(DESTDIR)" --optimize=1 --skip-build --prefix=
+ 	@echo
+ 	@echo "pass-import is installed succesfully"
+ 	@echo
+diff --git a/setup.py b/setup.py
+index b30870c..d9fedbc 100644
+--- a/setup.py
++++ b/setup.py
+@@ -15,8 +15,8 @@ with Path('pass_import', '__about__.py').open() as file:
+ with open('README.md') as file:
+     long_description = file.read()
+ 
+-share = Path(sys.prefix, 'share')
+-lib = Path('/usr', 'lib', 'password-store', 'extensions')
++share = Path('/share')
++lib = Path('/lib', 'password-store', 'extensions')
+ if '--user' in sys.argv:
+     lib = Path.home() / '.password-store' / 'extensions'
+     if 'XDG_DATA_HOME' in os.environ:
+-- 
+2.28.0
+
diff --git a/pkgs/tools/security/pass/extensions/import.nix b/pkgs/tools/security/pass/extensions/import.nix
index bd41ae0c593..885dd05110f 100644
--- a/pkgs/tools/security/pass/extensions/import.nix
+++ b/pkgs/tools/security/pass/extensions/import.nix
@@ -5,48 +5,38 @@ let
     p.defusedxml
     p.setuptools
     p.pyaml
+    p.pykeepass
+    p.filemagic
+    p.cryptography
+    p.secretstorage
   ]);
 
 in stdenv.mkDerivation rec {
   pname = "pass-import";
-  version = "2.6";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = "roddhjav";
     repo = "pass-import";
     rev = "v${version}";
-    sha256 = "1q8rln4djh2z8j2ycm654df5y6anm5iv2r19spgy07c3fnisxlac";
+    sha256 = "sha256-nH2xAqWfMT+Brv3z9Aw6nbvYqArEZjpM28rKsRPihqA=";
   };
 
+  patches = [ ./0001-Fix-installation-with-Nix.patch ];
+
   nativeBuildInputs = [ makeWrapper ];
 
   buildInputs = [ pythonEnv ];
 
-  patches = [
-    # https://github.com/roddhjav/pass-import/pull/91
-    (fetchpatch {
-      url = "https://github.com/roddhjav/pass-import/commit/6ccaf639e92df45bd400503757ae4aa2c5c030d7.patch";
-      sha256 = "0lw9vqvbqcy96s7v7nz0i1bdx93x7qr13azymqypcdhjwmq9i63h";
-    })
-  ];
-
-  postPatch = ''
-    sed -i -e 's|$0|${pass}/bin/pass|' import.bash
-  '';
-
-  dontBuild = true;
-
-  installFlags = [
-    "PREFIX=$(out)"
-    "BASHCOMPDIR=$(out)/share/bash-completion/completions"
-  ];
+  makeFlags = [ "DESTDIR=${placeholder "out"}" ];
 
-  postFixup = ''
-    install -D pass_import.py $out/${pythonPackages.python.sitePackages}/pass_import.py
+  postInstall = ''
+    wrapProgram $out/bin/pimport \
+      --prefix PATH : "${pythonEnv}/bin" \
+      --prefix PYTHONPATH : "$out/${pythonPackages.python.sitePackages}"
     wrapProgram $out/lib/password-store/extensions/import.bash \
       --prefix PATH : "${pythonEnv}/bin" \
-      --prefix PYTHONPATH : "$out/${pythonPackages.python.sitePackages}" \
-      --run "export PREFIX"
+      --prefix PYTHONPATH : "$out/${pythonPackages.python.sitePackages}"
   '';
 
   meta = with stdenv.lib; {