diff options
author | Wout Mertens <Wout.Mertens@gmail.com> | 2019-08-04 23:40:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-04 23:40:16 +0200 |
commit | f24e74d159f6f4fde57f0e56b7219e56f7942a11 (patch) | |
tree | b949caeae78dd85c725577f8b7323f348831e706 /pkgs/applications/version-management/git-and-tools | |
parent | df58d379ca93dbca94b0e6607fbd3061f9aa5758 (diff) | |
parent | 047def418ee726a43b46bce6d93f26e2dd705cb4 (diff) | |
download | nixlib-f24e74d159f6f4fde57f0e56b7219e56f7942a11.tar nixlib-f24e74d159f6f4fde57f0e56b7219e56f7942a11.tar.gz nixlib-f24e74d159f6f4fde57f0e56b7219e56f7942a11.tar.bz2 nixlib-f24e74d159f6f4fde57f0e56b7219e56f7942a11.tar.lz nixlib-f24e74d159f6f4fde57f0e56b7219e56f7942a11.tar.xz nixlib-f24e74d159f6f4fde57f0e56b7219e56f7942a11.tar.zst nixlib-f24e74d159f6f4fde57f0e56b7219e56f7942a11.zip |
Merge pull request #53494 from kirelagin/git-instaweb
git, gitweb: Fix git-instaweb
Diffstat (limited to 'pkgs/applications/version-management/git-and-tools')
-rw-r--r-- | pkgs/applications/version-management/git-and-tools/git/default.nix | 18 | ||||
-rw-r--r-- | pkgs/applications/version-management/git-and-tools/gitweb/default.nix | 34 |
2 files changed, 26 insertions, 26 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 67125458c72f..4c78963d7fa4 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.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 '' 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..afd90ba49690 100644 --- a/pkgs/applications/version-management/git-and-tools/gitweb/default.nix +++ b/pkgs/applications/version-management/git-and-tools/gitweb/default.nix @@ -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 ]; |