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