dev-vcs/git: Bump to version 2.5.1
authorLars Wendler <polynomial-c@gentoo.org>
Mon, 31 Aug 2015 07:21:21 +0000 (09:21 +0200)
committerLars Wendler <polynomial-c@gentoo.org>
Mon, 31 Aug 2015 07:21:21 +0000 (09:21 +0200)
Package-Manager: portage-2.2.20.1

dev-vcs/git/Manifest
dev-vcs/git/git-2.5.1.ebuild [new file with mode: 0644]

index 2fa775dd0dc320339deebe04e37b20978a8bec5e..5440af638711ed85ef73cb66633ba89c57ffe34d 100644 (file)
@@ -9,6 +9,7 @@ DIST git-2.4.6.tar.xz 3690432 SHA256 bdd944571c03474517b6c9941d6f1fd735eccbb164e
 DIST git-2.4.7.tar.xz 3691752 SHA256 6763f5ad1dfe29770aa0c523e08d53a0c7b9d32989bfbf2f39f368c7f61094de SHA512 7772d6e6466b6f835f506def455399fdfc81153975d9b259b1572cd332444187d61a19216f88476300c2030ff7a8baef794b6fe06203776e25f3f702bd31e5de WHIRLPOOL 75e630a448f6a94b179841e072900a68b57d6d9025535ff7a9e31db1591fd3290c4dda3a1a65a4ec91ad8f48fd9ad40b669a67d2d2ce0aff78831e6b41eda93d
 DIST git-2.4.8.tar.xz 3692460 SHA256 c7d2019d3c3b742862b252dcabb3d870b649e1af3fc8a132a0c0149f9e91dfcb SHA512 b1af6bf03dec006ed99601e66dda5b70e576c47d755d8fe5ca3cd974acc33cf2a6b76901549b56f6b4d3d3697f43c84dca35fc21c2cf5e8daad026f1bcc5b263 WHIRLPOOL e00d8e04c86ba611457547c71fb22ebef04b3a7e4316145b29cf073e4e58849bb62963b41660176f6d4e78b492c3b2ac513e80e8db42a91a4dcc31207718f012
 DIST git-2.5.0.tar.xz 3740620 SHA256 cc59b1bac6c1c67a9159872863f6c5bbe0d9404cac2a85c3e9d9fa49923ce45c SHA512 ef7538c9f5ba5b2ac08962401c30e5fd51323b54b9fb5315d259adccec346e8fae9362815832dc2b5ce63a259b315c40e419bb2385dde04d84b992e62f6789b6 WHIRLPOOL 653e7aeb966dec44631bbd257a41935b2e957be9324311a4fd91f3a0ba6f1f674e2e59b4c564d70c4eeaea3788f0af9273a1d0a753b3bc820e687f0d63bddf5d
