summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Callen <abcd@gentoo.org>2010-01-11 20:51:39 +0000
committerJonathan Callen <abcd@gentoo.org>2010-01-11 20:51:39 +0000
commitb1e90d3ac2aeafe15e39db6ac6752a24b16883ce (patch)
treec1b0e54e73860117241e952a83aaac5f90860184
parentFix installation of shared objects with USE=-python. Thanks to Davide Pesaven... (diff)
downloadgentoo-2-b1e90d3ac2aeafe15e39db6ac6752a24b16883ce.tar.gz
gentoo-2-b1e90d3ac2aeafe15e39db6ac6752a24b16883ce.tar.bz2
gentoo-2-b1e90d3ac2aeafe15e39db6ac6752a24b16883ce.zip
Deprecated eclasses - to be removed in 2 years (or when council okays)
-rw-r--r--eclass/kde-functions.eclass673
-rw-r--r--eclass/kde-meta.eclass458
-rw-r--r--eclass/kde.eclass486
3 files changed, 15 insertions, 1602 deletions
diff --git a/eclass/kde-functions.eclass b/eclass/kde-functions.eclass
index c735c144ac20..3a8fc738920f 100644
--- a/eclass/kde-functions.eclass
+++ b/eclass/kde-functions.eclass
@@ -1,670 +1,7 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2010 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 $
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde-functions.eclass,v 1.176 2010/01/11 20:51:39 abcd Exp $
-# @ECLASS: kde-functions.eclass
-# @MAINTAINER:
-# kde@gentoo.org
-# Original author Dan Armak <danarmak@gentoo.org>
-#
-# @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-3*"
- RDEPEND="${RDEPEND} =x11-libs/qt-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
+# @DEAD
+# KDE 3 is gone from the tree. Scheduled for removal after 2012/01/12.
+ewarn "Please fix your package (${CATEGORY}/${PF}) to not use ${ECLASS}.eclass"
diff --git a/eclass/kde-meta.eclass b/eclass/kde-meta.eclass
index 93112b9e88b6..38b628cb21ac 100644
--- a/eclass/kde-meta.eclass
+++ b/eclass/kde-meta.eclass
@@ -1,455 +1,7 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/kde-meta.eclass,v 1.91 2009/10/15 22:18:17 abcd Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde-meta.eclass,v 1.92 2010/01/11 20:51:39 abcd Exp $
-# @ECLASS: kde-meta.eclass
-# @MAINTAINER:
-# kde@gentoo.org
-#
-# Original authors:
-# Dan Armak <danarmak@gentoo.org>
-# Simone Gotti <motaboy@gentoo.org>
-# @BLURB: This is the kde-meta eclass which supports broken-up kde-base packages.
-# @DESCRIPTION:
-# This is the kde-meta eclass which supports broken-up kde-base packages.
-
-
-inherit kde multilib
-
-# only broken-up ebuilds can use this eclass
-if [[ -z "$KMNAME" ]]; then
- die "kde-meta.eclass inherited but KMNAME not defined - broken ebuild"
-fi
-
-# Replace the $myPx mess - it was ugly as well as not general enough for 3.4.0-rc1
-# The following code should set TARBALLVER (the version in the tarball's name)
-# and TARBALLDIRVER (the version of the toplevel directory inside the tarball).
-case "$PV" in
- 3.5.0_beta2) TARBALLDIRVER="3.4.92"; TARBALLVER="3.4.92" ;;
- 3.5.0_rc1) TARBALLDIRVER="3.5.0"; TARBALLVER="3.5.0_rc1" ;;
- *) TARBALLDIRVER="$PV"; TARBALLVER="$PV" ;;
-esac
-if [[ "${KMNAME}" = "koffice" ]]; then
- case "$PV" in
- 1.6_beta1) TARBALLDIRVER="1.5.91"; TARBALLVER="1.5.91" ;;
- 1.6_rc1) TARBALLDIRVER="1.5.92"; TARBALLVER="1.5.92" ;;
- 1.6.3_p*) TARBALLDIRVER="1.6.3"; TARBALLVER="${PV}" ;;
- esac
-fi
-
-TARBALL="$KMNAME-$TARBALLVER.tar.bz2"
-
-# BEGIN adapted from kde-dist.eclass, code for older versions removed for cleanness
-if [[ "$KDEBASE" = "true" ]]; then
- unset SRC_URI
-
- need-kde $PV
-
- DESCRIPTION="KDE ${PV} - "
- HOMEPAGE="http://www.kde.org/"
- LICENSE="GPL-2"
- SLOT="$KDEMAJORVER.$KDEMINORVER"
-
- # Main tarball for normal downloading style
- # Note that we set SRC_PATH, and add it to SRC_URI later on
- case "$PV" in
- 3.5.0_*) SRC_PATH="mirror://kde/unstable/${PV/.0_/-}/src/$TARBALL" ;;
- 3.5_*) SRC_PATH="mirror://kde/unstable/${PV/_/-}/src/$TARBALL" ;;
- 3.5.0) SRC_PATH="mirror://kde/stable/3.5/src/$TARBALL" ;;
- 3*) SRC_PATH="mirror://kde/stable/$TARBALLVER/src/$TARBALL" ;;
- *) die "$ECLASS: Error: unrecognized version $PV, could not set SRC_URI" ;;
- esac
-
-elif [[ "$KMNAME" == "koffice" ]]; then
- SRC_PATH="mirror://kde/stable/koffice-$PV/src/koffice-$PV.tar.bz2"
- case $PV in
- 1.3.5)
- SRC_PATH="mirror://kde/stable/koffice-$PV/src/koffice-$PV.tar.bz2"
- ;;
- 1.6_beta1)
- SRC_PATH="mirror://kde/unstable/koffice-${PV/_/-}/koffice-${TARBALLVER}.tar.bz2"
- ;;
- 1.6.3_p*) SRC_PATH="mirror://gentoo/${TARBALL}"
- ;;
- *)
- # Identify beta and rc versions by underscore
- if [[ ${PV/_/} != ${PV} ]]; then
- SRC_PATH="mirror://kde/unstable/koffice-${PV/_/-}/src/koffice-${TARBALLVER}.tar.bz2"
- fi
- ;;
- esac
-fi
-
-SRC_URI="$SRC_URI $SRC_PATH"
-
-debug-print "$ECLASS: finished, SRC_URI=$SRC_URI"
-
-# Add a blocking dep on the package we're derived from
-if [[ "${KMNAME}" != "koffice" ]]; then
- DEPEND="${DEPEND} !=$(get-parent-package ${CATEGORY}/${PN})-${SLOT}*"
- RDEPEND="${RDEPEND} !=$(get-parent-package ${CATEGORY}/${PN})-${SLOT}*"
-else
- case ${EAPI:-0} in
- 0)
- # EAPIs without SLOT dependencies.
- IFSBACKUP="$IFS"
- IFS=".-_"
- for x in ${PV}; do
- if [[ -z "$KOFFICEMAJORVER" ]]; then KOFFICEMAJORVER=$x
- else if [[ -z "$KOFFICEMINORVER" ]]; then KOFFICEMINORVER=$x
- else if [[ -z "$KOFFICEREVISION" ]]; then KOFFICEREVISION=$x
- fi; fi; fi
- done
- [[ -z "$KOFFICEMINORVER" ]] && KOFFICEMINORVER="0"
- [[ -z "$KOFFICEREVISION" ]] && KOFFICEREVISION="0"
- IFS="$IFSBACKUP"
- DEPEND="${DEPEND} !=$(get-parent-package ${CATEGORY}/${PN})-${KOFFICEMAJORVER}.${KOFFICEMINORVER}*"
- RDEPEND="${RDEPEND} !=$(get-parent-package ${CATEGORY}/${PN})-${KOFFICEMAJORVER}.${KOFFICEMINORVER}*"
- ;;
- # EAPIs with SLOT dependencies.
- *)
- [[ -z ${SLOT} ]] && SLOT="0"
- DEPEND="${DEPEND} !$(get-parent-package ${CATEGORY}/${PN}):${SLOT}"
- RDEPEND="${RDEPEND} !$(get-parent-package ${CATEGORY}/${PN}):${SLOT}"
- ;;
- esac
-fi
-
-# @ECLASS-VARIABLE: KMNAME
-# @DESCRIPTION:
-# Name of the metapackage (eg kdebase, kdepim). Must be set before inheriting
-# this eclass, since it affects $SRC_URI. This variable MUST be set.
-
-# @ECLASS-VARIABLE: KMNOMODULE
-# @DESCRIPTION:
-# Unless set to "true", then KMMODULE will be not defined and so also the docs.
-# Useful when we want to installs subdirs of a subproject, like plugins, and we
-# have to mark the topsubdir ad KMEXTRACTONLY.
-
-# @ECLASS-VARIABLE: KMMODULE
-# @DESCRIPTION:
-# Defaults to $PN. Specify one subdirectory of KMNAME. Is treated exactly like items in KMEXTRA.
-# Fex., the ebuild name of kdebase/l10n is kdebase-l10n, because just 'l10n' would be too confusing.
-# Do not include the same item in more than one of KMMODULE, KMMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY, KMCOPYLIB.
-
-# @ECLASS-VARIABLE: KMNODOCS
-# @DESCRIPTION:
-# Unless set to "true", 'doc/$KMMODULE' is added to KMEXTRA. Set for packages that don't have docs.
-
-# @ECLASS-VARIABLE: KMEXTRA
-# @DESCRIPTION:
-# Specify files/dirs to extract, compile and install. $KMMODULE is added to
-# KMEXTRA automatically. So is doc/$KMMODULE (unless $KMNODOCS==true). Makefiles
-# are created automagically to compile/install the correct files. Observe these
-# rules:
-#
-# - Don't specify the same file in more than one of three variables (KMEXTRA,
-# KMCOMPILEONLY, and KMEXTRACTONLY)
-# - When using KMEXTRA, remember to add the doc/foo dir for the extra dirs if one exists.
-# - KMEXTRACTONLY take effect over an entire directory tree, you can override it defining
-#
-# KMEXTRA, KMCOMPILEONLY for every subdir that must have a different behavior.
-# eg. you have this tree:
-# foo/bar
-# foo/bar/baz1
-# foo/bar/baz1/taz
-# foo/bar/baz2
-# If you define:
-# KMEXTRACTONLY=foo/bar and KMEXTRA=foo/bar/baz1
-# then the only directory compiled will be foo/bar/baz1 and not foo/bar/baz1/taz (also if it's a subdir of a KMEXTRA) or foo/bar/baz2
-#
-# IMPORTANT!!! you can't define a KMCOMPILEONLY SUBDIR if its parents are defined as KMEXTRA or KMMODULE. or it will be installed anywhere. To avoid this probably are needed some chenges to the generated Makefile.in.
-# Do not include the same item in more than one of KMMODULE, KMMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY, KMCOPYLIB.
-
-# @ECLASS-VARIABLE: KMCOMPILEONLY
-# @DESCRIPTION:
-# Please see KMEXTRA
-
-# @ECLASS-VARIABLE: KMEXTRACTONLY
-# @DESCRIPTION:
-# Please see KMEXTRA
-
-# @ECLASS-VARIABLE: KMCOPYLIB
-# @DESCRIPTION:
-# Contains an even number of $IFS (i.e. whitespace) -separated words.
-# Each two consecutive words, libname and dirname, are considered. symlinks are created under $S/$dirname
-# pointing to $PREFIX/lib/libname*.
-# Do not include the same item in more than one of KMMODULE, KMMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY, KMCOPYLIB.
-
-
-# ====================================================
-
-# @FUNCTION: create_fullpaths
-# @DESCRIPTION:
-# create a full path vars, and remove ALL the endings "/"
-create_fullpaths() {
- for item in $KMMODULE; do
- KMMODULEFULLPATH="$KMMODULEFULLPATH ${S}/${item%/}"
- done
- for item in $KMEXTRA; do
- KMEXTRAFULLPATH="$KMEXTRAFULLPATH ${S}/${item%/}"
- done
- for item in $KMCOMPILEONLY; do
- KMCOMPILEONLYFULLPATH="$KMCOMPILEONLYFULLPATH ${S}/${item%/}"
- done
- for item in $KMEXTRACTONLY; do
- KMEXTRACTONLYFULLPATH="$KMEXTRACTONLYFULLPATH ${S}/${item%/}"
- done
-}
-
-# @FUNCTION: change_makefiles
-# @USAGE: < dir > < isextractonly >
-# @DESCRIPTION:
-# Creates Makefile.am files in directories where we didn't extract the originals.
-# $isextractonly: true if the parent dir was defined as KMEXTRACTONLY
-# Recurses through $S and all subdirs. Creates Makefile.am with SUBDIRS=<list of existing subdirs>
-# or just empty all:, install: targets if no subdirs exist.
-change_makefiles() {
- debug-print-function $FUNCNAME "$@"
- local dirlistfullpath dirlist directory isextractonly
-
- cd "${1}"
- debug-print "We are in ${PWD}"
-
- # check if the dir is defined as KMEXTRACTONLY or if it was defined is KMEXTRACTONLY in the parent dir, this is valid only if it's not also defined as KMMODULE, KMEXTRA or KMCOMPILEONLY. They will ovverride KMEXTRACTONLY, but only in the current dir.
- isextractonly="false"
- if ( ( hasq "$1" $KMEXTRACTONLYFULLPATH || [[ $2 = "true" ]] ) && \
- ( ! hasq "$1" $KMMODULEFULLPATH $KMEXTRAFULLPATH $KMCOMPILEONLYFULLPATH ) ); then
- isextractonly="true"
- fi
- debug-print "isextractonly = $isextractonly"
-
- dirlistfullpath=
- for item in *; do
- if [[ -d "${item}" && "${item}" != "CVS" && "${S}/${item}" != "${S}/admin" ]]; then
- # add it to the dirlist, with the FULL path and an ending "/"
- dirlistfullpath="$dirlistfullpath ${1}/${item}"
- fi
- done
- debug-print "dirlist = $dirlistfullpath"
-
- for directory in $dirlistfullpath; do
-
- if ( hasq "$1" $KMEXTRACTONLYFULLPATH || [[ $2 = "true" ]] ); then
- change_makefiles $directory 'true'
- else
- change_makefiles $directory 'false'
- fi
- # come back to our dir
- cd $1
- done
-
- cd $1
- debug-print "Come back to ${PWD}"
- debug-print "dirlist = $dirlistfullpath"
- if [[ $isextractonly = "true" ]] || [[ ! -f Makefile.am ]] ; then
- # if this is a latest subdir
- if [[ -z "$dirlistfullpath" ]]; then
- debug-print "dirlist is empty => we are in the latest subdir"
- echo 'all:' > Makefile.am
- echo 'install:' >> Makefile.am
- echo '.PHONY: all' >> Makefile.am
- else # it's not a latest subdir
- debug-print "We aren't in the latest subdir"
- # remove the ending "/" and the full path"
- for directory in $dirlistfullpath; do
- directory=${directory%/}
- directory=${directory##*/}
- dirlist="$dirlist $directory"
- done
- echo "SUBDIRS=$dirlist" > Makefile.am
- fi
- fi
-}
-
-set_common_variables() {
- # Overridable module (subdirectory) name, with default value
- if [[ "$KMNOMODULE" != "true" ]] && [[ -z "$KMMODULE" ]]; then
- KMMODULE=$PN
- fi
-
- # Unless disabled, docs are also extracted, compiled and installed
- DOCS=""
- if [[ "$KMNOMODULE" != "true" ]] && [[ "$KMNODOCS" != "true" ]]; then
- DOCS="doc/$KMMODULE"
- fi
-}
-
-# @FUNCTION: kde-meta_src_unpack
-# @USAGE: [ unpack ] [ makefiles ]
-# @DESCRIPTION:
-# This has function sections now. Call unpack, apply any patches not in $PATCHES,
-# then call makefiles.
-kde-meta_src_unpack() {
- debug-print-function $FUNCNAME "$@"
-
- set_common_variables
-
- sections="$@"
- [[ -z "$sections" ]] && sections="unpack makefiles"
- for section in $sections; do
- case $section in
- unpack)
-
- # kdepim packages all seem to rely on libkdepim/kdepimmacros.h
- # also, all kdepim Makefile.am's reference doc/api/Doxyfile.am
- if [[ "$KMNAME" == "kdepim" ]]; then
- KMEXTRACTONLY="$KMEXTRACTONLY libkdepim/kdepimmacros.h doc/api"
- fi
-
- # Create final list of stuff to extract
- extractlist=""
- for item in admin Makefile.am Makefile.am.in configure.in.in configure.in.mid configure.in.bot \
- acinclude.m4 aclocal.m4 AUTHORS COPYING INSTALL README NEWS ChangeLog \
- $KMMODULE $KMEXTRA $KMCOMPILEONLY $KMEXTRACTONLY $DOCS
- do
- extractlist="$extractlist $KMNAME-$TARBALLDIRVER/${item%/}"
- done
-
- # $KMTARPARAMS is also available for an ebuild to use; currently used by kturtle
- TARFILE=$DISTDIR/$TARBALL
- KMTARPARAMS="$KMTARPARAMS -j"
- cd "${WORKDIR}"
-
- echo ">>> Unpacking parts of ${TARBALL} to ${WORKDIR}"
- # Note that KMTARPARAMS is also used by an ebuild
- tar -xpf $TARFILE $KMTARPARAMS $extractlist 2> /dev/null
-
- [[ -n ${A/${TARBALL}/} ]] && unpack ${A/${TARBALL}/}
-
- # Avoid syncing if possible
- # No idea what the above comment means...
- if [[ -n "$RAWTARBALL" ]]; then
- rm -f "${T}"/$RAWTARBALL
- fi
-
- # Default $S is based on $P not $myP; rename the extracted dir to fit $S
- mv $KMNAME-$TARBALLDIRVER $P || die "mv $KMNAME-$TARBallDIRVER failed."
- S="${WORKDIR}"/${P}
-
- # Copy over KMCOPYLIB items
- libname=""
- for x in $KMCOPYLIB; do
- if [[ "$libname" == "" ]]; then
- libname=$x
- else
- dirname=$x
- cd "${S}"
- mkdir -p ${dirname}
- cd ${dirname}
- search_path=$(echo "${PREFIX}"/$(get_libdir)/{,kde3/{,plugins/{designer,styles}}})
- if [[ ! "$(find ${search_path} -maxdepth 1 -name "${libname}*" 2>/dev/null)" == "" ]]; then
- echo "Symlinking library ${libname} under ${PREFIX}/$(get_libdir)/ in source dir"
- ln -s "${PREFIX}"/$(get_libdir)/${libname}* .
- else
- die "Can't find library ${libname} under ${PREFIX}/$(get_libdir)/"
- fi
- libname=""
- fi
- done
-
- # Don't add a param here without looking at its implementation.
- kde_src_unpack
-
- # kdebase: Remove the installation of the "startkde" and "kde3" scripts.
- if [[ "$KMNAME" == "kdebase" ]]; then
- sed -i -e s:"bin_SCRIPTS = startkde.*"::g "${S}"/Makefile.am.in
- fi
-
- # for ebuilds with extended src_unpack
- cd "${S}"
-
- ;;
- makefiles)
-
- # Create Makefile.am files
- create_fullpaths
- change_makefiles "${S}" "false"
-
- # for ebuilds with extended src_unpack
- cd "${S}"
-
- ;;
- esac
- done
-}
-
-# dull function for keep working eapi2 and later
-kde-meta_src_prepare() {
- :
- # prevent the patches applied twice; we cant repatch src_unpack onto
- # two functions (unpack and prepare)
-}
-
-# @FUNCTION: kde-meta_src_configure
-# @DESCRIPTION:
-# Configure stub for eapi 2
-kde-meta_src_configure() {
- debug-print-function $FUNCNAME "$@"
-
- set_common_variables
-
- if [[ "$KMNAME" == "kdebase" ]]; then
- # bug 82032: the configure check for java is unnecessary as well as broken
- myconf="$myconf --without-java"
- fi
-
- if [[ "$KMNAME" == "kdegames" ]]; then
- # make sure games are not installed with setgid bit, as it is a security risk.
- myconf="$myconf --disable-setgid"
- fi
-
- # Make sure kde_src_configure is run in EAPI >= 2
- case ${EAPI:-0} in
- 0|1) ;;
- *) kde_src_configure ;;
- esac
-}
-
-# @FUNCTION: kde-meta_src_compile
-# @DESCRIPTION:
-# Does some checks before it invokes kde_src_compile
-kde-meta_src_compile() {
- debug-print-function $FUNCNAME "$@"
- case ${EAPI:-0} in
- 0|1) kde-meta_src_configure ;;
- esac
- kde_src_compile "$@"
-}
-
-# @FUNCTION: kde-meta_src_install
-# @USAGE: [ make ] [ dodoc ] [ all ]
-# @DESCRIPTION:
-# The kde-meta src_install function
-kde-meta_src_install() {
- debug-print-function $FUNCNAME "$@"
-
- set_common_variables
-
- if [[ "$1" == "" ]]; then
- kde-meta_src_install make dodoc
- fi
- while [[ -n "$1" ]]; do
- case $1 in
- make)
- for dir in $KMMODULE $KMEXTRA $DOCS; do
- if [[ -d "${S}"/$dir ]]; then
- cd "${S}"/$dir
- emake DESTDIR="${D}" destdir="${D}" install || die "emake install failed."
- fi
- done
- ;;
- dodoc)
- kde_src_install dodoc
- ;;
- all)
- kde-meta_src_install make dodoc
- ;;
- esac
- shift
- done
-}
-case ${EAPI:-0} in
- 0|1) EXPORT_FUNCTIONS src_unpack src_compile src_install;;
- 2) EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile src_install;;
-esac
+# @DEAD
+# KDE 3 is gone from the tree. Scheduled for removal after 2012/01/12.
+ewarn "Please fix your package (${CATEGORY}/${PF}) to not use ${ECLASS}.eclass"
diff --git a/eclass/kde.eclass b/eclass/kde.eclass
index 31f4faaab818..52c2154eb53d 100644
--- a/eclass/kde.eclass
+++ b/eclass/kde.eclass
@@ -1,483 +1,7 @@
-# Copyright 1999-2008 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/kde.eclass,v 1.225 2010/01/03 19:10:49 scarabeus Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde.eclass,v 1.226 2010/01/11 20:51:39 abcd Exp $
-# @ECLASS: kde.eclass
-# @MAINTAINER:
-# kde@gentoo.org
-#
-# original author Dan Armak <danarmak@gentoo.org>
-#
-# Revisions Caleb Tennis <caleb@gentoo.org>
-# @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"
-
-# @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" ]] ; then
- DEPEND="${DEPEND}
- x11-libs/libXt
- x11-proto/xf86vidmodeproto
- xinerama? ( x11-proto/xineramaproto )"
- RDEPEND="xinerama? ( x11-libs/libXinerama )"
- IUSE="${IUSE} xinerama"
-else
- RDEPEND=""
-fi
-
-# overridden in other places like kde-dist, kde-source and some individual ebuilds
-SLOT="0"
-
-# @FUNCTION: kde_pkg_setup
-# @DESCRIPTION:
-# Filters some compiler flags that can break things
-kde_pkg_setup() {
- # 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 and patches it. 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_unpack() {
- debug-print-function $FUNCNAME "$@"
-
- [[ -z "${KDE_S}" ]] && KDE_S="${S}"
-
- local PATCHDIR="${WORKDIR}/patches/"
- if [[ -z "$@" ]] ; then
- # 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.
- [[ -d "${KDE_S}" ]] || base_src_unpack
- 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
- [[ -n ${PATCHES[@]} ]] && base_src_prepare
- else
- # Call base_src_unpack, which has sections, to do unpacking and patching
- # step by step transparently as defined in the ebuild.
- base_src_unpack "$@"
- fi
-
- # 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
-}
-
-# dull function for keep working eapi2 and later
-kde_src_prepare() {
- :
- # prevent the patches applied twice; we cant repatch src_unpack onto two
- # functions (unpack and prepare)
-}
-
-# @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
- myconf="$myconf --without-arts"
- 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
-
- 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
+# @DEAD
+# KDE 3 is gone from the tree. Scheduled for removal after 2012/01/12.
+ewarn "Please fix your package (${CATEGORY}/${PF}) to not use ${ECLASS}.eclass"