From 8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 21:03:06 +0100 Subject: gentoo resync : 14.07.2018 --- dev-vcs/git/files/50git-gentoo.el | 13 + dev-vcs/git/files/git-1.8.5-mw-vendor.patch | 39 ++ dev-vcs/git/files/git-2.12.0-optional-cvs.patch | 456 ++++++++++++++++++++ .../git/files/git-2.17.0-mw_install_path_fix.patch | 48 +++ .../git/files/git-2.17.0_rc1-optional-cvs.patch | 451 ++++++++++++++++++++ .../git/files/git-2.18.0_rc1-optional-cvs.patch | 460 +++++++++++++++++++++ dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch | 11 + .../files/git-2.5.1-freebsd-10.x-no-iconv.patch | 14 + .../git/files/git-2.7.0-mediawiki-500pages.patch | 46 +++ .../git/files/git-2.7.0-mediawiki-namespaces.patch | 97 +++++ .../git/files/git-2.7.0-mediawiki-subpages.patch | 48 +++ dev-vcs/git/files/git-daemon-r1.initd | 13 + dev-vcs/git/files/git-daemon.confd | 19 + dev-vcs/git/files/git-daemon.socket | 9 + dev-vcs/git/files/git-daemon.xinetd | 13 + dev-vcs/git/files/git-daemon_at-r1.service | 12 + 16 files changed, 1749 insertions(+) create mode 100644 dev-vcs/git/files/50git-gentoo.el create mode 100644 dev-vcs/git/files/git-1.8.5-mw-vendor.patch create mode 100644 dev-vcs/git/files/git-2.12.0-optional-cvs.patch create mode 100644 dev-vcs/git/files/git-2.17.0-mw_install_path_fix.patch create mode 100644 dev-vcs/git/files/git-2.17.0_rc1-optional-cvs.patch create mode 100644 dev-vcs/git/files/git-2.18.0_rc1-optional-cvs.patch create mode 100644 dev-vcs/git/files/git-2.2.0-svn-fe-linking.patch create mode 100644 dev-vcs/git/files/git-2.5.1-freebsd-10.x-no-iconv.patch create mode 100644 dev-vcs/git/files/git-2.7.0-mediawiki-500pages.patch create mode 100644 dev-vcs/git/files/git-2.7.0-mediawiki-namespaces.patch create mode 100644 dev-vcs/git/files/git-2.7.0-mediawiki-subpages.patch create mode 100644 dev-vcs/git/files/git-daemon-r1.initd create mode 100644 dev-vcs/git/files/git-daemon.confd create mode 100644 dev-vcs/git/files/git-daemon.socket create mode 100644 dev-vcs/git/files/git-daemon.xinetd create mode 100644 dev-vcs/git/files/git-daemon_at-r1.service (limited to 'dev-vcs/git/files') 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-1.8.5-mw-vendor.patch b/dev-vcs/git/files/git-1.8.5-mw-vendor.patch new file mode 100644 index 000000000000..54302ef26c91 --- /dev/null +++ b/dev-vcs/git/files/git-1.8.5-mw-vendor.patch @@ -0,0 +1,39 @@ +diff --git a/contrib/mw-to-git/Makefile b/contrib/mw-to-git/Makefile +index a4b6f7a..d83df2c 100644 +--- a/contrib/mw-to-git/Makefile ++++ b/contrib/mw-to-git/Makefile +@@ -22,7 +22,7 @@ INSTALL = install + + SCRIPT_PERL_FULL=$(patsubst %,$(HERE)/%,$(SCRIPT_PERL)) + INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/perl \ +- -s --no-print-directory instlibdir) ++ -s --no-print-directory instvendorlibdir) + DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) + INSTLIBDIR_SQ = $(subst ','\'',$(INSTLIBDIR)) + +diff --git a/perl/Makefile b/perl/Makefile +index 15d96fc..91348c6 100644 +--- a/perl/Makefile ++++ b/perl/Makefile +@@ -12,7 +12,7 @@ ifndef V + QUIET = @ + endif + +-all install instlibdir: $(makfile) ++all install instlibdir instvendorlibdir: $(makfile) + $(QUIET)$(MAKE) -f $(makfile) $@ + + clean: +diff --git a/perl/Makefile.PL b/perl/Makefile.PL +index 3f29ba9..c0b3508 100644 +--- a/perl/Makefile.PL ++++ b/perl/Makefile.PL +@@ -17,6 +17,8 @@ sub MY::postamble { + return <<'MAKE_FRAG'; + instlibdir: + @echo '$(INSTALLSITELIB)' ++instvendorlibdir: ++ @echo '$(INSTALLVENDORLIB)' + + ifneq (,$(DESTDIR)) + ifeq (0,$(shell expr '$(MM_VERSION)' '>' 6.10)) diff --git a/dev-vcs/git/files/git-2.12.0-optional-cvs.patch b/dev-vcs/git/files/git-2.12.0-optional-cvs.patch new file mode 100644 index 000000000000..d158b65d30a4 --- /dev/null +++ b/dev-vcs/git/files/git-2.12.0-optional-cvs.patch @@ -0,0 +1,456 @@ +From 1e1bacf32568cc24dbd24444ed4025fc80a96ff3 Mon Sep 17 00:00:00 2001 +From: Robin Johnson +Date: Sat, 25 Feb 2017 20:48:14 +0100 +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 + +Signed-off-by: Lars Wendler +--- + Makefile | 51 ++++++++++++++++++++++++++++---------- + 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, 120 insertions(+), 34 deletions(-) + +diff --git a/Makefile b/Makefile +index 8e4081e06..f14a4ad37 100644 +--- a/Makefile ++++ b/Makefile +@@ -273,6 +273,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'. +@@ -496,6 +498,7 @@ LIB_OBJS = + PROGRAM_OBJS = + PROGRAMS = + SCRIPT_PERL = ++SCRIPT_PERL_CVS = + SCRIPT_PYTHON = + SCRIPT_SH = + SCRIPT_LIB = +@@ -532,12 +535,13 @@ 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 + + NO_INSTALL += git-remote-testgit +@@ -545,24 +549,26 @@ NO_INSTALL += git-remote-testgit + # 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)) + + SCRIPT_SH_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_SH_GEN)) + SCRIPT_PERL_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_GEN)) ++SCRIPT_PERL_CVS_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_CVS_GEN)) + SCRIPT_PYTHON_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PYTHON_GEN)) + + # 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_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' +-install-perl-script: $(SCRIPT_PERL_INS) ++install-perl-script: $(SCRIPT_PERL_INS) $(SCRIPT_PERL_CVS_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' + install-python-script: $(SCRIPT_PYTHON_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' +@@ -571,12 +577,13 @@ install-python-script: $(SCRIPT_PYTHON_INS) + 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_INS) \ + $(SCRIPT_PERL_INS) \ ++ $(SCRIPT_PERL_CVS_INS) \ + $(SCRIPT_PYTHON_INS) \ + git-instaweb + +@@ -1832,10 +1839,24 @@ git.res: git.rc GIT-VERSION-FILE + -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 = + + ifndef NO_PERL +-$(SCRIPT_PERL_GEN): perl/perl.mak ++ ++_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/perl.mak + + perl/perl.mak: perl/PM.stamp + +@@ -1848,7 +1869,7 @@ perl/perl.mak: GIT-CFLAGS GIT-PREFIX perl/Makefile perl/Makefile.PL + $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F) + + PERL_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ) +-$(SCRIPT_PERL_GEN): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE ++$(_SCRIPT_PERL_GEN): % : %.perl perl/perl.mak GIT-PERL-DEFINES GIT-VERSION-FILE + $(QUIET_GEN)$(RM) $@ $@+ && \ + INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \ + INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \ +@@ -1882,14 +1903,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 +@@ -2125,7 +2150,7 @@ LOCALIZED_SH = $(SCRIPT_SH) + LOCALIZED_SH += git-parse-remote.sh + LOCALIZED_SH += git-rebase--interactive.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 bb879a527..17be19729 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 432c61d24..6907b3f52 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 84787eee9..eecba8852 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 4c384ff02..d601f32c5 100755 +--- a/t/t9600-cvsimport.sh ++++ b/t/t9600-cvsimport.sh +@@ -3,14 +3,25 @@ + test_description='git cvsimport basic tests' + . ./lib-cvs.sh + +-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 && +@@ -42,23 +53,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 <o_fortuna && + O Fortune, +@@ -86,7 +97,7 @@ EOF + ) + ' + +-test_expect_success PERL 'update git module' ' ++test_expect_success 'update git module' ' + + (cd module-git && + git config cvsimport.trackRevisions true && +@@ -97,7 +108,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^ && +@@ -105,7 +116,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 && +@@ -114,7 +125,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 && +@@ -126,7 +137,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^^ && +@@ -135,7 +146,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 && +@@ -148,12 +159,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 827d39f5b..d730a41f6 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 e1db323f5..68f097401 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 c4c3c4954..9b2957d4f 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 86d77c16d..1fb51f149 100644 +--- a/t/test-lib.sh ++++ b/t/test-lib.sh +@@ -1007,6 +1007,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_PYTHON" && test_set_prereq PYTHON + test -n "$USE_LIBPCRE" && test_set_prereq LIBPCRE +-- +2.11.1 + diff --git a/dev-vcs/git/files/git-2.17.0-mw_install_path_fix.patch b/dev-vcs/git/files/git-2.17.0-mw_install_path_fix.patch new file mode 100644 index 000000000000..5a66a4c89be0 --- /dev/null +++ b/dev-vcs/git/files/git-2.17.0-mw_install_path_fix.patch @@ -0,0 +1,48 @@ +From cfb3a47cada99d1bdccd08426f122ded2a63834e Mon Sep 17 00:00:00 2001 +From: Christian Hesse +Date: Tue, 10 Apr 2018 15:36:41 +0200 +Subject: [PATCH] perl: fix installing modules from contrib + +Commit 20d2a30f (Makefile: replace perl/Makefile.PL with simple make rules) +removed a target that allowed Makefiles from contrib/ to get the correct +install path. This introduces a new target for main Makefile and fixes +installation for Mediawiki module. + +v2: Pass prefix as that can have influence as well, add single quotes + for _SQ variant. + +Signed-off-by: Christian Hesse +--- + Makefile | 2 ++ + contrib/mw-to-git/Makefile | 5 +++-- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 2091f5f892cc8..75b9ad3b480cb 100644 +--- a/Makefile ++++ b/Makefile +@@ -1973,6 +1973,8 @@ GIT-PERL-DEFINES: FORCE + echo "$$FLAGS" >$@; \ + fi + ++perllibdir: ++ @echo '$(perllibdir_SQ)' + + .PHONY: gitweb + gitweb: +diff --git a/contrib/mw-to-git/Makefile b/contrib/mw-to-git/Makefile +index a4b6f7a2cd412..4e603512a39fe 100644 +--- a/contrib/mw-to-git/Makefile ++++ b/contrib/mw-to-git/Makefile +@@ -21,8 +21,9 @@ HERE=contrib/mw-to-git/ + INSTALL = install + + SCRIPT_PERL_FULL=$(patsubst %,$(HERE)/%,$(SCRIPT_PERL)) +-INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/perl \ +- -s --no-print-directory instlibdir) ++INSTLIBDIR=$(shell $(MAKE) -C $(GIT_ROOT_DIR)/ \ ++ -s --no-print-directory prefix=$(prefix) \ ++ perllibdir=$(perllibdir) perllibdir) + DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) + INSTLIBDIR_SQ = $(subst ','\'',$(INSTLIBDIR)) + diff --git a/dev-vcs/git/files/git-2.17.0_rc1-optional-cvs.patch b/dev-vcs/git/files/git-2.17.0_rc1-optional-cvs.patch new file mode 100644 index 000000000000..60cebcbb4d64 --- /dev/null +++ b/dev-vcs/git/files/git-2.17.0_rc1-optional-cvs.patch @@ -0,0 +1,451 @@ +From 3baea661143aaddb285f1ac7c50f6e4af76c8aed Mon Sep 17 00:00:00 2001 +From: Robin Johnson +Date: Fri, 23 Mar 2018 10:05:05 +0100 +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 + +Signed-off-by: Lars Wendler +--- + 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 a1d8775adb..4264475ad1 100644 +--- a/Makefile ++++ b/Makefile +@@ -312,6 +312,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'. +@@ -543,6 +545,7 @@ LIB_OBJS = + PROGRAM_OBJS = + PROGRAMS = + SCRIPT_PERL = ++SCRIPT_PERL_CVS = + SCRIPT_PYTHON = + SCRIPT_SH = + SCRIPT_LIB = +@@ -579,12 +582,13 @@ 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 + + NO_INSTALL += git-remote-testgit +@@ -592,24 +596,26 @@ NO_INSTALL += git-remote-testgit + # 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)) + + SCRIPT_SH_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_SH_GEN)) + SCRIPT_PERL_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_GEN)) ++SCRIPT_PERL_CVS_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_CVS_GEN)) + SCRIPT_PYTHON_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PYTHON_GEN)) + + # 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_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' +-install-perl-script: $(SCRIPT_PERL_INS) ++install-perl-script: $(SCRIPT_PERL_INS) $(SCRIPT_PERL_CVS_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' + install-python-script: $(SCRIPT_PYTHON_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' +@@ -618,12 +624,13 @@ install-python-script: $(SCRIPT_PYTHON_INS) + 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_INS) \ + $(SCRIPT_PERL_INS) \ ++ $(SCRIPT_PERL_CVS_INS) \ + $(SCRIPT_PYTHON_INS) \ + git-instaweb + +@@ -1972,13 +1979,26 @@ git.res: git.rc GIT-VERSION-FILE + -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 = + + ifndef NO_PERL +-$(SCRIPT_PERL_GEN): ++_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_DEFINES = $(PERL_PATH_SQ):$(PERLLIB_EXTRA_SQ):$(perllibdir_SQ) +-$(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-VERSION-FILE ++$(_SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-VERSION-FILE + $(QUIET_GEN)$(RM) $@ $@+ && \ + INSTLIBDIR='$(perllibdir_SQ)' && \ + INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \ +@@ -2012,14 +2032,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 +@@ -2258,7 +2282,7 @@ LOCALIZED_SH = $(SCRIPT_SH) + LOCALIZED_SH += git-parse-remote.sh + LOCALIZED_SH += git-rebase--interactive.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 1319415ba8..34ac8e28e2 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 06742748e9..51d474d94b 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 804ce3850f..c53c50e432 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 <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 c4c3c49546..9b2957d4f0 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 7740d511d2..9b26b78359 100644 +--- a/t/test-lib.sh ++++ b/t/test-lib.sh +@@ -1062,6 +1062,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.16.3 + diff --git a/dev-vcs/git/files/git-2.18.0_rc1-optional-cvs.patch b/dev-vcs/git/files/git-2.18.0_rc1-optional-cvs.patch new file mode 100644 index 000000000000..2e213c00522a --- /dev/null +++ b/dev-vcs/git/files/git-2.18.0_rc1-optional-cvs.patch @@ -0,0 +1,460 @@ +From 7b0d0d066a5f869f86f2be125d63ae98c1451feb Mon Sep 17 00:00:00 2001 +From: Robin Johnson +Date: Wed, 6 Jun 2018 16:25:13 +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 + +Signed-off-by: Lars Wendler +--- + Makefile | 49 ++++++++++++++++++++++-------- + 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(+), 33 deletions(-) + +diff --git a/Makefile b/Makefile +index 1d27f36365..b30a14e263 100644 +--- a/Makefile ++++ b/Makefile +@@ -312,6 +312,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'. +@@ -589,6 +591,7 @@ LIB_OBJS = + PROGRAM_OBJS = + PROGRAMS = + SCRIPT_PERL = ++SCRIPT_PERL_CVS = + SCRIPT_PYTHON = + SCRIPT_SH = + SCRIPT_LIB = +@@ -626,12 +629,13 @@ 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 + + NO_INSTALL += git-remote-testgit +@@ -639,24 +643,26 @@ NO_INSTALL += git-remote-testgit + # 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)) + + SCRIPT_SH_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_SH_GEN)) + SCRIPT_PERL_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_GEN)) ++SCRIPT_PERL_CVS_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PERL_CVS_GEN)) + SCRIPT_PYTHON_INS = $(filter-out $(NO_INSTALL),$(SCRIPT_PYTHON_GEN)) + + # 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_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' +-install-perl-script: $(SCRIPT_PERL_INS) ++install-perl-script: $(SCRIPT_PERL_INS) $(SCRIPT_PERL_CVS_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' + install-python-script: $(SCRIPT_PYTHON_INS) + $(INSTALL) $^ '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' +@@ -665,12 +671,13 @@ install-python-script: $(SCRIPT_PYTHON_INS) + 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_INS) \ + $(SCRIPT_PERL_INS) \ ++ $(SCRIPT_PERL_CVS_INS) \ + $(SCRIPT_PYTHON_INS) \ + git-instaweb + +@@ -2076,13 +2083,27 @@ git.res: git.rc GIT-VERSION-FILE + -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) + +@@ -2103,7 +2124,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)|' \ +@@ -2149,14 +2170,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 +@@ -2396,7 +2421,7 @@ LOCALIZED_SH = $(SCRIPT_SH) + LOCALIZED_SH += git-parse-remote.sh + LOCALIZED_SH += git-rebase--interactive.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 1319415ba8..34ac8e28e2 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 06742748e9..51d474d94b 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 804ce3850f..c53c50e432 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 <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 c4c3c49546..9b2957d4f0 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 28315706be..6e2f99cdbb 100644 +--- a/t/test-lib.sh ++++ b/t/test-lib.sh +@@ -1064,6 +1064,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.17.1 + 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.5.1-freebsd-10.x-no-iconv.patch b/dev-vcs/git/files/git-2.5.1-freebsd-10.x-no-iconv.patch new file mode 100644 index 000000000000..a874236dc65c --- /dev/null +++ b/dev-vcs/git/files/git-2.5.1-freebsd-10.x-no-iconv.patch @@ -0,0 +1,14 @@ +diff -Naurp git-2.5.1.orig/config.mak.uname git-2.5.1/config.mak.uname +--- git-2.5.1.orig/config.mak.uname 2015-08-28 15:37:13.000000000 -0400 ++++ git-2.5.1/config.mak.uname 2015-09-06 18:54:28.538437000 -0400 +@@ -189,7 +189,9 @@ ifeq ($(uname_O),Cygwin) + SPARSE_FLAGS = -isystem /usr/include/w32api -Wno-one-bit-signed-bitfield + endif + ifeq ($(uname_S),FreeBSD) +- NEEDS_LIBICONV = YesPlease ++ ifeq ($(shell expr "$(uname_R)" : '[1-9]\.'),2) ++ NEEDS_LIBICONV = YesPlease ++ endif + OLD_ICONV = YesPlease + NO_MEMMEM = YesPlease + BASIC_CFLAGS += -I/usr/local/include 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 +Date: Fri, 28 Aug 2015 15:53:37 -0500 +Subject: [PATCH] Add namespace support to git-mediawiki + +Signed-off-by: Kevin +--- + 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 +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 -- cgit v1.2.3