Merge pull request #53494 from kirelagin/git-instaweb

git, gitweb: Fix git-instaweb
This commit is contained in:
Wout Mertens
2019-08-04 23:40:16 +02:00
committed by GitHub
2 changed files with 26 additions and 26 deletions
@@ -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.22.0";
svn = subversionClient.override { perlBindings = perlSupport; };
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
in
stdenv.mkDerivation {
@@ -32,7 +35,7 @@ stdenv.mkDerivation {
sha256 = "17zj6jwx3s6bybd290f1mj5iym1r64560rmnf0p63x4akxclp7hm";
};
outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb";
outputs = [ "out" ];
hardeningDisable = [ "format" ];
@@ -171,9 +174,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}"
@@ -187,6 +187,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'|" \
$out/share/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}\";" \
"$out/share/gitweb/gitweb.cgi"
done
''
+ (if svnSupport then ''