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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.129 - (hide annotations) (download)
Thu Aug 15 15:10:05 2013 UTC (11 months, 1 week ago) by kensington
Branch: MAIN
Changes since 1.128: +2 -9 lines
Remove old, unused code.

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

  ViewVC Help
Powered by ViewVC 1.1.20