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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.94 - (hide annotations) (download)
Mon Jun 6 17:51:26 2011 UTC (3 years, 5 months ago) by abcd
Branch: MAIN
Changes since 1.93: +17 -34 lines
Sync kde eclasses from overlay

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

  ViewVC Help
Powered by ViewVC 1.1.20