From 6d81d8254c56ea3820a5daa339b31915d2c73580 Mon Sep 17 00:00:00 2001 From: Michael Weiss Date: Fri, 7 Sep 2018 13:07:10 +0200 Subject: monkeysphere: Correctly wrap the keytrans aliases (subcommands) --- pkgs/tools/security/monkeysphere/default.nix | 33 ++++++++++------ .../tools/security/monkeysphere/monkeysphere.patch | 45 ---------------------- 2 files changed, 21 insertions(+), 57 deletions(-) (limited to 'pkgs/tools/security/monkeysphere') diff --git a/pkgs/tools/security/monkeysphere/default.nix b/pkgs/tools/security/monkeysphere/default.nix index bafe8cdf500b0..f4def72b728cf 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 f341ee747bbc2..fdf4b9335b198 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 -- cgit 1.4.1