summary refs log tree commit diff
diff options
context:
space:
mode:
authorMathieu Boespflug <mboes@tweag.net>2017-10-02 15:25:12 +0200
committerzimbatm <zimbatm@zimbatm.com>2017-10-02 14:25:12 +0100
commitf795d78d86b453c7bc34ada886025edc0433e512 (patch)
tree6df46d6b2477b7493fbf2243f8ab1c1843b24e96
parent3594c358bdc2d968ea48e9c844a1416859164049 (diff)
downloadnixlib-f795d78d86b453c7bc34ada886025edc0433e512.tar
nixlib-f795d78d86b453c7bc34ada886025edc0433e512.tar.gz
nixlib-f795d78d86b453c7bc34ada886025edc0433e512.tar.bz2
nixlib-f795d78d86b453c7bc34ada886025edc0433e512.tar.lz
nixlib-f795d78d86b453c7bc34ada886025edc0433e512.tar.xz
nixlib-f795d78d86b453c7bc34ada886025edc0433e512.tar.zst
nixlib-f795d78d86b453c7bc34ada886025edc0433e512.zip
git: Properly wrap Git commands that are implemented in Perl. (#30001)
Some Git commands are implemented as Perl scripts. Some of these
scripts use Perl modules from CPAN. Without wrapping these programs to
set `GITPERLLIB`, these programs would not be fully functional because
some Perl libraries are found to be missing at runtime.

Fixes #29996
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix16
1 files changed, 16 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index fcf35a9ca34e..51f523305d18 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -145,6 +145,22 @@ stdenv.mkDerivation {
       # Also put git-http-backend into $PATH, so that we can use smart
       # HTTP(s) transports for pushing
       ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend
+
+      # wrap perl commands
+      gitperllib=$out/lib/perl5/site_perl
+      for i in ${builtins.toString perlLibs}; do
+        gitperllib=$gitperllib:$i/lib/perl5/site_perl
+      done
+      wrapProgram $out/libexec/git-core/git-cvsimport \
+                  --set GITPERLLIB "$gitperllib"
+      wrapProgram $out/libexec/git-core/git-add--interactive \
+                  --set GITPERLLIB "$gitperllib"
+      wrapProgram $out/libexec/git-core/git-archimport \
+                  --set GITPERLLIB "$gitperllib"
+      wrapProgram $out/libexec/git-core/git-instaweb \
+                  --set GITPERLLIB "$gitperllib"
+      wrapProgram $out/libexec/git-core/git-cvsexportcommit \
+                  --set GITPERLLIB "$gitperllib"
     ''
 
    + (if svnSupport then