summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2009-04-15 14:31:42 +0200
committerTomas Chvatal <scarabeus@gentoo.org>2009-04-15 14:31:42 +0200
commit03c8bf42306f68a474e0a3254d92e4ecf107de83 (patch)
tree7e50a52f8b1da1fb45e8309d075e9da63ed13b1f
parent170a4d4582566b4a8eca579f229bee3a62f42f68 (diff)
downloadkde-03c8bf42306f68a474e0a3254d92e4ecf107de83.tar.gz
kde-03c8bf42306f68a474e0a3254d92e4ecf107de83.tar.bz2
kde-03c8bf42306f68a474e0a3254d92e4ecf107de83.zip
In the tree.
-rw-r--r--eclass/kde4-base.eclass579
-rw-r--r--eclass/kde4-functions.eclass263
-rw-r--r--eclass/kde4-meta.eclass712
3 files changed, 0 insertions, 1554 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
deleted file mode 100644
index 15eee6d54fa..00000000000
--- a/eclass/kde4-base.eclass
+++ /dev/null
@@ -1,579 +0,0 @@
-# Copyright 2007-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.32 2009/03/11 17:40:51 scarabeus Exp $
-
-# @ECLASS: kde4-base.eclass
-# @MAINTAINER:
-# kde@gentoo.org
-# @BLURB: This eclass provides functions for kde 4.X ebuilds
-# @DESCRIPTION:
-# The kde4-base.eclass provides support for building KDE4 based ebuilds
-# and KDE4 applications.
-#
-# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but
-# eclass will fail with version older than 2.
-
-inherit base cmake-utils eutils kde4-functions
-
-get_build_type
-if [[ ${BUILD_TYPE} = live ]]; then
- inherit subversion
-fi
-
-EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm
-
-# @ECLASS-VARIABLE: OPENGL_REQUIRED
-# @DESCRIPTION:
-# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
-# This variable must be set before inheriting any eclasses. Defaults to 'never'.
-OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
-
-# @ECLASS-VARIABLE: WEBKIT_REQUIRED
-# @DESCRIPTION:
-# Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
-# This variable must be set before inheriting any eclasses. Defaults to 'never'.
-WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
-
-# @ECLASS-VARIABLE: CPPUNIT_REQUIRED
-# @DESCRIPTION:
-# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
-# This variable must be set before inheriting any eclasses. Defaults to 'never'.
-CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
-
-# @ECLASS-VARIABLE: KDE_REQUIRED
-# @DESCRIPTION:
-# Is kde required? Possible values are 'always', 'optional' and 'never'.
-# This variable must be set before inheriting any eclasses. Defaults to 'always'
-# If set to always or optional, KDE_MINIMAL may be overriden as well.
-# Note that for kde-base packages this variable is fixed to 'always'.
-KDE_REQUIRED="${KDE_REQUIRED:-always}"
-
-# Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here)
-if [[ -n ${KDE_MINIMAL} ]]; then
- for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
- [[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break
- done
- [[ -z ${KDE_MINIMAL_VALID} ]] && unset KDE_MINIMAL
-else
- KDE_MINIMAL_VALID=1
-fi
-
-# @ECLASS-VARIABLE: KDE_MINIMAL
-# @DESCRIPTION:
-# This wariable is used when KDE_REQUIRED is set, to specify required KDE minimal
-# version for apps to work. Currently defaults to 4.2
-# One may override this variable to raise version requirements.
-# For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables.
-# Note that for kde-base packages is fixed to ${SLOT}.
-KDE_MINIMAL="${KDE_MINIMAL:-4.2}"
-
-# Fallback behaviour (for now)
-# TODO Remove when tree is clean
-if [[ -n ${NEED_KDE} ]]; then
- case ${NEED_KDE} in
- none)
- KDE_REQUIRED="never"
- ;;
- *)
- KDE_REQUIRED="always"
- KDE_MINIMAL="${NEED_KDE}"
- ;;
- esac
-fi
-
-# OpenGL dependencies
-qtopengldepend="
- x11-libs/qt-opengl:4
-"
-case ${OPENGL_REQUIRED} in
- always)
- COMMONDEPEND="${COMMONDEPEND} ${qtopengldepend}"
- ;;
- optional)
- IUSE="${IUSE} opengl"
- COMMONDEPEND="${COMMONDEPEND}
- opengl? ( ${qtopengldepend} )
- "
- ;;
- *) ;;
-esac
-unset qtopengldepend
-
-# WebKit dependencies
-qtwebkitdepend="
- x11-libs/qt-webkit:4
-"
-case ${WEBKIT_REQUIRED} in
- always)
- COMMONDEPEND="${COMMONDEPEND} ${qtwebkitdepend}"
- ;;
- optional)
- IUSE="${IUSE} webkit"
- COMMONDEPEND="${COMMONDEPEND}
- webkit? ( ${qtwebkitdepend} )
- "
- ;;
- *) ;;
-esac
-unset qtwebkitdepend
-
-# CppUnit dependencies
-cppuintdepend="
- dev-util/cppunit
-"
-case ${CPPUNIT_REQUIRED} in
- always)
- DEPEND="${DEPEND} ${cppuintdepend}"
- ;;
- optional)
- IUSE="${IUSE} test"
- DEPEND="${DEPEND}
- test? ( ${cppuintdepend} )
- "
- ;;
- *) ;;
-esac
-unset cppuintdepend
-
-# DEPRECATED block
-if [[ ${NEED_KDE} != "none" ]]; then
- # localization deps
- # DISABLED UNTIL PMS decide correct approach :(
- if [[ -n ${KDE_LINGUAS} ]]; then
- LNG_DEP=""
- for _lng in ${KDE_LINGUAS}; do
- # there must be or due to issue if lingua is not present in kde-l10n so
- # it wont die but pick kde-l10n as-is.
- LNG_DEP="${LNG_DEP}
- || (
- kde-base/kde-l10n[linguas_${_lng},kdeprefix=]
- kde-base/kde-l10n[kdeprefix=]
- )
- "
- done
- fi
-fi # NEED_KDE != NONE block
-
-# Setup packages inheriting this eclass
-case ${KDEBASE} in
-
- kde-base)
- if [[ $BUILD_TYPE = live ]]; then
- # Disable tests for live ebuilds
- RESTRICT="${RESTRICT} test"
- # Live ebuilds in kde-base default to kdeprefix by default
- IUSE="${IUSE} +kdeprefix"
- else
- # All other ebuild types default to -kdeprefix as before
- IUSE="${IUSE} kdeprefix"
- fi
- # Determine SLOT from PV
- case ${PV} in
- 4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) SLOT="4.3" ;;
- 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) SLOT="4.2" ;;
- *9999*) SLOT="live" ;;
- *) die "Unsupported ${PV}" ;;
- esac
- _kdedir="${SLOT}"
- _pv="-${PV}:${SLOT}"
- _pvn="-${PV}"
-
- # Block installation of other SLOTS unless kdeprefix
- for slot in ${KDE_SLOTS[@]}; do
- # Block non kdeprefix ${PN} on other slots
- if [[ ${SLOT} != ${slot} ]]; then
- RDEPEND="${RDEPEND}
- !kdeprefix? ( !kde-base/${PN}:${slot}[-kdeprefix] )
- "
- fi
- done
- ;;
-
- koffice)
- SLOT="2"
- _pv="-${KDE_MINIMAL}"
- _pvn="${_pv}"
- ;;
-
- *)
- _pv="-${KDE_MINIMAL}"
- _pvn="${_pv}"
- ;;
-
-esac
-
-# KDE dependencies
-kdecommondepend="
- dev-lang/perl
- x11-libs/libXext
- x11-libs/libXt
- x11-libs/libXxf86vm
- x11-libs/qt-core:4[qt3support,ssl]
- x11-libs/qt-gui:4[accessibility,dbus]
- x11-libs/qt-qt3support:4[accessibility]
- x11-libs/qt-script:4
- x11-libs/qt-sql:4[qt3support]
- x11-libs/qt-svg:4
- x11-libs/qt-test:4
-"
-if [[ ${PN} != kdelibs ]]; then
- if [[ ${KDEBASE} = kde-base ]]; then
- kdecommondepend="${kdecommondepend}
- kdeprefix? ( >=kde-base/kdelibs${_pv}[kdeprefix] )
- !kdeprefix? ( >=kde-base/kdelibs${_pvn}[-kdeprefix] )
- "
- else
- kdecommondepend="${kdecommondepend}
- >=kde-base/kdelibs${_pv}
- "
- fi
-fi
-unset _pv _pvn
-kdedepend="
- >=dev-util/cmake-2.6.2
- dev-util/pkgconfig
- >=sys-apps/sandbox-1.3.2
-"
-case ${KDE_REQUIRED} in
- always)
- COMMONDEPEND="${COMMONDEPEND} ${kdecommondepend}"
- DEPEND="${DEPEND} ${kdedepend}"
- ;;
- optional)
- IUSE="${IUSE} kde"
- COMMONDEPEND="${COMMONDEPEND}
- kde? ( ${kdecommondepend} )"
- DEPEND="${DEPEND}
- kde? ( ${kdedepend} )"
- ;;
- *) ;;
-esac
-unset kdecommondepend kdedepend
-
-debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
-debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
-debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
-
-# Accumulate dependencies set by this eclass
-DEPEND="${DEPEND} ${COMMONDEPEND}"
-RDEPEND="${RDEPEND} ${COMMONDEPEND}"
-
-# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
-# koffice ebuild, the URI should be set in the ebuild itself
-case ${BUILD_TYPE} in
- live)
- SRC_URI=""
- ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
- # Split ebuild, or extragear stuff
- if [[ -n ${KMNAME} ]]; then
- ESVN_PROJECT="${KMNAME}"
- if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
- KMMODULE="${PN}"
- fi
- # Split kde-base/ ebuilds: (they reside in trunk/KDE)
- case ${KMNAME} in
- kdebase-*)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/kdebase/${KMNAME#kdebase-}"
- ;;
- kdereview)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
- ;;
- kdesupport)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
- ESVN_PROJECT="${PN}"
- ;;
- kde*)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${KMNAME}"
- ;;
- extragear*|playground*)
- # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
- # build packages from same svn location.
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
- ESVN_PROJECT="${PN}"
- ;;
- koffice)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
- ;;
- *)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
- ;;
- esac
- else
- # kdelibs, kdepimlibs
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${PN}"
- ESVN_PROJECT="${PN}"
- fi
- # limit syncing to 1 hour.
- ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
- ;;
- *)
- if [[ -n ${KDEBASE} ]]; then
- if [[ -n ${KMNAME} ]]; then
- case ${KMNAME} in
- kdebase-apps)
- _kmname="kdebase" ;;
- *)
- _kmname="${KMNAME}" ;;
- esac
- else
- _kmname=${PN}
- fi
- _kmname_pv="${_kmname}-${PV}"
- if [[ $NEED_KDE != live ]]; then
- case ${KDEBASE} in
- kde-base)
- case ${PV} in
- 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*)
- SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;;
- 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6* | 4.0.9* | 4.0.8*)
- SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
- *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
- esac
- ;;
- koffice)
- SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2"
- ;;
- esac
- fi
- unset _kmname _kmname_pv
- fi
- ;;
-esac
-
-debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
-
-# @ECLASS-VARIABLE: PREFIX
-# @DESCRIPTION:
-# Set the installation PREFIX for non kde-base applications. It defaults to /usr.
-# kde-base packages go into KDE4 installation directory (KDEDIR) by default.
-# No matter the PREFIX, package will be built agains KDE installed in KDEDIR.
-
-# @FUNCTION: kde4-base_pkg_setup
-# @DESCRIPTION:
-# Do the basic kdeprefix KDEDIR settings and determine with which kde should
-# optional applications link
-kde4-base_pkg_setup() {
- debug-print-function ${FUNCNAME} "$@"
-
- # QA ebuilds
- case ${NEED_KDE} in
- none) ewarn "QA Notice: using deprecated NEED_KDE variable, use KDE_REQUIRED=\"never\" or KDE_REQUIRED=\"optional\" instead. You may want to override KDE_MINIMAL as well (default is KDE_MINIMAL=\"${KDE_MINIMAL}\")." ;;
- *) [[ -n ${NEED_KDE} ]] && ewarn "QA Notice: using deprecated NEED_KDE variable, use KDE_MINIMAL instead (default is KDE_MINIMAL=\"${KDE_MINIMAL}\")." ;;
- esac
- [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})."
-
- # Don't set KDEHOME during compilation, it will cause access violations
- unset KDEHOME
-
- if [[ ${KDEBASE} = kde-base ]]; then
- if use kdeprefix; then
- KDEDIR="/usr/kde/${_kdedir}"
- else
- KDEDIR="/usr"
- fi
- PREFIX="${PREFIX:-${KDEDIR}}"
- else
- # Determine KDEDIR by loooking for the closest match with KDE_MINIMAL
- KDEDIR=
- local kde_minimal_met
- for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
- [[ -z ${kde_minimal_met} ]] && [[ ${slot} = ${KDE_MINIMAL} ]] && kde_minimal_met=1
- if [[ -n ${kde_minimal_met} ]] && has_version "kde-base/kdelibs:${slot}"; then
- if has_version "kde-base/kdelibs:${slot}[kdeprefix]"; then
- KDEDIR="/usr/kde/${slot}"
- else
- KDEDIR="/usr"
- fi
- break;
- fi
- done
- [[ -z KDEDIR ]] && die "Failed to determine KDEDIR!"
- PREFIX="${PREFIX:-/usr}"
- fi
-
- # Not needed anymore
- unset _kdedir
-
- if [[ ${BUILD_TYPE} = live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
- echo
- elog "WARNING! This is an experimental live ebuild of ${KMNAME:-${PN}}"
- elog "Use it at your own risk."
- elog "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
- echo
- fi
-}
-
-# @FUNCTION: kde4-base_src_unpack
-# @DESCRIPTION:
-# This function unpacks the source tarballs for KDE4 applications.
-kde4-base_src_unpack() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${BUILD_TYPE} = live ]]; then
- migrate_store_dir
- subversion_src_unpack
- else
- base_src_unpack
- fi
-}
-
-# @FUNCTION: kde4-base_src_compile
-# @DESCRIPTION:
-# General pre-configure and pre-compile function for KDE4 applications.
-# It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
-# enable_selected_linguas() in kde4-functions.eclass(5) for further details.
-kde4-base_src_prepare() {
- debug-print-function ${FUNCNAME} "$@"
-
- # Only enable selected languages, used for KDE extragear apps.
- if [[ -n ${KDE_LINGUAS} ]]; then
- enable_selected_linguas
- fi
-
- base_src_prepare
-
- # Save library dependencies
- if [[ -n ${KMSAVELIBS} ]] ; then
- save_library_dependencies
- fi
-
- # Inject library dependencies
- if [[ -n ${KMLOADLIBS} ]] ; then
- load_library_dependencies
- fi
-}
-
-# @FUNCTION: kde4-base_src_configure
-# @DESCRIPTION:
-# Function for configuring the build of KDE4 applications.
-kde4-base_src_configure() {
- debug-print-function ${FUNCNAME} "$@"
-
- # Handle common release builds
- if ! has debug ${IUSE//+} || ! use debug; then
- append-cppflags -DQT_NO_DEBUG
- fi
-
- # Build tests in src_test only, where we override this value
- local cmakeargs="-DKDE4_BUILD_TESTS=OFF"
-
- # Set distribution name
- [[ ${PN} = kdelibs ]] && cmakeargs="${cmakeargs} -DKDE_DISTRIBUTION_TEXT=Gentoo"
-
- # Here we set the install prefix
- cmakeargs="${cmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}"
-
- # Set environment
- QTEST_COLORED=1
- QT_PLUGIN_PATH="${KDEDIR}/$(get_libdir)/kde4/plugins/"
-
- # Hardcode path to *.pc KDE files
- export PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig"
-
- # Shadow existing /usr installations
- unset KDEDIRS
-
- # Override some environment variables - only when kdeprefix is different,
- # to not break ccache/distcc
- if [[ ${KDEDIR} != /usr ]]; then
- PATH="${KDEDIR}/bin:${PATH}"
- LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}"
- fi
-
- if has kdeprefix ${IUSE//+} && use kdeprefix; then
- # Set cmake prefixes to allow buildsystem to localize valid KDE installation
- # when more are present
- cmakeargs="${cmakeargs} -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR}"
- else
- # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
- cmakeargs="${cmakeargs} -DSYSCONF_INSTALL_DIR=/etc"
- fi
-
- mycmakeargs="${cmakeargs} ${mycmakeargs}"
-
- cmake-utils_src_configure
-}
-
-# @FUNCTION: kde4-base_src_compile
-# @DESCRIPTION:
-# General function for compiling KDE4 applications.
-kde4-base_src_compile() {
- debug-print-function ${FUNCNAME} "$@"
-
- cmake-utils_src_compile
-}
-
-# @FUNCTION: kde4-base_src_test
-# @DESCRIPTION:
-# Function for testing KDE4 applications.
-kde4-base_src_test() {
- debug-print-function ${FUNCNAME} "$@"
-
- # Override this value, set in kde4-base_src_configure()
- mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=ON"
- cmake-utils_src_configure
- kde4-base_src_compile
-
- cmake-utils_src_test
-}
-
-# @FUNCTION: kde4-base_src_install
-# @DESCRIPTION:
-# Function for installing KDE4 applications.
-kde4-base_src_install() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ -n ${KMSAVELIBS} ]] ; then
- install_library_dependencies
- fi
-
- kde4-base_src_make_doc
- cmake-utils_src_install
-}
-
-# @FUNCTION: kde4-base_src_make_doc
-# @DESCRIPTION:
-# Function for installing the documentation of KDE4 applications.
-kde4-base_src_make_doc() {
- debug-print-function ${FUNCNAME} "$@"
-
- local doc
- for doc in AUTHORS ChangeLog* README* NEWS TODO; do
- [[ -s ${doc} ]] && dodoc ${doc}
- done
-
- if [[ -z ${KMNAME} ]]; then
- for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
- if [[ -s ${doc} ]]; then
- local doc_complete=${doc}
- doc="${doc#*/}"
- newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
- fi
- done
- fi
-
- if [[ -n ${KDEBASE} ]] && [[ -d "${D}/usr/share/doc/${PF}" ]]; then
- # work around bug #97196
- dodir /usr/share/doc/KDE4 && \
- mv "${D}/usr/share/doc/${PF}" "${D}"/usr/share/doc/KDE4/ || \
- die "Failed to move docs to KDE4/."
- fi
-}
-
-# @FUNCTION: kde4-base_pkg_postinst
-# @DESCRIPTION:
-# Function to rebuild the KDE System Configuration Cache after an application has been installed.
-kde4-base_pkg_postinst() {
- debug-print-function ${FUNCNAME} "$@"
-
- buildsycoca
-}
-
-# @FUNCTION: kde4-base_pkg_postrm
-# @DESCRIPTION:
-# Function to rebuild the KDE System Configuration Cache after an application has been removed.
-kde4-base_pkg_postrm() {
- debug-print-function ${FUNCNAME} "$@"
-
- buildsycoca
-}
diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass
deleted file mode 100644
index 67e432066d4..00000000000
--- a/eclass/kde4-functions.eclass
+++ /dev/null
@@ -1,263 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-functions.eclass,v 1.14 2009/03/09 19:41:26 scarabeus Exp $
-
-# @ECLASS: kde4-functions.eclass
-# @MAINTAINER:
-# kde@gentoo.org
-# @BLURB: Common ebuild functions for KDE 4 packages
-# @DESCRIPTION:
-# This eclass contains all functions shared by the different eclasses,
-# for KDE 4 ebuilds.
-
-# @ECLASS-VARIABLE: EAPI
-# @DESCRIPTION:
-# By default kde4 eclasses wants eapi 2 which might be redefinable to newer
-# versions.
-case ${EAPI:-0} in
- 2) : ;;
- *) die "No way! EAPI other than 2 is not supported for now." ;;
-esac
-
-# @ECLASS-VARIABLE: KDEBASE
-# @DESCRIPTION:
-# This gets set to a non-zero value when a package is considered a kde or
-# koffice ebuild.
-
-if [[ ${CATEGORY} = kde-base ]]; then
- debug-print "${ECLASS}: KDEBASE ebuild recognized"
- KDEBASE=kde-base
-fi
-
-# is this a koffice ebuild?
-if [[ ${KMNAME} = koffice || ${PN} = koffice ]]; then
- debug-print "${ECLASS}: KOFFICE ebuild recognized"
- KDEBASE=koffice
-fi
-
-# @ECLASS-VARIABLE: KDE_SLOTS
-# @DESCRIPTION:
-# The slots used by all KDE versions later than 4.0. The live KDE releases use
-# KDE_LIVE_SLOTS instead. Values should be ordered.
-KDE_SLOTS=( "kde-4" "4.1" "4.2" "4.3" )
-
-# @ECLASS-VARIABLE: KDE_LIVE_SLOTS
-# @DESCRIPTION:
-# The slots used by KDE live versions. Values should be ordered.
-KDE_LIVE_SLOTS=( "live" )
-
-# @FUNCTION: buildsycoca
-# @DESCRIPTION:
-# Function to rebuild the KDE System Configuration Cache.
-# All KDE ebuilds should run this in pkg_postinst and pkg_postrm.
-buildsycoca() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ -z ${ROOT%%/} && -x ${KDEDIR}/bin/kbuildsycoca4 ]]; then
- # Make sure tha cache file exists, writable by root and readable by
- # others. Otherwise kbuildsycoca4 will fail.
- touch "${KDEDIR}/share/kde4/services/ksycoca4"
- chmod 644 "${KDEDIR}/share/kde4/services/ksycoca4"
-
- # We have to unset DISPLAY and DBUS_SESSION_BUS_ADDRESS, the ones
- # in the user's environment (through su [without '-']) may cause
- # kbuildsycoca4 to hang.
-
- ebegin "Running kbuildsycoca4 to build global database"
- # This is needed because we support multiple kde versions installed together.
- # Lookup in order - local, KDEDIR, /usr, do not duplicate entries btw.
- local KDEDIRS="/usr/share"
- [[ ${KDEDIR} != "/usr" ]] && KDEDIRS="${KDEDIR}/share:${KDEDIRS}"
- XDG_DATA_DIRS="/usr/local/share:${KDEDIRS}" \
- DISPLAY="" DBUS_SESSION_BUS_ADDRESS="" \
- ${KDEDIR}/bin/kbuildsycoca4 --global --noincremental &> /dev/null
- eend $?
- fi
-
- # fix permission for some directories
- for x in share/config share/kde4; do
- if [[ $(stat --format=%a /usr/${x}) != 755 || $(stat --format=%a ${KDEDIR}/${x}) != 755 ]]; then
- ewarn "Package ${PN} is breaking ${KDEDIR}/${x} permissions."
- ewarn "Please report this issue to gentoo bugzilla."
- einfo "Permissions will get adjusted automatically now."
- find /usr/${x} -type d -print0 | xargs -0 chmod 755
- [[ ${KDEDIR} = /usr ]] || find ${KDEDIR}/${x} -type d -print0 | xargs -0 chmod 755
- fi
- done
-}
-
-# @FUNCTION: comment_all_add_subdirectory
-# @USAGE: [list of directory names]
-# @DESCRIPTION:
-# Recursively comment all add_subdirectory instructions in listed directories,
-# except those in cmake/.
-comment_all_add_subdirectory() {
- find "$@" -name CMakeLists.txt -print0 | grep -vFzZ "./cmake" | \
- xargs -0 sed -i -e '/add_subdirectory/s/^/#DONOTCOMPILE /' -e '/ADD_SUBDIRECTORY/s/^/#DONOTCOMPILE /' || \
- die "${LINENO}: Initial sed died"
-}
-
-# @ECLASS-VARIABLE: KDE_LINGUAS
-# @DESCRIPTION:
-# This is a whitespace-separated list of translations this ebuild supports.
-# These translations are automatically added to IUSE. Therefore ebuilds must set
-# this variable before inheriting any eclasses. To enable only selected
-# translations, ebuilds must call enable_selected_linguas(). kde4-base.eclass does
-# this for you.
-#
-# Example: KDE_LINGUAS="en_GB de nl"
-for _lingua in ${KDE_LINGUAS}; do
- IUSE="${IUSE} linguas_${_lingua}"
-done
-
-# @FUNCTION: enable_selected_linguas
-# @DESCRIPTION:
-# Enable translations based on LINGUAS settings and translations supported by
-# the package (see KDE_LINGUAS). By default, translations are found in "${S}"/po
-# but this default can be overridden by defining KDE_LINGUAS_DIR.
-enable_selected_linguas() {
- local lingua sr_mess wp
-
- # ebuild overridable linguas directory definition
- KDE_LINGUAS_DIR=${KDE_LINGUAS_DIR:="${S}/po"}
- cd "${KDE_LINGUAS_DIR}" || die "wrong linguas dir specified"
-
- # fix all various crazy sr@Latn variations
- # this part is only ease for ebuilds, so there wont be any die when this
- # fail at any point
- sr_mess="sr@latn sr@latin sr@Latin"
- for wp in ${sr_mess}; do
- [[ -e "${wp}.po" ]] && mv "${wp}.po" "sr@Latn.po"
- if [[ -d "${wp}" ]]; then
- # move dir and fix cmakelists
- mv "${wp}" "sr@Latn"
- sed -i \
- -e "s:${wp}:sr@Latin:g" \
- CMakeLists.txt
- fi
- done
-
- for lingua in ${KDE_LINGUAS}; do
- if [[ -e "${lingua}.po" ]]; then
- mv "${lingua}.po" "${lingua}.po.old"
- fi
- done
- comment_all_add_subdirectory "${KDE_LINGUAS_DIR}"
- for lingua in ${LINGUAS}; do
- ebegin "Enabling LANGUAGE: ${lingua}"
- if [[ -d "${lingua}" ]]; then
- sed -e "/add_subdirectory([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \
- -e "/ADD_SUBDIRECTORY([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \
- -i CMakeLists.txt || die "Sed to uncomment linguas_${lingua} failed."
- fi
- if [[ -e "${lingua}.po.old" ]]; then
- mv "${lingua}.po.old" "${lingua}.po"
- fi
- eend $?
- done
-}
-
-# @FUNCTION: get_build_type
-# @DESCRIPTION:
-# Determine whether we are using live ebuild or tbzs.
-get_build_type() {
- if [[ ${SLOT} = live || ${PV} = 9999* ]]; then
- BUILD_TYPE="live"
- else
- BUILD_TYPE="release"
- fi
- export BUILD_TYPE
-}
-
-# @FUNCTION: migrate_store_dir
-# @DESCRIPTION:
-# Universal store dir migration
-# * performs split of kdebase to kdebase-apps when needed
-# * moves playground/extragear kde4-base-style to toplevel dir
-migrate_store_dir() {
- local cleandir="${ESVN_STORE_DIR}/KDE"
- if [[ -d "${cleandir}" ]]; then
- ewarn "'${cleandir}' has been found. Moving contents to new location."
- addwrite "${ESVN_STORE_DIR}"
- # Split kdebase
- local module
- if pushd "${cleandir}"/kdebase/kdebase > /dev/null; then
- for module in `find . -maxdepth 1 -type d -name [a-z0-9]\*`; do
- module="${module#./}"
- mkdir -p "${ESVN_STORE_DIR}/kdebase-${module}" && mv -f "${module}" "${ESVN_STORE_DIR}/kdebase-${module}" || \
- die "Failed to move to '${ESVN_STORE_DIR}/kdebase-${module}'."
- done
- popd > /dev/null
- rm -fr "${cleandir}/kdebase" || \
- die "Failed to remove ${cleandir}/kdebase. You need to remove it manually."
- fi
- # Move the rest
- local pkg
- for pkg in "${cleandir}"/*; do
- mv -f "${pkg}" "${ESVN_STORE_DIR}"/ || eerror "Failed to move '${pkg}'"
- done
- rmdir "${cleandir}" || die "Could not move obsolete KDE store dir. Please move '${cleandir}' contents to appropriate location (possibly ${ESVN_STORE_DIR}) and manually remove '${cleandir}' in order to continue."
- fi
-
- if ! hasq kde4-meta ${INHERITED}; then
- case ${KMNAME} in
- extragear*|playground*)
- local svnlocalpath="${ESVN_STORE_DIR}"/"${KMNAME}"/"${PN}"
- if [[ -d "${svnlocalpath}" ]]; then
- local destdir="${ESVN_STORE_DIR}"/"${ESVN_PROJECT}"/"`basename "${ESVN_REPO_URI}"`"
- ewarn "'${svnlocalpath}' has been found."
- ewarn "Moving contents to new location: ${destdir}"
- addwrite "${ESVN_STORE_DIR}"
- mkdir -p "${ESVN_STORE_DIR}"/"${ESVN_PROJECT}" && mv -f "${svnlocalpath}" "${destdir}" \
- || die "Failed to move to '${svnlocalpath}'"
- # Try cleaning empty directories
- rmdir "`dirname "${svnlocalpath}"`" 2> /dev/null
- fi
- ;;
- esac
- fi
-}
-
-# Functions handling KMLOADLIBS and KMSAVELIBS
-
-# @FUNCTION: save_library_dependencies
-# @DESCRIPTION:
-# Add exporting CMake dependencies for current package
-save_library_dependencies() {
- local depsfile="${T}/${PN}:${SLOT}"
-
- ebegin "Saving library dependencies in ${depsfile##*/}"
- echo "EXPORT_LIBRARY_DEPENDENCIES(\"${depsfile}\")" >> "${S}/CMakeLists.txt" || \
- die "Failed to save the library dependencies."
- eend $?
-}
-
-# @FUNCTION: install_library_dependencies
-# @DESCRIPTION:
-# Install generated CMake library dependencies to /var/lib/kde
-install_library_dependencies() {
- local depsfile="${T}/${PN}:${SLOT}"
-
- ebegin "Installing library dependencies as ${depsfile##*/}"
- insinto /var/lib/kde
- doins "${depsfile}" || die "Failed to install library dependencies."
- eend $?
-}
-
-# @FUNCTION: load_library_dependencies
-# @DESCRIPTION:
-# Inject specified library dependencies in current package
-load_library_dependencies() {
- local pn i depsfile
- ebegin "Injecting library dependencies from '${KMLOADLIBS}'"
-
- i=0
- for pn in ${KMLOADLIBS} ; do
- ((i++))
- depsfile="/var/lib/kde/${pn}:${SLOT}"
- [[ -r "${depsfile}" ]] || die "Depsfile '${depsfile}' not accessible. You probably need to reinstall ${pn}."
- sed -i -e "${i}iINCLUDE(\"${depsfile}\")" "${S}/CMakeLists.txt" || \
- die "Failed to include library dependencies for ${pn}"
- done
- eend $?
-}
diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass
deleted file mode 100644
index e894ce33e35..00000000000
--- a/eclass/kde4-meta.eclass
+++ /dev/null
@@ -1,712 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-meta.eclass,v 1.16 2009/03/15 15:27:13 alexxy Exp $
-#
-# @ECLASS: kde4-meta.eclass
-# @MAINTAINER:
-# kde@gentoo.org
-# @BLURB: Eclass for writing "split" KDE packages.
-# @DESCRIPTION:
-# This eclass provides all necessary functions for writing split KDE ebuilds.
-#
-# You must define KMNAME to use this eclass, and do so before inheriting it. All other variables are optional.
-# Do not include the same item in more than one of KMMODULE, KMMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY.
-
-inherit kde4-base versionator
-
-EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm
-
-if [[ -z ${KMNAME} ]]; then
- die "kde4-meta.eclass inherited but KMNAME not defined - broken ebuild"
-fi
-
-case ${KDEBASE} in
- kde-base)
- HOMEPAGE="http://www.kde.org/"
- LICENSE="GPL-2"
- ;;
- koffice)
- HOMEPAGE="http://www.koffice.org/"
- LICENSE="GPL-2"
- ;;
-esac
-
-# Add khelpcenter dependency when installing
-if [[ ${PN} != khelpcenter ]] && has doc ${IUSE//+} && use doc; then
- RDEPEND="${RDEPEND}
- >=kde-base/khelpcenter-${PV}:${SLOT}[kdeprefix=]
- "
-fi
-
-# Add dependencies that all packages in a certain module share.
-case ${KMNAME} in
- kdebase|kdebase-apps|kdebase-workspace|kdebase-runtime|kdegraphic)
- DEPEND="${DEPEND}
- >=kde-base/qimageblitz-0.0.4
- "
- RDEPEND="${RDEPEND}
- >=kde-base/qimageblitz-0.0.4
- "
- ;;
- kdenetwork)
- DEPEND="${DEPEND}
- >=kde-base/kdepimlibs-${PV}:${SLOT}[kdeprefix=]
- "
- RDEPEND="${RDEPEND}
- >=kde-base/kdepimlibs-${PV}:${SLOT}[kdeprefix=]
- "
- ;;
- kdepim)
- DEPEND="${DEPEND}
- dev-libs/boost
- >=kde-base/kdepimlibs-${PV}:${SLOT}[kdeprefix=]
- "
- RDEPEND="${RDEPEND}
- dev-libs/boost
- >=kde-base/kdepimlibs-${PV}:${SLOT}[kdeprefix=]
- "
- case ${PN} in
- akregator|kaddressbook|kjots|kmail|kmobiletools|knode|knotes|korganizer|ktimetracker)
- IUSE="+kontact"
- RDEPEND="${RDEPEND}
- kontact? ( >=kde-base/kontactinterfaces-${PV}:${SLOT}[kdeprefix=] )
- "
- ;;
- esac
- ;;
- kdegames)
- if [[ ${PN} != libkdegames ]]; then
- DEPEND="${DEPEND}
- >=kde-base/libkdegames-${PV}:${SLOT}[kdeprefix=]
- "
- RDEPEND="${RDEPEND}
- >=kde-base/libkdegames-${PV}:${SLOT}[kdeprefix=]
- "
- fi
- ;;
- koffice)
- [[ ${PN} != koffice-data ]] && IUSE="debug"
- RDEPEND="${RDEPEND}
- !kdeprefix? (
- !app-office/${PN}:0
- !app-office/koffice:0
- !app-office/koffice-meta:0
- )
- "
- COMMON_DEPEND="
- dev-cpp/eigen:2
- media-gfx/imagemagick[openexr?]
- media-libs/fontconfig
- media-libs/freetype:2
- "
- DEPEND="${DEPEND} ${COMMON_DEPEND}"
- RDEPEND="${RDEPEND} ${COMMON_DEPEND}"
- unset COMMON_DEPEND
- if [[ ${PN} != koffice-libs && ${PN} != koffice-data ]]; then
- DEPEND="${DEPEND}
- >=app-office/koffice-libs-${PV}:${SLOT}
- "
- RDEPEND="${RDEPEND}
- >=app-office/koffice-libs-${PV}:${SLOT}
- "
- fi
- ;;
-esac
-
-debug-print "line ${LINENO} ${ECLASS}: DEPEND ${DEPEND} - after metapackage-specific dependencies"
-debug-print "line ${LINENO} ${ECLASS}: RDEPEND ${RDEPEND} - after metapackage-specific dependencies"
-
-# Useful to build kde4-meta style stuff from extragear/playground (plasmoids etc)
-case ${BUILD_TYPE} in
- live)
- case ${KMNAME} in
- extragear*|playground*)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
- ESVN_PROJECT="${KMNAME}"
- ;;
- esac
- ;;
-esac
-
-# @ECLASS-VARIABLE: KMNAME
-# @DESCRIPTION:
-# Name of the parent-module (e.g. kdebase, kdepim, ...). You _must_ set it
-# _before_ inheriting this eclass, (unlike the other parameters), since it's
-# used to set $SRC_URI.
-
-# @ECLASS-VARIABLE: KMMODULE
-# @DESCRIPTION:
-# Specify exactly one subdirectory of $KMNAME here. Defaults to $PN.
-# The subdirectory listed here is treated exactly like items in $KMEXTRA.
-#
-# Example: The ebuild name of "kdebase/l10n" is kde-base/kdebase-l10n, because
-# just 'l10n' would be too confusing. Hence it sets KMMODULE="l10n".
-
-# @ECLASS-VARIABLE: KMNOMODULE
-# @DESCRIPTION:
-# If set to "true", $KMMODULE doesn't have to be defined.
-#
-# Example usage: If you're installing subdirectories of a package, like plugins,
-# you mark the top subdirectory (containing the package) as $KMEXTRACTONLY, and
-# set KMNOMODULE="true".
-if [[ -z ${KMMODULE} && ${KMNOMODULE} != true ]]; then
- KMMODULE=${PN}
-fi
-
-# @ECLASS-VARIABLE: KMEXTRA
-# @DESCRIPTION:
-# All subdirectories listed here will be extracted, compiled & installed.
-# $KMMODULE is always added to $KMEXTRA.
-# If the htmlhandbook USE-flag is set, and if this directory exists,
-# then "doc/$KMMODULE" is added to $KMEXTRA. In other cases, this should be
-# handled in the ebuild.
-# If the documentation is in a different subdirectory, you should add it to KMEXTRA.
-
-# @ECLASS-VARIABLE: KMCOMPILEONLY
-# @DESCRIPTION:
-# All subdirectories listed here will be extracted & compiled, but not installed.
-
-# TODO: better formulation may be needed
-# @ECLASS-VARIABLE: KMEXTRACTONLY
-# @DESCRIPTION:
-# All subdirectories listed here will be extracted, but neither compiled nor installed.
-# This can be used to avoid compilation in a subdirectory of a directory in $KMMODULE or $KMEXTRA
-
-# @ECLASS-VARIABLE: KMTARPARAMS
-# @DESCRIPTION:
-# Specify extra parameters to pass to tar, in kde4-meta_src_extract.
-# '-xpf -j' are passed to tar by default.
-
-# @FUNCTION: kde4-meta_pkg_setup
-# @DESCRIPTION:
-# Currently just calls its equivalent in kde4-base.eclass(5). Use this one in
-# split ebuilds.
-kde4-meta_pkg_setup() {
- debug-print-function ${FUNCNAME} "$@"
-
- kde4-base_pkg_setup
-}
-
-# @FUNCTION: kde4-meta_src_unpack
-# @DESCRIPTION:
-# This function unpacks the source for split ebuilds. See also
-# kde4-meta-src_extract.
-kde4-meta_src_unpack() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${BUILD_TYPE} = live ]]; then
- migrate_store_dir
- S="${WORKDIR}/${P}"
- mkdir -p "${S}"
- ESVN_RESTRICT="export" subversion_src_unpack
- subversion_wc_info
- subversion_bootstrap
- kde4-meta_src_extract
- else
- kde4-meta_src_extract
- fi
-}
-
-# FIXME: the difference between kde4-meta_src_extract and kde4-meta_src_unpack?
-
-# @FUNCTION: kde4-meta_src_extract
-# @DESCRIPTION:
-# A function to unpack the source for a split KDE ebuild.
-# Also see KMMODULE, KMNOMODULE, KMEXTRA, KMCOMPILEONLY, KMEXTRACTONLY and
-# KMTARPARAMS.
-kde4-meta_src_extract() {
- debug-print-function ${FUNCNAME} "$@"
-
- if [[ ${BUILD_TYPE} = live ]]; then
- local rsync_options subdir kmnamedir targetdir
- # Export working copy to ${S}
- einfo "Exporting parts of working copy to ${S}"
- kde4-meta_create_extractlists
-
- rsync_options="--group --links --owner --perms --quiet --exclude=.svn/"
-
- # Copy ${KMNAME} non-recursively (toplevel files)
- rsync ${rsync_options} "${ESVN_WC_PATH}"/${kmnamedir}* "${S}" \
- || die "${ESVN}: can't export toplevel files to '${S}'."
- # Copy cmake directory
- if [[ -d "${ESVN_WC_PATH}/${kmnamedir}cmake" ]]; then
- rsync --recursive ${rsync_options} "${ESVN_WC_PATH}/${kmnamedir}cmake" "${S}" \
- || die "${ESVN}: can't export cmake files to '${S}'."
- fi
- # Copy all subdirectories
- for subdir in $(__list_needed_subdirectories); do
- targetdir=""
- if [[ $subdir = doc/* && ! -e "$ESVN_WC_PATH/$kmnamedir$subdir" ]]; then
- continue
- fi
-
- [[ ${subdir%/} = */* ]] && targetdir