summaryrefslogtreecommitdiff
path: root/dev-vcs/git/files
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /dev-vcs/git/files
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'dev-vcs/git/files')
-rw-r--r--dev-vcs/git/files/50git-gentoo.el13
-rw-r--r--dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch11
-rw-r--r--dev-vcs/git/files/git-2.21.0-quiet-submodules-testcase.patch38
-rw-r--r--dev-vcs/git/files/git-2.22.0_rc0-optional-cvs.patch454
-rw-r--r--dev-vcs/git/files/git-2.23.0-avoid_empty_remote_line.patch145
-rw-r--r--dev-vcs/git/files/git-2.7.0-mediawiki-500pages.patch46
-rw-r--r--dev-vcs/git/files/git-2.7.0-mediawiki-namespaces.patch97
-rw-r--r--dev-vcs/git/files/git-2.7.0-mediawiki-subpages.patch48
-rw-r--r--dev-vcs/git/files/git-daemon-r1.initd13
-rw-r--r--dev-vcs/git/files/git-daemon.confd19
-rw-r--r--dev-vcs/git/files/git-daemon.socket9
-rw-r--r--dev-vcs/git/files/git-daemon.xinetd13
-rw-r--r--dev-vcs/git/files/git-daemon_at-r1.service12
13 files changed, 918 insertions, 0 deletions
diff --git a/dev-vcs/git/files/50git-gentoo.el b/dev-vcs/git/files/50git-gentoo.el
new file mode 100644
index 000000000000..1646a391c53c
--- /dev/null
+++ b/dev-vcs/git/files/50git-gentoo.el
@@ -0,0 +1,13 @@
+
+;;; dev-vcs/git site-lisp configuration
+
+(add-to-list 'load-path "@SITELISP@")
+(autoload 'git-status "git" "Entry point into git-status mode." t)
+;;(autoload 'git-blame-mode "git-blame"
+;; "Minor mode for incremental blame for Git." t)
+
+;; GNU Emacs >=22.2 already includes vc-git.el.
+;; Enable the following only if Emacs has no GIT support.
+(unless (fboundp 'vc-git-registered)
+ (add-to-list 'load-path "@SITELISP@/compat")
+ (add-to-list 'vc-handled-backends 'GIT))
diff --git a/dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch b/dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch
new file mode 100644
index 000000000000..b20b889110eb
--- /dev/null
+++ b/dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch
@@ -0,0 +1,11 @@
+--- git-2.2.0/contrib/svn-fe/Makefile
++++ git-2.2.0/contrib/svn-fe/Makefile
+@@ -74,7 +74,7 @@
+ endif
+
+ svn-fe$X: svn-fe.o $(VCSSVN_LIB) $(XDIFF_LIB) $(GIT_LIB)
+- $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $(EXTLIBS) -o $@ svn-fe.o $(LIBS)
++ $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) -o $@ svn-fe.o $(LIBS) $(EXTLIBS)
+
+ svn-fe.o: svn-fe.c ../../vcs-svn/svndump.h
+ $(QUIET_CC)$(CC) $(CFLAGS) -I../../vcs-svn -o $*.o -c $<
diff --git a/dev-vcs/git/files/git-2.21.0-quiet-submodules-testcase.patch b/dev-vcs/git/files/git-2.21.0-quiet-submodules-testcase.patch
new file mode 100644
index 000000000000..0874ea9352e9
--- /dev/null
+++ b/dev-vcs/git/files/git-2.21.0-quiet-submodules-testcase.patch
@@ -0,0 +1,38 @@
+From a57994f2d78134936521375ba9798a1b7418e230 Mon Sep 17 00:00:00 2001
+From: "Robin H. Johnson" <robbat2@gentoo.org>
+Date: Fri, 12 Apr 2019 00:00:07 -0700
+Subject: [PATCH] submodule foreach: test foreach option swallowing
+
+Add a testcase for submodule foreach option parsing not knowing where to
+stop taking options, and accidently removing options intended for
+foreach target commands.
+
+CC: Duy Nguyen <pclouds@gmail.com>
+CC: Prathamesh Chavan <pc44800@gmail.com>
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+---
+ t/t7407-submodule-foreach.sh | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/t/t7407-submodule-foreach.sh b/t/t7407-submodule-foreach.sh
+index 77729ac4aa..706ae762e0 100755
+--- a/t/t7407-submodule-foreach.sh
++++ b/t/t7407-submodule-foreach.sh
+@@ -411,4 +411,14 @@ test_expect_success 'multi-argument command passed to foreach is not shell-evalu
+ test_cmp expected actual
+ '
+
++test_expect_success 'option-like arguments passed to foreach commands are not lost' '
++ (
++ cd super &&
++ git submodule foreach "echo be --quiet" > ../expected &&
++ git submodule foreach echo be --quiet > ../actual
++ ) &&
++ grep -sq -e "--quiet" expected &&
++ test_cmp expected actual
++'
++
+ test_done
+--
+2.21.0
+
diff --git a/dev-vcs/git/files/git-2.22.0_rc0-optional-cvs.patch b/dev-vcs/git/files/git-2.22.0_rc0-optional-cvs.patch
new file mode 100644
index 000000000000..a7d7a7848f8d
--- /dev/null
+++ b/dev-vcs/git/files/git-2.22.0_rc0-optional-cvs.patch
@@ -0,0 +1,454 @@
+From 1d3a35734efa1a1778612bb60cbbb495f65d3fc0 Mon Sep 17 00:00:00 2001
+From: Robin Johnson <robbat2@gentoo.org>
+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
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ Makefile | 48 ++++++++++++++++++++++--------
+ 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, 118 insertions(+), 33 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index f965509b3c..ab8b22faf1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -327,6 +327,8 @@ all::
+ # Define SANE_TEXT_GREP to "-a" if you use recent versions of GNU grep
+ # and egrep that are pickier when their input contains non-ASCII data.
+ #
++# 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'.
+@@ -597,6 +599,7 @@ PROGRAM_OBJS =
+ PROGRAMS =
+ EXCLUDED_PROGRAMS =
+ SCRIPT_PERL =
++SCRIPT_PERL_CVS =
+ SCRIPT_PYTHON =
+ SCRIPT_SH =
+ SCRIPT_LIB =
+@@ -632,31 +635,33 @@ SCRIPT_LIB += git-sh-i18n
+
+ 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)'
+@@ -665,12 +670,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
+
+@@ -2189,13 +2195,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_PATH_SQ):$(PERLLIB_EXTRA_SQ):$(perllibdir_SQ)
+
+@@ -2216,7 +2236,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)$(RM) $@ $@+ && \
+ sed -e '1{' \
+ -e ' s|#!.*perl|#!$(PERL_PATH_SQ)|' \
+@@ -2262,14 +2282,18 @@ git-instaweb: git-instaweb.sh GIT-SCRIPT-DEFINES
+ chmod +x $@+ && \
+ mv $@+ $@
+ else # NO_PERL
+-$(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh
++_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
+@@ -2518,7 +2542,7 @@ LOCALIZED_SH = $(SCRIPT_SH)
+ LOCALIZED_SH += git-parse-remote.sh
+ LOCALIZED_SH += git-rebase--preserve-merges.sh
+ LOCALIZED_SH += git-sh-setup.sh
+-LOCALIZED_PERL = $(SCRIPT_PERL)
++LOCALIZED_PERL = $(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 a5e5dca753..ef6d9c911c 100755
+--- a/t/t9400-git-cvsserver-server.sh
++++ b/t/t9400-git-cvsserver-server.sh
+@@ -11,9 +11,15 @@ cvs CLI client via git-cvsserver server'
+ . ./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 84787eee9a..eecba88527 100755
+--- a/t/t9401-git-cvsserver-crlf.sh
++++ b/t/t9401-git-cvsserver-crlf.sh
+@@ -57,15 +57,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 251fdd66c4..596cd9d35d 100755
+--- a/t/t9600-cvsimport.sh
++++ b/t/t9600-cvsimport.sh
+@@ -8,14 +8,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 &&
+@@ -47,23 +58,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,
+@@ -91,7 +102,7 @@ EOF
+ )
+ '
+
+-test_expect_success PERL 'update git module' '
++test_expect_success 'update git module' '
+
+ (cd module-git &&
+ git config cvsimport.trackRevisions true &&
+@@ -102,7 +113,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^ &&
+@@ -110,7 +121,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 &&
+@@ -119,7 +130,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 &&
+@@ -131,7 +142,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^^ &&
+@@ -140,7 +151,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 &&
+@@ -153,12 +164,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 master'
++test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
+
+ test_done
+diff --git a/t/t9601-cvsimport-vendor-branch.sh b/t/t9601-cvsimport-vendor-branch.sh
+index 827d39f5bf..d730a41f67 100755
+--- a/t/t9601-cvsimport-vendor-branch.sh
++++ b/t/t9601-cvsimport-vendor-branch.sh
+@@ -34,6 +34,17 @@
+ test_description='git cvsimport handling of vendor branches'
+ . ./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 e1db323f54..68f097401f 100755
+--- a/t/t9602-cvsimport-branches-tags.sh
++++ b/t/t9602-cvsimport-branches-tags.sh
+@@ -6,6 +6,17 @@
+ test_description='git cvsimport handling of branches and tags'
+ . ./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 3e64b11eac..606980b05c 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 908ddb9c46..9a06440599 100644
+--- a/t/test-lib.sh
++++ b/t/test-lib.sh
+@@ -1428,6 +1428,7 @@ case $uname_s in
+ esac
+
+ ( 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.21.0
+
diff --git a/dev-vcs/git/files/git-2.23.0-avoid_empty_remote_line.patch b/dev-vcs/git/files/git-2.23.0-avoid_empty_remote_line.patch
new file mode 100644
index 000000000000..f2bc3fd634e0
--- /dev/null
+++ b/dev-vcs/git/files/git-2.23.0-avoid_empty_remote_line.patch
@@ -0,0 +1,145 @@
+From bbf47568ad7e91ab0962b314c054a2da03232c72 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?SZEDER=20G=C3=A1bor?= <szeder.dev@gmail.com>
+Date: Mon, 16 Sep 2019 22:54:11 +0200
+Subject: [PATCH] Revert "progress: use term_clear_line()"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit 5b12e3123b (progress: use term_clear_line(),
+2019-06-24), because covering up the entire last line while refreshing
+the progress line caused unexpected problems during 'git
+clone/fetch/push':
+
+ $ git clone ssh://localhost/home/szeder/src/tmp/linux.git/
+ Cloning into 'linux'...
+ remote:
+ remote:
+ remote:
+ remote: Enumerating objects: 999295
+
+The length of the progress bar line can shorten when it includes
+throughput and the unit changes, or when its length exceeds the width
+of the terminal and is broken into two lines. In these cases the
+previously displayed longer progress line should be covered up,
+because otherwise the leftover characters from the previous progress
+line make the output look weird [1]. term_clear_line() makes this
+quite simple, as it covers up the entire last line either by using an
+ANSI control sequence or by printing a terminal width worth of space
+characters, depending on whether the terminal is smart or dumb.
+
+Unfortunately, when accessing a remote repository via any non-local
+protocol the remote 'git receive-pack/upload-pack' processes can't
+possibly have any idea about the local terminal (smart of dumb? how
+wide?) their progress will end up on. Consequently, they assume the
+worst, i.e. standard-width dumb terminal, and print 80 spaces to cover
+up the previously displayed progress line. The local 'git
+clone/fetch/push' processes then display the remote's progress,
+including these coverup spaces, with the 'remote: ' prefix, resulting
+in a total line length of 88 characters. If the local terminal is
+narrower than that, then the coverup gets line-wrapped, and after that
+the CR at the end doesn't return to the beginning of the progress
+line, but to the first column of its last line, resulting in those
+repeated 'remote: <many-spaces>' lines.
+
+By reverting 5b12e3123b (progress: use term_clear_line(),
+2019-06-24) we won't cover up the entire last line, but go back to
+comparing the length of the current progress bar line with the
+previous one, and cover up as many characters as needed.
+
+[1] See commits 545dc345eb (progress: break too long progress bar
+ lines, 2019-04-12) and 9f1fd84e15 (progress: clear previous
+ progress update dynamically, 2019-04-12).
+
+Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
+Signed-off-by: Junio C Hamano <gitster@pobox.com>
+---
+ progress.c | 29 ++++++++++++++++++-----------
+ t/t5541-http-push-smart.sh | 6 +++---
+ 2 files changed, 21 insertions(+), 14 deletions(-)
+
+diff --git a/progress.c b/progress.c
+index 277db8afa2..0eddf1804d 100644
+--- a/progress.c
++++ b/progress.c
+@@ -88,6 +88,7 @@ static void display(struct progress *progress, uint64_t n, const char *done)
+ const char *tp;
+ struct strbuf *counters_sb = &progress->counters_sb;
+ int show_update = 0;
++ int last_count_len = counters_sb->len;
+
+ if (progress->delay && (!progress_update || --progress->delay))
+ return;
+@@ -115,21 +116,27 @@ static void display(struct progress *progress, uint64_t n, const char *done)
+ if (show_update) {
+ if (is_foreground_fd(fileno(stderr)) || done) {
+ const char *eol = done ? done : "\r";
++ size_t clear_len = counters_sb->len < last_count_len ?
++ last_count_len - counters_sb->len + 1 :
++ 0;
++ /* The "+ 2" accounts for the ": ". */
++ size_t progress_line_len = progress->title_len +
++ counters_sb->len + 2;
++ int cols = term_columns();
+
+- term_clear_line();
+ if (progress->split) {
+- fprintf(stderr, " %s%s", counters_sb->buf,
+- eol);
+- } else if (!done &&
+- /* The "+ 2" accounts for the ": ". */
+- term_columns() < progress->title_len +
+- counters_sb->len + 2) {
+- fprintf(stderr, "%s:\n %s%s",
+- progress->title, counters_sb->buf, eol);
++ fprintf(stderr, " %s%*s", counters_sb->buf,
++ (int) clear_len, eol);
++ } else if (!done && cols < progress_line_len) {
++ clear_len = progress->title_len + 1 < cols ?
++ cols - progress->title_len - 1 : 0;
++ fprintf(stderr, "%s:%*s\n %s%s",
++ progress->title, (int) clear_len, "",
++ counters_sb->buf, eol);
+ progress->split = 1;
+ } else {
+- fprintf(stderr, "%s: %s%s", progress->title,
+- counters_sb->buf, eol);
++ fprintf(stderr, "%s: %s%*s", progress->title,
++ counters_sb->buf, (int) clear_len, eol);
+ }
+ fflush(stderr);
+ }
+diff --git a/t/t5541-http-push-smart.sh b/t/t5541-http-push-smart.sh
+index b86ddb60f2..92bac43257 100755
+--- a/t/t5541-http-push-smart.sh
++++ b/t/t5541-http-push-smart.sh
+@@ -262,7 +262,7 @@ test_expect_success TTY 'push shows progress when stderr is a tty' '
+ cd "$ROOT_PATH"/test_repo_clone &&
+ test_commit noisy &&
+ test_terminal git push >output 2>&1 &&
+- test_i18ngrep "Writing objects" output
++ test_i18ngrep "^Writing objects" output
+ '
+
+ test_expect_success TTY 'push --quiet silences status and progress' '
+@@ -277,7 +277,7 @@ test_expect_success TTY 'push --no-progress silences progress but not status' '
+ test_commit no-progress &&
+ test_terminal git push --no-progress >output 2>&1 &&
+ test_i18ngrep "^To http" output &&
+- test_i18ngrep ! "Writing objects" output
++ test_i18ngrep ! "^Writing objects" output
+ '
+
+ test_expect_success 'push --progress shows progress to non-tty' '
+@@ -285,7 +285,7 @@ test_expect_success 'push --progress shows progress to non-tty' '
+ test_commit progress &&
+ git push --progress >output 2>&1 &&
+ test_i18ngrep "^To http" output &&
+- test_i18ngrep "Writing objects" output
++ test_i18ngrep "^Writing objects" output
+ '
+
+ test_expect_success 'http push gives sane defaults to reflog' '
+--
+2.24.0.rc1
+
diff --git a/dev-vcs/git/files/git-2.7.0-mediawiki-500pages.patch b/dev-vcs/git/files/git-2.7.0-mediawiki-500pages.patch
new file mode 100644
index 000000000000..0ce706db99a6
--- /dev/null
+++ b/dev-vcs/git/files/git-2.7.0-mediawiki-500pages.patch
@@ -0,0 +1,46 @@
+Searching for pages using the MediaWiki API returns at most 500 results
+(hi Patrick). To get a list of all pages in a larger wiki, we need to run
+repeated searches...
+
+Source: https://github.com/moy/Git-Mediawiki/issues/32
+Author: anarcat https://github.com/anarcat
+
+diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl
+index 8dd74a9..f2ce311 100755
+--- a/contrib/mw-to-git/git-remote-mediawiki.perl
++++ b/contrib/mw-to-git/git-remote-mediawiki.perl
+@@ -259,16 +259,29 @@ sub get_mw_tracked_categories {
+ sub get_mw_all_pages {
+ my $pages = shift;
+ # No user-provided list, get the list of pages from the API.
+- my $mw_pages = $mediawiki->list({
++ my $query = {
+ action => 'query',
+ list => 'allpages',
+ aplimit => 'max'
+- });
+- if (!defined($mw_pages)) {
++ };
++ my $curpage;
++ my $oldpage = '';
++ while (1) {
++ if (defined($curpage)) {
++ if ($oldpage eq $curpage) {
++ last;
++ }
++ $query->{apfrom} = $curpage;
++ $oldpage = $curpage;
++ }
++ my $mw_pages = $mediawiki->list($query);
++ if (!defined($mw_pages)) {
+ fatal_mw_error("get the list of wiki pages");
+- }
+- foreach my $page (@{$mw_pages}) {
++ }
++ foreach my $page (@{$mw_pages}) {
+ $pages->{$page->{title}} = $page;
++ $curpage = $page->{title};
++ }
+ }
+ return;
+ }
diff --git a/dev-vcs/git/files/git-2.7.0-mediawiki-namespaces.patch b/dev-vcs/git/files/git-2.7.0-mediawiki-namespaces.patch
new file mode 100644
index 000000000000..72ab2126fa9c
--- /dev/null
+++ b/dev-vcs/git/files/git-2.7.0-mediawiki-namespaces.patch
@@ -0,0 +1,97 @@
+source:
+https://gist.github.com/anarcat/f821fa285c6b8b6b16a5
+https://github.com/moy/Git-Mediawiki/issues/10
+
+
+From 147224cfe6143c44b16aec0bb6d6a506a6b96ced Mon Sep 17 00:00:00 2001
+From: Kevin <kevin@ki-ai.org>
+Date: Fri, 28 Aug 2015 15:53:37 -0500
+Subject: [PATCH] Add namespace support to git-mediawiki
+
+Signed-off-by: Kevin <kevin@ki-ai.org>
+---
+ contrib/mw-to-git/git-remote-mediawiki.perl | 34 +++++++++++++++++++++++++++--
+ 1 file changed, 32 insertions(+), 2 deletions(-)
+
+diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl
+index 8dd74a9..662a5b5 100755
+--- a/contrib/mw-to-git/git-remote-mediawiki.perl
++++ b/contrib/mw-to-git/git-remote-mediawiki.perl
+@@ -17,6 +17,7 @@ use Git;
+ use Git::Mediawiki qw(clean_filename smudge_filename connect_maybe
+ EMPTY HTTP_CODE_OK);
+ use DateTime::Format::ISO8601;
++use Scalar::Util;
+ use warnings;
+
+ # By default, use UTF-8 to communicate with Git and the user
+@@ -63,6 +64,10 @@ chomp(@tracked_pages);
+ my @tracked_categories = split(/[ \n]/, run_git("config --get-all remote.${remotename}.categories"));
+ chomp(@tracked_categories);
+
++# Just like @tracked_categories, but for MediaWiki namespaces.
++my @tracked_namespaces = split(/[ \n]/, run_git("config --get-all remote.${remotename}.namespaces"));
++chomp(@tracked_namespaces);
++
+ # Import media files on pull
+ my $import_media = run_git("config --get --bool remote.${remotename}.mediaimport");
+ chomp($import_media);
+@@ -256,6 +261,23 @@ sub get_mw_tracked_categories {
+ return;
+ }
+
++sub get_mw_tracked_namespaces {
++ my $pages = shift;
++ foreach my $local_namespace (@tracked_namespaces) {
++ my $mw_pages = $mediawiki->list( {
++ action => 'query',
++ list => 'allpages',
++ apnamespace => get_mw_namespace_id($local_namespace),
++ aplimit => 'max' } )
++ || die $mediawiki->{error}->{code} . ': '
++ . $mediawiki->{error}->{details} . "\n";
++ foreach my $page (@{$mw_pages}) {
++ $pages->{$page->{title}} = $page;
++ }
++ }
++ return;
++}
++
+ sub get_mw_all_pages {
+ my $pages = shift;
+ # No user-provided list, get the list of pages from the API.
+@@ -319,6 +341,10 @@ sub get_mw_pages {
+ $user_defined = 1;
+ get_mw_tracked_categories(\%pages);
+ }
++ if (@tracked_namespaces) {
++ $user_defined = 1;
++ get_mw_tracked_namespaces(\%pages);
++ }
+ if (!$user_defined) {
+ get_mw_all_pages(\%pages);
+ }
+@@ -1263,7 +1289,6 @@ my %cached_mw_namespace_id;
+ sub get_mw_namespace_id {
+ $mediawiki = connect_maybe($mediawiki, $remotename, $url);
+ my $name = shift;
+-
+ if (!exists $namespace_id{$name}) {
+ # Look at configuration file, if the record for that namespace is
+ # already cached. Namespaces are stored in form:
+@@ -1331,7 +1356,12 @@ sub get_mw_namespace_id {
+ sub get_mw_namespace_id_for_page {
+ my $namespace = shift;
+ if ($namespace =~ /^([^:]*):/) {
+- return get_mw_namespace_id($namespace);
++ my ($ns, $id) = split(/:/, $namespace);
++ if (Scalar::Util::looks_like_number($id)) {
++ return get_mw_namespace_id($ns);
++ } else{
++ return
++ }
+ } else {
+ return;
+ }
+--
+2.5.0
diff --git a/dev-vcs/git/files/git-2.7.0-mediawiki-subpages.patch b/dev-vcs/git/files/git-2.7.0-mediawiki-subpages.patch
new file mode 100644
index 000000000000..c798a894d3f8
--- /dev/null
+++ b/dev-vcs/git/files/git-2.7.0-mediawiki-subpages.patch
@@ -0,0 +1,48 @@
+From 2593304723c6def159c10b9060dafa78a775a057 Mon Sep 17 00:00:00 2001
+From: Lyubomyr Shaydariv <lyubomyr-shaydariv@users.noreply.github.com>
+Date: Fri, 11 Sep 2015 00:41:17 +0300
+Subject: [PATCH] git-remote-mediawiki: support subpages as subdirectories
+
+This is a fix for https://github.com/moy/Git-Mediawiki/issues/22
+The subdirectories option is enabled using -c remote.origin.subpageDirs=true
+during the cloning and it is not recommended to be modified in or
+removed from .git/config after the cloning.
+---
+ contrib/mw-to-git/git-remote-mediawiki.perl | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/contrib/mw-to-git/git-remote-mediawiki.perl b/contrib/mw-to-git/git-remote-mediawiki.perl
+index 8dd74a9..f3624be 100755
+--- a/contrib/mw-to-git/git-remote-mediawiki.perl
++++ b/contrib/mw-to-git/git-remote-mediawiki.perl
+@@ -63,6 +63,11 @@
+ my @tracked_categories = split(/[ \n]/, run_git("config --get-all remote.${remotename}.categories"));
+ chomp(@tracked_categories);
+
++# Use subdirectories for subpages
++my $use_subpage_dirs = run_git("config --get --bool remote.${remotename}.subpageDirs");
++chomp($use_subpage_dirs);
++$use_subpage_dirs = ($use_subpage_dirs eq 'true');
++
+ # Import media files on pull
+ my $import_media = run_git("config --get --bool remote.${remotename}.mediaimport");
+ chomp($import_media);
+@@ -689,6 +694,9 @@ sub fe_escape_path {
+ $path =~ s/\\/\\\\/g;
+ $path =~ s/"/\\"/g;
+ $path =~ s/\n/\\n/g;
++ if ($use_subpage_dirs) {
++ $path =~ s/%2F/\//g;
++ }
+ return qq("${path}");
+ }
+
+@@ -927,7 +935,7 @@ sub mw_import_revids {
+ # If this is a revision of the media page for new version
+ # of a file do one common commit for both file and media page.
+ # Else do commit only for that page.
+- print {*STDERR} "${n}/", scalar(@{$revision_ids}), ": Revision #$rev->{revid} of $commit{title}\n";
++ print {*STDERR} "${n}/", scalar(@{$revision_ids}), ": Revision #$rev->{revid} of ", fe_escape_path($commit{title}), "\n";
+ import_file_revision(\%commit, ($fetch_from == 1), $n_actual, \%mediafile);
+ }
+
diff --git a/dev-vcs/git/files/git-daemon-r1.initd b/dev-vcs/git/files/git-daemon-r1.initd
new file mode 100644
index 000000000000..78e5444ed4db
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon-r1.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+pidfile="/var/run/git-daemon.pid"
+command="/usr/bin/git"
+command_args="daemon ${GITDAEMON_OPTS}"
+command_user="${GIT_USER:-nobody}:${GIT_GROUP:-nobody}"
+start_stop_daemon_args="-e HOME= -e XDG_CONFIG_HOME= -b -m"
+
+depend() {
+ use logger
+}
diff --git a/dev-vcs/git/files/git-daemon.confd b/dev-vcs/git/files/git-daemon.confd
new file mode 100644
index 000000000000..69b209ff18cc
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon.confd
@@ -0,0 +1,19 @@
+# conf.d file for git-daemon
+#
+# Please check man 1 git-daemon for more information about the options
+# git-daemon accepts. You MUST edit this to include your repositories you wish
+# to serve.
+#
+# Some of the meaningful options are:
+# --syslog --- Enables syslog logging
+# --verbose --- Enables verbose logging
+# --export-all --- Exports all repositories
+# --port=XXXX --- Starts in port XXXX instead of 9418
+#
+GITDAEMON_OPTS="--syslog --base-path=/var/git"
+
+# To run an anonymous git safely, the following user should be able to only
+# read your Git repositories. It should not be able to write to anywhere on
+# your system, esp. not the repositories.
+GIT_USER="nobody"
+GIT_GROUP="nobody"
diff --git a/dev-vcs/git/files/git-daemon.socket b/dev-vcs/git/files/git-daemon.socket
new file mode 100644
index 000000000000..3dec01d21653
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Git Activation Socket
+
+[Socket]
+ListenStream=9418
+Accept=true
+
+[Install]
+WantedBy=sockets.target
diff --git a/dev-vcs/git/files/git-daemon.xinetd b/dev-vcs/git/files/git-daemon.xinetd
new file mode 100644
index 000000000000..02c938d4bd6c
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon.xinetd
@@ -0,0 +1,13 @@
+service git-daemon
+{
+ disable = yes
+ socket_type = stream
+ wait = no
+ user = nobody
+ type = UNLISTED
+ protocol = tcp
+ log_on_failure += USERID
+ port = 9418
+ server = /usr/bin/git
+ server_args = daemon --inetd --syslog --export-all --base-path=/var/git
+}
diff --git a/dev-vcs/git/files/git-daemon_at-r1.service b/dev-vcs/git/files/git-daemon_at-r1.service
new file mode 100644
index 000000000000..0a1bd14b16a3
--- /dev/null
+++ b/dev-vcs/git/files/git-daemon_at-r1.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Git Repositories Server Daemon
+Documentation=man:git-daemon(1)
+
+[Service]
+User=nobody
+Group=nobody
+# Ignore non-zero exit status, access error makes git-daemon return them
+ExecStart=-/usr/libexec/git-core/git-daemon --inetd --base-path=/var/git --verbose
+StandardInput=socket
+StandardOutput=inherit
+StandardError=journal