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
164
165
166
167
168
169
170
171
172
173
|
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/www-apps/trac/trac-0.11.2.ebuild,v 1.3 2008/11/16 17:47:23 maekke Exp $
inherit distutils webapp subversion
MY_PV=${PV/_beta/b}
MY_P=Trac-${MY_PV}
S=${WORKDIR}/${MY_P}
DESCRIPTION="Trac is a minimalistic web-based project management, wiki and bug/issue tracking system."
HOMEPAGE="http://trac.edgewall.com/"
LICENSE="trac"
SRC_URI=""
IUSE="cgi fastcgi mysql multirepos postgres sqlite subversion"
if use multirepos ; then
ESVN_REPO_URI="http://svn.edgewall.com/repos/trac/sandbox/multirepos"
ESVN_PROJECT="${PN/-multirepos-svn}"
else
ESVN_REPO_URI="http://svn.edgewall.org/repos/trac/trunk"
ESVN_PROJECT="${PN/-svn}"
fi
ESVN_STORE_DIR="${DISTDIR}/svn-src"
#ESVN_BOOTSTRAP="./reconf"
S="${WORKDIR}/${P/_/}"
KEYWORDS="~x86 ~amd64"
# doing so because tools, python packages... overlap
SLOT="live"
WEBAPP_MANUAL_SLOT="yes"
DEPEND="
${DEPEND}
dev-python/setuptools
"
RDEPEND="
${RDEPEND}
>=dev-python/genshi-0.6
dev-python/pygments
>=dev-python/docutils-0.3.9
dev-python/pytz
cgi? (
virtual/httpd-cgi
)
fastcgi? (
virtual/httpd-fastcgi
)
mysql? (
>=dev-python/mysql-python-1.2.1
>=virtual/mysql-4.1
)
postgres? (
>=dev-python/psycopg-2
)
sqlite? (
>=dev-db/sqlite-3.3.4
|| (
>=dev-lang/python-2.5
>=dev-python/pysqlite-2.3.2
)
)
subversion? (
>=dev-util/subversion-1.4.2
)
!www-apps/trac-webadmin
"
# The following function should be added to eutils.eclass (see bug #143572):
# Generate an standard error message for missing USE flags
# in existing packages, and die.
#
# Usage: built_with_use_die <category/package> <functionality> [<USE flag>]
# ex: built_with_use_die dev-util/subversion python
# or: built_with_use_die www-servers/apache LDAP ldap
#
# Typical usage:
# if ! built_with_use dev-util/subversion python ; then
# built_with_use_die dev-util/subversion python
# fi
#
# Note: when <USE flag> is not specified, <functionality> is used for the USE flag name.
built_with_use_die() {
local package=$1
local func=$2
local use_flag=$3
[[ -z ${use_flag} ]] && use_flag=${func}
eerror "Your ${package} package has been built without"
eerror "${func} support, please enable the '${use_flag}' USE flag and"
eerror "re-emerge ${package}."
elog "You can enable this USE flag either globally in /etc/make.conf,"
elog "or just for specific packages in /etc/portage/package.use."
die "${package} missing ${func} support"
}
pkg_setup() {
webapp_pkg_setup
if ! use mysql && ! use postgres && ! use sqlite ; then
eerror "You must select at least one database backend, by enabling"
eerror "at least one of the 'mysql', 'postgres' or 'sqlite' USE flags."
die "no database backend selected"
fi
# python has built-in sqlite support starting from 2.5
if use sqlite && \
has_version ">=dev-lang/python-2.5" && \
! has_version ">=dev-python/pysqlite-2.3" && \
! built_with_use dev-lang/python sqlite ; then
eerror "To use the sqlite database backend, you must either:"
eerror "- build dev-lang/python with sqlite support, using the 'sqlite'"
eerror " USE flag, or"
eerror "- emerge dev-python/pysqlite"
die "missing python sqlite support"
fi
if use subversion && \
! built_with_use dev-util/subversion python ; then
built_with_use_die dev-util/subversion python
fi
enewgroup tracd
enewuser tracd -1 -1 -1 tracd
}
src_upack(){
subversion_src_unpack
cd ${S}
}
src_install() {
webapp_src_preinst
distutils_src_install
# project environments might go in here
keepdir /var/lib/trac
# Use this as the egg-cache for tracd
dodir /var/lib/trac/egg-cache
keepdir /var/lib/trac/egg-cache
fowners tracd:tracd /var/lib/trac/egg-cache
# documentation
cp -r contrib "${D}"/usr/share/doc/${P}/
# tracd init script
newconfd "${FILESDIR}"/tracd.confd tracd
newinitd "${FILESDIR}"/tracd.initd.2 tracd
if use cgi ; then
cp cgi-bin/trac.cgi "${D}"/${MY_CGIBINDIR} || die
fi
if use fastcgi ; then
cp cgi-bin/trac.fcgi "${D}"/${MY_CGIBINDIR} || die
fi
for lang in en; do
webapp_postinst_txt ${lang} "${FILESDIR}"/postinst-${lang}.txt
webapp_postupgrade_txt ${lang} "${FILESDIR}"/postupgrade-${lang}.txt
done
webapp_src_install
}
|