about summary refs log tree commit diff
diff options
context:
space:
mode:
authorKirill Elagin <kirelagin@gmail.com>2019-01-06 14:41:22 +0300
committerKirill Elagin <kirelagin@gmail.com>2019-01-06 14:56:54 +0300
commit813c6d46641976befcfdfdb1bdaaf7a84bb34d03 (patch)
treeea299015f63eea1b59c95f257bfac7e7f5121ac3
parentbe1c03ddaf867e9a58499cd790d5cd72cffc6fca (diff)
downloadnixlib-813c6d46641976befcfdfdb1bdaaf7a84bb34d03.tar
nixlib-813c6d46641976befcfdfdb1bdaaf7a84bb34d03.tar.gz
nixlib-813c6d46641976befcfdfdb1bdaaf7a84bb34d03.tar.bz2
nixlib-813c6d46641976befcfdfdb1bdaaf7a84bb34d03.tar.lz
nixlib-813c6d46641976befcfdfdb1bdaaf7a84bb34d03.tar.xz
nixlib-813c6d46641976befcfdfdb1bdaaf7a84bb34d03.tar.zst
nixlib-813c6d46641976befcfdfdb1bdaaf7a84bb34d03.zip
git, gitweb: Fix git-instaweb
* Make the build system embed the correct path to gitweb into git-instaweb
* Move gitweb fixups to the git expression, to make sure that gitweb
used by git-instaweb is functional
* This will increase the closure size of git, but only with perlSupport
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix17
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitweb/default.nix13
2 files changed, 15 insertions, 15 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 46e88b1e0fc4..9c405d0aba8c 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -14,6 +14,7 @@
 , darwin
 , withLibsecret ? false
 , pkgconfig, glib, libsecret
+, gzip # needed at runtime by gitweb.cgi
 }:
 
 assert sendEmailSupport -> perlSupport;
@@ -22,6 +23,8 @@ assert svnSupport -> perlSupport;
 let
   version = "2.19.2";
   svn = subversionClient.override { perlBindings = perlSupport; };
+
+  gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
 in
 
 stdenv.mkDerivation {
@@ -84,6 +87,7 @@ stdenv.mkDerivation {
 
   makeFlags = [
     "prefix=\${out}"
+    "gitwebdir=\${gitweb}"  # put in separate package for simpler maintenance
     "SHELL_PATH=${stdenv.shell}"
   ]
   ++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
@@ -169,9 +173,6 @@ stdenv.mkDerivation {
       # HTTP(s) transports for pushing
       ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend
     '' + stdenv.lib.optionalString perlSupport ''
-      # put in separate package for simpler maintenance
-      mv $out/share/gitweb $gitweb/
-
       # wrap perl commands
       makeWrapper "$out/share/git/contrib/credential/netrc/git-credential-netrc" $out/bin/git-credential-netrc \
                   --set PERL5LIB   "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
@@ -185,6 +186,16 @@ stdenv.mkDerivation {
                   --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
       wrapProgram $out/libexec/git-core/git-cvsexportcommit \
                   --set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
+
+      # gzip (and optionally bzip2, xz, zip) are runtime dependencies for
+      # gitweb.cgi, need to patch so that it's found
+      sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \
+          $gitweb/gitweb.cgi
+      # Give access to CGI.pm and friends (was removed from perl core in 5.22)
+      for p in ${stdenv.lib.concatStringsSep " " gitwebPerlLibs}; do
+          sed -i -e "/use CGI /i use lib \"$p/${perlPackages.perl.libPrefix}\";" \
+              "$gitweb/gitweb.cgi"
+      done
     ''
 
    + (if svnSupport then ''
diff --git a/pkgs/applications/version-management/git-and-tools/gitweb/default.nix b/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
index a98dd5bc5862..f165fa6b05ca 100644
--- a/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitweb/default.nix
@@ -1,8 +1,7 @@
-{ stdenv, git, gzip, perlPackages, fetchFromGitHub
+{ stdenv, git, fetchFromGitHub
 , gitwebTheme ? false }:
 
 let
-  gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
   gitwebThemeSrc = fetchFromGitHub {
     owner = "kogakure";
     repo = "gitweb-theme";
@@ -18,16 +17,6 @@ in stdenv.mkDerivation {
       mkdir $out
       mv * $out
 
-      # gzip (and optionally bzip2, xz, zip) are runtime dependencies for
-      # gitweb.cgi, need to patch so that it's found
-      sed -i -e "s|'compressor' => \['gzip'|'compressor' => ['${gzip}/bin/gzip'|" \
-          $out/gitweb.cgi
-      # Give access to CGI.pm and friends (was removed from perl core in 5.22)
-      for p in ${stdenv.lib.concatStringsSep " " gitwebPerlLibs}; do
-          sed -i -e "/use CGI /i use lib \"$p/${perlPackages.perl.libPrefix}\";" \
-              "$out/gitweb.cgi"
-      done
-
       ${stdenv.lib.optionalString gitwebTheme "cp ${gitwebThemeSrc}/* $out/static"}
   '';