commit:     c6a224f71d8ad9bf6dc682ed456d63ffd9aca81a
Author:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 16 11:15:29 2022 +0000
Commit:     Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
CommitDate: Thu Jun 16 11:16:47 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c6a224f7

dev-vcs/git: Bump to version 2.37.0_rc0

Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>

 dev-vcs/git/Manifest                               |   3 +
 .../git/files/git-2.37.0_rc0-optional-cvs.patch    | 458 +++++++++++++++
 dev-vcs/git/git-2.37.0_rc0.ebuild                  | 641 +++++++++++++++++++++
 3 files changed, 1102 insertions(+)

diff --git a/dev-vcs/git/Manifest b/dev-vcs/git/Manifest
index 3db6848ddd13..a1f88ece26d6 100644
--- a/dev-vcs/git/Manifest
+++ b/dev-vcs/git/Manifest
@@ -6,6 +6,7 @@ DIST git-2.35.2.tar.xz 6876028 BLAKE2B 
2d59f0ef195770b3bd57ef8160ab24da5e1402531
 DIST git-2.35.3.tar.xz 6876328 BLAKE2B 
f584e9d94d167ba19bd2a00377f04eb4edf69cddbd2993a324178338b2e20e7fd126b51882ac7c7914c5118d0eab1ff9beddeb96a901a18fdfe027e21351ab61
 SHA512 
c92f8663988c57702bb5ee542ac8f36e8a43d377d16106ee462ce0b0a575b9d51baaafc654bf1821fbea2fe476ffd64d7fb87084c7de4dd8065b01d5083492c5
 DIST git-2.36.0.tar.xz 7003024 BLAKE2B 
72bb148fc5fded2976554788eaf599d20fe9f200ac1dd1ddd4ed89f7f5c8d6c1025907080620bab477b4efadf41d883e890dff73c80d0ff5f0becd83f13ebd88
 SHA512 
dce0d7dbe684af070271830a01bf1b9cc289182f5106f6e3303b1b3a0d5dc74bebf6ac0174373db05a28f5acc62acb095bc9385dabeeecc1d6e8567dce29b766
 DIST git-2.36.1.tar.xz 7004044 BLAKE2B 
99f54efb4ea1d8db0e3afd3dc9780cb37fc853e4757f4b37d68a6badd90eeed3e2943c97393eaed6adf61c82b97b5d01ca8d015784f5425072b1db14d39144ce
 SHA512 
459432bd0c1d5a87c828a6fbf6d3473f14bf6b95783b3f27ea4f3af1ba9fd0e712a96a41276a16c6ebeb7ac3583a5f445eedd0a9e19fe160c2c8e309ec58818e
+DIST git-2.37.0.rc0.tar.xz 7041604 BLAKE2B 
6382e7c225c01178e9e9010329d239ff7e63f52c13709b761e94d4491786e8d7fc9f3515f714f872d8d658e43578e8508fab000a1b38a342b01e605dca7a0fd7
 SHA512 
bcb69bc211ea4a439260dca6b61afeb0ea1f61ad892f169d990454038ad83e28eccbf9d1da6d9f4deb56b1016d8cca6a431374e8f3401c33a6ca99f403391790
 DIST git-htmldocs-2.32.0.tar.xz 1381664 BLAKE2B 
d1b47aa99d32a252fd20df26eff44a558044f3a389379b161bb43621eb28375eb0621969849a31938ba7fc9fc58b140d27d703559ea5735d0a0ffd2e93cd9692
 SHA512 
12b84e342f0d19afe385ab8a685ae625e86c3295d1555992e0c427b361aa2cdfc89a679e7dbc468d3568a325dafbf699468aadcdb02f93e372eff3dd96a7cf7f
 DIST git-htmldocs-2.33.1.tar.xz 1396744 BLAKE2B 
cbd65cf08fc7ea466fcd72820ba3e2135ade37f69c436a4ee7276dc71fb62f6270b71e2f46d981f5681a0fd3c30613d61680c2ef2460d0d7d292f7455e114128
 SHA512 
5b856b919067e1f644539d43a85aab6f602537ea0970b6248b471e3fa6756a8494f0525a69d22ad3795fcf9e106ff8439e0f6716ba0b8c895d7aad8c59e5bd74
 DIST git-htmldocs-2.34.1.tar.xz 1406464 BLAKE2B 
6ee2f58df3c1622d96ac4b1a70d4dc3d0c973635774dd6bb89fea3e502dd82d99d676e2f9cb33c14c429c3d4680cd6020213154099b3f7fe71ad67602ca9bc6c
 SHA512 
cf9fa952d43e477528deece9f22d1bb63fa50b3a831fae20812c6af31c1dbaf193abe2fed48ac9966bcf1787442ceed19f00c00e524a1911f0ea31952a52fc8f
@@ -14,6 +15,7 @@ DIST git-htmldocs-2.35.2.tar.xz 1411248 BLAKE2B 
d4f318f6277015bb6aef3a556bbf7a9a
 DIST git-htmldocs-2.35.3.tar.xz 1411664 BLAKE2B 
c7d849b9573a257de47fc8d654f7f791d21917cf65315b4ae6909ba2ebbe90970bc9e6c9949266913b1e529e662bfc375acee26ebf9304162eeccc87ce3da067
 SHA512 
52b97dab838fff1a865ae4d449fbb77fbac3c528666d1b936c73bffac856f16583d1b182379bc4e6851f78bccab519c3ea7e5902fc502b2e8ab7bb85043c7eea
 DIST git-htmldocs-2.36.0.tar.xz 1426148 BLAKE2B 
ba121e8f7d6a232f3df2b5a50c0f4a798c80808562c710f306f26fa79c124e5e1580c0626a2fce04f4a17b96d40a2683809550f37028cbc436b359de91100599
 SHA512 
62ee14c2f1ff34c0fbdf281ea2bb08bf6a24850d1d8dc68ffb12ae15e343c167ac869559395769fb352bd441baa8f2d45d696923a04e2f04bca921c990d75a9d
 DIST git-htmldocs-2.36.1.tar.xz 1426284 BLAKE2B 
2213f870b7fe35cc76ce8654ed8c50c0e9694c58acac4aa2350f826422db6bf2fc238fbd12075f98e84539fdf6ca5624984e21844d1d1c1ceb90e3b090438a7d
 SHA512 
3aa2ca197a789161571a6961dae8c2723ff5ba05a2d8ce7443f7fd9ef46fe5a3d001364831345f3fc4e028140022d20afefbabdf4a82cdeb311167793b292c1f
+DIST git-htmldocs-2.37.0.rc0.tar.xz 1443848 BLAKE2B 
da2069cafc595475d2fe0390365c2fac4163d58d03ca9e047f38259da3e0fb1393c82678857248d3ef593ddf6d05447ce199a1315af7b9e8d8cc5884adbbb3fc
 SHA512 