+DIST git-2.5.1.tar.xz 3741764 SHA256 b3ceb7b118221b8c74d0abdc62ab035a58360dbbd28ca17c53e301e517d4220f SHA512 95e12103fa1f3da06c7c8485417de7168a0aa7f3a60119808fbdb352f73b180368a9ee19ac455ece10ba29957d070c39c2313100562716ff7f9ea7e4f0de32f1 WHIRLPOOL 11cea9a28cbdb1eb707d73c6c07db0c7fb89754e5af3e91f713f9c31f7f515689070fe472a21bee4b7344bce7ae6790dc741e35cb20deac1ceb563a09b85ad39
 DIST git-htmldocs-1.8.5.6.tar.gz 2242475 SHA256 7c8e955d0798686fa030ba7b7b384a2eab2b74d5bd695d82faecac2e247bd211 SHA512 c9b2752bcdd7f8f817b14e99ab2743d153e3e7549bffb2aa98999e46d1e965d045850ec6a3e9f6bc83e6e4820ce20f281c33f946ebd2be16d275b85a5ddaee36 WHIRLPOOL 7db3fb74e6b51618890acfef8fb89ab09adf653d3196e82624671194bdb2b564b903429ffecf68b28faf96ce3ebb83b534459738d48ace048d873c158621d31c
 DIST git-htmldocs-1.9.5.tar.gz 2262251 SHA256 4fa289e259d6b922a51d11a687203612aa1aad5696eb83b4e67c0de8a785700f SHA512 2df975c33d3411a97ab5a684b03998b7cd188d05bae6813c753fe2092b0acf463dec49a7a546d315f520fd9c71281da41998d0f36f64f48d4f95507a034a083b WHIRLPOOL edc252ce58b31f001c0d225f0b40b3689028bd34b1cbbdd889d645d37a2931e9039f76f12e5a0f918579a0b9c5dd1f3171af2bb58ee42972411ca33ec0ebe8f2
 DIST git-htmldocs-2.0.5.tar.xz 944792 SHA256 90eaf745d6ee197718fdde9c98919918ad1e4e3576608e4522b84c612cd9ef2a SHA512 e9b3d92d466762c9c7e164e9c30ff0046b262bf4707ea057e3a682f7b15a4f8149a9aaf2630f117dc3b508744cd688c6c0087cc94ff3477e7f3b85513160d7f3 WHIRLPOOL 35970d099304a5ab174fc93f8496a0c651a259dcaa3d23a2dd0233f8db214ae94a26e28044a87460d4654e61440427d331ceeac290335d6ae3fcf0423175bba9
@@ -20,6 +21,7 @@ DIST git-htmldocs-2.4.6.tar.xz 994712 SHA256 5213e8b882293ec3cda247dabbc75c6ee52
 DIST git-htmldocs-2.4.7.tar.xz 995972 SHA256 ce0d1603f097b89c895613c864a7ac1ed8be36283b98298fff4fcafc2133dbc1 SHA512 1ea356f57299f41cfcb54baac17faf4f12ebb0b992769b0bf36dece800cb07d0b15b5b059d29a7e2469e885da1fa53f899e31e3c9cf58fd7fde4b2168ae19c41 WHIRLPOOL 3ffa7fc366e3a0855ecd6cc3af4577635072082236affc2079caaae2273d0965b0ea2e7fe2fb0d2bbc6b1c44b295325ca19065a4b9ba811bfc95bae94323245d
 DIST git-htmldocs-2.4.8.tar.xz 996004 SHA256 73c9ac3b42da1d3427bfa91c3266c6b7df332137d6ce92217c43db8f479a74ea SHA512 fcd93a76b19bd559ccb28829fa78ae0a2840a70e0c59a2709b2f089f1127b8452ee2f4e8e74128766f50eeeb560d924248d73336f2b5746305823834a9311db2 WHIRLPOOL 249390556106b13e4c02112085bd527720edcb67c85c61e429bea67bc252e7be3b6f4f641534bc342e534d154a9531379e3717d32e5109e48f886174022dce02
 DIST git-htmldocs-2.5.0.tar.xz 1008428 SHA256 0924b290834e2a361a489cbc845a9bf04e56117597dc9c1a40e879cce655e4e2 SHA512 921ae8dd482719912f79f5affb6fa239290a954fb40625ac9fae2edf902989e5126ae7ca5c367b2b55c5387fb3cc3035ddf4e8b360743dbdee0f1b55ec33653c WHIRLPOOL e355781b06fba48d9ada859fe6fb515ddbfbac5a1d5c0918e8570e4566f68d644456606b5b0eb8e3e4cdc7c8b27a96b72cc1907008dff567cae71f0953968843
