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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.90 - (hide annotations) (download)
Fri Apr 22 18:48:03 2011 UTC (3 years, 8 months ago) by abcd
Branch: MAIN
Changes since 1.89: +18 -12 lines
Move more fixes from overlay:

EAPI-4 autocompresses /usr/share/doc: exclude /usr/share/doc/HTML
Fix underquoted USE dep for kde-l10n
Various other issues

1 reavertm 1.58 # Copyright 1999-2010 Gentoo Foundation
2 ingmar 1.1 # Distributed under the terms of the GNU General Public License v2
3 abcd 1.90 # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.87 2011/04/06 14:22:14 scarabeus 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 scarabeus 1.87 # NOTE: KDE 4 ebuilds currently support EAPI "3". This will be reviewed
14     # over time as new EAPI versions are approved.
15 scarabeus 1.22
16 alexxy 1.78 # @ECLASS-VARIABLE: VIRTUALX_REQUIRED
17     # @DESCRIPTION:
18 dilfridge 1.85 # For proper description see virtualx.eclass manpage.
19     # Here we redefine default value to be manual, if your package needs virtualx
20     # for tests you should proceed with setting VIRTUALX_REQUIRED=test.
21 alexxy 1.78 : ${VIRTUALX_REQUIRED:=manual}
22    
23 scarabeus 1.87 inherit kde4-functions fdo-mime gnome2-utils base virtualx versionator eutils
24 reavertm 1.61
25     if [[ ${BUILD_TYPE} = live ]]; then
26 scarabeus 1.87 case ${KDE_SCM} in
27     svn) inherit subversion ;;
28     git) inherit git ;;
29     esac
30 reavertm 1.61 fi
31    
32 scarabeus 1.52 # @ECLASS-VARIABLE: CMAKE_REQUIRED
33 scarabeus 1.44 # @DESCRIPTION:
34 scarabeus 1.47 # Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'.
35     # Please note that if it's set to 'never' you need to explicitly override following phases:
36     # src_configure, src_compile, src_test and src_install.
37     # Defaults to 'always'.
38 scarabeus 1.54 : ${CMAKE_REQUIRED:=always}
39 reavertm 1.61 if [[ ${CMAKE_REQUIRED} = always ]]; then
40 scarabeus 1.47 buildsystem_eclass="cmake-utils"
41     export_fns="src_configure src_compile src_test src_install"
42 scarabeus 1.44 fi
43    
44 reavertm 1.61 # Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here)
45     if [[ -n ${KDE_MINIMAL} ]]; then
46     for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
47     [[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break
48     done
49     unset slot
50     [[ -z ${KDE_MINIMAL_VALID} ]] && unset KDE_MINIMAL
51     else
52     KDE_MINIMAL_VALID=1
53     fi
54    
55     # @ECLASS-VARIABLE: KDE_MINIMAL
56     # @DESCRIPTION:
57     # This variable is used when KDE_REQUIRED is set, to specify required KDE minimal
58 reavertm 1.66 # version for apps to work. Currently defaults to 4.4
59 reavertm 1.61 # One may override this variable to raise version requirements.
60     # For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables.
61     # Note that it is fixed to ${SLOT} for kde-base packages.
62 reavertm 1.66 KDE_MINIMAL="${KDE_MINIMAL:-4.4}"
63 scarabeus 1.48
64 scarabeus 1.87 # Set slot for KDEBASE known packages
65 reavertm 1.61 case ${KDEBASE} in
66     kde-base)
67 scarabeus 1.87 SLOT=$(_calculate_kde_slot)
68     [[ -z ${SLOT} ]] && die "Unsupported ${PV}"
69 reavertm 1.61 KDE_MINIMAL="${SLOT}"
70     ;;
71     koffice)
72     SLOT="2"
73     ;;
74     kdevelop)
75     if [[ ${BUILD_TYPE} = live ]]; then
76 reavertm 1.65 # @ECLASS-VARIABLE: KDEVELOP_VERSION
77     # @DESCRIPTION:
78     # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages.
79     # Applies to KDEBASE=kdevelop only.
80     KDEVELOP_VERSION="${KDEVELOP_VERSION:-9999}"
81     # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION
82     # @DESCRIPTION:
83     # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages.
84     # Applies to KDEBASE=kdevelop only.
85     KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-9999}"
86 reavertm 1.61 else
87     case ${PN} in
88     kdevelop|quanta)
89     KDEVELOP_VERSION=${PV}
90     KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
91     ;;
92 reavertm 1.65 kdevplatform)
93 reavertm 1.61 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
94     KDEVPLATFORM_VERSION=${PV}
95 reavertm 1.65 ;;
96     *)
97     KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}"
98     KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-1.0.0}"
99 reavertm 1.61 esac
100     fi
101     SLOT="4"
102     ;;
103     esac
104    
105     inherit ${buildsystem_eclass}
106 scarabeus 1.47
107 scarabeus 1.87 EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_preinst pkg_postinst pkg_postrm
108 scarabeus 1.44
109 scarabeus 1.47 unset buildsystem_eclass
110     unset export_fns
111 ingmar 1.1
112 alexxy 1.78 # @ECLASS-VARIABLE: DECLARATIVE_REQUIRED
113     # @DESCRIPTION:
114     # Is qt-declarative required? Possible values are 'always', 'optional' and 'never'.
115     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
116     DECLARATIVE_REQUIRED="${DECLARATIVE_REQUIRED:-never}"
117    
118     # @ECLASS-VARIABLE: QTHELP_REQUIRED
119     # @DESCRIPTION:
120     # Is qt-assistant required? Possible values are 'always', 'optional' and 'never'.
121     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
122     QTHELP_REQUIRED="${QTHELP_REQUIRED:-never}"
123    
124 philantrop 1.7 # @ECLASS-VARIABLE: OPENGL_REQUIRED
125     # @DESCRIPTION:
126     # Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
127     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
128     OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
129    
130 abcd 1.56 # @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
131     # @DESCRIPTION:
132     # Is qt-multimedia required? Possible values are 'always', 'optional' and 'never'.
133     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
134     MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
135    
136 scarabeus 1.31 # @ECLASS-VARIABLE: WEBKIT_REQUIRED
137     # @DESCRIPTION:
138     # Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
139     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
140     WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
141    
142 zlin 1.4 # @ECLASS-VARIABLE: CPPUNIT_REQUIRED
143     # @DESCRIPTION:
144     # Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
145     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
146     CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
147    
148 scarabeus 1.34 # @ECLASS-VARIABLE: KDE_REQUIRED
149     # @DESCRIPTION:
150     # Is kde required? Possible values are 'always', 'optional' and 'never'.
151     # This variable must be set before inheriting any eclasses. Defaults to 'always'
152 reavertm 1.74 # If set to 'always' or 'optional', KDE_MINIMAL may be overriden as well.
153 scarabeus 1.34 # Note that for kde-base packages this variable is fixed to 'always'.
154     KDE_REQUIRED="${KDE_REQUIRED:-always}"
155    
156 reavertm 1.69 # @ECLASS-VARIABLE: KDE_HANDBOOK
157     # @DESCRIPTION:
158 reavertm 1.74 # Set to enable handbook in application. Possible values are 'always', 'optional'
159     # (handbook USE flag) and 'never'.
160     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
161     # It adds default handbook dirs for kde-base packages to KMEXTRA and in any case it
162     # ensures buildtime and runtime dependencies.
163     KDE_HANDBOOK="${KDE_HANDBOOK:-never}"
164 reavertm 1.69
165 scarabeus 1.87 # @ECLASS-VARIABLE: KDE_LINGUAS_LIVE_OVERRIDE
166     # @DESCRIPTION:
167     # Set this varible if you want your live package to manage its
168     # translations. (Mostly all kde ebuilds does not ship documentation
169     # and translations in live ebuilds)
170 abcd 1.90 if [[ ${BUILD_TYPE} == live && -z ${KDE_LINGUAS_LIVE_OVERRIDE} ]]; then
171     # Kdebase actualy provides the handbooks even for live stuff
172     [[ ${KDEBASE} == kde-base ]] || KDE_HANDBOOK=never
173 scarabeus 1.87 KDE_LINGUAS=""
174     fi
175    
176 scarabeus 1.47 # Setup packages inheriting this eclass
177     case ${KDEBASE} in
178     kde-base)
179 reavertm 1.69 HOMEPAGE="http://www.kde.org/"
180     LICENSE="GPL-2"
181 scarabeus 1.47 if [[ $BUILD_TYPE = live ]]; then
182     # Disable tests for live ebuilds
183     RESTRICT+=" test"
184     # Live ebuilds in kde-base default to kdeprefix by default
185     IUSE+=" +kdeprefix"
186     else
187     # All other ebuild types default to -kdeprefix as before
188     IUSE+=" kdeprefix"
189     fi
190     # This code is to prevent portage from searching GENTOO_MIRRORS for
191     # packages that will never be mirrored. (As they only will ever be in
192     # the overlay).
193     case ${PV} in
194     *9999* | 4.?.[6-9]?)
195     RESTRICT+=" mirror"
196     ;;
197     esac
198     # Block installation of other SLOTS unless kdeprefix
199     RDEPEND+=" $(block_other_slots)"
200     ;;
201 reavertm 1.69 koffice)
202     HOMEPAGE="http://www.koffice.org/"
203     LICENSE="GPL-2"
204     ;;
205     kdevelop)
206     HOMEPAGE="http://www.kdevelop.org/"
207     LICENSE="GPL-2"
208     ;;
209 scarabeus 1.47 esac
210 scarabeus 1.34
211 scarabeus 1.47 # @ECLASS-VARIABLE: QT_MINIMAL
212 scarabeus 1.39 # @DESCRIPTION:
213 scarabeus 1.87 # Determine version of qt we enforce as minimal for the package.
214 alexxy 1.78 if slot_is_at_least 4.6 "${KDE_MINIMAL}"; then
215     QT_MINIMAL="${QT_MINIMAL:-4.7.0}"
216 scarabeus 1.87 else
217 reavertm 1.66 QT_MINIMAL="${QT_MINIMAL:-4.6.3}"
218 scarabeus 1.47 fi
219    
220 alexxy 1.78 # Declarative dependencies
221     qtdeclarativedepend="
222     >=x11-libs/qt-declarative-${QT_MINIMAL}:4
223     "
224     case ${DECLARATIVE_REQUIRED} in
225     always)
226     COMMONDEPEND+=" ${qtdeclarativedepend}"
227     ;;
228     optional)
229     IUSE+=" declarative"
230     COMMONDEPEND+=" declarative? ( ${qtdeclarativedepend} )"
231     ;;
232     *) ;;
233     esac
234     unset qtdeclarativedepend
235    
236     # QtHelp dependencies
237     qthelpdepend="
238     >=x11-libs/qt-assistant-${QT_MINIMAL}:4
239     "
240     case ${QTHELP_REQUIRED} in
241     always)
242     COMMONDEPEND+=" ${qthelpdepend}"
243     ;;
244     optional)
245     IUSE+=" qthelp"
246     COMMONDEPEND+=" qthelp? ( ${qthelpdepend} )"
247     ;;
248     esac
249     unset qthelpdepend
250    
251 scarabeus 1.34 # OpenGL dependencies
252     qtopengldepend="
253 scarabeus 1.47 >=x11-libs/qt-opengl-${QT_MINIMAL}:4
254 scarabeus 1.34 "
255     case ${OPENGL_REQUIRED} in
256     always)
257 wired 1.42 COMMONDEPEND+=" ${qtopengldepend}"
258 scarabeus 1.34 ;;
259     optional)
260 wired 1.42 IUSE+=" opengl"
261     COMMONDEPEND+=" opengl? ( ${qtopengldepend} )"
262 scarabeus 1.34 ;;
263     *) ;;
264     esac
265     unset qtopengldepend
266    
267 abcd 1.56 # MultiMedia dependencies
268     qtmultimediadepend="
269     >=x11-libs/qt-multimedia-${QT_MINIMAL}:4
270     "
271     case ${MULTIMEDIA_REQUIRED} in
272     always)
273     COMMONDEPEND+=" ${qtmultimediadepend}"
274     ;;
275     optional)
276     IUSE+=" multimedia"
277     COMMONDEPEND+=" multimedia? ( ${qtmultimediadepend} )"
278     ;;
279     *) ;;
280     esac
281     unset qtmultimediadepend
282    
283 scarabeus 1.34 # WebKit dependencies
284 scarabeus 1.44 case ${KDE_REQUIRED} in
285     always)
286     qtwebkitusedeps="[kde]"
287     ;;
288     optional)
289     qtwebkitusedeps="[kde?]"
290     ;;
291     *) ;;
292     esac
293 scarabeus 1.34 qtwebkitdepend="
294 scarabeus 1.47 >=x11-libs/qt-webkit-${QT_MINIMAL}:4${qtwebkitusedeps}
295 scarabeus 1.34 "
296 scarabeus 1.44 unset qtwebkitusedeps
297 scarabeus 1.34 case ${WEBKIT_REQUIRED} in
298     always)
299 wired 1.42 COMMONDEPEND+=" ${qtwebkitdepend}"
300 scarabeus 1.34 ;;
301     optional)
302 wired 1.42 IUSE+=" webkit"
303     COMMONDEPEND+=" webkit? ( ${qtwebkitdepend} )"
304 scarabeus 1.34 ;;
305     *) ;;
306     esac
307     unset qtwebkitdepend
308    
309     # CppUnit dependencies
310     cppuintdepend="
311     dev-util/cppunit
312     "
313 scarabeus 1.22 case ${CPPUNIT_REQUIRED} in
314 zlin 1.4 always)
315 wired 1.42 DEPEND+=" ${cppuintdepend}"
316 scarabeus 1.22 ;;
317 zlin 1.4 optional)
318 wired 1.42 IUSE+=" test"
319     DEPEND+=" test? ( ${cppuintdepend} )"
320 scarabeus 1.22 ;;
321 scarabeus 1.34 *) ;;
322 zlin 1.4 esac
323 scarabeus 1.34 unset cppuintdepend
324    
325     # KDE dependencies
326 reavertm 1.65 # Qt accessibility classes are needed in various places, bug 325461
327 scarabeus 1.34 kdecommondepend="
328 reavertm 1.73 dev-lang/perl
329 scarabeus 1.47 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl]
330 reavertm 1.64 >=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus]
331     >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility,kde]
332 scarabeus 1.47 >=x11-libs/qt-script-${QT_MINIMAL}:4
333     >=x11-libs/qt-sql-${QT_MINIMAL}:4[qt3support]
334     >=x11-libs/qt-svg-${QT_MINIMAL}:4
335     >=x11-libs/qt-test-${QT_MINIMAL}:4
336 wired 1.42 !aqua? (
337     x11-libs/libXext
338     x11-libs/libXt
339     x11-libs/libXxf86vm
340     )
341 scarabeus 1.34 "
342 reavertm 1.61
343 scarabeus 1.34 if [[ ${PN} != kdelibs ]]; then
344 reavertm 1.73 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
345     if [[ ${KDEBASE} = kdevelop ]]; then
346     if [[ ${PN} != kdevplatform ]]; then
347     # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED
348     # @DESCRIPTION:
349     # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'.
350     # Applies to KDEBASE=kdevelop only.
351     KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
352     case ${KDEVPLATFORM_REQUIRED} in
353     always)
354     kdecommondepend+="
355     >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
356     "
357     ;;
358     *) ;;
359     esac
360 reavertm 1.61 fi
361 ingmar 1.1 fi
362     fi
363 scarabeus 1.87
364 scarabeus 1.34 kdedepend="
365 reavertm 1.60 dev-util/automoc
366 scarabeus 1.34 dev-util/pkgconfig
367 scarabeus 1.54 !aqua? (
368 xarthisius 1.83 >=x11-libs/libXtst-1.1.0
369 scarabeus 1.54 x11-proto/xf86vidmodeproto
370     )
371 scarabeus 1.34 "
372 scarabeus 1.87
373 reavertm 1.73 kderdepend=""
374 reavertm 1.69
375 scarabeus 1.87 # all packages needs oxygen icons for basic iconset
376 dilfridge 1.82 if [[ ${PN} != oxygen-icons ]]; then
377     kderdepend+=" $(add_kdebase_dep oxygen-icons)"
378     fi
379    
380 abcd 1.90 # add a dependency over kde-l10n if EAPI4 or better is around
381     if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} && ${EAPI:-0} != 3 ]]; then
382 scarabeus 1.87 for _lingua in ${KDE_LINGUAS}; do
383 scarabeus 1.89 # if our package has lignuas, pull in kde-l10n with selected lingua enabled,
384     # but only for selected ones.
385     # this can't be done on one line because if user doesn't use any localisation
386     # then he is probably not interested in kde-l10n at all.
387     kderdepend+="
388 abcd 1.90 linguas_${_lingua}? ( $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)?") )
389 scarabeus 1.89 "
390 scarabeus 1.87 done
391 scarabeus 1.89 unset _lingua
392 scarabeus 1.87 fi
393    
394 reavertm 1.74 kdehandbookdepend="
395     app-text/docbook-xml-dtd:4.2
396     app-text/docbook-xsl-stylesheets
397     "
398     kdehandbookrdepend="
399     $(add_kdebase_dep kdelibs 'handbook')
400     "
401     case ${KDE_HANDBOOK} in
402     always)
403     kdedepend+=" ${kdehandbookdepend}"
404     [[ ${PN} != kdelibs ]] && kderdepend+=" ${kdehandbookrdepend}"
405     ;;
406     optional)
407     IUSE+=" +handbook"
408     kdedepend+=" handbook? ( ${kdehandbookdepend} )"
409     [[ ${PN} != kdelibs ]] && kderdepend+=" handbook? ( ${kdehandbookrdepend} )"
410     ;;
411     *) ;;
412     esac
413     unset kdehandbookdepend kdehandbookrdepend
414 reavertm 1.69
415 scarabeus 1.34 case ${KDE_REQUIRED} in
416     always)
417 wired 1.42 IUSE+=" aqua"
418 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}"
419     [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}"
420     [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}"
421 scarabeus 1.34 ;;
422     optional)
423 wired 1.42 IUSE+=" aqua kde"
424 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
425     [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )"
426     [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )"
427 scarabeus 1.34 ;;
428     *) ;;
429     esac
430 scarabeus 1.54
431 reavertm 1.73 unset kdecommondepend kdedepend kderdepend
432 scarabeus 1.34
433     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
434     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
435     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
436    
437     # Accumulate dependencies set by this eclass
438 wired 1.42 DEPEND+=" ${COMMONDEPEND}"
439     RDEPEND+=" ${COMMONDEPEND}"
440     unset COMMONDEPEND
441 ingmar 1.1
442 scarabeus 1.87 # Add experimental kdeenablefinal, masked by default
443 scarabeus 1.54 IUSE+=" kdeenablefinal"
444    
445 ingmar 1.1 # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
446     # koffice ebuild, the URI should be set in the ebuild itself
447 scarabeus 1.87 _calculate_src_uri() {
448     debug-print-function ${FUNCNAME} "$@"
449    
450     local _kmname _kmname_pv
451    
452     # we calculate URI only for known KDEBASE modules
453     [[ -n ${KDEBASE} ]] || return
454    
455     # calculate tarball module name
456     if [[ -n ${KMNAME} ]]; then
457     # fixup kdebase-apps name
458     case ${KMNAME} in
459     kdebase-apps)
460     _kmname="kdebase" ;;
461     *)
462     _kmname="${KMNAME}" ;;
463     esac
464     else
465     _kmname=${PN}
466     fi
467     _kmname_pv="${_kmname}-${PV}"
468     case ${KDEBASE} in
469     kde-base)
470     case ${PV} in
471 abcd 1.90 4.[456].8[05] | 4.[456].9[023568])
472 scarabeus 1.87 # Unstable KDE SC releases
473     SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2"
474     # KDEPIM IS SPECIAL
475 abcd 1.90 [[ ${KMNAME} == "kdepim" || ${KMNAME} == "kdepim-runtime" ]] && SRC_URI="mirror://kde/unstable/kdepim/${PV}/${_kmname_pv}.tar.bz2"
476 scarabeus 1.87 ;;
477 dilfridge 1.88 4.4.[6789] | 4.4.1?*)
478 scarabeus 1.87 # Stable kdepim releases
479     SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2"
480     ;;
481     *)
482     # Stable KDE SC releases
483     SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2"
484     ;;
485     esac
486     ;;
487     koffice)
488     case ${PV} in
489     2.[1234].[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
490     *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
491     esac
492     ;;
493     kdevelop)
494     SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
495     ;;
496     esac
497     }
498    
499     _calculate_live_repo() {
500     debug-print-function ${FUNCNAME} "$@"
501    
502     SRC_URI=""
503     case ${KDE_SCM} in
504     svn)
505 reavertm 1.61 # Determine branch URL based on live type
506     local branch_prefix
507     case ${PV} in
508     9999*)
509     # trunk
510     branch_prefix="trunk/KDE"
511     ;;
512     *)
513     # branch
514     branch_prefix="branches/KDE/${SLOT}"
515     # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
516     # @DESCRIPTION
517     # Suffix appended to ESVN_PROJECT depending on fetched branch.
518     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
519     ESVN_PROJECT_SUFFIX="-${PV}"
520     ;;
521     esac
522     # @ECLASS-VARIABLE: ESVN_MIRROR
523     # @DESCRIPTION:
524     # This variable allows easy overriding of default kde mirror service
525     # (anonsvn) with anything else you might want to use.
526     ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
527     # Split ebuild, or extragear stuff
528     if [[ -n ${KMNAME} ]]; then
529     ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
530     if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
531     KMMODULE="${PN}"
532     fi
533     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
534     case ${KMNAME} in
535     kdebase-*)
536     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
537     ;;
538     kdelibs-*)
539     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
540     ;;
541     kdereview*)
542     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
543     ;;
544     kdesupport)
545     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
546     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
547     ;;
548     kde*)
549     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
550     ;;
551     extragear*|playground*)
552     # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
553     # build packages from same svn location.
554     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
555     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
556     ;;
557     koffice)
558     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
559     ;;
560     *)
561     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
562     ;;
563     esac
564     else
565     # kdelibs, kdepimlibs
566     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
567     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
568     fi
569     # @ECLASS-VARIABLE: ESVN_UP_FREQ
570     # @DESCRIPTION:
571     # This variable is used for specifying the timeout between svn synces
572     # for kde-base and koffice modules. Does not affect misc apps.
573     # Default value is 1 hour.
574     [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
575 scarabeus 1.87 ;;
576     git)
577     local _kmname
578     # @ECLASS-VARIABLE: EGIT_MIRROR
579     # @DESCRIPTION:
580     # This variable allows easy overriding of default kde mirror service
581     # (anongit) with anything else you might want to use.
582     EGIT_MIRROR=${EGIT_MIRROR:=git://anongit.kde.org}
583    
584     # @ECLASS-VARIABLE: EGIT_REPONAME
585     # @DESCRIPTION:
586     # This variable allows overriding of default repository
587     # name. Specify only if this differ from PN and KMNAME.
588     if [[ -n ${EGIT_REPONAME} ]]; then
589     # the repository and kmname different
590     _kmname=${EGIT_REPONAME}
591     elif [[ -n ${KMNAME} ]]; then
592     _kmname=${KMNAME}
593 scarabeus 1.22 else
594     _kmname=${PN}
595     fi
596 scarabeus 1.87
597     # default branching
598     case ${PV} in
599     9999*) ;;
600     *)
601     # set EGIT_BRANCH and EGIT_COMMIT to ${SLOT}
602     case ${_kmname} in
603     kdeplasma-addons | kdepim | kdepim-runtime | kdepimlibs)
604     EGIT_BRANCH="${SLOT}"
605 scarabeus 1.54 ;;
606 scarabeus 1.87 *) EGIT_BRANCH="KDE/${SLOT}" ;;
607 scarabeus 1.22 esac
608     ;;
609 scarabeus 1.87 esac
610    
611     case $_kmname in
612     kdepim|kdepim-runtime)
613 scarabeus 1.38 case ${PV} in
614 scarabeus 1.87 # kdepim still did not branch
615     4.6.9999)
616     EGIT_BRANCH="master"
617     ;;
618 scarabeus 1.38 esac
619 reavertm 1.61 ;;
620 ingmar 1.1 esac
621 scarabeus 1.87 EGIT_REPO_URI="${EGIT_MIRROR}/${_kmname}"
622     EGIT_PROJECT="${_kmname}"
623    
624     debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
625     debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
626     ;;
627     esac
628     }
629    
630     case ${BUILD_TYPE} in
631     live) _calculate_live_repo ;;
632     *) _calculate_src_uri ;;
633 scarabeus 1.22 esac
634 ingmar 1.1
635     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
636    
637     # @ECLASS-VARIABLE: PREFIX
638     # @DESCRIPTION:
639 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
640     # kde-base packages go into KDE4 installation directory (KDEDIR) by default.
641 wired 1.42 # No matter the PREFIX, package will be built against KDE installed in KDEDIR.
642 ingmar 1.1
643     # @FUNCTION: kde4-base_pkg_setup
644     # @DESCRIPTION:
645 scarabeus 1.34 # Do the basic kdeprefix KDEDIR settings and determine with which kde should
646     # optional applications link
647 ingmar 1.1 kde4-base_pkg_setup() {
648 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
649 ingmar 1.1
650 scarabeus 1.34 # QA ebuilds
651     [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})."
652    
653     # Don't set KDEHOME during compilation, it will cause access violations
654 jmbsvicetto 1.13 unset KDEHOME
655    
656 scarabeus 1.34 if [[ ${KDEBASE} = kde-base ]]; then
657     if use kdeprefix; then
658 reavertm 1.61 KDEDIR=/usr/kde/${SLOT}
659 scarabeus 1.34 else
660 abcd 1.57 KDEDIR=/usr
661 scarabeus 1.34 fi
662 abcd 1.56 : ${PREFIX:=${KDEDIR}}
663 scarabeus 1.29 else
664 scarabeus 1.34 # Determine KDEDIR by loooking for the closest match with KDE_MINIMAL
665     KDEDIR=
666     local kde_minimal_met
667     for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
668     [[ -z ${kde_minimal_met} ]] && [[ ${slot} = ${KDE_MINIMAL} ]] && kde_minimal_met=1
669     if [[ -n ${kde_minimal_met} ]] && has_version "kde-base/kdelibs:${slot}"; then
670     if has_version "kde-base/kdelibs:${slot}[kdeprefix]"; then
671 abcd 1.57 KDEDIR=/usr/kde/${slot}
672 scarabeus 1.34 else
673 abcd 1.57 KDEDIR=/usr
674 scarabeus 1.34 fi
675     break;
676     fi
677     done
678 scarabeus 1.37 unset slot
679 scarabeus 1.41
680     # Bail out if kdelibs required but not found
681     if [[ ${KDE_REQUIRED} = always ]] || { [[ ${KDE_REQUIRED} = optional ]] && use kde; }; then
682     [[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!"
683     else
684 abcd 1.57 [[ -z ${KDEDIR} ]] && KDEDIR=/usr
685 scarabeus 1.41 fi
686    
687 abcd 1.57 : ${PREFIX:=/usr}
688 jmbsvicetto 1.13 fi
689 abcd 1.57 EKDEDIR=${EPREFIX}${KDEDIR}
690    
691 wired 1.42 # Point pkg-config path to KDE *.pc files
692 abcd 1.57 export PKG_CONFIG_PATH="${EKDEDIR}/$(get_libdir)/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
693 wired 1.42 # Point to correct QT plugins path
694 abcd 1.57 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/"
695 jmbsvicetto 1.13
696 scarabeus 1.47 # Fix XDG collision with sandbox
697     export XDG_CONFIG_HOME="${T}"
698 zlin 1.4 }
699    
700     # @FUNCTION: kde4-base_src_unpack
701     # @DESCRIPTION:
702     # This function unpacks the source tarballs for KDE4 applications.
703 ingmar 1.1 kde4-base_src_unpack() {
704 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
705 ingmar 1.1
706 scarabeus 1.30 if [[ ${BUILD_TYPE} = live ]]; then
707 scarabeus 1.87 case ${KDE_SCM} in
708     svn)
709     migrate_store_dir
710     subversion_src_unpack
711     ;;
712     git)
713     git_src_unpack
714     ;;
715     esac
716 ingmar 1.1 else
717 scarabeus 1.54 unpack ${A}
718 ingmar 1.1 fi
719 scarabeus 1.22 }
720 ingmar 1.1
721 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
722 scarabeus 1.22 # @DESCRIPTION:
723     # General pre-configure and pre-compile function for KDE4 applications.
724     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
725 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
726     # in kde4-functions.eclass(5) for further details.
727 scarabeus 1.22 kde4-base_src_prepare() {
728     debug-print-function ${FUNCNAME} "$@"
729 zlin 1.8
730 scarabeus 1.87 # enable handbook and linguas only when not using live ebuild
731    
732 zlin 1.8 # Only enable selected languages, used for KDE extragear apps.
733 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
734 zlin 1.8 enable_selected_linguas
735     fi
736 ingmar 1.1
737 wired 1.42 # Enable/disable handbooks for kde4-base packages
738 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
739     # kdelibs inherits kde4-base but handle installing the handbook itself
740 scarabeus 1.87 if ! has kde4-meta ${INHERITED} && has handbook ${IUSE//+}; then
741     if [[ ${KDEBASE} == kde-base ]]; then
742     if [[ ${PN} != kde-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then
743     # documentation in kde4-functions
744     : ${KDE_DOC_DIRS:=doc}
745     local dir
746     for dir in ${KDE_DOC_DIRS}; do
747 abcd 1.90 sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
748     -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
749     -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
750     -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
751 scarabeus 1.87 -i CMakeLists.txt || die "failed to comment out handbook"
752     done
753     fi
754     else
755     enable_selected_doc_linguas
756     fi
757 wired 1.42 fi
758    
759 reavertm 1.61 # SCM bootstrap
760     if [[ ${BUILD_TYPE} = live ]]; then
761 scarabeus 1.87 case ${KDE_SCM} in
762     svn) subversion_src_prepare ;;
763     esac
764 reavertm 1.61 fi
765 reavertm 1.58
766     # Apply patches
767 scarabeus 1.22 base_src_prepare
768 scarabeus 1.20
769 scarabeus 1.22 # Save library dependencies
770 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
771 scarabeus 1.22 save_library_dependencies
772     fi
773 scarabeus 1.20
774 scarabeus 1.22 # Inject library dependencies
775 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
776 scarabeus 1.22 load_library_dependencies
777 jmbsvicetto 1.13 fi
778 dilfridge 1.76
779 alexxy 1.78 # Replace KDE4Workspace library targets
780     find "${S}" -name CMakeLists.txt \
781     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_TASKMANAGER_(LIBRARY|LIBS)\}/taskmanager/g' {} + \
782     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KWORKSPACE_(LIBRARY|LIBS)\}/kworkspace/g' {} + \
783     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_SOLIDCONTROLIFACES_(LIBRARY|LIBS)\}/solidcontrolifaces/g' {} + \
784     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_SOLIDCONTROL_(LIBRARY|LIBS)\}/solidcontrol/g' {} + \
785     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_PROCESSUI_(LIBRARY|LIBS)\}/processui/g' {} + \
786     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_LSOFUI_(LIBRARY|LIBS)\}/lsofui/g' {} + \
787     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_PLASMACLOCK_(LIBRARY|LIBS)\}/plasmaclock/g' {} + \
788     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_NEPOMUKQUERYCLIENT_(LIBRARY|LIBS)\}/nepomukqueryclient/g' {} + \
789     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_NEPOMUKQUERY_(LIBRARY|LIBS)\}/nepomukquery/g' {} + \
790     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KSCREENSAVER_(LIBRARY|LIBS)\}/kscreensaver/g' {} + \
791     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_WEATHERION_(LIBRARY|LIBS)\}/weather_ion/g' {} + \
792     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KWINEFFECTS_(LIBRARY|LIBS)\}/kwineffects/g' {} + \
793     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KDECORATIONS_(LIBRARY|LIBS)\}/kdecorations/g' {} + \
794     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KSGRD_(LIBRARY|LIBS)\}/ksgrd/g' {} + \
795     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KEPHAL_(LIBRARY|LIBS)\}/kephal/g' {} + \
796     || die 'failed to replace KDE4Workspace library targets'
797    
798 dilfridge 1.77 # Hack for manuals relying on outdated DTD, only outside kde-base/koffice/...
799 alexxy 1.78 if [[ -z ${KDEBASE} ]]; then
800 dilfridge 1.77 find "${S}" -name "*.docbook" \
801     -exec sed -i -r \
802     -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' {} + \
803     || die 'failed to fix DocBook variant version'
804     fi
805 ingmar 1.1 }
806    
807     # @FUNCTION: kde4-base_src_configure
808     # @DESCRIPTION:
809     # Function for configuring the build of KDE4 applications.
810     kde4-base_src_configure() {
811     debug-print-function ${FUNCNAME} "$@"
812    
813     # Build tests in src_test only, where we override this value
814 abcd 1.56 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF)
815 ingmar 1.1
816 scarabeus 1.54 if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
817 abcd 1.56 cmakeargs+=(-DKDE4_ENABLE_FINAL=ON)
818 scarabeus 1.54 fi
819    
820 reavertm 1.68 if has debug ${IUSE//+} && use debug; then
821     # Set "real" debug mode
822     CMAKE_BUILD_TYPE="Debugfull"
823     else
824     # Handle common release builds
825     append-cppflags -DQT_NO_DEBUG
826 scarabeus 1.38 fi
827    
828 ingmar 1.1 # Set distribution name
829 abcd 1.56 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
830 ingmar 1.1
831     # Here we set the install prefix
832 reavertm 1.61 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
833 jmbsvicetto 1.13
834 wired 1.42 # Use colors
835 ingmar 1.1 QTEST_COLORED=1
836 jmbsvicetto 1.13
837 scarabeus 1.34 # Shadow existing /usr installations
838     unset KDEDIRS
839    
840 scarabeus 1.45 # Handle kdeprefix-ed KDE
841 abcd 1.57 if [[ ${KDEDIR} != /usr ]]; then
842 scarabeus 1.37 # Override some environment variables - only when kdeprefix is different,
843     # to not break ccache/distcc
844 abcd 1.57 PATH="${EKDEDIR}/bin:${PATH}"
845 reavertm 1.61
846     # Append library search path
847     append-ldflags -L"${EKDEDIR}/$(get_libdir)"
848 scarabeus 1.37
849     # Append full RPATH
850 abcd 1.56 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF)
851 scarabeus 1.34
852 scarabeus 1.45 # Set cmake prefixes to allow buildsystem to locate valid KDE installation
853 scarabeus 1.34 # when more are present
854 abcd 1.57 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}")
855 scarabeus 1.45 fi
856    
857 reavertm 1.61 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
858     tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/lib/qt4)
859     #kde-config -path data unavailable when cross-compiling
860     tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
861    
862 scarabeus 1.45 # Handle kdeprefix in application itself
863     if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then
864 scarabeus 1.34 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
865 abcd 1.56 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
866     fi
867    
868 abcd 1.57 if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
869 abcd 1.56 mycmakeargs=(${mycmakeargs})
870 scarabeus 1.22 fi
871    
872 abcd 1.56 mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}")
873 scarabeus 1.34
874     cmake-utils_src_configure
875 scarabeus 1.22 }
876    
877     # @FUNCTION: kde4-base_src_compile
878     # @DESCRIPTION:
879     # General function for compiling KDE4 applications.
880     kde4-base_src_compile() {
881     debug-print-function ${FUNCNAME} "$@"
882    
883 wired 1.42 cmake-utils_src_compile "$@"
884 ingmar 1.1 }
885    
886     # @FUNCTION: kde4-base_src_test
887     # @DESCRIPTION:
888     # Function for testing KDE4 applications.
889     kde4-base_src_test() {
890     debug-print-function ${FUNCNAME} "$@"
891    
892     # Override this value, set in kde4-base_src_configure()
893 abcd 1.56 mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
894 scarabeus 1.30 cmake-utils_src_configure
895     kde4-base_src_compile
896 ingmar 1.1
897 dilfridge 1.85 # When run as normal user during ebuild development with the ebuild command, the
898     # kde tests tend to access the session DBUS. This however is not possible in a real
899     # emerge or on the tinderbox.
900     # > make sure it does not happen, so bad tests can be recognized and disabled
901     unset DBUS_SESSION_BUS_ADDRESS
902    
903     if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
904     # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
905 scarabeus 1.87 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
906 alexxy 1.78 # surprise- we are already INSIDE virtualmake!!!
907 dilfridge 1.85 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
908     debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
909     debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
910     debug-print " kde4-base.eclass docs for details... Applying workaround."
911 alexxy 1.78 cmake-utils_src_test
912     else
913 dilfridge 1.85 VIRTUALX_COMMAND="cmake-utils_src_test" virtualmake
914 alexxy 1.78 fi
915     else
916     cmake-utils_src_test
917     fi
918 ingmar 1.1 }
919    
920     # @FUNCTION: kde4-base_src_install
921     # @DESCRIPTION:
922     # Function for installing KDE4 applications.
923     kde4-base_src_install() {
924     debug-print-function ${FUNCNAME} "$@"
925    
926 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
927 scarabeus 1.22 install_library_dependencies
928     fi
929    
930 reavertm 1.61 # Install common documentation of KDE4 applications
931 ingmar 1.1 local doc
932 reavertm 1.61 if ! has kde4-meta ${INHERITED}; then
933 reavertm 1.62 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
934 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}"
935 reavertm 1.62 done
936     for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
937 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
938 ingmar 1.1 done
939     fi
940 reavertm 1.61
941     cmake-utils_src_install
942 abcd 1.90
943     # In EAPI 4+, we don't want ${PREFIX}/share/doc/HTML to be compressed,
944     # because then khelpcenter can't find the docs
945     [[ ${EAPI:-0} != 3 && -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
946     docompress -x ${PREFIX}/share/doc/HTML
947 ingmar 1.1 }
948    
949 scarabeus 1.87 # @FUNCTION: kde4-base_pkg_preinst
950     # @DESCRIPTION:
951     # Function storing icon caches
952     kde4-base_pkg_preinst() {
953     debug-print-function ${FUNCNAME} "$@"
954    
955     gnome2_icon_savelist
956     }
957    
958 ingmar 1.1 # @FUNCTION: kde4-base_pkg_postinst
959     # @DESCRIPTION:
960     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
961     kde4-base_pkg_postinst() {
962 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
963    
964 scarabeus 1.87 gnome2_icon_cache_update
965     fdo-mime_desktop_database_update
966     fdo-mime_mime_database_update
967 ingmar 1.1 buildsycoca
968 scarabeus 1.36
969 scarabeus 1.87 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
970     if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
971     echo
972     ewarn "WARNING! you have kdeenable final useflag enabled."
973     ewarn "This useflag needs to be enabled on ALL kde using packages and"
974     ewarn "is known to cause issues."
975     ewarn "You are using this setup at your own risk and the kde team does not"
976     ewarn "take responsibilities for dead kittens."
977     echo
978     fi
979     if [[ ${BUILD_TYPE} = live ]]; then
980     echo
981     einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
982     einfo "Use it at your own risk."
983     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
984     echo
985     elif [[ ${BUILD_TYPE} != live ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then
986     # warning about kdeprefix for non-live users
987 reavertm 1.58 echo
988 scarabeus 1.87 ewarn "WARNING! You have the kdeprefix useflag enabled."
989     ewarn "This setting is strongly discouraged and might lead to potential trouble"
990     ewarn "with KDE update strategies."
991     ewarn "You are using this setup at your own risk and the kde team does not"
992     ewarn "take responsibilities for dead kittens."
993     echo
994     fi
995     # for all 3rd party soft tell user that he SHOULD install kdebase-startkde or kdebase-runtime-meta
996     if [[ ${KDEBASE} != kde-base ]] && \
997     ! has_version 'kde-base/kdebase-runtime-meta' && \
998     ! has_version 'kde-base/kdebase-startkde'; then
999     if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
1000     echo
1001     ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
1002     ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
1003     ewarn "With this setting you are unsupported by KDE team."
1004     ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
1005     fi
1006 reavertm 1.58 fi
1007     fi
1008 ingmar 1.1 }
1009    
1010     # @FUNCTION: kde4-base_pkg_postrm
1011     # @DESCRIPTION:
1012     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
1013     kde4-base_pkg_postrm() {
1014 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
1015    
1016 scarabeus 1.87 gnome2_icon_cache_update
1017     fdo-mime_desktop_database_update
1018     fdo-mime_mime_database_update
1019 ingmar 1.1 buildsycoca
1020     }

  ViewVC Help
Powered by ViewVC 1.1.20