forked from mirrors/nixpkgs
Merge pull request #53494 from kirelagin/git-instaweb
git, gitweb: Fix git-instaweb
This commit is contained in:
commit
f24e74d159
|
@ -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 ''
|
||||
|
|
|
@ -1,35 +1,25 @@
|
|||
{ stdenv, git, gzip, perlPackages, fetchFromGitHub
|
||||
{ stdenv, buildEnv, git, fetchFromGitHub
|
||||
, gitwebTheme ? false }:
|
||||
|
||||
let
|
||||
gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
|
||||
gitwebThemeSrc = fetchFromGitHub {
|
||||
owner = "kogakure";
|
||||
repo = "gitweb-theme";
|
||||
rev = "049b88e664a359f8ec25dc6f531b7e2aa60dd1a2";
|
||||
sha256 = "0wksqma41z36dbv6w6iplkjfdm0ha3njp222fakyh4lismajr71p";
|
||||
extraPostFetch = ''
|
||||
mkdir -p "$TMPDIR/gitwebTheme"
|
||||
mv "$out"/* "$TMPDIR/gitwebTheme/"
|
||||
mkdir "$out/static"
|
||||
mv "$TMPDIR/gitwebTheme"/* "$out/static/"
|
||||
'';
|
||||
sha256 = "17hypq6jvhy6zhh26lp3nyi52npfd5wy5752k6sq0shk4na2acqi";
|
||||
};
|
||||
in stdenv.mkDerivation {
|
||||
in buildEnv {
|
||||
name = "gitweb-${stdenv.lib.getVersion git}";
|
||||
|
||||
src = git.gitweb;
|
||||
|
||||
installPhase = ''
|
||||
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"}
|
||||
'';
|
||||
ignoreCollisions = true;
|
||||
paths = stdenv.lib.optional gitwebTheme "${gitwebThemeSrc}"
|
||||
++ [ "${git}/share/gitweb" ];
|
||||
|
||||
meta = git.meta // {
|
||||
maintainers = with stdenv.lib.maintainers; [ gnidorah ];
|
||||
|
|
Loading…
Reference in a new issue