about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix83
1 files changed, 39 insertions, 44 deletions
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
index 57f6703762d1..90f6ba5ac5ac 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, buildPackages
+{ fetchurl, lib, stdenv, buildPackages
 , fetchpatch
 , curl, openssl, zlib, expat, perlPackages, python3, gettext, cpio
 , gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
@@ -15,7 +15,7 @@
 , sendEmailSupport
 , darwin
 , withLibsecret ? false
-, pkgconfig, glib, libsecret
+, pkg-config, glib, libsecret
 , gzip # needed at runtime by gitweb.cgi
 }:
 
@@ -23,7 +23,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.29.2";
+  version = "2.30.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
 
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -35,10 +35,10 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "1h87yv117ypnc0yi86941089c14n91gixk8b6shj2y35prp47z7j";
+    sha256 = "06ad6dylgla34k9am7d5z8y3rryc8ln3ibq5z0d74rcm20hm0wsm";
   };
 
-  outputs = [ "out" ] ++ stdenv.lib.optional withManual "doc";
+  outputs = [ "out" ] ++ lib.optional withManual "doc";
 
   hardeningDisable = [ "format" ];
 
@@ -52,12 +52,6 @@ stdenv.mkDerivation {
     ./ssh-path.patch
     ./git-send-email-honor-PATH.patch
     ./installCheck-path.patch
-    (fetchpatch {
-      # https://github.com/git/git/pull/925
-      name = "make-manual-reproducible.patch";
-      url = "https://github.com/git/git/commit/7a68e9e0b8eda91eb576bbbc5ed66298f3ab761c.patch";
-      sha256 = "02naws82pd3vvwrrgqn91kid8qkjihyjaz1ahgjz8qlmnn2avf5n";
-    })
   ];
 
   postPatch = ''
