[proaudio] [1925] Eclasses from kde-sunset, needed for kde/qt3 programs |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/proaudio Archives
]
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:
+# kde@xxxxxxxxxx
+# Original author Dan Armak <danarmak@xxxxxxxxxx>
+#
+# @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:
+# kde@xxxxxxxxxx
+#
+# original author Dan Armak <danarmak@xxxxxxxxxx>
+#
+# Revisions Caleb Tennis <caleb@xxxxxxxxxx>
+# @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 <troll@xxxxxxxxxx>
+# Davide Pesavento <davidepesa@xxxxxxxxx>
+# @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}
+}