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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.106 - (hide annotations) (download)
Wed Aug 31 23:44:45 2011 UTC (2 years, 11 months ago) by dilfridge
Branch: MAIN
Changes since 1.105: +2 -1 lines
Add x11-libs/libxkbfile to global kde dependencies, bug 379747

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 dilfridge 1.106 # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.105 2011/07/27 09:30:46 alexxy 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 dilfridge 1.106 x11-libs/libxkbfile
309 wired 1.42 )
310 scarabeus 1.34 "
311 reavertm 1.61
312 scarabeus 1.34 if [[ ${PN} != kdelibs ]]; then
313 reavertm 1.73 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
314     if [[ ${KDEBASE} = kdevelop ]]; then
315     if [[ ${PN} != kdevplatform ]]; then
316     # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED
317     # @DESCRIPTION:
318     # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'.
319     # Applies to KDEBASE=kdevelop only.
320     KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
321     case ${KDEVPLATFORM_REQUIRED} in
322     always)
323     kdecommondepend+="
324     >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
325     "
326     ;;
327     *) ;;
328     esac
329 reavertm 1.61 fi
330 ingmar 1.1 fi
331     fi
332 scarabeus 1.87
333 scarabeus 1.34 kdedepend="
334 reavertm 1.60 dev-util/automoc
335 scarabeus 1.34 dev-util/pkgconfig
336 scarabeus 1.54 !aqua? (
337 xarthisius 1.83 >=x11-libs/libXtst-1.1.0
338 scarabeus 1.54 x11-proto/xf86vidmodeproto
339     )
340 scarabeus 1.34 "
341 scarabeus 1.87
342 reavertm 1.73 kderdepend=""
343 reavertm 1.69
344 scarabeus 1.87 # all packages needs oxygen icons for basic iconset
345 dilfridge 1.82 if [[ ${PN} != oxygen-icons ]]; then
346     kderdepend+=" $(add_kdebase_dep oxygen-icons)"
347     fi
348    
349 abcd 1.90 # add a dependency over kde-l10n if EAPI4 or better is around
350     if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} && ${EAPI:-0} != 3 ]]; then
351 scarabeus 1.87 for _lingua in ${KDE_LINGUAS}; do
352 scarabeus 1.89 # if our package has lignuas, pull in kde-l10n with selected lingua enabled,
353     # but only for selected ones.
354     # this can't be done on one line because if user doesn't use any localisation
355     # then he is probably not interested in kde-l10n at all.
356     kderdepend+="
357 scarabeus 1.91 linguas_${_lingua}? ( $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)") )
358 scarabeus 1.89 "
359 scarabeus 1.87 done
360 scarabeus 1.89 unset _lingua
361 scarabeus 1.87 fi
362    
363 reavertm 1.74 kdehandbookdepend="
364     app-text/docbook-xml-dtd:4.2
365     app-text/docbook-xsl-stylesheets
366     "
367     kdehandbookrdepend="
368     $(add_kdebase_dep kdelibs 'handbook')
369     "
370     case ${KDE_HANDBOOK} in
371     always)
372     kdedepend+=" ${kdehandbookdepend}"
373     [[ ${PN} != kdelibs ]] && kderdepend+=" ${kdehandbookrdepend}"
374     ;;
375     optional)
376     IUSE+=" +handbook"
377     kdedepend+=" handbook? ( ${kdehandbookdepend} )"
378     [[ ${PN} != kdelibs ]] && kderdepend+=" handbook? ( ${kdehandbookrdepend} )"
379     ;;
380     *) ;;
381     esac
382     unset kdehandbookdepend kdehandbookrdepend
383 reavertm 1.69
384 scarabeus 1.34 case ${KDE_REQUIRED} in
385     always)
386 wired 1.42 IUSE+=" aqua"
387 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}"
388     [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}"
389     [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}"
390 scarabeus 1.34 ;;
391     optional)
392 wired 1.42 IUSE+=" aqua kde"
393 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
394     [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )"
395     [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )"
396 scarabeus 1.34 ;;
397     *) ;;
398     esac
399 scarabeus 1.54
400 reavertm 1.73 unset kdecommondepend kdedepend kderdepend
401 scarabeus 1.34
402     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
403     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
404     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
405    
406     # Accumulate dependencies set by this eclass
407 wired 1.42 DEPEND+=" ${COMMONDEPEND}"
408     RDEPEND+=" ${COMMONDEPEND}"
409     unset COMMONDEPEND
410 ingmar 1.1
411 scarabeus 1.87 # Add experimental kdeenablefinal, masked by default
412 scarabeus 1.54 IUSE+=" kdeenablefinal"
413    
414 ingmar 1.1 # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
415     # koffice ebuild, the URI should be set in the ebuild itself
416 scarabeus 1.87 _calculate_src_uri() {
417     debug-print-function ${FUNCNAME} "$@"
418    
419     local _kmname _kmname_pv
420    
421     # we calculate URI only for known KDEBASE modules
422     [[ -n ${KDEBASE} ]] || return
423    
424     # calculate tarball module name
425     if [[ -n ${KMNAME} ]]; then
426     # fixup kdebase-apps name
427     case ${KMNAME} in
428     kdebase-apps)
429     _kmname="kdebase" ;;
430     *)
431     _kmname="${KMNAME}" ;;
432     esac
433     else
434     _kmname=${PN}
435     fi
436     _kmname_pv="${_kmname}-${PV}"
437     case ${KDEBASE} in
438     kde-base)
439     case ${PV} in
440 abcd 1.90 4.[456].8[05] | 4.[456].9[023568])
441 scarabeus 1.87 # Unstable KDE SC releases
442     SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2"
443 alexxy 1.105 if ! version_is_at_least 4.6.80 ${PV}
444     then
445     # KDEPIM IS SPECIAL
446     [[ ${KMNAME} == "kdepim" || ${KMNAME} == "kdepim-runtime" ]] && SRC_URI="mirror://kde/unstable/kdepim/${PV}/${_kmname_pv}.tar.bz2"
447     fi
448 scarabeus 1.87 ;;
449     *)
450     # Stable KDE SC releases
451     SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2"
452 alexxy 1.105 if ! version_is_at_least 4.6.80 ${PV}
453     then
454     # KDEPIM IS SPECIAL
455     # TODO: It might not be with KDE 4.7 (see above)
456     [[ ${KMNAME} == "kdepim" || ${KMNAME} == "kdepim-runtime" ]] && SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2"
457     fi
458     ;;
459 scarabeus 1.87 esac
460     ;;
461     koffice)
462     case ${PV} in
463     2.[1234].[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
464     *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
465     esac
466     ;;
467     kdevelop)
468     SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
469     ;;
470     esac
471     }
472    
473     _calculate_live_repo() {
474     debug-print-function ${FUNCNAME} "$@"
475    
476     SRC_URI=""
477     case ${KDE_SCM} in
478     svn)
479 reavertm 1.61 # Determine branch URL based on live type
480     local branch_prefix
481     case ${PV} in
482     9999*)
483     # trunk
484     branch_prefix="trunk/KDE"
485     ;;
486     *)
487     # branch
488 abcd 1.97 branch_prefix="branches/KDE/$(get_kde_version)"
489 reavertm 1.61 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
490     # @DESCRIPTION
491     # Suffix appended to ESVN_PROJECT depending on fetched branch.
492     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
493     ESVN_PROJECT_SUFFIX="-${PV}"
494     ;;
495     esac
496     # @ECLASS-VARIABLE: ESVN_MIRROR
497     # @DESCRIPTION:
498     # This variable allows easy overriding of default kde mirror service
499     # (anonsvn) with anything else you might want to use.
500     ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
501     # Split ebuild, or extragear stuff
502     if [[ -n ${KMNAME} ]]; then
503     ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
504     if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
505     KMMODULE="${PN}"
506     fi
507     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
508     case ${KMNAME} in
509     kdebase-*)
510     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
511     ;;
512     kdelibs-*)
513     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
514     ;;
515     kdereview*)
516     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
517     ;;
518     kdesupport)
519     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
520     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
521     ;;
522     kde*)
523     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
524     ;;
525     extragear*|playground*)
526     # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
527     # build packages from same svn location.
528     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
529     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
530     ;;
531     koffice)
532     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
533     ;;
534     *)
535     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
536     ;;
537     esac
538     else
539     # kdelibs, kdepimlibs
540     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
541     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
542     fi
543     # @ECLASS-VARIABLE: ESVN_UP_FREQ
544     # @DESCRIPTION:
545     # This variable is used for specifying the timeout between svn synces
546     # for kde-base and koffice modules. Does not affect misc apps.
547     # Default value is 1 hour.
548     [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
549 scarabeus 1.87 ;;
550     git)
551     local _kmname
552     # @ECLASS-VARIABLE: EGIT_MIRROR
553     # @DESCRIPTION:
554     # This variable allows easy overriding of default kde mirror service
555     # (anongit) with anything else you might want to use.
556     EGIT_MIRROR=${EGIT_MIRROR:=git://anongit.kde.org}
557    
558     # @ECLASS-VARIABLE: EGIT_REPONAME
559     # @DESCRIPTION:
560     # This variable allows overriding of default repository
561     # name. Specify only if this differ from PN and KMNAME.
562     if [[ -n ${EGIT_REPONAME} ]]; then
563     # the repository and kmname different
564     _kmname=${EGIT_REPONAME}
565     elif [[ -n ${KMNAME} ]]; then
566     _kmname=${KMNAME}
567 scarabeus 1.22 else
568     _kmname=${PN}
569     fi
570 scarabeus 1.87
571     # default branching
572     case ${PV} in
573     9999*) ;;
574     *)
575 abcd 1.97 # set EGIT_BRANCH and EGIT_COMMIT to $(get_kde_version)
576 tampakrap 1.102 # every package is listed explicitly now, as upstream
577     # seems to love being different :(
578 scarabeus 1.87 case ${_kmname} in
579 tampakrap 1.102 blinken|cantor|kalgebra|kalzium|kanagram|kbruch| \
580     kdeplasma-addons|kdepim|kdepim-runtime|kdepimlibs| \
581     kgeography|khangman|kig|kiten|klettres|kmplot|kstars| \
582     ktouch|kturtle|kwordquiz|libkdeedu|mobipocket|okular| \
583     parley|rocs|step)
584 abcd 1.99 EGIT_BRANCH="$(get_kde_version)"
585     ;;
586 abcd 1.94 marble)
587 abcd 1.97 EGIT_BRANCH="kde-$(get_kde_version)"
588 abcd 1.94 ;;
589 tampakrap 1.102 gwenview|kamera|kate|kcolorchooser|kde-baseapps| \
590     kde-runtime|kde-workspace|kgamma| \
591     kdegraphics-strigi-analyzer|kdegraphics-thumbnailers| \
592     kdelibs|kimono|kolourpaint|konsole|korundum| \
593     kross-interpreters|kruler|ksaneplugin|ksnapshot| \
594     libkdcraw|libkexiv2|libkipi|libksane|perlqt|perlkde| \
595     pykde4|qtruby|qyoto|smokegen|smokekde|smokeqt|svgpart)
596     EGIT_BRANCH="KDE/$(get_kde_version)"
597     ;;
598     *)
599     ewarn "Unknown KMNAME ${_kmname}: Guessing branch name 'KDE/$(get_kde_version)'"
600     EGIT_BRANCH="KDE/$(get_kde_version)" ;;
601 scarabeus 1.22 esac
602     ;;
603 scarabeus 1.87 esac
604    
605 abcd 1.99 # default repo uri
606 tampakrap 1.102 EGIT_REPO_URI="${EGIT_MIRROR}/${_kmname}"
607 scarabeus 1.87
608     debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
609     debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
610     ;;
611     esac
612     }
613    
614     case ${BUILD_TYPE} in
615     live) _calculate_live_repo ;;
616     *) _calculate_src_uri ;;
617 scarabeus 1.22 esac
618 ingmar 1.1
619     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
620    
621     # @ECLASS-VARIABLE: PREFIX
622     # @DESCRIPTION:
623 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
624 abcd 1.100 # kde-base packages go into KDE4 installation directory (/usr).
625     # No matter the PREFIX, package will be built against KDE installed in /usr.
626 ingmar 1.1
627     # @FUNCTION: kde4-base_pkg_setup
628     # @DESCRIPTION:
629 abcd 1.100 # Do some basic settings
630 ingmar 1.1 kde4-base_pkg_setup() {
631 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
632 ingmar 1.1
633 abcd 1.95 if has kdeprefix ${IUSE//+} && use kdeprefix; then
634     eerror "Sorry, kdeprefix support has been removed."
635     eerror "Please remove kdeprefix from your USE variable."
636     die "kdeprefix support has been removed"
637     fi
638    
639     if [[ ${CATEGORY}/${PN} != kde-base/kdelibs && ${CATEGORY}/${PN} != kde-base/kde-env ]] && \
640     { [[ ${KDE_REQUIRED} == always ]] || { [[ ${KDE_REQUIRED} == optional ]] && use kde; }; } && \
641     has_version kde-base/kdelibs[kdeprefix]; then
642     eerror "Sorry, kdeprefix support has been removed."
643     eerror "Please rebuild kdelibs without kdeprefix support."
644     die "kdeprefix support has been removed"
645     fi
646    
647 scarabeus 1.34 # Don't set KDEHOME during compilation, it will cause access violations
648 jmbsvicetto 1.13 unset KDEHOME
649    
650 scarabeus 1.91 # Check if gcc compiler is fresh enough.
651     # In theory should be in pkg_pretend but we check it only for kdelibs there
652     # and for others we do just quick scan in pkg_setup because pkg_pretend
653     # executions consume quite some time.
654 dilfridge 1.101 if [[ ${MERGE_TYPE} != binary ]]; then
655 dilfridge 1.104 [[ $(gcc-major-version) -lt 4 ]] || \
656     ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
657 dilfridge 1.101 && die "Sorry, but gcc-4.3 and earlier wont work for KDE (see bug 354837)."
658     fi
659 scarabeus 1.91
660 abcd 1.96 KDEDIR=/usr
661     : ${PREFIX:=/usr}
662     EKDEDIR=${EPREFIX}/usr
663 abcd 1.57
664 wired 1.42 # Point to correct QT plugins path
665 abcd 1.100 QT_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/kde4/plugins/"
666 jmbsvicetto 1.13
667 scarabeus 1.47 # Fix XDG collision with sandbox
668     export XDG_CONFIG_HOME="${T}"
669 zlin 1.4 }
670    
671     # @FUNCTION: kde4-base_src_unpack
672     # @DESCRIPTION:
673     # This function unpacks the source tarballs for KDE4 applications.
674 ingmar 1.1 kde4-base_src_unpack() {
675 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
676 ingmar 1.1
677 scarabeus 1.30 if [[ ${BUILD_TYPE} = live ]]; then
678 scarabeus 1.87 case ${KDE_SCM} in
679     svn)
680     migrate_store_dir
681     subversion_src_unpack
682     ;;
683     git)
684 scarabeus 1.91 git-2_src_unpack
685 scarabeus 1.87 ;;
686     esac
687 ingmar 1.1 else
688 scarabeus 1.54 unpack ${A}
689 ingmar 1.1 fi
690 scarabeus 1.22 }
691 ingmar 1.1
692 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
693 scarabeus 1.22 # @DESCRIPTION:
694     # General pre-configure and pre-compile function for KDE4 applications.
695     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
696 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
697     # in kde4-functions.eclass(5) for further details.
698 scarabeus 1.22 kde4-base_src_prepare() {
699     debug-print-function ${FUNCNAME} "$@"
700 zlin 1.8
701 scarabeus 1.87 # enable handbook and linguas only when not using live ebuild
702    
703 zlin 1.8 # Only enable selected languages, used for KDE extragear apps.
704 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
705 zlin 1.8 enable_selected_linguas
706     fi
707 ingmar 1.1
708 wired 1.42 # Enable/disable handbooks for kde4-base packages
709 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
710     # kdelibs inherits kde4-base but handle installing the handbook itself
711 scarabeus 1.87 if ! has kde4-meta ${INHERITED} && has handbook ${IUSE//+}; then
712     if [[ ${KDEBASE} == kde-base ]]; then
713     if [[ ${PN} != kde-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then
714     # documentation in kde4-functions
715     : ${KDE_DOC_DIRS:=doc}
716     local dir
717     for dir in ${KDE_DOC_DIRS}; do
718 abcd 1.90 sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
719     -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
720     -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
721     -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
722 scarabeus 1.87 -i CMakeLists.txt || die "failed to comment out handbook"
723     done
724     fi
725     else
726     enable_selected_doc_linguas
727     fi
728 wired 1.42 fi
729    
730 reavertm 1.61 # SCM bootstrap
731     if [[ ${BUILD_TYPE} = live ]]; then
732 scarabeus 1.87 case ${KDE_SCM} in
733     svn) subversion_src_prepare ;;
734     esac
735 reavertm 1.61 fi
736 reavertm 1.58
737     # Apply patches
738 scarabeus 1.22 base_src_prepare
739 scarabeus 1.20
740 scarabeus 1.22 # Save library dependencies
741 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
742 scarabeus 1.22 save_library_dependencies
743     fi
744 scarabeus 1.20
745 scarabeus 1.22 # Inject library dependencies
746 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
747 scarabeus 1.22 load_library_dependencies
748 jmbsvicetto 1.13 fi
749 dilfridge 1.76
750 alexxy 1.78 # Replace KDE4Workspace library targets
751     find "${S}" -name CMakeLists.txt \
752     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_TASKMANAGER_(LIBRARY|LIBS)\}/taskmanager/g' {} + \
753     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KWORKSPACE_(LIBRARY|LIBS)\}/kworkspace/g' {} + \
754     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_SOLIDCONTROLIFACES_(LIBRARY|LIBS)\}/solidcontrolifaces/g' {} + \
755     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_SOLIDCONTROL_(LIBRARY|LIBS)\}/solidcontrol/g' {} + \
756     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_PROCESSUI_(LIBRARY|LIBS)\}/processui/g' {} + \
757     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_LSOFUI_(LIBRARY|LIBS)\}/lsofui/g' {} + \
758     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_PLASMACLOCK_(LIBRARY|LIBS)\}/plasmaclock/g' {} + \
759     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_NEPOMUKQUERYCLIENT_(LIBRARY|LIBS)\}/nepomukqueryclient/g' {} + \
760     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_NEPOMUKQUERY_(LIBRARY|LIBS)\}/nepomukquery/g' {} + \
761     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KSCREENSAVER_(LIBRARY|LIBS)\}/kscreensaver/g' {} + \
762     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_WEATHERION_(LIBRARY|LIBS)\}/weather_ion/g' {} + \
763     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KWINEFFECTS_(LIBRARY|LIBS)\}/kwineffects/g' {} + \
764     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KDECORATIONS_(LIBRARY|LIBS)\}/kdecorations/g' {} + \
765     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KSGRD_(LIBRARY|LIBS)\}/ksgrd/g' {} + \
766     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KEPHAL_(LIBRARY|LIBS)\}/kephal/g' {} + \
767     || die 'failed to replace KDE4Workspace library targets'
768    
769 dilfridge 1.77 # Hack for manuals relying on outdated DTD, only outside kde-base/koffice/...
770 alexxy 1.78 if [[ -z ${KDEBASE} ]]; then
771 dilfridge 1.77 find "${S}" -name "*.docbook" \
772     -exec sed -i -r \
773     -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' {} + \
774     || die 'failed to fix DocBook variant version'
775     fi
776 ingmar 1.1 }
777    
778     # @FUNCTION: kde4-base_src_configure
779     # @DESCRIPTION:
780     # Function for configuring the build of KDE4 applications.
781     kde4-base_src_configure() {
782     debug-print-function ${FUNCNAME} "$@"
783    
784     # Build tests in src_test only, where we override this value
785 abcd 1.56 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF)
786 ingmar 1.1
787 scarabeus 1.54 if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
788 abcd 1.56 cmakeargs+=(-DKDE4_ENABLE_FINAL=ON)
789 scarabeus 1.54 fi
790    
791 reavertm 1.68 if has debug ${IUSE//+} && use debug; then
792     # Set "real" debug mode
793     CMAKE_BUILD_TYPE="Debugfull"
794     else
795     # Handle common release builds
796     append-cppflags -DQT_NO_DEBUG
797 scarabeus 1.38 fi
798    
799 ingmar 1.1 # Set distribution name
800 abcd 1.56 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
801 ingmar 1.1
802     # Here we set the install prefix
803 reavertm 1.61 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
804 jmbsvicetto 1.13
805 wired 1.42 # Use colors
806 ingmar 1.1 QTEST_COLORED=1
807 jmbsvicetto 1.13
808 abcd 1.100 # Shadow existing installations
809 scarabeus 1.34 unset KDEDIRS
810    
811 reavertm 1.61 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
812 abcd 1.96 tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/$(get_libdir)/qt4)
813 reavertm 1.61 #kde-config -path data unavailable when cross-compiling
814     tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
815    
816 abcd 1.96 # sysconf needs to be /etc, not /usr/etc
817     cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
818 abcd 1.56
819 abcd 1.57 if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
820 abcd 1.56 mycmakeargs=(${mycmakeargs})
821 scarabeus 1.22 fi
822    
823 abcd 1.56 mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}")
824 scarabeus 1.34
825     cmake-utils_src_configure
826 scarabeus 1.22 }
827    
828     # @FUNCTION: kde4-base_src_compile
829     # @DESCRIPTION:
830     # General function for compiling KDE4 applications.
831     kde4-base_src_compile() {
832     debug-print-function ${FUNCNAME} "$@"
833    
834 wired 1.42 cmake-utils_src_compile "$@"
835 ingmar 1.1 }
836    
837     # @FUNCTION: kde4-base_src_test
838     # @DESCRIPTION:
839     # Function for testing KDE4 applications.
840     kde4-base_src_test() {
841     debug-print-function ${FUNCNAME} "$@"
842    
843     # Override this value, set in kde4-base_src_configure()
844 abcd 1.56 mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
845 scarabeus 1.30 cmake-utils_src_configure
846     kde4-base_src_compile
847 ingmar 1.1
848 dilfridge 1.85 # When run as normal user during ebuild development with the ebuild command, the
849     # kde tests tend to access the session DBUS. This however is not possible in a real
850     # emerge or on the tinderbox.
851     # > make sure it does not happen, so bad tests can be recognized and disabled
852     unset DBUS_SESSION_BUS_ADDRESS
853    
854     if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
855     # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
856 scarabeus 1.87 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
857 alexxy 1.78 # surprise- we are already INSIDE virtualmake!!!
858 dilfridge 1.85 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
859     debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
860     debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
861     debug-print " kde4-base.eclass docs for details... Applying workaround."
862 alexxy 1.78 cmake-utils_src_test
863     else
864 dilfridge 1.85 VIRTUALX_COMMAND="cmake-utils_src_test" virtualmake
865 alexxy 1.78 fi
866     else
867     cmake-utils_src_test
868     fi
869 ingmar 1.1 }
870    
871     # @FUNCTION: kde4-base_src_install
872     # @DESCRIPTION:
873     # Function for installing KDE4 applications.
874     kde4-base_src_install() {
875     debug-print-function ${FUNCNAME} "$@"
876    
877 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
878 scarabeus 1.22 install_library_dependencies
879     fi
880    
881 reavertm 1.61 # Install common documentation of KDE4 applications
882 ingmar 1.1 local doc
883 reavertm 1.61 if ! has kde4-meta ${INHERITED}; then
884 reavertm 1.62 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
885 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}"
886 reavertm 1.62 done
887     for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
888 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
889 ingmar 1.1 done
890     fi
891 reavertm 1.61
892     cmake-utils_src_install
893 abcd 1.90
894     # In EAPI 4+, we don't want ${PREFIX}/share/doc/HTML to be compressed,
895     # because then khelpcenter can't find the docs
896     [[ ${EAPI:-0} != 3 && -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
897     docompress -x ${PREFIX}/share/doc/HTML
898 ingmar 1.1 }
899    
900 scarabeus 1.87 # @FUNCTION: kde4-base_pkg_preinst
901     # @DESCRIPTION:
902     # Function storing icon caches
903     kde4-base_pkg_preinst() {
904     debug-print-function ${FUNCNAME} "$@"
905    
906     gnome2_icon_savelist
907     }
908    
909 ingmar 1.1 # @FUNCTION: kde4-base_pkg_postinst
910     # @DESCRIPTION:
911     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
912     kde4-base_pkg_postinst() {
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 scarabeus 1.36
920 scarabeus 1.87 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
921     if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
922     echo
923     ewarn "WARNING! you have kdeenable final useflag enabled."
924     ewarn "This useflag needs to be enabled on ALL kde using packages and"
925     ewarn "is known to cause issues."
926     ewarn "You are using this setup at your own risk and the kde team does not"
927     ewarn "take responsibilities for dead kittens."
928     echo
929     fi
930     if [[ ${BUILD_TYPE} = live ]]; then
931     echo
932     einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
933     einfo "Use it at your own risk."
934     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
935     echo
936     fi
937     # for all 3rd party soft tell user that he SHOULD install kdebase-startkde or kdebase-runtime-meta
938     if [[ ${KDEBASE} != kde-base ]] && \
939     ! has_version 'kde-base/kdebase-runtime-meta' && \
940     ! has_version 'kde-base/kdebase-startkde'; then
941     if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
942     echo
943     ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
944     ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
945     ewarn "With this setting you are unsupported by KDE team."
946     ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
947     fi
948 reavertm 1.58 fi
949     fi
950 ingmar 1.1 }
951    
952     # @FUNCTION: kde4-base_pkg_postrm
953     # @DESCRIPTION:
954     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
955     kde4-base_pkg_postrm() {
956 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
957    
958 scarabeus 1.87 gnome2_icon_cache_update
959     fdo-mime_desktop_database_update
960     fdo-mime_mime_database_update
961 ingmar 1.1 buildsycoca
962     }

  ViewVC Help
Powered by ViewVC 1.1.20