/[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.116 Revision 1.143
1# Copyright 1999-2012 Gentoo Foundation 1# Copyright 1999-2014 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.116 2012/05/08 22:00:49 dilfridge Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.143 2014/11/13 04:19:51 kensington 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
9# @DESCRIPTION: 9# @DESCRIPTION:
10# The kde4-base.eclass provides support for building KDE4 based ebuilds 10# The kde4-base.eclass provides support for building KDE4 based ebuilds
11# and KDE4 applications. 11# and KDE4 applications.
12# 12#
13# NOTE: KDE 4 ebuilds currently support EAPI "3". This will be reviewed 13# NOTE: KDE 4 ebuilds currently support EAPIs 4 and 5. This will be
14# over time as new EAPI versions are approved. 14# reviewed over time as new EAPI versions are approved.
15
16if [[ -z ${_KDE4_BASE_ECLASS} ]]; then
17_KDE4_BASE_ECLASS=1
15 18
16# @ECLASS-VARIABLE: KDE_SELINUX_MODULE 19# @ECLASS-VARIABLE: KDE_SELINUX_MODULE
17# @DESCRIPTION: 20# @DESCRIPTION:
18# If set to "none", do nothing. 21# If set to "none", do nothing.
19# For any other value, add selinux to IUSE, and depending on that useflag 22# For any other value, add selinux to IUSE, and depending on that useflag
20# add a dependency on sec-policy/selinux-${KDE_SELINUX_MODULE} to (R)DEPEND 23# add a dependency on sec-policy/selinux-${KDE_SELINUX_MODULE} to (R)DEPEND
21: ${KDE_SELINUX_MODULE:=none} 24: ${KDE_SELINUX_MODULE:=none}
22 25
26# @ECLASS-VARIABLE: VIRTUALDBUS_TEST
27# @DESCRIPTION:
28# If defined, launch and use a private dbus session during src_test.
29
23# @ECLASS-VARIABLE: VIRTUALX_REQUIRED 30# @ECLASS-VARIABLE: VIRTUALX_REQUIRED
24# @DESCRIPTION: 31# @DESCRIPTION:
25# For proper description see virtualx.eclass manpage. 32# For proper description see virtualx.eclass manpage.
26# Here we redefine default value to be manual, if your package needs virtualx 33# Here we redefine default value to be manual, if your package needs virtualx
27# for tests you should proceed with setting VIRTUALX_REQUIRED=test. 34# for tests you should proceed with setting VIRTUALX_REQUIRED=test.
28: ${VIRTUALX_REQUIRED:=manual} 35: ${VIRTUALX_REQUIRED:=manual}
29 36
30inherit kde4-functions toolchain-funcs fdo-mime gnome2-utils base virtualx versionator eutils 37inherit kde4-functions toolchain-funcs fdo-mime flag-o-matic gnome2-utils virtualx versionator eutils multilib
31 38
32if [[ ${BUILD_TYPE} = live ]]; then 39if [[ ${KDE_BUILD_TYPE} = live ]]; then
33 case ${KDE_SCM} in 40 case ${KDE_SCM} in
34 svn) inherit subversion ;; 41 svn) inherit subversion ;;
35 git) inherit git-2 ;; 42 git) inherit git-r3 ;;
36 esac 43 esac
37fi 44fi
38 45
39# @ECLASS-VARIABLE: CMAKE_REQUIRED 46# @ECLASS-VARIABLE: CMAKE_REQUIRED
40# @DESCRIPTION: 47# @DESCRIPTION:
57KDE_MINIMAL="${KDE_MINIMAL:-4.4}" 64KDE_MINIMAL="${KDE_MINIMAL:-4.4}"
58 65
59# Set slot for KDEBASE known packages 66# Set slot for KDEBASE known packages
60case ${KDEBASE} in 67case ${KDEBASE} in
61 kde-base) 68 kde-base)
69 case ${EAPI} in
70 5)
71 SLOT=4/$(get_version_component_range 1-2)
72 ;;
73 *)
62 SLOT=4 74 SLOT=4
75 ;;
76 esac
63 KDE_MINIMAL="${PV}" 77 KDE_MINIMAL="${PV}"
64 ;; 78 ;;
65 koffice)
66 SLOT="2"
67 ;;
68 kdevelop) 79 kdevelop)
69 if [[ ${BUILD_TYPE} = live ]]; then 80 if [[ ${KDE_BUILD_TYPE} = live ]]; then
70 # @ECLASS-VARIABLE: KDEVELOP_VERSION 81 # @ECLASS-VARIABLE: KDEVELOP_VERSION
71 # @DESCRIPTION: 82 # @DESCRIPTION:
72 # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages. 83 # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages.
73 # Applies to KDEBASE=kdevelop only. 84 # Applies to KDEBASE=kdevelop only.
74 KDEVELOP_VERSION="${KDEVELOP_VERSION:-9999}" 85 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.9999}"
75 # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION 86 # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION
76 # @DESCRIPTION: 87 # @DESCRIPTION:
77 # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages. 88 # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages.
78 # Applies to KDEBASE=kdevelop only. 89 # Applies to KDEBASE=kdevelop only.
79 KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-9999}" 90 KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-4.9999}"
80 else 91 else
81 case ${PN} in 92 case ${PN} in
82 kdevelop|quanta) 93 kdevelop)
83 KDEVELOP_VERSION=${PV} 94 KDEVELOP_VERSION=${PV}
84 KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)" 95 KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
85 ;; 96 ;;
86 kdevplatform|kdevelop-php*) 97 kdevplatform|kdevelop-php*|kdevelop-python)
87 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)" 98 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
88 KDEVPLATFORM_VERSION=${PV} 99 KDEVPLATFORM_VERSION=${PV}
89 ;; 100 ;;
90 *) 101 *)
91 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}" 102 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}"
103unset buildsystem_eclass 114unset buildsystem_eclass
104unset export_fns 115unset export_fns
105 116
106# @ECLASS-VARIABLE: DECLARATIVE_REQUIRED 117# @ECLASS-VARIABLE: DECLARATIVE_REQUIRED
107# @DESCRIPTION: 118# @DESCRIPTION:
108# Is qt-declarative required? Possible values are 'always', 'optional' and 'never'. 119# Is qtdeclarative required? Possible values are 'always', 'optional' and 'never'.
109# This variable must be set before inheriting any eclasses. Defaults to 'never'. 120# This variable must be set before inheriting any eclasses. Defaults to 'never'.
110DECLARATIVE_REQUIRED="${DECLARATIVE_REQUIRED:-never}" 121DECLARATIVE_REQUIRED="${DECLARATIVE_REQUIRED:-never}"
111 122
112# @ECLASS-VARIABLE: QTHELP_REQUIRED 123# @ECLASS-VARIABLE: QTHELP_REQUIRED
113# @DESCRIPTION: 124# @DESCRIPTION:
114# Is qt-assistant required? Possible values are 'always', 'optional' and 'never'. 125# Is qthelp required? Possible values are 'always', 'optional' and 'never'.
115# This variable must be set before inheriting any eclasses. Defaults to 'never'. 126# This variable must be set before inheriting any eclasses. Defaults to 'never'.
116QTHELP_REQUIRED="${QTHELP_REQUIRED:-never}" 127QTHELP_REQUIRED="${QTHELP_REQUIRED:-never}"
117 128
118# @ECLASS-VARIABLE: OPENGL_REQUIRED 129# @ECLASS-VARIABLE: OPENGL_REQUIRED
119# @DESCRIPTION: 130# @DESCRIPTION:
120# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'. 131# Is qtopengl required? Possible values are 'always', 'optional' and 'never'.
121# This variable must be set before inheriting any eclasses. Defaults to 'never'. 132# This variable must be set before inheriting any eclasses. Defaults to 'never'.
122OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}" 133OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
123 134
124# @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED 135# @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
125# @DESCRIPTION: 136# @DESCRIPTION:
126# Is qt-multimedia required? Possible values are 'always', 'optional' and 'never'. 137# Is qtmultimedia required? Possible values are 'always', 'optional' and 'never'.
127# This variable must be set before inheriting any eclasses. Defaults to 'never'. 138# This variable must be set before inheriting any eclasses. Defaults to 'never'.
128MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}" 139MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
129 140
130# @ECLASS-VARIABLE: CPPUNIT_REQUIRED 141# @ECLASS-VARIABLE: CPPUNIT_REQUIRED
131# @DESCRIPTION: 142# @DESCRIPTION:
153# @ECLASS-VARIABLE: KDE_LINGUAS_LIVE_OVERRIDE 164# @ECLASS-VARIABLE: KDE_LINGUAS_LIVE_OVERRIDE
154# @DESCRIPTION: 165# @DESCRIPTION:
155# Set this varible if you want your live package to manage its 166# Set this varible if you want your live package to manage its
156# translations. (Mostly all kde ebuilds does not ship documentation 167# translations. (Mostly all kde ebuilds does not ship documentation
157# and translations in live ebuilds) 168# and translations in live ebuilds)
158if [[ ${BUILD_TYPE} == live && -z ${KDE_LINGUAS_LIVE_OVERRIDE} ]]; then 169if [[ ${KDE_BUILD_TYPE} == live && -z ${KDE_LINGUAS_LIVE_OVERRIDE} ]]; then
159 # Kdebase actualy provides the handbooks even for live stuff 170 # Kdebase actualy provides the handbooks even for live stuff
160 [[ ${KDEBASE} == kde-base ]] || KDE_HANDBOOK=never 171 [[ ${KDEBASE} == kde-base ]] || KDE_HANDBOOK=never
161 KDE_LINGUAS="" 172 KDE_LINGUAS=""
162fi 173fi
163 174
164# Setup packages inheriting this eclass 175# Setup packages inheriting this eclass
165case ${KDEBASE} in 176case ${KDEBASE} in
166 kde-base) 177 kde-base)
167 HOMEPAGE="http://www.kde.org/" 178 HOMEPAGE="http://www.kde.org/"
168 LICENSE="GPL-2" 179 LICENSE="GPL-2"
169 if [[ $BUILD_TYPE = live ]]; then 180 if [[ ${KDE_BUILD_TYPE} = live && -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
170 # Disable tests for live ebuilds 181 # Disable tests for live ebuilds by default
171 RESTRICT+=" test" 182 RESTRICT+=" test"
172 fi
173
174 # Only add the kdeprefix USE flag for older versions, to help
175 # non-portage package managers handle the upgrade
176 if [[ ${PV} < 4.6.4 && ( ( ${KMNAME} != kdepim && ${PN} != kdepim-runtime ) || ${PV} < 4.6 ) ]]; then
177 IUSE+=" kdeprefix"
178 fi 183 fi
179 184
180 # This code is to prevent portage from searching GENTOO_MIRRORS for 185 # This code is to prevent portage from searching GENTOO_MIRRORS for
181 # packages that will never be mirrored. (As they only will ever be in 186 # packages that will never be mirrored. (As they only will ever be in
182 # the overlay). 187 # the overlay).
183 case ${PV} in 188 case ${PV} in
184 *9999* | 4.?.[6-9]?) 189 *9999* | 4.?.[6-9]? | 4.??.[6-9]?)
185 RESTRICT+=" mirror" 190 RESTRICT+=" mirror"
186 ;; 191 ;;
187 esac 192 esac
188 ;; 193 ;;
189 koffice)
190 HOMEPAGE="http://www.koffice.org/"
191 LICENSE="GPL-2"
192 ;;
193 kdevelop) 194 kdevelop)
194 HOMEPAGE="http://www.kdevelop.org/" 195 HOMEPAGE="http://www.kdevelop.org/"
195 LICENSE="GPL-2" 196 LICENSE="GPL-2"
196 ;; 197 ;;
197esac 198esac
198 199
199# @ECLASS-VARIABLE: QT_MINIMAL 200# @ECLASS-VARIABLE: QT_MINIMAL
200# @DESCRIPTION: 201# @DESCRIPTION:
201# Determine version of qt we enforce as minimal for the package. 202# Determine version of qt we enforce as minimal for the package.
202if version_is_at_least 4.8.50 "${KDE_MINIMAL}"; then
203 # Upstream has added an *undeclared* dependency on Qt 4.8...
204 QT_MINIMAL="${QT_MINIMAL:-4.8.0}" 203QT_MINIMAL="${QT_MINIMAL:-4.8.5}"
205elif version_is_at_least 4.7.80 "${KDE_MINIMAL}"; then
206 QT_MINIMAL="${QT_MINIMAL:-4.7.4}"
207else
208 QT_MINIMAL="${QT_MINIMAL:-4.7.0}"
209fi
210 204
211# Declarative dependencies 205# Declarative dependencies
212qtdeclarativedepend=" 206qtdeclarativedepend="
213 >=x11-libs/qt-declarative-${QT_MINIMAL}:4 207 >=dev-qt/qtdeclarative-${QT_MINIMAL}:4
214" 208"
215case ${DECLARATIVE_REQUIRED} in 209case ${DECLARATIVE_REQUIRED} in
216 always) 210 always)
217 COMMONDEPEND+=" ${qtdeclarativedepend}" 211 COMMONDEPEND+=" ${qtdeclarativedepend}"
218 ;; 212 ;;
224esac 218esac
225unset qtdeclarativedepend 219unset qtdeclarativedepend
226 220
227# QtHelp dependencies 221# QtHelp dependencies
228qthelpdepend=" 222qthelpdepend="
229 >=x11-libs/qt-assistant-${QT_MINIMAL}:4 223 >=dev-qt/qthelp-${QT_MINIMAL}:4
230" 224"
231case ${QTHELP_REQUIRED} in 225case ${QTHELP_REQUIRED} in
232 always) 226 always)
233 COMMONDEPEND+=" ${qthelpdepend}" 227 COMMONDEPEND+=" ${qthelpdepend}"
234 ;; 228 ;;
239esac 233esac
240unset qthelpdepend 234unset qthelpdepend
241 235
242# OpenGL dependencies 236# OpenGL dependencies
243qtopengldepend=" 237qtopengldepend="
244 >=x11-libs/qt-opengl-${QT_MINIMAL}:4 238 >=dev-qt/qtopengl-${QT_MINIMAL}:4
245" 239"
246case ${OPENGL_REQUIRED} in 240case ${OPENGL_REQUIRED} in
247 always) 241 always)
248 COMMONDEPEND+=" ${qtopengldepend}" 242 COMMONDEPEND+=" ${qtopengldepend}"
249 ;; 243 ;;
255esac 249esac
256unset qtopengldepend 250unset qtopengldepend
257 251
258# MultiMedia dependencies 252# MultiMedia dependencies
259qtmultimediadepend=" 253qtmultimediadepend="
260 >=x11-libs/qt-multimedia-${QT_MINIMAL}:4 254 >=dev-qt/qtmultimedia-${QT_MINIMAL}:4
261" 255"
262case ${MULTIMEDIA_REQUIRED} in 256case ${MULTIMEDIA_REQUIRED} in
263 always) 257 always)
264 COMMONDEPEND+=" ${qtmultimediadepend}" 258 COMMONDEPEND+=" ${qtmultimediadepend}"
265 ;; 259 ;;
289 283
290# KDE dependencies 284# KDE dependencies
291# Qt accessibility classes are needed in various places, bug 325461 285# Qt accessibility classes are needed in various places, bug 325461
292kdecommondepend=" 286kdecommondepend="
293 dev-lang/perl 287 dev-lang/perl
294 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl]
295 >=x11-libs/qt-dbus-${QT_MINIMAL}:4
296 >=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus]
297 >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility] 288 >=dev-qt/qt3support-${QT_MINIMAL}:4[accessibility]
289 >=dev-qt/qtcore-${QT_MINIMAL}:4[qt3support,ssl]
290 >=dev-qt/qtdbus-${QT_MINIMAL}:4
291 >=dev-qt/designer-${QT_MINIMAL}:4[-phonon]
292 >=dev-qt/qtgui-${QT_MINIMAL}:4[accessibility,dbus(+)]
298 >=x11-libs/qt-script-${QT_MINIMAL}:4 293 >=dev-qt/qtscript-${QT_MINIMAL}:4
299 >=x11-libs/qt-sql-${QT_MINIMAL}:4[qt3support] 294 >=dev-qt/qtsql-${QT_MINIMAL}:4[qt3support]
300 >=x11-libs/qt-svg-${QT_MINIMAL}:4 295 >=dev-qt/qtsvg-${QT_MINIMAL}:4
301 >=x11-libs/qt-test-${QT_MINIMAL}:4 296 >=dev-qt/qttest-${QT_MINIMAL}:4
302 >=x11-libs/qt-webkit-${QT_MINIMAL}:4 297 >=dev-qt/qtwebkit-${QT_MINIMAL}:4
303 !aqua? (
304 x11-libs/libXext
305 x11-libs/libXt
306 x11-libs/libXxf86vm
307 x11-libs/libXcomposite
308 x11-libs/libxkbfile
309 )
310" 298"
311 299
312if [[ ${PN} != kdelibs ]]; then 300if [[ ${PN} != kdelibs ]]; then
313 kdecommondepend+=" $(add_kdebase_dep kdelibs)" 301 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
314 if [[ ${KDEBASE} = kdevelop ]]; then 302 if [[ ${KDEBASE} = kdevelop ]]; then
319 # Applies to KDEBASE=kdevelop only. 307 # Applies to KDEBASE=kdevelop only.
320 KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}" 308 KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
321 case ${KDEVPLATFORM_REQUIRED} in 309 case ${KDEVPLATFORM_REQUIRED} in
322 always) 310 always)
323 kdecommondepend+=" 311 kdecommondepend+="
324 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION} 312 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}:4
325 " 313 "
326 ;; 314 ;;
327 *) ;; 315 *) ;;
328 esac 316 esac
329 fi 317 fi
344# all packages needs oxygen icons for basic iconset 332# all packages needs oxygen icons for basic iconset
345if [[ ${PN} != oxygen-icons ]]; then 333if [[ ${PN} != oxygen-icons ]]; then
346 kderdepend+=" $(add_kdebase_dep oxygen-icons)" 334 kderdepend+=" $(add_kdebase_dep oxygen-icons)"
347fi 335fi
348 336
349# add a dependency over kde-l10n if EAPI4 or better is around 337# add a dependency over kde-l10n
350if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} && ${EAPI:-0} != 3 ]]; then 338if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} ]]; then
351 for _lingua in ${KDE_LINGUAS}; do 339 for _lingua in ${KDE_LINGUAS}; do
352 # if our package has lignuas, pull in kde-l10n with selected lingua enabled, 340 # if our package has lignuas, pull in kde-l10n with selected lingua enabled,
353 # but only for selected ones. 341 # but only for selected ones.
354 # this can't be done on one line because if user doesn't use any localisation 342 # this can't be done on one line because if user doesn't use any localisation
355 # then he is probably not interested in kde-l10n at all. 343 # then he is probably not interested in kde-l10n at all.
387 IUSE+=" selinux" 375 IUSE+=" selinux"
388 kdecommondepend+=" selinux? ( sec-policy/selinux-${KDE_SELINUX_MODULE} )" 376 kdecommondepend+=" selinux? ( sec-policy/selinux-${KDE_SELINUX_MODULE} )"
389 ;; 377 ;;
390esac 378esac
391 379
380# We always need the aqua useflag because otherwise we cannot = refer to it inside
381# add_kdebase_dep. This was always kind of a bug, but came to light with EAPI=5
382# (where referring to a use flag not in IUSE masks the ebuild).
383# The only alternative would be to prohibit using add_kdebase_dep if KDE_REQUIRED=never
384IUSE+=" aqua"
385
392case ${KDE_REQUIRED} in 386case ${KDE_REQUIRED} in
393 always) 387 always)
394 IUSE+=" aqua"
395 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}" 388 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}"
396 [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}" 389 [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}"
397 [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}" 390 [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}"
398 ;; 391 ;;
399 optional) 392 optional)
400 IUSE+=" aqua kde" 393 IUSE+=" kde"
401 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )" 394 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
402 [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )" 395 [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )"
403 [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )" 396 [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )"
404 ;; 397 ;;
405 *) ;; 398 *) ;;
415DEPEND+=" ${COMMONDEPEND}" 408DEPEND+=" ${COMMONDEPEND}"
416RDEPEND+=" ${COMMONDEPEND}" 409RDEPEND+=" ${COMMONDEPEND}"
417unset COMMONDEPEND 410unset COMMONDEPEND
418 411
419# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a 412# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
420# koffice ebuild, the URI should be set in the ebuild itself 413# kdevelop ebuild, the URI should be set in the ebuild itself
421_calculate_src_uri() { 414_calculate_src_uri() {
422 debug-print-function ${FUNCNAME} "$@" 415 debug-print-function ${FUNCNAME} "$@"
423 416
424 local _kmname _kmname_pv 417 local _kmname _kmname_pv
425 418
426 # we calculate URI only for known KDEBASE modules 419 # we calculate URI only for known KDEBASE modules
427 [[ -n ${KDEBASE} ]] || return 420 [[ -n ${KDEBASE} ]] || return
428 421
429 # calculate tarball module name 422 # calculate tarball module name
430 if [[ -n ${KMNAME} ]]; then 423 if [[ -n ${KMNAME} ]]; then
431 # fixup kdebase-apps name
432 case ${KMNAME} in
433 kdebase-apps)
434 _kmname="kdebase" ;;
435 *)
436 _kmname="${KMNAME}" ;; 424 _kmname="${KMNAME}"
437 esac
438 else 425 else
439 _kmname=${PN} 426 _kmname=${PN}
440 fi 427 fi
441 _kmname_pv="${_kmname}-${PV}" 428 _kmname_pv="${_kmname}-${PV}"
442 case ${KDEBASE} in 429 case ${KDEBASE} in
444 case ${PV} in 431 case ${PV} in
445 4.4.11.1) 432 4.4.11.1)
446 # KDEPIM 4.4, special case 433 # KDEPIM 4.4, special case
447 # TODO: Remove this part when KDEPIM 4.4 gets out of the tree 434 # TODO: Remove this part when KDEPIM 4.4 gets out of the tree
448 SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2" ;; 435 SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2" ;;
449 4.[456789].8[05] | 4.[456789].9[0235678]) 436 4.?.[6-9]? | 4.??.[6-9]?)
450 # Unstable KDE SC releases 437 # Unstable KDE SC releases
438 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.xz" ;;
439 4.[1-7].[12345])
440 # Stable KDE SC with old .bz2 support
451 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 441 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
452 4.8.[12345]) 442 4.11.9)
453 # Stable KDE SC releases with .xz support 443 # Part of 4.12 actually, sigh. Not stable for next release!
454 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;; 444 SRC_URI="mirror://kde/stable/4.12.5/src/${_kmname_pv}.tar.xz" ;;
445 4.11.11)
446 # Part of 4.13 actually, sigh. Not stable for next release!
447 SRC_URI="mirror://kde/stable/4.13.3/src/${_kmname_pv}.tar.xz" ;;
448 4.11.12)
449 # Part of 4.14 actually, sigh. Not stable for next release!
450 SRC_URI="mirror://kde/stable/4.14.1/src/${_kmname_pv}.tar.xz" ;;
451 4.11.13)
452 # Part of 4.14 actually, sigh. Not stable for next release!
453 SRC_URI="mirror://kde/stable/4.14.2/src/${_kmname_pv}.tar.xz" ;;
454 4.11.14)
455 # Part of 4.14 actually, sigh. Not stable for next release!
456 SRC_URI="mirror://kde/stable/4.14.3/src/${_kmname_pv}.tar.xz" ;;
455 *) 457 *)
456 # Stable KDE SC releases 458 # Stable KDE SC releases
457 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 459 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;;
458 esac
459 ;;
460 koffice)
461 case ${PV} in
462 2.[1234].[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
463 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
464 esac 460 esac
465 ;; 461 ;;
466 kdevelop|kdevelop-php*|kdevplatform) 462 kdevelop|kdevelop-php*|kdevplatform)
467 case ${KDEVELOP_VERSION} in 463 case ${KDEVELOP_VERSION} in
468 4.[12].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;; 464 4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
469 *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;; 465 *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
470 esac 466 esac
471 ;; 467 ;;
472 esac 468 esac
473} 469}
479 case ${KDE_SCM} in 475 case ${KDE_SCM} in
480 svn) 476 svn)
481 # Determine branch URL based on live type 477 # Determine branch URL based on live type
482 local branch_prefix 478 local branch_prefix
483 case ${PV} in 479 case ${PV} in
484 9999*) 480 4.9999*)
485 # trunk 481 # trunk
486 branch_prefix="trunk/KDE" 482 branch_prefix="trunk/KDE"
487 ;; 483 ;;
488 *) 484 *)
489 # branch 485 # branch
528 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta 524 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
529 # build packages from same svn location. 525 # build packages from same svn location.
530 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" 526 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
531 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}" 527 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
532 ;; 528 ;;
533 koffice)
534 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
535 ;;
536 *) 529 *)
537 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" 530 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
538 ;; 531 ;;
539 esac 532 esac
540 else 533 else
543 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}" 536 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
544 fi 537 fi
545 # @ECLASS-VARIABLE: ESVN_UP_FREQ 538 # @ECLASS-VARIABLE: ESVN_UP_FREQ
546 # @DESCRIPTION: 539 # @DESCRIPTION:
547 # This variable is used for specifying the timeout between svn synces 540 # This variable is used for specifying the timeout between svn synces
548 # for kde-base and koffice modules. Does not affect misc apps. 541 # for kde-base modules. Does not affect misc apps.
549 # Default value is 1 hour. 542 # Default value is 1 hour.
550 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1} 543 [[ ${KDEBASE} = kde-base ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
551 ;; 544 ;;
552 git) 545 git)
553 local _kmname 546 local _kmname
554 # @ECLASS-VARIABLE: EGIT_MIRROR 547 # @ECLASS-VARIABLE: EGIT_MIRROR
555 # @DESCRIPTION: 548 # @DESCRIPTION:
569 else 562 else
570 _kmname=${PN} 563 _kmname=${PN}
571 fi 564 fi
572 565
573 # default branching 566 # default branching
574 [[ ${PV} != 9999* && ${KDEBASE} == kde-base ]] && \ 567 [[ ${PV} != 4.9999* && ${KDEBASE} == kde-base ]] && \
575 EGIT_BRANCH="KDE/$(get_kde_version)" 568 EGIT_BRANCH="KDE/$(get_kde_version)"
576 569
577 # default repo uri 570 # default repo uri
578 EGIT_REPO_URI="${EGIT_MIRROR}/${_kmname}" 571 EGIT_REPO_URI+=( "${EGIT_MIRROR}/${_kmname}" )
579 572
580 debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}" 573 debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
581 debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}" 574 debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
582 ;; 575 ;;
583 esac 576 esac
584} 577}
585 578
586case ${BUILD_TYPE} in 579case ${KDE_BUILD_TYPE} in
587 live) _calculate_live_repo ;; 580 live) _calculate_live_repo ;;
588 *) _calculate_src_uri ;; 581 *) _calculate_src_uri ;;
589esac 582esac
590 583
591debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}" 584debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
605 if has handbook ${IUSE} || has "+handbook" ${IUSE} && [ "${KDE_HANDBOOK}" != optional ] ; then 598 if has handbook ${IUSE} || has "+handbook" ${IUSE} && [ "${KDE_HANDBOOK}" != optional ] ; then
606 eqawarn "Handbook support is enabled via KDE_HANDBOOK=optional in the ebuild." 599 eqawarn "Handbook support is enabled via KDE_HANDBOOK=optional in the ebuild."
607 eqawarn "Please do not just set IUSE=handbook, as this leads to dependency errors." 600 eqawarn "Please do not just set IUSE=handbook, as this leads to dependency errors."
608 fi 601 fi
609 602
610 if use_if_iuse kdeprefix; then
611 eerror "Sorry, kdeprefix support has been removed."
612 eerror "Please remove kdeprefix from your USE variable."
613 die "kdeprefix support has been removed"
614 fi
615
616 if [[ ${CATEGORY}/${PN} != kde-base/kdelibs && ${CATEGORY}/${PN} != kde-base/kde-env ]] && \
617 { [[ ${KDE_REQUIRED} == always ]] || { [[ ${KDE_REQUIRED} == optional ]] && use kde; }; } && \
618 has_version kde-base/kdelibs[kdeprefix]; then
619 eerror "Sorry, kdeprefix support has been removed."
620 eerror "Please rebuild kdelibs without kdeprefix support."
621 die "kdeprefix support has been removed"
622 fi
623
624 # Don't set KDEHOME during compilation, it will cause access violations 603 # Don't set KDEHOME during compilation, it will cause access violations
625 unset KDEHOME 604 unset KDEHOME
626 605
627 # Check if gcc compiler is fresh enough. 606 # Check if gcc compiler is fresh enough.
628 # In theory should be in pkg_pretend but we check it only for kdelibs there 607 # In theory should be in pkg_pretend but we check it only for kdelibs there
629 # and for others we do just quick scan in pkg_setup because pkg_pretend 608 # and for others we do just quick scan in pkg_setup because pkg_pretend
630 # executions consume quite some time. 609 # executions consume quite some time (ie. when merging 300 packages at once will cause 300 checks)
631 # We can only do this for EAPI 4 or later because the MERGE_TYPE variable
632 # is otherwise undefined.
633 if [[ ${EAPI:-0} != 3 ]]; then
634 if [[ ${MERGE_TYPE} != binary ]]; then 610 if [[ ${MERGE_TYPE} != binary ]]; then
635 [[ $(gcc-major-version) -lt 4 ]] || \ 611 [[ $(gcc-major-version) -lt 4 ]] || \
636 ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \ 612 ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 6 ]] ) \
637 && die "Sorry, but gcc-4.3 and earlier wont work for KDE (see bug 354837)." 613 && die "Sorry, but gcc-4.6 and earlier wont work for some KDE packages."
638 fi
639 fi 614 fi
640 615
641 KDEDIR=/usr 616 KDEDIR=/usr
642 : ${PREFIX:=/usr} 617 : ${PREFIX:=/usr}
643 EKDEDIR=${EPREFIX}/usr 618 EKDEDIR=${EPREFIX}/usr
653# @DESCRIPTION: 628# @DESCRIPTION:
654# This function unpacks the source tarballs for KDE4 applications. 629# This function unpacks the source tarballs for KDE4 applications.
655kde4-base_src_unpack() { 630kde4-base_src_unpack() {
656 debug-print-function ${FUNCNAME} "$@" 631 debug-print-function ${FUNCNAME} "$@"
657 632
658 if [[ ${BUILD_TYPE} = live ]]; then 633 if [[ ${KDE_BUILD_TYPE} = live ]]; then
659 case ${KDE_SCM} in 634 case ${KDE_SCM} in
660 svn) 635 svn)
661 migrate_store_dir
662 subversion_src_unpack 636 subversion_src_unpack
663 ;; 637 ;;
664 git) 638 git)
665 git-2_src_unpack 639 git-r3_src_unpack
666 ;; 640 ;;
667 esac 641 esac
668 else 642 else
669 unpack ${A} 643 unpack ${A}
670 fi 644 fi
707 enable_selected_doc_linguas 681 enable_selected_doc_linguas
708 fi 682 fi
709 fi 683 fi
710 684
711 # SCM bootstrap 685 # SCM bootstrap
712 if [[ ${BUILD_TYPE} = live ]]; then 686 if [[ ${KDE_BUILD_TYPE} = live ]]; then
713 case ${KDE_SCM} in 687 case ${KDE_SCM} in
714 svn) subversion_src_prepare ;; 688 svn) subversion_src_prepare ;;
715 esac 689 esac
716 fi 690 fi
717 691
718 # Apply patches 692 # Apply patches, cmake-utils does the job already
719 base_src_prepare 693 cmake-utils_src_prepare
720 694
721 # Save library dependencies 695 # Save library dependencies
722 if [[ -n ${KMSAVELIBS} ]] ; then 696 if [[ -n ${KMSAVELIBS} ]] ; then
723 save_library_dependencies 697 save_library_dependencies
724 fi 698 fi
726 # Inject library dependencies 700 # Inject library dependencies
727 if [[ -n ${KMLOADLIBS} ]] ; then 701 if [[ -n ${KMLOADLIBS} ]] ; then
728 load_library_dependencies 702 load_library_dependencies
729 fi 703 fi
730 704
731 # Hack for manuals relying on outdated DTD, only outside kde-base/koffice/... 705 # Hack for manuals relying on outdated DTD, only outside kde-base/...
732 if [[ -z ${KDEBASE} ]]; then 706 if [[ -z ${KDEBASE} ]]; then
733 find "${S}" -name "*.docbook" \ 707 find "${S}" -name "*.docbook" \
734 -exec sed -i -r \ 708 -exec sed -i -r \
735 -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' {} + \ 709 -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' {} + \
736 || die 'failed to fix DocBook variant version' 710 || die 'failed to fix DocBook variant version'
746 # Build tests in src_test only, where we override this value 720 # Build tests in src_test only, where we override this value
747 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF) 721 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF)
748 722
749 if use_if_iuse debug; then 723 if use_if_iuse debug; then
750 # Set "real" debug mode 724 # Set "real" debug mode
751 CMAKE_BUILD_TYPE="Debugfull" 725 CMAKE_KDE_BUILD_TYPE="Debugfull"
752 else 726 else
753 # Handle common release builds 727 # Handle common release builds
754 append-cppflags -DQT_NO_DEBUG 728 append-cppflags -DQT_NO_DEBUG
755 fi 729 fi
756 730
799# @DESCRIPTION: 773# @DESCRIPTION:
800# Function for testing KDE4 applications. 774# Function for testing KDE4 applications.
801kde4-base_src_test() { 775kde4-base_src_test() {
802 debug-print-function ${FUNCNAME} "$@" 776 debug-print-function ${FUNCNAME} "$@"
803 777
778 local kded4_pid
779
780 _test_runner() {
781 if [[ -n "${VIRTUALDBUS_TEST}" ]]; then
782 export $(dbus-launch)
783 kded4 2>&1 > /dev/null &
784 kded4_pid=$!
785 fi
786
787 cmake-utils_src_test
788 }
789
790 # When run as normal user during ebuild development with the ebuild command, the
791 # kde tests tend to access the session DBUS. This however is not possible in a real
792 # emerge or on the tinderbox.
793 # > make sure it does not happen, so bad tests can be recognized and disabled
794 unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID
795
804 # Override this value, set in kde4-base_src_configure() 796 # Override this value, set in kde4-base_src_configure()
805 mycmakeargs+=(-DKDE4_BUILD_TESTS=ON) 797 mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
806 cmake-utils_src_configure 798 cmake-utils_src_configure
807 kde4-base_src_compile 799 kde4-base_src_compile
808
809 # When run as normal user during ebuild development with the ebuild command, the
810 # kde tests tend to access the session DBUS. This however is not possible in a real
811 # emerge or on the tinderbox.
812 # > make sure it does not happen, so bad tests can be recognized and disabled
813 unset DBUS_SESSION_BUS_ADDRESS
814 800
815 if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then 801 if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
816 # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default 802 # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
817 if [[ ${VIRTUALX_COMMAND} != emake ]]; then 803 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
818 # surprise- we are already INSIDE virtualmake!!! 804 # surprise- we are already INSIDE virtualmake!!!
819 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality." 805 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
820 debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild." 806 debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
821 debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the" 807 debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
822 debug-print " kde4-base.eclass docs for details... Applying workaround." 808 debug-print " kde4-base.eclass docs for details... Applying workaround."
823 cmake-utils_src_test 809 _test_runner
824 else 810 else
825 VIRTUALX_COMMAND="cmake-utils_src_test" virtualmake 811 VIRTUALX_COMMAND="_test_runner" virtualmake
826 fi 812 fi
827 else 813 else
828 cmake-utils_src_test 814 _test_runner
815 fi
816
817 if [ -n "${kded4_pid}" ] ; then
818 kill ${kded4_pid}
819 fi
820
821 if [ -n "${DBUS_SESSION_BUS_PID}" ] ; then
822 kill ${DBUS_SESSION_BUS_PID}
829 fi 823 fi
830} 824}
831 825
832# @FUNCTION: kde4-base_src_install 826# @FUNCTION: kde4-base_src_install
833# @DESCRIPTION: 827# @DESCRIPTION:
850 done 844 done
851 fi 845 fi
852 846
853 cmake-utils_src_install 847 cmake-utils_src_install
854 848
855 # In EAPI 4+, we don't want ${PREFIX}/share/doc/HTML to be compressed, 849 # We don't want ${PREFIX}/share/doc/HTML to be compressed,
856 # because then khelpcenter can't find the docs 850 # because then khelpcenter can't find the docs
857 [[ ${EAPI:-0} != 3 && -d ${ED}/${PREFIX}/share/doc/HTML ]] && 851 [[ -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
858 docompress -x ${PREFIX}/share/doc/HTML 852 docompress -x ${PREFIX}/share/doc/HTML
859} 853}
860 854
861# @FUNCTION: kde4-base_pkg_preinst 855# @FUNCTION: kde4-base_pkg_preinst
862# @DESCRIPTION: 856# @DESCRIPTION:
863# Function storing icon caches 857# Function storing icon caches
864kde4-base_pkg_preinst() { 858kde4-base_pkg_preinst() {
865 debug-print-function ${FUNCNAME} "$@" 859 debug-print-function ${FUNCNAME} "$@"
866 860
867 gnome2_icon_savelist 861 gnome2_icon_savelist
868 if [[ ${BUILD_TYPE} == live && ${KDE_SCM} == svn ]]; then 862 if [[ ${KDE_BUILD_TYPE} == live && ${KDE_SCM} == svn ]]; then
869 subversion_pkg_preinst 863 subversion_pkg_preinst
870 fi 864 fi
871} 865}
872 866
873# @FUNCTION: kde4-base_pkg_postinst 867# @FUNCTION: kde4-base_pkg_postinst
880 fdo-mime_desktop_database_update 874 fdo-mime_desktop_database_update
881 fdo-mime_mime_database_update 875 fdo-mime_mime_database_update
882 buildsycoca 876 buildsycoca
883 877
884 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then 878 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
885 if [[ ${BUILD_TYPE} = live ]]; then 879 if [[ ${KDE_BUILD_TYPE} = live ]]; then
886 echo 880 echo
887 einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}" 881 einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
888 einfo "Use it at your own risk." 882 einfo "Use it at your own risk."
889 einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!" 883 einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
890 echo 884 echo
913 gnome2_icon_cache_update 907 gnome2_icon_cache_update
914 fdo-mime_desktop_database_update 908 fdo-mime_desktop_database_update
915 fdo-mime_mime_database_update 909 fdo-mime_mime_database_update
916 buildsycoca 910 buildsycoca
917} 911}
912
913fi

Legend:
Removed from v.1.116  
changed lines
  Added in v.1.143

  ViewVC Help
Powered by ViewVC 1.1.20