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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.89 - (hide annotations) (download)
Fri Apr 22 11:18:34 2011 UTC (3 years, 6 months ago) by scarabeus
Branch: MAIN
Changes since 1.88: +9 -7 lines
Rework the kde-l10n handling so it is less annoying for users with no lingua selected.

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

  ViewVC Help
Powered by ViewVC 1.1.20