012dc4512747273ac2c15204d540ab7bfe81275e723788fce88daa02dabbf44e51b4d379361bf9732012b801af3211912af10ba64aaf9c43391f2ee9e1753dd0
 DIST git-manpages-2.32.0.tar.xz 491868 BLAKE2B 
7598a864246aed771371924604ee13d3f51b839b10b254bb1159dd47266513f5cd6484aab200a7b4ed427edc76538a98e39a040a17201483965175f5e1c5f484
 SHA512 
5c9950bd5d6904972cddf4afad534197d843c0dee8198d14ec5a3448873cab37dac88295b2a4df3658749f048bda4800b54fdc850517be7208906c911832c66e
 DIST git-manpages-2.33.1.tar.xz 494288 BLAKE2B 
1f8bd4f23de31a285d3f4327e562dddafdf9f28e8b36334e54f5e280c81fc8170e8b153ca42baa642d02d8e6fdfcac9a8fdd3cee1e32c29bcd53f689d1a6c463
 SHA512 
d465a7b491046b7a5da6ad1fc6c62b351c69905932e0672263de5a1d3abe1113660cff9fe30c7be1d1695c6170ceca5a11b3f65e9b2d1545f35cc653e4c6ad62
 DIST git-manpages-2.34.1.tar.xz 497280 BLAKE2B 
aa3c67cec861eb40eda3e7827d3e380fdfb6f189027fb7e5618258b80ac33918cb3c2ca4d2f8dc5fbee959578766564137e9c4818672f5138304270c486658fe
 SHA512 
8f3b56fa477e5aafec3ef29933234c362a372f59ed95694c4fb82ebb82d2a8ebc0ac17ae36caa9185964eef1700ea8732816e73df4ddd918afc949a8371fa0d8
@@ -22,3 +24,4 @@ DIST git-manpages-2.35.2.tar.xz 497548 BLAKE2B 
5e7c9e85879e57e5b157dc8d0a8b836d8
 DIST git-manpages-2.35.3.tar.xz 497672 BLAKE2B 
aef5a7c579392f55fa63f1ce36c03579f4fcce443e867ac2a162a3d72344639ee11949748a51547315579b37e0fc6d5915ea203ddc556b2511125781428ce001
 SHA512 
25ac8f1690ccbc0e36b7d05115aebde1911909307ac29d930158b61ecd68972b8a9c3af018d73f34251d42cabf8d3d392173a448ec948df0a3119c2a2b87bd60
 DIST git-manpages-2.36.0.tar.xz 503604 BLAKE2B 
438f533dce6628143c0ca348bc372017f049126933bf07a63ce9150114632a048778d8e0876970b406144aa584d512470ae4426be9c5bb8a3a581680ac9443a1
 SHA512 
67c2fb1c974ffe15aa09b9c36338f3ae9805573b35291e128210fc99c9fd97b1e26be571819d6b073c5adfe4c6f688c15e31790aa9eb62c1effacfb8aa21eb1c
 DIST git-manpages-2.36.1.tar.xz 503680 BLAKE2B 
d43fc90584b2f9e3bae30460f0c545b4fb96a5c70ad03c73d655481e5737b75a8d7a293db5bfdd752aabfc835a4a11e77474a5a0f144c8791b2dd433a3e45b70
 SHA512 
dd2fd6c5186aac53d7834ccf0cb6c380758624bb4583c6c5703b5b7a24c65d4199403fbcf7033c69bd3dcfbe048baaef3e886b9ba99c8afeb375e18e5b3e6e40
+DIST git-manpages-2.37.0.rc0.tar.xz 509724 BLAKE2B 
0ba6edfe696a3757fad0cff1e7ada57debfe95baa6c1d46b064fdc9e3bd1c15e59afce718272186efed0d390ff2bd9ca48f5a8738ba71dc25e9b32a62cda4f47
 SHA512 
a0e38bec9857c04bb3e1fb3088cf540f80b68801efd35f48fa5e93da3188cf972fe43bbfd7268654f638026c80bc1b4113d3943ad9df1bce55afdf5f82e15d22

