summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorMichael Weiss <dev.primeos@gmail.com>2018-09-07 13:07:10 +0200
committerMichael Weiss <dev.primeos@gmail.com>2018-09-07 15:20:50 +0200
commit6d81d8254c56ea3820a5daa339b31915d2c73580 (patch)
tree5454fe3d2ff342c3ec74df2df5559b37e0a3ce2d /pkgs/tools
parent8f6e805be4f832a90f64dc9f4299a932088149ff (diff)
downloadnixlib-6d81d8254c56ea3820a5daa339b31915d2c73580.tar
nixlib-6d81d8254c56ea3820a5daa339b31915d2c73580.tar.gz
nixlib-6d81d8254c56ea3820a5daa339b31915d2c73580.tar.bz2
nixlib-6d81d8254c56ea3820a5daa339b31915d2c73580.tar.lz
nixlib-6d81d8254c56ea3820a5daa339b31915d2c73580.tar.xz
nixlib-6d81d8254c56ea3820a5daa339b31915d2c73580.tar.zst
nixlib-6d81d8254c56ea3820a5daa339b31915d2c73580.zip
monkeysphere: Correctly wrap the keytrans aliases (subcommands)
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/security/monkeysphere/default.nix33
-rw-r--r--pkgs/tools/security/monkeysphere/monkeysphere.patch45
2 files changed, 21 insertions, 57 deletions
diff --git a/pkgs/tools/security/monkeysphere/default.nix b/pkgs/tools/security/monkeysphere/default.nix
index bafe8cdf500b..f4def72b728c 100644
--- a/pkgs/tools/security/monkeysphere/default.nix
+++ b/pkgs/tools/security/monkeysphere/default.nix
@@ -23,22 +23,31 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup =
-    let wrapMonkeysphere = runtimeDeps: program:
-          "wrapProgram $out/bin/${program} --prefix PERL5LIB : "
-            + (with perlPackages; stdenv.lib.makePerlPath [
-                CryptOpenSSLRSA
-                CryptOpenSSLBignum
-              ])
-            + stdenv.lib.optionalString
-                (builtins.length runtimeDeps > 0)
-                " --prefix PATH : ${stdenv.lib.makeBinPath runtimeDeps}"
-            + "\n";
+    let wrapperArgs = runtimeDeps:
+          "--prefix PERL5LIB : "
+          + (with perlPackages; stdenv.lib.makePerlPath [
+              CryptOpenSSLRSA
+              CryptOpenSSLBignum
+            ])
+          + stdenv.lib.optionalString
+              (builtins.length runtimeDeps > 0)
+              " --prefix PATH : ${stdenv.lib.makeBinPath runtimeDeps}";
+        wrapMonkeysphere = runtimeDeps: program:
+          "wrapProgram $out/bin/${program} ${wrapperArgs runtimeDeps}\n";
         wrapPrograms = runtimeDeps: programs: stdenv.lib.concatMapStrings
           (wrapMonkeysphere runtimeDeps)
           programs;
     in wrapPrograms [ gnupg ] [ "monkeysphere-authentication" "monkeysphere-host" ]
-      + wrapPrograms [ ] [ "../share/monkeysphere/keytrans" "openpgp2ssh" ]
-      + wrapPrograms [ lockfileProgs ] [ "monkeysphere" ];
+      + wrapPrograms [ lockfileProgs ] [ "monkeysphere" ]
+      + ''
+        # These 4 programs depend on the program name ($0):
+        for program in openpgp2pem openpgp2spki openpgp2ssh pem2openpgp; do
+          rm $out/bin/$program
+          ln -sf keytrans $out/share/monkeysphere/$program
+          makeWrapper $out/share/monkeysphere/$program $out/bin/$program \
+            ${wrapperArgs [ ]}
+        done
+      '';
 
   meta = with stdenv.lib; {
     homepage = http://web.monkeysphere.info/;
diff --git a/pkgs/tools/security/monkeysphere/monkeysphere.patch b/pkgs/tools/security/monkeysphere/monkeysphere.patch
index f341ee747bbc..fdf4b9335b19 100644
--- a/pkgs/tools/security/monkeysphere/monkeysphere.patch
+++ b/pkgs/tools/security/monkeysphere/monkeysphere.patch
@@ -28,50 +28,5 @@ diff --git a/src/share/keytrans b/src/share/keytrans
  
  # keytrans: this is an RSA key translation utility; it is capable of
  # transforming RSA keys (both public keys and secret keys) between
-@@ -1083,7 +1083,7 @@ sub packetwalk {
- 
- 
- for (basename($0)) {
--  if (/^pem2openpgp$/) {
-+  if (/pem2openpgp/) {
-     my $rsa;
-     my $stdin;
- 
-@@ -1121,7 +1121,7 @@ for (basename($0)) {
- 		      }
- 		     );
-   }
--  elsif (/^openpgp2ssh$/) {
-+  elsif (/openpgp2ssh/) {
-       my $fpr = shift;
-       my $instream;
-       open($instream,'-');
-@@ -1137,7 +1137,7 @@ for (basename($0)) {
- 	die "No matching key found.\n";
-       }
-   }
--  elsif (/^openpgp2pem$/) {
-+  elsif (/openpgp2pem/) {
-       my $fpr = shift;
-       my $instream;
-       open($instream,'-');
-@@ -1153,7 +1153,7 @@ for (basename($0)) {
- 	die "No matching key found.\n";
-       }
-   }
--  elsif (/^openpgp2spki$/) {
-+  elsif (/openpgp2spki/) {
-       my $fpr = shift;
-       my $instream;
-       open($instream,'-');
-@@ -1165,7 +1165,7 @@ for (basename($0)) {
- 	die "No matching key found.\n";
-       }
-   }
--  elsif (/^keytrans$/) {
-+  elsif (/keytrans/) {
-     # subcommands when keytrans is invoked directly are UNSUPPORTED,
-     # UNDOCUMENTED, and WILL NOT BE MAINTAINED.
-     my $subcommand = shift;
 -- 
 2.16.3