Merge pull request #39461 from dtzWill/update/git-2.17.0-again
git: 2.16.3 -> 2.17.0, again, installCheck
This commit is contained in:
commit
6e623fb07b
@ -18,7 +18,7 @@ assert sendEmailSupport -> perlSupport;
|
|||||||
assert svnSupport -> perlSupport;
|
assert svnSupport -> perlSupport;
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "2.16.3";
|
version = "2.17.0";
|
||||||
svn = subversionClient.override { perlBindings = perlSupport; };
|
svn = subversionClient.override { perlBindings = perlSupport; };
|
||||||
in
|
in
|
||||||
|
|
||||||
@ -27,19 +27,24 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
||||||
sha256 = "0j1dwvg5llnj3g0fp8hdgpms4hp90qw9f6509vqw30dhwplrjpfn";
|
sha256 = "1ismz7nsz8dgjmk782xr9s0mr2qh06f72pdcgbxfmnw1bvlya5p9";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb";
|
outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
## Patch
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./docbook2texi.patch
|
./docbook2texi.patch
|
||||||
./symlinks-in-bin.patch
|
./symlinks-in-bin.patch
|
||||||
./git-sh-i18n.patch
|
./git-sh-i18n.patch
|
||||||
./ssh-path.patch
|
./ssh-path.patch
|
||||||
./git-send-email-honor-PATH.patch
|
./git-send-email-honor-PATH.patch
|
||||||
|
./installCheck-path.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
@ -47,6 +52,10 @@ stdenv.mkDerivation {
|
|||||||
substituteInPlace "$x" \
|
substituteInPlace "$x" \
|
||||||
--subst-var-by ssh "${openssh}/bin/ssh"
|
--subst-var-by ssh "${openssh}/bin/ssh"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Fix references to gettext introduced by ./git-sh-i18n.patch
|
||||||
|
substituteInPlace git-sh-i18n.sh \
|
||||||
|
--subst-var-by gettext ${gettext}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ gettext perl ]
|
nativeBuildInputs = [ gettext perl ]
|
||||||
@ -58,7 +67,6 @@ stdenv.mkDerivation {
|
|||||||
++ stdenv.lib.optionals withpcre2 [ pcre2 ]
|
++ stdenv.lib.optionals withpcre2 [ pcre2 ]
|
||||||
++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ];
|
++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ];
|
||||||
|
|
||||||
|
|
||||||
# required to support pthread_cancel()
|
# required to support pthread_cancel()
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
|
NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
|
||||||
+ stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr";
|
+ stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr";
|
||||||
@ -90,15 +98,17 @@ stdenv.mkDerivation {
|
|||||||
popd
|
popd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# FIXME: "make check" requires Sparse; the Makefile must be tweaked
|
|
||||||
# so that `SPARSE_FLAGS' corresponds to the current architecture...
|
## Install
|
||||||
#doCheck = true;
|
|
||||||
|
# WARNING: Do not `rm` or `mv` files from the source tree; use `cp` instead.
|
||||||
|
# We need many of these files during the installCheckPhase.
|
||||||
|
|
||||||
installFlags = "NO_INSTALL_HARDLINKS=1";
|
installFlags = "NO_INSTALL_HARDLINKS=1";
|
||||||
|
|
||||||
preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
preInstall = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
mv $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin
|
cp -a $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstall =
|
postInstall =
|
||||||
@ -116,7 +126,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
# Install contrib stuff.
|
# Install contrib stuff.
|
||||||
mkdir -p $out/share/git
|
mkdir -p $out/share/git
|
||||||
mv contrib $out/share/git/
|
cp -a contrib $out/share/git/
|
||||||
ln -s "$out/share/git/contrib/credential/netrc/git-credential-netrc" $out/bin/
|
ln -s "$out/share/git/contrib/credential/netrc/git-credential-netrc" $out/bin/
|
||||||
mkdir -p $out/share/emacs/site-lisp
|
mkdir -p $out/share/emacs/site-lisp
|
||||||
ln -s "$out/share/git/contrib/emacs/"*.el $out/share/emacs/site-lisp/
|
ln -s "$out/share/git/contrib/emacs/"*.el $out/share/emacs/site-lisp/
|
||||||
@ -149,9 +159,6 @@ stdenv.mkDerivation {
|
|||||||
perl -0777 -i -pe "$SCRIPT" \
|
perl -0777 -i -pe "$SCRIPT" \
|
||||||
$out/libexec/git-core/git-{sh-setup,filter-branch,merge-octopus,mergetool,quiltimport,request-pull,stash,submodule,subtree,web--browse}
|
$out/libexec/git-core/git-{sh-setup,filter-branch,merge-octopus,mergetool,quiltimport,request-pull,stash,submodule,subtree,web--browse}
|
||||||
|
|
||||||
# Fix references to gettext.
|
|
||||||
substituteInPlace $out/libexec/git-core/git-sh-i18n \
|
|
||||||
--subst-var-by gettext ${gettext}
|
|
||||||
|
|
||||||
# Also put git-http-backend into $PATH, so that we can use smart
|
# Also put git-http-backend into $PATH, so that we can use smart
|
||||||
# HTTP(s) transports for pushing
|
# HTTP(s) transports for pushing
|
||||||
@ -229,7 +236,49 @@ EOF
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
## InstallCheck
|
||||||
|
|
||||||
|
doInstallCheck = true;
|
||||||
|
|
||||||
|
installCheckTarget = "test";
|
||||||
|
|
||||||
|
# see also installCheckFlagsArray
|
||||||
|
installCheckFlags = "DEFAULT_TEST_TARGET=prove";
|
||||||
|
|
||||||
|
preInstallCheck = ''
|
||||||
|
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"}
|
||||||
|
)
|
||||||
|
|
||||||
|
function disable_test {
|
||||||
|
local test=$1 pattern=$2
|
||||||
|
if [ $# -eq 1 ]; then
|
||||||
|
mv t/{,skip-}$test.sh || true
|
||||||
|
else
|
||||||
|
sed -i t/$test.sh \
|
||||||
|
-e "/^ *test_expect_.*$pattern/,/^ *' *\$/{s/^/#/}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Shared permissions are forbidden in sandbox builds.
|
||||||
|
disable_test t0001-init shared
|
||||||
|
disable_test t1301-shared-repo
|
||||||
|
|
||||||
|
# Our patched gettext never fallbacks
|
||||||
|
disable_test t0201-gettext-fallbacks
|
||||||
|
|
||||||
|
${stdenv.lib.optionalString (!sendEmailSupport) ''
|
||||||
|
# Disable sendmail tests
|
||||||
|
disable_test t9001-send-email
|
||||||
|
''}
|
||||||
|
|
||||||
|
# XXX: I failed to understand why this one fails.
|
||||||
|
# Could someone try to re-enable it on the next release ?
|
||||||
|
disable_test t1700-split-index "null sha1"
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = https://git-scm.com/;
|
homepage = https://git-scm.com/;
|
||||||
|
@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/t/test-lib.sh b/t/test-lib.sh
|
||||||
|
--- a/t/test-lib.sh
|
||||||
|
+++ b/t/test-lib.sh
|
||||||
|
@@ -923,7 +923,7 @@
|
||||||
|
then
|
||||||
|
GIT_EXEC_PATH=$($GIT_TEST_INSTALLED/git --exec-path) ||
|
||||||
|
error "Cannot run git from $GIT_TEST_INSTALLED."
|
||||||
|
- PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR:$PATH
|
||||||
|
+ PATH=$GIT_TEST_INSTALLED:$GIT_BUILD_DIR/t/helper:$GIT_BUILD_DIR:$PATH
|
||||||
|
GIT_EXEC_PATH=${GIT_TEST_EXEC_PATH:-$GIT_EXEC_PATH}
|
||||||
|
else # normal case, use ../bin-wrappers only unless $with_dashes:
|
||||||
|
git_bin_dir="$GIT_BUILD_DIR/bin-wrappers"
|
Loading…
x
Reference in New Issue
Block a user