summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Olexa <darkside@gentoo.org>2010-07-22 21:34:50 +0000
committerJeremy Olexa <darkside@gentoo.org>2010-07-22 21:34:50 +0000
commit485d7eafa5293ad8d8aa4f2e7f9102abf0fcb7a1 (patch)
tree209f359ee0e88ce9c5b66dfc1e6bb34f03082716 /dev-vcs
parentAdded patch to fix replace with accented characters, bug 327405, thank Rafael... (diff)
downloadhistorical-485d7eafa5293ad8d8aa4f2e7f9102abf0fcb7a1.tar.gz
historical-485d7eafa5293ad8d8aa4f2e7f9102abf0fcb7a1.tar.bz2
historical-485d7eafa5293ad8d8aa4f2e7f9102abf0fcb7a1.zip
Migrate changes from Gentoo Prefix overlay. Convert to EAPI3, add patches, modify paths, etc. Approved by maintainer, reference bug 329273. Revbump per request but no substantial changes for the end user
Package-Manager: portage-2.1.8.3/cvs/Linux x86_64
Diffstat (limited to 'dev-vcs')
-rw-r--r--dev-vcs/git/ChangeLog11
-rw-r--r--dev-vcs/git/Manifest5
-rw-r--r--dev-vcs/git/files/git-1.6.6.1-interix6.patch17
-rw-r--r--dev-vcs/git/files/git-1.7.1-interix.patch100
-rw-r--r--dev-vcs/git/git-1.7.2-r1.ebuild463
5 files changed, 594 insertions, 2 deletions
diff --git a/dev-vcs/git/ChangeLog b/dev-vcs/git/ChangeLog
index df63f2e11f7f..1d645e8dffc0 100644
--- a/dev-vcs/git/ChangeLog
+++ b/dev-vcs/git/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for dev-vcs/git
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-vcs/git/ChangeLog,v 1.18 2010/07/22 16:56:06 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-vcs/git/ChangeLog,v 1.19 2010/07/22 21:34:50 darkside Exp $
+
+*git-1.7.2-r1 (22 Jul 2010)
+
+ 22 Jul 2010; Jeremy Olexa <darkside@gentoo.org>
+ +files/git-1.6.6.1-interix6.patch, +files/git-1.7.1-interix.patch,
+ +git-1.7.2-r1.ebuild:
+ Migrate changes from Gentoo Prefix overlay. Convert to EAPI3, add patches,
+ modify paths, etc. Approved by maintainer, reference bug 329273. Revbump
+ per request but no substantial changes for the end user
*git-1.7.2 (22 Jul 2010)
diff --git a/dev-vcs/git/Manifest b/dev-vcs/git/Manifest
index 0d49aade1ebb..eeacb4f66f59 100644
--- a/dev-vcs/git/Manifest
+++ b/dev-vcs/git/Manifest
@@ -1,7 +1,9 @@
AUX 50git-gentoo.el 472 RMD160 3d9c7dcb70d781dd7f12e4a19e838996681ec0d4 SHA1 fc47553c2422af82bbd2588e9853cc0c9cb437c7 SHA256 7cd37e8db7eaeee8d822d38851eb69771b0f09c79883a8e51309a9add85fdbe2
AUX git-1.6.6-always-install-js.patch 1300 RMD160 7a288526624acb0748e4c917a56d662439cc28db SHA1 8bac9d1ecafd14f0dc7cf3564a9b6c53e32726b1 SHA256 019e5dbf6d0c3e57056b038db2ac1d7e501258e02ae5dacb6360a1e639ed4b67
+AUX git-1.6.6.1-interix6.patch 457 RMD160 27bdfe9ab248791f628420cc45751fae2643b3d5 SHA1 6c80a5cb63cbcf89b61b8f5e2c16736cb0be09bc SHA256 a8b788b8ef41ce7fd1018f13795694a908fbb1884de195c89a58fe87f3968849
AUX git-1.7.0-always-install-js.patch 1304 RMD160 e4d110d7bd86a50f928cdf5fa1e3513aebbb0dab SHA1 9324fe19cb85709b2a198ba853866a99d6088f64 SHA256 5cb12dd43e114d07ea4ab6cd04f386cdc0c6e9a998529943be2da3308e1d1509
AUX git-1.7.1-always-install-js.patch 1255 RMD160 524f32437f042a7faecc58b48c19b18e40d6d66f SHA1 0705dc05aa5595950c51f5cb3ef575023c2eacd0 SHA256 698edf9471d877ffc5441b26bf77f75f672fbcaa89a75258c48cd8a8fd8b1ac9
+AUX git-1.7.1-interix.patch 2192 RMD160 725c43e056bbaa82e4af1f2aef9dd152214f9d65 SHA1 de6062aaa8bd177c77c124696d4253c299bba1fb SHA256 b560fcc41ea93df429290ec645f3e37368ceec1101f7124574fa6d9bab00a495
AUX git-1.7.1-noiconv-segfault-fix.patch 1786 RMD160 592f84005bccdfbc020ad79d66c8b17d401e1c51 SHA1 17108275dff771dc919a273540774749f3623875 SHA256 6f50165264078da499329be3b74176aacae85fc48934576ecd37f0fc2de4c2b4
AUX git-1.7.2-always-install-js.patch 1167 RMD160 36cae52a1dbcb2450a521b60ce66dbd48e58b3a9 SHA1 45f652281e36627f80b2d559a6861e784b8afa75 SHA256 2988513c5a81f446818b850414b4bf7dc8a3177eb1dc32f29e530a80479baa9e
AUX git-daemon.confd 700 RMD160 2dea5af0c6b3aa5304aa5417bb40099bd4cdb45b SHA1 0b7c3078c4d284eb2572a5fb7c1efff5a4837f6e SHA256 9ca387e81ca875d4e543fa64398620451ff74273fa06b122a6af47db1fee1630
@@ -129,7 +131,8 @@ EBUILD git-1.7.0.4.ebuild 11277 RMD160 ea3eae9e873577233e36a01f2d79d4a765a46692
EBUILD git-1.7.0.ebuild 11272 RMD160 8b3478cd46278a13724b798e8dba11fda746e838 SHA1 4a55859bd11e669b272cc025d5712ba557f3316f SHA256 a7bf9fb9fc6a9630a329fda61a617307775d5043585ef7ad7473dfe0a72f4d61
EBUILD git-1.7.1-r1.ebuild 11470 RMD160 6a49198be27c24cf0b748c9218b2ff44a2356a47 SHA1 5cefb98e56d56cc321c8ba33c21b073d7dad6b8e SHA256 3e8d1108af941cf7ed5f254c71cfaa3e56e4208e34d3877bf882bc6c27fadd05
EBUILD git-1.7.1.1.ebuild 11479 RMD160 ecd11a8ca56f9bb38848b2f8278e0068e8c90863 SHA1 f4f8171dec318b06f215376aca40eab53db857b9 SHA256 10cb900acf3a1756b69ea795286b855968856b2e9ea71adbce168b3614738cc1
+EBUILD git-1.7.2-r1.ebuild 13295 RMD160 55ae3df669a9664143d8851d5e7186c6e5915deb SHA1 f848bccb38c719205bc5c644907a375e1422d2a1 SHA256 b8eb76568e2a6ba17edffd08df661fb676049b646715c4eedbea77d606b1086c
EBUILD git-1.7.2.ebuild 11477 RMD160 6fba2a275d31a4da89f12a1c4711f9fdc3560ea2 SHA1 7b98fb9bf0db758703a71ddee015bf5e4bcfb101 SHA256 99777afb7828342d731afb033308c3c149cd4ba3ea4f3a79223c7957d8c01900
EBUILD git-9999.ebuild 11267 RMD160 01f76a5e2f10faefecef89641377296535061860 SHA1 66f75a31674acf05dce53d164a8349c28bf428f2 SHA256 bebf393f824d891625a074bab936fa66dc0c195f638b23af99214b1fe7112597
-MISC ChangeLog 67155 RMD160 fa4fd44d4d0dfcb08f5058ffd1450d16150adc7a SHA1 6bdf8fcbaa718fe29f99f79a586574d758e688c6 SHA256 75876eaec8fdad89df781b52570e8adb2ce6dd8474c874709e2ead2778545d50
+MISC ChangeLog 67539 RMD160 614537229e36897c1926f7d9ea1ab75f5334bca8 SHA1 73576013c55884ead689e0fe84c46c6d3d18776f SHA256 f5d96bbe929125587d2a3badb6e1368052bd77c9c6a1d83b6a3fb335b8f9f999
MISC metadata.xml 1609 RMD160 80bd2234e48fccd7a442fd6cce3ad9e2f8a05d33 SHA1 0b3b2f486530e009fbe055a87d58a161722f64b1 SHA256 2450bc31e647972be38e76068c6cf27c34e00cd8077f139a137f9d4c14d52a0b
diff --git a/dev-vcs/git/files/git-1.6.6.1-interix6.patch b/dev-vcs/git/files/git-1.6.6.1-interix6.patch
new file mode 100644
index 000000000000..0a8db374744d
--- /dev/null
+++ b/dev-vcs/git/files/git-1.6.6.1-interix6.patch
@@ -0,0 +1,17 @@
+diff -ru git-1.6.6.1.orig/compat/inet_ntop.c git-1.6.6.1/compat/inet_ntop.c
+--- git-1.6.6.1.orig/compat/inet_ntop.c 2010-03-09 04:39:03 -0800
++++ git-1.6.6.1/compat/inet_ntop.c 2010-03-09 04:40:50 -0800
+@@ -169,6 +169,8 @@
+ }
+ #endif
+
++/* conflicts with interix' headers... */
++#ifndef __INTERIX
+ /* char *
+ * inet_ntop(af, src, dst, size)
+ * convert a network format address to presentation format.
+@@ -197,3 +199,4 @@
+ }
+ /* NOTREACHED */
+ }
++#endif
diff --git a/dev-vcs/git/files/git-1.7.1-interix.patch b/dev-vcs/git/files/git-1.7.1-interix.patch
new file mode 100644
index 000000000000..130d808791f7
--- /dev/null
+++ b/dev-vcs/git/files/git-1.7.1-interix.patch
@@ -0,0 +1,100 @@
+patch reported upstream at the mailing list.
+mail reference is: http://marc.info/?l=git&m=126813299716136&w=2
+
+--- builtin/upload-archive.c
++++ builtin/upload-archive.c
+@@ -132,8 +132,9 @@
+ packet_flush(1);
+
+ while (1) {
+- struct pollfd pfd[2];
+ int status;
++#ifndef __INTERIX
++ struct pollfd pfd[2];
+
+ pfd[0].fd = fd1[0];
+ pfd[0].events = POLLIN;
+@@ -156,6 +157,8 @@
+ if (process_input(pfd[0].fd, 1))
+ continue;
+
++#endif
++
+ if (waitpid(writer, &status, 0) < 0)
+ error_clnt("%s", lostchild);
+ else if (!WIFEXITED(status) || WEXITSTATUS(status) > 0)
+--- daemon.c
++++ daemon.c
+@@ -14,6 +14,8 @@
+ #define NI_MAXSERV 32
+ #endif
+
++#ifndef __INTERIX /* not available on interix! */
++
+ static int log_syslog;
+ static int verbose;
+ static int reuseaddr;
+@@ -922,8 +924,13 @@
+ return service_loop(socknum, socklist);
+ }
+
++#endif /* __INTERIX */
++
+ int main(int argc, char **argv)
+ {
++#ifdef __INTERIX
++ die("not implemented on interix!");
++#else /* !__INTERIX */
+ int listen_port = 0;
+ char *listen_addr = NULL;
+ int inetd_mode = 0;
+@@ -1121,4 +1128,5 @@
+ store_pid(pid_file);
+
+ return serve(listen_addr, listen_port, pass, gid);
++#endif /* __INTERIX */
+ }
+--- git-compat-util.h
++++ git-compat-util.h
+@@ -93,7 +93,9 @@
+ #include <utime.h>
+ #ifndef __MINGW32__
+ #include <sys/wait.h>
++#ifndef __INTERIX
+ #include <sys/poll.h>
++#endif
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #ifndef NO_SYS_SELECT_H
+@@ -104,7 +106,11 @@
+ #include <arpa/inet.h>
+ #include <netdb.h>
+ #include <pwd.h>
++#ifndef __INTERIX
+ #include <inttypes.h>
++#else
++#include <stdint.h>
++#endif
+ #if defined(__CYGWIN__)
+ #undef _XOPEN_SOURCE
+ #include <grp.h>
+--- upload-pack.c
++++ upload-pack.c
+@@ -150,6 +150,7 @@
+
+ static void create_pack_file(void)
+ {
++#ifndef __INTERIX
+ struct async rev_list;
+ struct child_process pack_objects;
+ int create_full_pack = (nr_our_refs == want_obj.nr && !have_obj.nr);
+@@ -328,6 +329,9 @@
+ fail:
+ send_client_data(3, abort_msg, sizeof(abort_msg));
+ die("git upload-pack: %s", abort_msg);
++#else /* __INTERIX */
++ die("git upload-pack: not implemented on interix!");
++#endif /* __INTERIX */
+ }
+
+ static int got_sha1(char *hex, unsigned char *sha1)
diff --git a/dev-vcs/git/git-1.7.2-r1.ebuild b/dev-vcs/git/git-1.7.2-r1.ebuild
new file mode 100644
index 000000000000..4d8f1e6cf0d7
--- /dev/null
+++ b/dev-vcs/git/git-1.7.2-r1.ebuild
@@ -0,0 +1,463 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-vcs/git/git-1.7.2-r1.ebuild,v 1.1 2010/07/22 21:34:50 darkside Exp $
+
+EAPI=3
+
+inherit toolchain-funcs eutils elisp-common perl-module bash-completion
+[ "$PV" == "9999" ] && inherit git
+
+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="mirror://kernel/software/scm/git/${MY_P}.tar.bz2
+ mirror://kernel/software/scm/git/${PN}-manpages-${DOC_VER}.tar.bz2
+ doc? ( mirror://kernel/software/scm/git/${PN}-htmldocs-${DOC_VER}.tar.bz2 )"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~sparc-fbsd ~x86-fbsd ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+else
+ SRC_URI=""
+ EGIT_BRANCH="master"
+ EGIT_REPO_URI="git://git.kernel.org/pub/scm/git/git.git"
+ # EGIT_REPO_URI="http://www.kernel.org/pub/scm/git/git.git"
+ KEYWORDS=""
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+blksha1 +curl cgi doc emacs gtk iconv +perl ppcsha1 tk +threads +webdav xinetd cvs subversion"
+
+# Common to both DEPEND and RDEPEND
+CDEPEND="
+ !blksha1? ( dev-libs/openssl )
+ sys-libs/zlib
+ perl? ( dev-lang/perl )
+ tk? ( dev-lang/tk )
+ curl? (
+ net-misc/curl
+ webdav? ( dev-libs/expat )
+ )
+ emacs? ( virtual/emacs )"
+
+RDEPEND="${CDEPEND}
+ perl? ( dev-perl/Error
+ dev-perl/Net-SMTP-SSL
+ dev-perl/Authen-SASL
+ cgi? ( virtual/perl-CGI )
+ cvs? ( >=dev-vcs/cvsps-2.1 dev-perl/DBI dev-perl/DBD-SQLite )
+ subversion? ( dev-vcs/subversion[-dso,perl] dev-perl/libwww-perl dev-perl/TermReadKey )
+ )
+ gtk?
+ (
+ >=dev-python/pygtk-2.8
+ || ( dev-python/pygtksourceview:2 dev-python/gtksourceview-python )
+ )"
+
+# This is how info docs are created with Git:
+# .txt/asciidoc --(asciidoc)---------> .xml/docbook
+# .xml/docbook --(docbook2texi.pl)--> .texi
+# .texi --(makeinfo)---------> .info
+DEPEND="${CDEPEND}
+ app-arch/cpio
+ doc? (
+ app-text/asciidoc
+ app-text/docbook2X
+ sys-apps/texinfo
+ )"
+
+# Live ebuild builds HTML docs, additionally
+if [ "$PV" == "9999" ]; then
+ DEPEND="${DEPEND}
+ doc? (
+ app-text/xmlto
+ )"
+fi
+
+SITEFILE=50${PN}-gentoo.el
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ if ! use perl ; then
+ use cgi && ewarn "gitweb needs USE=perl, ignoring USE=cgi"
+ use cvs && ewarn "CVS integration needs USE=perl, ignoring USE=cvs"
+ use subversion && ewarn "git-svn needs USE=perl, it won't work"
+ fi
+ if use webdav && ! use curl ; then
+ ewarn "USE=webdav needs USE=curl. Ignoring"
+ fi
+ if use subversion && has_version dev-vcs/subversion && built_with_use --missing false 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
+}
+
+# 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="${myopts} BLK_SHA1=YesPlease"
+ elif use ppcsha1 ; then
+ myopts="${myopts} PPC_SHA1=YesPlease"
+ fi
+
+ if use curl ; then
+ use webdav || myopts="${myopts} NO_EXPAT=YesPlease"
+ else
+ myopts="${myopts} NO_CURL=YesPlease"
+ fi
+
+ # broken assumptions, because of broken build system ...
+ myopts="${myopts} NO_FINK=YesPlease NO_DARWIN_PORTS=YesPlease"
+ myopts="${myopts} INSTALL=install TAR=tar"
+ myopts="${myopts} SHELL_PATH=${EPREFIX}/bin/bash"
+ myopts="${myopts} SANE_TOOL_PATH="
+ myopts="${myopts} OLD_ICONV="
+ myopts="${myopts} NO_EXTERNAL_GREP="
+
+ # can't define this to null, since the entire makefile depends on it
+ sed -i -e '/\/usr\/local/s/BASIC_/#BASIC_/' Makefile
+ use !elibc_glibc && use iconv && myopts="${myopts} NEEDS_LIBICONV=YesPlease"
+
+ use iconv \
+ || einfo "Forcing iconv for 1.7.1-r1 due to bugs #321895, #322205."
+ # || myopts="${myopts} NO_ICONV=YesPlease"
+ use tk \
+ || myopts="${myopts} NO_TCLTK=YesPlease"
+ use perl \
+ && myopts="${myopts} INSTALLDIRS=vendor" \
+ || myopts="${myopts} NO_PERL=YesPlease"
+ use threads \
+ && myopts="${myopts} THREADED_DELTA_SEARCH=YesPlease"
+ use subversion \
+ || myopts="${myopts} NO_SVN_TESTS=YesPlease"
+# Disabled until ~m68k-mint can be keyworded again
+# if [[ ${CHOST} == *-mint* ]] ; then
+# myopts="${myopts} NO_MMAP=YesPlease"
+# myopts="${myopts} NO_IPV6=YesPlease"
+# myopts="${myopts} NO_STRLCPY=YesPlease"
+# myopts="${myopts} NO_MEMMEM=YesPlease"
+# myopts="${myopts} NO_MKDTEMP=YesPlease"
+# myopts="${myopts} NO_MKSTEMPS=YesPlease"
+# fi
+ if [[ ${CHOST} == *-interix* ]] ; then
+ myopts="${myopts} NO_IPV6=YesPlease"
+ myopts="${myopts} NO_MEMMEM=YesPlease"
+ myopts="${myopts} NO_MKDTEMP=YesPlease"
+ myopts="${myopts} NO_STRTOUMAX=YesPlease"
+ myopts="${myopts} NO_STRTOULL=YesPlease"
+ myopts="${myopts} NO_INET_NTOP=YesPlease"
+ myopts="${myopts} NO_INET_PTON=YesPlease"
+ myopts="${myopts} NO_NSEC=YesPlease"
+ myopts="${myopts} NO_MKSTEMPS=YesPlease"
+ fi
+ if [[ ${CHOST} == ia64-*-hpux* ]]; then
+ myopts="${myopts} NO_NSEC=YesPlease"
+ fi
+
+ has_version '>=app-text/asciidoc-8.0' \
+ && myopts="${myopts} ASCIIDOC8=YesPlease"
+ myopts="${myopts} ASCIIDOC_NO_ROFF=YesPlease"
+
+ # Bug 290465:
+ # builtin-fetch-pack.c:816: error: 'struct stat' has no member named 'st_mtim'
+ [[ "${CHOST}" == *-uclibc* ]] && \
+ myopts="${myopts} NO_NSEC=YesPlease"
+
+ export MY_MAKEOPTS="${myopts}"
+}
+
+src_unpack() {
+ if [ "${PV}" != "9999" ]; then
+ unpack ${MY_P}.tar.bz2
+ cd "${S}"
+ unpack ${PN}-manpages-${DOC_VER}.tar.bz2
+ use doc && \
+ cd "${S}"/Documentation && \
+ unpack ${PN}-htmldocs-${DOC_VER}.tar.bz2
+ cd "${S}"
+ else
+ git_src_unpack
+ cd "${S}"
+ #cp "${FILESDIR}"/GIT-VERSION-GEN .
+ fi
+
+}
+
+src_prepare() {
+ # Noperl is being merged to upstream as of 2009/04/05
+ #epatch "${FILESDIR}"/20090305-git-1.6.2-noperl.patch
+
+ # GetOpt-Long v2.38 is strict
+ # Merged in 1.6.3 final 2009/05/07
+ #epatch "${FILESDIR}"/20090505-git-1.6.2.5-getopt-fixes.patch
+
+ # JS install fixup
+ epatch "${FILESDIR}"/git-1.7.2-always-install-js.patch
+
+ # USE=-iconv causes segfaults, fixed post 1.7.1
+ # Gentoo bug #321895
+ #epatch "${FILESDIR}"/git-1.7.1-noiconv-segfault-fix.patch
+
+ sed -i \
+ -e 's:^\(CFLAGS =\).*$:\1 $(OPTCFLAGS) -Wall:' \
+ -e 's:^\(LDFLAGS =\).*$:\1 $(OPTLDFLAGS):' \
+ -e 's:^\(CC = \).*$:\1$(OPTCC):' \
+ -e 's:^\(AR = \).*$:\1$(OPTAR):' \
+ -e "s:\(PYTHON_PATH = \)\(.*\)$:\1${EPREFIX}\2:" \
+ -e "s:\(PERL_PATH = \)\(.*\)$:\1${EPREFIX}\2:" \
+ 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 -i 's/DOCBOOK2X_TEXI=docbook2x-texi/DOCBOOK2X_TEXI=docbook2texi.pl/' \
+ Documentation/Makefile || die "sed failed"
+
+ # bug #318289
+ epatch "${FILESDIR}"/git-1.7.1-interix.patch
+ epatch "${FILESDIR}"/git-1.6.6.1-interix6.patch
+}
+
+git_emake() {
+ 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 \
+ "$@"
+}
+
+src_configure() {
+ exportmakeopts
+}
+
+src_compile() {
+ git_emake || die "emake failed"
+
+ if use emacs ; then
+ elisp-compile contrib/emacs/git{,-blame}.el \
+ || die "emacs modules failed"
+ fi
+
+ if use perl && use cgi ; then
+ git_emake \
+ gitweb/gitweb.cgi \
+ || die "emake gitweb/gitweb.cgi failed"
+ 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
+}
+
+src_install() {
+ git_emake \
+ install || \
+ die "make install failed"
+
+ doman man?/*.[157] 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
+
+ dobashcompletion contrib/completion/git-completion.bash ${PN}
+
+ if use emacs ; then
+ elisp-install ${PN} contrib/emacs/git.{el,elc} || die
+ elisp-install ${PN} contrib/emacs/git-blame.{el,elc} || die
+ #elisp-install ${PN}/compat contrib/emacs/vc-git.{el,elc} || die
+ # 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} || die
+ fi
+
+ if use gtk ; then
+ dobin "${S}"/contrib/gitview/gitview
+ dodoc "${S}"/contrib/gitview/gitview.txt
+ fi
+
+ dobin contrib/fast-import/git-p4
+ dodoc contrib/fast-import/git-p4.txt
+ newbin contrib/fast-import/import-tars.perl import-tars
+
+ dodir /usr/share/${PN}/contrib
+ # The following are excluded:
+ # svnimport - use git-svn
+ # p4import - excluded because fast-import has a better one
+ # examples - these are stuff that is not used in Git anymore actually
+ # patches - stuff the Git guys made to go upstream to other places
+ for i in continuous fast-import hg-to-git \
+ hooks remotes2config.sh stats \
+ workdir convert-objects blameview ; do
+ cp -rf \
+ "${S}"/contrib/${i} \
+ "${ED}"/usr/share/${PN}/contrib \
+ || die "Failed contrib ${i}"
+ done
+
+ if use perl && use cgi ; then
+ dodir /usr/share/${PN}/gitweb
+ insinto /usr/share/${PN}/gitweb
+ doins "${S}"/gitweb/gitweb.cgi
+ doins "${S}"/gitweb/gitweb.css
+ js=gitweb.js
+ [ -f "${S}"/gitweb/gitweb.min.js ] && js=gitweb.min.js
+ doins "${S}"/gitweb/${js}
+ doins "${S}"/gitweb/git-{favicon,logo}.png
+
+ # Make sure it can run
+ fperms 0755 /usr/share/${PN}/gitweb/gitweb.cgi
+
+ # 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 \{\} \;
+ 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
+
+ newinitd "${FILESDIR}"/git-daemon.initd git-daemon
+ newconfd "${FILESDIR}"/git-daemon.confd git-daemon
+
+ fixlocalpod
+}
+
+src_test() {
+ local disabled=""
+ local tests_cvs="t9200-git-cvsexportcommit.sh \
+ t9400-git-cvsserver-server.sh \
+ t9401-git-cvsserver-crlf.sh \
+ t9600-cvsimport.sh \
+ t9601-cvsimport-vendor-branch.sh \
+ t9602-cvsimport-branches-tags.sh \
+ t9603-cvsimport-patchsets.sh"
+ local tests_perl="t5502-quickfetch.sh \
+ t5512-ls-remote.sh \
+ t5520-pull.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 \
+ t1004-read-tree-m-u-wf.sh \
+ t3700-add.sh \
+ t7300-clean.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 ]] && \
+ built_with_use 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
+
+ # 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
+ cd "${S}"
+ # Now run the tests
+ einfo "Start test run"
+ git_emake \
+ test || die "tests failed"
+}
+
+showpkgdeps() {
+ local pkg=$1
+ shift
+ elog " $(printf "%-17s:" ${pkg}) ${@}"
+}
+
+pkg_postinst() {
+ use emacs && elisp-site-regen
+ if use subversion && has_version dev-vcs/subversion && ! built_with_use --missing false dev-vcs/subversion perl ; then
+ ewarn "You must build dev-vcs/subversion with USE=perl"
+ ewarn "to get the full functionality of git-svn!"
+ fi
+ elog "These additional scripts need some dependencies:"
+ echo
+ showpkgdeps git-quiltimport "dev-util/quilt"
+ showpkgdeps git-instaweb \
+ "|| ( www-servers/lighttpd www-servers/apache )"
+ echo
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}