Revision: 1925
Author:   dominique
Date:     2011-04-17 00:42:24 +0200 (Sun, 17 Apr 2011)
Log Message:
-----------
Eclasses from kde-sunset, needed for kde/qt3 programs

Added Paths:
-----------
    trunk/overlays/proaudio/eclass/kde-functions.eclass
    trunk/overlays/proaudio/eclass/kde.eclass
    trunk/overlays/proaudio/eclass/qt3.eclass

Added: trunk/overlays/proaudio/eclass/kde-functions.eclass
===================================================================
--- trunk/overlays/proaudio/eclass/kde-functions.eclass                         
(rev 0)
+++ trunk/overlays/proaudio/eclass/kde-functions.eclass 2011-04-16 22:42:24 UTC 
(rev 1925)
@@ -0,0 +1,670 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde-functions.eclass,v 1.175 
2009/11/01 20:26:34 abcd Exp $
+
+# @ECLASS: kde-functions.eclass
+# @MAINTAINER:
+# [email protected]
+# Original author Dan Armak <[email protected]>
+#
+# @BLURB: This contains everything except things that modify ebuild variables 
and
+# @DESCRIPTION:
+# This contains everything except things that modify ebuild variables
+# and functions (e.g. $P, src_compile() etc.)
+
+inherit qt3 eutils
+
+# map of the monolithic->split ebuild derivation; used to build deps describing
+# the relationships between them
+KDE_DERIVATION_MAP='
+kde-base/kdeaccessibility kde-base/kbstateapplet
+kde-base/kdeaccessibility kde-base/kdeaccessibility-iconthemes
+kde-base/kdeaccessibility kde-base/kmag
+kde-base/kdeaccessibility kde-base/kmousetool
+kde-base/kdeaccessibility kde-base/kmouth
+kde-base/kdeaccessibility kde-base/kttsd
+kde-base/kdeaccessibility kde-base/ksayit
+kde-base/kdeaddons kde-base/atlantikdesigner
+kde-base/kdeaddons kde-base/kaddressbook-plugins
+kde-base/kdeaddons kde-base/kate-plugins
+kde-base/kdeaddons kde-base/kdeaddons-docs-konq-plugins
+kde-base/kdeaddons kde-base/kdeaddons-kfile-plugins
+kde-base/kdeaddons kde-base/kicker-applets
+kde-base/kdeaddons kde-base/knewsticker-scripts
+kde-base/kdeaddons kde-base/konq-plugins
+kde-base/kdeaddons kde-base/konqueror-akregator
+kde-base/kdeaddons kde-base/ksig
+kde-base/kdeaddons kde-base/noatun-plugins
+kde-base/kdeaddons kde-base/renamedlg-audio
+kde-base/kdeaddons kde-base/renamedlg-images
+kde-base/kdeadmin kde-base/kcron
+kde-base/kdeadmin kde-base/kdat
+kde-base/kdeadmin kde-base/kdeadmin-kfile-plugins
+kde-base/kdeadmin kde-base/knetworkconf
+kde-base/kdeadmin kde-base/kpackage
+kde-base/kdeadmin kde-base/ksysv
+kde-base/kdeadmin kde-base/kuser
+kde-base/kdeadmin kde-base/lilo-config
+kde-base/kdeadmin kde-base/secpolicy
+kde-base/kdeartwork kde-base/kdeartwork-emoticons
+kde-base/kdeartwork kde-base/kdeartwork-icewm-themes
+kde-base/kdeartwork kde-base/kdeartwork-iconthemes
+kde-base/kdeartwork kde-base/kdeartwork-kscreensaver
+kde-base/kdeartwork kde-base/kdeartwork-kwin-styles
+kde-base/kdeartwork kde-base/kdeartwork-kworldclock
+kde-base/kdeartwork kde-base/kdeartwork-kworldwatch
+kde-base/kdeartwork kde-base/kdeartwork-sounds
+kde-base/kdeartwork kde-base/kdeartwork-styles
+kde-base/kdeartwork kde-base/kdeartwork-wallpapers
+kde-base/kdebase kde-base/drkonqi
+kde-base/kdebase kde-base/kappfinder
+kde-base/kdebase kde-base/kate
+kde-base/kdebase kde-base/kcheckpass
+kde-base/kdebase kde-base/kcminit
+kde-base/kdebase kde-base/kcontrol
+kde-base/kdebase kde-base/kdcop
+kde-base/kdebase kde-base/kdebase-data
+kde-base/kdebase kde-base/kdebase-kioslaves
+kde-base/kdebase kde-base/kdebase-startkde
+kde-base/kdebase kde-base/kdebugdialog
+kde-base/kdebase kde-base/kdepasswd
+kde-base/kdebase kde-base/kdeprint
+kde-base/kdebase kde-base/kdesktop
+kde-base/kdebase kde-base/kdesu
+kde-base/kdebase kde-base/kdialog
+kde-base/kdebase kde-base/kdm
+kde-base/kdebase kde-base/kfind
+kde-base/kdebase kde-base/khelpcenter
+kde-base/kdebase kde-base/khotkeys
+kde-base/kdebase kde-base/kicker
+kde-base/kdebase kde-base/klipper
+kde-base/kdebase kde-base/kmenuedit
+kde-base/kdebase kde-base/knetattach
+kde-base/kdebase kde-base/konqueror
+kde-base/kdebase kde-base/konsole
+kde-base/kdebase kde-base/kpager
+kde-base/kdebase kde-base/kpersonalizer
+kde-base/kdebase kde-base/kreadconfig
+kde-base/kdebase kde-base/kscreensaver
+kde-base/kdebase kde-base/ksmserver
+kde-base/kdebase kde-base/ksplashml
+kde-base/kdebase kde-base/kstart
+kde-base/kdebase kde-base/ksysguard
+kde-base/kdebase kde-base/ksystraycmd
+kde-base/kdebase kde-base/ktip
+kde-base/kdebase kde-base/kwin
+kde-base/kdebase kde-base/kxkb
+kde-base/kdebase kde-base/libkonq
+kde-base/kdebase kde-base/nsplugins
+kde-base/kdebindings kde-base/dcopc
+kde-base/kdebindings kde-base/dcopjava
+kde-base/kdebindings kde-base/dcopperl
+kde-base/kdebindings kde-base/dcoppython
+kde-base/kdebindings kde-base/kalyptus
+kde-base/kdebindings kde-base/kdejava
+kde-base/kdebindings kde-base/kjsembed
+kde-base/kdebindings kde-base/korundum
+kde-base/kdebindings kde-base/pykde
+kde-base/kdebindings kde-base/qtjava
+kde-base/kdebindings kde-base/qtruby
+kde-base/kdebindings kde-base/qtsharp
+kde-base/kdebindings kde-base/smoke
+kde-base/kdebindings kde-base/xparts
+kde-base/kdeedu kde-base/blinken
+kde-base/kdeedu kde-base/kalzium
+kde-base/kdeedu kde-base/kanagram
+kde-base/kdeedu kde-base/kbruch
+kde-base/kdeedu kde-base/kdeedu-applnk
+kde-base/kdeedu kde-base/keduca
+kde-base/kdeedu kde-base/kgeography
+kde-base/kdeedu kde-base/khangman
+kde-base/kdeedu kde-base/kig
+kde-base/kdeedu kde-base/kiten
+kde-base/kdeedu kde-base/klatin
+kde-base/kdeedu kde-base/klettres
+kde-base/kdeedu kde-base/kmathtool
+kde-base/kdeedu kde-base/kmessedwords
+kde-base/kdeedu kde-base/kmplot
+kde-base/kdeedu kde-base/kpercentage
+kde-base/kdeedu kde-base/kstars
+kde-base/kdeedu kde-base/ktouch
+kde-base/kdeedu kde-base/kturtle
+kde-base/kdeedu kde-base/kverbos
+kde-base/kdeedu kde-base/kvoctrain
+kde-base/kdeedu kde-base/kwordquiz
+kde-base/kdeedu kde-base/libkdeedu
+kde-base/kdegames kde-base/atlantik
+kde-base/kdegames kde-base/kasteroids
+kde-base/kdegames kde-base/katomic
+kde-base/kdegames kde-base/kbackgammon
+kde-base/kdegames kde-base/kbattleship
+kde-base/kdegames kde-base/kblackbox
+kde-base/kdegames kde-base/kbounce
+kde-base/kdegames kde-base/kenolaba
+kde-base/kdegames kde-base/kfouleggs
+kde-base/kdegames kde-base/kgoldrunner
+kde-base/kdegames kde-base/kjumpingcube
+kde-base/kdegames kde-base/klickety
+kde-base/kdegames kde-base/klines
+kde-base/kdegames kde-base/kmahjongg
+kde-base/kdegames kde-base/kmines
+kde-base/kdegames kde-base/knetwalk
+kde-base/kdegames kde-base/kolf
+kde-base/kdegames kde-base/konquest
+kde-base/kdegames kde-base/kpat
+kde-base/kdegames kde-base/kpoker
+kde-base/kdegames kde-base/kreversi
+kde-base/kdegames kde-base/ksame
+kde-base/kdegames kde-base/kshisen
+kde-base/kdegames kde-base/ksirtet
+kde-base/kdegames kde-base/ksmiletris
+kde-base/kdegames kde-base/ksnake
+kde-base/kdegames kde-base/ksokoban
+kde-base/kdegames kde-base/kspaceduel
+kde-base/kdegames kde-base/ktron
+kde-base/kdegames kde-base/ktuberling
+kde-base/kdegames kde-base/kwin4
+kde-base/kdegames kde-base/libkdegames
+kde-base/kdegames kde-base/libksirtet
+kde-base/kdegames kde-base/lskat
+kde-base/kdegraphics kde-base/kamera
+kde-base/kdegraphics kde-base/kcoloredit
+kde-base/kdegraphics kde-base/kdegraphics-kfile-plugins
+kde-base/kdegraphics kde-base/kdvi
+kde-base/kdegraphics kde-base/kfax
+kde-base/kdegraphics kde-base/kgamma
+kde-base/kdegraphics kde-base/kghostview
+kde-base/kdegraphics kde-base/kiconedit
+kde-base/kdegraphics kde-base/kmrml
+kde-base/kdegraphics kde-base/kolourpaint
+kde-base/kdegraphics kde-base/kooka
+kde-base/kdegraphics kde-base/kpdf
+kde-base/kdegraphics kde-base/kpovmodeler
+kde-base/kdegraphics kde-base/kruler
+kde-base/kdegraphics kde-base/ksnapshot
+kde-base/kdegraphics kde-base/ksvg
+kde-base/kdegraphics kde-base/kuickshow
+kde-base/kdegraphics kde-base/kview
+kde-base/kdegraphics kde-base/kviewshell
+kde-base/kdegraphics kde-base/libkscan
+kde-base/kdemultimedia kde-base/akode
+kde-base/kdemultimedia kde-base/artsplugin-akode
+kde-base/kdemultimedia kde-base/artsplugin-audiofile
+kde-base/kdemultimedia kde-base/artsplugin-mpeglib
+kde-base/kdemultimedia kde-base/artsplugin-mpg123
+kde-base/kdemultimedia kde-base/artsplugin-xine
+kde-base/kdemultimedia kde-base/juk
+kde-base/kdemultimedia kde-base/kaboodle
+kde-base/kdemultimedia kde-base/kaudiocreator
+kde-base/kdemultimedia kde-base/kdemultimedia-arts
+kde-base/kdemultimedia kde-base/kdemultimedia-kappfinder-data
+kde-base/kdemultimedia kde-base/kdemultimedia-kfile-plugins
+kde-base/kdemultimedia kde-base/kdemultimedia-kioslaves
+kde-base/kdemultimedia kde-base/kmid
+kde-base/kdemultimedia kde-base/kmix
+kde-base/kdemultimedia kde-base/krec
+kde-base/kdemultimedia kde-base/kscd
+kde-base/kdemultimedia kde-base/libkcddb
+kde-base/kdemultimedia kde-base/mpeglib
+kde-base/kdemultimedia kde-base/noatun
+kde-base/kdenetwork kde-base/dcoprss
+kde-base/kdenetwork kde-base/kdenetwork-filesharing
+kde-base/kdenetwork kde-base/kdenetwork-kfile-plugins
+kde-base/kdenetwork kde-base/kdict
+kde-base/kdenetwork kde-base/kdnssd
+kde-base/kdenetwork kde-base/kget
+kde-base/kdenetwork kde-base/knewsticker
+kde-base/kdenetwork kde-base/kopete
+kde-base/kdenetwork kde-base/kpf
+kde-base/kdenetwork kde-base/kppp
+kde-base/kdenetwork kde-base/krdc
+kde-base/kdenetwork kde-base/krfb
+kde-base/kdenetwork kde-base/ksirc
+kde-base/kdenetwork kde-base/ktalkd
+kde-base/kdenetwork kde-base/kwifimanager
+kde-base/kdenetwork kde-base/librss
+kde-base/kdenetwork kde-base/lisa
+kde-base/kdepim kde-base/akregator
+kde-base/kdepim kde-base/certmanager
+kde-base/kdepim kde-base/kaddressbook
+kde-base/kdepim kde-base/kalarm
+kde-base/kdepim kde-base/kandy
+kde-base/kdepim kde-base/karm
+kde-base/kdepim kde-base/kdepim-kioslaves
+kde-base/kdepim kde-base/kdepim-kresources
+kde-base/kdepim kde-base/kdepim-wizards
+kde-base/kdepim kde-base/kitchensync
+kde-base/kdepim kde-base/kmail
+kde-base/kdepim kde-base/kmailcvt
+kde-base/kdepim kde-base/knode
+kde-base/kdepim kde-base/knotes
+kde-base/kdepim kde-base/kode
+kde-base/kdepim kde-base/konsolekalendar
+kde-base/kdepim kde-base/kontact
+kde-base/kdepim kde-base/kontact-specialdates
+kde-base/kdepim kde-base/korganizer
+kde-base/kdepim kde-base/korn
+kde-base/kdepim kde-base/kpilot
+kde-base/kdepim kde-base/ksync
+kde-base/kdepim kde-base/ktnef
+kde-base/kdepim kde-base/libkcal
+kde-base/kdepim kde-base/libkdenetwork
+kde-base/kdepim kde-base/libkdepim
+kde-base/kdepim kde-base/libkholidays
+kde-base/kdepim kde-base/libkmime
+kde-base/kdepim kde-base/libkpgp
+kde-base/kdepim kde-base/libkpimexchange
+kde-base/kdepim kde-base/libkpimidentities
+kde-base/kdepim kde-base/libksieve
+kde-base/kdepim kde-base/mimelib
+kde-base/kdepim kde-base/networkstatus
+kde-base/kdesdk kde-base/cervisia
+kde-base/kdesdk kde-base/kapptemplate
+kde-base/kdesdk kde-base/kbabel
+kde-base/kdesdk kde-base/kbugbuster
+kde-base/kdesdk kde-base/kcachegrind
+kde-base/kdesdk kde-base/kdesdk-kfile-plugins
+kde-base/kdesdk kde-base/kdesdk-kioslaves
+kde-base/kdesdk kde-base/kdesdk-misc
+kde-base/kdesdk kde-base/kdesdk-scripts
+kde-base/kdesdk kde-base/kmtrace
+kde-base/kdesdk kde-base/kompare
+kde-base/kdesdk kde-base/kspy
+kde-base/kdesdk kde-base/kuiviewer
+kde-base/kdesdk kde-base/umbrello
+kde-base/kdetoys kde-base/amor
+kde-base/kdetoys kde-base/eyesapplet
+kde-base/kdetoys kde-base/fifteenapplet
+kde-base/kdetoys kde-base/kmoon
+kde-base/kdetoys kde-base/kodo
+kde-base/kdetoys kde-base/kteatime
+kde-base/kdetoys kde-base/ktux
+kde-base/kdetoys kde-base/kweather
+kde-base/kdetoys kde-base/kworldclock
+kde-base/kdetoys kde-base/kworldwatch
+kde-base/kdeutils kde-base/ark
+kde-base/kdeutils kde-base/kcalc
+kde-base/kdeutils kde-base/kcharselect
+kde-base/kdeutils kde-base/kdelirc
+kde-base/kdeutils kde-base/kdf
+kde-base/kdeutils kde-base/kedit
+kde-base/kdeutils kde-base/kfloppy
+kde-base/kdeutils kde-base/kgpg
+kde-base/kdeutils kde-base/khexedit
+kde-base/kdeutils kde-base/kjots
+kde-base/kdeutils kde-base/klaptopdaemon
+kde-base/kdeutils kde-base/kmilo
+kde-base/kdeutils kde-base/kregexpeditor
+kde-base/kdeutils kde-base/ksim
+kde-base/kdeutils kde-base/ktimer
+kde-base/kdeutils kde-base/kwalletmanager
+kde-base/kdeutils kde-base/superkaramba
+kde-base/kdewebdev kde-base/kfilereplace
+kde-base/kdewebdev kde-base/kimagemapeditor
+kde-base/kdewebdev kde-base/klinkstatus
+kde-base/kdewebdev kde-base/kommander
+kde-base/kdewebdev kde-base/kxsldbg
+kde-base/kdewebdev kde-base/quanta
+app-office/koffice app-office/karbon
+app-office/koffice app-office/kchart
+app-office/koffice app-office/kexi
+app-office/koffice app-office/kformula
+app-office/koffice app-office/kivio
+app-office/koffice app-office/koffice-data
+app-office/koffice app-office/koffice-libs
+app-office/koffice app-office/koffice-meta
+app-office/koffice app-office/koshell
+app-office/koffice app-office/kplato
+app-office/koffice app-office/kpresenter
+app-office/koffice app-office/krita
+app-office/koffice app-office/kspread
+app-office/koffice app-office/kugar
+app-office/koffice app-office/kword
+'
+
+# @FUNCTION: get-parent-package
+# @USAGE: < name of split-ebuild >
+# @DESCRIPTION:
+# accepts 1 parameter, the name of a split ebuild; echoes the name of its 
mother package
+get-parent-package() {
+       local parent child
+       while read parent child; do
+               if [[ ${child} == $1 ]]; then
+                       echo ${parent}
+                       return 0
+               fi
+       done <<EOF
+$KDE_DERIVATION_MAP
+EOF
+       die "Package $1 not found in KDE_DERIVATION_MAP, please report bug"
+}
+
+# @FUNCTION: get-child-packages
+# @USAGE: < name of monolithic package >
+# @DESCRIPTION:
+# accepts 1 parameter, the name of a monolithic package; echoes the names of 
all ebuilds derived from it
+get-child-packages() {
+       local parent child
+       while read parent child; do
+               [[ ${parent} == $1 ]] && echo -n "${child} "
+       done <<EOF
+$KDE_DERIVATION_MAP
+EOF
+}
+
+# @FUNCTION: is-parent-package
+# @USAGE: < name >
+# @RETURN: 0 if <name> is a parent package, otherwise 1
+is-parent-package() {
+       local parent child
+       while read parent child; do
+               [[ "${parent}" == "$1" ]] && return 0
+       done <<EOF
+$KDE_DERIVATION_MAP
+EOF
+       return 1
+}
+
+# ---------------------------------------------------------------
+# kde/qt directory management etc. functions, was kde-dirs.ebuild
+# ---------------------------------------------------------------
+
+# @FUNCTION: need-kde
+# @USAGE: < version >
+# @DESCRIPTION:
+# Sets the correct DEPEND and RDEPEND for the needed kde < version >. Also 
takes
+# care of the correct Qt-version and correct RDEPEND handling.
+need-kde() {
+       debug-print-function $FUNCNAME "$@"
+
+       KDEVER="$1"
+
+       # determine install locations
+       set-kdedir ${KDEVER}
+
+       if [[ "${RDEPEND-unset}" != "unset" ]]; then
+               x_DEPEND="${RDEPEND}"
+       else
+               x_DEPEND="${DEPEND}"
+       fi
+       if [[ -n "${KDEBASE}" ]]; then
+               # If we're a kde-base package, we need at least our own version 
of kdelibs.
+               # Note: we only set RDEPEND if it is already set, otherwise
+               # we break packages relying on portage copying RDEPEND from 
DEPEND.
+               DEPEND="${DEPEND} ~kde-base/kdelibs-$PV"
+               RDEPEND="${x_DEPEND} ~kde-base/kdelibs-${PV}"
+       else
+               # Things outside kde-base need a minimum version,
+               # but kde-base/kdelibs:kde-4 mustn't satisfy it.
+               min-kde-ver ${KDEVER}
+               DEPEND="${DEPEND} =kde-base/kdelibs-3.5*"
+               RDEPEND="${x_DEPEND} =kde-base/kdelibs-3.5*"
+       fi
+
+       qtver-from-kdever ${KDEVER}
+       need-qt ${selected_version}
+
+       if [[ -n "${KDEBASE}" ]]; then
+               SLOT="$KDEMAJORVER.$KDEMINORVER"
+       else
+               : ${SLOT="0"}
+       fi
+}
+
+# @FUNCTION: set-kdedir
+# @USAGE: < version >
+# @DESCRIPTION:
+# Sets the right directories for the kde <version> wrt what kind of package 
will
+# be installed, e. g. third-party-apps, kde-base-packages, ...
+set-kdedir() {
+       debug-print-function $FUNCNAME "$@"
+
+
+       # set install location:
+       # - 3rd party apps go into /usr, and have SLOT="0".
+       # - kde-base category ebuilds go into /usr/kde/$MAJORVER.$MINORVER,
+       # and have SLOT="$MAJORVER.$MINORVER".
+       # - kde-base category cvs ebuilds have major version 5 and go into
+       # /usr/kde/cvs; they have SLOT="cvs".
+       # - Backward-compatibility exceptions: all kde2 packages (kde-base or 
otherwise)
+       # go into /usr/kde/2. kde 3.0.x goes into /usr/kde/3 (and not 3.0).
+       # - kde-base category ebuilds always depend on their exact matching 
version of
+       # kdelibs and link against it. Other ebuilds link aginst the latest one 
found.
+       # - This function exports $PREFIX (location to install to) and $KDEDIR
+       # (location of kdelibs to link against) for all ebuilds.
+       #
+       # -- Overrides - deprecated but working for now: --
+       # - If $KDEPREFIX is defined (in the profile or env), it overrides 
everything
+       # and both base and 3rd party kde stuff goes in there.
+       # - If $KDELIBSDIR is defined, the kdelibs installed in that location 
will be
+       # used, even by kde-base packages.
+
+       # get version elements
+       IFSBACKUP="$IFS"
+       IFS=".-_"
+       for x in $1; do
+               if [[ -z "$KDEMAJORVER" ]]; then KDEMAJORVER=$x
+               else if [[ -z "$KDEMINORVER" ]]; then KDEMINORVER=$x
+               else if [[ -z "$KDEREVISION" ]]; then KDEREVISION=$x
+               fi; fi; fi
+       done
+       [[ -z "$KDEMINORVER" ]] && KDEMINORVER="0"
+       [[ -z "$KDEREVISION" ]] && KDEREVISION="0"
+       IFS="$IFSBACKUP"
+       debug-print "$FUNCNAME: version breakup: KDEMAJORVER=$KDEMAJORVER 
KDEMINORVER=$KDEMINORVER KDEREVISION=$KDEREVISION"
+
+       # install prefix
+       if [[ -n "$KDEPREFIX" ]]; then
+               export PREFIX="$KDEPREFIX"
+       else
+               if  [[ -z "$KDEBASE" ]]; then
+                       PREFIX="/usr/kde/3.5"
+               else
+                       case $KDEMAJORVER.$KDEMINORVER in
+                               3*) export PREFIX="/usr/kde/3.5";;
+                               5.0) export PREFIX="/usr/kde/svn";;
+                               *) die "failed to set PREFIX";;
+                       esac
+               fi
+       fi
+
+       # kdelibs location
+       if [[ -n "$KDELIBSDIR" ]]; then
+               export KDEDIR="$KDELIBSDIR"
+       else
+               if [[ -z "$KDEBASE" ]]; then
+                       # find the latest kdelibs installed
+                       for x in /usr/kde/{svn,3.5} "${PREFIX}" \
+                               "${KDE3LIBSDIR}" "${KDELIBSDIR}" "${KDE3DIR}" 
"${KDEDIR}" /usr/kde/*; do
+                               if [[ -f "${x}/include/kwin.h" ]]; then
+                                       debug-print found
+                                       export KDEDIR="$x"
+                                       break
+                               fi
+                       done
+               else
+                       # kde-base ebuilds must always use the exact version of 
kdelibs they came with
+                       case $KDEMAJORVER.$KDEMINORVER in
+                               3*) export KDEDIR="/usr/kde/3.5";;
+                               5.0) export KDEDIR="/usr/kde/svn";;
+                               *) die "failed to set KDEDIR";;
+                       esac
+               fi
+       fi
+
+       debug-print "$FUNCNAME: Will use the kdelibs installed in $KDEDIR, and 
install into $PREFIX."
+}
+
+# @FUNCTION: need-qt
+# @USAGE: < version >
+# @DESCRIPTION:
+# Sets the DEPEND and RDEPEND for Qt <version>.
+need-qt() {
+       debug-print-function $FUNCNAME "${@}"
+
+       QTVER="$1"
+
+       QT=qt
+
+       if [[ "${RDEPEND-unset}" != "unset" ]]; then
+               x_DEPEND="${RDEPEND}"
+       else
+               x_DEPEND="${DEPEND}"
+       fi
+
+       case ${QTVER} in
+               3*)     DEPEND="${DEPEND} =x11-libs/qt-meta-3*"
+                       RDEPEND="${RDEPEND} =x11-libs/qt-meta-3*"
+                       ;;
+               *)      echo "!!! error: $FUNCNAME() called with invalid 
parameter: \"$QTVER\", please report bug" && exit 1;;
+       esac
+
+}
+
+# @FUNCTION: set-qtdir
+# @DESCRIPTION:
+# This function is not needed anymore.
+set-qtdir() {
+       :
+}
+
+# @FUNCTION: qtver-from-kdever
+# @USAGE: < kde-version >
+# @DESCRIPTION:
+# returns minimal qt version needed for specified kde version
+qtver-from-kdever() {
+       debug-print-function $FUNCNAME "$@"
+
+       local ver
+
+       case $1 in
+               3.1*)   ver=3.1;;
+               3.2*)   ver=3.2;;
+               3.3*)   ver=3.3;;
+               3.4*)   ver=3.3;;
+               3.5*)   ver=3.3;;
+               3*)     ver=3.0.5;;
+               5)      ver=3.3;; # cvs version
+               *)      echo "!!! error: $FUNCNAME called with invalid 
parameter: \"$1\", please report bug" && exit 1;;
+       esac
+
+       selected_version="$ver"
+
+}
+
+min-kde-ver() {
+       debug-print-function $FUNCNAME "$@"
+
+       case $1 in
+               3.0*)                   selected_version="3.0";;
+               3.1*)                   selected_version="3.1";;
+               3.2*)                   selected_version="3.2";;
+               3.3*)                   selected_version="3.3";;
+               3.4*)                   selected_version="3.4";;
+               3.5*)                   selected_version="3.5";;
+               3*)                     selected_version="3.0";;
+               5)                      selected_version="5";;
+               *)                      echo "!!! error: $FUNCNAME() called 
with invalid parameter: \"$1\", please report bug" && exit 1;;
+       esac
+
+}
+
+# @FUNCTION: kde_sandbox_patch
+# @USAGE: < dir > [ dir ] [ dir ] [...]
+# @DESCRIPTION:
+# generic makefile sed for sandbox compatibility. for some reason when the kde 
makefiles (of many packages
+# and versions) try to chown root and chmod 4755 some binaries (after 
installing, target install-exec-local),
+# they do it to the files in $(bindir), not $(DESTDIR)/$(bindir). Most of 
these have been fixed in latest cvs
+# but a few remain here and there.
+#
+# Pass a list of dirs to sed, Makefile.{am,in} in these dirs will be sed'ed.
+# This should be harmless if the makefile doesn't need fixing.
+kde_sandbox_patch() {
+       debug-print-function $FUNCNAME "$@"
+
+       while [[ -n "$1" ]]; do
+       # can't use dosed, because it only works for things in ${D}, not ${S}
+       cd $1
+       for x in Makefile.am Makefile.in Makefile
+       do
+               if [[ -f "$x" ]]; then
+                       echo Running sed on $x
+                       cp $x ${x}.orig
+                       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}
+                       rm ${x}.orig
+               fi
+       done
+       shift
+       done
+
+}
+
+# @FUNCTION: kde_remove_flag
+# @USAGE: < dir > < flag >
+# @DESCRIPTION:
+# remove an optimization flag from a specific subdirectory's makefiles.
+# currently kdebase and koffice use it to compile certain subdirs without
+# -fomit-frame-pointer which breaks some things.
+kde_remove_flag() {
+       debug-print-function $FUNCNAME "$@"
+
+       cd "${S}"/${1} || die "cd to '${S}/${1}' failed."
+       [[ -n "$2" ]] || die "missing argument to kde_remove_flag"
+
+       cp Makefile Makefile.orig
+       sed -e "/CFLAGS/ s/${2}//g
+/CXXFLAGS/ s/${2}//g" Makefile.orig > Makefile
+
+       cd "${OLDPWD}"
+
+}
+
+buildsycoca() {
+       [[ $EBUILD_PHASE != postinst ]] && [[ $EBUILD_PHASE != postrm ]] && \
+               die "buildsycoca() has to be calles in pkg_postinst() and 
pkg_postrm()."
+
+       if [[ -x ${KDEDIR}/bin/kbuildsycoca ]] && [[ -z ${ROOT} || ${ROOT} == 
"/" ]] ; then
+               # First of all, make sure that the /usr/share/services 
directory exists
+               # and it has the right permissions
+               mkdir -p /usr/share/services
+               chown root:0 /usr/share/services
+               chmod 0755 /usr/share/services
+
+               ebegin "Running kbuildsycoca to build global database"
+               # Filter all KDEDIRs not belonging to the current SLOT from 
XDG_DATA_DIRS
+               # before running kbuildsycoca. This makes sure they don't show 
up in the
+               # 3.5 K-menu unless the user manually adds them.
+               XDG_DATA_DIRS="/usr/share:${KDEDIR}/share:/usr/local/share"
+               "${KDEDIR}"/bin/kbuildsycoca --global --noincremental &> 
/dev/null
+               eend $?
+       fi
+}
+
+postprocess_desktop_entries() {
+       [[ $EBUILD_PHASE != preinst ]] && [[ $EBUILD_PHASE != install ]] && \
+               die "postprocess_desktop_entries() has to be called in 
src_install() or pkg_preinst()."
+
+       if [[ -d ${D}${PREFIX}/share/applnk ]] ; then
+               # min/max depth is _important_ as it excludes legacy KDE stuff. 
Moving it would cause breakage.
+               local desktop_entries="$(find "${D}${PREFIX}/share/applnk" 
-mindepth 2 -maxdepth 2 \
+                                                                       -name 
'*\.desktop' -not -path '*.hidden*' 2>/dev/null)"
+
+               if [[ -n ${desktop_entries} ]]; then
+                       for entry in ${desktop_entries} ; do
+                               if ! [[ -f 
"${D}${PREFIX}"/share/applications/kde/${entry##*/} ]] ; then
+                                       dodir "${PREFIX}"/share/applications/kde
+                                       mv ${entry} 
"${D}${PREFIX}"/share/applications/kde
+                               fi
+                       done
+               fi
+       fi
+
+       validate_desktop_entries "${PREFIX}"/share/applications
+}
+
+# is this a kde-base ebuid?
+if [[ "${CATEGORY}" == "kde-base" ]]; then
+       debug-print "${ECLASS}: KDEBASE ebuild recognized"
+       export KDEBASE="true"
+       export KDEREVISION
+fi

