1 |
scarabeus |
1.47 |
# Copyright 1999-2009 Gentoo Foundation |
2 |
ingmar |
1.1 |
# Distributed under the terms of the GNU General Public License v2 |
3 |
abcd |
1.51 |
# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.50 2009/10/28 14:23:43 abcd Exp $ |
4 |
ingmar |
1.1 |
|
5 |
|
|
# @ECLASS: kde4-base.eclass |
6 |
|
|
# @MAINTAINER: |
7 |
|
|
# kde@gentoo.org |
8 |
jmbsvicetto |
1.13 |
# @BLURB: This eclass provides functions for kde 4.X ebuilds |
9 |
ingmar |
1.1 |
# @DESCRIPTION: |
10 |
scarabeus |
1.22 |
# The kde4-base.eclass provides support for building KDE4 based ebuilds |
11 |
ingmar |
1.1 |
# and KDE4 applications. |
12 |
|
|
# |
13 |
scarabeus |
1.22 |
# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but |
14 |
|
|
# eclass will fail with version older than 2. |
15 |
|
|
|
16 |
abcd |
1.50 |
# @ECLASS-VARIABLE: WANT_CMAKE |
17 |
scarabeus |
1.44 |
# @DESCRIPTION: |
18 |
scarabeus |
1.47 |
# Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'. |
19 |
|
|
# Please note that if it's set to 'never' you need to explicitly override following phases: |
20 |
|
|
# src_configure, src_compile, src_test and src_install. |
21 |
|
|
# Defaults to 'always'. |
22 |
abcd |
1.51 |
WANT_CMAKE="${WANT_CMAKE:-${CMAKE_REQUIRED:-always}}" |
23 |
scarabeus |
1.47 |
if [[ ${WANT_CMAKE} = false || ${WANT_CMAKE} = never ]]; then |
24 |
|
|
buildsystem_eclass="" |
25 |
|
|
export_fns="" |
26 |
scarabeus |
1.44 |
else |
27 |
scarabeus |
1.47 |
buildsystem_eclass="cmake-utils" |
28 |
|
|
export_fns="src_configure src_compile src_test src_install" |
29 |
scarabeus |
1.44 |
fi |
30 |
|
|
|
31 |
scarabeus |
1.48 |
inherit kde4-functions |
32 |
|
|
|
33 |
scarabeus |
1.22 |
get_build_type |
34 |
scarabeus |
1.30 |
if [[ ${BUILD_TYPE} = live ]]; then |
35 |
scarabeus |
1.47 |
subversion_eclass="subversion" |
36 |
scarabeus |
1.22 |
fi |
37 |
|
|
|
38 |
scarabeus |
1.49 |
inherit base ${buildsystem_eclass} eutils ${subversion_eclass} |
39 |
scarabeus |
1.47 |
|
40 |
|
|
EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_postinst pkg_postrm |
41 |
scarabeus |
1.44 |
|
42 |
scarabeus |
1.47 |
unset buildsystem_eclass |
43 |
|
|
unset export_fns |
44 |
|
|
unset subversion_eclass |
45 |
ingmar |
1.1 |
|
46 |
wired |
1.43 |
case ${KDEBASE} in |
47 |
|
|
kde-base) |
48 |
|
|
HOMEPAGE="http://www.kde.org/" |
49 |
|
|
LICENSE="GPL-2" |
50 |
|
|
;; |
51 |
|
|
koffice) |
52 |
|
|
HOMEPAGE="http://www.koffice.org/" |
53 |
|
|
LICENSE="GPL-2" |
54 |
|
|
;; |
55 |
|
|
esac |
56 |
|
|
|
57 |
philantrop |
1.7 |
# @ECLASS-VARIABLE: OPENGL_REQUIRED |
58 |
|
|
# @DESCRIPTION: |
59 |
|
|
# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'. |
60 |
|
|
# This variable must be set before inheriting any eclasses. Defaults to 'never'. |
61 |
|
|
OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}" |
62 |
|
|
|
63 |
scarabeus |
1.31 |
# @ECLASS-VARIABLE: WEBKIT_REQUIRED |
64 |
|
|
# @DESCRIPTION: |
65 |
|
|
# Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'. |
66 |
|
|
# This variable must be set before inheriting any eclasses. Defaults to 'never'. |
67 |
|
|
WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}" |
68 |
|
|
|
69 |
zlin |
1.4 |
# @ECLASS-VARIABLE: CPPUNIT_REQUIRED |
70 |
|
|
# @DESCRIPTION: |
71 |
|
|
# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'. |
72 |
|
|
# This variable must be set before inheriting any eclasses. Defaults to 'never'. |
73 |
|
|
CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}" |
74 |
|
|
|
75 |
scarabeus |
1.34 |
# @ECLASS-VARIABLE: KDE_REQUIRED |
76 |
|
|
# @DESCRIPTION: |
77 |
|
|
# Is kde required? Possible values are 'always', 'optional' and 'never'. |
78 |
|
|
# This variable must be set before inheriting any eclasses. Defaults to 'always' |
79 |
|
|
# If set to always or optional, KDE_MINIMAL may be overriden as well. |
80 |
|
|
# Note that for kde-base packages this variable is fixed to 'always'. |
81 |
|
|
KDE_REQUIRED="${KDE_REQUIRED:-always}" |
82 |
|
|
|
83 |
|
|
# Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here) |
84 |
|
|
if [[ -n ${KDE_MINIMAL} ]]; then |
85 |
|
|
for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do |
86 |
|
|
[[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break |
87 |
|
|
done |
88 |
scarabeus |
1.37 |
unset slot |
89 |
scarabeus |
1.34 |
[[ -z ${KDE_MINIMAL_VALID} ]] && unset KDE_MINIMAL |
90 |
|
|
else |
91 |
|
|
KDE_MINIMAL_VALID=1 |
92 |
|
|
fi |
93 |
|
|
|
94 |
|
|
# @ECLASS-VARIABLE: KDE_MINIMAL |
95 |
|
|
# @DESCRIPTION: |
96 |
wired |
1.42 |
# This variable is used when KDE_REQUIRED is set, to specify required KDE minimal |
97 |
scarabeus |
1.45 |
# version for apps to work. Currently defaults to 4.3 |
98 |
scarabeus |
1.34 |
# One may override this variable to raise version requirements. |
99 |
|
|
# For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables. |
100 |
wired |
1.42 |
# Note that it is fixed to ${SLOT} for kde-base packages. |
101 |
alexxy |
1.46 |
KDE_MINIMAL="${KDE_MINIMAL:-4.3}" |
102 |
scarabeus |
1.34 |
|
103 |
scarabeus |
1.47 |
# Setup packages inheriting this eclass |
104 |
|
|
case ${KDEBASE} in |
105 |
|
|
kde-base) |
106 |
|
|
if [[ $BUILD_TYPE = live ]]; then |
107 |
|
|
# Disable tests for live ebuilds |
108 |
|
|
RESTRICT+=" test" |
109 |
|
|
# Live ebuilds in kde-base default to kdeprefix by default |
110 |
|
|
IUSE+=" +kdeprefix" |
111 |
|
|
else |
112 |
|
|
# All other ebuild types default to -kdeprefix as before |
113 |
|
|
IUSE+=" kdeprefix" |
114 |
|
|
fi |
115 |
|
|
# Determine SLOT from PVs |
116 |
|
|
case ${PV} in |
117 |
|
|
*.9999*) SLOT="${PV/.9999*/}" ;; # stable live |
118 |
|
|
4.4* | 4.3.[6-9]*) SLOT="4.4" ;; |
119 |
|
|
4.3*) SLOT="4.3" ;; |
120 |
|
|
4.2*) SLOT="4.2" ;; |
121 |
|
|
9999*) SLOT="live" ;; # regular live |
122 |
|
|
*) die "Unsupported ${PV}" ;; |
123 |
|
|
esac |
124 |
|
|
# This code is to prevent portage from searching GENTOO_MIRRORS for |
125 |
|
|
# packages that will never be mirrored. (As they only will ever be in |
126 |
|
|
# the overlay). |
127 |
|
|
case ${PV} in |
128 |
|
|
*9999* | 4.?.[6-9]?) |
129 |
|
|
RESTRICT+=" mirror" |
130 |
|
|
;; |
131 |
|
|
esac |
132 |
|
|
KDE_MINIMAL="${SLOT}" |
133 |
|
|
_kdedir="${SLOT}" |
134 |
|
|
|
135 |
|
|
# Block installation of other SLOTS unless kdeprefix |
136 |
|
|
RDEPEND+=" $(block_other_slots)" |
137 |
|
|
;; |
138 |
|
|
koffice) |
139 |
|
|
SLOT="2" |
140 |
|
|
;; |
141 |
|
|
esac |
142 |
scarabeus |
1.34 |
|
143 |
scarabeus |
1.47 |
# @ECLASS-VARIABLE: QT_MINIMAL |
144 |
scarabeus |
1.39 |
# @DESCRIPTION: |
145 |
|
|
# Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1.. |
146 |
scarabeus |
1.47 |
# Currently defaults to 4.5.1 for KDE 4.3 and earlier |
147 |
|
|
# or 4.6.0_beta for KDE 4.4 and later |
148 |
|
|
if slot_is_at_least 4.4 "${KDE_MINIMAL}"; then |
149 |
|
|
QT_MINIMAL="${QT_MINIMAL:-4.6.0_beta}" |
150 |
|
|
fi |
151 |
|
|
|
152 |
|
|
QT_MINIMAL="${QT_MINIMAL:-4.5.1}" |
153 |
scarabeus |
1.39 |
|
154 |
scarabeus |
1.34 |
# OpenGL dependencies |
155 |
|
|
qtopengldepend=" |
156 |
scarabeus |
1.47 |
>=x11-libs/qt-opengl-${QT_MINIMAL}:4 |
157 |
scarabeus |
1.34 |
" |
158 |
|
|
case ${OPENGL_REQUIRED} in |
159 |
|
|
always) |
160 |
wired |
1.42 |
COMMONDEPEND+=" ${qtopengldepend}" |
161 |
scarabeus |
1.34 |
;; |
162 |
|
|
optional) |
163 |
wired |
1.42 |
IUSE+=" opengl" |
164 |
|
|
COMMONDEPEND+=" opengl? ( ${qtopengldepend} )" |
165 |
scarabeus |
1.34 |
;; |
166 |
|
|
*) ;; |
167 |
|
|
esac |
168 |
|
|
unset qtopengldepend |
169 |
|
|
|
170 |
|
|
# WebKit dependencies |
171 |
scarabeus |
1.44 |
case ${KDE_REQUIRED} in |
172 |
|
|
always) |
173 |
|
|
qtwebkitusedeps="[kde]" |
174 |
|
|
;; |
175 |
|
|
optional) |
176 |
|
|
qtwebkitusedeps="[kde?]" |
177 |
|
|
;; |
178 |
|
|
*) ;; |
179 |
|
|
esac |
180 |
scarabeus |
1.34 |
qtwebkitdepend=" |
181 |
scarabeus |
1.47 |
>=x11-libs/qt-webkit-${QT_MINIMAL}:4${qtwebkitusedeps} |
182 |
scarabeus |
1.34 |
" |
183 |
scarabeus |
1.44 |
unset qtwebkitusedeps |
184 |
scarabeus |
1.34 |
case ${WEBKIT_REQUIRED} in |
185 |
|
|
always) |
186 |
wired |
1.42 |
COMMONDEPEND+=" ${qtwebkitdepend}" |
187 |
scarabeus |
1.34 |
;; |
188 |
|
|
optional) |
189 |
wired |
1.42 |
IUSE+=" webkit" |
190 |
|
|
COMMONDEPEND+=" webkit? ( ${qtwebkitdepend} )" |
191 |
scarabeus |
1.34 |
;; |
192 |
|
|
*) ;; |
193 |
|
|
esac |
194 |
|
|
unset qtwebkitdepend |
195 |
|
|
|
196 |
|
|
# CppUnit dependencies |
197 |
|
|
cppuintdepend=" |
198 |
|
|
dev-util/cppunit |
199 |
|
|
" |
200 |
scarabeus |
1.22 |
case ${CPPUNIT_REQUIRED} in |
201 |
zlin |
1.4 |
always) |
202 |
wired |
1.42 |
DEPEND+=" ${cppuintdepend}" |
203 |
scarabeus |
1.22 |
;; |
204 |
zlin |
1.4 |
optional) |
205 |
wired |
1.42 |
IUSE+=" test" |
206 |
|
|
DEPEND+=" test? ( ${cppuintdepend} )" |
207 |
scarabeus |
1.22 |
;; |
208 |
scarabeus |
1.34 |
*) ;; |
209 |
zlin |
1.4 |
esac |
210 |
scarabeus |
1.34 |
unset cppuintdepend |
211 |
|
|
|
212 |
|
|
# KDE dependencies |
213 |
|
|
kdecommondepend=" |
214 |
|
|
dev-lang/perl |
215 |
scarabeus |
1.47 |
>=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl] |
216 |
|
|
>=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus] |
217 |
|
|
>=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility,kde] |
218 |
|
|
>=x11-libs/qt-script-${QT_MINIMAL}:4 |
219 |
|
|
>=x11-libs/qt-sql-${QT_MINIMAL}:4[qt3support] |
220 |
|
|
>=x11-libs/qt-svg-${QT_MINIMAL}:4 |
221 |
|
|
>=x11-libs/qt-test-${QT_MINIMAL}:4 |
222 |
wired |
1.42 |
!aqua? ( |
223 |
|
|
x11-libs/libXext |
224 |
|
|
x11-libs/libXt |
225 |
|
|
x11-libs/libXxf86vm |
226 |
|
|
) |
227 |
scarabeus |
1.34 |
" |
228 |
|
|
if [[ ${PN} != kdelibs ]]; then |
229 |
|
|
if [[ ${KDEBASE} = kde-base ]]; then |
230 |
scarabeus |
1.47 |
kdecommondepend+=" $(add_kdebase_dep kdelibs)" |
231 |
alexxy |
1.46 |
# libknotificationitem only when SLOT is 4.3 |
232 |
scarabeus |
1.47 |
[[ ${PN} != libknotificationitem ]] && [[ ${SLOT} = 4.3 ]] && \ |
233 |
|
|
kdecommondepend+=" $(add_kdebase_dep libknotificationitem)" |
234 |
scarabeus |
1.34 |
else |
235 |
wired |
1.42 |
kdecommondepend+=" |
236 |
scarabeus |
1.47 |
>=kde-base/kdelibs-${KDE_MINIMAL} |
237 |
scarabeus |
1.31 |
" |
238 |
ingmar |
1.1 |
fi |
239 |
|
|
fi |
240 |
scarabeus |
1.34 |
kdedepend=" |
241 |
|
|
dev-util/pkgconfig |
242 |
|
|
" |
243 |
|
|
case ${KDE_REQUIRED} in |
244 |
|
|
always) |
245 |
wired |
1.42 |
IUSE+=" aqua" |
246 |
|
|
COMMONDEPEND+=" ${kdecommondepend}" |
247 |
|
|
DEPEND+=" ${kdedepend}" |
248 |
scarabeus |
1.34 |
;; |
249 |
|
|
optional) |
250 |
wired |
1.42 |
IUSE+=" aqua kde" |
251 |
|
|
COMMONDEPEND+=" kde? ( ${kdecommondepend} )" |
252 |
|
|
DEPEND+=" kde? ( ${kdedepend} )" |
253 |
scarabeus |
1.34 |
;; |
254 |
|
|
*) ;; |
255 |
|
|
esac |
256 |
|
|
unset kdecommondepend kdedepend |
257 |
|
|
|
258 |
|
|
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}" |
259 |
|
|
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}" |
260 |
|
|
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}" |
261 |
|
|
|
262 |
|
|
# Accumulate dependencies set by this eclass |
263 |
wired |
1.42 |
DEPEND+=" ${COMMONDEPEND}" |
264 |
|
|
RDEPEND+=" ${COMMONDEPEND}" |
265 |
|
|
unset COMMONDEPEND |
266 |
ingmar |
1.1 |
|
267 |
|
|
# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a |
268 |
|
|
# koffice ebuild, the URI should be set in the ebuild itself |
269 |
scarabeus |
1.30 |
case ${BUILD_TYPE} in |
270 |
scarabeus |
1.22 |
live) |
271 |
scarabeus |
1.37 |
# Determine branch URL based on live type |
272 |
|
|
local branch_prefix |
273 |
|
|
case ${PV} in |
274 |
|
|
9999*) |
275 |
|
|
# trunk |
276 |
|
|
branch_prefix="trunk/KDE" |
277 |
|
|
;; |
278 |
|
|
*) |
279 |
|
|
# branch |
280 |
|
|
branch_prefix="branches/KDE/${SLOT}" |
281 |
|
|
# @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX |
282 |
|
|
# @DESCRIPTION |
283 |
|
|
# Suffix appended to ESVN_PROJECT depending on fetched branch. |
284 |
|
|
# Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise. |
285 |
|
|
ESVN_PROJECT_SUFFIX="-${PV}" |
286 |
|
|
;; |
287 |
|
|
esac |
288 |
scarabeus |
1.30 |
SRC_URI="" |
289 |
scarabeus |
1.35 |
# @ECLASS-VARIABLE: ESVN_MIRROR |
290 |
|
|
# @DESCRIPTION: |
291 |
|
|
# This variable allows easy overriding of default kde mirror service |
292 |
|
|
# (anonsvn) with anything else you might want to use. |
293 |
scarabeus |
1.22 |
ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde} |
294 |
|
|
# Split ebuild, or extragear stuff |
295 |
scarabeus |
1.30 |
if [[ -n ${KMNAME} ]]; then |
296 |
scarabeus |
1.37 |
ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}" |
297 |
scarabeus |
1.34 |
if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then |
298 |
jmbsvicetto |
1.25 |
KMMODULE="${PN}" |
299 |
scarabeus |
1.22 |
fi |
300 |
|
|
# Split kde-base/ ebuilds: (they reside in trunk/KDE) |
301 |
|
|
case ${KMNAME} in |
302 |
|
|
kdebase-*) |
303 |
scarabeus |
1.37 |
ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}" |
304 |
scarabeus |
1.22 |
;; |
305 |
wired |
1.42 |
kdelibs-*) |
306 |
|
|
ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}" |
307 |
|
|
;; |
308 |
scarabeus |
1.22 |
kdereview) |
309 |
scarabeus |
1.30 |
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" |
310 |
scarabeus |
1.22 |
;; |
311 |
scarabeus |
1.34 |
kdesupport) |
312 |
|
|
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" |
313 |
scarabeus |
1.37 |
ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}" |
314 |
scarabeus |
1.34 |
;; |
315 |
scarabeus |
1.22 |
kde*) |
316 |
scarabeus |
1.37 |
ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}" |
317 |
scarabeus |
1.22 |
;; |
318 |
|
|
extragear*|playground*) |
319 |
scarabeus |
1.34 |
# Unpack them in toplevel dir, so that they won't conflict with kde4-meta |
320 |
|
|
# build packages from same svn location. |
321 |
scarabeus |
1.30 |
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" |
322 |
scarabeus |
1.37 |
ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}" |
323 |
scarabeus |
1.30 |
;; |
324 |
scarabeus |
1.22 |
koffice) |
325 |
|
|
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}" |
326 |
|
|
;; |
327 |
|
|
*) |
328 |
scarabeus |
1.30 |
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" |
329 |
scarabeus |
1.22 |
;; |
330 |
|
|
esac |
331 |
|
|
else |
332 |
|
|
# kdelibs, kdepimlibs |
333 |
scarabeus |
1.37 |
ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}" |
334 |
|
|
ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}" |
335 |
scarabeus |
1.22 |
fi |
336 |
scarabeus |
1.38 |
# @ECLASS-VARIABLE: ESVN_UP_FREQ |
337 |
|
|
# @DESCRIPTION: |
338 |
|
|
# This variable is used for specifying the timeout between svn synces |
339 |
|
|
# for kde-base and koffice modules. Does not affect misc apps. |
340 |
|
|
# Default value is 1 hour. |
341 |
|
|
[[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1} |
342 |
scarabeus |
1.22 |
;; |
343 |
|
|
*) |
344 |
scarabeus |
1.30 |
if [[ -n ${KDEBASE} ]]; then |
345 |
scarabeus |
1.22 |
if [[ -n ${KMNAME} ]]; then |
346 |
scarabeus |
1.30 |
case ${KMNAME} in |
347 |
|
|
kdebase-apps) |
348 |
|
|
_kmname="kdebase" ;; |
349 |
|
|
*) |
350 |
scarabeus |
1.34 |
_kmname="${KMNAME}" ;; |
351 |
scarabeus |
1.30 |
esac |
352 |
scarabeus |
1.22 |
else |
353 |
|
|
_kmname=${PN} |
354 |
|
|
fi |
355 |
|
|
_kmname_pv="${_kmname}-${PV}" |
356 |
|
|
case ${KDEBASE} in |
357 |
|
|
kde-base) |
358 |
|
|
case ${PV} in |
359 |
alexxy |
1.46 |
4.3.85 | 4.3.9[0568]) |
360 |
scarabeus |
1.37 |
# block for normally packed unstable releases |
361 |
|
|
SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;; |
362 |
alexxy |
1.46 |
4.3.[6-9]*) |
363 |
scarabeus |
1.31 |
SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;; |
364 |
scarabeus |
1.22 |
*) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;; |
365 |
|
|
esac |
366 |
|
|
;; |
367 |
|
|
koffice) |
368 |
scarabeus |
1.38 |
case ${PV} in |
369 |
alexxy |
1.46 |
2.0.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" ;; |
370 |
scarabeus |
1.38 |
*) SRC_URI="mirror://kde/stable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" ;; |
371 |
|
|
esac |
372 |
ingmar |
1.1 |
esac |
373 |
scarabeus |
1.30 |
unset _kmname _kmname_pv |
374 |
|
|
fi |
375 |
scarabeus |
1.22 |
;; |
376 |
|
|
esac |
377 |
ingmar |
1.1 |
|
378 |
|
|
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}" |
379 |
|
|
|
380 |
|
|
# @ECLASS-VARIABLE: PREFIX |
381 |
|
|
# @DESCRIPTION: |
382 |
scarabeus |
1.34 |
# Set the installation PREFIX for non kde-base applications. It defaults to /usr. |
383 |
|
|
# kde-base packages go into KDE4 installation directory (KDEDIR) by default. |
384 |
wired |
1.42 |
# No matter the PREFIX, package will be built against KDE installed in KDEDIR. |
385 |
ingmar |
1.1 |
|
386 |
|
|
# @FUNCTION: kde4-base_pkg_setup |
387 |
|
|
# @DESCRIPTION: |
388 |
scarabeus |
1.34 |
# Do the basic kdeprefix KDEDIR settings and determine with which kde should |
389 |
|
|
# optional applications link |
390 |
ingmar |
1.1 |
kde4-base_pkg_setup() { |
391 |
scarabeus |
1.30 |
debug-print-function ${FUNCNAME} "$@" |
392 |
ingmar |
1.1 |
|
393 |
scarabeus |
1.47 |
# Prefix compat: |
394 |
|
|
use prefix || EROOT=${ROOT} |
395 |
|
|
# Append missing trailing slash character |
396 |
|
|
[[ ${EROOT} = */ ]] || EROOT+="/" |
397 |
|
|
|
398 |
scarabeus |
1.34 |
# QA ebuilds |
399 |
|
|
[[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})." |
400 |
|
|
|
401 |
|
|
# Don't set KDEHOME during compilation, it will cause access violations |
402 |
jmbsvicetto |
1.13 |
unset KDEHOME |
403 |
|
|
|
404 |
scarabeus |
1.34 |
if [[ ${KDEBASE} = kde-base ]]; then |
405 |
|
|
if use kdeprefix; then |
406 |
wired |
1.42 |
KDEDIR="${EROOT}usr/kde/${_kdedir}" |
407 |
scarabeus |
1.34 |
else |
408 |
wired |
1.42 |
KDEDIR="${EROOT}usr" |
409 |
scarabeus |
1.34 |
fi |
410 |
|
|
PREFIX="${PREFIX:-${KDEDIR}}" |
411 |
scarabeus |
1.29 |
else |
412 |
scarabeus |
1.34 |
# Determine KDEDIR by loooking for the closest match with KDE_MINIMAL |
413 |
|
|
KDEDIR= |
414 |
|
|
local kde_minimal_met |
415 |
|
|
for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do |
416 |
|
|
[[ -z ${kde_minimal_met} ]] && [[ ${slot} = ${KDE_MINIMAL} ]] && kde_minimal_met=1 |
417 |
|
|
if [[ -n ${kde_minimal_met} ]] && has_version "kde-base/kdelibs:${slot}"; then |
418 |
|
|
if has_version "kde-base/kdelibs:${slot}[kdeprefix]"; then |
419 |
wired |
1.42 |
KDEDIR="${EROOT}usr/kde/${slot}" |
420 |
scarabeus |
1.34 |
else |
421 |
wired |
1.42 |
KDEDIR="${EROOT}usr" |
422 |
scarabeus |
1.34 |
fi |
423 |
|
|
break; |
424 |
|
|
fi |
425 |
|
|
done |
426 |
scarabeus |
1.37 |
unset slot |
427 |
scarabeus |
1.41 |
|
428 |
|
|
# Bail out if kdelibs required but not found |
429 |
|
|
if [[ ${KDE_REQUIRED} = always ]] || { [[ ${KDE_REQUIRED} = optional ]] && use kde; }; then |
430 |
|
|
[[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!" |
431 |
|
|
else |
432 |
wired |
1.42 |
[[ -z ${KDEDIR} ]] && KDEDIR="${EROOT}usr" |
433 |
scarabeus |
1.41 |
fi |
434 |
|
|
|
435 |
wired |
1.42 |
PREFIX="${PREFIX:-${EROOT}usr}" |
436 |
jmbsvicetto |
1.13 |
fi |
437 |
wired |
1.42 |
# Point pkg-config path to KDE *.pc files |
438 |
|
|
export PKG_CONFIG_PATH="${KDEDIR}/$(get_libdir)/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}" |
439 |
|
|
# Point to correct QT plugins path |
440 |
|
|
QT_PLUGIN_PATH="${KDEDIR}/$(get_libdir)/kde4/plugins/" |
441 |
jmbsvicetto |
1.13 |
|
442 |
scarabeus |
1.47 |
# Fix XDG collision with sandbox |
443 |
|
|
export XDG_CONFIG_HOME="${T}" |
444 |
scarabeus |
1.34 |
# Not needed anymore |
445 |
jmbsvicetto |
1.13 |
unset _kdedir |
446 |
zlin |
1.4 |
} |
447 |
|
|
|
448 |
|
|
# @FUNCTION: kde4-base_src_unpack |
449 |
|
|
# @DESCRIPTION: |
450 |
|
|
# This function unpacks the source tarballs for KDE4 applications. |
451 |
ingmar |
1.1 |
kde4-base_src_unpack() { |
452 |
scarabeus |
1.30 |
debug-print-function ${FUNCNAME} "$@" |
453 |
ingmar |
1.1 |
|
454 |
scarabeus |
1.30 |
if [[ ${BUILD_TYPE} = live ]]; then |
455 |
scarabeus |
1.23 |
migrate_store_dir |
456 |
scarabeus |
1.22 |
subversion_src_unpack |
457 |
ingmar |
1.1 |
else |
458 |
scarabeus |
1.30 |
base_src_unpack |
459 |
ingmar |
1.1 |
fi |
460 |
scarabeus |
1.22 |
} |
461 |
ingmar |
1.1 |
|
462 |
scarabeus |
1.44 |
# @FUNCTION: kde4-base_src_prepare |
463 |
scarabeus |
1.22 |
# @DESCRIPTION: |
464 |
|
|
# General pre-configure and pre-compile function for KDE4 applications. |
465 |
|
|
# It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and |
466 |
wired |
1.42 |
# enable_selected_linguas() and enable_selected_doc_linguas() |
467 |
|
|
# in kde4-functions.eclass(5) for further details. |
468 |
scarabeus |
1.22 |
kde4-base_src_prepare() { |
469 |
|
|
debug-print-function ${FUNCNAME} "$@" |
470 |
zlin |
1.8 |
|
471 |
|
|
# Only enable selected languages, used for KDE extragear apps. |
472 |
scarabeus |
1.30 |
if [[ -n ${KDE_LINGUAS} ]]; then |
473 |
zlin |
1.8 |
enable_selected_linguas |
474 |
|
|
fi |
475 |
ingmar |
1.1 |
|
476 |
wired |
1.42 |
# Enable/disable handbooks for kde4-base packages |
477 |
scarabeus |
1.44 |
# kde-l10n inherits kde4-base but is metpackage, so no check for doc |
478 |
|
|
# kdelibs inherits kde4-base but handle installing the handbook itself |
479 |
wired |
1.42 |
if ! has kde4-meta ${INHERITED}; then |
480 |
scarabeus |
1.44 |
has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas |
481 |
wired |
1.42 |
fi |
482 |
|
|
|
483 |
scarabeus |
1.38 |
[[ ${BUILD_TYPE} = live ]] && subversion_src_prepare |
484 |
scarabeus |
1.22 |
base_src_prepare |
485 |
scarabeus |
1.20 |
|
486 |
scarabeus |
1.22 |
# Save library dependencies |
487 |
scarabeus |
1.30 |
if [[ -n ${KMSAVELIBS} ]] ; then |
488 |
scarabeus |
1.22 |
save_library_dependencies |
489 |
|
|
fi |
490 |
scarabeus |
1.20 |
|
491 |
scarabeus |
1.22 |
# Inject library dependencies |
492 |
scarabeus |
1.30 |
if [[ -n ${KMLOADLIBS} ]] ; then |
493 |
scarabeus |
1.22 |
load_library_dependencies |
494 |
jmbsvicetto |
1.13 |
fi |
495 |
ingmar |
1.1 |
} |
496 |
|
|
|
497 |
|
|
# @FUNCTION: kde4-base_src_configure |
498 |
|
|
# @DESCRIPTION: |
499 |
|
|
# Function for configuring the build of KDE4 applications. |
500 |
|
|
kde4-base_src_configure() { |
501 |
|
|
debug-print-function ${FUNCNAME} "$@" |
502 |
|
|
|
503 |
scarabeus |
1.31 |
# Handle common release builds |
504 |
|
|
if ! has debug ${IUSE//+} || ! use debug; then |
505 |
|
|
append-cppflags -DQT_NO_DEBUG |
506 |
ingmar |
1.1 |
fi |
507 |
|
|
|
508 |
|
|
# Build tests in src_test only, where we override this value |
509 |
scarabeus |
1.34 |
local cmakeargs="-DKDE4_BUILD_TESTS=OFF" |
510 |
ingmar |
1.1 |
|
511 |
scarabeus |
1.38 |
# set "real" debug mode |
512 |
|
|
if has debug ${IUSE//+} && use debug; then |
513 |
|
|
CMAKE_BUILD_TYPE="Debugfull" |
514 |
|
|
fi |
515 |
|
|
|
516 |
ingmar |
1.1 |
# Set distribution name |
517 |
wired |
1.42 |
[[ ${PN} = kdelibs ]] && cmakeargs+=" -DKDE_DISTRIBUTION_TEXT=Gentoo" |
518 |
ingmar |
1.1 |
|
519 |
|
|
# Here we set the install prefix |
520 |
wired |
1.42 |
cmakeargs+=" -DCMAKE_INSTALL_PREFIX=${PREFIX}" |
521 |
jmbsvicetto |
1.13 |
|
522 |
wired |
1.42 |
# Use colors |
523 |
ingmar |
1.1 |
QTEST_COLORED=1 |
524 |
jmbsvicetto |
1.13 |
|
525 |
scarabeus |
1.34 |
# Shadow existing /usr installations |
526 |
|
|
unset KDEDIRS |
527 |
|
|
|
528 |
scarabeus |
1.45 |
# Handle kdeprefix-ed KDE |
529 |
wired |
1.42 |
if [[ ${KDEDIR} != "${EROOT}usr" ]]; then |
530 |
scarabeus |
1.37 |
# Override some environment variables - only when kdeprefix is different, |
531 |
|
|
# to not break ccache/distcc |
532 |
scarabeus |
1.34 |
PATH="${KDEDIR}/bin:${PATH}" |
533 |
|
|
LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}" |
534 |
scarabeus |
1.37 |
|
535 |
|
|
# Append full RPATH |
536 |
wired |
1.42 |
cmakeargs+=" -DCMAKE_SKIP_RPATH=OFF" |
537 |
scarabeus |
1.34 |
|
538 |
scarabeus |
1.45 |
# Set cmake prefixes to allow buildsystem to locate valid KDE installation |
539 |
scarabeus |
1.34 |
# when more are present |
540 |
wired |
1.42 |
cmakeargs+=" -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR}" |
541 |
scarabeus |
1.45 |
fi |
542 |
|
|
|
543 |
|
|
# Handle kdeprefix in application itself |
544 |
|
|
if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then |
545 |
scarabeus |
1.34 |
# If prefix is /usr, sysconf needs to be /etc, not /usr/etc |
546 |
wired |
1.42 |
cmakeargs+=" -DSYSCONF_INSTALL_DIR=${EROOT}etc" |
547 |
scarabeus |
1.22 |
fi |
548 |
|
|
|
549 |
scarabeus |
1.34 |
mycmakeargs="${cmakeargs} ${mycmakeargs}" |
550 |
|
|
|
551 |
|
|
cmake-utils_src_configure |
552 |
scarabeus |
1.22 |
} |
553 |
|
|
|
554 |
|
|
# @FUNCTION: kde4-base_src_compile |
555 |
|
|
# @DESCRIPTION: |
556 |
|
|
# General function for compiling KDE4 applications. |
557 |
|
|
kde4-base_src_compile() { |
558 |
|
|
debug-print-function ${FUNCNAME} "$@" |
559 |
|
|
|
560 |
wired |
1.42 |
cmake-utils_src_compile "$@" |
561 |
ingmar |
1.1 |
} |
562 |
|
|
|
563 |
|
|
# @FUNCTION: kde4-base_src_test |
564 |
|
|
# @DESCRIPTION: |
565 |
|
|
# Function for testing KDE4 applications. |
566 |
|
|
kde4-base_src_test() { |
567 |
|
|
debug-print-function ${FUNCNAME} "$@" |
568 |
|
|
|
569 |
|
|
# Override this value, set in kde4-base_src_configure() |
570 |
wired |
1.42 |
mycmakeargs+=" -DKDE4_BUILD_TESTS=ON" |
571 |
scarabeus |
1.30 |
cmake-utils_src_configure |
572 |
|
|
kde4-base_src_compile |
573 |
ingmar |
1.1 |
|
574 |
|
|
cmake-utils_src_test |
575 |
|
|
} |
576 |
|
|
|
577 |
|
|
# @FUNCTION: kde4-base_src_install |
578 |
|
|
# @DESCRIPTION: |
579 |
|
|
# Function for installing KDE4 applications. |
580 |
|
|
kde4-base_src_install() { |
581 |
|
|
debug-print-function ${FUNCNAME} "$@" |
582 |
|
|
|
583 |
scarabeus |
1.30 |
if [[ -n ${KMSAVELIBS} ]] ; then |
584 |
scarabeus |
1.22 |
install_library_dependencies |
585 |
|
|
fi |
586 |
|
|
|
587 |
ingmar |
1.1 |
kde4-base_src_make_doc |
588 |
scarabeus |
1.32 |
cmake-utils_src_install |
589 |
ingmar |
1.1 |
} |
590 |
|
|
|
591 |
|
|
# @FUNCTION: kde4-base_src_make_doc |
592 |
|
|
# @DESCRIPTION: |
593 |
|
|
# Function for installing the documentation of KDE4 applications. |
594 |
|
|
kde4-base_src_make_doc() { |
595 |
|
|
debug-print-function ${FUNCNAME} "$@" |
596 |
|
|
|
597 |
|
|
local doc |
598 |
|
|
for doc in AUTHORS ChangeLog* README* NEWS TODO; do |
599 |
scarabeus |
1.30 |
[[ -s ${doc} ]] && dodoc ${doc} |
600 |
ingmar |
1.1 |
done |
601 |
|
|
|
602 |
scarabeus |
1.30 |
if [[ -z ${KMNAME} ]]; then |
603 |
ingmar |
1.1 |
for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do |
604 |
scarabeus |
1.30 |
if [[ -s ${doc} ]]; then |
605 |
ingmar |
1.1 |
local doc_complete=${doc} |
606 |
|
|
doc="${doc#*/}" |
607 |
|
|
newdoc "$doc_complete" "${doc%/*}.${doc##*/}" |
608 |
|
|
fi |
609 |
|
|
done |
610 |
|
|
fi |
611 |
|
|
|
612 |
wired |
1.42 |
if [[ -n ${KDEBASE} ]] && [[ -d "${D}${EROOT}usr/share/doc/${PF}" ]]; then |
613 |
ingmar |
1.1 |
# work around bug #97196 |
614 |
scarabeus |
1.34 |
dodir /usr/share/doc/KDE4 && \ |
615 |
alexxy |
1.46 |
cp -r "${D}${EROOT}usr/share/doc/${PF}" "${D}${EROOT}usr/share/doc/KDE4/" || \ |
616 |
scarabeus |
1.34 |
die "Failed to move docs to KDE4/." |
617 |
alexxy |
1.46 |
rm -rf "${D}${EROOT}usr/share/doc/${PF}" |
618 |
ingmar |
1.1 |
fi |
619 |
|
|
} |
620 |
|
|
|
621 |
|
|
# @FUNCTION: kde4-base_pkg_postinst |
622 |
|
|
# @DESCRIPTION: |
623 |
|
|
# Function to rebuild the KDE System Configuration Cache after an application has been installed. |
624 |
|
|
kde4-base_pkg_postinst() { |
625 |
scarabeus |
1.30 |
debug-print-function ${FUNCNAME} "$@" |
626 |
|
|
|
627 |
ingmar |
1.1 |
buildsycoca |
628 |
scarabeus |
1.36 |
|
629 |
|
|
if [[ ${BUILD_TYPE} = live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then |
630 |
|
|
echo |
631 |
wired |
1.42 |
einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}" |
632 |
scarabeus |
1.36 |
einfo "Use it at your own risk." |
633 |
|
|
einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!" |
634 |
|
|
echo |
635 |
scarabeus |
1.39 |
elif [[ ${BUILD_TYPE} != live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then |
636 |
|
|
# warning about kdeprefix for non-live users |
637 |
|
|
echo |
638 |
wired |
1.42 |
ewarn "WARNING! You have the kdeprefix useflag enabled." |
639 |
|
|
ewarn "This setting is strongly discouraged and might lead to potential trouble" |
640 |
scarabeus |
1.39 |
ewarn "with KDE update strategies." |
641 |
wired |
1.42 |
ewarn "You are using this setup at your own risk and the kde team does not" |
642 |
scarabeus |
1.39 |
ewarn "take responsibilities for dead kittens." |
643 |
|
|
echo |
644 |
scarabeus |
1.36 |
fi |
645 |
ingmar |
1.1 |
} |
646 |
|
|
|
647 |
|
|
# @FUNCTION: kde4-base_pkg_postrm |
648 |
|
|
# @DESCRIPTION: |
649 |
|
|
# Function to rebuild the KDE System Configuration Cache after an application has been removed. |
650 |
|
|
kde4-base_pkg_postrm() { |
651 |
scarabeus |
1.30 |
debug-print-function ${FUNCNAME} "$@" |
652 |
|
|
|
653 |
ingmar |
1.1 |
buildsycoca |
654 |
|
|
} |