@@ -72,20 +66,20 @@ stdenv.mkDerivation {
   '';
 
   nativeBuildInputs = [ gettext perlPackages.perl ]
-    ++ stdenv.lib.optionals withManual [ asciidoctor texinfo xmlto docbook2x
+    ++ lib.optionals withManual [ asciidoctor texinfo xmlto docbook2x
          docbook_xsl docbook_xsl_ns docbook_xml_dtd_45 libxslt ];
   buildInputs = [curl openssl zlib expat cpio makeWrapper libiconv]
-    ++ stdenv.lib.optionals perlSupport [ perlPackages.perl ]
-    ++ stdenv.lib.optionals guiSupport [tcl tk]
-    ++ stdenv.lib.optionals withpcre2 [ pcre2 ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ]
-    ++ stdenv.lib.optionals withLibsecret [ pkgconfig glib libsecret ];
+    ++ lib.optionals perlSupport [ perlPackages.perl ]
+    ++ lib.optionals guiSupport [tcl tk]
+    ++ lib.optionals withpcre2 [ pcre2 ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.Security ]
+    ++ lib.optionals withLibsecret [ pkg-config glib libsecret ];
 
   # required to support pthread_cancel()
-  NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
-              + stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr";
+  NIX_LDFLAGS = lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
+              + lib.optionalString (stdenv.isFreeBSD) "-lthr";
 
-  configureFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+  configureFlags = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "ac_cv_fread_reads_directories=yes"
     "ac_cv_snprintf_returns_bogus=no"
     "ac_cv_iconv_omits_bom=no"
@@ -102,11 +96,11 @@ stdenv.mkDerivation {
   ]
   ++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
   ++ (if pythonSupport then ["PYTHON_PATH=${python3}/bin/python"] else ["NO_PYTHON=1"])
-  ++ stdenv.lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
+  ++ lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
   ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"])
-  ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
-  ++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1"
-  ++ stdenv.lib.optional (!nlsSupport) "NO_GETTEXT=1"
+  ++ lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
+  ++ lib.optional withpcre2 "USE_LIBPCRE2=1"
+  ++ lib.optional (!nlsSupport) "NO_GETTEXT=1"
   # git-gui refuses to start with the version of tk distributed with
   # macOS Catalina. We can prevent git from building the .app bundle
   # by specifying an invalid tk framework. The postInstall step will
@@ -114,16 +108,16 @@ stdenv.mkDerivation {
   # acceptable version.
   #
   # See https://github.com/Homebrew/homebrew-core/commit/dfa3ccf1e7d3901e371b5140b935839ba9d8b706
-  ++ stdenv.lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent";
+  ++ lib.optional stdenv.isDarwin "TKFRAMEWORK=/nonexistent";
 
 
   postBuild = ''
     make -C contrib/subtree
-  '' + (stdenv.lib.optionalString perlSupport ''
+  '' + (lib.optionalString perlSupport ''
     make -C contrib/diff-highlight
-  '') + (stdenv.lib.optionalString stdenv.isDarwin ''
+  '') + (lib.optionalString stdenv.isDarwin ''
     make -C contrib/credential/osxkeychain
-  '') + (stdenv.lib.optionalString withLibsecret ''
+  '') + (lib.optionalString withLibsecret ''
     make -C contrib/credential/libsecret
   '');
 
@@ -135,11 +129,11 @@ stdenv.mkDerivation {
 
   installFlags = [ "NO_INSTALL_HARDLINKS=1" ];
 
-  preInstall = (stdenv.lib.optionalString stdenv.isDarwin ''
+  preInstall = (lib.optionalString stdenv.isDarwin ''
     mkdir -p $out/bin
     ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/
     rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o
-  '') + (stdenv.lib.optionalString withLibsecret ''
+  '') + (lib.optionalString withLibsecret ''
     mkdir -p $out/bin
     ln -s $out/share/git/contrib/credential/libsecret/git-credential-libsecret $out/bin/
     rm -f $PWD/contrib/credential/libsecret/git-credential-libsecret.o
@@ -152,7 +146,7 @@ stdenv.mkDerivation {
       }
 
       # Install git-subtree.
-      make -C contrib/subtree install ${stdenv.lib.optionalString withManual "USE_ASCIIDOCTOR=1 install-doc"}
+      make -C contrib/subtree install ${lib.optionalString withManual "USE_ASCIIDOCTOR=1 install-doc"}
       rm -rf contrib/subtree
 
       # Install contrib stuff.
@@ -176,7 +170,7 @@ stdenv.mkDerivation {
             '${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk',
             '${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname',
             '${coreutils}/bin/wc', '${coreutils}/bin/tr'
-            ${stdenv.lib.optionalString perlSupport ", '${perlPackages.perl}/bin/perl'"}
+            ${lib.optionalString perlSupport ", '${perlPackages.perl}/bin/perl'"}
           );
         }
         foreach $c (@a) {
@@ -192,7 +186,7 @@ stdenv.mkDerivation {
       # Also put git-http-backend into $PATH, so that we can use smart
       # HTTP(s) transports for pushing
       ln -s $out/libexec/git-core/git-http-backend $out/bin/git-http-backend
-    '' + stdenv.lib.optionalString perlSupport ''
+    '' + lib.optionalString perlSupport ''
       # wrap perl commands
       makeWrapper "$out/share/git/contrib/credential/netrc/git-credential-netrc.perl" $out/bin/git-credential-netrc \
                   --set PERL5LIB   "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
@@ -212,7 +206,7 @@ stdenv.mkDerivation {
       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
+      for p in ${lib.concatStringsSep " " gitwebPerlLibs}; do
           sed -i -e "/use CGI /i use lib \"$p/${perlPackages.perl.libPrefix}\";" \
               "$out/share/gitweb/gitweb.cgi"
       done
@@ -236,7 +230,7 @@ stdenv.mkDerivation {
         notSupported $out/libexec/git-core/git-send-email
       '')
 
-   + stdenv.lib.optionalString withManual ''# Install man pages
+   + lib.optionalString withManual ''# Install man pages
        make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES USE_ASCIIDOCTOR=1 PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \
          -C Documentation ''
 
@@ -254,7 +248,7 @@ stdenv.mkDerivation {
          notSupported "$out/$prog"
        done
      '')
-   + stdenv.lib.optionalString stdenv.isDarwin ''
+   + lib.optionalString stdenv.isDarwin ''
     # enable git-credential-osxkeychain by default if darwin
     mkdir -p $out/etc
     cat > $out/etc/gitconfig << EOF
@@ -281,7 +275,7 @@ stdenv.mkDerivation {
     installCheckFlagsArray+=(
       GIT_PROVE_OPTS="--jobs $NIX_BUILD_CORES --failures --state=failed,save"
       GIT_TEST_INSTALLED=$out/bin
-      ${stdenv.lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"}
+      ${lib.optionalString (!svnSupport) "NO_SVN_TESTS=y"}
     )
 
     function disable_test {
@@ -298,11 +292,12 @@ stdenv.mkDerivation {
     disable_test t0001-init shared
     disable_test t1301-shared-repo
     disable_test t5324-split-commit-graph 'split commit-graph respects core.sharedrepository'
+    disable_test t4129-apply-samemode 'do not use core.sharedRepository for working tree files'
 
     # Our patched gettext never fallbacks
     disable_test t0201-gettext-fallbacks
 
-    ${stdenv.lib.optionalString (!sendEmailSupport) ''
+    ${lib.optionalString (!sendEmailSupport) ''
       # Disable sendmail tests
       disable_test t9001-send-email
     ''}
@@ -315,17 +310,17 @@ stdenv.mkDerivation {
     # Tested to fail: 2.18.0
     disable_test t9902-completion "sourcing the completion script clears cached --options"
 
-    ${stdenv.lib.optionalString (!perlSupport) ''
+    ${lib.optionalString (!perlSupport) ''
       # request-pull is a Bash script that invokes Perl, so it is not available
       # when NO_PERL=1, and the test should be skipped, but the test suite does
       # not check for the Perl prerequisite.
       disable_test t5150-request-pull
     ''}
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.isDarwin ''
     # XXX: Some tests added in 2.24.0 fail.
     # Please try to re-enable on the next release.
     disable_test t7816-grep-binary-pattern
-  '' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+  '' + lib.optionalString stdenv.hostPlatform.isMusl ''
     # Test fails (as of 2.17.0, musl 1.1.19)
     disable_test t3900-i18n-commit
     # Fails largely due to assumptions about BOM
@@ -339,7 +334,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://git-scm.com/";
     description = "Distributed version control system";
-    license = stdenv.lib.licenses.gpl2;
+    license = lib.licenses.gpl2;
     changelog = "https://raw.githubusercontent.com/git/git/${version}/Documentation/RelNotes/${version}.txt";
 
     longDescription = ''
@@ -347,7 +342,7 @@ stdenv.mkDerivation {
       handle very large projects with speed and efficiency.
     '';
 
-    platforms = stdenv.lib.platforms.all;
-    maintainers = with stdenv.lib.maintainers; [ primeos peti wmertens globin ];
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ primeos peti wmertens globin ];
   };
 }