blob: 01ebb512d74c0b672bc6ec1f1aad770b41d4af6f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/git/git-1.5.2.2.ebuild,v 1.3 2007/07/29 16:56:54 phreak Exp $
inherit toolchain-funcs eutils elisp-common perl-module bash-completion
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://git.or.cz/"
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 )"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
IUSE="curl doc elibc_uclibc emacs gtk mozsha1 perl ppcsha1 tk webdav"
DEPEND="dev-libs/openssl
sys-libs/zlib
!app-misc/git
curl? ( net-misc/curl )
webdav? ( dev-libs/expat )
emacs? ( virtual/emacs )"
RDEPEND="${DEPEND}
dev-lang/perl
perl? ( dev-perl/Error )
tk? ( dev-lang/tk )
gtk? ( >=dev-python/pygtk-2.8 )"
SITEFILE=71${PN}-gentoo.el
S="${WORKDIR}/${MY_P}"
# 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 mozsha1 ; then
myopts="${myopts} MOZILLA_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"
use webdav && ewarn "USE=webdav only matters with USE=curl. Ignoring."
fi
myopts="${myopts} WITH_SEND_EMAIL=YesPlease"
use elibc_uclibc && myopts="${myopts} NO_ICONV=YesPlease"
export MY_MAKEOPTS=${myopts}
}
showpkgdeps() {
local pkg=$1
shift
elog " $(printf "%-17s:" ${pkg}) ${@}"
}
src_unpack() {
unpack ${A}
cd ${S}
epatch "${FILESDIR}"/${PN}-1.5.0-symlinks.patch
sed -i \
-e "s:^\(CFLAGS = \).*$:\1${CFLAGS} -Wall:" \
-e "s:^\(LDFLAGS = \).*$:\1${LDFLAGS}:" \
-e "s:^\(CC = \).*$:\1$(tc-getCC):" \
-e "s:^\(AR = \).*$:\1$(tc-getAR):" \
-e 's:ln :ln -s :g' \
Makefile || die "sed failed"
exportmakeopts
}
src_compile() {
emake ${MY_MAKEOPTS} DESTDIR="${D}" prefix=/usr || die "make failed"
if use emacs ; then
elisp-compile contrib/emacs/{,vc-}git.el || die "emacs modules failed"
fi
}
src_install() {
emake ${MY_MAKEOPTS} DESTDIR="${D}" prefix=/usr install || \
die "make install failed"
use tk || rm "${D}"/usr/bin/gitk
doman "${WORKDIR}"/man?/*
dodoc README COPYING Documentation/SubmittingPatches
if use doc ; then
dodoc Documentation/technical/*
dodir /usr/share/doc/${PF}/html
cp -r "${WORKDIR}"/{*.html,howto} "${D}"/usr/share/doc/${PF}/html
fi
dobashcompletion contrib/completion/git-completion.bash ${PN}
if use emacs ; then
elisp-install ${PN} contrib/emacs/{,vc-}git.el* || \
die "elisp-install failed"
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
fi
if use gtk ; then
dobin contrib/gitview/gitview
use doc && dodoc contrib/gitview/gitview.txt
fi
insinto /etc/xinetd.d
newins "${FILESDIR}"/git-daemon.xinetd git-daemon
newinitd "${FILESDIR}"/git-daemon.initd git-daemon
newconfd "${FILESDIR}"/git-daemon.confd git-daemon
fixlocalpod
}
src_test() {
cd "${S}"
has_version dev-util/subversion || \
MY_MAKEOPTS="${MY_MAKEOPTS} NO_SVN_TESTS=YesPlease"
has_version app-arch/unzip || \
rm "${S}"/t/t5000-tar-tree.sh
# Stupid CVS won't let some people commit as root
rm "${S}"/t/t9200-git-cvsexportcommit.sh
emake ${MY_MAKEOPTS} DESTDIR="${D}" prefix=/usr test || die "tests failed"
}
pkg_postinst() {
use emacs && elisp-site-regen
elog "These additional scripts need some dependencies:"
echo
showpkgdeps git-archimport "dev-util/tla"
showpkgdeps git-cvsimport ">=dev-util/cvsps-2.1"
showpkgdeps git-svnimport "dev-util/subversion(USE=perl)"
showpkgdeps git-svn \
"dev-util/subversion(USE=perl)" \
"dev-perl/libwww-perl" \
"dev-perl/TermReadKey"
showpkgdeps git-quiltimport "dev-util/quilt"
showpkgdeps git-cvsserver "dev-perl/DBI" "dev-perl/DBD-SQLite"
showpkgdeps git-instaweb "|| ( www-servers/lighttpd www-servers/apache(SLOT=2) )"
showpkgdeps git-send-email "USE=perl"
showpkgdeps git-remote "USE=perl"
echo
}
pkg_postrm() {
use emacs && elisp-site-regen
}
|