2018-04-24 23:53:33 +01:00
|
|
|
{ fetchurl, stdenv, buildPackages
|
2018-12-15 03:50:31 +00:00
|
|
|
, curl, openssl, zlib, expat, perlPackages, python, gettext, cpio
|
2017-07-11 17:00:17 +01:00
|
|
|
, gnugrep, gnused, gawk, coreutils # needed at runtime by git-filter-branch etc
|
2018-04-17 18:06:44 +01:00
|
|
|
, openssh, pcre2
|
2009-11-03 15:57:31 +00:00
|
|
|
, asciidoc, texinfo, xmlto, docbook2x, docbook_xsl, docbook_xml_dtd_45
|
2015-02-18 03:30:59 +00:00
|
|
|
, libxslt, tcl, tk, makeWrapper, libiconv
|
2018-04-17 18:06:44 +01:00
|
|
|
, svnSupport, subversionClient, perlLibs, smtpPerlLibs
|
2018-04-22 18:58:30 +01:00
|
|
|
, perlSupport ? true
|
2008-06-11 13:31:44 +01:00
|
|
|
, guiSupport
|
2013-01-28 20:24:04 +00:00
|
|
|
, withManual ? true
|
2010-03-13 06:07:44 +00:00
|
|
|
, pythonSupport ? true
|
2017-08-05 15:39:33 +01:00
|
|
|
, withpcre2 ? true
|
2010-05-15 11:38:28 +01:00
|
|
|
, sendEmailSupport
|
2016-10-11 04:13:09 +01:00
|
|
|
, darwin
|
2018-07-22 20:20:37 +01:00
|
|
|
, withLibsecret ? false
|
|
|
|
, pkgconfig, glib, libsecret
|
2008-06-11 13:31:44 +01:00
|
|
|
}:
|
2008-05-22 09:06:52 +01:00
|
|
|
|
2018-04-22 18:58:30 +01:00
|
|
|
assert sendEmailSupport -> perlSupport;
|
|
|
|
assert svnSupport -> perlSupport;
|
|
|
|
|
2010-04-02 08:17:11 +01:00
|
|
|
let
|
2018-11-21 17:06:24 +00:00
|
|
|
version = "2.19.2";
|
2018-04-22 18:58:30 +01:00
|
|
|
svn = subversionClient.override { perlBindings = perlSupport; };
|
2010-04-02 08:17:11 +01:00
|
|
|
in
|
2012-06-04 16:54:57 +01:00
|
|
|
|
2011-10-21 17:50:36 +01:00
|
|
|
stdenv.mkDerivation {
|
|
|
|
name = "git-${version}";
|
2007-04-26 17:14:01 +01:00
|
|
|
|
|
|
|
src = fetchurl {
|
2014-03-20 14:44:25 +00:00
|
|
|
url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
|
2018-11-21 17:06:24 +00:00
|
|
|
sha256 = "1scbggzghkzzfqg4ky3qh7h9w87c3zya4ls5disz7dbx56is7sgw";
|
2007-04-26 17:14:01 +01:00
|
|
|
};
|
|
|
|
|
2018-04-22 18:58:30 +01:00
|
|
|
outputs = [ "out" ] ++ stdenv.lib.optional perlSupport "gitweb";
|
2018-04-17 18:06:44 +01:00
|
|
|
|
2016-02-26 17:38:15 +00:00
|
|
|
hardeningDisable = [ "format" ];
|
2015-12-23 01:59:47 +00:00
|
|
|
|
2018-04-13 22:55:26 +01:00
|
|
|
enableParallelBuilding = true;
|
|
|
|
|
|
|
|
## Patch
|
|
|
|
|
2014-11-25 22:49:11 +00:00
|
|
|
patches = [
|
|
|
|
./docbook2texi.patch
|
2016-02-20 14:07:27 +00:00
|
|
|
./git-sh-i18n.patch
|
2016-03-25 21:05:32 +00:00
|
|
|
./ssh-path.patch
|
2017-11-17 12:36:14 +00:00
|
|
|
./git-send-email-honor-PATH.patch
|
2018-04-13 22:55:26 +01:00
|
|
|
./installCheck-path.patch
|
2014-11-25 22:49:11 +00:00
|
|
|
];
|
2008-03-12 15:21:45 +00:00
|
|
|
|
2016-03-25 21:05:32 +00:00
|
|
|
postPatch = ''
|
|
|
|
for x in connect.c git-gui/lib/remote_add.tcl ; do
|
|
|
|
substituteInPlace "$x" \
|
|
|
|
--subst-var-by ssh "${openssh}/bin/ssh"
|
|
|
|
done
|
2018-04-13 22:55:26 +01:00
|
|
|
|
|
|
|
# Fix references to gettext introduced by ./git-sh-i18n.patch
|
|
|
|
substituteInPlace git-sh-i18n.sh \
|
|
|
|
--subst-var-by gettext ${gettext}
|
2016-03-25 21:05:32 +00:00
|
|
|
'';
|
|
|
|
|
2018-12-15 03:50:31 +00:00
|
|
|
nativeBuildInputs = [ gettext perlPackages.perl ]
|
2013-01-28 20:24:04 +00:00
|
|
|
++ stdenv.lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
|
2017-12-10 18:52:34 +00:00
|
|
|
docbook_xsl docbook_xml_dtd_45 libxslt ];
|
|
|
|
buildInputs = [curl openssl zlib expat cpio makeWrapper libiconv]
|
2018-12-15 03:50:31 +00:00
|
|
|
++ stdenv.lib.optionals perlSupport [ perlPackages.perl ]
|
2016-10-11 04:13:09 +01:00
|
|
|
++ stdenv.lib.optionals guiSupport [tcl tk]
|
2017-08-05 15:39:33 +01:00
|
|
|
++ stdenv.lib.optionals withpcre2 [ pcre2 ]
|
2018-07-22 20:20:37 +01:00
|
|
|
++ stdenv.lib.optionals stdenv.isDarwin [ darwin.Security ]
|
|
|
|
++ stdenv.lib.optionals withLibsecret [ pkgconfig glib libsecret ];
|
2016-10-11 04:13:09 +01:00
|
|
|
|
2013-03-09 22:57:57 +00:00
|
|
|
# required to support pthread_cancel()
|
FreeBSD: apr-util, cyrus-sasl, berkeley db, glib, gnutls, kerberos, libelf-freebsd, openldap, serf, guile, tet, shishi, gawk, gnugrep
2015-11-28 00:46:00 +00:00
|
|
|
NIX_LDFLAGS = stdenv.lib.optionalString (!stdenv.cc.isClang) "-lgcc_s"
|
|
|
|
+ stdenv.lib.optionalString (stdenv.isFreeBSD) "-lthr";
|
2013-03-09 22:57:57 +00:00
|
|
|
|
2017-12-10 18:52:34 +00:00
|
|
|
configureFlags = stdenv.lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
|
|
|
|
"ac_cv_fread_reads_directories=yes"
|
|
|
|
"ac_cv_snprintf_returns_bogus=no"
|
|
|
|
];
|
|
|
|
|
2018-04-11 12:00:40 +01:00
|
|
|
preBuild = ''
|
|
|
|
makeFlagsArray+=( perllibdir=$out/$(perl -MConfig -wle 'print substr $Config{installsitelib}, 1 + length $Config{siteprefixexp}') )
|
|
|
|
'';
|
|
|
|
|
2018-04-22 20:22:34 +01:00
|
|
|
makeFlags = [
|
2018-04-11 12:00:40 +01:00
|
|
|
"prefix=\${out}"
|
|
|
|
"SHELL_PATH=${stdenv.shell}"
|
2018-04-22 20:22:34 +01:00
|
|
|
]
|
2018-12-15 03:50:31 +00:00
|
|
|
++ (if perlSupport then ["PERL_PATH=${perlPackages.perl}/bin/perl"] else ["NO_PERL=1"])
|
2018-04-22 20:22:34 +01:00
|
|
|
++ (if pythonSupport then ["PYTHON_PATH=${python}/bin/python"] else ["NO_PYTHON=1"])
|
|
|
|
++ stdenv.lib.optionals stdenv.isSunOS ["INSTALL=install" "NO_INET_NTOP=" "NO_INET_PTON="]
|
|
|
|
++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc/"])
|
2017-12-10 19:08:23 +00:00
|
|
|
++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
|
|
|
|
++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1";
|
2014-04-14 20:53:15 +01:00
|
|
|
|
2018-07-22 20:20:37 +01:00
|
|
|
|
|
|
|
postBuild = ''
|
|
|
|
make -C contrib/subtree
|
|
|
|
'' + (stdenv.lib.optionalString stdenv.isDarwin ''
|
|
|
|
make -C contrib/credential/osxkeychain
|
|
|
|
'') + (stdenv.lib.optionalString withLibsecret ''
|
|
|
|
make -C contrib/credential/libsecret
|
|
|
|
'');
|
2007-11-14 21:41:01 +00:00
|
|
|
|
2018-04-13 22:55:26 +01:00
|
|
|
|
|
|
|
## Install
|
|
|
|
|
|
|
|
# WARNING: Do not `rm` or `mv` files from the source tree; use `cp` instead.
|
|
|
|
# We need many of these files during the installCheckPhase.
|
2008-08-22 22:35:25 +01:00
|
|
|
|
2017-12-10 19:08:23 +00:00
|
|
|
installFlags = "NO_INSTALL_HARDLINKS=1";
|
2013-04-22 14:55:01 +01:00
|
|
|
|
2018-07-22 20:20:37 +01:00
|
|
|
preInstall = (stdenv.lib.optionalString stdenv.isDarwin ''
|
2016-10-11 04:13:09 +01:00
|
|
|
mkdir -p $out/bin
|
2018-07-22 20:20:37 +01:00
|
|
|
ln -s $out/share/git/contrib/credential/osxkeychain/git-credential-osxkeychain $out/bin/
|
2018-06-22 00:45:43 +01:00
|
|
|
rm -f $PWD/contrib/credential/osxkeychain/git-credential-osxkeychain.o
|
2018-07-22 20:20:37 +01:00
|
|
|
'') + (stdenv.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
|
|
|
|
'');
|
2016-10-11 04:13:09 +01:00
|
|
|
|
2008-02-22 16:51:51 +00:00
|
|
|
postInstall =
|
2008-06-11 13:31:44 +01:00
|
|
|
''
|
2012-06-21 20:23:40 +01:00
|
|
|
notSupported() {
|
2014-04-05 23:39:53 +01:00
|
|
|
unlink $1 || true
|
2008-07-03 13:51:23 +01:00
|
|
|
}
|
|
|
|
|
2013-08-01 15:36:54 +01:00
|
|
|
# Install git-subtree.
|
2018-07-22 20:20:37 +01:00
|
|
|
make -C contrib/subtree install ${stdenv.lib.optionalString withManual "install-doc"}
|
2013-08-01 15:36:54 +01:00
|
|
|
rm -rf contrib/subtree
|
|
|
|
|
2011-07-08 00:48:38 +01:00
|
|
|
# Install contrib stuff.
|
2012-01-18 20:16:00 +00:00
|
|
|
mkdir -p $out/share/git
|
2018-04-13 22:55:26 +01:00
|
|
|
cp -a contrib $out/share/git/
|
2012-01-18 20:16:00 +00:00
|
|
|
mkdir -p $out/share/emacs/site-lisp
|
2011-07-08 00:48:38 +01:00
|
|
|
ln -s "$out/share/git/contrib/emacs/"*.el $out/share/emacs/site-lisp/
|
2012-01-18 20:16:00 +00:00
|
|
|
mkdir -p $out/etc/bash_completion.d
|
2011-07-08 00:48:38 +01:00
|
|
|
ln -s $out/share/git/contrib/completion/git-completion.bash $out/etc/bash_completion.d/
|
2014-08-19 15:34:51 +01:00
|
|
|
ln -s $out/share/git/contrib/completion/git-prompt.sh $out/etc/bash_completion.d/
|
2010-09-18 13:45:04 +01:00
|
|
|
|
2014-02-15 11:04:10 +00:00
|
|
|
# grep is a runtime dependency, need to patch so that it's found
|
2010-09-18 13:45:04 +01:00
|
|
|
substituteInPlace $out/libexec/git-core/git-sh-setup \
|
|
|
|
--replace ' grep' ' ${gnugrep}/bin/grep' \
|
|
|
|
--replace ' egrep' ' ${gnugrep}/bin/egrep'
|
2011-07-20 23:56:31 +01:00
|
|
|
|
2017-07-11 17:00:17 +01:00
|
|
|
# Fix references to the perl, sed, awk and various coreutil binaries used by
|
|
|
|
# shell scripts that git calls (e.g. filter-branch)
|
|
|
|
SCRIPT="$(cat <<'EOS'
|
|
|
|
BEGIN{
|
|
|
|
@a=(
|
2018-04-22 18:58:30 +01:00
|
|
|
'${gnugrep}/bin/grep', '${gnused}/bin/sed', '${gawk}/bin/awk',
|
2017-07-11 17:00:17 +01:00
|
|
|
'${coreutils}/bin/cut', '${coreutils}/bin/basename', '${coreutils}/bin/dirname',
|
|
|
|
'${coreutils}/bin/wc', '${coreutils}/bin/tr'
|
2018-12-15 03:50:31 +00:00
|
|
|
${stdenv.lib.optionalString perlSupport ", '${perlPackages.perl}/bin/perl'"}
|
2017-07-11 17:00:17 +01:00
|
|
|
);
|
|
|
|
}
|
|
|
|
foreach $c (@a) {
|
|
|
|
$n=(split("/", $c))[-1];
|
|
|
|
s|(?<=[^#][^/.-])\b''${n}(?=\s)|''${c}|g
|
|
|
|
}
|
|
|
|
EOS
|
|
|
|
)"
|
|
|
|
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}
|
2013-04-19 21:29:30 +01:00
|
|
|
|
2016-02-16 21:01:21 +00:00
|
|
|
|
2015-07-09 07:32:45 +01:00
|
|
|
# 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
|
2018-04-22 18:58:30 +01:00
|
|
|
'' + stdenv.lib.optionalString perlSupport ''
|
|
|
|
# put in separate package for simpler maintenance
|
|
|
|
mv $out/share/gitweb $gitweb/
|
2017-10-02 14:25:12 +01:00
|
|
|
|
|
|
|
# wrap perl commands
|
2018-12-14 20:49:09 +00:00
|
|
|
makeWrapper "$out/share/git/contrib/credential/netrc/git-credential-netrc" $out/bin/git-credential-netrc \
|
2018-12-15 03:50:31 +00:00
|
|
|
--set PERL5LIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
2017-10-02 14:25:12 +01:00
|
|
|
wrapProgram $out/libexec/git-core/git-cvsimport \
|
2018-12-15 03:50:31 +00:00
|
|
|
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
2017-10-02 14:25:12 +01:00
|
|
|
wrapProgram $out/libexec/git-core/git-add--interactive \
|
2018-12-15 03:50:31 +00:00
|
|
|
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
2017-10-02 14:25:12 +01:00
|
|
|
wrapProgram $out/libexec/git-core/git-archimport \
|
2018-12-15 03:50:31 +00:00
|
|
|
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
2017-10-02 14:25:12 +01:00
|
|
|
wrapProgram $out/libexec/git-core/git-instaweb \
|
2018-12-15 03:50:31 +00:00
|
|
|
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
2017-10-02 14:25:12 +01:00
|
|
|
wrapProgram $out/libexec/git-core/git-cvsexportcommit \
|
2018-12-15 03:50:31 +00:00
|
|
|
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath perlLibs}"
|
2011-07-08 00:48:38 +01:00
|
|
|
''
|
2008-06-28 16:22:31 +01:00
|
|
|
|
2018-12-15 03:50:31 +00:00
|
|
|
+ (if svnSupport then ''
|
|
|
|
# wrap git-svn
|
|
|
|
wrapProgram $out/libexec/git-core/git-svn \
|
|
|
|
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath (perlLibs ++ [svn.out])}" \
|
2016-04-30 17:19:14 +01:00
|
|
|
--prefix PATH : "${svn.out}/bin" ''
|
2008-07-03 13:51:23 +01:00
|
|
|
else '' # replace git-svn by notification script
|
2014-04-05 23:39:53 +01:00
|
|
|
notSupported $out/libexec/git-core/git-svn
|
2018-12-15 03:50:31 +00:00
|
|
|
'')
|
|
|
|
|
|
|
|
+ (if sendEmailSupport then ''
|
|
|
|
# wrap git-send-email
|
2012-06-21 20:23:40 +01:00
|
|
|
wrapProgram $out/libexec/git-core/git-send-email \
|
2018-12-15 03:50:31 +00:00
|
|
|
--set GITPERLLIB "$out/${perlPackages.perl.libPrefix}:${perlPackages.makePerlPath smtpPerlLibs}"
|
|
|
|
'' else ''
|
|
|
|
# replace git-send-email by notification script
|
2014-04-05 23:39:53 +01:00
|
|
|
notSupported $out/libexec/git-core/git-send-email
|
2018-12-15 03:50:31 +00:00
|
|
|
'')
|
2010-05-15 11:38:28 +01:00
|
|
|
|
2013-01-28 20:24:04 +00:00
|
|
|
+ stdenv.lib.optionalString withManual ''# Install man pages and Info manual
|
2018-04-24 23:53:33 +01:00
|
|
|
make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-info \
|
2008-03-15 20:52:21 +00:00
|
|
|
-C Documentation ''
|
|
|
|
|
2008-06-11 13:31:44 +01:00
|
|
|
+ (if guiSupport then ''
|
|
|
|
# Wrap Tcl/Tk programs
|
2011-02-02 11:16:57 +00:00
|
|
|
for prog in bin/gitk libexec/git-core/{git-gui,git-citool,git-gui--askpass}; do
|
2011-01-07 11:03:42 +00:00
|
|
|
sed -i -e "s|exec 'wish'|exec '${tk}/bin/wish'|g" \
|
|
|
|
-e "s|exec wish|exec '${tk}/bin/wish'|g" \
|
2012-08-06 20:26:24 +01:00
|
|
|
"$out/$prog"
|
2011-01-07 11:03:42 +00:00
|
|
|
done
|
2008-07-03 13:51:23 +01:00
|
|
|
'' else ''
|
2011-01-07 11:04:09 +00:00
|
|
|
# Don't wrap Tcl/Tk, replace them by notification scripts
|
|
|
|
for prog in bin/gitk libexec/git-core/git-gui; do
|
2014-04-05 23:39:53 +01:00
|
|
|
notSupported "$out/$prog"
|
2008-07-03 13:51:23 +01:00
|
|
|
done
|
2016-10-11 04:13:09 +01:00
|
|
|
'')
|
|
|
|
+ stdenv.lib.optionalString stdenv.isDarwin ''
|
|
|
|
# enable git-credential-osxkeychain by default if darwin
|
|
|
|
cat > $out/etc/gitconfig << EOF
|
2018-12-15 03:50:31 +00:00
|
|
|
[credential]
|
|
|
|
helper = osxkeychain
|
|
|
|
EOF
|
2016-10-11 04:13:09 +01:00
|
|
|
'';
|
|
|
|
|
2013-03-25 11:21:45 +00:00
|
|
|
|
2018-04-13 22:55:26 +01:00
|
|
|
## InstallCheck
|
|
|
|
|
Merge staging-next into master (#44009)
* substitute(): --subst-var was silently coercing to "" if the variable does not exist.
* libffi: simplify using `checkInputs`
* pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix
* utillinux: 2.32 -> 2.32.1
https://lkml.org/lkml/2018/7/16/532
* busybox: 1.29.0 -> 1.29.1
* bind: 9.12.1-P2 -> 9.12.2
https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html
* curl: 7.60.0 -> 7.61.0
* gvfs: make tests run, but disable
* ilmbase: disable tests on i686. Spooky!
* mdds: fix tests
* git: disable checks as tests are run in installcheck
* ruby: disable tests
* libcommuni: disable checks as tests are run in installcheck
* librdf: make tests run, but disable
* neon, neon_0_29: make tests run, but disable
* pciutils: 3.6.0 -> 3.6.1
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions.
* mesa: more include fixes
mostly from void-linux (thanks!)
* npth: 1.5 -> 1.6
minor bump
* boost167: Add lockfree next_prior patch
* stdenv: cleanup darwin bootstrapping
Also gets rid of the full python and some of it's dependencies in the
stdenv build closure.
* Revert "pciutils: use standardized equivalent for canonicalize_file_name"
This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7.
Patching should no longer be needed with 3.6.1.
* binutils-wrapper: Try to avoid adding unnecessary -L flags
(cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9)
Signed-off-by: Domen Kožar <domen@dev.si>
* libffi: don't check on darwin
libffi usages in stdenv broken darwin. We need to disable doCheck for that case.
* "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook
* python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273
When `py.test` was run with a folder as argument, it would not only
search for tests in that folder, but also create a .pytest-cache folder.
Not only is this state we don't want, but it was also causing
collisions.
* parity-ui: fix after merge
* python.pkgs.pytest-flake8: disable test, fix build
* Revert "meson: 0.46.1 -> 0.47.0"
With meson 0.47.0 (or 0.47.1, or git)
things are very wrong re:rpath handling
resulting in at best missing libs but
even corrupt binaries :(.
When we run patchelf it masks the problem
by removing obviously busted paths.
Which is probably why this wasn't noticed immediately.
Unfortunately the binary already
has a long series of paths scribbled
in a space intended for a much smaller string;
in my testing it was something like
lengths were 67 with 300+ written to it.
I think we've reported the relevant issues upstream,
but unfortunately it appears our patches
are what introduces the overwrite/corruption
(by no longer being correct in what they assume)
This doesn't look so bad to fix but it's
not something I can spend more time on
at the moment.
--
Interestingly the overwritten string data
(because it is scribbled past the bounds)
remains in the binary and is why we're suddenly
seeing unexpected references in various builds
-- notably this is is the reason we're
seeing the "extra-utils" breakage
that entirely crippled NixOS on master
(and probably on staging before?).
Fixes #43650.
This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d.
(cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d)
Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
|
|
|
doCheck = false;
|
2018-04-13 22:55:26 +01:00
|
|
|
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 ?
|
2018-09-18 16:54:22 +01:00
|
|
|
# Tested to fail: 2.18.0 and 2.19.0
|
2018-04-13 22:55:26 +01:00
|
|
|
disable_test t1700-split-index "null sha1"
|
2018-06-25 17:05:08 +01:00
|
|
|
|
|
|
|
# Tested to fail: 2.18.0
|
|
|
|
disable_test t7005-editor "editor with a space"
|
|
|
|
disable_test t7005-editor "core.editor with a space"
|
|
|
|
|
|
|
|
# Tested to fail: 2.18.0
|
|
|
|
disable_test t9902-completion "sourcing the completion script clears cached --options"
|
2018-09-18 16:54:22 +01:00
|
|
|
|
|
|
|
# As of 2.19.0, t5562 refers to #!/usr/bin/perl
|
|
|
|
patchShebangs t/t5562/invoke-with-content-length.pl
|
2018-05-03 21:14:24 +01:00
|
|
|
'' + stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
|
|
|
|
# Test fails (as of 2.17.0, musl 1.1.19)
|
|
|
|
disable_test t3900-i18n-commit
|
2018-06-25 17:05:08 +01:00
|
|
|
# Fails largely due to assumptions about BOM
|
|
|
|
# Tested to fail: 2.18.0
|
|
|
|
disable_test t0028-working-tree-encoding
|
2018-04-13 22:55:26 +01:00
|
|
|
'';
|
|
|
|
|
2018-10-08 17:05:27 +01:00
|
|
|
stripDebugList = [ "lib" "libexec" "bin" "share/git/contrib/credential/libsecret" ];
|
|
|
|
|
Enable parallel building of gcc, glibc, gmp, mpfr, ncurses, coreutils, perl, python, git, and qt4.
If a build expressions has set "enableParallelBuilding = true", then the
generic builder may utilize more than one CPU core to build that particular
expression. This feature works out of the box for GNU Make. Expressions that
use other build drivers like Boost.Jam or SCons have to specify appropriate
flags such as "-j${NIX_BUILD_CORES}" themselves.
svn path=/nixpkgs/trunk/; revision=23042
2010-08-08 19:51:42 +01:00
|
|
|
|
2007-11-14 21:41:01 +00:00
|
|
|
meta = {
|
2017-08-02 22:50:51 +01:00
|
|
|
homepage = https://git-scm.com/;
|
2014-08-24 15:21:08 +01:00
|
|
|
description = "Distributed version control system";
|
2016-01-06 06:15:17 +00:00
|
|
|
license = stdenv.lib.licenses.gpl2;
|
2008-03-30 23:19:20 +01:00
|
|
|
|
|
|
|
longDescription = ''
|
|
|
|
Git, a popular distributed version control system designed to
|
|
|
|
handle very large projects with speed and efficiency.
|
|
|
|
'';
|
|
|
|
|
2010-05-18 15:41:18 +01:00
|
|
|
platforms = stdenv.lib.platforms.all;
|
2016-05-16 21:30:20 +01:00
|
|
|
maintainers = with stdenv.lib.maintainers; [ peti the-kenny wmertens ];
|
2007-11-14 21:41:01 +00:00
|
|
|
};
|
2007-04-26 17:14:01 +01:00
|
|
|
}
|