diff options
author | Kirill Elagin <kirelagin@gmail.com> | 2019-01-06 14:41:22 +0300 |
---|---|---|
committer | Kirill Elagin <kirelagin@gmail.com> | 2019-01-06 14:56:54 +0300 |
commit | 813c6d46641976befcfdfdb1bdaaf7a84bb34d03 (patch) | |
tree | ea299015f63eea1b59c95f257bfac7e7f5121ac3 | |
parent | be1c03ddaf867e9a58499cd790d5cd72cffc6fca (diff) | |
download | nixlib-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.nix | 17 | ||||
-rw-r--r-- | pkgs/applications/version-management/git-and-tools/gitweb/default.nix | 13 |
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"} ''; |