diff options
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.nix | 83 |
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 ]; }; } |