diff options
Diffstat (limited to 'pkgs/applications/version-management')
3 files changed, 27 insertions, 12 deletions
diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix index b6d7c1eb5d3b..a5aeb1bf6a41 100644 --- a/pkgs/applications/version-management/git-and-tools/default.nix +++ b/pkgs/applications/version-management/git-and-tools/default.nix @@ -10,7 +10,7 @@ rec { git = lib.makeOverridable (import ./git) { inherit fetchurl stdenv curl openssl zlib expat perl python gettext gnugrep asciidoc texinfo xmlto docbook2x docbook_xsl docbook_xml_dtd_45 libxslt - cpio tcl tk makeWrapper subversionClient hardlink; + cpio tcl tk makeWrapper subversionClient gzip; svnSupport = false; # for git-svn support guiSupport = false; # requires tcl/tk sendEmailSupport = false; # requires plenty of perl libraries 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 b006354a0149..58071d86d4e5 100644 --- a/pkgs/applications/version-management/git-and-tools/git/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git/default.nix @@ -1,6 +1,6 @@ -{ fetchurl, stdenv, curl, openssl, zlib, expat, perl, python, gettext, cpio, gnugrep +{ fetchurl, stdenv, curl, openssl, zlib, expat, perl, python, gettext, cpio, gnugrep, gzip , asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45 -, libxslt, tcl, tk, makeWrapper, hardlink +, libxslt, tcl, tk, makeWrapper , svnSupport, subversionClient, perlLibs, smtpPerlLibs , guiSupport , withManual ? true @@ -10,7 +10,7 @@ let - version = "1.8.2"; + version = "1.8.2.1"; svn = subversionClient.override { perlBindings = true; }; @@ -21,10 +21,10 @@ stdenv.mkDerivation { src = fetchurl { url = "http://git-core.googlecode.com/files/git-${version}.tar.gz"; - sha256 = "1rhkya4kfs7iayasgj3bk8zg1pfk3h7wqhfy9d6aaqjgzb75pwy2"; + sha1 = "ad9f833e509ba31c83efe336fd3599e89a39394b"; }; - patches = [ ./docbook2texi.patch ]; + patches = [ ./docbook2texi.patch ./symlinks-in-bin.patch ]; buildInputs = [curl openssl zlib expat gettext cpio makeWrapper] ++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x @@ -41,6 +41,8 @@ stdenv.mkDerivation { # so that `SPARSE_FLAGS' corresponds to the current architecture... #doCheck = true; + installFlags = "NO_INSTALL_HARDLINKS=1"; + postInstall = '' notSupported() { @@ -66,6 +68,11 @@ stdenv.mkDerivation { sed -i -e 's| perl -ne| ${perl}/bin/perl -ne|g' \ -e 's| perl -e| ${perl}/bin/perl -e|g' \ $out/libexec/git-core/{git-am,git-submodule} + + # gzip (and optionally bzip2, xz, zip) are a 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 '' + (if svnSupport then @@ -113,15 +120,10 @@ stdenv.mkDerivation { done ''); - # Git installs many copies of the same binary using hardlinks, but unfortunately - # our patchELF phase re-writes those files and destroys the hardlinks in the - # process. This utility re-generates them afterwards. - postFixup = "${hardlink}/bin/hardlink $out"; - enableParallelBuilding = true; meta = { - homepage = "http://git-scm.com/"; + homepage = http://git-scm.com/; description = "Git, a popular distributed version control system"; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch b/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch new file mode 100644 index 000000000000..29d537db25f9 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch @@ -0,0 +1,13 @@ +diff -ru -x '*~' git-1.8.2.1-orig/Makefile git-1.8.2.1/Makefile +--- git-1.8.2.1-orig/Makefile 2013-04-08 00:52:04.000000000 +0200 ++++ git-1.8.2.1/Makefile 2013-04-22 15:46:42.906026940 +0200 +@@ -2319,8 +2319,7 @@ + { test "$$bindir/" = "$$execdir/" || \ + for p in git$X $(filter $(install_bindir_programs),$(ALL_PROGRAMS)); do \ + $(RM) "$$execdir/$$p" && \ +- test -z "$(NO_INSTALL_HARDLINKS)$(NO_CROSS_DIRECTORY_HARDLINKS)" && \ +- ln "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \ ++ ln -s "$$bindir/$$p" "$$execdir/$$p" 2>/dev/null || \ + cp "$$bindir/$$p" "$$execdir/$$p" || exit; \ + done; \ + } && \ |