Merge pull request #691 from bgilbert/git

bump(dev-vcs/git): sync with upstream
This commit is contained in:
Benjamin Gilbert 2018-10-17 16:41:27 -04:00 committed by GitHub
commit 9ebcfd1241
12 changed files with 2101 additions and 240 deletions

View File

@ -1,12 +1,18 @@
DIST git-2.16.1.tar.xz 4961656 BLAKE2B d94328da5d027cb82f1f23804a12dfc5df1577bf2c28cc376d4bb5c9e34d317886437f7eee2ac4503b8e2639d2e24c35660ab82a50207f500b7ed6fb104d3624 SHA512 09e30ada7bcf41f78f15784908062c10162d58d2fd7a68ad27e42fd49dc37eb0e82c19ad21db31034a189a8cdd009013a29f943e1ae5d5ab5688c913d2a4d42a
DIST git-2.16.3.tar.xz 4966248 BLAKE2B cd4d2573afd02a23766c4dd0da8397ac36193f68e18c162fc85d60d7595a50da7707f592ccc3a9f00a22fdcb8a8cada82139fe30f97af193fb367a4e392cbaa8 SHA512 73520cf3500b2d13b77eb1e5ec0d60263aad07732d25631732f0d986abd023f97b8a6db4abff64d342cb053018289b5f7a3e32f10b86bd9092a37ee0585adc8a
DIST git-2.16.4.tar.xz 4968252 BLAKE2B 77f76408bde02bfacdb99d22baca05893f63c96d1fb7508c7e92541f8f7ec9ced0dad650be788fd28a1e03b5d88b88708652d07a47bedaae60a9cbd4e2eec858 SHA512 f54e431e78289349dcb927ec34873dfb801c49a41cbb3d0138346d603af26bd7d86f9ac95e7a61a4831017f3503f33374510ccf68b0e62b0691fc5a43283f1ac DIST git-2.16.4.tar.xz 4968252 BLAKE2B 77f76408bde02bfacdb99d22baca05893f63c96d1fb7508c7e92541f8f7ec9ced0dad650be788fd28a1e03b5d88b88708652d07a47bedaae60a9cbd4e2eec858 SHA512 f54e431e78289349dcb927ec34873dfb801c49a41cbb3d0138346d603af26bd7d86f9ac95e7a61a4831017f3503f33374510ccf68b0e62b0691fc5a43283f1ac
DIST git-2.17.1.tar.xz 5015484 BLAKE2B d3a61023872a15e3176e4dae6df83d4c2369a377244d44dfd7a63a15ecc3a7b145093afd5d6fa72e4eca98ba4f81f7ccd89ac2400c9cf8107ac04fd35d8bf6e4 SHA512 77c27569d40fbae1842130baa0cdda674a02e384631bd8fb1f2ddf67ce372dd4903b2ce6b4283a4ae506cdedd5daa55baa2afe6a6689528511e24e4beb864960 DIST git-2.16.5.tar.xz 4968780 BLAKE2B 9987e15152cce334fdfe2f56705fb2d9d246652010e58879fefc79cb20c05f177f2ed0c4ef8955889684466d2d3fbf9a246351751d6c6d6c3c8b4adeb48fbf06 SHA512 96770035f370808b7b7f3752c938394522fcb699355ed821591a1ef5756903ad0e8830441d230cbead7718b42066ad4e33fedf8b8c948fbacc89c18f3d486e26
DIST git-htmldocs-2.16.1.tar.xz 1160372 BLAKE2B d426fbc85772e5f04550071dea50a75e6d581fd040e8b37b3b342a8d6569d0dcf456445bab1dec3d84e254e82468c900afff7c6be1ebd6771e7fad5884b92515 SHA512 f2bb8b88ab5aa3d6204874aae583249d5137193c5fe3925df7ae1bcdaec0564b496df9a648c180bebb0c8ff4573f27e330802020d3c9207c2738ddd5c52d99c9 DIST git-2.18.0.tar.xz 5102264 BLAKE2B 94a8469a0e489d517136233301f1af622a3e612967316620800a771721f4e558dfb9159f158ddd07d294fce3ceb256038483f5a8c1fe6a84f661710857945dce SHA512 db19363c9c2042248322d49874a27c0614acfb912183725e5d4f0331d6b44cef66a9a7da6a49bd4a17e5d86d30c5fed6bef7527f386494184595a433c4060e46
DIST git-htmldocs-2.16.3.tar.xz 1164252 BLAKE2B 43d5b0317d3cb181c24347933b6ee3ce586f7be7e38ae30555bc732b369287f080879ff0408601db125a4104b665956f6bcef3f243496008d3ec1601110b06df SHA512 6271ff7780053347ceba47754db00fa8a0a39ff622c490e273ed286faa6ade3f7d6580fa396c913b4485a942b2ad0cdd898de467fde497de1d850fb6d3debd1e DIST git-2.18.1.tar.xz 5102812 BLAKE2B 43ec86d9aebc73a582f2117ef1c26a6dc820f81ff389a6239ed6e3ea5fd2be0bac54766c3ab8ad1cc9730978e5b73997bb20b24b9f3f43d6eef06bea8a9174c3 SHA512 06bdc54c4ff78b77667b917f2aa46a803bd6561236f4177f41b8730785b5f90f8ca705f028131f9365fb0aae2e51cd92c97380141e97c026c96a020e00b992e1
DIST git-2.19.0.tar.xz 5227124 BLAKE2B f917b9ca8325ffbdec7d8614fec3874a09b5d3c421a0179f6c77def7e11f5853d821933b13687087b05791531e194178e1e63f51739ece91e32dddb07a127a0b SHA512 305e51f8e22d96847fcdf4169340795aacaf5f4c5b8052cda860a668059d9ef35bb2840c278b7207f3b9f0e1c32915719649edc20bd3cd33b53e97a06159ceac
DIST git-2.19.1.tar.xz 5227908 BLAKE2B 1702662d7eea2ea5fa9d697eece19bee8a451abb1e85b1c7b111b4126e97340ee0c5691faf37c2d9fbe13bdf4ea894d8a3e0e2f7208e7bce111e53d1da81ef5f SHA512 a1bc1032b1de9eb9ea8b7c385cd009f64247e13066e0a91e9682e35400ded05f88c23b523cca4782f57544060d6ba0f9d3bec944399cda5771a4945c38bb9b98
DIST git-htmldocs-2.16.4.tar.xz 1164256 BLAKE2B 88a7ab5b094f15bc2b6c0f4d4c3eae185f6e6c0f00f4aca75492f0cc964428d1bf53002e0e43468b60b62058af5f13b061231061247e19b32bc70c2c8adb04eb SHA512 8f4a8c51656559af81296fb064ecf0f88444952c7f8ee91b85e5a61b20d200267d7432f720ded12046bab986361cff48cf7a2f5d21e05c1ac7648cc3168a0049 DIST git-htmldocs-2.16.4.tar.xz 1164256 BLAKE2B 88a7ab5b094f15bc2b6c0f4d4c3eae185f6e6c0f00f4aca75492f0cc964428d1bf53002e0e43468b60b62058af5f13b061231061247e19b32bc70c2c8adb04eb SHA512 8f4a8c51656559af81296fb064ecf0f88444952c7f8ee91b85e5a61b20d200267d7432f720ded12046bab986361cff48cf7a2f5d21e05c1ac7648cc3168a0049
DIST git-htmldocs-2.17.1.tar.xz 1173296 BLAKE2B 5133a86fb73cd58d6a9d4ed05d32949f642c9a670a49ea67c7170dfb39c4ff3f63d5f220abebcc979f87a360ec2990ccf5a9e3c18e8fcb07082bac111ecb12c7 SHA512 69054b087ffd1c88532672c6edea3cd27e08421f25c09a1a304420ec6aa20806888f71e4ef21aac1bc2fed81a045a64ae164a9dc377eb48d61887bf8d787782c DIST git-htmldocs-2.16.5.tar.xz 1164600 BLAKE2B 303f5543a420a78b7731aee7b9977361130edfdcffbf67e3ad652ac1243a22aa13d883337466e95a186977e34a2989f5639af7acd7c0187219b200cf966a83ef SHA512 00ed040e665e817a0543768bb290c47dd553581a18b136a59ca37e656c538f49716e79a533c5063c2a00f16f7ad021a5836f71b805200df07bb8a3923aacddfb
DIST git-manpages-2.16.1.tar.xz 417188 BLAKE2B 239fb33967d17c8b10efb2e0d1963f7be3404b7f262b49f89b3f4a538135d80268fbe7fe0e561c9cb2d86840eb46b61653ed363d8da27d1169c435d8e1d5e851 SHA512 20c7646b5f1e3c633ce6aae5ee5fcbe4ca1e59fc9253ec9a9e45c7cd8a8ac7a5e71e36258eb747e3bd6d51b3b7971137315dcdbdff493e0f8774ecd3e309735a DIST git-htmldocs-2.18.0.tar.xz 1201076 BLAKE2B f5d592cadf1eb9a24b6d6fb3c68c1ead385a350e4bfc97eee775f1921c7bf47f8790d1eea803d69cde8e381d7aa0ae4c53aebeda464c32cdd7a6558a46a9c8e7 SHA512 e227673216b67cf0e5d0abacc305a3b2a30844a6fe31aab18e37643f27c0fce7d3628366732f1518784d095eb33c1bb60b4eb00024d9ccc662deca2962db5324
DIST git-manpages-2.16.3.tar.xz 417152 BLAKE2B 2719a9a603dc49db1a61a2cec42427bdcdc96fab9d21d16c5a8c70d7dba271a1e5b29f4f83f32c525c4866e3497352017af3777a769893c9543e65d625972375 SHA512 b34a3658412a144fed6f818acc05c0b4be2453ae63f9430dcd53cda750f737bd3da50390bd3f4266e69befa521eddd222985fd531acca1ebd4ca62c6c5b2a85c DIST git-htmldocs-2.18.1.tar.xz 1201604 BLAKE2B ae33ac1ec8d2c95f95dbc5965d191f093628633c047c7d52371b7a3142807a4b878be5abcd13a934a453a5b35abb4a7e0ea49823e98c4a682040afc8d7c0817d SHA512 5310a846091bfa66609ce896bdce163bd84f40c14400a53eab662f0c28037b98fef4a8766a716694a5bf9549793a85b57cb665194dff5612277c6603452ea512
DIST git-htmldocs-2.19.0.tar.xz 1221804 BLAKE2B c3c1e91b05bb5fc777f97973941c97b8c093a94d4dc308527bc6bea7b6cc787bb939d4a5a978a69f1476da8e334f17393bf56a8de64b7e5bd88544d32f858f40 SHA512 61c6c1d64affa2f910c0c01a14f19f49ef496e1a09c223f7fb454031a6388dcd96c69c362e0da167a2e4bf1347d4c30e55d9c476076f1ab8e278f9af07053745
DIST git-htmldocs-2.19.1.tar.xz 1222052 BLAKE2B 6d63364e0c5c700011ab0b7bc9c207560bc89e6d58e5f8025f30a188b7c90fa1ca58822e0ee129ff531c0702fc0a64e1612b8ff7b41102e5db21eadd0fd01ab9 SHA512 40417e80b291a935be78f143f070c68a9a865b6825f85cddd57cf926c25649630dd6612e7e52edb3ab4d1433aca31d38e3b9c95ff5d52827452d03c96e50e344
DIST git-manpages-2.16.4.tar.xz 417136 BLAKE2B 9a75913dae62fa2eb31cf48e77e266aa8d91c67b8a753c1740283b1d626dea1e9aa8d7cea06d9b97887f801b4d1f1b927014851105cefd3241ca7ab7330bfc8b SHA512 8029e9fac1eca542e809da1247f4eec3a2c81c0eb12d03aa816dcf120677011d3e409b06c28c8e7dbf41cbbcca873ec93846dc317bc73e57f4d4701ce7abf73d DIST git-manpages-2.16.4.tar.xz 417136 BLAKE2B 9a75913dae62fa2eb31cf48e77e266aa8d91c67b8a753c1740283b1d626dea1e9aa8d7cea06d9b97887f801b4d1f1b927014851105cefd3241ca7ab7330bfc8b SHA512 8029e9fac1eca542e809da1247f4eec3a2c81c0eb12d03aa816dcf120677011d3e409b06c28c8e7dbf41cbbcca873ec93846dc317bc73e57f4d4701ce7abf73d
DIST git-manpages-2.17.1.tar.xz 419400 BLAKE2B af8cef1ac43c6b5ee073c7e18c161ba3ebe0669e474833211c95e72b33524050c30ca133ada98e07c8b481ffc4a5cbce1e7d68427b7aeb9bb80534c2ef3623f0 SHA512 fbdd4ef99419d244bc7c03b10cf09e92d1f0894879fe159ee1f53262daebdc7fe72d6c2bbe9e21fe354f8afb26fa06b35788e54b0c078b686706b511bf7c33ee DIST git-manpages-2.16.5.tar.xz 417140 BLAKE2B f7b3255fe0ac7ea82273e0718d96e045854b7d3c7ad100befac47cd005139415e56b8e0dd85293bca26f2e1ff12f729c46bfd27ede5ecdda08a1533ed43a8b2f SHA512 38ec66e43055f7121bace4655350e9b617b5586271c4ae73d15966e52e56ac38bec2f5f7f128410d004a2a0db3db9954fcfec1d78eb49579a74a46b404b67396
DIST git-manpages-2.18.0.tar.xz 425516 BLAKE2B ff979aa0c99716da279cd4001d5907cec95e93ac93f1f2dc5dd79d456a185e0d8610a121b08b07c3c886132e94334114932881d78c7307ff287c256f993938e5 SHA512 8ae353083288e58752e6e6ff505cde6f4fa0be20465443c0517a87af28867d748eb29fc9d3dcb805b29c4e422cf4eae124b7fec5c339888ab4ebaff6360ada15
DIST git-manpages-2.18.1.tar.xz 425568 BLAKE2B fc0f8aee3d80cba0f84c4ff4cfa342ea3c1ae155f3434b6d1771e03bb14956d5ffd78a5cadfee378534f6cf85265c37eeb1be27eb7801ae798cede249640c478 SHA512 6e6e663d985ef267d556539a43c192138b31dbbc80ffaa4331b8494f6e3e74b5cd4d958c2ae963143946eaa99bfce485ee3726b510b10eaab3599b5284b5fbc1
DIST git-manpages-2.19.0.tar.xz 431832 BLAKE2B b1493e88b3836cfdbd4f709058f7b287764df52237f2dee054668ce5cd9a547553fb36f2f474debd9bc2a511e73a9967307d8a3d174651d261ddd4176a8ec766 SHA512 463cacfc58dc16d69dc9e374fb840cd2859d69e2a74575437be72159e05cc85ad6c9e89dfe2c20963fce962b9add4ad9694e84ab5792b2c30034f68d52648117
DIST git-manpages-2.19.1.tar.xz 431852 BLAKE2B e15be2e1680a28c3c57e7b6e022173ef4b006cf21b5464a32f7f7668ea2b8af2ac7ff7466d98ab627320895b92583840159e2fca613be95817656def2654edaa SHA512 1b42c39e39653906b44fbca65991da04493f08479e2162da5f593bee68dbfd3f3b8180f5a2721f1971e3218b0dc842a8a34918fc7724c032597f4fe4b2f506dc