+DIST git-htmldocs-2.5.1.tar.xz 1008284 SHA256 2ebf4761a793d4c8bdf49ff04937c08408c8903160d910eba5714786535d0c83 SHA512 2aeb811a3fe49d53c5c714a5c88e9ce562116b1cea52293e3908f440f56d3b78f9073ed22b163d2d385e76595b9e395f4e21af5a937c37fd5588db005dcc9309 WHIRLPOOL d2907376b9370d9c8c0c84fcb9234bab1c11ea73565be04736109c24bbad1776c8f26df4d8f52209f6b5b9e7b2e2aaa72eaddf846e5bf7ed758e6a31f3fef119
 DIST git-manpages-1.8.5.6.tar.gz 569061 SHA256 58ef7cb3121639b8d78e2e4c4f7f886bab57af9e9e137b10f372dfad573872c1 SHA512 a524a1c7e8bdc73ffe04bebb5c7050a18c8649b98714bf255c8e3c32a2443d8d5abf33e3ca2eb108d601f01e0bda50fed1e134ffdae87bcf6f551cbbd250c4ba WHIRLPOOL 2db62b96e972dbcbec1ac59d7244bf2c2ff7140c941d1d3c6b9062bd79b80541d7fa3982c5a3bc55a18fc9112ab3fa648966be5c3e1135ab7b5c89080bee82b6
 DIST git-manpages-1.9.5.tar.gz 571625 SHA256 37cc735c4ced6574e8e93349d52d30372fc6f9fe3de3d6b9934a14857d6aade8 SHA512 e3df3e933fed6ff2845989a0146b28789452e9583bc19dd4a9ad335f64b15feffbdc4dd7cdb9d6b5216f7f85837318cf9b10df033f8022777f91c2b0894fb231 WHIRLPOOL e25d77fd8d9cacb92d45fd50640bc65189d02d7e23b276ccaf3b35ba1fe64ab0c49045d1fb8983b7b2b5bd996e767508446ac76506b074ded10feef1f9256918
 DIST git-manpages-2.0.5.tar.xz 359000 SHA256 3cf1581da2a19c0651df445ee5f801e108619befe8965e01d61faa46ca57b642 SHA512 b3981565a34a203283801b86717386971ef53c2f5c47bdde290aa0df4d62045ecbcab1ff1b4d1d8ddf7d489e74d65b0208d87ace7ca8c8be9525be548e445425 WHIRLPOOL e8c78eb38cb3192455ccb991a4ce5cd3988d06f1f06cdf0722e4ce6fb1d4e57f618058cf07d312bcab4f5821a1b1dfc016c03626d4f3429d3e5ef089607a2801
@@ -31,3 +33,4 @@ DIST git-manpages-2.4.6.tar.xz 373408 SHA256 f32d267bdaab75812dbd116d2b329d6dc72
 DIST git-manpages-2.4.7.tar.xz 373568 SHA256 cbf3171d93edea466325809c26c6946716402f7f9ae32e31e97384b2a96377f9 SHA512 e3c59ef02824d553257d5cc78e727ceca75cf1c6ba68375fe6482812ec5ff8684319ada2c38c00574509958bff0f3af732c509726f02e48517c6a8f84ea4f154 WHIRLPOOL 1be4ef465d3446ec8ae4c5ddb25f2fe66ec4b9d116a5789176e83513606cbcd70ecf07038d86903acc93a52a187d99a7c62d3593bc0d7b43a4a7af4ccac6c7ac
 DIST git-manpages-2.4.8.tar.xz 373596 SHA256 47558ec88776e66e6f3e3625b7efdaf2e8ad447cb7af199d60d0788d7f4438c4 SHA512 bb5dc6d7a9af05f2f5a3665f0bac29e5a08919412d69cc756981c88eaa6cf5b8cbe93e04e1aa10d2a48706178eb33a547f416ee191bdb8d25483212aa7e30e5e WHIRLPOOL 0b4ab3099b6604f17a6ff741a9d752c76772ca4f7a02e55db4cbff1e14878c3bdcb25d5e4a71dd2f7a81525475aea35d9ef09d203d949984d95ef02f9865f33c
 DIST git-manpages-2.5.0.tar.xz 377856 SHA256 1a6ea7220b1693eb384af0978a990ea8c0c634a7869d1ef63a2c8e427fc7f6ea SHA512 b3a5f2e8107c529ce81c1570a82472195e205ff1a8ddc75f4f0cbbf25f37a916700156df4418888c8a8a153ab58d5507a31027fb31faadeb5d4ba242847ab28d WHIRLPOOL 09f13622fff6a2b04a8ad584dab54c0b17cbfc6e803ca9e2deadab18071e50b50b37e395bb4746aff2e013f5b0025f8cdb1d439d8e6f3a659fad32646b30f4c7
