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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.133 - (hide annotations) (download)
Wed Mar 5 02:12:51 2014 UTC (6 months, 2 weeks ago) by patrick
Branch: MAIN
Changes since 1.132: +4 -1 lines
Fix KDE 4.11.7 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 patrick 1.133 # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.132 2014/01/18 00:43:03 dilfridge 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 kensington 1.125 QT_MINIMAL="${QT_MINIMAL:-4.8.0}"
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.127 || (
292     ( >=dev-qt/qtgui-4.8.5:4[accessibility,dbus(+)] dev-qt/designer:4[-phonon] )
293     <dev-qt/qtgui-4.8.5:4[accessibility,dbus(+)]
294     )
295 pesa 1.124 >=dev-qt/qtscript-${QT_MINIMAL}:4
296     >=dev-qt/qtsql-${QT_MINIMAL}:4[qt3support]
297     >=dev-qt/qtsvg-${QT_MINIMAL}:4
298     >=dev-qt/qttest-${QT_MINIMAL}:4
299     >=dev-qt/qtwebkit-${QT_MINIMAL}:4
300 scarabeus 1.34 "
301 reavertm 1.61
302 scarabeus 1.34 if [[ ${PN} != kdelibs ]]; then
303 reavertm 1.73 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
304     if [[ ${KDEBASE} = kdevelop ]]; then
305     if [[ ${PN} != kdevplatform ]]; then
306     # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED
307     # @DESCRIPTION:
308     # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'.
309     # Applies to KDEBASE=kdevelop only.
310     KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
311     case ${KDEVPLATFORM_REQUIRED} in
312     always)
313     kdecommondepend+="
314     >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
315     "
316     ;;
317     *) ;;
318     esac
319 reavertm 1.61 fi
320 ingmar 1.1 fi
321     fi
322 scarabeus 1.87
323 scarabeus 1.34 kdedepend="
324 reavertm 1.60 dev-util/automoc
325 jdhore 1.115 virtual/pkgconfig
326 scarabeus 1.54 !aqua? (
327 xarthisius 1.83 >=x11-libs/libXtst-1.1.0
328 scarabeus 1.54 x11-proto/xf86vidmodeproto
329     )
330 scarabeus 1.34 "
331 scarabeus 1.87
332 reavertm 1.73 kderdepend=""
333 reavertm 1.69
334 scarabeus 1.87 # all packages needs oxygen icons for basic iconset
335 dilfridge 1.82 if [[ ${PN} != oxygen-icons ]]; then
336     kderdepend+=" $(add_kdebase_dep oxygen-icons)"
337     fi
338    
339 kensington 1.131 # add a dependency over kde-l10n
340 kensington 1.128 if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} ]]; then
341 scarabeus 1.87 for _lingua in ${KDE_LINGUAS}; do
342 scarabeus 1.89 # if our package has lignuas, pull in kde-l10n with selected lingua enabled,
343     # but only for selected ones.
344     # this can't be done on one line because if user doesn't use any localisation
345     # then he is probably not interested in kde-l10n at all.
346     kderdepend+="
347 scarabeus 1.91 linguas_${_lingua}? ( $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)") )
348 scarabeus 1.89 "
349 scarabeus 1.87 done
350 scarabeus 1.89 unset _lingua
351 scarabeus 1.87 fi
352    
353 reavertm 1.74 kdehandbookdepend="
354     app-text/docbook-xml-dtd:4.2
355     app-text/docbook-xsl-stylesheets
356     "
357     kdehandbookrdepend="
358     $(add_kdebase_dep kdelibs 'handbook')
359     "
360     case ${KDE_HANDBOOK} in
361     always)
362     kdedepend+=" ${kdehandbookdepend}"
363     [[ ${PN} != kdelibs ]] && kderdepend+=" ${kdehandbookrdepend}"
364     ;;
365     optional)
366     IUSE+=" +handbook"
367     kdedepend+=" handbook? ( ${kdehandbookdepend} )"
368     [[ ${PN} != kdelibs ]] && kderdepend+=" handbook? ( ${kdehandbookrdepend} )"
369     ;;
370     *) ;;
371     esac
372     unset kdehandbookdepend kdehandbookrdepend
373 reavertm 1.69
374 dilfridge 1.111 case ${KDE_SELINUX_MODULE} in
375     none) ;;
376     *)
377     IUSE+=" selinux"
378     kdecommondepend+=" selinux? ( sec-policy/selinux-${KDE_SELINUX_MODULE} )"
379     ;;
380     esac
381    
382 alexxy 1.123 # We always need the aqua useflag because otherwise we cannot = refer to it inside
383     # add_kdebase_dep. This was always kind of a bug, but came to light with EAPI=5
384     # (where referring to a use flag not in IUSE masks the ebuild).
385     # The only alternative would be to prohibit using add_kdebase_dep if KDE_REQUIRED=never
386     IUSE+=" aqua"
387    
388 scarabeus 1.34 case ${KDE_REQUIRED} in
389     always)
390 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}"
391     [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}"
392     [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}"
393 scarabeus 1.34 ;;
394     optional)
395 alexxy 1.123 IUSE+=" kde"
396 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
397     [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )"
398     [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )"
399 scarabeus 1.34 ;;
400     *) ;;
401     esac
402 scarabeus 1.54
403 reavertm 1.73 unset kdecommondepend kdedepend kderdepend
404 scarabeus 1.34
405     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
406     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
407     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
408    
409     # Accumulate dependencies set by this eclass
410 wired 1.42 DEPEND+=" ${COMMONDEPEND}"
411     RDEPEND+=" ${COMMONDEPEND}"
412     unset COMMONDEPEND
413 ingmar 1.1
414     # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
415 johu 1.121 # kdevelop ebuild, the URI should be set in the ebuild itself
416 scarabeus 1.87 _calculate_src_uri() {
417     debug-print-function ${FUNCNAME} "$@"
418    
419     local _kmname _kmname_pv
420    
421     # we calculate URI only for known KDEBASE modules
422     [[ -n ${KDEBASE} ]] || return
423    
424     # calculate tarball module name
425     if [[ -n ${KMNAME} ]]; then
426 kensington 1.129 _kmname="${KMNAME}"
427 scarabeus 1.87 else
428     _kmname=${PN}
429     fi
430     _kmname_pv="${_kmname}-${PV}"
431     case ${KDEBASE} in
432     kde-base)
433     case ${PV} in
434 dilfridge 1.113 4.4.11.1)
435     # KDEPIM 4.4, special case
436     # TODO: Remove this part when KDEPIM 4.4 gets out of the tree
437     SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2" ;;
438 alexxy 1.123 4.?.[6-9]? | 4.??.[6-9]?)
439 scarabeus 1.87 # Unstable KDE SC releases
440 johu 1.120 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.xz" ;;
441 alexxy 1.123 4.[1-7].[12345])
442 johu 1.120 # Stable KDE SC with old .bz2 support
443     SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
444 patrick 1.133 4.11.7)
445     # Part of 4.12 actually, sigh. Not stable for next release!
446     SRC_URI="mirror://kde/stable/4.12.3/src/${_kmname_pv}.tar.xz" ;;
447 scarabeus 1.87 *)
448     # Stable KDE SC releases
449 johu 1.120 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;;
450 scarabeus 1.87 esac
451     ;;
452 dilfridge 1.113 kdevelop|kdevelop-php*|kdevplatform)
453     case ${KDEVELOP_VERSION} in
454 alexxy 1.123 4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
455 dilfridge 1.113 *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
456     esac
457 scarabeus 1.87 ;;
458     esac
459     }
460    
461     _calculate_live_repo() {
462     debug-print-function ${FUNCNAME} "$@"
463    
464     SRC_URI=""
465     case ${KDE_SCM} in
466     svn)
467 reavertm 1.61 # Determine branch URL based on live type
468     local branch_prefix
469     case ${PV} in
470     9999*)
471     # trunk
472     branch_prefix="trunk/KDE"
473     ;;
474     *)
475     # branch
476 abcd 1.97 branch_prefix="branches/KDE/$(get_kde_version)"
477 reavertm 1.61 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
478     # @DESCRIPTION
479     # Suffix appended to ESVN_PROJECT depending on fetched branch.
480     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
481     ESVN_PROJECT_SUFFIX="-${PV}"
482     ;;
483     esac
484     # @ECLASS-VARIABLE: ESVN_MIRROR
485     # @DESCRIPTION:
486     # This variable allows easy overriding of default kde mirror service
487     # (anonsvn) with anything else you might want to use.
488     ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
489     # Split ebuild, or extragear stuff
490     if [[ -n ${KMNAME} ]]; then
491     ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
492     if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
493     KMMODULE="${PN}"
494     fi
495     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
496     case ${KMNAME} in
497     kdebase-*)
498     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
499     ;;
500     kdelibs-*)
501     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
502     ;;
503     kdereview*)
504     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
505     ;;
506     kdesupport)
507     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
508     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
509     ;;
510     kde*)
511     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
512     ;;
513     extragear*|playground*)
514     # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
515     # build packages from same svn location.
516     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
517     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
518     ;;
519     *)
520     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
521     ;;
522     esac
523     else
524     # kdelibs, kdepimlibs
525     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
526     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
527     fi
528     # @ECLASS-VARIABLE: ESVN_UP_FREQ
529     # @DESCRIPTION:
530     # This variable is used for specifying the timeout between svn synces
531 johu 1.121 # for kde-base modules. Does not affect misc apps.
532 reavertm 1.61 # Default value is 1 hour.
533 johu 1.121 [[ ${KDEBASE} = kde-base ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
534 scarabeus 1.87 ;;
535     git)
536     local _kmname
537     # @ECLASS-VARIABLE: EGIT_MIRROR
538     # @DESCRIPTION:
539     # This variable allows easy overriding of default kde mirror service
540     # (anongit) with anything else you might want to use.
541     EGIT_MIRROR=${EGIT_MIRROR:=git://anongit.kde.org}
542    
543     # @ECLASS-VARIABLE: EGIT_REPONAME
544     # @DESCRIPTION:
545     # This variable allows overriding of default repository
546     # name. Specify only if this differ from PN and KMNAME.
547     if [[ -n ${EGIT_REPONAME} ]]; then
548     # the repository and kmname different
549     _kmname=${EGIT_REPONAME}
550     elif [[ -n ${KMNAME} ]]; then
551     _kmname=${KMNAME}
552 scarabeus 1.22 else
553     _kmname=${PN}
554     fi
555 scarabeus 1.87
556     # default branching
557 alexxy 1.108 [[ ${PV} != 9999* && ${KDEBASE} == kde-base ]] && \
558     EGIT_BRANCH="KDE/$(get_kde_version)"
559 scarabeus 1.87
560 dilfridge 1.132 # kde-workspace master needs Qt5/kf5
561     [[ ${PV} == 9999 && ${_kmname} == kde-workspace ]] && \
562     EGIT_BRANCH="KDE/4.11"
563    
564 abcd 1.99 # default repo uri
565 dilfridge 1.132 EGIT_REPO_URI+=( "${EGIT_MIRROR}/${_kmname}" )
566 scarabeus 1.87
567     debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
568     debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
569     ;;
570     esac
571     }
572    
573 johu 1.120 case ${KDE_BUILD_TYPE} in
574 scarabeus 1.87 live) _calculate_live_repo ;;
575     *) _calculate_src_uri ;;
576 scarabeus 1.22 esac
577 ingmar 1.1
578     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
579    
580     # @ECLASS-VARIABLE: PREFIX
581     # @DESCRIPTION:
582 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
583 abcd 1.100 # kde-base packages go into KDE4 installation directory (/usr).
584     # No matter the PREFIX, package will be built against KDE installed in /usr.
585 ingmar 1.1
586     # @FUNCTION: kde4-base_pkg_setup
587     # @DESCRIPTION:
588 abcd 1.100 # Do some basic settings
589 ingmar 1.1 kde4-base_pkg_setup() {
590 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
591 ingmar 1.1
592 dilfridge 1.111 if has handbook ${IUSE} || has "+handbook" ${IUSE} && [ "${KDE_HANDBOOK}" != optional ] ; then
593     eqawarn "Handbook support is enabled via KDE_HANDBOOK=optional in the ebuild."
594     eqawarn "Please do not just set IUSE=handbook, as this leads to dependency errors."
595     fi
596    
597 scarabeus 1.34 # Don't set KDEHOME during compilation, it will cause access violations
598 jmbsvicetto 1.13 unset KDEHOME
599    
600 scarabeus 1.91 # Check if gcc compiler is fresh enough.
601     # In theory should be in pkg_pretend but we check it only for kdelibs there
602     # and for others we do just quick scan in pkg_setup because pkg_pretend
603     # executions consume quite some time.
604 kensington 1.128 if [[ ${MERGE_TYPE} != binary ]]; then
605     [[ $(gcc-major-version) -lt 4 ]] || \
606     ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
607     && die "Sorry, but gcc-4.3 and earlier wont work for KDE (see bug 354837)."
608 dilfridge 1.101 fi
609 scarabeus 1.91
610 abcd 1.96 KDEDIR=/usr
611     : ${PREFIX:=/usr}
612     EKDEDIR=${EPREFIX}/usr
613 abcd 1.57
614 wired 1.42 # Point to correct QT plugins path
615 abcd 1.100 QT_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/kde4/plugins/"
616 jmbsvicetto 1.13
617 scarabeus 1.47 # Fix XDG collision with sandbox
618     export XDG_CONFIG_HOME="${T}"
619 zlin 1.4 }
620    
621     # @FUNCTION: kde4-base_src_unpack
622     # @DESCRIPTION:
623     # This function unpacks the source tarballs for KDE4 applications.
624 ingmar 1.1 kde4-base_src_unpack() {
625 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
626 ingmar 1.1
627 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
628 scarabeus 1.87 case ${KDE_SCM} in
629     svn)
630     subversion_src_unpack
631     ;;
632     git)
633 dilfridge 1.132 git-r3_src_unpack
634 scarabeus 1.87 ;;
635     esac
636 ingmar 1.1 else
637 scarabeus 1.54 unpack ${A}
638 ingmar 1.1 fi
639 scarabeus 1.22 }
640 ingmar 1.1
641 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
642 scarabeus 1.22 # @DESCRIPTION:
643     # General pre-configure and pre-compile function for KDE4 applications.
644     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
645 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
646     # in kde4-functions.eclass(5) for further details.
647 scarabeus 1.22 kde4-base_src_prepare() {
648     debug-print-function ${FUNCNAME} "$@"
649 zlin 1.8
650 scarabeus 1.87 # enable handbook and linguas only when not using live ebuild
651    
652 zlin 1.8 # Only enable selected languages, used for KDE extragear apps.
653 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
654 zlin 1.8 enable_selected_linguas
655     fi
656 ingmar 1.1
657 wired 1.42 # Enable/disable handbooks for kde4-base packages
658 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
659     # kdelibs inherits kde4-base but handle installing the handbook itself
660 abcd 1.110 if ! has kde4-meta ${INHERITED} && in_iuse handbook; then
661 scarabeus 1.87 if [[ ${KDEBASE} == kde-base ]]; then
662     if [[ ${PN} != kde-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then
663     # documentation in kde4-functions
664     : ${KDE_DOC_DIRS:=doc}
665     local dir
666     for dir in ${KDE_DOC_DIRS}; do
667 abcd 1.90 sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
668     -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
669     -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
670     -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
671 scarabeus 1.87 -i CMakeLists.txt || die "failed to comment out handbook"
672     done
673     fi
674     else
675     enable_selected_doc_linguas
676     fi
677 wired 1.42 fi
678    
679 reavertm 1.61 # SCM bootstrap
680 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
681 scarabeus 1.87 case ${KDE_SCM} in
682     svn) subversion_src_prepare ;;
683     esac
684 reavertm 1.61 fi
685 reavertm 1.58
686 dilfridge 1.132 # Apply patches, cmake-utils does the job already
687     cmake-utils_src_prepare
688 scarabeus 1.20
689 scarabeus 1.22 # Save library dependencies
690 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
691 scarabeus 1.22 save_library_dependencies
692     fi
693 scarabeus 1.20
694 scarabeus 1.22 # Inject library dependencies
695 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
696 scarabeus 1.22 load_library_dependencies
697 jmbsvicetto 1.13 fi
698 dilfridge 1.76
699 johu 1.121 # Hack for manuals relying on outdated DTD, only outside kde-base/...
700 alexxy 1.78 if [[ -z ${KDEBASE} ]]; then
701 dilfridge 1.77 find "${S}" -name "*.docbook" \
702     -exec sed -i -r \
703     -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' {} + \
704     || die 'failed to fix DocBook variant version'
705     fi
706 ingmar 1.1 }
707    
708     # @FUNCTION: kde4-base_src_configure
709     # @DESCRIPTION:
710     # Function for configuring the build of KDE4 applications.
711     kde4-base_src_configure() {
712     debug-print-function ${FUNCNAME} "$@"
713    
714     # Build tests in src_test only, where we override this value
715 abcd 1.56 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF)
716 ingmar 1.1
717 abcd 1.110 if use_if_iuse debug; then
718 reavertm 1.68 # Set "real" debug mode
719 johu 1.120 CMAKE_KDE_BUILD_TYPE="Debugfull"
720 reavertm 1.68 else
721     # Handle common release builds
722     append-cppflags -DQT_NO_DEBUG
723 scarabeus 1.38 fi
724    
725 ingmar 1.1 # Set distribution name
726 abcd 1.56 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
727 ingmar 1.1
728     # Here we set the install prefix
729 reavertm 1.61 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
730 jmbsvicetto 1.13
731 wired 1.42 # Use colors
732 ingmar 1.1 QTEST_COLORED=1
733 jmbsvicetto 1.13
734 abcd 1.100 # Shadow existing installations
735 scarabeus 1.34 unset KDEDIRS
736    
737 reavertm 1.61 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
738 abcd 1.96 tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/$(get_libdir)/qt4)
739 reavertm 1.61 #kde-config -path data unavailable when cross-compiling
740     tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
741    
742 abcd 1.96 # sysconf needs to be /etc, not /usr/etc
743     cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
744 abcd 1.56
745 abcd 1.57 if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
746 dilfridge 1.116 if [[ ${mycmakeargs} ]]; then
747     eqawarn "mycmakeargs should always be declared as an array, not a string"
748     fi
749 abcd 1.56 mycmakeargs=(${mycmakeargs})
750 scarabeus 1.22 fi
751    
752 abcd 1.56 mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}")
753 scarabeus 1.34
754     cmake-utils_src_configure
755 scarabeus 1.22 }
756    
757     # @FUNCTION: kde4-base_src_compile
758     # @DESCRIPTION:
759     # General function for compiling KDE4 applications.
760     kde4-base_src_compile() {
761     debug-print-function ${FUNCNAME} "$@"
762    
763 wired 1.42 cmake-utils_src_compile "$@"
764 ingmar 1.1 }
765    
766     # @FUNCTION: kde4-base_src_test
767     # @DESCRIPTION:
768     # Function for testing KDE4 applications.
769     kde4-base_src_test() {
770     debug-print-function ${FUNCNAME} "$@"
771    
772 kensington 1.119 local kded4_pid
773    
774     _test_runner() {
775     if [[ -n "${VIRTUALDBUS_TEST}" ]]; then
776     export $(dbus-launch)
777     kded4 2>&1 > /dev/null &
778     kded4_pid=$!
779     fi
780    
781     cmake-utils_src_test
782     }
783 ingmar 1.1
784 dilfridge 1.85 # When run as normal user during ebuild development with the ebuild command, the
785     # kde tests tend to access the session DBUS. This however is not possible in a real
786     # emerge or on the tinderbox.
787     # > make sure it does not happen, so bad tests can be recognized and disabled
788 kensington 1.119 unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID
789    
790     # Override this value, set in kde4-base_src_configure()
791     mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
792     cmake-utils_src_configure
793     kde4-base_src_compile
794 dilfridge 1.85
795     if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
796     # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
797 scarabeus 1.87 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
798 alexxy 1.78 # surprise- we are already INSIDE virtualmake!!!
799 dilfridge 1.85 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
800     debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
801     debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
802     debug-print " kde4-base.eclass docs for details... Applying workaround."
803 kensington 1.119 _test_runner
804 alexxy 1.78 else
805 kensington 1.119 VIRTUALX_COMMAND="_test_runner" virtualmake
806 alexxy 1.78 fi
807     else
808 kensington 1.119 _test_runner
809     fi
810    
811     if [ -n "${kded4_pid}" ] ; then
812     kill ${kded4_pid}
813     fi
814    
815     if [ -n "${DBUS_SESSION_BUS_PID}" ] ; then
816     kill ${DBUS_SESSION_BUS_PID}
817 alexxy 1.78 fi
818 ingmar 1.1 }
819    
820     # @FUNCTION: kde4-base_src_install
821     # @DESCRIPTION:
822     # Function for installing KDE4 applications.
823     kde4-base_src_install() {
824     debug-print-function ${FUNCNAME} "$@"
825    
826 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
827 scarabeus 1.22 install_library_dependencies
828     fi
829    
830 reavertm 1.61 # Install common documentation of KDE4 applications
831 ingmar 1.1 local doc
832 reavertm 1.61 if ! has kde4-meta ${INHERITED}; then
833 reavertm 1.62 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
834 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}"
835 reavertm 1.62 done
836     for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
837 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
838 ingmar 1.1 done
839     fi
840 reavertm 1.61
841     cmake-utils_src_install
842 abcd 1.90
843 kensington 1.128 # We don't want ${PREFIX}/share/doc/HTML to be compressed,
844 abcd 1.90 # because then khelpcenter can't find the docs
845 kensington 1.128 [[ -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
846 abcd 1.90 docompress -x ${PREFIX}/share/doc/HTML
847 ingmar 1.1 }
848    
849 scarabeus 1.87 # @FUNCTION: kde4-base_pkg_preinst
850     # @DESCRIPTION:
851     # Function storing icon caches
852     kde4-base_pkg_preinst() {
853     debug-print-function ${FUNCNAME} "$@"
854    
855     gnome2_icon_savelist
856 johu 1.120 if [[ ${KDE_BUILD_TYPE} == live && ${KDE_SCM} == svn ]]; then
857 abcd 1.110 subversion_pkg_preinst
858     fi
859 scarabeus 1.87 }
860    
861 ingmar 1.1 # @FUNCTION: kde4-base_pkg_postinst
862     # @DESCRIPTION:
863     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
864     kde4-base_pkg_postinst() {
865 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
866    
867 scarabeus 1.87 gnome2_icon_cache_update
868     fdo-mime_desktop_database_update
869     fdo-mime_mime_database_update
870 ingmar 1.1 buildsycoca
871 scarabeus 1.36
872 scarabeus 1.87 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
873 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
874 scarabeus 1.87 echo
875     einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
876     einfo "Use it at your own risk."
877     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
878     echo
879     fi
880     # for all 3rd party soft tell user that he SHOULD install kdebase-startkde or kdebase-runtime-meta
881     if [[ ${KDEBASE} != kde-base ]] && \
882     ! has_version 'kde-base/kdebase-runtime-meta' && \
883     ! has_version 'kde-base/kdebase-startkde'; then
884     if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
885     echo
886     ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
887     ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
888     ewarn "With this setting you are unsupported by KDE team."
889     ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
890     fi
891 reavertm 1.58 fi
892     fi
893 ingmar 1.1 }
894    
895     # @FUNCTION: kde4-base_pkg_postrm
896     # @DESCRIPTION:
897     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
898     kde4-base_pkg_postrm() {
899 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
900    
901 scarabeus 1.87 gnome2_icon_cache_update
902     fdo-mime_desktop_database_update
903     fdo-mime_mime_database_update
904 ingmar 1.1 buildsycoca
905     }
906 kensington 1.125
907     fi

  ViewVC Help
Powered by ViewVC 1.1.20