diff --git a/dev-vcs/git/files/git-2.37.0_rc0-optional-cvs.patch 
b/dev-vcs/git/files/git-2.37.0_rc0-optional-cvs.patch
new file mode 100644
index 000000000000..6bd079472312
--- /dev/null
+++ b/dev-vcs/git/files/git-2.37.0_rc0-optional-cvs.patch
@@ -0,0 +1,458 @@
+From 199996fa5119b39f85489058e9e1c3335aa5342c Mon Sep 17 00:00:00 2001
+From: Robin Johnson <[email protected]>
+Date: Tue, 14 May 2019 08:53:06 +0200
+Subject: [PATCH] Makefile: Add NO_CVS define to disable all CVS interface
+ utilities
+
+Forward-ported from 1.7.12 to current git.git v1.8.4
+Forward-ported from v1.8.4 to v1.8.5.1
+Forward-ported from v1.8.5.3 to v1.9.0_rc3
+Forward-ported from 1.9.0_rc3 to current git.git v2.0.0_rc0
+Forward-ported from v2.0.0_rc0 to v2.0.0
+Forward-ported from v2.0.0 to v2.2.2
+Forward-ported from v2.2.2 to v2.8.4
+Forward-ported from v2.8.4 to v2.10.0
+Forward-ported from v2.10.0 to v2.12.0
+Forward-ported from v2.12.0 to v2.17.0-rc1
+Forward-ported from v2.17.0-rc1 to v2.18.0-rc1
+Forward-ported from v2.18.0-rc1 to v2.22.0-rc0
+Forward-ported from v2.22.0-rc0 to v2.31.0-rc0
+Forward-ported from v2.31.0-rc0 to v2.33.0-rc0
+Forward-ported from v2.33.0-rc0 to v2.37.0-rc0
+
+Signed-off-by: Lars Wendler <[email protected]>
+---
+ Makefile                           | 50 ++++++++++++++++++++++--------
+ t/t9200-git-cvsexportcommit.sh     |  5 +++
+ t/t9400-git-cvsserver-server.sh    |  8 ++++-
+ t/t9401-git-cvsserver-crlf.sh      | 15 ++++++---
+ t/t9600-cvsimport.sh               | 41 +++++++++++++++---------
+ t/t9601-cvsimport-vendor-branch.sh | 11 +++++++
+ t/t9602-cvsimport-branches-tags.sh | 11 +++++++
+ t/t9603-cvsimport-patchsets.sh     | 11 +++++++
+ t/test-lib.sh                      |  1 +
+ 9 files changed, 119 insertions(+), 34 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 04d0fd1fe6..31e00ec7e6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -316,6 +316,8 @@ include shared.mak
+ #
+ # Define NO_TCLTK if you do not want Tcl/Tk GUI.
+ #
++# Define NO_CVS if you do not want any CVS interface utilities.
++#
+ # The TCL_PATH variable governs the location of the Tcl interpreter
+ # used to optimize git-gui for your system.  Only used if NO_TCLTK
+ # is not set.  Defaults to the bare 'tclsh'.
+@@ -605,6 +607,7 @@ PROGRAM_OBJS =
+ PROGRAMS =
+ EXCLUDED_PROGRAMS =
+ SCRIPT_PERL =
++SCRIPT_PERL_CVS =
+ SCRIPT_PYTHON =
+ SCRIPT_SH =
+ SCRIPT_LIB =
+@@ -637,31 +640,33 @@ SCRIPT_LIB += git-sh-setup
+ 
+ SCRIPT_PERL += git-add--interactive.perl
+ SCRIPT_PERL += git-archimport.perl
+-SCRIPT_PERL += git-cvsexportcommit.perl
+-SCRIPT_PERL += git-cvsimport.perl
+-SCRIPT_PERL += git-cvsserver.perl
+ SCRIPT_PERL += git-send-email.perl
+ SCRIPT_PERL += git-svn.perl
+ 
++SCRIPT_PERL_CVS += git-cvsexportcommit.perl
++SCRIPT_PERL_CVS += git-cvsimport.perl
++SCRIPT_PERL_CVS += git-cvsserver.perl
++
+ SCRIPT_PYTHON += git-p4.py
+ 
+ # Generated files for scripts
+ SCRIPT_SH_GEN = $(patsubst %.sh,%,$(SCRIPT_SH))
+ SCRIPT_PERL_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL))
++SCRIPT_PERL_CVS_GEN = $(patsubst %.perl,%,$(SCRIPT_PERL_CVS))
+ SCRIPT_PYTHON_GEN = $(patsubst %.py,%,$(SCRIPT_PYTHON))
+ 
+ # Individual rules to allow e.g.
+ # "make -C ../.. SCRIPT_PERL=contrib/foo/bar.perl build-perl-script"
+ # from subdirectories like contrib/*/
+ .PHONY: build-perl-script build-sh-script build-python-script
+-build-perl-script: $(SCRIPT_PERL_GEN)
++build-perl-script: $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN)
+ build-sh-script: $(SCRIPT_SH_GEN)
+ build-python-script: $(SCRIPT_PYTHON_GEN)
+ 
+ .PHONY: install-perl-script install-sh-script install-python-script
+ install-sh-script: $(SCRIPT_SH_GEN)
+       $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+-install-perl-script: $(SCRIPT_PERL_GEN)
++install-perl-script: $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN)
+       $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+ install-python-script: $(SCRIPT_PYTHON_GEN)
+       $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+@@ -670,12 +675,13 @@ install-python-script: $(SCRIPT_PYTHON_GEN)
+ clean-sh-script:
+       $(RM) $(SCRIPT_SH_GEN)
+ clean-perl-script:
+-      $(RM) $(SCRIPT_PERL_GEN)
++      $(RM) $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN)
+ clean-python-script:
+       $(RM) $(SCRIPT_PYTHON_GEN)
+ 
+ SCRIPTS = $(SCRIPT_SH_GEN) \
+         $(SCRIPT_PERL_GEN) \
++        $(SCRIPT_PERL_CVS_GEN) \
+         $(SCRIPT_PYTHON_GEN) \
+         git-instaweb
+ 
+@@ -2350,13 +2356,27 @@ git.res: git.rc GIT-VERSION-FILE GIT-PREFIX
+         -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" -i $< -o $@
+ 
+ # This makes sure we depend on the NO_PERL setting itself.
+-$(SCRIPT_PERL_GEN): GIT-BUILD-OPTIONS
++$(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN): GIT-BUILD-OPTIONS
++
++_SCRIPT_PERL_GEN =
++_SCRIPT_PERL_NOGEN =
+ 
+ # Used for substitution in Perl modules. Disabled when using RUNTIME_PREFIX
+ # since the locale directory is injected.
+ perl_localedir_SQ = $(localedir_SQ)
+ 
+ ifndef NO_PERL
++_SCRIPT_PERL_GEN = $(SCRIPT_PERL_GEN)
++
++ifndef NO_CVS
++_SCRIPT_PERL_GEN += $(SCRIPT_PERL_CVS_GEN)
++else
++_SCRIPT_PERL_NOGEN += $(SCRIPT_PERL_CVS_GEN)
++_REASON = NO_CVS
++_REASON_CONTENT = $(NO_CVS)
++endif # NO_CVS
++
++$(_SCRIPT_PERL_GEN):
+ PERL_HEADER_TEMPLATE = perl/header_templates/fixed_prefix.template.pl
+ PERL_DEFINES =
+ PERL_DEFINES += $(PERL_PATH_SQ)
+@@ -2380,7 +2400,7 @@ endif
+ 
+ PERL_DEFINES += $(gitexecdir) $(perllibdir) $(localedir)
+ 
+-$(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER 
GIT-VERSION-FILE
++$(_SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER 
GIT-VERSION-FILE
+       $(QUIET_GEN) \
+       sed -e '1{' \
+           -e '        s|#!.*perl|#!$(PERL_PATH_SQ)|' \
+@@ -2426,14 +2446,18 @@ git-instaweb: git-instaweb.sh GIT-SCRIPT-DEFINES
+       chmod +x $@+ && \
+       mv $@+ $@
+ else # NO_PERL
+-$(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh
+-      $(QUIET_GEN) \
++_SCRIPT_PERL_NOGEN += $(SCRIPT_PERL_GEN) $(SCRIPT_PERL_CVS_GEN) git-instaweb
++_REASON = NO_PERL
++_REASON_CONTENT = $(NO_PERL)
++endif # NO_PERL
++
++$(_SCRIPT_PERL_NOGEN): % : unimplemented.sh
++      $(QUIET_GEN)$(RM) $@ $@+ && \
+       sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+-          -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
++          -e 's|@@REASON@@|$(_REASON)=$(_REASON_CONTENT)|g' \
+           unimplemented.sh >$@+ && \
+       chmod +x $@+ && \
+       mv $@+ $@
+-endif # NO_PERL
+ 
+ # This makes sure we depend on the NO_PYTHON setting itself.
+ $(SCRIPT_PYTHON_GEN): GIT-BUILD-OPTIONS
+@@ -2737,7 +2761,7 @@ MSGMERGE_FLAGS = --add-location --backup=off --update
+ LOCALIZED_C = $(sort $(FOUND_C_SOURCES) $(FOUND_H_SOURCES) $(SCALAR_SOURCES) \
+               $(GENERATED_H))
+ LOCALIZED_SH = $(sort $(SCRIPT_SH) git-sh-setup.sh)
+-LOCALIZED_PERL = $(sort $(SCRIPT_PERL))
++LOCALIZED_PERL = $(sort $(SCRIPT_PERL) $(SCRIPT_PERL_CVS))
+ 
+ ifdef XGETTEXT_INCLUDE_TESTS
+ LOCALIZED_C += t/t0200/test.c
+diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
+index c5946cb0b8..223fd5409b 100755
+--- a/t/t9200-git-cvsexportcommit.sh
++++ b/t/t9200-git-cvsexportcommit.sh
+@@ -11,6 +11,11 @@ if ! test_have_prereq PERL; then
+       test_done
+ fi
+ 
++if ! test_have_prereq CVS; then
++      skip_all='skipping git cvsexportcommit tests, cvs not available'
++      test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+diff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh
+index 210ddf09e3..a620126d3f 100755
+--- a/t/t9400-git-cvsserver-server.sh
++++ b/t/t9400-git-cvsserver-server.sh
+@@ -14,9 +14,15 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+ . ./test-lib.sh
+ 
+ if ! test_have_prereq PERL; then
+-      skip_all='skipping git cvsserver tests, perl not available'
++      skip_all='skipping git-cvsserver tests, perl not available'
+       test_done
+ fi
++
++if ! test_have_prereq CVS; then
++      skip_all='skipping git-cvsserver tests, cvs not available'
++      test_done
++fi
++
+ cvs >/dev/null 2>&1
+ if test $? -ne 1
+ then
+diff --git a/t/t9401-git-cvsserver-crlf.sh b/t/t9401-git-cvsserver-crlf.sh
+index a34805acdc..0d7759f73b 100755
+--- a/t/t9401-git-cvsserver-crlf.sh
++++ b/t/t9401-git-cvsserver-crlf.sh
+@@ -60,15 +60,20 @@ check_status_options() {
+     return $stat
+ }
+ 
+-cvs >/dev/null 2>&1
+-if test $? -ne 1
++if ! test_have_prereq PERL
+ then
+-    skip_all='skipping git-cvsserver tests, cvs not found'
++    skip_all='skipping git-cvsserver tests, perl not available'
+     test_done
+ fi
+-if ! test_have_prereq PERL
++if ! test_have_prereq CVS
+ then
+-    skip_all='skipping git-cvsserver tests, perl not available'
++    skip_all='skipping git-cvsserver tests, cvs not available'
++    test_done
++fi
++cvs >/dev/null 2>&1
++if test $? -ne 1
++then
++    skip_all='skipping git-cvsserver tests, cvs not found'
+     test_done
+ fi
+ perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
+diff --git a/t/t9600-cvsimport.sh b/t/t9600-cvsimport.sh
+index 5680849218..7288db820b 100755
+--- a/t/t9600-cvsimport.sh
++++ b/t/t9600-cvsimport.sh
+@@ -11,14 +11,25 @@ if ! test_have_prereq NOT_ROOT; then
+       test_done
+ fi
+ 
+-test_expect_success PERL 'setup cvsroot environment' '
++if ! test_have_prereq PERL
++then
++    skip_all='skipping git cvsimport tests, perl not available'
++    test_done
++fi
++if ! test_have_prereq CVS
++then
++    skip_all='skipping git cvsimport tests, cvs not available'
++    test_done
++fi
++
++test_expect_success 'setup cvsroot environment' '
+       CVSROOT=$(pwd)/cvsroot &&
+       export CVSROOT
+ '
+ 
+-test_expect_success PERL 'setup cvsroot' '$CVS init'
++test_expect_success 'setup cvsroot' '$CVS init'
+ 
+-test_expect_success PERL 'setup a cvs module' '
++test_expect_success 'setup a cvs module' '
+ 
+       mkdir "$CVSROOT/module" &&
+       $CVS co -d module-cvs module &&
+@@ -50,23 +61,23 @@ EOF
+       )
+ '
+ 
+-test_expect_success PERL 'import a trivial module' '
++test_expect_success 'import a trivial module' '
+ 
+       git cvsimport -a -R -z 0 -C module-git module &&
+       test_cmp module-cvs/o_fortuna module-git/o_fortuna
+ 
+ '
+ 
+-test_expect_success PERL 'pack refs' '(cd module-git && git gc)'
++test_expect_success 'pack refs' '(cd module-git && git gc)'
+ 
+-test_expect_success PERL 'initial import has correct .git/cvs-revisions' '
++test_expect_success 'initial import has correct .git/cvs-revisions' '
+ 
+       (cd module-git &&
+        git log --format="o_fortuna 1.1 %H" -1) > expected &&
+       test_cmp expected module-git/.git/cvs-revisions
+ '
+ 
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+       (cd module-cvs &&
+       cat <<EOF >o_fortuna &&
+ O Fortune,
+@@ -94,7 +105,7 @@ EOF
+       )
+ '
+ 
+-test_expect_success PERL 'update git module' '
++test_expect_success 'update git module' '
+ 
+       (cd module-git &&
+       git config cvsimport.trackRevisions true &&
+@@ -105,7 +116,7 @@ test_expect_success PERL 'update git module' '
+ 
+ '
+ 
+-test_expect_success PERL 'update has correct .git/cvs-revisions' '
++test_expect_success 'update has correct .git/cvs-revisions' '
+ 
+       (cd module-git &&
+        git log --format="o_fortuna 1.1 %H" -1 HEAD^ &&
+@@ -113,7 +124,7 @@ test_expect_success PERL 'update has correct 
.git/cvs-revisions' '
+       test_cmp expected module-git/.git/cvs-revisions
+ '
+ 
+-test_expect_success PERL 'update cvs module' '
++test_expect_success 'update cvs module' '
+ 
+       (cd module-cvs &&
+               echo 1 >tick &&
+@@ -122,7 +133,7 @@ test_expect_success PERL 'update cvs module' '
+       )
+ '
+ 
+-test_expect_success PERL 'cvsimport.module config works' '
++test_expect_success 'cvsimport.module config works' '
+ 
+       (cd module-git &&
+               git config cvsimport.module module &&
+@@ -134,7 +145,7 @@ test_expect_success PERL 'cvsimport.module config works' '
+ 
+ '
+ 
+-test_expect_success PERL 'second update has correct .git/cvs-revisions' '
++test_expect_success 'second update has correct .git/cvs-revisions' '
+ 
+       (cd module-git &&
+        git log --format="o_fortuna 1.1 %H" -1 HEAD^^ &&
+@@ -143,7 +154,7 @@ test_expect_success PERL 'second update has correct 
.git/cvs-revisions' '
+       test_cmp expected module-git/.git/cvs-revisions
+ '
+ 
+-test_expect_success PERL 'import from a CVS working tree' '
++test_expect_success 'import from a CVS working tree' '
+ 
+       $CVS co -d import-from-wt module &&
+       (cd import-from-wt &&
+@@ -156,12 +167,12 @@ test_expect_success PERL 'import from a CVS working 
tree' '
+ 
+ '
+ 
+-test_expect_success PERL 'no .git/cvs-revisions created by default' '
++test_expect_success 'no .git/cvs-revisions created by default' '
+ 
+       ! test -e import-from-wt/.git/cvs-revisions
+ 
+ '
+ 
+-test_expect_success PERL 'test entire HEAD' 'test_cmp_branch_tree main'
++test_expect_success 'test entire HEAD' 'test_cmp_branch_tree main'
+ 
+ test_done
+diff --git a/t/t9601-cvsimport-vendor-branch.sh 
b/t/t9601-cvsimport-vendor-branch.sh
+index 116cddba3a..a7e7299c81 100755
+--- a/t/t9601-cvsimport-vendor-branch.sh
++++ b/t/t9601-cvsimport-vendor-branch.sh
+@@ -37,6 +37,17 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+ 
+ . ./lib-cvs.sh
+ 
++if ! test_have_prereq PERL
++then
++    skip_all='skipping git cvsimport tests, perl not available'
++    test_done
++fi
++if ! test_have_prereq CVS
++then
++    skip_all='skipping git cvsimport tests, cvs not available'
++    test_done
++fi
++
+ setup_cvs_test_repository t9601
+ 
+ test_expect_success PERL 'import a module with a vendor branch' '
+diff --git a/t/t9602-cvsimport-branches-tags.sh 
b/t/t9602-cvsimport-branches-tags.sh
+index e5266c9a87..0e1878ffd3 100755
+--- a/t/t9602-cvsimport-branches-tags.sh
++++ b/t/t9602-cvsimport-branches-tags.sh
+@@ -9,6 +9,17 @@ export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
+ 
+ . ./lib-cvs.sh
+ 
++if ! test_have_prereq PERL
++then
++    skip_all='skipping git cvsimport tests, perl not available'
++    test_done
++fi
++if ! test_have_prereq CVS
++then
++    skip_all='skipping git cvsimport tests, cvs not available'
++    test_done
++fi
++
+ setup_cvs_test_repository t9602
+ 
+ test_expect_success PERL 'import module' '
+diff --git a/t/t9603-cvsimport-patchsets.sh b/t/t9603-cvsimport-patchsets.sh
+index 19f38f78f2..bd5727e8bf 100755
+--- a/t/t9603-cvsimport-patchsets.sh
++++ b/t/t9603-cvsimport-patchsets.sh
+@@ -14,6 +14,17 @@
+ test_description='git cvsimport testing for correct patchset estimation'
+ . ./lib-cvs.sh
+ 
++if ! test_have_prereq PERL
++then
++    skip_all='skipping git cvsimport tests, perl not available'
++    test_done
++fi
++if ! test_have_prereq CVS
++then
++    skip_all='skipping git cvsimport tests, cvs not available'
++    test_done
++fi
++
+ setup_cvs_test_repository t9603
+ 
+ test_expect_failure PERL 'import with criss cross times on revisions' '
+diff --git a/t/test-lib.sh b/t/test-lib.sh
+index 736c6447ec..b9871d7d35 100644
+--- a/t/test-lib.sh
++++ b/t/test-lib.sh
+@@ -1572,6 +1572,7 @@ esac
+ test_set_prereq REFFILES
+ 
+ ( COLUMNS=1 && test $COLUMNS = 1 ) && test_set_prereq COLUMNS_CAN_BE_1
++test -z "$NO_CVS" && test_set_prereq CVS
+ test -z "$NO_PERL" && test_set_prereq PERL
+ test -z "$NO_PTHREADS" && test_set_prereq PTHREADS
+ test -z "$NO_PYTHON" && test_set_prereq PYTHON
+-- 
+2.36.1
+

diff --git a/dev-vcs/git/git-2.37.0_rc0.ebuild 
b/dev-vcs/git/git-2.37.0_rc0.ebuild
new file mode 100644
index 000000000000..3cd38061de34
--- /dev/null
+++ b/dev-vcs/git/git-2.37.0_rc0.ebuild
@@ -0,0 +1,641 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit toolchain-funcs perl-module bash-completion-r1 plocale 
python-single-r1 systemd
+
+PLOCALES="bg ca de es fr is it ko pt_PT ru sv vi zh_CN"
+if [[ ${PV} == *9999 ]]; then
+       inherit git-r3
+       EGIT_REPO_URI="https://git.kernel.org/pub/scm/git/git.git";
+       # Please ensure that all _four_ 9999 ebuilds get updated; they track 
the 4 upstream branches.
+       # See https://git-scm.com/docs/gitworkflows#_graduation
+       # In order of stability:
+       # 9999-r0: maint
+       # 9999-r1: master
+       # 9999-r2: next
+       # 9999-r3: seen
+       case "${PVR}" in
+               9999) EGIT_BRANCH=maint ;;
+               9999-r1) EGIT_BRANCH=master ;;
+               9999-r2) EGIT_BRANCH=next;;
+               9999-r3) EGIT_BRANCH=seen ;;
+       esac
+fi
+
+MY_PV="${PV/_rc/.rc}"
+MY_P="${PN}-${MY_PV}"
+
+DOC_VER="${MY_PV}"
+
+DESCRIPTION="stupid content tracker: distributed VCS designed for speed and 
efficiency"
+HOMEPAGE="https://www.git-scm.com/";
+if [[ ${PV} != *9999 ]]; then
+       SRC_URI_SUFFIX="xz"
+       SRC_URI_KORG="https://www.kernel.org/pub/software/scm/git";
+       [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
+       SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+                       
${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+                       doc? (
+                       
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+                       )"
+       [[ "${PV}" == *_rc* ]] || \
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc 
~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos 
~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc gnome-keyring +gpg highlight +iconv mediawiki 
mediawiki-experimental +nls +pcre perforce +perl +ppcsha1 selinux subversion tk 
+threads +webdav xinetd cvs test"
+
+# Common to both DEPEND and RDEPEND
+DEPEND="
+       gnome-keyring? (
+               app-crypt/libsecret
+               dev-libs/glib:2
+       )
+       dev-libs/openssl:0=
+       sys-libs/zlib
+       pcre? ( dev-libs/libpcre2:= )
+       perl? ( dev-lang/perl:=[-build(-)] )
+       tk? ( dev-lang/tk:0= )
+       curl? (
+               net-misc/curl
+               webdav? ( dev-libs/expat )
+       )
+       iconv? ( virtual/libiconv )
+"
+
+RDEPEND="${DEPEND}
+       gpg? ( app-crypt/gnupg )
+       perl? (
+               dev-perl/Error
+               dev-perl/MailTools
+               dev-perl/Authen-SASL
+               >=virtual/perl-libnet-3.110.0-r4[ssl]
+               cgi? (
+                       dev-perl/CGI
+                       highlight? ( app-text/highlight )
+               )
+               cvs? (
+                       >=dev-vcs/cvsps-2.1:0
+                       dev-perl/DBI
+                       dev-perl/DBD-SQLite
+               )
+               mediawiki? (
+                       dev-perl/DateTime-Format-ISO8601
+                       dev-perl/HTML-Tree
+                       dev-perl/MediaWiki-API
+               )
+               subversion? (
+                       dev-vcs/subversion[-dso(-),perl]
+                       dev-perl/libwww-perl
+                       dev-perl/TermReadKey
+               )
+       )
+       perforce? ( ${PYTHON_DEPS} )
+       selinux? ( sec-policy/selinux-git )
+"
+
+# This is how info docs are created with Git:
+#   .txt/asciidoc --(asciidoc)---------> .xml/docbook
+#   .xml/docbook  --(docbook2texi.pl)--> .texi
+#   .texi         --(makeinfo)---------> .info
+BDEPEND="
+       doc? (
+               app-text/asciidoc
+               app-text/docbook2X
+               app-text/xmlto
+               sys-apps/texinfo
+       )
+       gnome-keyring? ( virtual/pkgconfig )
+       nls? ( sys-devel/gettext )
+       test? ( app-crypt/gnupg )
+"
+
+# Live ebuild builds man pages and HTML docs, additionally
+if [[ ${PV} == *9999 ]]; then
+       BDEPEND="${BDEPEND}
+               app-text/asciidoc"
+fi
+
+SITEFILE="50${PN}-gentoo.el"
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+       cgi? ( perl )
+       cvs? ( perl )
+       mediawiki? ( perl )
+       mediawiki-experimental? ( mediawiki )
+       perforce? ( ${PYTHON_REQUIRED_USE} )
+       subversion? ( perl )
+       webdav? ( curl )
+"
+
+RESTRICT="!test? ( test )"
+
+PATCHES=(
+       # bug #350330 - automagic CVS when we don't want it is bad.
+       "${FILESDIR}"/git-2.37.0_rc0-optional-cvs.patch
+
+       # Make submodule output quiet
+       "${FILESDIR}"/git-2.21.0-quiet-submodules-testcase.patch
+)
+
+pkg_setup() {
+       if use subversion && has_version "dev-vcs/subversion[dso]" ; then
+               ewarn "Per Gentoo bugs #223747, #238586, when subversion is 
built"
+               ewarn "with USE=dso, there may be weird crashes in git-svn. You"
+               ewarn "have been warned."
+       fi
+
+       if use perforce ; then
+               python-single-r1_pkg_setup
+       fi
+}
+
+# This is needed because for some obscure reasons future calls to make don't
+# pick up these exports if we export them in src_unpack()
+exportmakeopts() {
+       local extlibs myopts
+
+       myopts=(
+               ASCIIDOC_NO_ROFF=YesPlease
+               $(usex cvs '' NO_CVS=YesPlease)
+               $(usex elibc_musl NO_REGEX=YesPlease '')
+               $(usex iconv '' NO_ICONV=YesPlease)
+               $(usex nls '' NO_GETTEXT=YesPlease)
+               $(usex perl 'INSTALLDIRS=vendor 
NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
+               $(usex perforce '' NO_PYTHON=YesPlease)
+               $(usex subversion '' NO_SVN_TESTS=YesPlease)
+               $(usex threads '' NO_PTHREADS=YesPlease)
+               $(usex tk '' NO_TCLTK=YesPlease)
+       )
+
+       if use blksha1 ; then
+               myopts+=( BLK_SHA1=YesPlease )
+       elif use ppcsha1 ; then
+               myopts+=( PPC_SHA1=YesPlease )
+       fi
+
+       if use curl ; then
+               use webdav || myopts+=( NO_EXPAT=YesPlease )
+       else
+               myopts+=( NO_CURL=YesPlease )
+       fi
+
+       # broken assumptions, because of static build system ...
+       myopts+=(
+               NO_FINK=YesPlease
+               NO_DARWIN_PORTS=YesPlease
+               INSTALL=install
+               TAR=tar
+               SHELL_PATH="${EPREFIX}/bin/sh"
+               SANE_TOOL_PATH=
+               OLD_ICONV=
+               NO_EXTERNAL_GREP=
+       )
+
+       # can't define this to null, since the entire makefile depends on it
+       sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
+
+       if use pcre; then
+               myopts+=( USE_LIBPCRE2=YesPlease )
+               extlibs+=( -lpcre2-8 )
+       fi
+       if [[ ${CHOST} == *-solaris* ]]; then
+               myopts+=(
+                       NEEDS_LIBICONV=YesPlease
+                       HAVE_CLOCK_MONOTONIC=1
+               )
+               if grep -Fq getdelim "${EROOT}"/usr/include/stdio.h ; then
+                       myopts+=( HAVE_GETDELIM=1 )
+               fi
+       fi
+
+       if has_version '>=app-text/asciidoc-8.0' ; then
+               myopts+=( ASCIIDOC8=YesPlease )
+       fi
+
+       export MY_MAKEOPTS="${myopts[@]}"
+       export EXTLIBS="${extlibs[@]}"
+}
+
+src_unpack() {
+       if [[ ${PV} != *9999 ]] ; then
+               unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
+               cd "${S}" || die
+               unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+               if use doc ; then
+                       pushd "${S}"/Documentation &>/dev/null || die
+                       unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+                       popd &>/dev/null || die
+               fi
+       else
+               git-r3_src_unpack
+               #cp "${FILESDIR}"/GIT-VERSION-GEN .
+       fi
+
+}
+
+src_prepare() {
+       # add experimental patches to improve mediawiki support
+       # see patches for origin
+       if use mediawiki-experimental ; then
+               PATCHES+=(
+                       "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
+                       "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
+                       "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
+               )
+       fi
+
+       default
+
+       if use prefix ; then
+               # bug #757309
+               eapply "${FILESDIR}"/git-2.31.0-darwin-prefix-gettext.patch
+       fi
+
+       sed -i \
+               -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
+               -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
+               -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
+               -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
+               -e 
"s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+               -e 
"s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
+               Makefile || die
+
+       # Fix docbook2texi command
+       sed -r -i 
's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = 
docbook2texi.pl/' \
+               Documentation/Makefile || die
+}
+
+git_emake() {
+       # bug #320647: PYTHON_PATH
+       local PYTHON_PATH=""
+       use perforce && PYTHON_PATH="${PYTHON}"
+       emake ${MY_MAKEOPTS} \
+               prefix="${EPREFIX}"/usr \
+               htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+               perllibdir="$(use perl && perl_get_raw_vendorlib)" \
+               sysconfdir="${EPREFIX}"/etc \
+               GIT_TEST_OPTS="--no-color" \
+               OPTAR="$(tc-getAR)" \
+               OPTCC="$(tc-getCC)" \
+               OPTCFLAGS="${CFLAGS}" \
+               OPTLDFLAGS="${LDFLAGS}" \
+               PERL_PATH="${EPREFIX}/usr/bin/perl" \
+               PERL_MM_OPT="" \
+               PYTHON_PATH="${PYTHON_PATH}" \
+               V=1 \
+               "$@"
+}
+
+src_configure() {
+       exportmakeopts
+}
+
+src_compile() {
+       git_emake || die "emake failed"
+
+       if use perl && use cgi ; then
+               git_emake gitweb || die "emake gitweb (cgi) failed"
+       fi
+
+       if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then
+               pushd contrib/credential/osxkeychain &>/dev/null || die
+               git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
+                       || die "emake credential-osxkeychain"
+               popd &>/dev/null || die
+       fi
+
+       pushd Documentation &>/dev/null || die
+       if [[ ${PV} == *9999 ]] ; then
+               git_emake man || die "emake man failed"
+               if use doc ; then
+                       git_emake info html || die "emake info html failed"
+               fi
+       else
+               if use doc ; then
+                       git_emake info || die "emake info html failed"
+               fi
+       fi
+       popd &>/dev/null || die
+
+       if use gnome-keyring ; then
+               pushd contrib/credential/libsecret &>/dev/null || die
+               git_emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" 
PKG_CONFIG="$(tc-getPKG_CONFIG)"
+               popd &>/dev/null || die
+       fi
+
+       pushd contrib/subtree &>/dev/null || die
+       git_emake git-subtree || die
+       # git-subtree.1 requires the full USE=doc dependency stack
+       use doc && git_emake git-subtree.html git-subtree.1
+       popd &>/dev/null || die
+
+       pushd contrib/diff-highlight &>/dev/null || die
+       git_emake || die
+       popd &>/dev/null || die
+
+       if use mediawiki ; then
+               pushd contrib/mw-to-git &>/dev/null || die
+               git_emake || die
+               popd &>/dev/null || die
+
+       fi
+}
+
+src_install() {
+       git_emake DESTDIR="${D}" install || die "make install failed"
+
+       if [[ ${CHOST} == *-darwin* ]] && tc-is-clang ; then
+               dobin contrib/credential/osxkeychain/git-credential-osxkeychain
+       fi
+
+       # Depending on the tarball and manual rebuild of the documentation, the
+       # manpages may exist in either OR both of these directories.
+       find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
+       find Documentation/*.[157] >/dev/null 2>&1 && doman 
Documentation/*.[157]
+       dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
+       use doc && dodir /usr/share/doc/${PF}/html
+       local d
+       for d in / /howto/ /technical/ ; do
+               docinto ${d}
+               dodoc Documentation${d}*.txt
+               if use doc ; then
+                       docinto ${d}/html
+                       dodoc Documentation${d}*.html
+               fi
+       done
+       docinto /
+       # Upstream does not ship this pre-built :-(
+       use doc && doinfo Documentation/{git,gitman}.info
+
+       newbashcomp contrib/completion/git-completion.bash ${PN}
+       bashcomp_alias git gitk
+       # Not really a bash-completion file (bug #477920)
+       # but still needed uncompressed (bug #507480)
+       insinto /usr/share/${PN}
+       doins contrib/completion/git-prompt.sh
+
+       #dobin contrib/fast-import/git-p4 # Moved upstream
+       #dodoc contrib/fast-import/git-p4.txt # Moved upstream
+       newbin contrib/fast-import/import-tars.perl import-tars
+       exeinto /usr/libexec/git-core/
+       newexe contrib/git-resurrect.sh git-resurrect
+
+       # git-subtree
+       pushd contrib/subtree &>/dev/null || die
+       git_emake DESTDIR="${D}" install || die "Failed to emake install for 
git-subtree"
+       if use doc ; then
+               # Do not move git subtree install-man outside USE=doc!
+               git_emake DESTDIR="${D}" install-man install-html || die 
"Failed to emake install-html install-man for git-subtree"
+       fi
+       newdoc README README.git-subtree
+       dodoc git-subtree.txt
+       popd &>/dev/null || die
+
+       if use mediawiki ; then
+               pushd contrib/mw-to-git &>/dev/null || die
+               git_emake DESTDIR="${D}" install
+               popd &>/dev/null || die
+       fi
+
+       # diff-highlight
+       dobin contrib/diff-highlight/diff-highlight
+       newdoc contrib/diff-highlight/README README.diff-highlight
+
+       # git-jump
+       exeinto /usr/libexec/git-core/
+       doexe contrib/git-jump/git-jump
+       newdoc contrib/git-jump/README git-jump.txt
+
+       # git-contacts
+       exeinto /usr/libexec/git-core/
+       doexe contrib/contacts/git-contacts
+       dodoc contrib/contacts/git-contacts.txt
+
+       if use gnome-keyring ; then
+               pushd contrib/credential/libsecret &>/dev/null || die
+               dobin git-credential-libsecret
+               popd &>/dev/null || die
+       fi
+
+       dodir /usr/share/${PN}/contrib
+       # The following are excluded:
+       # completion - installed above
+       # diff-highlight - done above
+       # emacs - removed upstream
+       # examples - these are stuff that is not used in Git anymore actually
+       # git-jump - done above
+       # gitview - installed above
+       # p4import - excluded because fast-import has a better one
+       # patches - stuff the Git guys made to go upstream to other places
+       # persistent-https - TODO
+       # mw-to-git - TODO
+       # subtree - build  seperately
+       # svnimport - use git-svn
+       # thunderbird-patch-inline - fixes thunderbird
+       local contrib_objects=(
+               buildsystems
+               fast-import
+               hg-to-git
+               hooks
+               remotes2config.sh
+               rerere-train.sh
+               stats
+               workdir
+       )
+       local i
+       for i in "${contrib_objects[@]}" ; do
+               cp -rf \
+                       "${S}"/contrib/${i} \
+                       "${ED}"/usr/share/${PN}/contrib \
+                       || die "Failed contrib ${i}"
+       done
+
+       if use perl && use cgi ; then
+               # We used to install in /usr/share/${PN}/gitweb
+               # but upstream installs in /usr/share/gitweb
+               # so we will install a symlink and use their location for 
compat with other
+               # distros
+               dosym ../gitweb /usr/share/${PN}/gitweb
+
+               # INSTALL discusses configuration issues, not just installation
+               docinto /
+               newdoc  "${S}"/gitweb/INSTALL INSTALL.gitweb
+               newdoc  "${S}"/gitweb/README README.gitweb
+
+               for d in "${ED}"/usr/lib{,64}/perl5/ ; do
+                       if [[ -d "${d}" ]] ; then
+                               find "${d}" -name .packlist -delete || die
+                       fi
+               done
+       else
+               rm -rf "${ED}"/usr/share/gitweb
+       fi
+
+       if ! use subversion ; then
+               rm -f "${ED}"/usr/libexec/git-core/git-svn \
+                       "${ED}"/usr/share/man/man1/git-svn.1*
+       fi
+
+       if use xinetd ; then
+               insinto /etc/xinetd.d
+               newins "${FILESDIR}"/git-daemon.xinetd git-daemon
+       fi
+
+       if ! use prefix ; then
+               newinitd "${FILESDIR}"/git-daemon-r2.initd git-daemon
+               newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+               systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" \
+                       "[email protected]"
+               systemd_dounit "${FILESDIR}/git-daemon.socket"
+       fi
+
+       perl_delete_localpod
+
+       # Remove disabled linguas
+       # we could remove sources in src_prepare, but install does not
+       # handle missing locale dir well
+       rm_loc() {
+               if [[ -e "${ED}/usr/share/locale/${1}" ]] ; then
+                       rm -r "${ED}/usr/share/locale/${1}" || die
+               fi
+       }
+       plocale_for_each_disabled_locale rm_loc
+}
+
+src_test() {
+       local disabled=()
+       local tests_cvs=(
+               t9200-git-cvsexportcommit.sh
+               t9400-git-cvsserver-server.sh
+               t9401-git-cvsserver-crlf.sh
+               t9402-git-cvsserver-refs.sh
+               t9600-cvsimport.sh
+               t9601-cvsimport-vendor-branch.sh
+               t9602-cvsimport-branches-tags.sh
+               t9603-cvsimport-patchsets.sh
+               t9604-cvsimport-timestamps.sh
+       )
+       local tests_perl=(
+               t3701-add-interactive.sh
+               t5502-quickfetch.sh
+               t5512-ls-remote.sh
+               t5520-pull.sh
+               t7106-reset-unborn-branch.sh
+               t7501-commit.sh
+       )
+       # Bug #225601 - t0004 is not suitable for root perm
+       # Bug #219839 - t1004 is not suitable for root perm
+       # t0001-init.sh - check for init notices EPERM*  fails
+       local tests_nonroot=(
+               t0001-init.sh
+               t0004-unwritable.sh
+               t0070-fundamental.sh
+               t1004-read-tree-m-u-wf.sh
+               t3700-add.sh
+               t7300-clean.sh
+       )
+       # t9100 still fails with symlinks in SVN 1.7
+       local test_svn=( t9100-git-svn-basic.sh )
+
+       # Unzip is used only for the testcase code, not by any normal parts of 
Git.
+       if ! has_version app-arch/unzip ; then
+               einfo "Disabling tar-tree tests"
+               disabled+=( t5000-tar-tree.sh )
+       fi
+
+       local cvs=0
+       use cvs && let cvs=${cvs}+1
+       if [[ ${EUID} -eq 0 ]] ; then
+               if [[ ${cvs} -eq 1 ]] ; then
+                       ewarn "Skipping CVS tests because CVS does not work as 
root!"
+                       ewarn "You should retest with FEATURES=userpriv!"
+                       disabled+=( ${tests_cvs[@]} )
+               fi
+               einfo "Skipping other tests that require being non-root"
+               disabled+=( ${tests_nonroot[@]} )
+       else
+               [[ ${cvs} -gt 0 ]] && \
+                       has_version dev-vcs/cvs && \
+                       let cvs=${cvs}+1
+               [[ ${cvs} -gt 1 ]] && \
+                       has_version "dev-vcs/cvs[server]" && \
+                       let cvs=${cvs}+1
+               if [[ ${cvs} -lt 3 ]] ; then
+                       einfo "Disabling CVS tests (needs 
dev-vcs/cvs[USE=server])"
+                       disabled+=( ${tests_cvs[@]} )
+               fi
+       fi
+
+       if ! use perl ; then
+               einfo "Disabling tests that need Perl"
+               disabled+=( ${tests_perl[@]} )
+       fi
+
+       einfo "Disabling tests that fail with SVN 1.7"
+       disabled+=( ${test_svn[@]} )
+
+       # Reset all previously disabled tests
+       pushd t &>/dev/null || die
+       local i
+       for i in *.sh.DISABLED ; do
+               [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
+       done
+       einfo "Disabled tests:"
+       for i in ${disabled[@]} ; do
+               if [[ -f "${i}" ]] ; then
+                       mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
+               fi
+       done
+
+       # Avoid the test system removing the results because we want them 
ourselves
+       sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' -i Makefile || die
+
+       # Clean old results first, must always run
+       nonfatal git_emake clean
+       popd &>/dev/null || die
+
+       # Now run the tests, keep going if we hit an error, and don't terminate 
on
+       # failure
+       local rc
+       einfo "Start test run"
+       #MAKEOPTS=-j1
+       nonfatal git_emake --keep-going test
+       rc=$?
+
+       # Display nice results, now print the results
+       pushd t &>/dev/null || die
+       nonfatal git_emake aggregate-results
+
+       # And bail if there was a problem
+       [[ ${rc} -eq 0 ]] || die "tests failed. Please file a bug."
+}
+
+showpkgdeps() {
+       local pkg=$1
+       shift
+       elog "  $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+       elog "Please read /usr/share/bash-completion/completions/git for Git 
bash command"
+       elog "completion."
+       elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
+       elog "Note that the prompt bash code is now in that separate script"
+       elog "These additional scripts need some dependencies:"
+       echo
+       showpkgdeps git-quiltimport "dev-util/quilt"
+       showpkgdeps git-instaweb \
+               "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx 
)"
+       echo
+       use mediawiki-experimental && ewarn "Using experimental git-mediawiki 
patches. The stability of cloned wiki filesystems is not guaranteed."
+}

Reply via email to