/[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.60 Revision 1.69
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.60 2010/05/15 14:03:06 reavertm Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.69 2010/09/09 17:02:30 reavertm 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]*) SLOT="4.6" ;;
66 4.5* | 4.4.[6-9]*) SLOT="4.5" ;;
67 4.4* | 4.3.[6-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. It adds +handbook to IUSE, handbook dirs
151# to KMEXTRA and ensures buildtime and runtime dependencies.
152[[ -n ${KDE_HANDBOOK} ]] && IUSE+=" +handbook"
108 153
109# Setup packages inheriting this eclass 154# Setup packages inheriting this eclass
110case ${KDEBASE} in 155case ${KDEBASE} in
111 kde-base) 156 kde-base)
157 HOMEPAGE="http://www.kde.org/"
158 LICENSE="GPL-2"
112 if [[ $BUILD_TYPE = live ]]; then 159 if [[ $BUILD_TYPE = live ]]; then
113 # Disable tests for live ebuilds 160 # Disable tests for live ebuilds
114 RESTRICT+=" test" 161 RESTRICT+=" test"
115 # Live ebuilds in kde-base default to kdeprefix by default 162 # Live ebuilds in kde-base default to kdeprefix by default
116 IUSE+=" +kdeprefix" 163 IUSE+=" +kdeprefix"
117 else 164 else
118 # All other ebuild types default to -kdeprefix as before 165 # All other ebuild types default to -kdeprefix as before
119 IUSE+=" kdeprefix" 166 IUSE+=" kdeprefix"
120 fi 167 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 168 # 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 169 # packages that will never be mirrored. (As they only will ever be in
132 # the overlay). 170 # the overlay).
133 case ${PV} in 171 case ${PV} in
134 *9999* | 4.?.[6-9]?) 172 *9999* | 4.?.[6-9]?)
135 RESTRICT+=" mirror" 173 RESTRICT+=" mirror"
136 ;; 174 ;;
137 esac 175 esac
138 KDE_MINIMAL="${SLOT}"
139 _kdedir="${SLOT}"
140
141 # Block installation of other SLOTS unless kdeprefix 176 # Block installation of other SLOTS unless kdeprefix
142 RDEPEND+=" $(block_other_slots)" 177 RDEPEND+=" $(block_other_slots)"
143 ;; 178 ;;
144 koffice) 179 koffice)
145 SLOT="2" 180 HOMEPAGE="http://www.koffice.org/"
181 LICENSE="GPL-2"
182 ;;
183 kdevelop)
184 HOMEPAGE="http://www.kdevelop.org/"
185 LICENSE="GPL-2"
146 ;; 186 ;;
147esac 187esac
148 188
149# @ECLASS-VARIABLE: QT_MINIMAL 189# @ECLASS-VARIABLE: QT_MINIMAL
150# @DESCRIPTION: 190# @DESCRIPTION:
151# Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1.. 191# 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 192# 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 193if slot_is_at_least 4.5 "${KDE_MINIMAL}"; then
194 QT_MINIMAL="${QT_MINIMAL:-4.6.3}"
195else
155 QT_MINIMAL="${QT_MINIMAL:-4.6.0}" 196 QT_MINIMAL="${QT_MINIMAL:-4.6.0}"
156fi 197fi
157
158QT_MINIMAL="${QT_MINIMAL:-4.5.1}"
159 198
160# OpenGL dependencies 199# OpenGL dependencies
161qtopengldepend=" 200qtopengldepend="
162 >=x11-libs/qt-opengl-${QT_MINIMAL}:4 201 >=x11-libs/qt-opengl-${QT_MINIMAL}:4
163" 202"
230 *) ;; 269 *) ;;
231esac 270esac
232unset cppuintdepend 271unset cppuintdepend
233 272
234# KDE dependencies 273# KDE dependencies
274# Qt accessibility classes are needed in various places, bug 325461
235kdecommondepend=" 275kdecommondepend="
236 dev-lang/perl
237 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl] 276 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl]
238 >=x11-libs/qt-gui-${QT_MINIMAL}:4[dbus] 277 >=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus]
239 >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[kde] 278 >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility,kde]
240 >=x11-libs/qt-script-${QT_MINIMAL}:4 279 >=x11-libs/qt-script-${QT_MINIMAL}:4
241 >=x11-libs/qt-sql-${QT_MINIMAL}:4[qt3support] 280 >=x11-libs/qt-sql-${QT_MINIMAL}:4[qt3support]
242 >=x11-libs/qt-svg-${QT_MINIMAL}:4 281 >=x11-libs/qt-svg-${QT_MINIMAL}:4
243 >=x11-libs/qt-test-${QT_MINIMAL}:4 282 >=x11-libs/qt-test-${QT_MINIMAL}:4
244 !aqua? ( 283 !aqua? (
245 x11-libs/libXext 284 x11-libs/libXext
246 x11-libs/libXt 285 x11-libs/libXt
247 x11-libs/libXxf86vm 286 x11-libs/libXxf86vm
248 ) 287 )
249" 288"
289#perl is not needed on host (+ difficult crosscompilation)
290tc-is-cross-compiler || kdecommondepend+=" dev-lang/perl"
291
250if [[ ${PN} != kdelibs ]]; then 292if [[ ${PN} != kdelibs ]]; then
251 if [[ ${KDEBASE} = kde-base ]]; then 293 if [[ ${KDEBASE} = kde-base ]]; then
252 kdecommondepend+=" $(add_kdebase_dep kdelibs)" 294 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
253 # libknotificationitem only when SLOT is 4.3
254 [[ ${PN} != libknotificationitem ]] && [[ ${SLOT} = 4.3 ]] && \
255 kdecommondepend+=" $(add_kdebase_dep libknotificationitem)"
256 else 295 else
257 kdecommondepend+=" 296 kdecommondepend+="
258 >=kde-base/kdelibs-${KDE_MINIMAL} 297 >=kde-base/kdelibs-${KDE_MINIMAL}
259 " 298 "
299 if [[ ${KDEBASE} = kdevelop ]]; then
300 if [[ ${PN} != kdevplatform ]]; then
301 # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED
302 # @DESCRIPTION:
303 # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'.
304 # Applies to KDEBASE=kdevelop only.
305 KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
306 case ${KDEVPLATFORM_REQUIRED} in
307 always)
308 kdecommondepend+="
309 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
310 "
311 ;;
312 *) ;;
313 esac
314 fi
315 fi
260 fi 316 fi
261fi 317fi
262kdedepend=" 318kdedepend="
263 dev-util/automoc 319 dev-util/automoc
264 dev-util/pkgconfig 320 dev-util/pkgconfig
265 !aqua? ( 321 !aqua? (
266 || ( >=x11-libs/libXtst-1.1.0 <x11-proto/xextproto-7.1.0 ) 322 || ( >=x11-libs/libXtst-1.1.0 <x11-proto/xextproto-7.1.0 )
267 x11-proto/xf86vidmodeproto 323 x11-proto/xf86vidmodeproto
268 ) 324 )
269" 325"
326
327# Handbook handling - dependencies
328if [[ -n ${KDE_HANDBOOK} ]]; then
329 kdedepend+="
330 handbook? (
331 app-text/docbook-xml-dtd:4.2
332 app-text/docbook-xsl-stylesheets
333 )
334 "
335 if [[ ${PN} != kdelibs ]]; then
336 if [[ ${KDEBASE} = kde-base ]]; then
337 PDEPEND+=" handbook? ( $(add_kdebase_dep kdelibs 'handbook') )"
338 else
339 PDEPEND+=" handbook? ( >=kde-base/kdelibs-${KDE_MINIMAL}[handbook] )"
340 fi
341 elif [[ ${PN} != khelpcenter ]]; then
342 if [[ ${KDEBASE} = kde-base ]]; then
343 PDEPEND+=" handbook? ( $(add_kdebase_dep khelpcenter 'handbook') )"
344 else
345 PDEPEND+=" handbook? ( >=kde-base/khelpcenter-${KDE_MINIMAL}[handbook] )"
346 fi
347 fi
348fi
349
270case ${KDE_REQUIRED} in 350case ${KDE_REQUIRED} in
271 always) 351 always)
272 IUSE+=" aqua" 352 IUSE+=" aqua"
273 COMMONDEPEND+=" ${kdecommondepend}" 353 COMMONDEPEND+=" ${kdecommondepend}"
274 DEPEND+=" ${kdedepend}" 354 DEPEND+=" ${kdedepend}"
284unset kdecommondepend kdedepend 364unset kdecommondepend kdedepend
285 365
286debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}" 366debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
287debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}" 367debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
288debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}" 368debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
369debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: PDEPEND is ${PDEPEND}"
289 370
290# Accumulate dependencies set by this eclass 371# Accumulate dependencies set by this eclass
291DEPEND+=" ${COMMONDEPEND}" 372DEPEND+=" ${COMMONDEPEND}"
292RDEPEND+=" ${COMMONDEPEND}" 373RDEPEND+=" ${COMMONDEPEND}"
293unset COMMONDEPEND 374unset COMMONDEPEND
297 378
298# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a 379# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
299# koffice ebuild, the URI should be set in the ebuild itself 380# koffice ebuild, the URI should be set in the ebuild itself
300case ${BUILD_TYPE} in 381case ${BUILD_TYPE} in
301 live) 382 live)
302 # Determine branch URL based on live type
303 local branch_prefix
304 case ${PV} in
305 9999*)
306 # trunk
307 branch_prefix="trunk/KDE"
308 ;;
309 *)
310 # branch
311 branch_prefix="branches/KDE/${SLOT}"
312 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
313 # @DESCRIPTION
314 # Suffix appended to ESVN_PROJECT depending on fetched branch.
315 # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
316 ESVN_PROJECT_SUFFIX="-${PV}"
317 ;;
318 esac
319 SRC_URI="" 383 SRC_URI=""
384 if has subversion ${INHERITED}; then
385 # Determine branch URL based on live type
386 local branch_prefix
387 case ${PV} in
388 9999*)
389 # trunk
390 branch_prefix="trunk/KDE"
391 ;;
392 *)
393 # branch
394 branch_prefix="branches/KDE/${SLOT}"
395 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
396 # @DESCRIPTION
397 # Suffix appended to ESVN_PROJECT depending on fetched branch.
398 # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
399 ESVN_PROJECT_SUFFIX="-${PV}"
400 ;;
401 esac
320 # @ECLASS-VARIABLE: ESVN_MIRROR 402 # @ECLASS-VARIABLE: ESVN_MIRROR
321 # @DESCRIPTION: 403 # @DESCRIPTION:
322 # This variable allows easy overriding of default kde mirror service 404 # This variable allows easy overriding of default kde mirror service
323 # (anonsvn) with anything else you might want to use. 405 # (anonsvn) with anything else you might want to use.
324 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde} 406 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
325 # Split ebuild, or extragear stuff 407 # Split ebuild, or extragear stuff
326 if [[ -n ${KMNAME} ]]; then 408 if [[ -n ${KMNAME} ]]; then
327 ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}" 409 ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
410 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
411 KMMODULE="${PN}"
412 fi
413 # Split kde-base/ ebuilds: (they reside in trunk/KDE)
414 case ${KMNAME} in
415 kdebase-*)
416 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
417 ;;
418 kdelibs-*)
419 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
420 ;;
421 kdereview*)
422 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
423 ;;
424 kdesupport)
425 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
426 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
427 ;;
428 kde*)
429 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
430 ;;
431 extragear*|playground*)
432 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
433 # build packages from same svn location.
434 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
435 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
436 ;;
437 koffice)
438 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
439 ;;
440 *)
441 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
442 ;;
443 esac
444 else
445 # kdelibs, kdepimlibs
446 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
447 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
448 fi
449 # @ECLASS-VARIABLE: ESVN_UP_FREQ
450 # @DESCRIPTION:
451 # This variable is used for specifying the timeout between svn synces
452 # for kde-base and koffice modules. Does not affect misc apps.
453 # Default value is 1 hour.
454 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
455 elif has git ${INHERITED}; then
328 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then 456 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
329 KMMODULE="${PN}" 457 KMMODULE="${PN}"
330 fi 458 fi
331 # Split kde-base/ ebuilds: (they reside in trunk/KDE)
332 case ${KMNAME} in 459 case ${KDEBASE} in
333 kdebase-*) 460 kdevelop)
334 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}" 461 EGIT_REPO_URI="git://gitorious.org/${KMNAME}/${KMMODULE}.git"
335 ;;
336 kdelibs-*)
337 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
338 ;;
339 kdereview*)
340 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
341 ;;
342 kdesupport)
343 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
344 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
345 ;;
346 kde*)
347 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
348 ;;
349 extragear*|playground*)
350 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
351 # build packages from same svn location.
352 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
353 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
354 ;;
355 koffice)
356 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
357 ;;
358 *)
359 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
360 ;; 462 ;;
361 esac 463 esac
362 else
363 # kdelibs, kdepimlibs
364 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
365 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
366 fi 464 fi
367 # @ECLASS-VARIABLE: ESVN_UP_FREQ
368 # @DESCRIPTION:
369 # This variable is used for specifying the timeout between svn synces
370 # for kde-base and koffice modules. Does not affect misc apps.
371 # Default value is 1 hour.
372 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
373 ;; 465 ;;
374 *) 466 *)
375 if [[ -n ${KDEBASE} ]]; then 467 if [[ -n ${KDEBASE} ]]; then
376 if [[ -n ${KMNAME} ]]; then 468 if [[ -n ${KMNAME} ]]; then
377 case ${KMNAME} in 469 case ${KMNAME} in
385 fi 477 fi
386 _kmname_pv="${_kmname}-${PV}" 478 _kmname_pv="${_kmname}-${PV}"
387 case ${KDEBASE} in 479 case ${KDEBASE} in
388 kde-base) 480 kde-base)
389 case ${PV} in 481 case ${PV} in
390 4.[34].8[05] | 4.[34].9[0568]) 482 4.[45].8[05] | 4.[45].9[02568])
391 # block for normally packed unstable releases 483 # Normally packed unstable releases
392 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 484 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
393 4.[34].[6-9]*) 485 4.[45].[6-9]*)
394 # Repacked tarballs: need to depend on xz-utils to ensure that they can be unpacked 486 # Repacked tarballs: need to depend on xz-utils to ensure that they can be unpacked
395 SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.xz" 487 SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/src/${_kmname_pv}.tar.xz"
396 DEPEND+=" app-arch/xz-utils" 488 DEPEND+=" app-arch/xz-utils"
397 ;; 489 ;;
398 *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 490 *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
399 esac 491 esac
400 ;; 492 ;;
401 koffice) 493 koffice)
402 case ${PV} in 494 case ${PV} in
403 2.0.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" ;; 495 2.1.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
404 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;; 496 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
405 esac 497 esac
498 ;;
499 kdevelop)
500 SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
501 ;;
406 esac 502 esac
407 unset _kmname _kmname_pv 503 unset _kmname _kmname_pv
408 fi 504 fi
409 ;; 505 ;;
410esac 506esac
439 # Don't set KDEHOME during compilation, it will cause access violations 535 # Don't set KDEHOME during compilation, it will cause access violations
440 unset KDEHOME 536 unset KDEHOME
441 537
442 if [[ ${KDEBASE} = kde-base ]]; then 538 if [[ ${KDEBASE} = kde-base ]]; then
443 if use kdeprefix; then 539 if use kdeprefix; then
444 KDEDIR=/usr/kde/${_kdedir} 540 KDEDIR=/usr/kde/${SLOT}
445 else 541 else
446 KDEDIR=/usr 542 KDEDIR=/usr
447 fi 543 fi
448 : ${PREFIX:=${KDEDIR}} 544 : ${PREFIX:=${KDEDIR}}
449 else 545 else
479 # Point to correct QT plugins path 575 # Point to correct QT plugins path
480 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/" 576 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/"
481 577
482 # Fix XDG collision with sandbox 578 # Fix XDG collision with sandbox
483 export XDG_CONFIG_HOME="${T}" 579 export XDG_CONFIG_HOME="${T}"
484 # Not needed anymore
485 unset _kdedir
486} 580}
487 581
488# @FUNCTION: kde4-base_src_unpack 582# @FUNCTION: kde4-base_src_unpack
489# @DESCRIPTION: 583# @DESCRIPTION:
490# This function unpacks the source tarballs for KDE4 applications. 584# This function unpacks the source tarballs for KDE4 applications.
491kde4-base_src_unpack() { 585kde4-base_src_unpack() {
492 debug-print-function ${FUNCNAME} "$@" 586 debug-print-function ${FUNCNAME} "$@"
493 587
494 if [[ ${BUILD_TYPE} = live ]]; then 588 if [[ ${BUILD_TYPE} = live ]]; then
589 if has subversion ${INHERITED}; then
495 migrate_store_dir 590 migrate_store_dir
496 subversion_src_unpack 591 subversion_src_unpack
592 elif has git ${INHERITED}; then
593 git_src_unpack
594 fi
497 elif [[ ${EAPI} == 2 ]]; then 595 elif [[ ${EAPI} == 2 ]]; then
498 local file 596 local file
499 for file in ${A}; do 597 for file in ${A}; do
500 # This setup is because EAPI <= 2 cannot unpack *.tar.xz files 598 # This setup is because EAPI <= 2 cannot unpack *.tar.xz files
501 # directly, so we do it ourselves (using the exact same code as portage) 599 # directly, so we do it ourselves (using the exact same code as portage)
535 # kdelibs inherits kde4-base but handle installing the handbook itself 633 # kdelibs inherits kde4-base but handle installing the handbook itself
536 if ! has kde4-meta ${INHERITED}; then 634 if ! has kde4-meta ${INHERITED}; then
537 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas 635 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas
538 fi 636 fi
539 637
540 [[ ${BUILD_TYPE} = live ]] && subversion_src_prepare 638 # SCM bootstrap
639 if [[ ${BUILD_TYPE} = live ]]; then
640 if has subversion ${INHERITED}; then
641 subversion_src_prepare
642 elif has git ${INHERITED}; then
643 git_src_prepare
644 fi
645 fi
541 646
542 # Apply patches 647 # Apply patches
543 base_src_prepare 648 base_src_prepare
544 epatch_user
545 649
546 # Save library dependencies 650 # Save library dependencies
547 if [[ -n ${KMSAVELIBS} ]] ; then 651 if [[ -n ${KMSAVELIBS} ]] ; then
548 save_library_dependencies 652 save_library_dependencies
549 fi 653 fi
577 681
578 # Set distribution name 682 # Set distribution name
579 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo) 683 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
580 684
581 # Here we set the install prefix 685 # Here we set the install prefix
582 cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}") 686 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
583 687
584 # Use colors 688 # Use colors
585 QTEST_COLORED=1 689 QTEST_COLORED=1
586 690
587 # Shadow existing /usr installations 691 # Shadow existing /usr installations
590 # Handle kdeprefix-ed KDE 694 # Handle kdeprefix-ed KDE
591 if [[ ${KDEDIR} != /usr ]]; then 695 if [[ ${KDEDIR} != /usr ]]; then
592 # Override some environment variables - only when kdeprefix is different, 696 # Override some environment variables - only when kdeprefix is different,
593 # to not break ccache/distcc 697 # to not break ccache/distcc
594 PATH="${EKDEDIR}/bin:${PATH}" 698 PATH="${EKDEDIR}/bin:${PATH}"
595 LDPATH="${EKDEDIR}/$(get_libdir)${LDPATH+:}${LDPATH}" 699
700 # Append library search path
701 append-ldflags -L"${EKDEDIR}/$(get_libdir)"
596 702
597 # Append full RPATH 703 # Append full RPATH
598 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF) 704 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF)
599 705
600 # Set cmake prefixes to allow buildsystem to locate valid KDE installation 706 # Set cmake prefixes to allow buildsystem to locate valid KDE installation
601 # when more are present 707 # when more are present
602 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}") 708 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}")
603 fi 709 fi
710
711 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
712 tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/lib/qt4)
713 #kde-config -path data unavailable when cross-compiling
714 tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
604 715
605 # Handle kdeprefix in application itself 716 # Handle kdeprefix in application itself
606 if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then 717 if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then
607 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc 718 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
608 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc) 719 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
653 764
654 if [[ -n ${KMSAVELIBS} ]] ; then 765 if [[ -n ${KMSAVELIBS} ]] ; then
655 install_library_dependencies 766 install_library_dependencies
656 fi 767 fi
657 768
658 kde4-base_src_make_doc 769 # Install common documentation of KDE4 applications
770 local doc
771 if ! has kde4-meta ${INHERITED}; then
772 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
773 [[ -f "${doc}" ]] && [[ -s "${doc}" ]] && dodoc "${doc}"
774 done
775 for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
776 [[ -f "${doc}" ]] && [[ -s "${doc}" ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
777 done
778 fi
779
659 cmake-utils_src_install 780 cmake-utils_src_install
660}
661
662# @FUNCTION: kde4-base_src_make_doc
663# @DESCRIPTION:
664# Function for installing the documentation of KDE4 applications.
665kde4-base_src_make_doc() {
666 debug-print-function ${FUNCNAME} "$@"
667
668 local doc
669 for doc in AUTHORS ChangeLog* README* NEWS TODO; do
670 [[ -s ${doc} ]] && dodoc ${doc}
671 done
672
673 if [[ -z ${KMNAME} ]]; then
674 for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
675 if [[ -s ${doc} ]]; then
676 local doc_complete=${doc}
677 doc="${doc#*/}"
678 newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
679 fi
680 done
681 fi
682} 781}
683 782
684# @FUNCTION: kde4-base_pkg_postinst 783# @FUNCTION: kde4-base_pkg_postinst
685# @DESCRIPTION: 784# @DESCRIPTION:
686# Function to rebuild the KDE System Configuration Cache after an application has been installed. 785# Function to rebuild the KDE System Configuration Cache after an application has been installed.

Legend:
Removed from v.1.60  
changed lines
  Added in v.1.69

  ViewVC Help
Powered by ViewVC 1.1.20