Added: trunk/overlays/proaudio/eclass/kde.eclass
===================================================================
--- trunk/overlays/proaudio/eclass/kde.eclass                           (rev 0)
+++ trunk/overlays/proaudio/eclass/kde.eclass   2011-04-16 22:42:24 UTC (rev 
1925)
@@ -0,0 +1,608 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde.eclass,v 1.223 2009/05/12 
12:55:46 tampakrap Exp $
+
+# @ECLASS: kde.eclass
+# @MAINTAINER:
+# [email protected]
+#
+# original author Dan Armak <[email protected]>
+#
+# Revisions Caleb Tennis <[email protected]>
+# @BLURB: The kde eclass is inherited by all kde-* eclasses.
+# @DESCRIPTION:
+# This eclass is inherited by all kde-* eclasses. Few ebuilds inherit straight 
from here.
+
+[[ -z ${WANT_AUTOMAKE} ]] && WANT_AUTOMAKE="1.9"
+
+inherit base eutils kde-functions flag-o-matic libtool autotools
+
+DESCRIPTION="Based on the $ECLASS eclass"
+HOMEPAGE="http://www.kde.org/";
+IUSE="debug elibc_FreeBSD"
+
+
+if [[ ${CATEGORY} == "kde-base" ]]; then
+       if [[ ${PV##*.} -lt 10 ]] ; then
+               # Keep old ebuilds as is
+               IUSE="${IUSE} kdeenablefinal"
+       else
+               # Don't use --enable-final anymore. Does only cause problems 
for users and
+               # as an unwelcome extra invalid bug reports, without any 
reasonable benefit.
+
+               # Get the aRts dependencies right - finally.
+               case "${PN}" in
+                       
blinken|juk|kalarm|kanagram|kbounce|kcontrol|konq-plugins|kscd|kscreensaver|kttsd|kwifimanager|kdelibs)
 ARTS_REQUIRED="" ;;
+                       
artsplugin-*|kaboodle|kasteroids|kdemultimedia-arts|kolf|krec|ksayit|noatun*) 
ARTS_REQUIRED="yes" ;;
+                       *) ARTS_REQUIRED="never" ;;
+               esac
+       fi
+fi
+
+if [[ ${ARTS_REQUIRED} != "yes" && ${ARTS_REQUIRED} != "never" && ${PN} != 
"arts" ]]; then
+       IUSE="${IUSE} arts"
+fi
+
+# @ECLASS-VARIABLE: KDE_S
+# @DESCRIPTION:
+# Like the 'normal' ${S} this variable takes the path to the temporary build
+# directory. If unset ${S} will be used.
+
+# @ECLASS-VARIABLE: USE_KEG_PACKAGING
+# @DESCRIPTION:
+# Set USE_KEG_PACKAGING=1 before inheriting if the package use extragear-like
+# packaging and then supports ${LANGS} and ${LANGS_DOC} variables. By default
+# translations are found in the po subdirectory of ${S}. Set KEG_PO_DIR to
+# override this default.
+if [[ -n ${USE_KEG_PACKAGING} && -n "${LANGS}${LANGS_DOC}" ]]; then
+       for lang in ${LANGS} ${LANGS_DOC}; do
+               IUSE="${IUSE} linguas_${lang}"
+       done
+fi
+
+DEPEND="sys-devel/make
+       dev-util/pkgconfig
+       dev-lang/perl"
+
+if [[ ${CATEGORY} != "kde-base" ]] || [[ ${CATEGORY} == "kde-base" &&  
${PV##*.} -lt 10 ]] ; then
+       DEPEND="${DEPEND}
+               x11-libs/libXt
+               x11-proto/xf86vidmodeproto
+               xinerama? ( x11-proto/xineramaproto )"
+       RDEPEND="xinerama? ( x11-libs/libXinerama )"
+       IUSE="${IUSE} xinerama"
+else
+       RDEPEND=""
+fi
+
+if [[ ${ARTS_REQUIRED} == "yes" ]]; then
+       DEPEND="${DEPEND} kde-base/arts"
+       RDEPEND="${RDEPEND} kde-base/arts"
+elif [[ ${ARTS_REQUIRED} != "never" && ${PN} != "arts" ]]; then
+       DEPEND="${DEPEND} arts? ( kde-base/arts )"
+       RDEPEND="${RDEPEND} arts? ( kde-base/arts )"
+fi
+
+# overridden in other places like kde-dist, kde-source and some individual 
ebuilds
+SLOT="0"
+
+# @ECLASS-VARIABLE: ARTS_REQUIRED
+# @DESCRIPTION:
+# Is aRTs-support required or not? Possible values are 'yes', 'never'. 
Otherwise
+# leave this variable unset. This results in an arts USE flag.
+
+# @FUNCTION: kde_pkg_setup
+# @DESCRIPTION:
+# Some basic test about arts-support. It also filters some compiler flags
+kde_pkg_setup() {
+       if [[ ${PN} != "arts" ]] && [[ ${PN} != "kdelibs" ]] ; then
+               if [[ ${ARTS_REQUIRED} == 'yes' ]] || \
+                       ( [[ ${ARTS_REQUIRED} != "never" ]] && use arts )  ; 
then
+                       if ! built_with_use =kde-base/kdelibs-3.5* arts ; then
+                               if has arts ${IUSE} && use arts; then
+                                       eerror "You are trying to compile 
${CATEGORY}/${PF} with the \"arts\" USE flag enabled."
+                               else
+                                       eerror "The package ${CATEGORY}/${PF} 
you're trying to merge requires aRTs."
+                               fi
+                               eerror "However, $(best_version 
=kde-base/kdelibs-3.5*) was compiled with the arts USE flag disabled."
+                               eerror
+                               if has arts ${IUSE} && use arts; then
+                                       eerror "You must either disable this 
USE flag, or recompile"
+                               else
+                                       eerror "To build this package you have 
to recompile"
+                               fi
+                               eerror "$(best_version =kde-base/kdelibs-3.5*) 
with the arts USE flag enabled."
+                               die "kdelibs missing arts"
+                       fi
+               fi
+       fi
+
+       if [[ "${PN}" = "kdelibs" ]]; then
+               use doc && if ! built_with_use =x11-libs/qt-meta-3* doc ; then
+                       eerror "Building kdelibs with the doc USE flag requires 
qt to be built with the doc USE flag."
+                       eerror "Please re-emerge qt-3 with this USE flag 
enabled."
+               fi
+       fi
+
+       # Let filter visibility flags that will *really* hurt your KDE
+       # _experimental_ support for this is enabled by kdehiddenvisibility 
useflag
+       filter-flags -fvisibility=hidden -fvisibility-inlines-hidden
+}
+
+# @FUNCTION: kde_src_unpack
+# @DESCRIPTION:
+# This function unpacks the sources.
+# For EAPI 0 and 1 it allso runs kde_src_prepare.
+kde_src_unpack() {
+       debug-print-function $FUNCNAME "$@"
+       [[ -z "$*" ]] || die "$FUNCNAME no longer supports stages."
+       [[ -z "${KDE_S}" ]] && KDE_S="${S}"
+       # Don't use base_src_unpack, as that will call base_src_prepare
+       # in the wrong place
+       [[ -d "${KDE_S}" ]] || unpack ${A}
+       case ${EAPI:-0} in
+               0|1) kde_src_prepare ;;
+       esac
+}
+
+# @FUNCTION: kde_src_prepare
+# @DESCRIPTION:
+# This function patches the sources. The patches need to be named
+# $PN-$PV-*{diff,patch}
+#
+# This function also handles the linguas if extragear-like packaging is 
enabled.
+# (See USE_KEG_PACKAGING)
+kde_src_prepare() {
+       debug-print-function $FUNCNAME "$@"
+       local PATCHDIR="${WORKDIR}/patches/"
+
+       # Unpack first and deal with KDE patches after examing possible patch 
sets.
+       # To be picked up, patches need to be named $PN-$PV-*{diff,patch} and be
+       # placed in $PATCHDIR. Monolithic ebuilds will use the split ebuild 
patches.
+       if [[ -d "${PATCHDIR}" ]] ; then
+               local packages p f
+               if is-parent-package ${CATEGORY}/${PN} ; then
+                       packages="$(get-child-packages ${CATEGORY}/${PN})"
+                       packages="${packages//${CATEGORY}\//} ${PN}"
+               else
+                       packages="${PN}"
+               fi
+               if [[ -n ${PATCHES[@]} && $(declare -p PATCHES) != 'declare -a 
'* ]]; then
+                       PATCHES=(${PATCHES})
+               fi
+               for p in ${packages}; do
+                       for f in "${PATCHDIR}"/${p}-${PV}-*{diff,patch}; do
+                               [[ -e ${f} ]] && PATCHES+=("${f}")
+                       done
+                       if [[ -n "${KDEBASE}" ]]; then
+                               for f in 
"${PATCHDIR}"/${p}-${SLOT}-*{diff,patch}; do
+                                       [[ -e ${f} ]] && PATCHES+=("${f}")
+                               done
+                       fi
+               done
+       fi
+
+       base_src_prepare
+
+       # if extragear-like packaging is enabled, set the translations and the
+       # documentation depending on LINGUAS settings
+       if [[ -n ${USE_KEG_PACKAGING} ]]; then
+               if [[ -z ${LINGUAS} ]]; then
+                       einfo "You can drop some of the translations of the 
interface and"
+                       einfo "documentation by setting the \${LINGUAS} 
variable to the"
+                       einfo "languages you want installed."
+                       einfo
+                       einfo "Enabling all languages"
+               else
+                       # we sanitise LINGUAS to avoid issues when a user 
specifies the same
+                       # linguas twice. bug #215016.
+                       local sanitised_linguas=$(echo "${LINGUAS}" | tr 
'[[:space:]]' '\n' | sort | uniq)
+                       if [[ -n ${LANGS} ]]; then
+                               MAKE_PO=$(echo "${sanitised_linguas} ${LANGS}" 
| tr '[[:space:]]' '\n' | sort | uniq -d | tr '\n' ' ')
+                               einfo "Enabling translations for: ${MAKE_PO}"
+                               sed -i -e "s:^SUBDIRS[ \t]*=.*:SUBDIRS = 
${MAKE_PO}:" "${KDE_S}/${KEG_PO_DIR:-po}/Makefile.am" \
+                                       || die "sed for locale failed"
+                               rm -f "${KDE_S}/configure"
+                       fi
+
+                       if [[ -n ${LANGS_DOC} ]]; then
+                               MAKE_DOC=$(echo "${sanitised_linguas} 
${LANGS_DOC}" | tr '[[:space:]]' '\n' | sort | uniq -d | tr '\n' ' ')
+                               einfo "Enabling documentation for: ${MAKE_DOC}"
+                               [[ -n ${MAKE_DOC} ]] && [[ -n ${DOC_DIR_SUFFIX} 
]] && MAKE_DOC=$(echo "${MAKE_DOC}" | tr '\n' ' ') && MAKE_DOC="${MAKE_DOC// 
/${DOC_DIR_SUFFIX} }"
+                               sed -i -e "s:^SUBDIRS[ \t]*=.*:SUBDIRS = 
${MAKE_DOC} ${PN}:" \
+                                       "${KDE_S}/doc/Makefile.am" || die "sed 
for locale failed"
+                               rm -f "${KDE_S}/configure"
+                       fi
+               fi
+       fi
+
+       # fix the 'languageChange undeclared' bug group: touch all .ui files, 
so that the
+       # makefile regenerate any .cpp and .h files depending on them.
+       cd "${KDE_S}"
+       debug-print "$FUNCNAME: Searching for .ui files in ${PWD}"
+       UIFILES="$(find . -name '*.ui' -print)"
+       debug-print "$FUNCNAME: .ui files found:"
+       debug-print "$UIFILES"
+       # done in two stages, because touch doens't have a silent/force mode
+       if [[ -n "$UIFILES" ]]; then
+               debug-print "$FUNCNAME: touching .ui files..."
+               touch $UIFILES
+       fi
+
+       if [[ -d "${WORKDIR}/admin" ]] && [[ -d "${KDE_S}/admin" ]]; then
+               ebegin "Updating admin/ directory..."
+               rm -rf "${KDE_S}/admin" "${KDE_S}/configure" || die "Unable to 
remove old admin/ directory"
+               ln -s "${WORKDIR}/admin" "${KDE_S}/admin" || die "Unable to 
symlink the new admin/ directory"
+               eend 0
+       fi
+}
+
+# @FUNCTION: kde_src_configure
+# @USAGE: [ myconf ] [ configure ] [ all ]
+# @DESCRIPTION:
+# This function compiles the sources. It takes care of "cannot write to .kde
+# or .qt"-problem due to sandbox and some other sandbox issues.
+#
+# If no argument is given, all is assumed.
+kde_src_configure() {
+       debug-print-function $FUNCNAME "$@"
+
+       [[ -z "$1" ]] && kde_src_configure all
+
+       [[ -z "${KDE_S}" ]] && KDE_S="${S}"
+       cd "${KDE_S}"
+
+       export kde_widgetdir="$KDEDIR/$(get_libdir)/kde3/plugins/designer"
+
+       # fix the sandbox errors "can't writ to .kde or .qt" problems.
+       # this is a fake homedir that is writeable under the sandbox, so that 
the build process
+       # can do anything it wants with it.
+       REALHOME="$HOME"
+       mkdir -p "${T}"/fakehome/.kde
+       mkdir -p "${T}"/fakehome/.qt
+       export HOME="${T}"/fakehome
+       addwrite "${QTDIR}/etc/settings"
+
+       # Fix bug 96177: if KDEROOTHOME is defined, the ebuild accesses the 
real homedir via it, and not our exported $HOME
+       unset KDEHOME
+       unset KDEROOTHOME
+
+       # things that should access the real homedir
+       [[ -d "$REALHOME/.ccache" ]] && ln -sf "$REALHOME/.ccache" "$HOME/"
+
+       while [[ "$1" ]]; do
+
+               case $1 in
+                       myconf)
+                               debug-print-section myconf
+                               if [[ ${CATEGORY} != "kde-base" ]] || [[ 
${CATEGORY} == "kde-base" &&  ${PV##*.} -lt 10 ]] ; then
+                                       myconf+=" --with-x --enable-mitshm 
$(use_with xinerama) --with-qt-dir=${QTDIR} --enable-mt 
--with-qt-libraries=${QTDIR}/$(get_libdir)"
+                               else
+                                       myconf+=" --with-qt-dir=${QTDIR} 
--enable-mt --with-qt-libraries=${QTDIR}/$(get_libdir)"
+                               fi
+                               # calculate dependencies separately from 
compiling, enables ccache to work on kde compiles
+                               myconf="$myconf --disable-dependency-tracking"
+                               if use debug ; then
+                                       myconf="$myconf --enable-debug=full 
--with-debug"
+                               else
+                                       myconf="$myconf --disable-debug 
--without-debug"
+                               fi
+                               if hasq kdeenablefinal ${IUSE}; then
+                                       myconf="$myconf $(use_enable 
kdeenablefinal final)"
+                               fi
+                               if [[ ${ARTS_REQUIRED} == "never" ]]; then
+                                       myconf="$myconf --without-arts"
+                               elif [[ ${ARTS_REQUIRED} != 'yes' && ${PN} != 
"arts" ]]; then
+                                       # This might break some external 
package until
+                                       # ARTS_REQUIRED="yes" is set on them, 
KDE 3.2 is no more
+                                       # supported anyway.
+                                       myconf="$myconf $(use_with arts)"
+                               fi
+                               debug-print "$FUNCNAME: myconf: set to 
${myconf}"
+                               ;;
+                       configure)
+                               debug-print-section configure
+                               debug-print "$FUNCNAME::configure: 
myconf=$myconf"
+
+                               export WANT_AUTOMAKE
+
+                               # rebuild configure script, etc
+                               # This can happen with e.g. a cvs snapshot
+                               if [[ ! -f "./configure" ]]; then
+                                       # This is needed to fix building with 
autoconf 2.60.
+                                       # Many thanks to who preferred such a 
stupid check rather
+                                       # than a working arithmetic comparison.
+                                       if [[ -f admin/cvs.sh ]]; then
+                                               sed -i -e '/case 
$AUTO\(CONF\|HEADER\)_VERSION in/,+1 s/2\.5/2.[56]/g' \
+                                                       admin/cvs.sh
+                                       fi
+
+                                       # Replace the detection script with a 
dummy, let our wrappers do the work
+                                       if [[ -f admin/detect-autoconf.sh ]]; 
then
+                                               cat - > 
admin/detect-autoconf.sh <<EOF
+#!/bin/sh
+export AUTOCONF="autoconf"
+export AUTOHEADER="autoheader"
+export AUTOM4TE="autom4te"
+export AUTOMAKE="automake"
+export ACLOCAL="aclocal"
+export WHICH="which"
+EOF
+                                       fi
+
+                                       # Make build succeed with 
>=autoconf-2.65, see http://tinyurl.com/yc4nbhq
+                                       if [[ -f admin/acinclude.m4.in ]] && \
+                                               [[ ! -f ${T}/acinclude.m4.in 
]]; then
+                                               cp admin/acinclude.m4.in "${T}"
+                                               einfo "Patching 
admin/acinclude.m4.in"
+                                               patch -f --ignore-whitespace 
admin/acinclude.m4.in <<'EOF'
+--- admin/acinclude.m4.in
++++ admin/acinclude.m4.in
+@@ -3081,6 +3081,13 @@
+ fi
+ ])
+
++AC_DEFUN([GENTOO_DUMMY_CFLAGS],
++[
++  dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
++  CFLAGS=" $CFLAGS"
++])
++AC_BEFORE([GENTOO_DUMMY_CFLAGS],[AC_PROG_CC])
++
+ AC_DEFUN([AC_CHECK_COMPILERS],
+ [
+   AC_ARG_ENABLE(debug,
+@@ -3141,12 +3148,10 @@
+        [kde_use_profiling="no"]
+   )
+
+-  dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
+-  CFLAGS=" $CFLAGS"
+-
+-  AC_PROG_CC
++  AC_REQUIRE([GENTOO_DUMMY_CFLAGS])
++  AC_REQUIRE([AC_PROG_CC])
+
+-  AC_PROG_CPP
++  AC_REQUIRE([AC_PROG_CPP])
+
+   if test "$GCC" = "yes"; then
+        if test "$kde_use_debug_code" != "no"; then
+@@ -3176,7 +3181,7 @@
+
+   CXXFLAGS=" $CXXFLAGS"
+
+-  AC_PROG_CXX
++  AC_REQUIRE([AC_PROG_CXX])
+
+   KDE_CHECK_FOR_BAD_COMPILER
+
+EOF
+                                               if [[ $? != 0 ]]; then
+                                                       ewarn "Failed to patch 
admin/acinclude.m4.in"
+                                                       cp 
"${T}/acinclude.m4.in" admin/acinclude.m4.in
+                                               fi
+                                       fi
+                                       for x in Makefile.cvs 
admin/Makefile.common; do
+                                               if [[ -f "$x" && -z "$makefile" 
]]; then makefile="$x"; fi
+                                       done
+                                       if [[ -f "$makefile" ]]; then
+                                               debug-print "$FUNCNAME: 
configure: generating configure script, running make -f $makefile"
+                                               emake -f $makefile
+                                       fi
+                                       [[ -f "./configure" ]] || die "no 
configure script found, generation unsuccessful"
+                               fi
+
+                               export PATH="${KDEDIR}/bin:${PATH}"
+
+                               # configure doesn't need to know about the 
other KDEs installed.
+                               # in fact, if it does, it sometimes tries to 
use the wrong dcopidl, etc.
+                               # due to the messed up way configure searches 
for things
+                               export KDEDIRS="${PREFIX}:${KDEDIR}"
+
+                               # Visiblity stuff is broken. Just disable it 
when it's present.
+                               export kde_cv_prog_cxx_fvisibility_hidden=no
+
+                               if hasq kdehiddenvisibility ${IUSE} && use 
kdehiddenvisibility; then
+                                       if [[ 
$(gcc-major-version)$(gcc-minor-version) -ge 41 ]]; then
+                                               if [[ ${PN} != "kdelibs" && 
${PN} != "arts" ]] && \
+                                                       ! fgrep -q "#define 
__KDE_HAVE_GCC_VISIBILITY" "${KDEDIR}/include/kdemacros.h"; then
+
+                                                       eerror "You asked to 
enable hidden visibility, but your kdelibs was"
+                                                       eerror "built without 
its support. Please rebuild kdelibs with the"
+                                                       eerror 
"kdehiddenvisibility useflag enabled."
+                                                       die "kdelibs without 
hidden visibility"
+                                               else
+                                                       unset 
kde_cv_prog_cxx_fvisibility_hidden
+                                                       myconf="$myconf 
$(use_enable kdehiddenvisibility gcc-hidden-visibility)"
+                                               fi
+                                       else
+                                               eerror "You're trying to enable 
hidden visibility, but"
+                                               eerror "you are using an old 
GCC version. Hidden visibility"
+                                               eerror "can be enabled only 
with GCC 4.1 and later."
+                                       fi
+                               fi
+
+                               # If we're in a kde-base ebuild, set the 
prefixed directories to
+                               # override the ones set by econf.
+                               if [[ -n ${PREFIX} && ${PREFIX} != "/usr" ]]; 
then
+                                       myconf="${myconf} --prefix=${PREFIX}
+                                               --mandir=${PREFIX}/share/man
+                                               --infodir=${PREFIX}/share/info
+                                               --datadir=${PREFIX}/share
+                                               --sysconfdir=${PREFIX}/etc"
+                               fi
+
+                               # Use libsuffix to keep KDE happy, the --libdir 
parameter get
+                               # still honored.
+                               if [[ $(get_libdir) != "lib" ]] ; then
+                                       myconf="${myconf} 
--enable-libsuffix=$(get_libdir | sed s/lib//)"
+                               fi
+
+                               export PATH="${KDEDIR}/bin:${PATH}"
+
+                               # The configure checks for kconfig_compiler do 
not respect PATH
+                               export 
KCONFIG_COMPILER="${KDEDIR}/bin/kconfig_compiler"
+
+                               # Sometimes it doesn't get the include and 
library paths right,
+                               # so hints them.
+                               if [[ -z ${PREFIX} || ${PREFIX} != ${KDEDIR} 
]]; then
+                                       myconf="${myconf} 
--with-extra-includes=${KDEDIR}/include
+                                               
--with-extra-libs=${KDEDIR}/$(get_libdir)"
+                               fi
+
+                               if grep "cope with newer libtools" 
"${KDE_S}/admin/ltconfig" &> /dev/null; then
+                                       einfo "Removing the dummy ltconfig 
file."
+                                       rm "${KDE_S}/admin/ltconfig"
+                               fi
+
+                               use elibc_FreeBSD && myconf="${myconf} 
--disable-pie"
+
+                               elibtoolize
+                               econf ${myconf}
+
+                               # Seems ./configure add -O2 by default but hppa 
don't want that but we need -ffunction-sections
+                               if [[ "${ARCH}" = "hppa" ]]
+                               then
+                                       einfo "Fixing Makefiles"
+                                       find "${KDE_S}" -name Makefile -print0 
| xargs -0 sed -i -e \
+                                               's:-O2:-ffunction-sections:g'
+                               fi
+                               ;;
+                       all)
+                               debug-print-section all
+                               kde_src_configure myconf configure
+                               ;;
+               esac
+
+       shift
+       done
+
+}
+# @FUNCTION: kde_src_compile
+# @USAGE: [ myconf ] [ configure ] [ make ] [ all ]
+# @DESCRIPTION:
+# This function compiles the sources. It takes care of "cannot write to .kde
+# or .qt"-problem due to sandbox and some other sandbox issues.
+#
+# If no argument is given, all is assumed.
+kde_src_compile() {
+       debug-print-function $FUNCNAME "$@"
+
+       [[ -z "$1" ]] && kde_src_compile all
+
+       [[ -z "${KDE_S}" ]] && KDE_S="${S}"
+       cd "${KDE_S}"
+       while [[ "$1" ]]; do
+               case $1 in
+                       make)
+                               debug-print-section make
+                               emake || die "died running emake, 
$FUNCNAME:make"
+                               ;;
+                       all)
+                               case ${EAPI:-0} in
+                                       0|1) kde_src_configure all ;;
+                               esac
+                               kde_src_compile make
+                               ;;
+                       *)
+                               case ${EAPI:-0} in
+                                       0|1) kde_src_configure $1 ;;
+                               esac
+                       ;;
+               esac
+
+               shift
+       done
+}
+
+# @FUNCTION: kde_src_install
+# @USAGE: [ make ] [ dodoc ] [ all ]
+# @DESCRIPTION:
+# This installs the software, including the right handling of the
+# "/usr/share/doc/kde"-dir, but it only installs AUTHORS, ChangeLog*, README*,
+# NEWS, and TODO (if available) as docs.
+#
+# If no argument is given, all is assumed
+kde_src_install() {
+       debug-print-function $FUNCNAME "$@"
+
+       [[ -z "$1" ]] && kde_src_install all
+
+       [[ -z ${KDE_S} ]] && KDE_S="${S}"
+       cd "${KDE_S}"
+
+       # Ensure that KDE binaries take precedence
+       export PATH="${KDEDIR}/bin:${PATH}"
+
+       while [[ "$1" ]]; do
+
+               case $1 in
+                       make)
+                               debug-print-section make
+                               emake install DESTDIR="${D}" destdir="${D}" || 
die "died running make install, $FUNCNAME:make"
+                               ;;
+                       dodoc)
+                               debug-print-section dodoc
+                               for doc in AUTHORS ChangeLog* README* NEWS 
TODO; do
+                                       [[ -s "$doc" ]] && dodoc $doc
+                               done
+                               ;;
+                       all)
+                               debug-print-section all
+                               kde_src_install make dodoc
+                               ;;
+               esac
+
+       shift
+       done
+
+       if [[ -n ${KDEBASE} && "${PN}" != "arts" && -d 
"${D}"/usr/share/doc/${PF} ]]; then
+               # work around bug #97196
+               dodir /usr/share/doc/kde && \
+                       mv "${D}"/usr/share/doc/${PF} "${D}"/usr/share/doc/kde/ 
|| \
+                       die "Failed to move docs to kde/ failed."
+       fi
+}
+
+# @FUNCTION: slot_rebuild
+# @USAGE: [ list_of_packages_to_check ]
+# @RETURN: False, if no rebuild is required
+# @DESCRIPTION:
+# Unneeded and therefore deprecated for a long, long time now. Ebuilds are 
still
+# referencing it, so replacing with a stub.
+# Looks for packages in the supplied list of packages which have not been 
linked
+# against this kde SLOT. It does this by looking for lib*.la files that doesn't
+# contain the current ${KDEDIR}. If it finds any thus broken packages it prints
+# eerrors and return True.
+#
+# Thanks to Carsten Lohrke in bug 98425.
+slot_rebuild() {
+       :
+}
+
+# @FUNCTION: kde_pkg_preinst
+# @DESCRIPTION:
+# Calls postprocess_desktop_entries
+kde_pkg_preinst() {
+       postprocess_desktop_entries
+}
+
+# @FUNCTION: kde_pkg_postinst
+# @DESCRIPTION:
+# Calls buildsycoca
+kde_pkg_postinst() {
+       buildsycoca
+}
+
+# @FUNCTION: kde_pkg_postrm
+# @DESCRIPTION:
+# Calls buildsycoca
+kde_pkg_postrm() {
+       buildsycoca
+}
+
+case ${EAPI:-0} in
+       0|1) EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install 
pkg_postinst pkg_postrm pkg_preinst;;
+       2) EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure 
src_compile src_install pkg_postinst pkg_postrm pkg_preinst;;
+esac

