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