/[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.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.58 2010/02/02 14:20:16 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[accessibility,dbus] 277 >=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus]
239 >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility,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]
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="
319 dev-util/automoc
263 dev-util/pkgconfig 320 dev-util/pkgconfig
264 !aqua? ( 321 !aqua? (
265 || ( >=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 )
266 x11-proto/xf86vidmodeproto 323 x11-proto/xf86vidmodeproto
267 ) 324 )
268" 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
269case ${KDE_REQUIRED} in 350case ${KDE_REQUIRED} in
270 always) 351 always)
271 IUSE+=" aqua" 352 IUSE+=" aqua"
272 COMMONDEPEND+=" ${kdecommondepend}" 353 COMMONDEPEND+=" ${kdecommondepend}"
273 DEPEND+=" ${kdedepend}" 354 DEPEND+=" ${kdedepend}"
283unset kdecommondepend kdedepend 364unset kdecommondepend kdedepend
284 365
285debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}" 366debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
286debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}" 367debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
287debug-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}"
288 370
289# Accumulate dependencies set by this eclass 371# Accumulate dependencies set by this eclass
290DEPEND+=" ${COMMONDEPEND}" 372DEPEND+=" ${COMMONDEPEND}"
291RDEPEND+=" ${COMMONDEPEND}" 373RDEPEND+=" ${COMMONDEPEND}"
292unset COMMONDEPEND 374unset COMMONDEPEND
296 378
297# 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
298# koffice ebuild, the URI should be set in the ebuild itself 380# koffice ebuild, the URI should be set in the ebuild itself
299case ${BUILD_TYPE} in 381case ${BUILD_TYPE} in
300 live) 382 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="" 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
319 # @ECLASS-VARIABLE: ESVN_MIRROR 402 # @ECLASS-VARIABLE: ESVN_MIRROR
320 # @DESCRIPTION: 403 # @DESCRIPTION:
321 # This variable allows easy overriding of default kde mirror service 404 # This variable allows easy overriding of default kde mirror service
322 # (anonsvn) with anything else you might want to use. 405 # (anonsvn) with anything else you might want to use.
323 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde} 406 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
324 # Split ebuild, or extragear stuff 407 # Split ebuild, or extragear stuff
325 if [[ -n ${KMNAME} ]]; then 408 if [[ -n ${KMNAME} ]]; then
326 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
327 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then 456 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
328 KMMODULE="${PN}" 457 KMMODULE="${PN}"
329 fi 458 fi
330 # Split kde-base/ ebuilds: (they reside in trunk/KDE)
331 case ${KMNAME} in 459 case ${KDEBASE} in
332 kdebase-*) 460 kdevelop)
333 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}" 461 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 ;; 462 ;;
360 esac 463 esac
361 else
362 # kdelibs, kdepimlibs
363 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
364 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
365 fi 464 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 ;; 465 ;;
373 *) 466 *)
374 if [[ -n ${KDEBASE} ]]; then 467 if [[ -n ${KDEBASE} ]]; then
375 if [[ -n ${KMNAME} ]]; then 468 if [[ -n ${KMNAME} ]]; then
376 case ${KMNAME} in 469 case ${KMNAME} in
384 fi 477 fi
385 _kmname_pv="${_kmname}-${PV}" 478 _kmname_pv="${_kmname}-${PV}"
386 case ${KDEBASE} in 479 case ${KDEBASE} in
387 kde-base) 480 kde-base)
388 case ${PV} in 481 case ${PV} in
389 4.[34].8[05] | 4.[34].9[0568]) 482 4.[45].8[05] | 4.[45].9[02568])
390 # block for normally packed unstable releases 483 # Normally packed unstable releases
391 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 484 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
392 4.[34].[6-9]*) 485 4.[45].[6-9]*)
393 # 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
394 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"
395 DEPEND+=" app-arch/xz-utils" 488 DEPEND+=" app-arch/xz-utils"
396 ;; 489 ;;
397 *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 490 *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
398 esac 491 esac
399 ;; 492 ;;
400 koffice) 493 koffice)
401 case ${PV} in 494 case ${PV} in
402 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" ;;
403 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;; 496 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
404 esac 497 esac
498 ;;
499 kdevelop)
500 SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
501 ;;
405 esac 502 esac
406 unset _kmname _kmname_pv 503 unset _kmname _kmname_pv
407 fi 504 fi
408 ;; 505 ;;
409esac 506esac
438 # Don't set KDEHOME during compilation, it will cause access violations 535 # Don't set KDEHOME during compilation, it will cause access violations
439 unset KDEHOME 536 unset KDEHOME
440 537
441 if [[ ${KDEBASE} = kde-base ]]; then 538 if [[ ${KDEBASE} = kde-base ]]; then
442 if use kdeprefix; then 539 if use kdeprefix; then
443 KDEDIR=/usr/kde/${_kdedir} 540 KDEDIR=/usr/kde/${SLOT}
444 else 541 else
445 KDEDIR=/usr 542 KDEDIR=/usr
446 fi 543 fi
447 : ${PREFIX:=${KDEDIR}} 544 : ${PREFIX:=${KDEDIR}}
448 else 545 else
478 # Point to correct QT plugins path 575 # Point to correct QT plugins path
479 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/" 576 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/"
480 577
481 # Fix XDG collision with sandbox 578 # Fix XDG collision with sandbox
482 export XDG_CONFIG_HOME="${T}" 579 export XDG_CONFIG_HOME="${T}"
483 # Not needed anymore
484 unset _kdedir
485} 580}
486 581
487# @FUNCTION: kde4-base_src_unpack 582# @FUNCTION: kde4-base_src_unpack
488# @DESCRIPTION: 583# @DESCRIPTION:
489# This function unpacks the source tarballs for KDE4 applications. 584# This function unpacks the source tarballs for KDE4 applications.
490kde4-base_src_unpack() { 585kde4-base_src_unpack() {
491 debug-print-function ${FUNCNAME} "$@" 586 debug-print-function ${FUNCNAME} "$@"
492 587
493 if [[ ${BUILD_TYPE} = live ]]; then 588 if [[ ${BUILD_TYPE} = live ]]; then
589 if has subversion ${INHERITED}; then
494 migrate_store_dir 590 migrate_store_dir
495 subversion_src_unpack 591 subversion_src_unpack
592 elif has git ${INHERITED}; then
593 git_src_unpack
594 fi
496 elif [[ ${EAPI} == 2 ]]; then 595 elif [[ ${EAPI} == 2 ]]; then
497 local file 596 local file
498 for file in ${A}; do 597 for file in ${A}; do
499 # This setup is because EAPI <= 2 cannot unpack *.tar.xz files 598 # 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) 599 # directly, so we do it ourselves (using the exact same code as portage)
534 # kdelibs inherits kde4-base but handle installing the handbook itself 633 # kdelibs inherits kde4-base but handle installing the handbook itself
535 if ! has kde4-meta ${INHERITED}; then 634 if ! has kde4-meta ${INHERITED}; then
536 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
537 fi 636 fi
538 637
539 [[ ${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
540 646
541 # Apply patches 647 # Apply patches
542 base_src_prepare 648 base_src_prepare
543 epatch_user
544 649
545 # Save library dependencies 650 # Save library dependencies
546 if [[ -n ${KMSAVELIBS} ]] ; then 651 if [[ -n ${KMSAVELIBS} ]] ; then
547 save_library_dependencies 652 save_library_dependencies
548 fi 653 fi
576 681
577 # Set distribution name 682 # Set distribution name
578 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo) 683 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
579 684
580 # Here we set the install prefix 685 # Here we set the install prefix
581 cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}") 686 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
582 687
583 # Use colors 688 # Use colors
584 QTEST_COLORED=1 689 QTEST_COLORED=1
585 690
586 # Shadow existing /usr installations 691 # Shadow existing /usr installations
589 # Handle kdeprefix-ed KDE 694 # Handle kdeprefix-ed KDE
590 if [[ ${KDEDIR} != /usr ]]; then 695 if [[ ${KDEDIR} != /usr ]]; then
591 # Override some environment variables - only when kdeprefix is different, 696 # Override some environment variables - only when kdeprefix is different,
592 # to not break ccache/distcc 697 # to not break ccache/distcc
593 PATH="${EKDEDIR}/bin:${PATH}" 698 PATH="${EKDEDIR}/bin:${PATH}"
594 LDPATH="${EKDEDIR}/$(get_libdir)${LDPATH+:}${LDPATH}" 699
700 # Append library search path
701 append-ldflags -L"${EKDEDIR}/$(get_libdir)"
595 702
596 # Append full RPATH 703 # Append full RPATH
597 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF) 704 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF)
598 705
599 # Set cmake prefixes to allow buildsystem to locate valid KDE installation 706 # Set cmake prefixes to allow buildsystem to locate valid KDE installation
600 # when more are present 707 # when more are present
601 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}") 708 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}")
602 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/)
603 715
604 # Handle kdeprefix in application itself 716 # Handle kdeprefix in application itself
605 if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then 717 if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then
606 # 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
607 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc) 719 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
652 764
653 if [[ -n ${KMSAVELIBS} ]] ; then 765 if [[ -n ${KMSAVELIBS} ]] ; then
654 install_library_dependencies 766 install_library_dependencies
655 fi 767 fi
656 768
657 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
658 cmake-utils_src_install 780 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} 781}
682 782
683# @FUNCTION: kde4-base_pkg_postinst 783# @FUNCTION: kde4-base_pkg_postinst
684# @DESCRIPTION: 784# @DESCRIPTION:
685# 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.58  
changed lines
  Added in v.1.69

  ViewVC Help
Powered by ViewVC 1.1.20