/[gentoo-x86]/eclass/kde4-base.eclass
Gentoo

Diff of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.58 Revision 1.76
1# Copyright 1999-2010 Gentoo Foundation 1# Copyright 1999-2010 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.58 2010/02/02 14:20:16 reavertm Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.76 2010/10/27 21:24:22 dilfridge Exp $
4 4
5# @ECLASS: kde4-base.eclass 5# @ECLASS: kde4-base.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# kde@gentoo.org 7# kde@gentoo.org
8# @BLURB: This eclass provides functions for kde 4.X ebuilds 8# @BLURB: This eclass provides functions for kde 4.X ebuilds
11# and KDE4 applications. 11# and KDE4 applications.
12# 12#
13# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but 13# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but
14# eclass will fail with version older than 2. 14# eclass will fail with version older than 2.
15 15
16inherit kde4-functions base eutils
17
18get_build_type
19if [[ ${BUILD_TYPE} = live ]]; then
20 if [[ ${KDEBASE} = kdevelop ]]; then
21 inherit git
22 else
23 inherit subversion
24 fi
25fi
26
16# @ECLASS-VARIABLE: CMAKE_REQUIRED 27# @ECLASS-VARIABLE: CMAKE_REQUIRED
17# @DESCRIPTION: 28# @DESCRIPTION:
18# Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'. 29# 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: 30# 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. 31# src_configure, src_compile, src_test and src_install.
21# Defaults to 'always'. 32# Defaults to 'always'.
22: ${CMAKE_REQUIRED:=always} 33: ${CMAKE_REQUIRED:=always}
23if [[ ${CMAKE_REQUIRED} = false || ${CMAKE_REQUIRED} = never ]]; then 34if [[ ${CMAKE_REQUIRED} = always ]]; then
24 buildsystem_eclass=""
25 export_fns=""
26else
27 buildsystem_eclass="cmake-utils" 35 buildsystem_eclass="cmake-utils"
28 export_fns="src_configure src_compile src_test src_install" 36 export_fns="src_configure src_compile src_test src_install"
29fi 37fi
30
31inherit kde4-functions
32
33get_build_type
34if [[ ${BUILD_TYPE} = live ]]; then
35 subversion_eclass="subversion"
36fi
37
38inherit base ${buildsystem_eclass} eutils ${subversion_eclass}
39
40EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_postinst pkg_postrm
41
42unset buildsystem_eclass
43unset export_fns
44unset subversion_eclass
45
46case ${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 ;;
55esac
56
57# @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'.
61OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
62
63# @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
64# @DESCRIPTION:
65# Is qt-multimedia required? Possible values are 'always', 'optional' and 'never'.
66# This variable must be set before inheriting any eclasses. Defaults to 'never'.
67MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
68
69# @ECLASS-VARIABLE: WEBKIT_REQUIRED
70# @DESCRIPTION:
71# Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
72# This variable must be set before inheriting any eclasses. Defaults to 'never'.
73WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
74
75# @ECLASS-VARIABLE: CPPUNIT_REQUIRED
76# @DESCRIPTION:
77# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
78# This variable must be set before inheriting any eclasses. Defaults to 'never'.
79CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
80
81# @ECLASS-VARIABLE: KDE_REQUIRED
82# @DESCRIPTION:
83# Is kde required? Possible values are 'always', 'optional' and 'never'.
84# This variable must be set before inheriting any eclasses. Defaults to 'always'
85# If set to always or optional, KDE_MINIMAL may be overriden as well.
86# Note that for kde-base packages this variable is fixed to 'always'.
87KDE_REQUIRED="${KDE_REQUIRED:-always}"
88 38
89# Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here) 39# Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here)
90if [[ -n ${KDE_MINIMAL} ]]; then 40if [[ -n ${KDE_MINIMAL} ]]; then
91 for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do 41 for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
92 [[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break 42 [[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break
98fi 48fi
99 49
100# @ECLASS-VARIABLE: KDE_MINIMAL 50# @ECLASS-VARIABLE: KDE_MINIMAL
101# @DESCRIPTION: 51# @DESCRIPTION:
102# This variable is used when KDE_REQUIRED is set, to specify required KDE minimal 52# This variable is used when KDE_REQUIRED is set, to specify required KDE minimal
103# version for apps to work. Currently defaults to 4.3 53# version for apps to work. Currently defaults to 4.4
104# One may override this variable to raise version requirements. 54# One may override this variable to raise version requirements.
105# For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables. 55# For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables.
106# Note that it is fixed to ${SLOT} for kde-base packages. 56# Note that it is fixed to ${SLOT} for kde-base packages.
107KDE_MINIMAL="${KDE_MINIMAL:-4.3}" 57KDE_MINIMAL="${KDE_MINIMAL:-4.4}"
58
59# Set slot for packages in kde-base, koffice and kdevelop
60case ${KDEBASE} in
61 kde-base)
62 # Determine SLOT from PVs
63 case ${PV} in
64 *.9999*) SLOT="${PV/.9999*/}" ;; # stable live
65 4.6* | 4.5.[6-9][0-9]*) SLOT="4.6" ;;
66 4.5* | 4.4.[6-9][0-9]*) SLOT="4.5" ;;
67 4.4* | 4.3.[6-9][0-9]*) SLOT="4.4" ;;
68 9999*) SLOT="live" ;; # regular live
69 *) die "Unsupported ${PV}" ;;
70 esac
71 KDE_MINIMAL="${SLOT}"
72 ;;
73 koffice)
74 SLOT="2"
75 ;;
76 kdevelop)
77 if [[ ${BUILD_TYPE} = live ]]; then
78 # @ECLASS-VARIABLE: KDEVELOP_VERSION
79 # @DESCRIPTION:
80 # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages.
81 # Applies to KDEBASE=kdevelop only.
82 KDEVELOP_VERSION="${KDEVELOP_VERSION:-9999}"
83 # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION
84 # @DESCRIPTION:
85 # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages.
86 # Applies to KDEBASE=kdevelop only.
87 KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-9999}"
88 else
89 case ${PN} in
90 kdevelop|quanta)
91 KDEVELOP_VERSION=${PV}
92 KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
93 ;;
94 kdevplatform)
95 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
96 KDEVPLATFORM_VERSION=${PV}
97 ;;
98 *)
99 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}"
100 KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-1.0.0}"
101 esac
102 fi
103 SLOT="4"
104 ;;
105esac
106
107slot_is_at_least 4.5 ${KDE_MINIMAL} && CMAKE_MIN_VERSION="2.8.1"
108
109inherit ${buildsystem_eclass}
110
111EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_postinst pkg_postrm
112
113unset buildsystem_eclass
114unset export_fns
115
116# @ECLASS-VARIABLE: OPENGL_REQUIRED
117# @DESCRIPTION:
118# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
119# This variable must be set before inheriting any eclasses. Defaults to 'never'.
120OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
121
122# @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
123# @DESCRIPTION:
124# Is qt-multimedia required? Possible values are 'always', 'optional' and 'never'.
125# This variable must be set before inheriting any eclasses. Defaults to 'never'.
126MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
127
128# @ECLASS-VARIABLE: WEBKIT_REQUIRED
129# @DESCRIPTION:
130# Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
131# This variable must be set before inheriting any eclasses. Defaults to 'never'.
132WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
133
134# @ECLASS-VARIABLE: CPPUNIT_REQUIRED
135# @DESCRIPTION:
136# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
137# This variable must be set before inheriting any eclasses. Defaults to 'never'.
138CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
139
140# @ECLASS-VARIABLE: KDE_REQUIRED
141# @DESCRIPTION:
142# Is kde required? Possible values are 'always', 'optional' and 'never'.
143# This variable must be set before inheriting any eclasses. Defaults to 'always'
144# If set to 'always' or 'optional', KDE_MINIMAL may be overriden as well.
145# Note that for kde-base packages this variable is fixed to 'always'.
146KDE_REQUIRED="${KDE_REQUIRED:-always}"
147
148# @ECLASS-VARIABLE: KDE_HANDBOOK
149# @DESCRIPTION:
150# Set to enable handbook in application. Possible values are 'always', 'optional'
151# (handbook USE flag) and 'never'.
152# This variable must be set before inheriting any eclasses. Defaults to 'never'.
153# It adds default handbook dirs for kde-base packages to KMEXTRA and in any case it
154# ensures buildtime and runtime dependencies.
155KDE_HANDBOOK="${KDE_HANDBOOK:-never}"
108 156
109# Setup packages inheriting this eclass 157# Setup packages inheriting this eclass
110case ${KDEBASE} in 158case ${KDEBASE} in
111 kde-base) 159 kde-base)
160 HOMEPAGE="http://www.kde.org/"
161 LICENSE="GPL-2"
112 if [[ $BUILD_TYPE = live ]]; then 162 if [[ $BUILD_TYPE = live ]]; then
113 # Disable tests for live ebuilds 163 # Disable tests for live ebuilds
114 RESTRICT+=" test" 164 RESTRICT+=" test"
115 # Live ebuilds in kde-base default to kdeprefix by default 165 # Live ebuilds in kde-base default to kdeprefix by default
116 IUSE+=" +kdeprefix" 166 IUSE+=" +kdeprefix"
117 else 167 else
118 # All other ebuild types default to -kdeprefix as before 168 # All other ebuild types default to -kdeprefix as before
119 IUSE+=" kdeprefix" 169 IUSE+=" kdeprefix"
120 fi 170 fi
121 # Determine SLOT from PVs
122 case ${PV} in
123 *.9999*) SLOT="${PV/.9999*/}" ;; # stable live
124 4.5* | 4.4.[6-9]*) SLOT="4.5" ;;
125 4.4* | 4.3.[6-9]*) SLOT="4.4" ;;
126 4.3*) SLOT="4.3" ;;
127 9999*) SLOT="live" ;; # regular live
128 *) die "Unsupported ${PV}" ;;
129 esac
130 # This code is to prevent portage from searching GENTOO_MIRRORS for 171 # This code is to prevent portage from searching GENTOO_MIRRORS for
131 # packages that will never be mirrored. (As they only will ever be in 172 # packages that will never be mirrored. (As they only will ever be in
132 # the overlay). 173 # the overlay).
133 case ${PV} in 174 case ${PV} in
134 *9999* | 4.?.[6-9]?) 175 *9999* | 4.?.[6-9]?)
135 RESTRICT+=" mirror" 176 RESTRICT+=" mirror"
136 ;; 177 ;;
137 esac 178 esac
138 KDE_MINIMAL="${SLOT}"
139 _kdedir="${SLOT}"
140
141 # Block installation of other SLOTS unless kdeprefix 179 # Block installation of other SLOTS unless kdeprefix
142 RDEPEND+=" $(block_other_slots)" 180 RDEPEND+=" $(block_other_slots)"
143 ;; 181 ;;
144 koffice) 182 koffice)
145 SLOT="2" 183 HOMEPAGE="http://www.koffice.org/"
184 LICENSE="GPL-2"
185 ;;
186 kdevelop)
187 HOMEPAGE="http://www.kdevelop.org/"
188 LICENSE="GPL-2"
146 ;; 189 ;;
147esac 190esac
148 191
149# @ECLASS-VARIABLE: QT_MINIMAL 192# @ECLASS-VARIABLE: QT_MINIMAL
150# @DESCRIPTION: 193# @DESCRIPTION:
151# Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1.. 194# Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1...
152# Currently defaults to 4.5.1 for KDE 4.3 and earlier 195# 4.6.0 for 4.4 and 4.6.3 for 4.5 and later
153# or 4.6.0_rc1 for KDE 4.4 and later
154if slot_is_at_least 4.4 "${KDE_MINIMAL}"; then 196if slot_is_at_least 4.5 "${KDE_MINIMAL}"; then
197 QT_MINIMAL="${QT_MINIMAL:-4.6.3}"
198else
155 QT_MINIMAL="${QT_MINIMAL:-4.6.0}" 199 QT_MINIMAL="${QT_MINIMAL:-4.6.0}"
156fi 200fi
157
158QT_MINIMAL="${QT_MINIMAL:-4.5.1}"
159 201
160# OpenGL dependencies 202# OpenGL dependencies
161qtopengldepend=" 203qtopengldepend="
162 >=x11-libs/qt-opengl-${QT_MINIMAL}:4 204 >=x11-libs/qt-opengl-${QT_MINIMAL}:4
163" 205"
230 *) ;; 272 *) ;;
231esac 273esac
232unset cppuintdepend 274unset cppuintdepend
233 275
234# KDE dependencies 276# KDE dependencies
277# Qt accessibility classes are needed in various places, bug 325461
235kdecommondepend=" 278kdecommondepend="
236 dev-lang/perl 279 dev-lang/perl
237 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl] 280 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl]
238 >=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus] 281 >=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus]
239 >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility,kde] 282 >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility,kde]
245 x11-libs/libXext 288 x11-libs/libXext
246 x11-libs/libXt 289 x11-libs/libXt
247 x11-libs/libXxf86vm 290 x11-libs/libXxf86vm
248 ) 291 )
249" 292"
293
250if [[ ${PN} != kdelibs ]]; then 294if [[ ${PN} != kdelibs ]]; then
251 if [[ ${KDEBASE} = kde-base ]]; then
252 kdecommondepend+=" $(add_kdebase_dep kdelibs)" 295 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
253 # libknotificationitem only when SLOT is 4.3 296 if [[ ${KDEBASE} = kdevelop ]]; then
254 [[ ${PN} != libknotificationitem ]] && [[ ${SLOT} = 4.3 ]] && \ 297 if [[ ${PN} != kdevplatform ]]; then
255 kdecommondepend+=" $(add_kdebase_dep libknotificationitem)" 298 # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED
256 else 299 # @DESCRIPTION:
300 # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'.
301 # Applies to KDEBASE=kdevelop only.
302 KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
303 case ${KDEVPLATFORM_REQUIRED} in
304 always)
257 kdecommondepend+=" 305 kdecommondepend+="
258 >=kde-base/kdelibs-${KDE_MINIMAL} 306 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
259 " 307 "
308 ;;
309 *) ;;
310 esac
311 fi
260 fi 312 fi
261fi 313fi
262kdedepend=" 314kdedepend="
315 dev-util/automoc
263 dev-util/pkgconfig 316 dev-util/pkgconfig
264 !aqua? ( 317 !aqua? (
265 || ( >=x11-libs/libXtst-1.1.0 <x11-proto/xextproto-7.1.0 ) 318 || ( >=x11-libs/libXtst-1.1.0 <x11-proto/xextproto-7.1.0 )
266 x11-proto/xf86vidmodeproto 319 x11-proto/xf86vidmodeproto
267 ) 320 )
268" 321"
322kderdepend=""
323
324kdehandbookdepend="
325 app-text/docbook-xml-dtd:4.2
326 app-text/docbook-xsl-stylesheets
327"
328kdehandbookrdepend="
329 $(add_kdebase_dep kdelibs 'handbook')
330"
331case ${KDE_HANDBOOK} in
332 always)
333 kdedepend+=" ${kdehandbookdepend}"
334 [[ ${PN} != kdelibs ]] && kderdepend+=" ${kdehandbookrdepend}"
335 ;;
336 optional)
337 IUSE+=" +handbook"
338 kdedepend+=" handbook? ( ${kdehandbookdepend} )"
339 [[ ${PN} != kdelibs ]] && kderdepend+=" handbook? ( ${kdehandbookrdepend} )"
340 ;;
341 *) ;;
342esac
343unset kdehandbookdepend kdehandbookrdepend
344
269case ${KDE_REQUIRED} in 345case ${KDE_REQUIRED} in
270 always) 346 always)
271 IUSE+=" aqua" 347 IUSE+=" aqua"
272 COMMONDEPEND+=" ${kdecommondepend}" 348 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}"
273 DEPEND+=" ${kdedepend}" 349 [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}"
350 [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}"
274 ;; 351 ;;
275 optional) 352 optional)
276 IUSE+=" aqua kde" 353 IUSE+=" aqua kde"
277 COMMONDEPEND+=" kde? ( ${kdecommondepend} )" 354 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
278 DEPEND+=" kde? ( ${kdedepend} )" 355 [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )"
356 [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )"
279 ;; 357 ;;
280 *) ;; 358 *) ;;
281esac 359esac
282 360
283unset kdecommondepend kdedepend 361unset kdecommondepend kdedepend kderdepend
284 362
285debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}" 363debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
286debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}" 364debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
287debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}" 365debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
288 366
296 374
297# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a 375# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
298# koffice ebuild, the URI should be set in the ebuild itself 376# koffice ebuild, the URI should be set in the ebuild itself
299case ${BUILD_TYPE} in 377case ${BUILD_TYPE} in
300 live) 378 live)
301 # Determine branch URL based on live type
302 local branch_prefix
303 case ${PV} in
304 9999*)
305 # trunk
306 branch_prefix="trunk/KDE"
307 ;;
308 *)
309 # branch
310 branch_prefix="branches/KDE/${SLOT}"
311 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
312 # @DESCRIPTION
313 # Suffix appended to ESVN_PROJECT depending on fetched branch.
314 # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
315 ESVN_PROJECT_SUFFIX="-${PV}"
316 ;;
317 esac
318 SRC_URI="" 379 SRC_URI=""
380 if has subversion ${INHERITED}; then
381 # Determine branch URL based on live type
382 local branch_prefix
383 case ${PV} in
384 9999*)
385 # trunk
386 branch_prefix="trunk/KDE"
387 ;;
388 *)
389 # branch
390 branch_prefix="branches/KDE/${SLOT}"
391 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
392 # @DESCRIPTION
393 # Suffix appended to ESVN_PROJECT depending on fetched branch.
394 # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
395 ESVN_PROJECT_SUFFIX="-${PV}"
396 ;;
397 esac
319 # @ECLASS-VARIABLE: ESVN_MIRROR 398 # @ECLASS-VARIABLE: ESVN_MIRROR
320 # @DESCRIPTION: 399 # @DESCRIPTION:
321 # This variable allows easy overriding of default kde mirror service 400 # This variable allows easy overriding of default kde mirror service
322 # (anonsvn) with anything else you might want to use. 401 # (anonsvn) with anything else you might want to use.
323 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde} 402 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
324 # Split ebuild, or extragear stuff 403 # Split ebuild, or extragear stuff
325 if [[ -n ${KMNAME} ]]; then 404 if [[ -n ${KMNAME} ]]; then
326 ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}" 405 ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
406 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
407 KMMODULE="${PN}"
408 fi
409 # Split kde-base/ ebuilds: (they reside in trunk/KDE)
410 case ${KMNAME} in
411 kdebase-*)
412 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
413 ;;
414 kdelibs-*)
415 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
416 ;;
417 kdereview*)
418 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
419 ;;
420 kdesupport)
421 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
422 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
423 ;;
424 kde*)
425 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
426 ;;
427 extragear*|playground*)
428 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
429 # build packages from same svn location.
430 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
431 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
432 ;;
433 koffice)
434 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
435 ;;
436 *)
437 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
438 ;;
439 esac
440 else
441 # kdelibs, kdepimlibs
442 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
443 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
444 fi
445 # @ECLASS-VARIABLE: ESVN_UP_FREQ
446 # @DESCRIPTION:
447 # This variable is used for specifying the timeout between svn synces
448 # for kde-base and koffice modules. Does not affect misc apps.
449 # Default value is 1 hour.
450 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
451 elif has git ${INHERITED}; then
327 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then 452 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
328 KMMODULE="${PN}" 453 KMMODULE="${PN}"
329 fi 454 fi
330 # Split kde-base/ ebuilds: (they reside in trunk/KDE)
331 case ${KMNAME} in 455 case ${KDEBASE} in
332 kdebase-*) 456 kdevelop)
333 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}" 457 EGIT_REPO_URI="git://gitorious.org/${KMNAME}/${KMMODULE}.git"
334 ;;
335 kdelibs-*)
336 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
337 ;;
338 kdereview*)
339 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
340 ;;
341 kdesupport)
342 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
343 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
344 ;;
345 kde*)
346 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
347 ;;
348 extragear*|playground*)
349 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
350 # build packages from same svn location.
351 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
352 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
353 ;;
354 koffice)
355 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
356 ;;
357 *)
358 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
359 ;; 458 ;;
360 esac 459 esac
361 else
362 # kdelibs, kdepimlibs
363 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
364 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
365 fi 460 fi
366 # @ECLASS-VARIABLE: ESVN_UP_FREQ
367 # @DESCRIPTION:
368 # This variable is used for specifying the timeout between svn synces
369 # for kde-base and koffice modules. Does not affect misc apps.
370 # Default value is 1 hour.
371 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
372 ;; 461 ;;
373 *) 462 *)
374 if [[ -n ${KDEBASE} ]]; then 463 if [[ -n ${KDEBASE} ]]; then
375 if [[ -n ${KMNAME} ]]; then 464 if [[ -n ${KMNAME} ]]; then
376 case ${KMNAME} in 465 case ${KMNAME} in
384 fi 473 fi
385 _kmname_pv="${_kmname}-${PV}" 474 _kmname_pv="${_kmname}-${PV}"
386 case ${KDEBASE} in 475 case ${KDEBASE} in
387 kde-base) 476 kde-base)
388 case ${PV} in 477 case ${PV} in
389 4.[34].8[05] | 4.[34].9[0568]) 478 4.[456].8[05] | 4.[456].9[023568])
390 # block for normally packed unstable releases 479 # Unstable KDE SC releases
391 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 480 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2"
392 4.[34].[6-9]*)
393 # Repacked tarballs: need to depend on xz-utils to ensure that they can be unpacked
394 SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.xz"
395 DEPEND+=" app-arch/xz-utils"
396 ;; 481 ;;
482 4.4.6 | 4.4.7)
483 # Only kdepim here
484 SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2"
485 ;;
486 *)
487 # Stable KDE SC releases
397 *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 488 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2"
489 ;;
398 esac 490 esac
399 ;; 491 ;;
400 koffice) 492 koffice)
401 case ${PV} in 493 case ${PV} in
402 2.0.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" ;; 494 2.1.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
403 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;; 495 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
404 esac 496 esac
497 ;;
498 kdevelop)
499 SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
500 ;;
405 esac 501 esac
406 unset _kmname _kmname_pv 502 unset _kmname _kmname_pv
407 fi 503 fi
408 ;; 504 ;;
409esac 505esac
438 # Don't set KDEHOME during compilation, it will cause access violations 534 # Don't set KDEHOME during compilation, it will cause access violations
439 unset KDEHOME 535 unset KDEHOME
440 536
441 if [[ ${KDEBASE} = kde-base ]]; then 537 if [[ ${KDEBASE} = kde-base ]]; then
442 if use kdeprefix; then 538 if use kdeprefix; then
443 KDEDIR=/usr/kde/${_kdedir} 539 KDEDIR=/usr/kde/${SLOT}
444 else 540 else
445 KDEDIR=/usr 541 KDEDIR=/usr
446 fi 542 fi
447 : ${PREFIX:=${KDEDIR}} 543 : ${PREFIX:=${KDEDIR}}
448 else 544 else
478 # Point to correct QT plugins path 574 # Point to correct QT plugins path
479 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/" 575 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/"
480 576
481 # Fix XDG collision with sandbox 577 # Fix XDG collision with sandbox
482 export XDG_CONFIG_HOME="${T}" 578 export XDG_CONFIG_HOME="${T}"
483 # Not needed anymore
484 unset _kdedir
485} 579}
486 580
487# @FUNCTION: kde4-base_src_unpack 581# @FUNCTION: kde4-base_src_unpack
488# @DESCRIPTION: 582# @DESCRIPTION:
489# This function unpacks the source tarballs for KDE4 applications. 583# This function unpacks the source tarballs for KDE4 applications.
490kde4-base_src_unpack() { 584kde4-base_src_unpack() {
491 debug-print-function ${FUNCNAME} "$@" 585 debug-print-function ${FUNCNAME} "$@"
492 586
493 if [[ ${BUILD_TYPE} = live ]]; then 587 if [[ ${BUILD_TYPE} = live ]]; then
588 if has subversion ${INHERITED}; then
494 migrate_store_dir 589 migrate_store_dir
495 subversion_src_unpack 590 subversion_src_unpack
591 elif has git ${INHERITED}; then
592 git_src_unpack
593 fi
496 elif [[ ${EAPI} == 2 ]]; then 594 elif [[ ${EAPI} == 2 ]]; then
497 local file 595 local file
498 for file in ${A}; do 596 for file in ${A}; do
499 # This setup is because EAPI <= 2 cannot unpack *.tar.xz files 597 # This setup is because EAPI <= 2 cannot unpack *.tar.xz files
500 # directly, so we do it ourselves (using the exact same code as portage) 598 # directly, so we do it ourselves (using the exact same code as portage)
534 # kdelibs inherits kde4-base but handle installing the handbook itself 632 # kdelibs inherits kde4-base but handle installing the handbook itself
535 if ! has kde4-meta ${INHERITED}; then 633 if ! has kde4-meta ${INHERITED}; then
536 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas 634 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas
537 fi 635 fi
538 636
539 [[ ${BUILD_TYPE} = live ]] && subversion_src_prepare 637 # SCM bootstrap
638 if [[ ${BUILD_TYPE} = live ]]; then
639 if has subversion ${INHERITED}; then
640 subversion_src_prepare
641 elif has git ${INHERITED}; then
642 git_src_prepare
643 fi
644 fi
540 645
541 # Apply patches 646 # Apply patches
542 base_src_prepare 647 base_src_prepare
543 epatch_user
544 648
545 # Save library dependencies 649 # Save library dependencies
546 if [[ -n ${KMSAVELIBS} ]] ; then 650 if [[ -n ${KMSAVELIBS} ]] ; then
547 save_library_dependencies 651 save_library_dependencies
548 fi 652 fi
549 653
550 # Inject library dependencies 654 # Inject library dependencies
551 if [[ -n ${KMLOADLIBS} ]] ; then 655 if [[ -n ${KMLOADLIBS} ]] ; then
552 load_library_dependencies 656 load_library_dependencies
553 fi 657 fi
658
659 # Hack for manuals relying on outdated DTD
660 find "${S}" -name "*.docbook" \
661 -exec sed -i -r \
662 -e 's:-//KDE//DTD DocBook XML V4\.1(\..)?-Based Variant V1\.[01]//EN:-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN:g' {} + \
663 || die 'failed to fix DocBook variant version'
554} 664}
555 665
556# @FUNCTION: kde4-base_src_configure 666# @FUNCTION: kde4-base_src_configure
557# @DESCRIPTION: 667# @DESCRIPTION:
558# Function for configuring the build of KDE4 applications. 668# Function for configuring the build of KDE4 applications.
576 686
577 # Set distribution name 687 # Set distribution name
578 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo) 688 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
579 689
580 # Here we set the install prefix 690 # Here we set the install prefix
581 cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}") 691 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
582 692
583 # Use colors 693 # Use colors
584 QTEST_COLORED=1 694 QTEST_COLORED=1
585 695
586 # Shadow existing /usr installations 696 # Shadow existing /usr installations
589 # Handle kdeprefix-ed KDE 699 # Handle kdeprefix-ed KDE
590 if [[ ${KDEDIR} != /usr ]]; then 700 if [[ ${KDEDIR} != /usr ]]; then
591 # Override some environment variables - only when kdeprefix is different, 701 # Override some environment variables - only when kdeprefix is different,
592 # to not break ccache/distcc 702 # to not break ccache/distcc
593 PATH="${EKDEDIR}/bin:${PATH}" 703 PATH="${EKDEDIR}/bin:${PATH}"
594 LDPATH="${EKDEDIR}/$(get_libdir)${LDPATH+:}${LDPATH}" 704
705 # Append library search path
706 append-ldflags -L"${EKDEDIR}/$(get_libdir)"
595 707
596 # Append full RPATH 708 # Append full RPATH
597 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF) 709 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF)
598 710
599 # Set cmake prefixes to allow buildsystem to locate valid KDE installation 711 # Set cmake prefixes to allow buildsystem to locate valid KDE installation
600 # when more are present 712 # when more are present
601 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}") 713 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}")
602 fi 714 fi
715
716 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
717 tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/lib/qt4)
718 #kde-config -path data unavailable when cross-compiling
719 tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
603 720
604 # Handle kdeprefix in application itself 721 # Handle kdeprefix in application itself
605 if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then 722 if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then
606 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc 723 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
607 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc) 724 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
652 769
653 if [[ -n ${KMSAVELIBS} ]] ; then 770 if [[ -n ${KMSAVELIBS} ]] ; then
654 install_library_dependencies 771 install_library_dependencies
655 fi 772 fi
656 773
657 kde4-base_src_make_doc 774 # Install common documentation of KDE4 applications
775 local doc
776 if ! has kde4-meta ${INHERITED}; then
777 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
778 [[ -f "${doc}" ]] && [[ -s "${doc}" ]] && dodoc "${doc}"
779 done
780 for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
781 [[ -f "${doc}" ]] && [[ -s "${doc}" ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
782 done
783 fi
784
658 cmake-utils_src_install 785 cmake-utils_src_install
659}
660
661# @FUNCTION: kde4-base_src_make_doc
662# @DESCRIPTION:
663# Function for installing the documentation of KDE4 applications.
664kde4-base_src_make_doc() {
665 debug-print-function ${FUNCNAME} "$@"
666
667 local doc
668 for doc in AUTHORS ChangeLog* README* NEWS TODO; do
669 [[ -s ${doc} ]] && dodoc ${doc}
670 done
671
672 if [[ -z ${KMNAME} ]]; then
673 for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
674 if [[ -s ${doc} ]]; then
675 local doc_complete=${doc}
676 doc="${doc#*/}"
677 newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
678 fi
679 done
680 fi
681} 786}
682 787
683# @FUNCTION: kde4-base_pkg_postinst 788# @FUNCTION: kde4-base_pkg_postinst
684# @DESCRIPTION: 789# @DESCRIPTION:
685# Function to rebuild the KDE System Configuration Cache after an application has been installed. 790# Function to rebuild the KDE System Configuration Cache after an application has been installed.

Legend:
Removed from v.1.58  
changed lines
  Added in v.1.76

  ViewVC Help
Powered by ViewVC 1.1.20