Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-vcs/git/
Date: Wed, 02 Aug 2017 07:10:14
Message-Id: 1501657767.9f2c6967b73dbc814eb52281950642adc99b517f.polynomial-c@gentoo
1 commit: 9f2c6967b73dbc814eb52281950642adc99b517f
2 Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
3 AuthorDate: Wed Aug 2 07:09:27 2017 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Wed Aug 2 07:09:27 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9f2c6967
7
8 dev-vcs/git: Bump to version 2.13.4
9
10 Package-Manager: Portage-2.3.6, Repoman-2.3.3
11
12 dev-vcs/git/Manifest | 3 +
13 dev-vcs/git/git-2.13.4.ebuild | 680 ++++++++++++++++++++++++++++++++++++++++++
14 2 files changed, 683 insertions(+)
15
16 diff --git a/dev-vcs/git/Manifest b/dev-vcs/git/Manifest
17 index 1a350551d40..1748616c411 100644
18 --- a/dev-vcs/git/Manifest
19 +++ b/dev-vcs/git/Manifest
20 @@ -1,9 +1,12 @@
21 DIST git-2.13.0.tar.xz 4744388 SHA256 4bbf2ab6f2341253a38f95306ec7936833eb1c42572da5c1fa61f0abb2191258 SHA512 709e78ce1a7396c021af5802a89cd4a90802781c4ce4408af50ad8d11a5fc394a108ef24843fb901321e2e0597018111414443ce0d166ca5b1475db503246372 WHIRLPOOL ba5c6b247ea5a92460a90f36920602b2c8134892d8d94291c8a4aac8012d560a5404a2819f33a23b927c7f0435bd928d54265ce182066ccce902e2d85f27e0d8
22 DIST git-2.13.2.tar.xz 4751380 SHA256 0d10ac3751466f81652b62cbda83cc8d8ffd014911462138e039f176e413dde5 SHA512 07d78ab867179db75738863edf119662b28ea0b15416861cc447d8af1d9d61930873ba5d19205cf3f274aeeedc980acd4c3aceb89633f90c92d84a87216aa1c1 WHIRLPOOL db70baa5aa36dd1fb9dee75e0b6cbbc28a18a593bc6fd1f00c8cc542a7fa559c280d7cff55438f2590ebc996837efd8d4ada722dac1aa974abc60526849cc6ba
23 DIST git-2.13.3.tar.xz 4754532 SHA256 91aa23be428f67eb19616f43fa0229d567e9acf4f08fba33eb0b627e4d323e62 SHA512 8a8db4d675c9d8d0e834620c5c7ce7937edd7f4bf1d8a176e1218e5773960e2635c48cb931dfe206b237e2da8371e521acf9c2776847605bea13f8a7304c9f9b WHIRLPOOL 117f84d13f9a6366f5323c136df0ae7aef7d038bb34c392f9852c5e38d2b98535a5ea9e77985aa0b25939eafc4a1441655bd38af007bb832e847ec4c6bcf4c69
24 +DIST git-2.13.4.tar.xz 4755472 SHA256 371a592a52d240a6350d4ec6b63cd8301e1fab6dd03388a339a8c7429305afda SHA512 dbe6c08a6cb4931f0d1c16dabc23595c8e328a397552817ceb29cb1bf38f546e3a6ec9943db06e3adb39b15772f9e79e94c08fb4cd1f1807663602cb132983f5 WHIRLPOOL 449426e629fb722a77bbaf4ca1a11d3712e82e31286f27d67b682cab9e712850e21db5f76beaa201a82c5e9dbf246a6008deeeb20c2b568f0280f8d33731fbcb
25 DIST git-htmldocs-2.13.0.tar.xz 1107480 SHA256 d5ddfb8eedd5a53c0e46e183ed1513dbdd4f5d5e7ef6624040ba0b7381221e3a SHA512 053b3584b1bdb6968ce54d97d9c58ec221c604f90c3953c9e850009e9263e71bf970f0f268a35769ea4f0e617811297bc771c20eefab8e600a22d1f4efe7f675 WHIRLPOOL fb5f37a95fc459dd96a8d811103886c0c308df38f57a63fa5b3db3e9d51c6024cab79df7a9e86772ce6a6b388546166a39a531e47773459482aa97502733dc2e
26 DIST git-htmldocs-2.13.2.tar.xz 1109048 SHA256 54f0d36d375e7f71441994e60c18b6e2cc43581d5827e806e0bddb6904e17dfc SHA512 95fa6d14b7fa9548a8f9a39dcbd9099684949b6e2519b1478fcebe5e3bba32f87ff8a30d10d27464d7c750231284123efc0f7a52f15c8fcf0e8e3d7948730b3e WHIRLPOOL b53758892d34b1ca332055a3d3ee6127574191e241ebe64904b25727c3ef28bfdb032eacf24ddce507720fb55d446ab208d885858784f5ecba373d534db9097a
27 DIST git-htmldocs-2.13.3.tar.xz 1109392 SHA256 c5f8ad546724b8712286dd7814ea46abf829b14f2de8f6e565b8775469880c66 SHA512 6ac9bd2f401bc3330d5a23a4f48afbe224c6d558154281737f6cd83b8ae6b73c32e7fcb491c642f926a9c5f95019964cbe7902c0ec18456b53847fd6c3b7e292 WHIRLPOOL cef80aa25644993fc95458fedcfde2672da22b8d9e5853e4149cc0196782812008f2876c32f6e857abc65d30545767c9b822913f42b1470342b72a7573347d90
28 +DIST git-htmldocs-2.13.4.tar.xz 1109720 SHA256 1dbb459cf47f0023456fde9d0155aa858540479e258fbf2c808c5c4fd9f44f93 SHA512 571c3366f35265e041403300dee37e518cd6a5812eeb670b7297b0c29c8fe4eaba405c5f68b38ff3dbd672b5697c5524c025106fb24df156644e73cf792e4708 WHIRLPOOL c9ec8b2dfbb22b4227e7032cd1ed8da6a52653b6e30cd8802320f160afda12d754927f9f388bfd32a1760f18aff06c834d9516ac74c08b6b26b3d3b1ea2446c8
29 DIST git-manpages-2.13.0.tar.xz 407460 SHA256 8414f9c62e2b099cd0ea2ca22c55fb6538b13fc7a3ed1508fb9881aae42a97c9 SHA512 175ec2cd9293eedfbdb70445e19966f1dabdbf86beb220b3ed74862a36036101497bf9f322c3635e57bfcb7d2ce9d5efe8bdd6bb3ad73563dfa283c48da6bd1c WHIRLPOOL 11ba557437a2a93327406d3dfb69586668a0a34e20265bbb3053c10b1b37b5ad19fa66d9b0c2188268837acb5d56bd211bb763e0dc1ee8edfda5422b60cb4ed2
30 DIST git-manpages-2.13.2.tar.xz 407684 SHA256 30e1e1313000eb81f0e348e5083758a33703941a60ab111057b46c3dad968b6e SHA512 9b205df22bdd021d3379d95495658e3a679cf2a870c529f757896650bec065ae53bb23404737a11b4f52ff8d3044b71fc27abdeda66895a6fe879db089258416 WHIRLPOOL b65a2aaa4ef7e8363c5b50188bdbe2d368e9d1891ef2da4896dde0eac34307874bbdd6bc4ff3d180f9ab5a35a18d179da3bdeda0e0c1a718dd8ddcd04ebc6f18
31 DIST git-manpages-2.13.3.tar.xz 407640 SHA256 1128db0302a41b55132bfd507863a7921b995d9ad308396ff2c4ca91177481c2 SHA512 9c81335f3d882df1220801ea6fdedea90533c904a1e4dd0394b42721aa31392e6c923568a81c05479fe77a89a974e02fd40b4bcff397c4f739306ba4cb874501 WHIRLPOOL f735c2657fd63a2b7b8bca5e511c789680b615f519ac1d9aa7b67c0aead5607f534021494a03ade9752274c932a22eb82457d243c5328d3dbe8613ac44e8c595
32 +DIST git-manpages-2.13.4.tar.xz 407656 SHA256 674fa9a299cbcb91e49affd7dfd69952be1ee88cb7a3d5ee5b294e7da29b5d52 SHA512 ac6bb226a9425f8b949fe6eaf82ccc620264bf866308557906bff49e9c894c7ab9cb13351461db2fd073bb5835653dbaa6bb32487e40033d943d8f16e9a55701 WHIRLPOOL c873be52695a6b9df75b783331620ad98c3b2db9ed74e204250cff1f6807157f063fb6c25da86f9aeb66fcf0978d9d0693d4f286c8f68e6efa4473ea6dde2f21
33
34 diff --git a/dev-vcs/git/git-2.13.4.ebuild b/dev-vcs/git/git-2.13.4.ebuild
35 new file mode 100644
36 index 00000000000..2b0d92a449d
37 --- /dev/null
38 +++ b/dev-vcs/git/git-2.13.4.ebuild
39 @@ -0,0 +1,680 @@
40 +# Copyright 1999-2017 Gentoo Foundation
41 +# Distributed under the terms of the GNU General Public License v2
42 +
43 +EAPI=6
44 +
45 +GENTOO_DEPEND_ON_PERL=no
46 +
47 +# bug #329479: git-remote-testgit is not multiple-version aware
48 +PYTHON_COMPAT=( python2_7 )
49 +[[ ${PV} == *9999 ]] && SCM="git-r3"
50 +# Please ensure that all _four_ 9999 ebuilds get updated; they track the 4 upstream branches.
51 +# See https://git-scm.com/docs/gitworkflows#_graduation
52 +# In order of stability:
53 +# 9999-r0: maint
54 +# 9999-r1: master
55 +# 9999-r2: next
56 +# 9999-r3: pu
57 +EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
58 +EGIT_BRANCH=maint
59 +PLOCALES="bg ca de fr is it ko pt_PT ru sv vi zh_CN"
60 +
61 +inherit toolchain-funcs eutils elisp-common l10n perl-module bash-completion-r1 python-single-r1 systemd ${SCM}
62 +
63 +MY_PV="${PV/_rc/.rc}"
64 +MY_P="${PN}-${MY_PV}"
65 +
66 +DOC_VER=${MY_PV}
67 +
68 +DESCRIPTION="stupid content tracker: distributed VCS designed for speed and efficiency"
69 +HOMEPAGE="http://www.git-scm.com/"
70 +if [[ ${PV} != *9999 ]]; then
71 + SRC_URI_SUFFIX="xz"
72 + SRC_URI_KORG="mirror://kernel/software/scm/git"
73 + [[ "${PV/rc}" != "${PV}" ]] && SRC_URI_KORG+='/testing'
74 + SRC_URI="${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
75 + ${SRC_URI_KORG}/${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
76 + doc? (
77 + ${SRC_URI_KORG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
78 + )"
79 + [[ "${PV}" = *_rc* ]] || \
80 + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
81 +fi
82 +
83 +LICENSE="GPL-2"
84 +SLOT="0"
85 +IUSE="+blksha1 +curl cgi doc emacs gnome-keyring +gpg highlight +iconv libressl mediawiki mediawiki-experimental +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
86 +
87 +# Common to both DEPEND and RDEPEND
88 +CDEPEND="
89 + gnome-keyring? ( app-crypt/libsecret )
90 + !libressl? ( dev-libs/openssl:0= )
91 + libressl? ( dev-libs/libressl:= )
92 + sys-libs/zlib
93 + pcre? ( dev-libs/libpcre )
94 + perl? ( dev-lang/perl:=[-build(-)] )
95 + tk? ( dev-lang/tk:0= )
96 + curl? (
97 + net-misc/curl
98 + webdav? ( dev-libs/expat )
99 + )
100 + emacs? ( virtual/emacs )
101 +"
102 +
103 +RDEPEND="${CDEPEND}
104 + gpg? ( app-crypt/gnupg )
105 + mediawiki? (
106 + dev-perl/DateTime-Format-ISO8601
107 + dev-perl/HTML-Tree
108 + dev-perl/MediaWiki-API
109 + )
110 + perl? ( dev-perl/Error
111 + dev-perl/Net-SMTP-SSL
112 + dev-perl/Authen-SASL
113 + cgi? ( dev-perl/CGI highlight? ( app-text/highlight ) )
114 + cvs? ( >=dev-vcs/cvsps-2.1:0 dev-perl/DBI dev-perl/DBD-SQLite )
115 + subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
116 + )
117 + python? ( ${PYTHON_DEPS} )
118 +"
119 +
120 +# This is how info docs are created with Git:
121 +# .txt/asciidoc --(asciidoc)---------> .xml/docbook
122 +# .xml/docbook --(docbook2texi.pl)--> .texi
123 +# .texi --(makeinfo)---------> .info
124 +DEPEND="${CDEPEND}
125 + doc? (
126 + app-text/asciidoc
127 + app-text/docbook2X
128 + sys-apps/texinfo
129 + app-text/xmlto
130 + )
131 + nls? ( sys-devel/gettext )
132 + test? ( app-crypt/gnupg )"
133 +
134 +# Live ebuild builds man pages and HTML docs, additionally
135 +if [[ ${PV} == *9999 ]]; then
136 + DEPEND="${DEPEND}
137 + app-text/asciidoc"
138 +fi
139 +
140 +SITEFILE=50${PN}-gentoo.el
141 +S="${WORKDIR}/${MY_P}"
142 +
143 +REQUIRED_USE="
144 + cgi? ( perl )
145 + cvs? ( perl )
146 + mediawiki? ( perl )
147 + mediawiki-experimental? ( mediawiki )
148 + subversion? ( perl )
149 + webdav? ( curl )
150 + python? ( ${PYTHON_REQUIRED_USE} )
151 +"
152 +
153 +PATCHES=(
154 + # bug #350330 - automagic CVS when we don't want it is bad.
155 + "${FILESDIR}"/git-2.12.0-optional-cvs.patch
156 +
157 + # install mediawiki perl modules also in vendor_dir
158 + # hack, needs better upstream solution
159 + "${FILESDIR}"/git-1.8.5-mw-vendor.patch
160 +
161 + "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
162 +
163 + # Bug #493306, where FreeBSD 10.x merged libiconv into its libc.
164 + "${FILESDIR}"/git-2.5.1-freebsd-10.x-no-iconv.patch
165 +)
166 +
167 +pkg_setup() {
168 + if use subversion && has_version "dev-vcs/subversion[dso]"; then
169 + ewarn "Per Gentoo bugs #223747, #238586, when subversion is built"
170 + ewarn "with USE=dso, there may be weird crashes in git-svn. You"
171 + ewarn "have been warned."
172 + fi
173 + if use python ; then
174 + python-single-r1_pkg_setup
175 + fi
176 +}
177 +
178 +# This is needed because for some obscure reasons future calls to make don't
179 +# pick up these exports if we export them in src_unpack()
180 +exportmakeopts() {
181 + local myopts
182 +
183 + if use blksha1 ; then
184 + myopts+=" BLK_SHA1=YesPlease"
185 + elif use ppcsha1 ; then
186 + myopts+=" PPC_SHA1=YesPlease"
187 + fi
188 +
189 + if use curl ; then
190 + use webdav || myopts+=" NO_EXPAT=YesPlease"
191 + else
192 + myopts+=" NO_CURL=YesPlease"
193 + fi
194 +
195 + # broken assumptions, because of broken build system ...
196 + myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
197 + myopts+=" INSTALL=install TAR=tar"
198 + myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
199 + myopts+=" SANE_TOOL_PATH="
200 + myopts+=" OLD_ICONV="
201 + myopts+=" NO_EXTERNAL_GREP="
202 +
203 + # For svn-fe
204 + extlibs="-lz -lssl ${S}/xdiff/lib.a $(usex threads -lpthread '')"
205 +
206 + # can't define this to null, since the entire makefile depends on it
207 + sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
208 +
209 + use iconv \
210 + || myopts+=" NO_ICONV=YesPlease"
211 + use nls \
212 + || myopts+=" NO_GETTEXT=YesPlease"
213 + use tk \
214 + || myopts+=" NO_TCLTK=YesPlease"
215 + use pcre \
216 + && myopts+=" USE_LIBPCRE=yes" \
217 + && extlibs+=" -lpcre"
218 + use perl \
219 + && myopts+=" INSTALLDIRS=vendor" \
220 + || myopts+=" NO_PERL=YesPlease"
221 + use python \
222 + || myopts+=" NO_PYTHON=YesPlease"
223 + use subversion \
224 + || myopts+=" NO_SVN_TESTS=YesPlease"
225 + use threads \
226 + && myopts+=" THREADED_DELTA_SEARCH=YesPlease" \
227 + || myopts+=" NO_PTHREADS=YesPlease"
228 + use cvs \
229 + || myopts+=" NO_CVS=YesPlease"
230 + use elibc_musl \
231 + && myopts+=" NO_REGEX=YesPlease"
232 +# Disabled until ~m68k-mint can be keyworded again
233 +# if [[ ${CHOST} == *-mint* ]] ; then
234 +# myopts+=" NO_MMAP=YesPlease"
235 +# myopts+=" NO_IPV6=YesPlease"
236 +# myopts+=" NO_STRLCPY=YesPlease"
237 +# myopts+=" NO_MEMMEM=YesPlease"
238 +# myopts+=" NO_MKDTEMP=YesPlease"
239 +# myopts+=" NO_MKSTEMPS=YesPlease"
240 +# fi
241 + if [[ ${CHOST} == ia64-*-hpux* ]]; then
242 + myopts+=" NO_NSEC=YesPlease"
243 + fi
244 + if [[ ${CHOST} == *-*-aix* ]]; then
245 + myopts+=" NO_FNMATCH_CASEFOLD=YesPlease"
246 + fi
247 + if [[ ${CHOST} == *-solaris* ]]; then
248 + myopts+=" NEEDS_LIBICONV=YesPlease"
249 + myopts+=" HAVE_CLOCK_MONOTONIC=1"
250 + myopts+=" HAVE_GETDELIM=1"
251 + fi
252 +
253 + has_version '>=app-text/asciidoc-8.0' \
254 + && myopts+=" ASCIIDOC8=YesPlease"
255 + myopts+=" ASCIIDOC_NO_ROFF=YesPlease"
256 +
257 + # Bug 290465:
258 + # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
259 + [[ "${CHOST}" == *-uclibc* ]] && \
260 + myopts+=" NO_NSEC=YesPlease"
261 +
262 + export MY_MAKEOPTS="${myopts}"
263 + export EXTLIBS="${extlibs}"
264 +}
265 +
266 +src_unpack() {
267 + if [[ ${PV} != *9999 ]]; then
268 + unpack ${MY_P}.tar.${SRC_URI_SUFFIX}
269 + cd "${S}"
270 + unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
271 + use doc && \
272 + cd "${S}"/Documentation && \
273 + unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
274 + cd "${S}"
275 + else
276 + git-r3_src_unpack
277 + cd "${S}"
278 + #cp "${FILESDIR}"/GIT-VERSION-GEN .
279 + fi
280 +
281 +}
282 +
283 +src_prepare() {
284 + # add experimental patches to improve mediawiki support
285 + # see patches for origin
286 + if use mediawiki-experimental ; then
287 + PATCHES+=(
288 + "${FILESDIR}"/git-2.7.0-mediawiki-namespaces.patch
289 + "${FILESDIR}"/git-2.7.0-mediawiki-subpages.patch
290 + "${FILESDIR}"/git-2.7.0-mediawiki-500pages.patch
291 + )
292 + fi
293 +
294 + default
295 +
296 + sed -i \
297 + -e 's:^\(CFLAGS[[:space:]]*=\).*$:\1 $(OPTCFLAGS) -Wall:' \
298 + -e 's:^\(LDFLAGS[[:space:]]*=\).*$:\1 $(OPTLDFLAGS):' \
299 + -e 's:^\(CC[[:space:]]* =\).*$:\1$(OPTCC):' \
300 + -e 's:^\(AR[[:space:]]* =\).*$:\1$(OPTAR):' \
301 + -e "s:\(PYTHON_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
302 + -e "s:\(PERL_PATH[[:space:]]\+=[[:space:]]\+\)\(.*\)$:\1${EPREFIX}\2:" \
303 + Makefile contrib/svn-fe/Makefile || die "sed failed"
304 +
305 + # Never install the private copy of Error.pm (bug #296310)
306 + sed -i \
307 + -e '/private-Error.pm/s,^,#,' \
308 + perl/Makefile.PL
309 +
310 + # Fix docbook2texi command
311 + sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
312 + Documentation/Makefile || die "sed failed"
313 +
314 + # Fix git-subtree missing DESTDIR
315 + sed -i \
316 + -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
317 + -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g' \
318 + contrib/subtree/Makefile
319 +}
320 +
321 +git_emake() {
322 + # bug #326625: PERL_PATH, PERL_MM_OPT
323 + # bug #320647: PYTHON_PATH
324 + PYTHON_PATH=""
325 + use python && PYTHON_PATH="${PYTHON}"
326 + emake ${MY_MAKEOPTS} \
327 + DESTDIR="${D}" \
328 + OPTCFLAGS="${CFLAGS}" \
329 + OPTLDFLAGS="${LDFLAGS}" \
330 + OPTCC="$(tc-getCC)" \
331 + OPTAR="$(tc-getAR)" \
332 + prefix="${EPREFIX}"/usr \
333 + htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
334 + sysconfdir="${EPREFIX}"/etc \
335 + PYTHON_PATH="${PYTHON_PATH}" \
336 + PERL_MM_OPT="" \
337 + GIT_TEST_OPTS="--no-color" \
338 + V=1 \
339 + "$@"
340 + # This is the fix for bug #326625, but it also causes breakage, see bug
341 + # #352693.
342 + # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
343 +}
344 +
345 +src_configure() {
346 + exportmakeopts
347 +}
348 +
349 +src_compile() {
350 + if use perl ; then
351 + git_emake perl/PM.stamp || die "emake perl/PM.stamp failed"
352 + git_emake perl/perl.mak || die "emake perl/perl.mak failed"
353 + fi
354 + git_emake || die "emake failed"
355 +
356 + if use emacs ; then
357 + elisp-compile contrib/emacs/git{,-blame}.el
358 + fi
359 +
360 + if use perl && use cgi ; then
361 + git_emake \
362 + gitweb \
363 + || die "emake gitweb (cgi) failed"
364 + fi
365 +
366 + if [[ ${CHOST} == *-darwin* ]]; then
367 + cd "${S}"/contrib/credential/osxkeychain || die
368 + git_emake CC=$(tc-getCC) CFLAGS="${CFLAGS}" \
369 + || die "emake credential-osxkeychain"
370 + fi
371 +
372 + cd "${S}"/Documentation
373 + if [[ ${PV} == *9999 ]] ; then
374 + git_emake man \
375 + || die "emake man failed"
376 + if use doc ; then
377 + git_emake info html \
378 + || die "emake info html failed"
379 + fi
380 + else
381 + if use doc ; then
382 + git_emake info \
383 + || die "emake info html failed"
384 + fi
385 + fi
386 +
387 + if use subversion ; then
388 + cd "${S}"/contrib/svn-fe
389 + # by defining EXTLIBS we override the detection for libintl and
390 + # libiconv, bug #516168
391 + local nlsiconv=
392 + use nls && use !elibc_glibc && nlsiconv+=" -lintl"
393 + use iconv && use !elibc_glibc && nlsiconv+=" -liconv"
394 + git_emake EXTLIBS="${EXTLIBS} ${nlsiconv}" || die "emake svn-fe failed"
395 + if use doc ; then
396 + git_emake svn-fe.{1,html} || die "emake svn-fe.1 svn-fe.html failed"
397 + fi
398 + cd "${S}"
399 + fi
400 +
401 + if use gnome-keyring ; then
402 + cd "${S}"/contrib/credential/libsecret
403 + git_emake || die "emake git-credential-libsecret failed"
404 + fi
405 +
406 + cd "${S}"/contrib/subtree || die
407 + git_emake
408 + use doc && git_emake doc
409 +
410 + cd "${S}"/contrib/diff-highlight || die
411 + git_emake
412 +
413 + if use mediawiki ; then
414 + cd "${S}"/contrib/mw-to-git
415 + git_emake
416 + fi
417 +}
418 +
419 +src_install() {
420 + git_emake \
421 + install || \
422 + die "make install failed"
423 +
424 + if [[ ${CHOST} == *-darwin* ]]; then
425 + dobin contrib/credential/osxkeychain/git-credential-osxkeychain
426 + fi
427 +
428 + # Depending on the tarball and manual rebuild of the documentation, the
429 + # manpages may exist in either OR both of these directories.
430 + find man?/*.[157] >/dev/null 2>&1 && doman man?/*.[157]
431 + find Documentation/*.[157] >/dev/null 2>&1 && doman Documentation/*.[157]
432 + dodoc README* Documentation/{SubmittingPatches,CodingGuidelines}
433 + use doc && dodir /usr/share/doc/${PF}/html
434 + for d in / /howto/ /technical/ ; do
435 + docinto ${d}
436 + dodoc Documentation${d}*.txt
437 + if use doc ; then
438 + docinto ${d}/html
439 + dodoc Documentation${d}*.html
440 + fi
441 + done
442 + docinto /
443 + # Upstream does not ship this pre-built :-(
444 + use doc && doinfo Documentation/{git,gitman}.info
445 +
446 + newbashcomp contrib/completion/git-completion.bash ${PN}
447 + bashcomp_alias git gitk
448 + # Not really a bash-completion file (bug #477920)
449 + # but still needed uncompressed (bug #507480)
450 + insinto /usr/share/${PN}
451 + doins contrib/completion/git-prompt.sh
452 +
453 + if use emacs ; then
454 + elisp-install ${PN} contrib/emacs/git.{el,elc}
455 + elisp-install ${PN} contrib/emacs/git-blame.{el,elc}
456 + #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc}
457 + # don't add automatically to the load-path, so the sitefile
458 + # can do a conditional loading
459 + touch "${ED}${SITELISP}/${PN}/compat/.nosearch"
460 + elisp-site-file-install "${FILESDIR}"/${SITEFILE}
461 + fi
462 +
463 + #dobin contrib/fast-import/git-p4 # Moved upstream
464 + #dodoc contrib/fast-import/git-p4.txt # Moved upstream
465 + newbin contrib/fast-import/import-tars.perl import-tars
466 + exeinto /usr/libexec/git-core/
467 + newexe contrib/git-resurrect.sh git-resurrect
468 +
469 + # git-subtree
470 + cd "${S}"/contrib/subtree
471 + git_emake install || die "Failed to emake install git-subtree"
472 + if use doc ; then
473 + git_emake install-man install-doc || die "Failed to emake install-doc install-mangit-subtree"
474 + fi
475 + newdoc README README.git-subtree
476 + dodoc git-subtree.txt
477 + cd "${S}"
478 +
479 + if use mediawiki ; then
480 + cd "${S}"/contrib/mw-to-git
481 + git_emake install
482 + cd "${S}"
483 + fi
484 +
485 + # diff-highlight
486 + dobin contrib/diff-highlight/diff-highlight
487 + newdoc contrib/diff-highlight/README README.diff-highlight
488 +
489 + # git-jump
490 + exeinto /usr/libexec/git-core/
491 + doexe contrib/git-jump/git-jump
492 + newdoc contrib/git-jump/README git-jump.txt
493 +
494 + # git-contacts
495 + exeinto /usr/libexec/git-core/
496 + doexe contrib/contacts/git-contacts
497 + dodoc contrib/contacts/git-contacts.txt
498 +
499 + if use gnome-keyring ; then
500 + cd "${S}"/contrib/credential/libsecret
501 + dobin git-credential-libsecret
502 + fi
503 +
504 + if use subversion ; then
505 + cd "${S}"/contrib/svn-fe
506 + dobin svn-fe
507 + dodoc svn-fe.txt
508 + if use doc ; then
509 + doman svn-fe.1
510 + docinto html
511 + dodoc svn-fe.html
512 + fi
513 + cd "${S}"
514 + fi
515 +
516 + dodir /usr/share/${PN}/contrib
517 + # The following are excluded:
518 + # completion - installed above
519 + # diff-highlight - done above
520 + # emacs - installed above
521 + # examples - these are stuff that is not used in Git anymore actually
522 + # git-jump - done above
523 + # gitview - installed above
524 + # p4import - excluded because fast-import has a better one
525 + # patches - stuff the Git guys made to go upstream to other places
526 + # persistent-https - TODO
527 + # mw-to-git - TODO
528 + # subtree - build seperately
529 + # svnimport - use git-svn
530 + # thunderbird-patch-inline - fixes thunderbird
531 + local contrib_objects=(
532 + buildsystems
533 + fast-import
534 + hg-to-git
535 + hooks
536 + remotes2config.sh
537 + rerere-train.sh
538 + stats
539 + workdir
540 + )
541 + for i in "${contrib_objects[@]}" ; do
542 + cp -rf \
543 + "${S}"/contrib/${i} \
544 + "${ED}"/usr/share/${PN}/contrib \
545 + || die "Failed contrib ${i}"
546 + done
547 +
548 + if use perl && use cgi ; then
549 + # We used to install in /usr/share/${PN}/gitweb
550 + # but upstream installs in /usr/share/gitweb
551 + # so we will install a symlink and use their location for compat with other
552 + # distros
553 + dosym /usr/share/gitweb /usr/share/${PN}/gitweb
554 +
555 + # INSTALL discusses configuration issues, not just installation
556 + docinto /
557 + newdoc "${S}"/gitweb/INSTALL INSTALL.gitweb
558 + newdoc "${S}"/gitweb/README README.gitweb
559 +
560 + find "${ED}"/usr/lib64/perl5/ \
561 + -name .packlist \
562 + -exec rm \{\} \;
563 + else
564 + rm -rf "${ED}"/usr/share/gitweb
565 + fi
566 +
567 + if ! use subversion ; then
568 + rm -f "${ED}"/usr/libexec/git-core/git-svn \
569 + "${ED}"/usr/share/man/man1/git-svn.1*
570 + fi
571 +
572 + if use xinetd ; then
573 + insinto /etc/xinetd.d
574 + newins "${FILESDIR}"/git-daemon.xinetd git-daemon
575 + fi
576 +
577 + if use !prefix ; then
578 + newinitd "${FILESDIR}"/git-daemon-r1.initd git-daemon
579 + newconfd "${FILESDIR}"/git-daemon.confd git-daemon
580 + systemd_newunit "${FILESDIR}/git-daemon_at-r1.service" "git-daemon@.service"
581 + systemd_dounit "${FILESDIR}/git-daemon.socket"
582 + fi
583 +
584 + perl_delete_localpod
585 +
586 + # Remove disabled linguas
587 + # we could remove sources in src_prepare, but install does not
588 + # handle missing locale dir well
589 + rm_loc() {
590 + if [[ -e "${ED}/usr/share/locale/${1}" ]]; then
591 + rm -r "${ED}/usr/share/locale/${1}" || die
592 + fi
593 + }
594 + l10n_for_each_disabled_locale_do rm_loc
595 +}
596 +
597 +src_test() {
598 + local disabled=""
599 + local tests_cvs="t9200-git-cvsexportcommit.sh \
600 + t9400-git-cvsserver-server.sh \
601 + t9401-git-cvsserver-crlf.sh \
602 + t9402-git-cvsserver-refs.sh \
603 + t9600-cvsimport.sh \
604 + t9601-cvsimport-vendor-branch.sh \
605 + t9602-cvsimport-branches-tags.sh \
606 + t9603-cvsimport-patchsets.sh \
607 + t9604-cvsimport-timestamps.sh"
608 + local tests_perl="t3701-add-interactive.sh \
609 + t5502-quickfetch.sh \
610 + t5512-ls-remote.sh \
611 + t5520-pull.sh \
612 + t7106-reset-unborn-branch.sh \
613 + t7501-commit.sh"
614 + # Bug #225601 - t0004 is not suitable for root perm
615 + # Bug #219839 - t1004 is not suitable for root perm
616 + # t0001-init.sh - check for init notices EPERM* fails
617 + local tests_nonroot="t0001-init.sh \
618 + t0004-unwritable.sh \
619 + t0070-fundamental.sh \
620 + t1004-read-tree-m-u-wf.sh \
621 + t3700-add.sh \
622 + t7300-clean.sh"
623 + # t9100 still fails with symlinks in SVN 1.7
624 + local test_svn="t9100-git-svn-basic.sh"
625 +
626 + # Unzip is used only for the testcase code, not by any normal parts of Git.
627 + if ! has_version app-arch/unzip ; then
628 + einfo "Disabling tar-tree tests"
629 + disabled="${disabled} t5000-tar-tree.sh"
630 + fi
631 +
632 + cvs=0
633 + use cvs && let cvs=$cvs+1
634 + if [[ ${EUID} -eq 0 ]]; then
635 + if [[ $cvs -eq 1 ]]; then
636 + ewarn "Skipping CVS tests because CVS does not work as root!"
637 + ewarn "You should retest with FEATURES=userpriv!"
638 + disabled="${disabled} ${tests_cvs}"
639 + fi
640 + einfo "Skipping other tests that require being non-root"
641 + disabled="${disabled} ${tests_nonroot}"
642 + else
643 + [[ $cvs -gt 0 ]] && \
644 + has_version dev-vcs/cvs && \
645 + let cvs=$cvs+1
646 + [[ $cvs -gt 1 ]] && \
647 + has_version "dev-vcs/cvs[server]" && \
648 + let cvs=$cvs+1
649 + if [[ $cvs -lt 3 ]]; then
650 + einfo "Disabling CVS tests (needs dev-vcs/cvs[USE=server])"
651 + disabled="${disabled} ${tests_cvs}"
652 + fi
653 + fi
654 +
655 + if ! use perl ; then
656 + einfo "Disabling tests that need Perl"
657 + disabled="${disabled} ${tests_perl}"
658 + fi
659 +
660 + einfo "Disabling tests that fail with SVN 1.7"
661 + disabled="${disabled} ${test_svn}"
662 +
663 + # Reset all previously disabled tests
664 + cd "${S}/t"
665 + for i in *.sh.DISABLED ; do
666 + [[ -f "${i}" ]] && mv -f "${i}" "${i%.DISABLED}"
667 + done
668 + einfo "Disabled tests:"
669 + for i in ${disabled} ; do
670 + [[ -f "${i}" ]] && mv -f "${i}" "${i}.DISABLED" && einfo "Disabled $i"
671 + done
672 +
673 + # Avoid the test system removing the results because we want them ourselves
674 + sed -e '/^[[:space:]]*$(MAKE) clean/s,^,#,g' \
675 + -i "${S}"/t/Makefile
676 +
677 + # Clean old results first, must always run
678 + cd "${S}/t"
679 + nonfatal git_emake clean
680 +
681 + # Now run the tests, keep going if we hit an error, and don't terminate on
682 + # failure
683 + cd "${S}"
684 + einfo "Start test run"
685 + #MAKEOPTS=-j1
686 + nonfatal git_emake --keep-going test
687 + rc=$?
688 +
689 + # Display nice results, now print the results
690 + cd "${S}/t"
691 + nonfatal git_emake aggregate-results
692 +
693 + # And bail if there was a problem
694 + [ $rc -eq 0 ] || die "tests failed. Please file a bug."
695 +}
696 +
697 +showpkgdeps() {
698 + local pkg=$1
699 + shift
700 + elog " $(printf "%-17s:" ${pkg}) ${@}"
701 +}
702 +
703 +pkg_postinst() {
704 + use emacs && elisp-site-regen
705 + einfo "Please read /usr/share/bash-completion/git for Git bash command completion"
706 + einfo "Please read /usr/share/git/git-prompt.sh for Git bash prompt"
707 + einfo "Note that the prompt bash code is now in that separate script"
708 + elog "These additional scripts need some dependencies:"
709 + echo
710 + showpkgdeps git-quiltimport "dev-util/quilt"
711 + showpkgdeps git-instaweb \
712 + "|| ( www-servers/lighttpd www-servers/apache www-servers/nginx )"
713 + echo
714 + use mediawiki-experimental && ewarn "Using experimental git-mediawiki patches. The stability of cloned wiki filesystems is not guaranteed."
715 +}
716 +
717 +pkg_postrm() {
718 + use emacs && elisp-site-regen
719 +}