1 # Copyright 1999-2008 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /var/cvsroot/gentoo-x86/eclass/kde-functions.eclass,v 1.175 2009/11/01 20:26:34 abcd Exp $
5 # @ECLASS: kde-functions.eclass
8 # Original author Dan Armak <danarmak@gentoo.org>
10 # @BLURB: This contains everything except things that modify ebuild variables and
12 # This contains everything except things that modify ebuild variables
13 # and functions (e.g. $P, src_compile() etc.)
17 # map of the monolithic->split ebuild derivation; used to build deps describing
18 # the relationships between them
20 kde-base/kdeaccessibility kde-base/kbstateapplet
21 kde-base/kdeaccessibility kde-base/kdeaccessibility-iconthemes
22 kde-base/kdeaccessibility kde-base/kmag
23 kde-base/kdeaccessibility kde-base/kmousetool
24 kde-base/kdeaccessibility kde-base/kmouth
25 kde-base/kdeaccessibility kde-base/kttsd
26 kde-base/kdeaccessibility kde-base/ksayit
27 kde-base/kdeaddons kde-base/atlantikdesigner
28 kde-base/kdeaddons kde-base/kaddressbook-plugins
29 kde-base/kdeaddons kde-base/kate-plugins
30 kde-base/kdeaddons kde-base/kdeaddons-docs-konq-plugins
31 kde-base/kdeaddons kde-base/kdeaddons-kfile-plugins
32 kde-base/kdeaddons kde-base/kicker-applets
33 kde-base/kdeaddons kde-base/knewsticker-scripts
34 kde-base/kdeaddons kde-base/konq-plugins
35 kde-base/kdeaddons kde-base/konqueror-akregator
36 kde-base/kdeaddons kde-base/ksig
37 kde-base/kdeaddons kde-base/noatun-plugins
38 kde-base/kdeaddons kde-base/renamedlg-audio
39 kde-base/kdeaddons kde-base/renamedlg-images
40 kde-base/kdeadmin kde-base/kcron
41 kde-base/kdeadmin kde-base/kdat
42 kde-base/kdeadmin kde-base/kdeadmin-kfile-plugins
43 kde-base/kdeadmin kde-base/knetworkconf
44 kde-base/kdeadmin kde-base/kpackage
45 kde-base/kdeadmin kde-base/ksysv
46 kde-base/kdeadmin kde-base/kuser
47 kde-base/kdeadmin kde-base/lilo-config
48 kde-base/kdeadmin kde-base/secpolicy
49 kde-base/kdeartwork kde-base/kdeartwork-emoticons
50 kde-base/kdeartwork kde-base/kdeartwork-icewm-themes
51 kde-base/kdeartwork kde-base/kdeartwork-iconthemes
52 kde-base/kdeartwork kde-base/kdeartwork-kscreensaver
53 kde-base/kdeartwork kde-base/kdeartwork-kwin-styles
54 kde-base/kdeartwork kde-base/kdeartwork-kworldclock
55 kde-base/kdeartwork kde-base/kdeartwork-kworldwatch
56 kde-base/kdeartwork kde-base/kdeartwork-sounds
57 kde-base/kdeartwork kde-base/kdeartwork-styles
58 kde-base/kdeartwork kde-base/kdeartwork-wallpapers
59 kde-base/kdebase kde-base/drkonqi
60 kde-base/kdebase kde-base/kappfinder
61 kde-base/kdebase kde-base/kate
62 kde-base/kdebase kde-base/kcheckpass
63 kde-base/kdebase kde-base/kcminit
64 kde-base/kdebase kde-base/kcontrol
65 kde-base/kdebase kde-base/kdcop
66 kde-base/kdebase kde-base/kdebase-data
67 kde-base/kdebase kde-base/kdebase-kioslaves
68 kde-base/kdebase kde-base/kdebase-startkde
69 kde-base/kdebase kde-base/kdebugdialog
70 kde-base/kdebase kde-base/kdepasswd
71 kde-base/kdebase kde-base/kdeprint
72 kde-base/kdebase kde-base/kdesktop
73 kde-base/kdebase kde-base/kdesu
74 kde-base/kdebase kde-base/kdialog
75 kde-base/kdebase kde-base/kdm
76 kde-base/kdebase kde-base/kfind
77 kde-base/kdebase kde-base/khelpcenter
78 kde-base/kdebase kde-base/khotkeys
79 kde-base/kdebase kde-base/kicker
80 kde-base/kdebase kde-base/klipper
81 kde-base/kdebase kde-base/kmenuedit
82 kde-base/kdebase kde-base/knetattach
83 kde-base/kdebase kde-base/konqueror
84 kde-base/kdebase kde-base/konsole
85 kde-base/kdebase kde-base/kpager
86 kde-base/kdebase kde-base/kpersonalizer
87 kde-base/kdebase kde-base/kreadconfig
88 kde-base/kdebase kde-base/kscreensaver
89 kde-base/kdebase kde-base/ksmserver
90 kde-base/kdebase kde-base/ksplashml
91 kde-base/kdebase kde-base/kstart
92 kde-base/kdebase kde-base/ksysguard
93 kde-base/kdebase kde-base/ksystraycmd
94 kde-base/kdebase kde-base/ktip
95 kde-base/kdebase kde-base/kwin
96 kde-base/kdebase kde-base/kxkb
97 kde-base/kdebase kde-base/libkonq
98 kde-base/kdebase kde-base/nsplugins
99 kde-base/kdebindings kde-base/dcopc
100 kde-base/kdebindings kde-base/dcopjava
101 kde-base/kdebindings kde-base/dcopperl
102 kde-base/kdebindings kde-base/dcoppython
103 kde-base/kdebindings kde-base/kalyptus
104 kde-base/kdebindings kde-base/kdejava
105 kde-base/kdebindings kde-base/kjsembed
106 kde-base/kdebindings kde-base/korundum
107 kde-base/kdebindings kde-base/pykde
108 kde-base/kdebindings kde-base/qtjava
109 kde-base/kdebindings kde-base/qtruby
110 kde-base/kdebindings kde-base/qtsharp
111 kde-base/kdebindings kde-base/smoke
112 kde-base/kdebindings kde-base/xparts
113 kde-base/kdeedu kde-base/blinken
114 kde-base/kdeedu kde-base/kalzium
115 kde-base/kdeedu kde-base/kanagram
116 kde-base/kdeedu kde-base/kbruch
117 kde-base/kdeedu kde-base/kdeedu-applnk
118 kde-base/kdeedu kde-base/keduca
119 kde-base/kdeedu kde-base/kgeography
120 kde-base/kdeedu kde-base/khangman
121 kde-base/kdeedu kde-base/kig
122 kde-base/kdeedu kde-base/kiten
123 kde-base/kdeedu kde-base/klatin
124 kde-base/kdeedu kde-base/klettres
125 kde-base/kdeedu kde-base/kmathtool
126 kde-base/kdeedu kde-base/kmessedwords
127 kde-base/kdeedu kde-base/kmplot
128 kde-base/kdeedu kde-base/kpercentage
129 kde-base/kdeedu kde-base/kstars
130 kde-base/kdeedu kde-base/ktouch
131 kde-base/kdeedu kde-base/kturtle
132 kde-base/kdeedu kde-base/kverbos
133 kde-base/kdeedu kde-base/kvoctrain
134 kde-base/kdeedu kde-base/kwordquiz
135 kde-base/kdeedu kde-base/libkdeedu
136 kde-base/kdegames kde-base/atlantik
137 kde-base/kdegames kde-base/kasteroids
138 kde-base/kdegames kde-base/katomic
139 kde-base/kdegames kde-base/kbackgammon
140 kde-base/kdegames kde-base/kbattleship
141 kde-base/kdegames kde-base/kblackbox
142 kde-base/kdegames kde-base/kbounce
143 kde-base/kdegames kde-base/kenolaba
144 kde-base/kdegames kde-base/kfouleggs
145 kde-base/kdegames kde-base/kgoldrunner
146 kde-base/kdegames kde-base/kjumpingcube
147 kde-base/kdegames kde-base/klickety
148 kde-base/kdegames kde-base/klines
149 kde-base/kdegames kde-base/kmahjongg
150 kde-base/kdegames kde-base/kmines
151 kde-base/kdegames kde-base/knetwalk
152 kde-base/kdegames kde-base/kolf
153 kde-base/kdegames kde-base/konquest
154 kde-base/kdegames kde-base/kpat
155 kde-base/kdegames kde-base/kpoker
156 kde-base/kdegames kde-base/kreversi
157 kde-base/kdegames kde-base/ksame
158 kde-base/kdegames kde-base/kshisen
159 kde-base/kdegames kde-base/ksirtet
160 kde-base/kdegames kde-base/ksmiletris
161 kde-base/kdegames kde-base/ksnake
162 kde-base/kdegames kde-base/ksokoban
163 kde-base/kdegames kde-base/kspaceduel
164 kde-base/kdegames kde-base/ktron
165 kde-base/kdegames kde-base/ktuberling
166 kde-base/kdegames kde-base/kwin4
167 kde-base/kdegames kde-base/libkdegames
168 kde-base/kdegames kde-base/libksirtet
169 kde-base/kdegames kde-base/lskat
170 kde-base/kdegraphics kde-base/kamera
171 kde-base/kdegraphics kde-base/kcoloredit
172 kde-base/kdegraphics kde-base/kdegraphics-kfile-plugins
173 kde-base/kdegraphics kde-base/kdvi
174 kde-base/kdegraphics kde-base/kfax
175 kde-base/kdegraphics kde-base/kgamma
176 kde-base/kdegraphics kde-base/kghostview
177 kde-base/kdegraphics kde-base/kiconedit
178 kde-base/kdegraphics kde-base/kmrml
179 kde-base/kdegraphics kde-base/kolourpaint
180 kde-base/kdegraphics kde-base/kooka
181 kde-base/kdegraphics kde-base/kpdf
182 kde-base/kdegraphics kde-base/kpovmodeler
183 kde-base/kdegraphics kde-base/kruler
184 kde-base/kdegraphics kde-base/ksnapshot
185 kde-base/kdegraphics kde-base/ksvg
186 kde-base/kdegraphics kde-base/kuickshow
187 kde-base/kdegraphics kde-base/kview
188 kde-base/kdegraphics kde-base/kviewshell
189 kde-base/kdegraphics kde-base/libkscan
190 kde-base/kdemultimedia kde-base/akode
191 kde-base/kdemultimedia kde-base/artsplugin-akode
192 kde-base/kdemultimedia kde-base/artsplugin-audiofile
193 kde-base/kdemultimedia kde-base/artsplugin-mpeglib
194 kde-base/kdemultimedia kde-base/artsplugin-mpg123
195 kde-base/kdemultimedia kde-base/artsplugin-xine
196 kde-base/kdemultimedia kde-base/juk
197 kde-base/kdemultimedia kde-base/kaboodle
198 kde-base/kdemultimedia kde-base/kaudiocreator
199 kde-base/kdemultimedia kde-base/kdemultimedia-arts
200 kde-base/kdemultimedia kde-base/kdemultimedia-kappfinder-data
201 kde-base/kdemultimedia kde-base/kdemultimedia-kfile-plugins
202 kde-base/kdemultimedia kde-base/kdemultimedia-kioslaves
203 kde-base/kdemultimedia kde-base/kmid
204 kde-base/kdemultimedia kde-base/kmix
205 kde-base/kdemultimedia kde-base/krec
206 kde-base/kdemultimedia kde-base/kscd
207 kde-base/kdemultimedia kde-base/libkcddb
208 kde-base/kdemultimedia kde-base/mpeglib
209 kde-base/kdemultimedia kde-base/noatun
210 kde-base/kdenetwork kde-base/dcoprss
211 kde-base/kdenetwork kde-base/kdenetwork-filesharing
212 kde-base/kdenetwork kde-base/kdenetwork-kfile-plugins
213 kde-base/kdenetwork kde-base/kdict
214 kde-base/kdenetwork kde-base/kdnssd
215 kde-base/kdenetwork kde-base/kget
216 kde-base/kdenetwork kde-base/knewsticker
217 kde-base/kdenetwork kde-base/kopete
218 kde-base/kdenetwork kde-base/kpf
219 kde-base/kdenetwork kde-base/kppp
220 kde-base/kdenetwork kde-base/krdc
221 kde-base/kdenetwork kde-base/krfb
222 kde-base/kdenetwork kde-base/ksirc
223 kde-base/kdenetwork kde-base/ktalkd
224 kde-base/kdenetwork kde-base/kwifimanager
225 kde-base/kdenetwork kde-base/librss
226 kde-base/kdenetwork kde-base/lisa
227 kde-base/kdepim kde-base/akregator
228 kde-base/kdepim kde-base/certmanager
229 kde-base/kdepim kde-base/kaddressbook
230 kde-base/kdepim kde-base/kalarm
231 kde-base/kdepim kde-base/kandy
232 kde-base/kdepim kde-base/karm
233 kde-base/kdepim kde-base/kdepim-kioslaves
234 kde-base/kdepim kde-base/kdepim-kresources
235 kde-base/kdepim kde-base/kdepim-wizards
236 kde-base/kdepim kde-base/kitchensync
237 kde-base/kdepim kde-base/kmail
238 kde-base/kdepim kde-base/kmailcvt
239 kde-base/kdepim kde-base/knode
240 kde-base/kdepim kde-base/knotes
241 kde-base/kdepim kde-base/kode
242 kde-base/kdepim kde-base/konsolekalendar
243 kde-base/kdepim kde-base/kontact
244 kde-base/kdepim kde-base/kontact-specialdates
245 kde-base/kdepim kde-base/korganizer
246 kde-base/kdepim kde-base/korn
247 kde-base/kdepim kde-base/kpilot
248 kde-base/kdepim kde-base/ksync
249 kde-base/kdepim kde-base/ktnef
250 kde-base/kdepim kde-base/libkcal
251 kde-base/kdepim kde-base/libkdenetwork
252 kde-base/kdepim kde-base/libkdepim
253 kde-base/kdepim kde-base/libkholidays
254 kde-base/kdepim kde-base/libkmime
255 kde-base/kdepim kde-base/libkpgp
256 kde-base/kdepim kde-base/libkpimexchange
257 kde-base/kdepim kde-base/libkpimidentities
258 kde-base/kdepim kde-base/libksieve
259 kde-base/kdepim kde-base/mimelib
260 kde-base/kdepim kde-base/networkstatus
261 kde-base/kdesdk kde-base/cervisia
262 kde-base/kdesdk kde-base/kapptemplate
263 kde-base/kdesdk kde-base/kbabel
264 kde-base/kdesdk kde-base/kbugbuster
265 kde-base/kdesdk kde-base/kcachegrind
266 kde-base/kdesdk kde-base/kdesdk-kfile-plugins
267 kde-base/kdesdk kde-base/kdesdk-kioslaves
268 kde-base/kdesdk kde-base/kdesdk-misc
269 kde-base/kdesdk kde-base/kdesdk-scripts
270 kde-base/kdesdk kde-base/kmtrace
271 kde-base/kdesdk kde-base/kompare
272 kde-base/kdesdk kde-base/kspy
273 kde-base/kdesdk kde-base/kuiviewer
274 kde-base/kdesdk kde-base/umbrello
275 kde-base/kdetoys kde-base/amor
276 kde-base/kdetoys kde-base/eyesapplet
277 kde-base/kdetoys kde-base/fifteenapplet
278 kde-base/kdetoys kde-base/kmoon
279 kde-base/kdetoys kde-base/kodo
280 kde-base/kdetoys kde-base/kteatime
281 kde-base/kdetoys kde-base/ktux
282 kde-base/kdetoys kde-base/kweather
283 kde-base/kdetoys kde-base/kworldclock
284 kde-base/kdetoys kde-base/kworldwatch
285 kde-base/kdeutils kde-base/ark
286 kde-base/kdeutils kde-base/kcalc
287 kde-base/kdeutils kde-base/kcharselect
288 kde-base/kdeutils kde-base/kdelirc
289 kde-base/kdeutils kde-base/kdf
290 kde-base/kdeutils kde-base/kedit
291 kde-base/kdeutils kde-base/kfloppy
292 kde-base/kdeutils kde-base/kgpg
293 kde-base/kdeutils kde-base/khexedit
294 kde-base/kdeutils kde-base/kjots
295 kde-base/kdeutils kde-base/klaptopdaemon
296 kde-base/kdeutils kde-base/kmilo
297 kde-base/kdeutils kde-base/kregexpeditor
298 kde-base/kdeutils kde-base/ksim
299 kde-base/kdeutils kde-base/ktimer
300 kde-base/kdeutils kde-base/kwalletmanager
301 kde-base/kdeutils kde-base/superkaramba
302 kde-base/kdewebdev kde-base/kfilereplace
303 kde-base/kdewebdev kde-base/kimagemapeditor
304 kde-base/kdewebdev kde-base/klinkstatus
305 kde-base/kdewebdev kde-base/kommander
306 kde-base/kdewebdev kde-base/kxsldbg
307 kde-base/kdewebdev kde-base/quanta
308 app-office/koffice app-office/karbon
309 app-office/koffice app-office/kchart
310 app-office/koffice app-office/kexi
311 app-office/koffice app-office/kformula
312 app-office/koffice app-office/kivio
313 app-office/koffice app-office/koffice-data
314 app-office/koffice app-office/koffice-libs
315 app-office/koffice app-office/koffice-meta
316 app-office/koffice app-office/koshell
317 app-office/koffice app-office/kplato
318 app-office/koffice app-office/kpresenter
319 app-office/koffice app-office/krita
320 app-office/koffice app-office/kspread
321 app-office/koffice app-office/kugar
322 app-office/koffice app-office/kword
325 # @FUNCTION: get-parent-package
326 # @USAGE: < name of split-ebuild >
328 # accepts 1 parameter, the name of a split ebuild; echoes the name of its mother package
329 get-parent-package
() {
331 while read parent child
; do
332 if [[ ${child} == $1 ]]; then
339 die
"Package $1 not found in KDE_DERIVATION_MAP, please report bug"
342 # @FUNCTION: get-child-packages
343 # @USAGE: < name of monolithic package >
345 # accepts 1 parameter, the name of a monolithic package; echoes the names of all ebuilds derived from it
346 get-child-packages
() {
348 while read parent child
; do
349 [[ ${parent} == $1 ]] && echo -n "${child} "
355 # @FUNCTION: is-parent-package
357 # @RETURN: 0 if <name> is a parent package, otherwise 1
358 is-parent-package
() {
360 while read parent child
; do
361 [[ "${parent}" == "$1" ]] && return 0
368 # ---------------------------------------------------------------
369 # kde/qt directory management etc. functions, was kde-dirs.ebuild
370 # ---------------------------------------------------------------
372 # @FUNCTION: need-kde
373 # @USAGE: < version >
375 # Sets the correct DEPEND and RDEPEND for the needed kde < version >. Also takes
376 # care of the correct Qt-version and correct RDEPEND handling.
378 debug-print-function
$FUNCNAME "$@"
382 # determine install locations
385 if [[ "${RDEPEND-unset}" != "unset" ]]; then
386 x_DEPEND
="${RDEPEND}"
390 if [[ -n "${KDEBASE}" ]]; then
391 # If we're a kde-base package, we need at least our own version of kdelibs.
392 # Note: we only set RDEPEND if it is already set, otherwise
393 # we break packages relying on portage copying RDEPEND from DEPEND.
394 DEPEND
="${DEPEND} ~kde-base/kdelibs-$PV"
395 RDEPEND
="${x_DEPEND} ~kde-base/kdelibs-${PV}"
397 # Things outside kde-base need a minimum version,
398 # but kde-base/kdelibs:kde-4 mustn't satisfy it.
399 min-kde-ver
${KDEVER}
400 DEPEND
="${DEPEND} =kde-base/kdelibs-3.5*"
401 RDEPEND
="${x_DEPEND} =kde-base/kdelibs-3.5*"
404 qtver-from-kdever
${KDEVER}
405 need-qt
${selected_version}
407 if [[ -n "${KDEBASE}" ]]; then
408 SLOT
="$KDEMAJORVER.$KDEMINORVER"
414 # @FUNCTION: set-kdedir
415 # @USAGE: < version >
417 # Sets the right directories for the kde <version> wrt what kind of package will
418 # be installed, e. g. third-party-apps, kde-base-packages, ...
420 debug-print-function
$FUNCNAME "$@"
423 # set install location:
424 # - 3rd party apps go into /usr, and have SLOT="0".
425 # - kde-base category ebuilds go into /usr/kde/$MAJORVER.$MINORVER,
426 # and have SLOT="$MAJORVER.$MINORVER".
427 # - kde-base category cvs ebuilds have major version 5 and go into
428 # /usr/kde/cvs; they have SLOT="cvs".
429 # - Backward-compatibility exceptions: all kde2 packages (kde-base or otherwise)
430 # go into /usr/kde/2. kde 3.0.x goes into /usr/kde/3 (and not 3.0).
431 # - kde-base category ebuilds always depend on their exact matching version of
432 # kdelibs and link against it. Other ebuilds link aginst the latest one found.
433 # - This function exports $PREFIX (location to install to) and $KDEDIR
434 # (location of kdelibs to link against) for all ebuilds.
436 # -- Overrides - deprecated but working for now: --
437 # - If $KDEPREFIX is defined (in the profile or env), it overrides everything
438 # and both base and 3rd party kde stuff goes in there.
439 # - If $KDELIBSDIR is defined, the kdelibs installed in that location will be
440 # used, even by kde-base packages.
442 # get version elements
446 if [[ -z "$KDEMAJORVER" ]]; then KDEMAJORVER
=$x
447 else if [[ -z "$KDEMINORVER" ]]; then KDEMINORVER
=$x
448 else if [[ -z "$KDEREVISION" ]]; then KDEREVISION
=$x
451 [[ -z "$KDEMINORVER" ]] && KDEMINORVER
="0"
452 [[ -z "$KDEREVISION" ]] && KDEREVISION
="0"
454 debug-print
"$FUNCNAME: version breakup: KDEMAJORVER=$KDEMAJORVER KDEMINORVER=$KDEMINORVER KDEREVISION=$KDEREVISION"
457 if [[ -n "$KDEPREFIX" ]]; then
458 export PREFIX
="$KDEPREFIX"
460 if [[ -z "$KDEBASE" ]]; then
461 PREFIX
="/usr/kde/3.5"
463 case $KDEMAJORVER.
$KDEMINORVER in
464 3*) export PREFIX
="/usr/kde/3.5";;
465 5.0) export PREFIX
="/usr/kde/svn";;
466 *) die
"failed to set PREFIX";;
472 if [[ -n "$KDELIBSDIR" ]]; then
473 export KDEDIR
="$KDELIBSDIR"
475 if [[ -z "$KDEBASE" ]]; then
476 # find the latest kdelibs installed
477 for x
in /usr
/kde
/{svn
,3.5} "${PREFIX}" \
478 "${KDE3LIBSDIR}" "${KDELIBSDIR}" "${KDE3DIR}" "${KDEDIR}" /usr
/kde
/*; do
479 if [[ -f "${x}/include/kwin.h" ]]; then
486 # kde-base ebuilds must always use the exact version of kdelibs they came with
487 case $KDEMAJORVER.
$KDEMINORVER in
488 3*) export KDEDIR
="/usr/kde/3.5";;
489 5.0) export KDEDIR
="/usr/kde/svn";;
490 *) die
"failed to set KDEDIR";;
495 debug-print
"$FUNCNAME: Will use the kdelibs installed in $KDEDIR, and install into $PREFIX."
499 # @USAGE: < version >
501 # Sets the DEPEND and RDEPEND for Qt <version>.
503 debug-print-function
$FUNCNAME "${@}"
509 if [[ "${RDEPEND-unset}" != "unset" ]]; then
510 x_DEPEND
="${RDEPEND}"
516 3*) DEPEND
="${DEPEND} =x11-libs/qt-meta-3*"
517 RDEPEND
="${RDEPEND} =x11-libs/qt-meta-3*"
519 *) echo "!!! error: $FUNCNAME() called with invalid parameter: \"$QTVER\", please report bug" && exit 1;;
524 # @FUNCTION: set-qtdir
526 # This function is not needed anymore.
531 # @FUNCTION: qtver-from-kdever
532 # @USAGE: < kde-version >
534 # returns minimal qt version needed for specified kde version
535 qtver-from-kdever
() {
536 debug-print-function
$FUNCNAME "$@"
547 5) ver
=3.3;; # cvs version
548 *) echo "!!! error: $FUNCNAME called with invalid parameter: \"$1\", please report bug" && exit 1;;
551 selected_version
="$ver"
556 debug-print-function
$FUNCNAME "$@"
559 3.0*) selected_version
="3.0";;
560 3.1*) selected_version
="3.1";;
561 3.2*) selected_version
="3.2";;
562 3.3*) selected_version
="3.3";;
563 3.4*) selected_version
="3.4";;
564 3.5*) selected_version
="3.5";;
565 3*) selected_version
="3.0";;
566 5) selected_version
="5";;
567 *) echo "!!! error: $FUNCNAME() called with invalid parameter: \"$1\", please report bug" && exit 1;;
572 # @FUNCTION: kde_sandbox_patch
573 # @USAGE: < dir > [ dir ] [ dir ] [...]
575 # generic makefile sed for sandbox compatibility. for some reason when the kde makefiles (of many packages
576 # and versions) try to chown root and chmod 4755 some binaries (after installing, target install-exec-local),
577 # they do it to the files in $(bindir), not $(DESTDIR)/$(bindir). Most of these have been fixed in latest cvs
578 # but a few remain here and there.
580 # Pass a list of dirs to sed, Makefile.{am,in} in these dirs will be sed'ed.
581 # This should be harmless if the makefile doesn't need fixing.
582 kde_sandbox_patch
() {
583 debug-print-function
$FUNCNAME "$@"
585 while [[ -n "$1" ]]; do
586 # can't use dosed, because it only works for things in ${D}, not ${S}
588 for x
in Makefile.am Makefile.
in Makefile
590 if [[ -f "$x" ]]; then
591 echo Running
sed on
$x
593 sed -e 's: $(bindir): $(DESTDIR)/$(bindir):g' -e 's: $(kde_datadir): $(DESTDIR)/$(kde_datadir):g' -e 's: $(TIMID_DIR): $(DESTDIR)/$(TIMID_DIR):g' ${x}.orig
> ${x}
602 # @FUNCTION: kde_remove_flag
603 # @USAGE: < dir > < flag >
605 # remove an optimization flag from a specific subdirectory's makefiles.
606 # currently kdebase and koffice use it to compile certain subdirs without
607 # -fomit-frame-pointer which breaks some things.
609 debug-print-function
$FUNCNAME "$@"
611 cd "${S}"/${1} || die "cd to '${S}/${1}' failed."
612 [[ -n "$2" ]] || die
"missing argument to kde_remove_flag"
614 cp Makefile Makefile.orig
615 sed -e "/CFLAGS/ s/${2}//g
616 /CXXFLAGS/ s/${2}//g" Makefile.orig
> Makefile
623 [[ $EBUILD_PHASE != postinst
]] && [[ $EBUILD_PHASE != postrm
]] && \
624 die
"buildsycoca() has to be calles in pkg_postinst() and pkg_postrm()."
626 if [[ -x ${KDEDIR}/bin/kbuildsycoca ]] && [[ -z ${ROOT} || ${ROOT} == "/" ]] ; then
627 # First of all, make sure that the /usr/share/services directory exists
628 # and it has the right permissions
629 mkdir
-p /usr
/share
/services
630 chown root
:0 /usr
/share
/services
631 chmod 0755 /usr
/share
/services
633 ebegin
"Running kbuildsycoca to build global database"
634 # Filter all KDEDIRs not belonging to the current SLOT from XDG_DATA_DIRS
635 # before running kbuildsycoca. This makes sure they don't show up in the
636 # 3.5 K-menu unless the user manually adds them.
637 XDG_DATA_DIRS
="/usr/share:${KDEDIR}/share:/usr/local/share"
638 "${KDEDIR}"/bin
/kbuildsycoca
--global --noincremental &> /dev
/null
643 postprocess_desktop_entries
() {
644 [[ $EBUILD_PHASE != preinst
]] && [[ $EBUILD_PHASE != install ]] && \
645 die
"postprocess_desktop_entries() has to be called in src_install() or pkg_preinst()."
647 if [[ -d ${D}${PREFIX}/share
/applnk
]] ; then
648 # min/max depth is _important_ as it excludes legacy KDE stuff. Moving it would cause breakage.
649 local desktop_entries
="$(find "${D}${PREFIX}/share
/applnk
" -mindepth 2 -maxdepth 2 \
650 -name '*\.desktop' -not -path '*.hidden*' 2>/dev/null)"
652 if [[ -n ${desktop_entries} ]]; then
653 for entry
in ${desktop_entries} ; do
654 if ! [[ -f "${D}${PREFIX}"/share/applications/kde/${entry##*/} ]] ; then
655 dodir "${PREFIX}"/share/applications/kde
656 mv ${entry} "${D}${PREFIX}"/share
/applications
/kde
662 validate_desktop_entries
"${PREFIX}"/share
/applications
665 # is this a kde-base ebuid?
666 if [[ "${CATEGORY}" == "kde-base" ]]; then
667 debug-print
"${ECLASS}: KDEBASE ebuild recognized"
668 export KDEBASE
="true"