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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.134 - (hide annotations) (download)
Sun Mar 30 09:13:52 2014 UTC (7 months, 3 weeks ago) by johu
Branch: MAIN
Changes since 1.133: +7 -6 lines
Sync with kde overlay. Raise QT_MINIMAL to latest stable and simplify Qt deps
by Michael Palimaka <kensington@gentoo.org>. Add kde-workspace 4.11.8 SRC_URI.

1 dilfridge 1.132 # Copyright 1999-2014 Gentoo Foundation
2 ingmar 1.1 # Distributed under the terms of the GNU General Public License v2
3 johu 1.134 # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.133 2014/03/05 02:12:51 patrick Exp $
4 ingmar 1.1
5     # @ECLASS: kde4-base.eclass
6     # @MAINTAINER:
7     # kde@gentoo.org
8 jmbsvicetto 1.13 # @BLURB: This eclass provides functions for kde 4.X ebuilds
9 ingmar 1.1 # @DESCRIPTION:
10 scarabeus 1.22 # The kde4-base.eclass provides support for building KDE4 based ebuilds
11 ingmar 1.1 # and KDE4 applications.
12     #
13 kensington 1.128 # NOTE: KDE 4 ebuilds currently support EAPIs 4 and 5. This will be
14 alexxy 1.123 # reviewed over time as new EAPI versions are approved.
15 scarabeus 1.22
16 kensington 1.125 if [[ ${___ECLASS_ONCE_KDE4_BASE} != "recur -_+^+_- spank" ]] ; then
17     ___ECLASS_ONCE_KDE4_BASE="recur -_+^+_- spank"
18    
19 dilfridge 1.111 # @ECLASS-VARIABLE: KDE_SELINUX_MODULE
20     # @DESCRIPTION:
21     # If set to "none", do nothing.
22     # For any other value, add selinux to IUSE, and depending on that useflag
23     # add a dependency on sec-policy/selinux-${KDE_SELINUX_MODULE} to (R)DEPEND
24     : ${KDE_SELINUX_MODULE:=none}
25    
26 kensington 1.119 # @ECLASS-VARIABLE: VIRTUALDBUS_TEST
27     # @DESCRIPTION:
28     # If defined, launch and use a private dbus session during src_test.
29    
30 alexxy 1.78 # @ECLASS-VARIABLE: VIRTUALX_REQUIRED
31     # @DESCRIPTION:
32 dilfridge 1.85 # For proper description see virtualx.eclass manpage.
33     # Here we redefine default value to be manual, if your package needs virtualx
34     # for tests you should proceed with setting VIRTUALX_REQUIRED=test.
35 alexxy 1.78 : ${VIRTUALX_REQUIRED:=manual}
36    
37 dilfridge 1.132 inherit kde4-functions toolchain-funcs fdo-mime flag-o-matic gnome2-utils virtualx versionator eutils multilib
38 reavertm 1.61
39 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
40 scarabeus 1.87 case ${KDE_SCM} in
41     svn) inherit subversion ;;
42 dilfridge 1.132 git) inherit git-r3 ;;
43 scarabeus 1.87 esac
44 reavertm 1.61 fi
45    
46 scarabeus 1.52 # @ECLASS-VARIABLE: CMAKE_REQUIRED
47 scarabeus 1.44 # @DESCRIPTION:
48 scarabeus 1.47 # Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'.
49     # Please note that if it's set to 'never' you need to explicitly override following phases:
50     # src_configure, src_compile, src_test and src_install.
51     # Defaults to 'always'.
52 scarabeus 1.54 : ${CMAKE_REQUIRED:=always}
53 reavertm 1.61 if [[ ${CMAKE_REQUIRED} = always ]]; then
54 scarabeus 1.47 buildsystem_eclass="cmake-utils"
55     export_fns="src_configure src_compile src_test src_install"
56 scarabeus 1.44 fi
57    
58 reavertm 1.61 # @ECLASS-VARIABLE: KDE_MINIMAL
59     # @DESCRIPTION:
60     # This variable is used when KDE_REQUIRED is set, to specify required KDE minimal
61 reavertm 1.66 # version for apps to work. Currently defaults to 4.4
62 reavertm 1.61 # One may override this variable to raise version requirements.
63 abcd 1.97 # Note that it is fixed to ${PV} for kde-base packages.
64 reavertm 1.66 KDE_MINIMAL="${KDE_MINIMAL:-4.4}"
65 scarabeus 1.48
66 scarabeus 1.87 # Set slot for KDEBASE known packages
67 reavertm 1.61 case ${KDEBASE} in
68     kde-base)
69 dilfridge 1.132 case ${EAPI} in
70     5)
71     SLOT=4/$(get_version_component_range 1-2)
72     ;;
73     *)
74     SLOT=4
75     ;;
76     esac
77 abcd 1.97 KDE_MINIMAL="${PV}"
78 reavertm 1.61 ;;
79     kdevelop)
80 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
81 reavertm 1.65 # @ECLASS-VARIABLE: KDEVELOP_VERSION
82     # @DESCRIPTION:
83     # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages.
84     # Applies to KDEBASE=kdevelop only.
85     KDEVELOP_VERSION="${KDEVELOP_VERSION:-9999}"
86     # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION
87     # @DESCRIPTION:
88     # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages.
89     # Applies to KDEBASE=kdevelop only.
90     KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-9999}"
91 reavertm 1.61 else
92     case ${PN} in
93     kdevelop|quanta)
94     KDEVELOP_VERSION=${PV}
95     KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
96     ;;
97 dilfridge 1.132 kdevplatform|kdevelop-php*|kdevelop-python)
98 reavertm 1.61 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
99     KDEVPLATFORM_VERSION=${PV}
100 reavertm 1.65 ;;
101     *)
102     KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}"
103     KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-1.0.0}"
104 reavertm 1.61 esac
105     fi
106     SLOT="4"
107     ;;
108     esac
109    
110     inherit ${buildsystem_eclass}
111 scarabeus 1.47
112 scarabeus 1.87 EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_preinst pkg_postinst pkg_postrm
113 scarabeus 1.44
114 scarabeus 1.47 unset buildsystem_eclass
115     unset export_fns
116 ingmar 1.1
117 alexxy 1.78 # @ECLASS-VARIABLE: DECLARATIVE_REQUIRED
118     # @DESCRIPTION:
119 pesa 1.124 # Is qtdeclarative required? Possible values are 'always', 'optional' and 'never'.
120 alexxy 1.78 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
121     DECLARATIVE_REQUIRED="${DECLARATIVE_REQUIRED:-never}"
122    
123     # @ECLASS-VARIABLE: QTHELP_REQUIRED
124     # @DESCRIPTION:
125 pesa 1.124 # Is qthelp required? Possible values are 'always', 'optional' and 'never'.
126 alexxy 1.78 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
127     QTHELP_REQUIRED="${QTHELP_REQUIRED:-never}"
128    
129 philantrop 1.7 # @ECLASS-VARIABLE: OPENGL_REQUIRED
130     # @DESCRIPTION:
131 pesa 1.124 # Is qtopengl required? Possible values are 'always', 'optional' and 'never'.
132 philantrop 1.7 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
133     OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
134    
135 abcd 1.56 # @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
136     # @DESCRIPTION:
137 pesa 1.124 # Is qtmultimedia required? Possible values are 'always', 'optional' and 'never'.
138 abcd 1.56 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
139     MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
140    
141 zlin 1.4 # @ECLASS-VARIABLE: CPPUNIT_REQUIRED
142     # @DESCRIPTION:
143     # Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
144     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
145     CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
146    
147 scarabeus 1.34 # @ECLASS-VARIABLE: KDE_REQUIRED
148     # @DESCRIPTION:
149     # Is kde required? Possible values are 'always', 'optional' and 'never'.
150     # This variable must be set before inheriting any eclasses. Defaults to 'always'
151 reavertm 1.74 # If set to 'always' or 'optional', KDE_MINIMAL may be overriden as well.
152 scarabeus 1.34 # Note that for kde-base packages this variable is fixed to 'always'.
153     KDE_REQUIRED="${KDE_REQUIRED:-always}"
154    
155 reavertm 1.69 # @ECLASS-VARIABLE: KDE_HANDBOOK
156     # @DESCRIPTION:
157 reavertm 1.74 # Set to enable handbook in application. Possible values are 'always', 'optional'
158     # (handbook USE flag) and 'never'.
159     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
160     # It adds default handbook dirs for kde-base packages to KMEXTRA and in any case it
161     # ensures buildtime and runtime dependencies.
162     KDE_HANDBOOK="${KDE_HANDBOOK:-never}"
163 reavertm 1.69
164 scarabeus 1.87 # @ECLASS-VARIABLE: KDE_LINGUAS_LIVE_OVERRIDE
165     # @DESCRIPTION:
166     # Set this varible if you want your live package to manage its
167     # translations. (Mostly all kde ebuilds does not ship documentation
168     # and translations in live ebuilds)
169 johu 1.120 if [[ ${KDE_BUILD_TYPE} == live && -z ${KDE_LINGUAS_LIVE_OVERRIDE} ]]; then
170 abcd 1.90 # Kdebase actualy provides the handbooks even for live stuff
171     [[ ${KDEBASE} == kde-base ]] || KDE_HANDBOOK=never
172 scarabeus 1.87 KDE_LINGUAS=""
173     fi
174    
175 scarabeus 1.47 # Setup packages inheriting this eclass
176     case ${KDEBASE} in
177     kde-base)
178 reavertm 1.69 HOMEPAGE="http://www.kde.org/"
179     LICENSE="GPL-2"
180 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live && -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
181 kensington 1.119 # Disable tests for live ebuilds by default
182 scarabeus 1.47 RESTRICT+=" test"
183 abcd 1.96 fi
184    
185 scarabeus 1.47 # This code is to prevent portage from searching GENTOO_MIRRORS for
186     # packages that will never be mirrored. (As they only will ever be in
187     # the overlay).
188     case ${PV} in
189 kensington 1.125 *9999* | 4.?.[6-9]? | 4.??.[6-9]?)
190 scarabeus 1.47 RESTRICT+=" mirror"
191     ;;
192     esac
193     ;;
194 reavertm 1.69 kdevelop)
195     HOMEPAGE="http://www.kdevelop.org/"
196     LICENSE="GPL-2"
197     ;;
198 scarabeus 1.47 esac
199 scarabeus 1.34
200 scarabeus 1.47 # @ECLASS-VARIABLE: QT_MINIMAL
201 scarabeus 1.39 # @DESCRIPTION:
202 scarabeus 1.87 # Determine version of qt we enforce as minimal for the package.
203 johu 1.134 QT_MINIMAL="${QT_MINIMAL:-4.8.5}"
204 scarabeus 1.47
205 alexxy 1.78 # Declarative dependencies
206     qtdeclarativedepend="
207 pesa 1.124 >=dev-qt/qtdeclarative-${QT_MINIMAL}:4
208 alexxy 1.78 "
209     case ${DECLARATIVE_REQUIRED} in
210     always)
211     COMMONDEPEND+=" ${qtdeclarativedepend}"
212     ;;
213     optional)
214     IUSE+=" declarative"
215     COMMONDEPEND+=" declarative? ( ${qtdeclarativedepend} )"
216     ;;
217     *) ;;
218     esac
219     unset qtdeclarativedepend
220    
221     # QtHelp dependencies
222     qthelpdepend="
223 pesa 1.124 >=dev-qt/qthelp-${QT_MINIMAL}:4
224 alexxy 1.78 "
225     case ${QTHELP_REQUIRED} in
226     always)
227     COMMONDEPEND+=" ${qthelpdepend}"
228     ;;
229     optional)
230     IUSE+=" qthelp"
231     COMMONDEPEND+=" qthelp? ( ${qthelpdepend} )"
232     ;;
233     esac
234     unset qthelpdepend
235    
236 scarabeus 1.34 # OpenGL dependencies
237     qtopengldepend="
238 pesa 1.124 >=dev-qt/qtopengl-${QT_MINIMAL}:4
239 scarabeus 1.34 "
240     case ${OPENGL_REQUIRED} in
241     always)
242 wired 1.42 COMMONDEPEND+=" ${qtopengldepend}"
243 scarabeus 1.34 ;;
244     optional)
245 wired 1.42 IUSE+=" opengl"
246     COMMONDEPEND+=" opengl? ( ${qtopengldepend} )"
247 scarabeus 1.34 ;;
248     *) ;;
249     esac
250     unset qtopengldepend
251    
252 abcd 1.56 # MultiMedia dependencies
253     qtmultimediadepend="
254 pesa 1.124 >=dev-qt/qtmultimedia-${QT_MINIMAL}:4
255 abcd 1.56 "
256     case ${MULTIMEDIA_REQUIRED} in
257     always)
258     COMMONDEPEND+=" ${qtmultimediadepend}"
259     ;;
260     optional)
261     IUSE+=" multimedia"
262     COMMONDEPEND+=" multimedia? ( ${qtmultimediadepend} )"
263     ;;
264     *) ;;
265     esac
266     unset qtmultimediadepend
267    
268 scarabeus 1.34 # CppUnit dependencies
269     cppuintdepend="
270     dev-util/cppunit
271     "
272 scarabeus 1.22 case ${CPPUNIT_REQUIRED} in
273 zlin 1.4 always)
274 wired 1.42 DEPEND+=" ${cppuintdepend}"
275 scarabeus 1.22 ;;
276 zlin 1.4 optional)
277 wired 1.42 IUSE+=" test"
278     DEPEND+=" test? ( ${cppuintdepend} )"
279 scarabeus 1.22 ;;
280 scarabeus 1.34 *) ;;
281 zlin 1.4 esac
282 scarabeus 1.34 unset cppuintdepend
283    
284     # KDE dependencies
285 reavertm 1.65 # Qt accessibility classes are needed in various places, bug 325461
286 scarabeus 1.34 kdecommondepend="
287 reavertm 1.73 dev-lang/perl
288 pesa 1.124 >=dev-qt/qt3support-${QT_MINIMAL}:4[accessibility]
289     >=dev-qt/qtcore-${QT_MINIMAL}:4[qt3support,ssl]
290     >=dev-qt/qtdbus-${QT_MINIMAL}:4
291 johu 1.134 >=dev-qt/designer-${QT_MINIMAL}:4[-phonon]
292     >=dev-qt/qtgui-${QT_MINIMAL}:4[accessibility,dbus(+)]
293 pesa 1.124 >=dev-qt/qtscript-${QT_MINIMAL}:4
294     >=dev-qt/qtsql-${QT_MINIMAL}:4[qt3support]
295     >=dev-qt/qtsvg-${QT_MINIMAL}:4
296     >=dev-qt/qttest-${QT_MINIMAL}:4
297     >=dev-qt/qtwebkit-${QT_MINIMAL}:4
298 scarabeus 1.34 "
299 reavertm 1.61
300 scarabeus 1.34 if [[ ${PN} != kdelibs ]]; then
301 reavertm 1.73 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
302     if [[ ${KDEBASE} = kdevelop ]]; then
303     if [[ ${PN} != kdevplatform ]]; then
304     # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED
305     # @DESCRIPTION:
306     # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'.
307     # Applies to KDEBASE=kdevelop only.
308     KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
309     case ${KDEVPLATFORM_REQUIRED} in
310     always)
311     kdecommondepend+="
312     >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
313     "
314     ;;
315     *) ;;
316     esac
317 reavertm 1.61 fi
318 ingmar 1.1 fi
319     fi
320 scarabeus 1.87
321 scarabeus 1.34 kdedepend="
322 reavertm 1.60 dev-util/automoc
323 jdhore 1.115 virtual/pkgconfig
324 scarabeus 1.54 !aqua? (
325 xarthisius 1.83 >=x11-libs/libXtst-1.1.0
326 scarabeus 1.54 x11-proto/xf86vidmodeproto
327     )
328 scarabeus 1.34 "
329 scarabeus 1.87
330 reavertm 1.73 kderdepend=""
331 reavertm 1.69
332 scarabeus 1.87 # all packages needs oxygen icons for basic iconset
333 dilfridge 1.82 if [[ ${PN} != oxygen-icons ]]; then
334     kderdepend+=" $(add_kdebase_dep oxygen-icons)"
335     fi
336    
337 kensington 1.131 # add a dependency over kde-l10n
338 kensington 1.128 if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} ]]; then
339 scarabeus 1.87 for _lingua in ${KDE_LINGUAS}; do
340 scarabeus 1.89 # if our package has lignuas, pull in kde-l10n with selected lingua enabled,
341     # but only for selected ones.
342     # this can't be done on one line because if user doesn't use any localisation
343     # then he is probably not interested in kde-l10n at all.
344     kderdepend+="
345 scarabeus 1.91 linguas_${_lingua}? ( $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)") )
346 scarabeus 1.89 "
347 scarabeus 1.87 done
348 scarabeus 1.89 unset _lingua
349 scarabeus 1.87 fi
350    
351 reavertm 1.74 kdehandbookdepend="
352     app-text/docbook-xml-dtd:4.2
353     app-text/docbook-xsl-stylesheets
354     "
355     kdehandbookrdepend="
356     $(add_kdebase_dep kdelibs 'handbook')
357     "
358     case ${KDE_HANDBOOK} in
359     always)
360     kdedepend+=" ${kdehandbookdepend}"
361     [[ ${PN} != kdelibs ]] && kderdepend+=" ${kdehandbookrdepend}"
362     ;;
363     optional)
364     IUSE+=" +handbook"
365     kdedepend+=" handbook? ( ${kdehandbookdepend} )"
366     [[ ${PN} != kdelibs ]] && kderdepend+=" handbook? ( ${kdehandbookrdepend} )"
367     ;;
368     *) ;;
369     esac
370     unset kdehandbookdepend kdehandbookrdepend
371 reavertm 1.69
372 dilfridge 1.111 case ${KDE_SELINUX_MODULE} in
373     none) ;;
374     *)
375     IUSE+=" selinux"
376     kdecommondepend+=" selinux? ( sec-policy/selinux-${KDE_SELINUX_MODULE} )"
377     ;;
378     esac
379    
380 alexxy 1.123 # 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
384     IUSE+=" aqua"
385    
386 scarabeus 1.34 case ${KDE_REQUIRED} in
387     always)
388 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}"
389     [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}"
390     [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}"
391 scarabeus 1.34 ;;
392     optional)
393 alexxy 1.123 IUSE+=" kde"
394 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
395     [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )"
396     [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )"
397 scarabeus 1.34 ;;
398     *) ;;
399     esac
400 scarabeus 1.54
401 reavertm 1.73 unset kdecommondepend kdedepend kderdepend
402 scarabeus 1.34
403     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
404     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
405     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
406    
407     # Accumulate dependencies set by this eclass
408 wired 1.42 DEPEND+=" ${COMMONDEPEND}"
409     RDEPEND+=" ${COMMONDEPEND}"
410     unset COMMONDEPEND
411 ingmar 1.1
412     # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
413 johu 1.121 # kdevelop ebuild, the URI should be set in the ebuild itself
414 scarabeus 1.87 _calculate_src_uri() {
415     debug-print-function ${FUNCNAME} "$@"
416    
417     local _kmname _kmname_pv
418    
419     # we calculate URI only for known KDEBASE modules
420     [[ -n ${KDEBASE} ]] || return
421    
422     # calculate tarball module name
423     if [[ -n ${KMNAME} ]]; then
424 kensington 1.129 _kmname="${KMNAME}"
425 scarabeus 1.87 else
426     _kmname=${PN}
427     fi
428     _kmname_pv="${_kmname}-${PV}"
429     case ${KDEBASE} in
430     kde-base)
431     case ${PV} in
432 dilfridge 1.113 4.4.11.1)
433     # KDEPIM 4.4, special case
434     # TODO: Remove this part when KDEPIM 4.4 gets out of the tree
435     SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2" ;;
436 alexxy 1.123 4.?.[6-9]? | 4.??.[6-9]?)
437 scarabeus 1.87 # Unstable KDE SC releases
438 johu 1.120 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.xz" ;;
439 alexxy 1.123 4.[1-7].[12345])
440 johu 1.120 # Stable KDE SC with old .bz2 support
441     SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
442 patrick 1.133 4.11.7)
443     # Part of 4.12 actually, sigh. Not stable for next release!
444     SRC_URI="mirror://kde/stable/4.12.3/src/${_kmname_pv}.tar.xz" ;;
445 johu 1.134 4.11.8)
446     # Part of 4.12 actually, sigh. Not stable for next release!
447     SRC_URI="mirror://kde/stable/4.12.4/src/${_kmname_pv}.tar.xz" ;;
448 scarabeus 1.87 *)
449     # Stable KDE SC releases
450 johu 1.120 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;;
451 scarabeus 1.87 esac
452     ;;
453 dilfridge 1.113 kdevelop|kdevelop-php*|kdevplatform)
454     case ${KDEVELOP_VERSION} in
455 alexxy 1.123 4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
456 dilfridge 1.113 *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
457     esac
458 scarabeus 1.87 ;;
459     esac
460     }
461    
462     _calculate_live_repo() {
463     debug-print-function ${FUNCNAME} "$@"
464    
465     SRC_URI=""
466     case ${KDE_SCM} in
467     svn)
468 reavertm 1.61 # Determine branch URL based on live type
469     local branch_prefix
470     case ${PV} in
471     9999*)
472     # trunk
473     branch_prefix="trunk/KDE"
474     ;;
475     *)
476     # branch
477 abcd 1.97 branch_prefix="branches/KDE/$(get_kde_version)"
478 reavertm 1.61 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
479     # @DESCRIPTION
480     # Suffix appended to ESVN_PROJECT depending on fetched branch.
481     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
482     ESVN_PROJECT_SUFFIX="-${PV}"
483     ;;
484     esac
485     # @ECLASS-VARIABLE: ESVN_MIRROR
486     # @DESCRIPTION:
487     # This variable allows easy overriding of default kde mirror service
488     # (anonsvn) with anything else you might want to use.
489     ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
490     # Split ebuild, or extragear stuff
491     if [[ -n ${KMNAME} ]]; then
492     ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
493     if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
494     KMMODULE="${PN}"
495     fi
496     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
497     case ${KMNAME} in
498     kdebase-*)
499     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
500     ;;
501     kdelibs-*)
502     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
503     ;;
504     kdereview*)
505     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
506     ;;
507     kdesupport)
508     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
509     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
510     ;;
511     kde*)
512     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
513     ;;
514     extragear*|playground*)
515     # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
516     # build packages from same svn location.
517     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
518     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
519     ;;
520     *)
521     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
522     ;;
523     esac
524     else
525     # kdelibs, kdepimlibs
526     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
527     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
528     fi
529     # @ECLASS-VARIABLE: ESVN_UP_FREQ
530     # @DESCRIPTION:
531     # This variable is used for specifying the timeout between svn synces
532 johu 1.121 # for kde-base modules. Does not affect misc apps.
533 reavertm 1.61 # Default value is 1 hour.
534 johu 1.121 [[ ${KDEBASE} = kde-base ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
535 scarabeus 1.87 ;;
536     git)
537     local _kmname
538     # @ECLASS-VARIABLE: EGIT_MIRROR
539     # @DESCRIPTION:
540     # This variable allows easy overriding of default kde mirror service
541     # (anongit) with anything else you might want to use.
542     EGIT_MIRROR=${EGIT_MIRROR:=git://anongit.kde.org}
543    
544     # @ECLASS-VARIABLE: EGIT_REPONAME
545     # @DESCRIPTION:
546     # This variable allows overriding of default repository
547     # name. Specify only if this differ from PN and KMNAME.
548     if [[ -n ${EGIT_REPONAME} ]]; then
549     # the repository and kmname different
550     _kmname=${EGIT_REPONAME}
551     elif [[ -n ${KMNAME} ]]; then
552     _kmname=${KMNAME}
553 scarabeus 1.22 else
554     _kmname=${PN}
555     fi
556 scarabeus 1.87
557     # default branching
558 alexxy 1.108 [[ ${PV} != 9999* && ${KDEBASE} == kde-base ]] && \
559     EGIT_BRANCH="KDE/$(get_kde_version)"
560 scarabeus 1.87
561 dilfridge 1.132 # kde-workspace master needs Qt5/kf5
562     [[ ${PV} == 9999 && ${_kmname} == kde-workspace ]] && \
563     EGIT_BRANCH="KDE/4.11"
564    
565 abcd 1.99 # default repo uri
566 dilfridge 1.132 EGIT_REPO_URI+=( "${EGIT_MIRROR}/${_kmname}" )
567 scarabeus 1.87
568     debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
569     debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
570     ;;
571     esac
572     }
573    
574 johu 1.120 case ${KDE_BUILD_TYPE} in
575 scarabeus 1.87 live) _calculate_live_repo ;;
576     *) _calculate_src_uri ;;
577 scarabeus 1.22 esac
578 ingmar 1.1
579     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
580    
581     # @ECLASS-VARIABLE: PREFIX
582     # @DESCRIPTION:
583 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
584 abcd 1.100 # kde-base packages go into KDE4 installation directory (/usr).
585     # No matter the PREFIX, package will be built against KDE installed in /usr.
586 ingmar 1.1
587     # @FUNCTION: kde4-base_pkg_setup
588     # @DESCRIPTION:
589 abcd 1.100 # Do some basic settings
590 ingmar 1.1 kde4-base_pkg_setup() {
591 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
592 ingmar 1.1
593 dilfridge 1.111 if has handbook ${IUSE} || has "+handbook" ${IUSE} && [ "${KDE_HANDBOOK}" != optional ] ; then
594     eqawarn "Handbook support is enabled via KDE_HANDBOOK=optional in the ebuild."
595     eqawarn "Please do not just set IUSE=handbook, as this leads to dependency errors."
596     fi
597    
598 scarabeus 1.34 # Don't set KDEHOME during compilation, it will cause access violations
599 jmbsvicetto 1.13 unset KDEHOME
600    
601 scarabeus 1.91 # Check if gcc compiler is fresh enough.
602     # In theory should be in pkg_pretend but we check it only for kdelibs there
603     # and for others we do just quick scan in pkg_setup because pkg_pretend
604     # executions consume quite some time.
605 kensington 1.128 if [[ ${MERGE_TYPE} != binary ]]; then
606     [[ $(gcc-major-version) -lt 4 ]] || \
607     ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
608     && die "Sorry, but gcc-4.3 and earlier wont work for KDE (see bug 354837)."
609 dilfridge 1.101 fi
610 scarabeus 1.91
611 abcd 1.96 KDEDIR=/usr
612     : ${PREFIX:=/usr}
613     EKDEDIR=${EPREFIX}/usr
614 abcd 1.57
615 wired 1.42 # Point to correct QT plugins path
616 abcd 1.100 QT_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/kde4/plugins/"
617 jmbsvicetto 1.13
618 scarabeus 1.47 # Fix XDG collision with sandbox
619     export XDG_CONFIG_HOME="${T}"
620 zlin 1.4 }
621    
622     # @FUNCTION: kde4-base_src_unpack
623     # @DESCRIPTION:
624     # This function unpacks the source tarballs for KDE4 applications.
625 ingmar 1.1 kde4-base_src_unpack() {
626 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
627 ingmar 1.1
628 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
629 scarabeus 1.87 case ${KDE_SCM} in
630     svn)
631     subversion_src_unpack
632     ;;
633     git)
634 dilfridge 1.132 git-r3_src_unpack
635 scarabeus 1.87 ;;
636     esac
637 ingmar 1.1 else
638 scarabeus 1.54 unpack ${A}
639 ingmar 1.1 fi
640 scarabeus 1.22 }
641 ingmar 1.1
642 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
643 scarabeus 1.22 # @DESCRIPTION:
644     # General pre-configure and pre-compile function for KDE4 applications.
645     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
646 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
647     # in kde4-functions.eclass(5) for further details.
648 scarabeus 1.22 kde4-base_src_prepare() {
649     debug-print-function ${FUNCNAME} "$@"
650 zlin 1.8
651 scarabeus 1.87 # enable handbook and linguas only when not using live ebuild
652    
653 zlin 1.8 # Only enable selected languages, used for KDE extragear apps.
654 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
655 zlin 1.8 enable_selected_linguas
656     fi
657 ingmar 1.1
658 wired 1.42 # Enable/disable handbooks for kde4-base packages
659 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
660     # kdelibs inherits kde4-base but handle installing the handbook itself
661 abcd 1.110 if ! has kde4-meta ${INHERITED} && in_iuse handbook; then
662 scarabeus 1.87 if [[ ${KDEBASE} == kde-base ]]; then
663     if [[ ${PN} != kde-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then
664     # documentation in kde4-functions
665     : ${KDE_DOC_DIRS:=doc}
666     local dir
667     for dir in ${KDE_DOC_DIRS}; do
668 abcd 1.90 sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
669     -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
670     -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
671     -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
672 scarabeus 1.87 -i CMakeLists.txt || die "failed to comment out handbook"
673     done
674     fi
675     else
676     enable_selected_doc_linguas
677     fi
678 wired 1.42 fi
679    
680 reavertm 1.61 # SCM bootstrap
681 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
682 scarabeus 1.87 case ${KDE_SCM} in
683     svn) subversion_src_prepare ;;
684     esac
685 reavertm 1.61 fi
686 reavertm 1.58
687 dilfridge 1.132 # Apply patches, cmake-utils does the job already
688     cmake-utils_src_prepare
689 scarabeus 1.20
690 scarabeus 1.22 # Save library dependencies
691 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
692 scarabeus 1.22 save_library_dependencies
693     fi
694 scarabeus 1.20
695 scarabeus 1.22 # Inject library dependencies
696 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
697 scarabeus 1.22 load_library_dependencies
698 jmbsvicetto 1.13 fi
699 dilfridge 1.76
700 johu 1.121 # Hack for manuals relying on outdated DTD, only outside kde-base/...
701 alexxy 1.78 if [[ -z ${KDEBASE} ]]; then
702 dilfridge 1.77 find "${S}" -name "*.docbook" \
703     -exec sed -i -r \
704     -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' {} + \
705     || die 'failed to fix DocBook variant version'
706     fi
707 ingmar 1.1 }
708    
709     # @FUNCTION: kde4-base_src_configure
710     # @DESCRIPTION:
711     # Function for configuring the build of KDE4 applications.
712     kde4-base_src_configure() {
713     debug-print-function ${FUNCNAME} "$@"
714    
715     # Build tests in src_test only, where we override this value
716 abcd 1.56 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF)
717 ingmar 1.1
718 abcd 1.110 if use_if_iuse debug; then
719 reavertm 1.68 # Set "real" debug mode
720 johu 1.120 CMAKE_KDE_BUILD_TYPE="Debugfull"
721 reavertm 1.68 else
722     # Handle common release builds
723     append-cppflags -DQT_NO_DEBUG
724 scarabeus 1.38 fi
725    
726 ingmar 1.1 # Set distribution name
727 abcd 1.56 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
728 ingmar 1.1
729     # Here we set the install prefix
730 reavertm 1.61 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
731 jmbsvicetto 1.13
732 wired 1.42 # Use colors
733 ingmar 1.1 QTEST_COLORED=1
734 jmbsvicetto 1.13
735 abcd 1.100 # Shadow existing installations
736 scarabeus 1.34 unset KDEDIRS
737    
738 reavertm 1.61 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
739 abcd 1.96 tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/$(get_libdir)/qt4)
740 reavertm 1.61 #kde-config -path data unavailable when cross-compiling
741     tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
742    
743 abcd 1.96 # sysconf needs to be /etc, not /usr/etc
744     cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
745 abcd 1.56
746 abcd 1.57 if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
747 dilfridge 1.116 if [[ ${mycmakeargs} ]]; then
748     eqawarn "mycmakeargs should always be declared as an array, not a string"
749     fi
750 abcd 1.56 mycmakeargs=(${mycmakeargs})
751 scarabeus 1.22 fi
752    
753 abcd 1.56 mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}")
754 scarabeus 1.34
755     cmake-utils_src_configure
756 scarabeus 1.22 }
757    
758     # @FUNCTION: kde4-base_src_compile
759     # @DESCRIPTION:
760     # General function for compiling KDE4 applications.
761     kde4-base_src_compile() {
762     debug-print-function ${FUNCNAME} "$@"
763    
764 wired 1.42 cmake-utils_src_compile "$@"
765 ingmar 1.1 }
766    
767     # @FUNCTION: kde4-base_src_test
768     # @DESCRIPTION:
769     # Function for testing KDE4 applications.
770     kde4-base_src_test() {
771     debug-print-function ${FUNCNAME} "$@"
772    
773 kensington 1.119 local kded4_pid
774    
775     _test_runner() {
776     if [[ -n "${VIRTUALDBUS_TEST}" ]]; then
777     export $(dbus-launch)
778     kded4 2>&1 > /dev/null &
779     kded4_pid=$!
780     fi
781    
782     cmake-utils_src_test
783     }
784 ingmar 1.1
785 dilfridge 1.85 # When run as normal user during ebuild development with the ebuild command, the
786     # kde tests tend to access the session DBUS. This however is not possible in a real
787     # emerge or on the tinderbox.
788     # > make sure it does not happen, so bad tests can be recognized and disabled
789 kensington 1.119 unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID
790    
791     # Override this value, set in kde4-base_src_configure()
792     mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
793     cmake-utils_src_configure
794     kde4-base_src_compile
795 dilfridge 1.85
796     if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
797     # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
798 scarabeus 1.87 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
799 alexxy 1.78 # surprise- we are already INSIDE virtualmake!!!
800 dilfridge 1.85 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
801     debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
802     debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
803     debug-print " kde4-base.eclass docs for details... Applying workaround."
804 kensington 1.119 _test_runner
805 alexxy 1.78 else
806 kensington 1.119 VIRTUALX_COMMAND="_test_runner" virtualmake
807 alexxy 1.78 fi
808     else
809 kensington 1.119 _test_runner
810     fi
811    
812     if [ -n "${kded4_pid}" ] ; then
813     kill ${kded4_pid}
814     fi
815    
816     if [ -n "${DBUS_SESSION_BUS_PID}" ] ; then
817     kill ${DBUS_SESSION_BUS_PID}
818 alexxy 1.78 fi
819 ingmar 1.1 }
820    
821     # @FUNCTION: kde4-base_src_install
822     # @DESCRIPTION:
823     # Function for installing KDE4 applications.
824     kde4-base_src_install() {
825     debug-print-function ${FUNCNAME} "$@"
826    
827 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
828 scarabeus 1.22 install_library_dependencies
829     fi
830    
831 reavertm 1.61 # Install common documentation of KDE4 applications
832 ingmar 1.1 local doc
833 reavertm 1.61 if ! has kde4-meta ${INHERITED}; then
834 reavertm 1.62 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
835 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}"
836 reavertm 1.62 done
837     for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
838 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
839 ingmar 1.1 done
840     fi
841 reavertm 1.61
842     cmake-utils_src_install
843 abcd 1.90
844 kensington 1.128 # We don't want ${PREFIX}/share/doc/HTML to be compressed,
845 abcd 1.90 # because then khelpcenter can't find the docs
846 kensington 1.128 [[ -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
847 abcd 1.90 docompress -x ${PREFIX}/share/doc/HTML
848 ingmar 1.1 }
849    
850 scarabeus 1.87 # @FUNCTION: kde4-base_pkg_preinst
851     # @DESCRIPTION:
852     # Function storing icon caches
853     kde4-base_pkg_preinst() {
854     debug-print-function ${FUNCNAME} "$@"
855    
856     gnome2_icon_savelist
857 johu 1.120 if [[ ${KDE_BUILD_TYPE} == live && ${KDE_SCM} == svn ]]; then
858 abcd 1.110 subversion_pkg_preinst
859     fi
860 scarabeus 1.87 }
861    
862 ingmar 1.1 # @FUNCTION: kde4-base_pkg_postinst
863     # @DESCRIPTION:
864     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
865     kde4-base_pkg_postinst() {
866 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
867    
868 scarabeus 1.87 gnome2_icon_cache_update
869     fdo-mime_desktop_database_update
870     fdo-mime_mime_database_update
871 ingmar 1.1 buildsycoca
872 scarabeus 1.36
873 scarabeus 1.87 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
874 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
875 scarabeus 1.87 echo
876     einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
877     einfo "Use it at your own risk."
878     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
879     echo
880     fi
881     # for all 3rd party soft tell user that he SHOULD install kdebase-startkde or kdebase-runtime-meta
882     if [[ ${KDEBASE} != kde-base ]] && \
883     ! has_version 'kde-base/kdebase-runtime-meta' && \
884     ! has_version 'kde-base/kdebase-startkde'; then
885     if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
886     echo
887     ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
888     ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
889     ewarn "With this setting you are unsupported by KDE team."
890     ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
891     fi
892 reavertm 1.58 fi
893     fi
894 ingmar 1.1 }
895    
896     # @FUNCTION: kde4-base_pkg_postrm
897     # @DESCRIPTION:
898     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
899     kde4-base_pkg_postrm() {
900 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
901    
902 scarabeus 1.87 gnome2_icon_cache_update
903     fdo-mime_desktop_database_update
904     fdo-mime_mime_database_update
905 ingmar 1.1 buildsycoca
906     }
907 kensington 1.125
908     fi

  ViewVC Help
Powered by ViewVC 1.1.20