View File

@ -0,0 +1,460 @@
From 7b0d0d066a5f869f86f2be125d63ae98c1451feb Mon Sep 17 00:00:00 2001
From: Robin Johnson <robbat2@gentoo.org>
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 <polynomial-c@gentoo.org>
---
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 <<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 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

View File

@ -45,7 +45,7 @@ if [[ ${PV} != *9999 ]]; then
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
)" )"
[[ "${PV}" = *_rc* ]] || \ [[ "${PV}" = *_rc* ]] || \
KEYWORDS="alpha amd64 ~arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi fi
LICENSE="GPL-2" LICENSE="GPL-2"
@ -682,9 +682,9 @@ showpkgdeps() {
pkg_postinst() { pkg_postinst() {
use emacs && elisp-site-regen use emacs && elisp-site-regen
einfo "Please read /usr/share/bash-completion/git for Git bash command completion" elog "Please read /usr/share/bash-completion/git for Git bash command completion"
einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt" elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
einfo "Note that the prompt bash code is now in that separate script" elog "Note that the prompt bash code is now in that separate script"
elog "These additional scripts need some dependencies:" elog "These additional scripts need some dependencies:"
echo echo
showpkgdeps git-quiltimport "dev-util/quilt" showpkgdeps git-quiltimport "dev-util/quilt"

View File

@ -45,7 +45,7 @@ if [[ ${PV} != *9999 ]]; then
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
)" )"
[[ "${PV}" = *_rc* ]] || \ [[ "${PV}" = *_rc* ]] || \
KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi fi
LICENSE="GPL-2" LICENSE="GPL-2"
@ -682,9 +682,9 @@ showpkgdeps() {
pkg_postinst() { pkg_postinst() {
use emacs && elisp-site-regen use emacs && elisp-site-regen
einfo "Please read /usr/share/bash-completion/git for Git bash command completion" elog "Please read /usr/share/bash-completion/git for Git bash command completion"
einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt" elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
einfo "Note that the prompt bash code is now in that separate script" elog "Note that the prompt bash code is now in that separate script"
elog "These additional scripts need some dependencies:" elog "These additional scripts need some dependencies:"
echo echo
showpkgdeps git-quiltimport "dev-util/quilt" showpkgdeps git-quiltimport "dev-util/quilt"

View File

@ -1,4 +1,4 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=6
@ -45,7 +45,7 @@ if [[ ${PV} != *9999 ]]; then
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
)" )"
[[ "${PV}" = *_rc* ]] || \ [[ "${PV}" = *_rc* ]] || \
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~amd64-fbsd" KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi fi
LICENSE="GPL-2" LICENSE="GPL-2"
@ -137,7 +137,7 @@ REQUIRED_USE="
PATCHES=( PATCHES=(
# bug #350330 - automagic CVS when we don't want it is bad. # bug #350330 - automagic CVS when we don't want it is bad.
"${FILESDIR}"/git-2.17.0_rc1-optional-cvs.patch "${FILESDIR}"/git-2.18.0_rc1-optional-cvs.patch
"${FILESDIR}"/git-2.2.0-svn-fe-linking.patch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
@ -698,9 +698,9 @@ showpkgdeps() {
pkg_postinst() { pkg_postinst() {
use emacs && elisp-site-regen use emacs && elisp-site-regen
einfo "Please read /usr/share/bash-completion/git for Git bash command completion" elog "Please read /usr/share/bash-completion/git for Git bash command completion"
einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt" elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
einfo "Note that the prompt bash code is now in that separate script" elog "Note that the prompt bash code is now in that separate script"
elog "These additional scripts need some dependencies:" elog "These additional scripts need some dependencies:"
echo echo
showpkgdeps git-quiltimport "dev-util/quilt" showpkgdeps git-quiltimport "dev-util/quilt"

View File

@ -1,4 +1,4 @@
# Copyright 1999-2018 Gentoo Foundation # Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=6 EAPI=6
@ -45,7 +45,7 @@ if [[ ${PV} != *9999 ]]; then
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
)" )"
[[ "${PV}" = *_rc* ]] || \ [[ "${PV}" = *_rc* ]] || \
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="alpha amd64 ~arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi fi
LICENSE="GPL-2" LICENSE="GPL-2"
@ -73,18 +73,31 @@ CDEPEND="
RDEPEND="${CDEPEND} RDEPEND="${CDEPEND}
gpg? ( app-crypt/gnupg ) gpg? ( app-crypt/gnupg )
mediawiki? ( perl? (
dev-perl/DateTime-Format-ISO8601 dev-perl/Error
dev-perl/HTML-Tree dev-perl/MailTools
dev-perl/MediaWiki-API dev-perl/Net-SMTP-SSL
dev-perl/Authen-SASL
cgi? (
dev-perl/CGI
highlight? ( app-text/highlight )
)
cvs? (
>=dev-vcs/cvsps-2.1:0
dev-perl/DBI
dev-perl/DBD-SQLite
)
mediawiki? (
dev-perl/DateTime-Format-ISO8601
dev-perl/HTML-Tree
dev-perl/MediaWiki-API
)
subversion? (
dev-vcs/subversion[-dso,perl]
dev-perl/libwww-perl
dev-perl/TermReadKey
)
) )
perl? ( dev-perl/Error
dev-perl/Net-SMTP-SSL
dev-perl/Authen-SASL
cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
)
python? ( ${PYTHON_DEPS} ) python? ( ${PYTHON_DEPS} )
" "
@ -108,7 +121,7 @@ if [[ ${PV} == *9999 ]]; then
app-text/asciidoc" app-text/asciidoc"
fi fi
SITEFILE=50${PN}-gentoo.el SITEFILE="50${PN}-gentoo.el"
S="${WORKDIR}/${MY_P}" S="${WORKDIR}/${MY_P}"
REQUIRED_USE=" REQUIRED_USE="
@ -124,11 +137,7 @@ REQUIRED_USE="
PATCHES=( PATCHES=(
# bug #350330 - automagic CVS when we don't want it is bad. # bug #350330 - automagic CVS when we don't want it is bad.
"${FILESDIR}"/git-2.12.0-optional-cvs.patch "${FILESDIR}"/git-2.18.0_rc1-optional-cvs.patch
# install mediawiki perl modules also in vendor_dir
# hack, needs better upstream solution
"${FILESDIR}"/git-1.8.5-mw-vendor.patch
"${FILESDIR}"/git-2.2.0-svn-fe-linking.patch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
@ -150,111 +159,111 @@ pkg_setup() {
# This is needed because for some obscure reasons future calls to make don't # This is needed because for some obscure reasons future calls to make don't
# pick up these exports if we export them in src_unpack() # pick up these exports if we export them in src_unpack()
exportmakeopts() { exportmakeopts() {
local myopts local myopts=(
ASCIIDOC_NO_ROFF=YesPlease
$(usex cvs '' NO_CVS=YesPlease)
$(usex elibc_musl NO_REGEX=YesPlease '')
$(usex iconv '' NO_ICONV=YesPlease)
$(usex nls '' NO_GETTEXT=YesPlease)
$(usex perl 'INSTALLDIRS=vendor NO_PERL_CPAN_FALLBACKS=YesPlease' NO_PERL=YesPlease)
$(usex python '' NO_PYTHON=YesPlease)
$(usex subversion '' NO_SVN_TESTS=YesPlease)
$(usex threads THREADED_DELTA_SEARCH=YesPlease NO_PTHREAD=YesPlease)
$(usex tk '' NO_TCLTK=YesPlease)
)
if use blksha1 ; then if use blksha1 ; then
myopts+=" BLK_SHA1=YesPlease" myopts+=( BLK_SHA1=YesPlease )
elif use ppcsha1 ; then elif use ppcsha1 ; then
myopts+=" PPC_SHA1=YesPlease" myopts+=( PPC_SHA1=YesPlease )
fi fi
if use curl ; then if use curl ; then
use webdav || myopts+=" NO_EXPAT=YesPlease" use webdav || myopts+=( NO_EXPAT=YesPlease )
else else
myopts+=" NO_CURL=YesPlease" myopts+=( NO_CURL=YesPlease )
fi fi
# broken assumptions, because of static build system ... # broken assumptions, because of static build system ...
myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease" myopts+=(
myopts+=" INSTALL=install TAR=tar" NO_FINK=YesPlease
myopts+=" SHELL_PATH=${EPREFIX}/bin/sh" NO_DARWIN_PORTS=YesPlease
myopts+=" SANE_TOOL_PATH=" INSTALL=install
myopts+=" OLD_ICONV=" TAR=tar
myopts+=" NO_EXTERNAL_GREP=" SHELL_PATH="${EPREFIX}/bin/sh"
SANE_TOOL_PATH=
OLD_ICONV=
NO_EXTERNAL_GREP=
)
# For svn-fe # For svn-fe
extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')" extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
# can't define this to null, since the entire makefile depends on it # can't define this to null, since the entire makefile depends on it
sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile || die
use iconv \
|| myopts+=" NO_ICONV=YesPlease"
use nls \
|| myopts+=" NO_GETTEXT=YesPlease"
use tk \
|| myopts+=" NO_TCLTK=YesPlease"
if use pcre; then if use pcre; then
if use pcre-jit; then if use pcre-jit; then
myopts+=" USE_LIBPCRE2=YesPlease" myopts+=( USE_LIBPCRE2=YesPlease )
extlibs+=" -lpcre2-8" extlibs+=" -lpcre2-8"
else else
myopts+=" USE_LIBPCRE1=YesPlease" myopts+=(
myopts+=" NO_LIBPCRE1_JIT=YesPlease" USE_LIBPCRE1=YesPlease
NO_LIBPCRE1_JIT=YesPlease
)
extlibs+=" -lpcre" extlibs+=" -lpcre"
fi fi
fi fi
use perl \
&& myopts+=" INSTALLDIRS=vendor" \
|| myopts+=" NO_PERL=YesPlease"
use python \
|| myopts+=" NO_PYTHON=YesPlease"
use subversion \
|| myopts+=" NO_SVN_TESTS=YesPlease"
use threads \
&& myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
|| myopts+=" NO_PTHREADS=YesPlease"
use cvs \
|| myopts+=" NO_CVS=YesPlease"
use elibc_musl \
&& myopts+=" NO_REGEX=YesPlease"
# Disabled until ~m68k-mint can be keyworded again # Disabled until ~m68k-mint can be keyworded again
# if [[ ${CHOST} == *-mint* ]] ; then # if [[ ${CHOST} == *-mint* ]] ; then
# myopts+=" NO_MMAP=YesPlease" # myopts+=(
# myopts+=" NO_IPV6=YesPlease" # NO_MMAP=YesPlease
# myopts+=" NO_STRLCPY=YesPlease" # NO_IPV6=YesPlease
# myopts+=" NO_MEMMEM=YesPlease" # NO_STRLCPY=YesPlease
# myopts+=" NO_MKDTEMP=YesPlease" # NO_MEMMEM=YesPlease
# myopts+=" NO_MKSTEMPS=YesPlease" # NO_MKDTEMP=YesPlease
# NO_MKSTEMPS=YesPlease
# )
# fi # fi
if [[ ${CHOST} == ia64-*-hpux* ]]; then if [[ ${CHOST} == ia64-*-hpux* ]]; then
myopts+=" NO_NSEC=YesPlease" myopts+=( NO_NSEC=YesPlease )
fi fi
if [[ ${CHOST} == *-*-aix* ]]; then if [[ ${CHOST} == *-*-aix* ]]; then
myopts+=" NO_FNMATCH_CASEFOLD=YesPlease" myopts+=( NO_FNMATCH_CASEFOLD=YesPlease )
fi fi
if [[ ${CHOST} == *-solaris* ]]; then if [[ ${CHOST} == *-solaris* ]]; then
myopts+=" NEEDS_LIBICONV=YesPlease" myopts+=(
myopts+=" HAVE_CLOCK_MONOTONIC=1" NEEDS_LIBICONV=YesPlease
HAVE_CLOCK_MONOTONIC=1
)
grep -q getdelim "${ROOT}"/usr/include/stdio.h && \ grep -q getdelim "${ROOT}"/usr/include/stdio.h && \
myopts+=" HAVE_GETDELIM=1" myopts+=( HAVE_GETDELIM=1 )
fi fi
has_version '>=app-text/asciidoc-8.0' \ has_version '>=app-text/asciidoc-8.0' \
&& myopts+=" ASCIIDOC8=YesPlease" && myopts+=( ASCIIDOC8=YesPlease )
myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
# Bug 290465: # Bug 290465:
# builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim' # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
[[ "${CHOST}" == *-uclibc* ]] && \ [[ "${CHOST}" == *-uclibc* ]] && \
myopts+=" NO_NSEC=YesPlease" myopts+=( NO_NSEC=YesPlease )
export MY_MAKEOPTS="${myopts}" export MY_MAKEOPTS="${myopts[@]}"
export EXTLIBS="${extlibs}" export EXTLIBS="${extlibs}"
} }
src_unpack() { src_unpack() {
if [[ ${PV} != *9999 ]]; then if [[ ${PV} != *9999 ]]; then
unpack ${MY_P}.tar.${SRC_URI_SUFFIX} unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
cd "${S}" cd "${S}" || die
unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX} unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
use doc && \ if use doc ; then
cd "${S}"/Documentation && \ pushd "${S}"/Documentation &>/dev/null || die
unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
cd "${S}" popd &>/dev/null || die
fi
else else
git-r3_src_unpack git-r3_src_unpack
cd "${S}"
#cp "${FILESDIR}"/GIT-VERSION-GEN . #cp "${FILESDIR}"/GIT-VERSION-GEN .
fi fi
@ -280,41 +289,37 @@ src_prepare() {
-e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \ -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
-e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \ -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
-e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \ -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
Makefile contrib/svn-fe/Makefile || die "sed failed" Makefile contrib/svn-fe/Makefile || die
# Never install the private copy of Error.pm (bug #296310)
sed -i \
-e '/private-Error.pm/s,^,#,' \
perl/Makefile.PL
# Fix docbook2texi command # Fix docbook2texi command
sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
Documentation/Makefile || die "sed failed" Documentation/Makefile || die
# Fix git-subtree missing DESTDIR # Fix git-subtree missing DESTDIR
sed -i \ sed -i \
-e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \ -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
-e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \ -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
contrib/subtree/Makefile contrib/subtree/Makefile || die
} }
git_emake() { git_emake() {
# bug #320647: PYTHON_PATH # bug #320647: PYTHON_PATH
PYTHON_PATH="" local PYTHON_PATH=""
use python && PYTHON_PATH="${PYTHON}" use python && PYTHON_PATH="${PYTHON}"
emake ${MY_MAKEOPTS} \ emake ${MY_MAKEOPTS} \
DESTDIR="${D}" \
OPTCFLAGS="${CFLAGS}" \
OPTLDFLAGS="${LDFLAGS}" \
OPTCC="$(tc-getCC)" \
OPTAR="$(tc-getAR)" \
prefix="${EPREFIX}"/usr \ prefix="${EPREFIX}"/usr \
htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \ htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
perllibdir="$(perl_get_raw_vendorlib)" \
sysconfdir="${EPREFIX}"/etc \ sysconfdir="${EPREFIX}"/etc \
PYTHON_PATH="${PYTHON_PATH}" \ DESTDIR="${D}" \
GIT_TEST_OPTS="--no-color" \
OPTAR="$(tc-getAR)" \
OPTCC="$(tc-getCC)" \
OPTCFLAGS="${CFLAGS}" \
OPTLDFLAGS="${LDFLAGS}" \
PERL_PATH="${EPREFIX}/usr/bin/perl" \ PERL_PATH="${EPREFIX}/usr/bin/perl" \
PERL_MM_OPT="" \ PERL_MM_OPT="" \
GIT_TEST_OPTS="--no-color" \ PYTHON_PATH="${PYTHON_PATH}" \
V=1 \ V=1 \
"$@" "$@"
} }
@ -324,10 +329,6 @@ src_configure() {
} }
src_compile() { src_compile() {
if use perl ; then
git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
git_emake perl/perl.mak || die "emake perl/perl.mak failed"
fi
git_emake || die "emake failed" git_emake || die "emake failed"
if use emacs ; then if use emacs ; then
@ -341,12 +342,13 @@ src_compile() {
fi fi
if [[ ${CHOST} == *-darwin* ]]; then if [[ ${CHOST} == *-darwin* ]]; then
cd "${S}"/contrib/credential/osxkeychain || die pushd contrib/credential/osxkeychain &>/dev/null || die
git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \ git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
|| die "emake credential-osxkeychain" || die "emake credential-osxkeychain"
popd &>/dev/null || die
fi fi
cd "${S}"/Documentation pushd Documentation &>/dev/null || die
if [[ ${PV} == *9999 ]] ; then if [[ ${PV} == *9999 ]] ; then
git_emake man \ git_emake man \
|| die "emake man failed" || die "emake man failed"
@ -360,9 +362,10 @@ src_compile() {
|| die "emake info html failed" || die "emake info html failed"
fi fi
fi fi
popd &>/dev/null || die
if use subversion ; then if use subversion ; then
cd "${S}"/contrib/svn-fe pushd contrib/svn-fe &>/dev/null || die
# by defining EXTLIBS we override the detection for libintl and # by defining EXTLIBS we override the detection for libintl and
# libiconv, bug #516168 # libiconv, bug #516168
local nlsiconv= local nlsiconv=
@ -372,24 +375,29 @@ src_compile() {
if use doc ; then if use doc ; then
git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed" git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
fi fi
cd "${S}" popd &>/dev/null || die
fi fi
if use gnome-keyring ; then if use gnome-keyring ; then
cd "${S}"/contrib/credential/libsecret pushd contrib/credential/libsecret &>/dev/null || die
git_emake || die "emake git-credential-libsecret failed" git_emake || die "emake git-credential-libsecret failed"
popd &>/dev/null || die
fi fi
cd "${S}"/contrib/subtree || die pushd contrib/subtree &>/dev/null || die
git_emake git_emake
use doc && git_emake doc use doc && git_emake doc
popd &>/dev/null || die
cd "${S}"/contrib/diff-highlight || die pushd contrib/diff-highlight &>/dev/null || die
git_emake git_emake
popd &>/dev/null || die
if use mediawiki ; then if use mediawiki ; then
cd "${S}"/contrib/mw-to-git pushd contrib/mw-to-git &>/dev/null || die
git_emake git_emake
popd &>/dev/null || die
fi fi
} }
@ -444,19 +452,19 @@ src_install() {
newexe contrib/git-resurrect.sh git-resurrect newexe contrib/git-resurrect.sh git-resurrect
# git-subtree # git-subtree
cd "${S}"/contrib/subtree pushd contrib/subtree &>/dev/null || die
git_emake install || die "Failed to emake install git-subtree" git_emake install || die "Failed to emake install git-subtree"
if use doc ; then if use doc ; then
git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree" git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
fi fi
newdoc README README.git-subtree newdoc README README.git-subtree
dodoc git-subtree.txt dodoc git-subtree.txt
cd "${S}" popd &>/dev/null || die
if use mediawiki ; then if use mediawiki ; then
cd "${S}"/contrib/mw-to-git pushd contrib/mw-to-git &>/dev/null || die
git_emake install git_emake install
cd "${S}" popd &>/dev/null || die
fi fi
# diff-highlight # diff-highlight
@ -474,12 +482,13 @@ src_install() {
dodoc contrib/contacts/git-contacts.txt dodoc contrib/contacts/git-contacts.txt
if use gnome-keyring ; then if use gnome-keyring ; then
cd "${S}"/contrib/credential/libsecret pushd contrib/credential/libsecret &>/dev/null || die
dobin git-credential-libsecret dobin git-credential-libsecret
popd &>/dev/null || die
fi fi
if use subversion ; then if use subversion ; then
cd "${S}"/contrib/svn-fe pushd contrib/svn-fe &>/dev/null || die
dobin svn-fe dobin svn-fe
dodoc svn-fe.txt dodoc svn-fe.txt
if use doc ; then if use doc ; then
@ -487,7 +496,7 @@ src_install() {
docinto html docinto html
dodoc svn-fe.html dodoc svn-fe.html
fi fi
cd "${S}" popd &>/dev/null || die
fi fi
dodir /usr/share/${PN}/contrib dodir /usr/share/${PN}/contrib
@ -518,7 +527,7 @@ src_install() {
for i in "${contrib_objects[@]}" ; do for i in "${contrib_objects[@]}" ; do
cp -rf \ cp -rf \
"${S}"/contrib/${i} \ "${S}"/contrib/${i} \
"${ED}"/usr/share/${PN}/contrib \ "${ED%/}"/usr/share/${PN}/contrib \
|| die "Failed contrib ${i}" || die "Failed contrib ${i}"
done done
@ -534,19 +543,19 @@ src_install() {
newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
newdoc "${S}"/gitweb/README README.gitweb newdoc "${S}"/gitweb/README README.gitweb
for d in "${ED}"/usr/lib{64,}/perl5/ ; do for d in "${ED%/}"/usr/lib{,64}/perl5/ ; do
if test -d "$d" ; then find "$d" \ if test -d "$d" ; then find "$d" \
-name .packlist \ -name .packlist \
-delete || die -delete || die
fi fi
done done
else else
rm -rf "${ED}"/usr/share/gitweb rm -rf "${ED%/}"/usr/share/gitweb
fi fi
if ! use subversion ; then if ! use subversion ; then
rm -f "${ED}"/usr/libexec/git-core/git-svn \ rm -f "${ED%/}"/usr/libexec/git-core/git-svn \
"${ED}"/usr/share/man/man1/git-svn.1* "${ED%/}"/usr/share/man/man1/git-svn.1*
fi fi
if use xinetd ; then if use xinetd ; then
@ -567,111 +576,118 @@ src_install() {
# we could remove sources in src_prepare, but install does not # we could remove sources in src_prepare, but install does not
# handle missing locale dir well # handle missing locale dir well
rm_loc() { rm_loc() {
if [[ -e "${ED}/usr/share/locale/${1}" ]]; then if [[ -e "${ED%/}/usr/share/locale/${1}" ]]; then
rm -r "${ED}/usr/share/locale/${1}" || die rm -r "${ED%/}/usr/share/locale/${1}" || die
fi fi
} }
l10n_for_each_disabled_locale_do rm_loc l10n_for_each_disabled_locale_do rm_loc
} }
src_test() { src_test() {
local disabled="" local disabled=()
local tests_cvs="t9200-git-cvsexportcommit.sh \ local tests_cvs=(
t9400-git-cvsserver-server.sh \ t9200-git-cvsexportcommit.sh
t9401-git-cvsserver-crlf.sh \ t9400-git-cvsserver-server.sh
t9402-git-cvsserver-refs.sh \ t9401-git-cvsserver-crlf.sh
t9600-cvsimport.sh \ t9402-git-cvsserver-refs.sh
t9601-cvsimport-vendor-branch.sh \ t9600-cvsimport.sh
t9602-cvsimport-branches-tags.sh \ t9601-cvsimport-vendor-branch.sh
t9603-cvsimport-patchsets.sh \ t9602-cvsimport-branches-tags.sh
t9604-cvsimport-timestamps.sh" t9603-cvsimport-patchsets.sh
local tests_perl="t3701-add-interactive.sh \ t9604-cvsimport-timestamps.sh
t5502-quickfetch.sh \ )
t5512-ls-remote.sh \ local tests_perl=(
t5520-pull.sh \ t3701-add-interactive.sh
t7106-reset-unborn-branch.sh \ t5502-quickfetch.sh
t7501-commit.sh" t5512-ls-remote.sh
t5520-pull.sh
t7106-reset-unborn-branch.sh
t7501-commit.sh
)
# Bug #225601 - t0004 is not suitable for root perm # Bug #225601 - t0004 is not suitable for root perm
# Bug #219839 - t1004 is not suitable for root perm # Bug #219839 - t1004 is not suitable for root perm
# t0001-init.sh - check for init notices EPERM* fails # t0001-init.sh - check for init notices EPERM* fails
local tests_nonroot="t0001-init.sh \ local tests_nonroot=(
t0004-unwritable.sh \ t0001-init.sh
t0070-fundamental.sh \ t0004-unwritable.sh
t1004-read-tree-m-u-wf.sh \ t0070-fundamental.sh
t3700-add.sh \ t1004-read-tree-m-u-wf.sh
t7300-clean.sh" t3700-add.sh
t7300-clean.sh
)
# t9100 still fails with symlinks in SVN 1.7 # t9100 still fails with symlinks in SVN 1.7
local test_svn="t9100-git-svn-basic.sh" local test_svn=( t9100-git-svn-basic.sh )
# Unzip is used only for the testcase code, not by any normal parts of Git. # Unzip is used only for the testcase code, not by any normal parts of Git.
if ! has_version app-arch/unzip ; then if ! has_version app-arch/unzip ; then
einfo "Disabling tar-tree tests" einfo "Disabling tar-tree tests"
disabled+=" t5000-tar-tree.sh" disabled+=( t5000-tar-tree.sh )
fi fi
cvs=0 local cvs=0
use cvs && let cvs=$cvs+1 use cvs && let cvs=${cvs}+1
if [[ ${EUID} -eq 0 ]]; then if [[ ${EUID} -eq 0 ]]; then
if [[ $cvs -eq 1 ]]; then if [[ ${cvs} -eq 1 ]]; then
ewarn "Skipping CVS tests because CVS does not work as root!" ewarn "Skipping CVS tests because CVS does not work as root!"
ewarn "You should retest with FEATURES=userpriv!" ewarn "You should retest with FEATURES=userpriv!"
disabled+=" ${tests_cvs}" disabled+=( ${tests_cvs[@]} )
fi fi
einfo "Skipping other tests that require being non-root" einfo "Skipping other tests that require being non-root"
disabled+=" ${tests_nonroot}" disabled+=( ${tests_nonroot[@]} )
else else
[[ $cvs -gt 0 ]] && \ [[ ${cvs} -gt 0 ]] && \
has_version dev-vcs/cvs && \ has_version dev-vcs/cvs && \
let cvs=$cvs+1 let cvs=${cvs}+1
[[ $cvs -gt 1 ]] && \ [[ ${cvs} -gt 1 ]] && \
has_version "dev-vcs/cvs[server]" && \ has_version "dev-vcs/cvs[server]" && \
let cvs=$cvs+1 let cvs=${cvs}+1
if [[ $cvs -lt 3 ]]; then if [[ ${cvs} -lt 3 ]]; then
einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])" einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
disabled+=" ${tests_cvs}" disabled+=( ${tests_cvs[@]} )
fi fi
fi fi
if ! use perl ; then if ! use perl ; then
einfo "Disabling tests that need Perl" einfo "Disabling tests that need Perl"
disabled+=" ${tests_perl}" disabled+=( ${tests_perl[@]} )
fi fi
einfo "Disabling tests that fail with SVN 1.7" einfo "Disabling tests that fail with SVN 1.7"
disabled+=" ${test_svn}" disabled+=( ${test_svn[@]} )
# Reset all previously disabled tests # Reset all previously disabled tests
cd "${S}/t" pushd t &>/dev/null || die
local i
for i in *.sh.DISABLED ; do for i in *.sh.DISABLED ; do
[[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}" [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
done done
einfo "Disabled tests:" einfo "Disabled tests:"
for i in ${disabled} ; do for i in ${disabled[@]} ; do
[[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i" [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled ${i}"
done done
# Avoid the test system removing the results because we want them ourselves # Avoid the test system removing the results because we want them ourselves
sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \ sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
-i "${S}"/t/Makefile -i Makefile || die
# Clean old results first, must always run # Clean old results first, must always run
cd "${S}/t"
nonfatal git_emake clean nonfatal git_emake clean
popd &>/dev/null || die
# Now run the tests, keep going if we hit an error, and don't terminate on # Now run the tests, keep going if we hit an error, and don't terminate on
# failure # failure
cd "${S}" local rc
einfo "Start test run" einfo "Start test run"
#MAKEOPTS=-j1 #MAKEOPTS=-j1
nonfatal git_emake --keep-going test nonfatal git_emake --keep-going test
rc=$? rc=$?
# Display nice results, now print the results # Display nice results, now print the results
cd "${S}/t" pushd t &>/dev/null || die
nonfatal git_emake aggregate-results nonfatal git_emake aggregate-results
# And bail if there was a problem # And bail if there was a problem
[ $rc -eq 0 ] || die "tests failed. Please file a bug." [ ${rc} -eq 0 ] || die "tests failed. Please file a bug."
} }
showpkgdeps() { showpkgdeps() {
@ -682,9 +698,9 @@ showpkgdeps() {
pkg_postinst() { pkg_postinst() {
use emacs && elisp-site-regen use emacs && elisp-site-regen
einfo "Please read /usr/share/bash-completion/git for Git bash command completion" elog "Please read /usr/share/bash-completion/git for Git bash command completion"
einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt" elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
einfo "Note that the prompt bash code is now in that separate script" elog "Note that the prompt bash code is now in that separate script"
elog "These additional scripts need some dependencies:" elog "These additional scripts need some dependencies:"
echo echo
showpkgdeps git-quiltimport "dev-util/quilt" showpkgdeps git-quiltimport "dev-util/quilt"

View File

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

View File

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

View File

@ -45,7 +45,7 @@ if [[ ${PV} != *9999 ]]; then
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
)" )"
[[ "${PV}" = *_rc* ]] || \ [[ "${PV}" = *_rc* ]] || \
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi fi
LICENSE="GPL-2" LICENSE="GPL-2"
@ -137,12 +137,9 @@ REQUIRED_USE="
PATCHES=( PATCHES=(
# bug #350330 - automagic CVS when we don't want it is bad. # bug #350330 - automagic CVS when we don't want it is bad.
"${FILESDIR}"/git-2.17.0_rc1-optional-cvs.patch "${FILESDIR}"/git-2.18.0_rc1-optional-cvs.patch
"${FILESDIR}"/git-2.2.0-svn-fe-linking.patch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
# Bug #493306, where FreeBSD 10.x merged libiconv into its libc.
"${FILESDIR}"/git-2.5.1-freebsd-10.x-no-iconv.patch
) )
pkg_setup() { pkg_setup() {
@ -294,12 +291,6 @@ src_prepare() {
# Fix docbook2texi command # Fix docbook2texi command
sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
Documentation/Makefile || die Documentation/Makefile || die
# Fix git-subtree missing DESTDIR
sed -i \
-e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
-e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
contrib/subtree/Makefile || die
} }
git_emake() { git_emake() {
@ -698,9 +689,9 @@ showpkgdeps() {
pkg_postinst() { pkg_postinst() {
use emacs && elisp-site-regen use emacs && elisp-site-regen
einfo "Please read /usr/share/bash-completion/git for Git bash command completion" elog "Please read /usr/share/bash-completion/git for Git bash command completion"
einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt" elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
einfo "Note that the prompt bash code is now in that separate script" elog "Note that the prompt bash code is now in that separate script"
elog "These additional scripts need some dependencies:" elog "These additional scripts need some dependencies:"
echo echo
showpkgdeps git-quiltimport "dev-util/quilt" showpkgdeps git-quiltimport "dev-util/quilt"

View File

@ -45,7 +45,7 @@ if [[ ${PV} != *9999 ]]; then
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
)" )"
[[ "${PV}" = *_rc* ]] || \ [[ "${PV}" = *_rc* ]] || \
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi fi
LICENSE="GPL-2" LICENSE="GPL-2"
@ -137,12 +137,9 @@ REQUIRED_USE="
PATCHES=( PATCHES=(
# bug #350330 - automagic CVS when we don't want it is bad. # bug #350330 - automagic CVS when we don't want it is bad.
"${FILESDIR}"/git-2.17.0_rc1-optional-cvs.patch "${FILESDIR}"/git-2.18.0_rc1-optional-cvs.patch
"${FILESDIR}"/git-2.2.0-svn-fe-linking.patch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
# Bug #493306, where FreeBSD 10.x merged libiconv into its libc.
"${FILESDIR}"/git-2.5.1-freebsd-10.x-no-iconv.patch
) )
pkg_setup() { pkg_setup() {
@ -294,12 +291,6 @@ src_prepare() {
# Fix docbook2texi command # Fix docbook2texi command
sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
Documentation/Makefile || die Documentation/Makefile || die
# Fix git-subtree missing DESTDIR
sed -i \
-e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
-e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
contrib/subtree/Makefile || die
} }
git_emake() { git_emake() {
@ -698,9 +689,9 @@ showpkgdeps() {
pkg_postinst() { pkg_postinst() {
use emacs && elisp-site-regen use emacs && elisp-site-regen
einfo "Please read /usr/share/bash-completion/git for Git bash command completion" elog "Please read /usr/share/bash-completion/git for Git bash command completion"
einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt" elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
einfo "Note that the prompt bash code is now in that separate script" elog "Note that the prompt bash code is now in that separate script"
elog "These additional scripts need some dependencies:" elog "These additional scripts need some dependencies:"
echo echo
showpkgdeps git-quiltimport "dev-util/quilt" showpkgdeps git-quiltimport "dev-util/quilt"

View File

@ -45,7 +45,7 @@ if [[ ${PV} != *9999 ]]; then
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
)" )"
[[ "${PV}" = *_rc* ]] || \ [[ "${PV}" = *_rc* ]] || \
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi fi
LICENSE="GPL-2" LICENSE="GPL-2"
@ -137,12 +137,9 @@ REQUIRED_USE="
PATCHES=( PATCHES=(
# bug #350330 - automagic CVS when we don't want it is bad. # bug #350330 - automagic CVS when we don't want it is bad.
"${FILESDIR}"/git-2.17.0_rc1-optional-cvs.patch "${FILESDIR}"/git-2.18.0_rc1-optional-cvs.patch
"${FILESDIR}"/git-2.2.0-svn-fe-linking.patch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
# Bug #493306, where FreeBSD 10.x merged libiconv into its libc.
"${FILESDIR}"/git-2.5.1-freebsd-10.x-no-iconv.patch
) )
pkg_setup() { pkg_setup() {
@ -294,12 +291,6 @@ src_prepare() {
# Fix docbook2texi command # Fix docbook2texi command
sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
Documentation/Makefile || die Documentation/Makefile || die
# Fix git-subtree missing DESTDIR
sed -i \
-e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
-e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
contrib/subtree/Makefile || die
} }
git_emake() { git_emake() {
@ -698,9 +689,9 @@ showpkgdeps() {
pkg_postinst() { pkg_postinst() {
use emacs && elisp-site-regen use emacs && elisp-site-regen
einfo "Please read /usr/share/bash-completion/git for Git bash command completion" elog "Please read /usr/share/bash-completion/git for Git bash command completion"
einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt" elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
einfo "Note that the prompt bash code is now in that separate script" elog "Note that the prompt bash code is now in that separate script"
elog "These additional scripts need some dependencies:" elog "These additional scripts need some dependencies:"
echo echo
showpkgdeps git-quiltimport "dev-util/quilt" showpkgdeps git-quiltimport "dev-util/quilt"

View File

@ -45,7 +45,7 @@ if [[ ${PV} != *9999 ]]; then
${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX} ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
)" )"
[[ "${PV}" = *_rc* ]] || \ [[ "${PV}" = *_rc* ]] || \
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi fi
LICENSE="GPL-2" LICENSE="GPL-2"
@ -137,7 +137,7 @@ REQUIRED_USE="
PATCHES=( PATCHES=(
# bug #350330 - automagic CVS when we don't want it is bad. # bug #350330 - automagic CVS when we don't want it is bad.
"${FILESDIR}"/git-2.17.0_rc1-optional-cvs.patch "${FILESDIR}"/git-2.18.0_rc1-optional-cvs.patch
"${FILESDIR}"/git-2.2.0-svn-fe-linking.patch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
@ -294,12 +294,6 @@ src_prepare() {
# Fix docbook2texi command # Fix docbook2texi command
sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \ sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
Documentation/Makefile || die Documentation/Makefile || die
# Fix git-subtree missing DESTDIR
sed -i \
-e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
-e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
contrib/subtree/Makefile || die
} }
git_emake() { git_emake() {
@ -698,9 +692,9 @@ showpkgdeps() {
pkg_postinst() { pkg_postinst() {
use emacs && elisp-site-regen use emacs && elisp-site-regen
einfo "Please read /usr/share/bash-completion/git for Git bash command completion" elog "Please read /usr/share/bash-completion/git for Git bash command completion"
einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt" elog "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
einfo "Note that the prompt bash code is now in that separate script" elog "Note that the prompt bash code is now in that separate script"
elog "These additional scripts need some dependencies:" elog "These additional scripts need some dependencies:"
echo echo
showpkgdeps git-quiltimport "dev-util/quilt" showpkgdeps git-quiltimport "dev-util/quilt"