summary refs log tree commit diff
path: root/pkgs/applications/version-management
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/version-management')
-rw-r--r--pkgs/applications/version-management/git-and-tools/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix24
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/symlinks-in-bin.patch13
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; \
+ 	} && \