mirror of
https://github.com/SebastianWendel/nixpkgs.git
synced 2024-09-20 20:39:04 +02:00
git: add install checks
(cherry picked from commit f57873f674ebc2f6ae874407aafb98a1350ab525)
This commit is contained in:
parent
97372a1104
commit
6dda53ad22
|
@ -34,12 +34,17 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
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…
Reference in a new issue