+DIST git-manpages-2.5.1.tar.xz 378028 SHA256 6e403070ee71678acad0b7f53bc5327e13b42cebccc6769177fe0b4a11f042e3 SHA512 bfb421a1a7e50483b3d9c0fe6d1ec9047c4aef48b0a59b854e8adfc8a19054d14ae524fcd0ced9edfb797ea3e01fcf3f6a02b8a2f1cc0e947efd444654063b7d WHIRLPOOL d2342a9945d31741397a0be7e1a89cf4b0ce3165555dfabca33cbadba9f1e33ba6f8004a8b539ccc1462aeb27d865bf9c194884741639615d24148966eb59d47
diff --git a/dev-vcs/git/git-2.5.1.ebuild b/dev-vcs/git/git-2.5.1.ebuild
new file mode 100644 (file)
index 0000000..352b93a
--- /dev/null
@@ -0,0 +1,636 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+GENTOO_DEPEND_ON_PERL=no
+
+# bug #329479: git-remote-testgit is not multiple-version aware
+PYTHON_COMPAT=( python2_7 )
+[[ ${PV} == *9999 ]] && SCM="git-2"
+EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+EGIT_MASTER=pu
+
+inherit toolchain-funcs eutils elisp-common 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="GIT - the stupid content tracker, the revision control system heavily used by the Linux kernel team"
+HOMEPAGE="http://www.git-scm.com/"
+if [[ ${PV} != *9999 ]]; then
+       SRC_URI_SUFFIX="xz"
+       SRC_URI_GOOG="https://git-core.googlecode.com/files"
+       SRC_URI_KORG="mirror://kernel/software/scm/git"
+       SRC_URI="${SRC_URI_GOOG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+                       ${SRC_URI_KORG}/${MY_P}.tar.${SRC_URI_SUFFIX}
+                       ${SRC_URI_GOOG}/${PN}-manpages-${DOC_VER}.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}
+                       ${SRC_URI_GOOG}/${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+                       )"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~ia64-hpux ~x86-interix ~amd64-linux ~arm-linux ~ia64-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 gtk highlight +iconv mediawiki +nls +pcre +perl +python ppcsha1 tk +threads +webdav xinetd cvs subversion test"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+       dev-libs/openssl:0=
+       sys-libs/zlib
+       pcre? ( dev-libs/libpcre )
+       perl? ( dev-lang/perl:=[-build(-)] )
+       tk? ( dev-lang/tk:0= )
+       curl? (
+               net-misc/curl
+               webdav? ( dev-libs/expat )
+       )
+       emacs? ( virtual/emacs )
+       gnome-keyring? ( gnome-base/libgnome-keyring )"
+
+RDEPEND="${CDEPEND}
+       gpg? ( app-crypt/gnupg )
+       mediawiki? (
+               dev-perl/HTML-Tree
+               dev-perl/MediaWiki-API
+       )
+       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? ( gtk?
+       (
+               >=dev-python/pygtk-2.8[${PYTHON_USEDEP}]
+               >=dev-python/pygtksourceview-2.10.1-r1:2[${PYTHON_USEDEP}]
+       )
+               ${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 )
+       subversion? ( perl )
+       webdav? ( curl )
+       gtk? ( python )
+       python? ( ${PYTHON_REQUIRED_USE} )
+"
+
+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
+
+       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 broken build system ...
+       myopts+=" NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+       myopts+=" INSTALL=install TAR=tar"
+       myopts+=" SHELL_PATH=${EPREFIX}/bin/sh"
+       myopts+=" SANE_TOOL_PATH="
+       myopts+=" OLD_ICONV="
+       myopts+=" 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
+
+       use iconv \
+               || myopts+=" NO_ICONV=YesPlease"
+       use nls \
+               || myopts+=" NO_GETTEXT=YesPlease"
+       use tk \
+               || myopts+=" NO_TCLTK=YesPlease"
+       use pcre \
+               && myopts+=" USE_LIBPCRE=yes" \
+               && extlibs+=" -lpcre"
+       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"
+# Disabled until ~m68k-mint can be keyworded again
+#      if [[ ${CHOST} == *-mint* ]] ; then
+#              myopts+=" NO_MMAP=YesPlease"
+#              myopts+=" NO_IPV6=YesPlease"
+#              myopts+=" NO_STRLCPY=YesPlease"
+#              myopts+=" NO_MEMMEM=YesPlease"
+#              myopts+=" NO_MKDTEMP=YesPlease"
+#              myopts+=" 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"
+       fi
+
+       has_version '>=app-text/asciidoc-8.0' \
+               && myopts+=" ASCIIDOC8=YesPlease"
+       myopts+=" ASCIIDOC_NO_ROFF=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}"
+               unpack ${PN}-manpages-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+               use doc && \
+                       cd "${S}"/Documentation && \
+                       unpack ${PN}-htmldocs-${DOC_VER}.tar.${SRC_URI_SUFFIX}
+               cd "${S}"
+       else
+               git-2_src_unpack
+               cd "${S}"
+               #cp "${FILESDIR}"/GIT-VERSION-GEN .
+       fi
+
+}
+
+src_prepare() {
+       # bug #350330 - automagic CVS when we don't want it is bad.
+       epatch "${FILESDIR}"/git-2.2.2-optional-cvs.patch
+
+       # install mediawiki perl modules also in vendor_dir
+       # hack, needs better upstream solution
+       epatch "${FILESDIR}"/git-1.8.5-mw-vendor.patch
+
+       epatch "${FILESDIR}"/git-2.2.0-svn-fe-linking.patch
+
+       epatch_user
+
+       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 "sed failed"
+
+       # Never install the private copy of Error.pm (bug #296310)
+       sed -i \
+               -e '/private-Error.pm/s,^,#,' \
+               perl/Makefile.PL
+
+       # Fix docbook2texi command
+       sed -r -i 's/DOCBOOK2X_TEXI[[:space:]]*=[[:space:]]*docbook2x-texi/DOCBOOK2X_TEXI = docbook2texi.pl/' \
+               Documentation/Makefile || die "sed failed"
+
+       # Fix git-subtree missing DESTDIR
+       sed -i \
+               -e '/$(INSTALL)/s/ $(libexecdir)/ $(DESTDIR)$(libexecdir)/g' \
+               -e '/$(INSTALL)/s/ $(man1dir)/ $(DESTDIR)$(man1dir)/g'  \
+               contrib/subtree/Makefile
+}
+
+git_emake() {
+       # bug #326625: PERL_PATH, PERL_MM_OPT
+       # bug #320647: PYTHON_PATH
+       PYTHON_PATH=""
+       use python && PYTHON_PATH="${PYTHON}"
+       emake ${MY_MAKEOPTS} \
+               DESTDIR="${D}" \
+               OPTCFLAGS="${CFLAGS}" \
+               OPTLDFLAGS="${LDFLAGS}" \
+               OPTCC="$(tc-getCC)" \
+               OPTAR="$(tc-getAR)" \
+               prefix="${EPREFIX}"/usr \
+               htmldir="${EPREFIX}"/usr/share/doc/${PF}/html \
+               sysconfdir="${EPREFIX}"/etc \
+               PYTHON_PATH="${PYTHON_PATH}" \
+               PERL_MM_OPT="" \
+               GIT_TEST_OPTS="--no-color" \
+               V=1 \
+               "$@"
+       # This is the fix for bug #326625, but it also causes breakage, see bug
+       # #352693.
+       # PERL_PATH="${EPREFIX}/usr/bin/env perl" \
+}
+
+src_configure() {
+       exportmakeopts
+}
+
+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"
+
+       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
+               cd "${S}"/contrib/credential/osxkeychain || die "cd credential/osxkeychain"
+               git_emake || die "emake credential-osxkeychain"
+       fi
+
+       cd "${S}"/Documentation
+       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
+
+       if use subversion ; then
+               cd "${S}"/contrib/svn-fe
+               # 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
+               cd "${S}"
+       fi
+
+       if use gnome-keyring ; then
+               cd "${S}"/contrib/credential/gnome-keyring
+               git_emake || die "emake git-credential-gnome-keyring failed"
+       fi
+
+       cd "${S}"/contrib/subtree
+       git_emake
+       use doc && git_emake doc
+
+       if use mediawiki ; then
+               cd "${S}"/contrib/mw-to-git
+               git_emake
+       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
+               use doc && dohtml -p ${d} Documentation${d}*.html
+       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
+
+       if use python && use gtk ; then
+               python_doscript "${S}"/contrib/gitview/gitview
+               dodoc "${S}"/contrib/gitview/gitview.txt
+       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
+       cd "${S}"/contrib/subtree
+       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
+       cd "${S}"
+
+       if use mediawiki ; then
+               cd "${S}"/contrib/mw-to-git
+               git_emake install
+               cd "${S}"
+       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
+               cd "${S}"/contrib/credential/gnome-keyring
+               dobin git-credential-gnome-keyring
+       fi
+
+       if use subversion ; then
+               cd "${S}"/contrib/svn-fe
+               dobin svn-fe
+               dodoc svn-fe.txt
+               use doc && doman svn-fe.1 && dohtml svn-fe.html
+               cd "${S}"
+       fi
+
+       dodir /usr/share/${PN}/contrib
+       # The following are excluded:
+       # completion - installed above
+       # credential/gnome-keyring TODO
+       # 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
+       for i in \
+               buildsystems convert-objects fast-import \
+               hg-to-git hooks remotes2config.sh rerere-train.sh \
+               stats workdir \
+               ; 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
+
+               find "${ED}"/usr/lib64/perl5/ \
+                       -name .packlist \
+                       -exec rm \{\} \;
+       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.service" "git-daemon@.service"
+               systemd_dounit "${FILESDIR}/git-daemon.socket"
+       fi
+
+       perl_delete_localpod
+}
+
+src_test() {
+       local disabled="" #t7004-tag.sh" #520270
+       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="${disabled} t5000-tar-tree.sh"
+       fi
+
+       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="${disabled} ${tests_cvs}"
+               fi
+               einfo "Skipping other tests that require being non-root"
+               disabled="${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="${disabled} ${tests_cvs}"
+               fi
+       fi
+
+       if ! use perl ; then
+               einfo "Disabling tests that need Perl"
+               disabled="${disabled} ${tests_perl}"
+       fi
+
+       einfo "Disabling tests that fail with SVN 1.7"
+       disabled="${disabled} ${test_svn}"
+
+       # Reset all previously disabled tests
+       cd "${S}/t"
+       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 "${S}"/t/Makefile
+
+       # Clean old results first, must always run
+       cd "${S}/t"
+       nonfatal git_emake clean
+
+       # Now run the tests, keep going if we hit an error, and don't terminate on
+       # failure
+       cd "${S}"
+       einfo "Start test run"
+       #MAKEOPTS=-j1
+       nonfatal git_emake --keep-going test
+       rc=$?
+
+       # Display nice results, now print the results
+       cd "${S}/t"
+       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
+       einfo "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"
+       einfo "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
+}
+
+pkg_postrm() {
+       use emacs && elisp-site-regen
+}