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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.143 - (hide annotations) (download)
Thu Nov 13 04:19:51 2014 UTC (13 days, 6 hours ago) by kensington
Branch: MAIN
CVS Tags: HEAD
Changes since 1.142: +3 -0 lines
Add kde-workspace 4.11.14 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 kensington 1.142 # $Header: $
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 ulm 1.138 if [[ -z ${_KDE4_BASE_ECLASS} ]]; then
17     _KDE4_BASE_ECLASS=1
18 kensington 1.125
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 kensington 1.136 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.9999}"
86 reavertm 1.65 # @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 kensington 1.136 KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-4.9999}"
91 reavertm 1.61 else
92     case ${PN} in
93 kensington 1.136 kdevelop)
94 reavertm 1.61 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 kensington 1.136 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}:4
313 reavertm 1.73 "
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 johu 1.135 4.11.9)
443     # Part of 4.12 actually, sigh. Not stable for next release!
444     SRC_URI="mirror://kde/stable/4.12.5/src/${_kmname_pv}.tar.xz" ;;
445 johu 1.139 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 johu 1.141 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 kensington 1.142 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 kensington 1.143 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" ;;
457 scarabeus 1.87 *)
458     # Stable KDE SC releases
459 johu 1.120 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;;
460 scarabeus 1.87 esac
461     ;;
462 dilfridge 1.113 kdevelop|kdevelop-php*|kdevplatform)
463     case ${KDEVELOP_VERSION} in
464 alexxy 1.123 4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
465 dilfridge 1.113 *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
466     esac
467 scarabeus 1.87 ;;
468     esac
469     }
470    
471     _calculate_live_repo() {
472     debug-print-function ${FUNCNAME} "$@"
473    
474     SRC_URI=""
475     case ${KDE_SCM} in
476     svn)
477 reavertm 1.61 # Determine branch URL based on live type
478     local branch_prefix
479     case ${PV} in
480 kensington 1.136 4.9999*)
481 reavertm 1.61 # trunk
482     branch_prefix="trunk/KDE"
483     ;;
484     *)
485     # branch
486 abcd 1.97 branch_prefix="branches/KDE/$(get_kde_version)"
487 reavertm 1.61 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
488     # @DESCRIPTION
489     # Suffix appended to ESVN_PROJECT depending on fetched branch.
490     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
491     ESVN_PROJECT_SUFFIX="-${PV}"
492     ;;
493     esac
494     # @ECLASS-VARIABLE: ESVN_MIRROR
495     # @DESCRIPTION:
496     # This variable allows easy overriding of default kde mirror service
497     # (anonsvn) with anything else you might want to use.
498     ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
499     # Split ebuild, or extragear stuff
500     if [[ -n ${KMNAME} ]]; then
501     ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
502     if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
503     KMMODULE="${PN}"
504     fi
505     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
506     case ${KMNAME} in
507     kdebase-*)
508     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
509     ;;
510     kdelibs-*)
511     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
512     ;;
513     kdereview*)
514     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
515     ;;
516     kdesupport)
517     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
518     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
519     ;;
520     kde*)
521     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
522     ;;
523     extragear*|playground*)
524     # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
525     # build packages from same svn location.
526     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
527     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
528     ;;
529     *)
530     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
531     ;;
532     esac
533     else
534     # kdelibs, kdepimlibs
535     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
536     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
537     fi
538     # @ECLASS-VARIABLE: ESVN_UP_FREQ
539     # @DESCRIPTION:
540     # This variable is used for specifying the timeout between svn synces
541 johu 1.121 # for kde-base modules. Does not affect misc apps.
542 reavertm 1.61 # Default value is 1 hour.
543 johu 1.121 [[ ${KDEBASE} = kde-base ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
544 scarabeus 1.87 ;;
545     git)
546     local _kmname
547     # @ECLASS-VARIABLE: EGIT_MIRROR
548     # @DESCRIPTION:
549     # This variable allows easy overriding of default kde mirror service
550     # (anongit) with anything else you might want to use.
551     EGIT_MIRROR=${EGIT_MIRROR:=git://anongit.kde.org}
552    
553     # @ECLASS-VARIABLE: EGIT_REPONAME
554     # @DESCRIPTION:
555     # This variable allows overriding of default repository
556     # name. Specify only if this differ from PN and KMNAME.
557     if [[ -n ${EGIT_REPONAME} ]]; then
558     # the repository and kmname different
559     _kmname=${EGIT_REPONAME}
560     elif [[ -n ${KMNAME} ]]; then
561     _kmname=${KMNAME}
562 scarabeus 1.22 else
563     _kmname=${PN}
564     fi
565 scarabeus 1.87
566     # default branching
567 kensington 1.136 [[ ${PV} != 4.9999* && ${KDEBASE} == kde-base ]] && \
568 alexxy 1.108 EGIT_BRANCH="KDE/$(get_kde_version)"
569 scarabeus 1.87
570 abcd 1.99 # default repo uri
571 dilfridge 1.132 EGIT_REPO_URI+=( "${EGIT_MIRROR}/${_kmname}" )
572 scarabeus 1.87
573     debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
574     debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
575     ;;
576     esac
577     }
578    
579 johu 1.120 case ${KDE_BUILD_TYPE} in
580 scarabeus 1.87 live) _calculate_live_repo ;;
581     *) _calculate_src_uri ;;
582 scarabeus 1.22 esac
583 ingmar 1.1
584     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
585    
586     # @ECLASS-VARIABLE: PREFIX
587     # @DESCRIPTION:
588 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
589 abcd 1.100 # kde-base packages go into KDE4 installation directory (/usr).
590     # No matter the PREFIX, package will be built against KDE installed in /usr.
591 ingmar 1.1
592     # @FUNCTION: kde4-base_pkg_setup
593     # @DESCRIPTION:
594 abcd 1.100 # Do some basic settings
595 ingmar 1.1 kde4-base_pkg_setup() {
596 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
597 ingmar 1.1
598 dilfridge 1.111 if has handbook ${IUSE} || has "+handbook" ${IUSE} && [ "${KDE_HANDBOOK}" != optional ] ; then
599     eqawarn "Handbook support is enabled via KDE_HANDBOOK=optional in the ebuild."
600     eqawarn "Please do not just set IUSE=handbook, as this leads to dependency errors."
601     fi
602    
603 scarabeus 1.34 # Don't set KDEHOME during compilation, it will cause access violations
604 jmbsvicetto 1.13 unset KDEHOME
605    
606 scarabeus 1.91 # Check if gcc compiler is fresh enough.
607     # In theory should be in pkg_pretend but we check it only for kdelibs there
608     # and for others we do just quick scan in pkg_setup because pkg_pretend
609 kensington 1.142 # executions consume quite some time (ie. when merging 300 packages at once will cause 300 checks)
610 kensington 1.128 if [[ ${MERGE_TYPE} != binary ]]; then
611     [[ $(gcc-major-version) -lt 4 ]] || \
612 johu 1.140 ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 6 ]] ) \
613     && die "Sorry, but gcc-4.6 and earlier wont work for some KDE packages."
614 dilfridge 1.101 fi
615 scarabeus 1.91
616 abcd 1.96 KDEDIR=/usr
617     : ${PREFIX:=/usr}
618     EKDEDIR=${EPREFIX}/usr
619 abcd 1.57
620 wired 1.42 # Point to correct QT plugins path
621 abcd 1.100 QT_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/kde4/plugins/"
622 jmbsvicetto 1.13
623 scarabeus 1.47 # Fix XDG collision with sandbox
624     export XDG_CONFIG_HOME="${T}"
625 zlin 1.4 }
626    
627     # @FUNCTION: kde4-base_src_unpack
628     # @DESCRIPTION:
629     # This function unpacks the source tarballs for KDE4 applications.
630 ingmar 1.1 kde4-base_src_unpack() {
631 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
632 ingmar 1.1
633 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
634 scarabeus 1.87 case ${KDE_SCM} in
635     svn)
636     subversion_src_unpack
637     ;;
638     git)
639 dilfridge 1.132 git-r3_src_unpack
640 scarabeus 1.87 ;;
641     esac
642 ingmar 1.1 else
643 scarabeus 1.54 unpack ${A}
644 ingmar 1.1 fi
645 scarabeus 1.22 }
646 ingmar 1.1
647 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
648 scarabeus 1.22 # @DESCRIPTION:
649     # General pre-configure and pre-compile function for KDE4 applications.
650     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
651 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
652     # in kde4-functions.eclass(5) for further details.
653 scarabeus 1.22 kde4-base_src_prepare() {
654     debug-print-function ${FUNCNAME} "$@"
655 zlin 1.8
656 scarabeus 1.87 # enable handbook and linguas only when not using live ebuild
657    
658 zlin 1.8 # Only enable selected languages, used for KDE extragear apps.
659 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
660 zlin 1.8 enable_selected_linguas
661     fi
662 ingmar 1.1
663 wired 1.42 # Enable/disable handbooks for kde4-base packages
664 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
665     # kdelibs inherits kde4-base but handle installing the handbook itself
666 abcd 1.110 if ! has kde4-meta ${INHERITED} && in_iuse handbook; then
667 scarabeus 1.87 if [[ ${KDEBASE} == kde-base ]]; then
668     if [[ ${PN} != kde-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then
669     # documentation in kde4-functions
670     : ${KDE_DOC_DIRS:=doc}
671     local dir
672     for dir in ${KDE_DOC_DIRS}; do
673 abcd 1.90 sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
674     -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
675     -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
676     -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
677 scarabeus 1.87 -i CMakeLists.txt || die "failed to comment out handbook"
678     done
679     fi
680     else
681     enable_selected_doc_linguas
682     fi
683 wired 1.42 fi
684    
685 reavertm 1.61 # SCM bootstrap
686 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
687 scarabeus 1.87 case ${KDE_SCM} in
688     svn) subversion_src_prepare ;;
689     esac
690 reavertm 1.61 fi
691 reavertm 1.58
692 dilfridge 1.132 # Apply patches, cmake-utils does the job already
693     cmake-utils_src_prepare
694 scarabeus 1.20
695 scarabeus 1.22 # Save library dependencies
696 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
697 scarabeus 1.22 save_library_dependencies
698     fi
699 scarabeus 1.20
700 scarabeus 1.22 # Inject library dependencies
701 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
702 scarabeus 1.22 load_library_dependencies
703 jmbsvicetto 1.13 fi
704 dilfridge 1.76
705 johu 1.121 # Hack for manuals relying on outdated DTD, only outside kde-base/...
706 alexxy 1.78 if [[ -z ${KDEBASE} ]]; then
707 dilfridge 1.77 find "${S}" -name "*.docbook" \
708     -exec sed -i -r \
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' {} + \
710     || die 'failed to fix DocBook variant version'
711     fi
712 ingmar 1.1 }
713    
714     # @FUNCTION: kde4-base_src_configure
715     # @DESCRIPTION:
716     # Function for configuring the build of KDE4 applications.
717     kde4-base_src_configure() {
718     debug-print-function ${FUNCNAME} "$@"
719    
720     # Build tests in src_test only, where we override this value
721 abcd 1.56 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF)
722 ingmar 1.1
723 abcd 1.110 if use_if_iuse debug; then
724 reavertm 1.68 # Set "real" debug mode
725 johu 1.120 CMAKE_KDE_BUILD_TYPE="Debugfull"
726 reavertm 1.68 else
727     # Handle common release builds
728     append-cppflags -DQT_NO_DEBUG
729 scarabeus 1.38 fi
730    
731 ingmar 1.1 # Set distribution name
732 abcd 1.56 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
733 ingmar 1.1
734     # Here we set the install prefix
735 reavertm 1.61 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
736 jmbsvicetto 1.13
737 wired 1.42 # Use colors
738 ingmar 1.1 QTEST_COLORED=1
739 jmbsvicetto 1.13
740 abcd 1.100 # Shadow existing installations
741 scarabeus 1.34 unset KDEDIRS
742    
743 reavertm 1.61 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
744 abcd 1.96 tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/$(get_libdir)/qt4)
745 reavertm 1.61 #kde-config -path data unavailable when cross-compiling
746     tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
747    
748 abcd 1.96 # sysconf needs to be /etc, not /usr/etc
749     cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
750 abcd 1.56
751 abcd 1.57 if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
752 dilfridge 1.116 if [[ ${mycmakeargs} ]]; then
753     eqawarn "mycmakeargs should always be declared as an array, not a string"
754     fi
755 abcd 1.56 mycmakeargs=(${mycmakeargs})
756 scarabeus 1.22 fi
757    
758 abcd 1.56 mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}")
759 scarabeus 1.34
760     cmake-utils_src_configure
761 scarabeus 1.22 }
762    
763     # @FUNCTION: kde4-base_src_compile
764     # @DESCRIPTION:
765     # General function for compiling KDE4 applications.
766     kde4-base_src_compile() {
767     debug-print-function ${FUNCNAME} "$@"
768    
769 wired 1.42 cmake-utils_src_compile "$@"
770 ingmar 1.1 }
771    
772     # @FUNCTION: kde4-base_src_test
773     # @DESCRIPTION:
774     # Function for testing KDE4 applications.
775     kde4-base_src_test() {
776     debug-print-function ${FUNCNAME} "$@"
777    
778 kensington 1.119 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 ulm 1.137 }
789 ingmar 1.1
790 dilfridge 1.85 # 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 kensington 1.119 unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID
795    
796     # Override this value, set in kde4-base_src_configure()
797     mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
798     cmake-utils_src_configure
799     kde4-base_src_compile
800 dilfridge 1.85
801     if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
802     # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
803 scarabeus 1.87 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
804 alexxy 1.78 # surprise- we are already INSIDE virtualmake!!!
805 dilfridge 1.85 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
806     debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
807     debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
808     debug-print " kde4-base.eclass docs for details... Applying workaround."
809 kensington 1.119 _test_runner
810 alexxy 1.78 else
811 kensington 1.119 VIRTUALX_COMMAND="_test_runner" virtualmake
812 alexxy 1.78 fi
813     else
814 kensington 1.119 _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}
823 alexxy 1.78 fi
824 ingmar 1.1 }
825    
826     # @FUNCTION: kde4-base_src_install
827     # @DESCRIPTION:
828     # Function for installing KDE4 applications.
829     kde4-base_src_install() {
830     debug-print-function ${FUNCNAME} "$@"
831    
832 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
833 scarabeus 1.22 install_library_dependencies
834     fi
835    
836 reavertm 1.61 # Install common documentation of KDE4 applications
837 ingmar 1.1 local doc
838 reavertm 1.61 if ! has kde4-meta ${INHERITED}; then
839 reavertm 1.62 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
840 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}"
841 reavertm 1.62 done
842     for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
843 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
844 ingmar 1.1 done
845     fi
846 reavertm 1.61
847     cmake-utils_src_install
848 abcd 1.90
849 kensington 1.128 # We don't want ${PREFIX}/share/doc/HTML to be compressed,
850 abcd 1.90 # because then khelpcenter can't find the docs
851 kensington 1.128 [[ -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
852 abcd 1.90 docompress -x ${PREFIX}/share/doc/HTML
853 ingmar 1.1 }
854    
855 scarabeus 1.87 # @FUNCTION: kde4-base_pkg_preinst
856     # @DESCRIPTION:
857     # Function storing icon caches
858     kde4-base_pkg_preinst() {
859     debug-print-function ${FUNCNAME} "$@"
860    
861     gnome2_icon_savelist
862 johu 1.120 if [[ ${KDE_BUILD_TYPE} == live && ${KDE_SCM} == svn ]]; then
863 abcd 1.110 subversion_pkg_preinst
864     fi
865 scarabeus 1.87 }
866    
867 ingmar 1.1 # @FUNCTION: kde4-base_pkg_postinst
868     # @DESCRIPTION:
869     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
870     kde4-base_pkg_postinst() {
871 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
872    
873 scarabeus 1.87 gnome2_icon_cache_update
874     fdo-mime_desktop_database_update
875     fdo-mime_mime_database_update
876 ingmar 1.1 buildsycoca
877 scarabeus 1.36
878 scarabeus 1.87 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
879 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
880 scarabeus 1.87 echo
881     einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
882     einfo "Use it at your own risk."
883     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
884     echo
885     fi
886     # for all 3rd party soft tell user that he SHOULD install kdebase-startkde or kdebase-runtime-meta
887     if [[ ${KDEBASE} != kde-base ]] && \
888     ! has_version 'kde-base/kdebase-runtime-meta' && \
889     ! has_version 'kde-base/kdebase-startkde'; then
890     if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
891     echo
892     ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
893     ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
894     ewarn "With this setting you are unsupported by KDE team."
895     ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
896     fi
897 reavertm 1.58 fi
898     fi
899 ingmar 1.1 }
900    
901     # @FUNCTION: kde4-base_pkg_postrm
902     # @DESCRIPTION:
903     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
904     kde4-base_pkg_postrm() {
905 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
906    
907 scarabeus 1.87 gnome2_icon_cache_update
908     fdo-mime_desktop_database_update
909     fdo-mime_mime_database_update
910 ingmar 1.1 buildsycoca
911     }
912 kensington 1.125
913     fi

  ViewVC Help
Powered by ViewVC 1.1.20