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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.105 - (hide annotations) (download)
Wed Jul 27 09:30:46 2011 UTC (3 years, 11 months ago) by alexxy
Branch: MAIN
Changes since 1.104: +13 -6 lines
[eclass] Update eclass for KDE SC 4.7.0

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

  ViewVC Help
Powered by ViewVC 1.1.20