Added: trunk/overlays/proaudio/eclass/qt3.eclass
===================================================================
--- trunk/overlays/proaudio/eclass/qt3.eclass                           (rev 0)
+++ trunk/overlays/proaudio/eclass/qt3.eclass   2011-04-16 22:42:24 UTC (rev 
1925)
@@ -0,0 +1,141 @@
+# Copyright 2005-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/eclass/qt3.eclass,v 1.41 2009/05/17 
15:17:03 hwoarang Exp $
+
+# @ECLASS: qt3.eclass
+# @MAINTAINER:
+# kde-sunset overlay maintainers
+# @BLURB: Eclass for Qt3 packages
+# @DESCRIPTION:
+# This eclass contains various functions that may be useful
+# when dealing with packages using Qt3 libraries.
+
+inherit toolchain-funcs versionator eutils
+
+QTPKG="x11-libs/qt-"
+QT3MAJORVERSIONS="3.3 3.2 3.1 3.0"
+QT3VERSIONS="3.3.8b-r1 3.3.8b 3.3.8-r4 3.3.8-r3 3.3.8-r2 3.3.8-r1 3.3.8 
3.3.6-r5 3.3.6-r4 3.3.6-r3 3.3.6-r2 3.3.6-r1 3.3.6 3.3.5-r1 3.3.5 3.3.4-r9 
3.3.4-r8 3.3.4-r7 3.3.4-r6 3.3.4-r5 3.3.4-r4 3.3.4-r3 3.3.4-r2 3.3.4-r1 3.3.4 
3.3.3-r3 3.3.3-r2 3.3.3-r1 3.3.3 3.3.2 3.3.1-r2 3.3.1-r1 3.3.1 3.3.0-r1 3.3.0 
3.2.3-r1 3.2.3 3.2.2-r1 3.2.2 3.2.1-r2 3.2.1-r1 3.2.1 3.2.0 3.1.2-r4 3.1.2-r3 
3.1.2-r2 3.1.2-r1 3.1.2 3.1.1-r2 3.1.1-r1 3.1.1 3.1.0-r3 3.1.0-r2 3.1.0-r1 
3.1.0"
+
+if [[ -z "${QTDIR}" ]]; then
+       export QTDIR="/usr/qt/3"
+fi
+
+addwrite "${QTDIR}/etc/settings"
+addpredict "${QTDIR}/etc/settings"
+
+# @FUNCTION: qt_min_version
+# @USAGE: [minimum version]
+# @DESCRIPTION:
+# This function is deprecated. Use slot dependencies instead.
+qt_min_version() {
+       local list=$(qt_min_version_list "$@")
+       ewarn "${CATEGORY}/${PF}: qt_min_version() is deprecated. Use slot 
dependencies instead."
+       if [[ ${list%% *} == "${list}" ]]; then
+               echo "${list}"
+       else
+               echo "|| ( ${list} )"
+       fi
+}
+
+qt_min_version_list() {
+       local MINVER="$1"
+       local VERSIONS=""
+
+       case "${MINVER}" in
+               3|3.0|3.0.0) VERSIONS="=${QTPKG}3*";;
+               3.1|3.1.0|3.2|3.2.0|3.3|3.3.0)
+                       for x in ${QT3MAJORVERSIONS}; do
+                               if $(version_is_at_least "${MINVER}" "${x}"); 
then
+                                       VERSIONS="${VERSIONS} =${QTPKG}${x}*"
+                               fi
+                       done
+                       ;;
+               3*)
+                       for x in ${QT3VERSIONS}; do
+                               if $(version_is_at_least "${MINVER}" "${x}"); 
then
+                                       VERSIONS="${VERSIONS} =${QTPKG}${x}"
+                               fi
+                       done
+                       ;;
+               *) VERSIONS="=${QTPKG}3*";;
+       esac
+
+       echo ${VERSIONS}
+}
+
+# @FUNCTION: eqmake3
+# @USAGE: [.pro file] [additional parameters to qmake]
+# @MAINTAINER:
+# Przemyslaw Maciag <[email protected]>
+# Davide Pesavento <[email protected]>
+# @DESCRIPTION:
+# Runs qmake on the specified .pro file (defaults to
+# ${PN}.pro if eqmake3 was called with no argument).
+# Additional parameters are passed unmodified to qmake.
+eqmake3() {
+       local LOGFILE="${T}/qmake-$$.out"
+       local projprofile="${1}"
+       [[ -z ${projprofile} ]] && projprofile="${PN}.pro"
+       shift 1
+
+       ebegin "Processing qmake ${projprofile}"
+
+       # file exists?
+       if [[ ! -f ${projprofile} ]]; then
+               echo
+               eerror "Project .pro file \"${projprofile}\" does not exist"
+               eerror "qmake cannot handle non-existing .pro files"
+               echo
+               eerror "This shouldn't happen - please send a bug report to 
bugs.gentoo.org"
+               echo
+               die "Project file not found in ${PN} sources"
+       fi
+
+       echo >> ${LOGFILE}
+       echo "******  qmake ${projprofile}  ******" >> ${LOGFILE}
+       echo >> ${LOGFILE}
+
+       # some standard config options
+       local configoptplus="CONFIG += no_fixpath"
+       local configoptminus="CONFIG -="
+       if has debug ${IUSE} && use debug; then
+               configoptplus="${configoptplus} debug"
+               configoptminus="${configoptminus} release"
+       else
+               configoptplus="${configoptplus} release"
+               configoptminus="${configoptminus} debug"
+       fi
+
+       ${QTDIR}/bin/qmake ${projprofile} \
+               QTDIR=${QTDIR} \
+               QMAKE=${QTDIR}/bin/qmake \
+               QMAKE_CC=$(tc-getCC) \
+               QMAKE_CXX=$(tc-getCXX) \
+               QMAKE_LINK=$(tc-getCXX) \
+               QMAKE_CFLAGS_RELEASE="${CFLAGS}" \
+               QMAKE_CFLAGS_DEBUG="${CFLAGS}" \
+               QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" \
+               QMAKE_CXXFLAGS_DEBUG="${CXXFLAGS}" \
+               QMAKE_LFLAGS_RELEASE="${LDFLAGS}" \
+               QMAKE_LFLAGS_DEBUG="${LDFLAGS}" \
+               "${configoptminus}" \
+               "${configoptplus}" \
+               QMAKE_RPATH= \
+               QMAKE_STRIP= \
+               ${@} >> ${LOGFILE} 2>&1
+
+       local result=$?
+       eend ${result}
+
+       # was qmake successful?
+       if [[ ${result} -ne 0 ]]; then
+               echo
+               eerror "Running qmake on \"${projprofile}\" has failed"
+               echo
+               eerror "This shouldn't happen - please send a bug report to 
bugs.gentoo.org"
+               echo
+               die "qmake failed on ${projprofile}"
+       fi
+
+       return ${result}
+}

Reply via email to