summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2009-04-13 00:02:45 +0000
committerTomas Chvatal <scarabeus@gentoo.org>2009-04-13 00:02:45 +0000
commit14672ad826d195c5d1f969c9a303d6fc2f14de2d (patch)
tree0bc9f3245990376feb98d0d886294b438b14a249 /eclass
parentUpdate mask for kde4. Block for change older than 4.2.2 due to eclass update ... (diff)
downloadgentoo-2-14672ad826d195c5d1f969c9a303d6fc2f14de2d.tar.gz
gentoo-2-14672ad826d195c5d1f969c9a303d6fc2f14de2d.tar.bz2
gentoo-2-14672ad826d195c5d1f969c9a303d6fc2f14de2d.zip
Update kde4 eclasses
Add back support for doc handling (now via doc useflag) Force kdeprefix only for kde-base things (others are going unprefixed to /usr) -> Note for this: if user find that some application is pulling [-kdeprefix] kde uninstall/install of that app should help. Rewritten slot handling with simpler code. Added detection and alert system for finding what aplication break sth for /usr/share/config and /usr/share/kde4 and screw up perms. Left for next time: "Support for stable live (live packages from stable branch [shiny huh]). :]"
Diffstat (limited to 'eclass')
-rw-r--r--eclass/kde4-base.eclass639
-rw-r--r--eclass/kde4-functions.eclass153
-rw-r--r--eclass/kde4-meta.eclass122
3 files changed, 399 insertions, 515 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
index c2b2171690ab..d10ecd2dcbdf 100644
--- a/eclass/kde4-base.eclass
+++ b/eclass/kde4-base.eclass
@@ -1,6 +1,6 @@
# 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.33 2009/03/26 21:55:09 jmbsvicetto Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.34 2009/04/13 00:02:45 scarabeus Exp $
# @ECLASS: kde4-base.eclass
# @MAINTAINER:
@@ -22,102 +22,6 @@ fi
EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm
-# @FUNCTION: kde4-base_set_qt_dependencies
-# @DESCRIPTION:
-# Set qt dependencies. And use opengl based on OPENGL_REQUIRED variable.
-kde4-base_set_qt_dependencies() {
- local qtdepend qtopengldepend
-
- qtdepend="
- 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
- "
- qtwebkitdepend="
- x11-libs/qt-webkit:4
- "
- qtopengldepend="
- x11-libs/qt-opengl:4
- "
-
- case ${WEBKIT_REQUIRED} in
- always)
- qtdepend="${qtdepend}
- ${qtwebkitdepend}"
- ;;
- optional)
- IUSE="${IUSE} webkit"
- qtdepend="${qtdepend}
- webkit? ( ${qtwebkitdepend} )
- "
- ;;
- *) WEBKIT_REQUIRED="never" ;;
- esac
- # opengl dependencies
- case ${OPENGL_REQUIRED} in
- always)
- qtdepend="${qtdepend}
- ${qtopengldepend}
- "
- ;;
- optional)
- IUSE="${IUSE} opengl"
- qtdepend="${qtdepend}
- opengl? ( ${qtopengldepend} )
- "
- ;;
- *) OPENGL_REQUIRED="never" ;;
- esac
-
- COMMONDEPEND="${COMMONDEPEND} ${qtdepend}"
-}
-
-if [[ ${NEED_KDE} != "none" ]] ; then
- # Qt
- kde4-base_set_qt_dependencies
-
- # X11 libs
- COMMONDEPEND="${COMMONDEPEND}
- x11-libs/libXext
- x11-libs/libXt
- x11-libs/libXxf86vm
- "
-
- # 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
-
- # Set common dependencies for all ebuilds that inherit this eclass
- DEPEND="${DEPEND} ${COMMONDEPEND}
- >=dev-util/cmake-2.6.2
- dev-util/pkgconfig
- >=sys-apps/sandbox-1.3.2
- "
- RDEPEND="${RDEPEND} ${COMMONDEPEND}"
-fi # NEED_KDE != NONE block
-
-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
-
# @ECLASS-VARIABLE: OPENGL_REQUIRED
# @DESCRIPTION:
# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
@@ -136,242 +40,223 @@ WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
# This variable must be set before inheriting any eclasses. Defaults to 'never'.
CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
-case ${CPPUNIT_REQUIRED} in
+# @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)
- DEPEND="${DEPEND}
- dev-util/cppunit
+ 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? ( dev-util/cppunit )
+ test? ( ${cppuintdepend} )
"
;;
- *)
- CPPUNIT_REQUIRED="never"
- ;;
+ *) ;;
esac
+unset cppuintdepend
-# @ECLASS-VARIABLE: NEED_KDE
-# @DESCRIPTION:
-# This variable sets the version of KDE4 which will be used by the eclass.
-# For kde-base packages, if it is not set by the ebuild,
-# it's assumed that the required KDE4 version is the latest available.
-# For non kde-base packages, it is also set to the latest by default.
-#
-# For more precise adjustments or for specifying particular kde version,
-# KDE_MINIMAL variable can be used.
-#
-# @CODE
-# Acceptable values are:
-# - latest - Use latest version in the portage tree
-# Default for kde-base ebuilds.
-# - live - Use live release (live ebuilds)
-# - none - Let the ebuild handle SLOT, kde dependencies, KDEDIR, ...
-# - 4.2, 4.1, kde-4 - respective slots for kde versions
-# @CODE
-# Note: default NEED_KDE is latest
-NEED_KDE="${NEED_KDE:=latest}"
-export NEED_KDE
+# 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
-# @ECLASS-VARIABLE: KDE_MINIMAL
-# @DESCRIPTION:
-# This wariable is used when NEED_KDE="latest" is set, to specify the
-# required KDE minimal version for which apps will work.
-# @CODE
-# KDE_MINIMAL="-4.1"
-# @CODE
-# Note: default minimal version is kde-4.1, which means that the apps will work
-# with any KDE version >=${KDE_MINIMAL}
-KDE_MINIMAL="${KDE_MINIMAL:=4.2}"
-export KDE_MINIMAL
-
-# FIXME: the code section, explanation of live. The last sentence needs other
-# formulation too.
-#
-# @ECLASS-VARIABLE: KDE_WANTED
-# @DESCRIPTION:
-# When NEED_KDE=latest is inherited, KDE_WANTED serves to indicate the prefered kde
-# version. It's value is looked for before any other. Useful when having more
-# +kdeprefix installs: you can choose which kde version, if present, to link
-# against.
-#
-# @CODE
-# Acceptable values are:
-# stable = whatever is main tree (now 4.1)
-# testing = whatever is in testing on main tree
-# snapshot = whatever is released under snapshots (4.2 at present)
-# live = live svn ebuilds, also default value, do not be scared it goes in this
-#
-# order: live->snapshot->testing->stable, when searching for kde. This way we
-# allow users to use just kde4snapshots and use software from the tree.
-KDE_WANTED="${KDE_WANTED:=live}"
-export KDE_WANTED
-
-case ${NEED_KDE} in
- latest)
- if [[ $KDEBASE = kde-base ]]; then
- case ${PV} in
- 4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*)
- _kdedir="4.3"
- _pv="-${PV}:4.3"
- _pvn="-${PV}"
- ;;
- 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*)
- _kdedir="4.2"
- _pv="-${PV}:4.2"
- _pvn="-${PV}"
- ;;
- 4.1*| 4.0.9* | 4.0.8*)
- _kdedir="4.1"
- _pv="-${PV}:4.1"
- _pvn="-${PV}"
- ;;
- 4.0*)
- _kdedir="4.0"
- _pv="-${PV}:kde-4"
- _pvn="-${PV}"
- ;;
- 3.9*)
- _kdedir="3.9"
- _pv="-${PV}:kde-4"
- _pvn="-${PV}"
- ;;
- 9999*)
- _kdedir="live"
- _pv="-${PV}:live"
- _pvn="-${PV}"
- ;;
- *)
- die "NEED_KDE=latest not supported for PV=${PV}" ;;
- esac
- _operator=">="
+# 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
- # this creates dependency on any version of kde4
- _operator=">="
- _pv="-${KDE_MINIMAL}"
- _pvn=${_pv}
+ # 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
;;
- # NEED_KDE="${PV}"
- scm|svn|live|9999*)
- _kdedir="live"
- _operator=">="
- _pv="-${NEED_KDE}:live"
- _pvn="-${NEED_KDE}"
- export NEED_KDE="live"
- ;;
- 4.3 | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*)
- _kdedir="4.3"
- _pv="-${NEED_KDE}:4.3"
- _pvn="-${NEED_KDE}"
- _operator=">="
- ;;
- 4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*)
- _kdedir="4.2"
- _pv="-${NEED_KDE}:4.2"
- _pvn="-${NEED_KDE}"
- _operator=">="
- ;;
- 4.1 | 4.0.9* | 4.0.8*)
- _kdedir="4.1"
- _pv="-${NEED_KDE}:4.1"
- _pvn="-${NEED_KDE}"
- _operator=">="
- ;;
- 4.0* | 4)
- _kdedir="4.0"
- _operator=">="
- _pv="-${NEED_KDE}:kde-4"
- _pvn="-${NEED_KDE}"
- ;;
- 3.9*)
- _kdedir="3.9"
- _operator=">="
- _pv="-${NEED_KDE}:kde-4"
- _pvn="-${NEED_KDE}"
- ;;
-
- # The ebuild handles dependencies, KDEDIR, SLOT.
- none)
- :
+ koffice)
+ SLOT="2"
+ _pv="-${KDE_MINIMAL}"
+ _pvn="${_pv}"
;;
*)
- die "NEED_KDE=${NEED_KDE} currently not supported."
+ _pv="-${KDE_MINIMAL}"
+ _pvn="${_pv}"
;;
-esac
-
-if [[ ${NEED_KDE} != none ]]; then
- #Set the SLOT
- if [[ -n ${KDEBASE} ]]; then
- if [[ ${NEED_KDE} = live ]]; then
- SLOT="live"
- else
- case ${KMNAME} in
- koffice)
- case ${PV} in
- 9999*) SLOT="live" ;;
- *) SLOT="2" ;;
- esac
- ;;
- kdevelop)
- case ${PV} in
- 9999*) SLOT="live" ;;
- 4.0*|3.9*) SLOT="4" ;;
- esac
- ;;
- kdevplatform)
- case ${PV} in
- 9999*) SLOT="live" ;;
- 1.0*|0.9*) SLOT="1" ;;
- esac
- ;;
- *)
- case ${PV} in
- 9999*) SLOT="live" ;;
- 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" ;;
- 4.1* | 4.0.9* | 4.0.8*) SLOT="4.1" ;;
- *) SLOT="4.1" ;;
- esac
- ;;
- esac
- fi
- fi
- # Block installation of other SLOTS unless kdeprefix
- for KDE_SLOT in ${KDE_SLOTS[@]}; do
- # block non kdeprefix ${PN} on other slots
- # we do this only if we do not depend on any version of kde
- if [[ ${SLOT} != ${KDE_SLOT} ]]; then
- RDEPEND="${RDEPEND}
- !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )
- "
- fi
- done
+esac
- # Adding kdelibs and kdebase-data deps to all other packages.
- if [[ ${PN} != kdelibs ]]; then
- DEPEND="${DEPEND}
- kdeprefix? ( ${_operator}kde-base/kdelibs${_pv}[kdeprefix] )
- !kdeprefix? ( ${_operator}kde-base/kdelibs${_pvn}[-kdeprefix] )
+# 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] )
"
- RDEPEND="${RDEPEND}
- kdeprefix? ( ${_operator}kde-base/kdelibs${_pv}[kdeprefix] )
- !kdeprefix? ( ${_operator}kde-base/kdelibs${_pvn}[-kdeprefix] )
+ else
+ kdecommondepend="${kdecommondepend}
+ >=kde-base/kdelibs${_pv}
"
- if [[ ${PN} != kdepimlibs && ${PN} != kdebase-data ]]; then
- RDEPEND="${RDEPEND}
- kdeprefix? ( ${_operator}kde-base/kdebase-data${_pv}[kdeprefix] )
- !kdeprefix? ( ${_operator}kde-base/kdebase-data${_pvn}[-kdeprefix] )
- "
- fi
fi
- unset _operator _pv _pvn
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
@@ -382,7 +267,7 @@ case ${BUILD_TYPE} in
# Split ebuild, or extragear stuff
if [[ -n ${KMNAME} ]]; then
ESVN_PROJECT="${KMNAME}"
- if [[ -z ${KMNOMODULE} && -z ${KMMODULE} ]]; then
+ if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
KMMODULE="${PN}"
fi
# Split kde-base/ ebuilds: (they reside in trunk/KDE)
@@ -393,11 +278,18 @@ case ${BUILD_TYPE} in
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}"
@@ -421,7 +313,7 @@ case ${BUILD_TYPE} in
kdebase-apps)
_kmname="kdebase" ;;
*)
- _kmname=${KMNAME} ;;
+ _kmname="${KMNAME}" ;;
esac
else
_kmname=${PN}
@@ -452,49 +344,57 @@ debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
# @ECLASS-VARIABLE: PREFIX
# @DESCRIPTION:
-# Set the installation PREFIX. All kde-base ebuilds go into the KDE4 installation directory.
-# Applications installed by the other ebuilds go into ${KDEDIR} by default, this value
-# can be superseded by defining PREFIX before inheriting kde4-base.
-# This value is set on pkg_setup
-PREFIX=""
-
-debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SLOT ${SLOT} - NEED_KDE ${NEED_KDE}"
+# 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:
-# Adds flags needed by all of KDE 4 to $QT4_BUILT_WITH_USE_CHECK. Uses
-# kde4-functions_check_use from kde4-functions.eclass to print appropriate
-# errors and die if any required flags listed in $QT4_BUILT_WITH_USE_CHECK or
-# $KDE4_BUILT_WITH_USE_CHECK are missing.
+# Do the basic kdeprefix KDEDIR settings and determine with which kde should
+# optional applications link
kde4-base_pkg_setup() {
debug-print-function ${FUNCNAME} "$@"
- # Don't set KDEHOME during compile, it will cause access violations
- unset KDEHOME
+ # 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})."
- # Search for best suitable kde installation for misc kde package.
- # Computation based on NEED_KDE and KDE_MINIMAL
- [[ ${KDEBASE} != kde-base ]] && [[ ${NEED_KDE} = latest || ${NEED_KDE} = none ]] && get_latest_kdedir
+ # Don't set KDEHOME during compilation, it will cause access violations
+ unset KDEHOME
- # Set PREFIX
- if use kdeprefix; then
- KDEDIR="/usr/kde/${_kdedir}"
- KDEDIRS="/usr/local/:/usr:${KDEDIR}"
+ if [[ ${KDEBASE} = kde-base ]]; then
+ if use kdeprefix; then
+ KDEDIR="/usr/kde/${_kdedir}"
+ else
+ KDEDIR="/usr"
+ fi
+ PREFIX="${PREFIX:-${KDEDIR}}"
else
- KDEDIR="/usr"
- KDEDIRS="/usr/local/:/usr"
+ # 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
- # Set the prefix based on KDEDIR
- # Make it a consequence of kdeprefix
- PREFIX=${KDEDIR}
+ # Not needed anymore
unset _kdedir
- # check if qt has correct deps
- [[ -n ${QT4_BUILT_WITH_USE_CHECK} || -n ${KDE4_BUILT_WITH_USE_CHECK[@]} ]] && \
- die "built_with_use illegal in this EAPI!"
-
- if [[ ${BUILD_TYPE} = live && -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
+ 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."
@@ -554,27 +454,14 @@ kde4-base_src_configure() {
append-cppflags -DQT_NO_DEBUG
fi
- # Enable generation of HTML handbook
- if has htmlhandbook ${IUSE//+} && use htmlhandbook; then
- ebegin "Enabling building of HTML handbook"
- mycmakeargs="${mycmakeargs} -DKDE4_ENABLE_HTMLHANDBOOK=ON"
- eend $?
- fi
-
# Build tests in src_test only, where we override this value
- mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=OFF"
+ local cmakeargs="-DKDE4_BUILD_TESTS=OFF"
# Set distribution name
- [[ ${PN} = kdelibs ]] && mycmakeargs="${mycmakeargs} -DKDE_DISTRIBUTION_TEXT=Gentoo"
-
- # runpath linking
- mycmakeargs="${mycmakeargs} -DKDE4_USE_ALWAYS_FULL_RPATH=ON"
+ [[ ${PN} = kdelibs ]] && cmakeargs="${cmakeargs} -DKDE_DISTRIBUTION_TEXT=Gentoo"
# Here we set the install prefix
- mycmakeargs="${mycmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}"
-
- # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
- use kdeprefix || mycmakeargs="${mycmakeargs} -DSYSCONF_INSTALL_DIR=/etc"
+ cmakeargs="${cmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}"
# Set environment
QTEST_COLORED=1
@@ -583,20 +470,28 @@ kde4-base_src_configure() {
# Hardcode path to *.pc KDE files
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig"
- # Override some environment variables
- PATH="${KDEDIR}/bin:${PATH}"
- LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}"
-
- # Set cmake prefixes to allow buildsystem to localize valid KDE installation when more are present
- if use kdeprefix; then
- mycmakeargs="${mycmakeargs}
- -DCMAKE_SYSTEM_INCLUDE_PATH=${KDEDIR}/include
- -DCMAKE_SYSTEM_LIBRARY_PATH=${KDEDIR}/$(get_libdir)
- -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR}
- -DCMAKE_SYSTEM_PROGRAM_PATH=${KDEDIR}/bin"
+ # 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
- [ -e CMakeLists.txt ] && cmake-utils_src_configure
+ 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
@@ -657,11 +552,11 @@ kde4-base_src_make_doc() {
done
fi
- if [[ -n ${KDEBASE} && -d "${D}/usr/share/doc/${PF}" ]]; then
+ if [[ -n ${KDEBASE} ]] && [[ -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."
+ dodir /usr/share/doc/KDE4 && \
+ mv "${D}/usr/share/doc/${PF}" "${D}"/usr/share/doc/KDE4/ || \
+ die "Failed to move docs to KDE4/."
fi
}
diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass
index 528b57fb5614..79083950b4fd 100644
--- a/eclass/kde4-functions.eclass
+++ b/eclass/kde4-functions.eclass
@@ -1,6 +1,6 @@
# 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 $
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-functions.eclass,v 1.15 2009/04/13 00:02:45 scarabeus Exp $
# @ECLASS: kde4-functions.eclass
# @MAINTAINER:
@@ -24,40 +24,40 @@ esac
# This gets set to a non-zero value when a package is considered a kde or
# koffice ebuild.
-if [[ $CATEGORY = kde-base ]]; then
+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
+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-ebuilds use
-# KDE_LIVE_SLOTS instead.
-KDE_SLOTS=( kde-4 4.1 4.2 4.3 )
+# 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 all KDE live versions.
-KDE_LIVE_SLOTS=( live )
+# 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.
-#
-# Note that kde4-base.eclass already does this.
buildsycoca() {
debug-print-function ${FUNCNAME} "$@"
-
+
if [[ -z ${ROOT%%/} && -x ${KDEDIR}/bin/kbuildsycoca4 ]]; then
- # Make sure tha cache file exists, or kbuildsycoca4 will fail
+ # 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
@@ -65,11 +65,25 @@ buildsycoca() {
ebegin "Running kbuildsycoca4 to build global database"
# This is needed because we support multiple kde versions installed together.
- XDG_DATA_DIRS="/usr/share:${KDEDIR}/share:/usr/local/share" \
+ # 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
@@ -105,39 +119,39 @@ 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"
+ 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
+ [[ -e "${wp}.po" ]] && mv "${wp}.po" "sr@Latn.po"
+ if [[ -d "${wp}" ]]; then
# move dir and fix cmakelists
- mv "$wp" "sr@Latn"
+ mv "${wp}" "sr@Latn"
sed -i \
- -e "s:$wp:sr@Latin:g" \
+ -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"
+ 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
+ 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"
+ if [[ -e "${lingua}.po.old" ]]; then
+ mv "${lingua}.po.old" "${lingua}.po"
fi
eend $?
done
@@ -147,7 +161,7 @@ enable_selected_linguas() {
# @DESCRIPTION:
# Determine whether we are using live ebuild or tbzs.
get_build_type() {
- if [[ $SLOT = live || $PV = 9999* ]]; then
+ if [[ ${SLOT} = live || ${PV} = 9999* ]]; then
BUILD_TYPE="live"
else
BUILD_TYPE="release"
@@ -155,65 +169,13 @@ get_build_type() {
export BUILD_TYPE
}
-# @FUNCTION: get_latest_kdedir
-# @DESCRIPTION:
-# We set up KDEDIR according to the latest KDE version installed; installing our
-# package for all available installs is just insane.
-# We can check for kdelibs because it is the most basic package; no KDE package
-# working without it. This might be changed in future.
-get_latest_kdedir() {
- case ${KDE_WANTED} in
- # note this will need to be updated as stable moves and so on
- live)
- _versions="9999 4.2.61 4.2.0 4.1.0"
- ;;
- snapshot)
- _versions="4.2.61 4.2.0 4.1.0 9999"
- ;;
- testing)
- _versions="4.2.0 4.1.0 4.2.61 9999"
- ;;
- stable)
- _versions="4.2.0 4.1.0 4.1.61 9999"
- ;;
- *) die "KDE_WANTED=${KDE_WANTED} not supported here." ;;
- esac
- # check if exists and fallback as we go
- for X in ${_versions}; do
- if has_version ">=kde-base/kdelibs-${X}"; then
- # figure out which X we are in and set it into _kdedir
- case ${X} in
- # also keep track here same for kde_wanted
- 9999)
- _kdedir="live"
- break
- ;;
- 4.3.0 | 4.2.61)
- _kdedir="4.3"
- break
- ;;
- 4.2.0 | 4.1.61)
- _kdedir="4.2"
- break
- ;;
- 4.1.0)
- _kdedir="4.1"
- break
- ;;
- esac
- fi
- done
-
- debug-print-function ${FUNCNAME} "$@" "KDE_WANTED=${KDE_WANTED} -> _kdedir=${_kdedir}"
-}
-
# @FUNCTION: migrate_store_dir
# @DESCRIPTION:
-# Migrate the remnants of ${ESVN_STORE_DIR}/KDE/ to ${ESVN_STORE_DIR}/.
-# Perform experimental split of kdebase to kdebase-apps.
+# 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
- cleandir="${ESVN_STORE_DIR}/KDE"
+ local cleandir="${ESVN_STORE_DIR}/KDE"
if [[ -d "${cleandir}" ]]; then
ewarn "'${cleandir}' has been found. Moving contents to new location."
addwrite "${ESVN_STORE_DIR}"
@@ -232,10 +194,28 @@ migrate_store_dir() {
# Move the rest
local pkg
for pkg in "${cleandir}"/*; do
- mv -f "${pkg}" "${ESVN_STORE_DIR}"/ || eerror "failed to move ${pkg}"
+ 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
@@ -246,7 +226,7 @@ migrate_store_dir() {
save_library_dependencies() {
local depsfile="${T}/${PN}:${SLOT}"
- ebegin "Saving library dependendencies in ${depsfile##*/}"
+ ebegin "Saving library dependencies in ${depsfile##*/}"
echo "EXPORT_LIBRARY_DEPENDENCIES(\"${depsfile}\")" >> "${S}/CMakeLists.txt" || \
die "Failed to save the library dependencies."
eend $?
@@ -256,8 +236,9 @@ save_library_dependencies() {
# @DESCRIPTION:
# Install generated CMake library dependencies to /var/lib/kde
install_library_dependencies() {
- local depsfile="$T/$PN:$SLOT"
- ebegin "Installing library dependendencies as ${depsfile##*/}"
+ local depsfile="${T}/${PN}:${SLOT}"
+
+ ebegin "Installing library dependencies as ${depsfile##*/}"
insinto /var/lib/kde
doins "${depsfile}" || die "Failed to install library dependencies."
eend $?
@@ -268,7 +249,7 @@ install_library_dependencies() {
# Inject specified library dependencies in current package
load_library_dependencies() {
local pn i depsfile
- ebegin "Injecting library dependendencies from '${KMLOADLIBS}'"
+ ebegin "Injecting library dependencies from '${KMLOADLIBS}'"
i=0
for pn in ${KMLOADLIBS} ; do
diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass
index 631a28a5c4ed..e3248c5b1b85 100644
--- a/eclass/kde4-meta.eclass
+++ b/eclass/kde4-meta.eclass
@@ -1,6 +1,6 @@
# 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 $
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-meta.eclass,v 1.17 2009/04/13 00:02:45 scarabeus Exp $
#
# @ECLASS: kde4-meta.eclass
# @MAINTAINER:
@@ -31,6 +31,13 @@ case ${KDEBASE} in
;;
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)
@@ -79,52 +86,30 @@ case ${KMNAME} in
;;
koffice)
[[ ${PN} != koffice-data ]] && IUSE="debug"
- case ${PV} in
- 9999*)
- DEPEND="${DEPEND}
- !app-office/${PN}:2
- "
- ;;
- 1.9*|2*)
- DEPEND="${DEPEND}
- !app-office/${PN}:live
- "
- ;;
- esac
- DEPEND="${DEPEND}
- !app-office/${PN}:0
- !app-office/koffice:0
- !app-office/koffice-meta:0
+ RDEPEND="${RDEPEND}
+ !kdeprefix? (
+ !app-office/${PN}:0
+ !app-office/koffice:0
+ !app-office/koffice-meta:0
+ )
"
- case ${PN} in
- koffice-data)
- DEPEND="${DEPEND}
- media-libs/lcms
- "
- RDEPEND="${RDEPEND}
- media-libs/lcms
- "
- ;;
- *)
- 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}[kdeprefix=]
- "
- RDEPEND="${RDEPEND}
- >=app-office/koffice-libs-${PV}:${SLOT}[kdeprefix=]
- "
- fi
- ;;
- esac
+ 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
@@ -137,10 +122,10 @@ case ${BUILD_TYPE} in
case ${KMNAME} in
extragear*|playground*)
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
+ ESVN_PROJECT="${KMNAME}"
;;
esac
;;
- *) ;;
esac
# @ECLASS-VARIABLE: KMNAME
@@ -345,7 +330,8 @@ kde4-meta_src_extract() {
kde4-meta_create_extractlists() {
debug-print-function ${FUNCNAME} "$@"
- if has htmlhandbook ${IUSE//+} && use htmlhandbook; then
+ # TODO change to KMEXTRA for more strict check
+ if has doc ${IUSE//+} && use doc && [[ -n ${KMMODULE} ]]; then
# We use the basename of $KMMODULE because $KMMODULE can contain
# the path to the module subdirectory.
KMEXTRA_NONFATAL="${KMEXTRA_NONFATAL} doc/${KMMODULE##*/}"
@@ -417,7 +403,7 @@ kde4-meta_create_extractlists() {
case ${KMNAME} in
kdebase-runtime|kdebase-workspace|kdeedu|kdegames|kdegraphics|kdepim)
case ${PN} in
- libkdegames|libkdeedu|marble|libkworkspace)
+ libkdegames|libkdeedu|libkworkspace)
KMEXTRA="${KMEXTRA}
cmake/modules/"
;;
@@ -609,6 +595,14 @@ kde4-meta_change_cmakelists() {
;;
esac
;;
+ kdewebdev)
+ # Disable hardcoded kdepimlibs check
+ sed -e 's/find_package(KdepimLibs REQUIRED)/macro_optional_find_package(KdepimLibs)/' \
+ -e 's/find_package(LibXml2 REQUIRED)/macro_optional_find_package(LibXml2 REQUIRED)/' \
+ -e 's/find_package(LibXslt REQUIRED)/macro_optional_find_package(LibXslt REQUIRED)/' \
+ -e 's/find_package(Boost REQUIRED)/macro_optional_find_package(Boost REQUIRED)/' \
+ -i CMakeLists.txt || die "failed to disable hardcoded checks"
+ ;;
koffice)
# prevent collisions
if [[ ${PN} != koffice-data ]]; then
@@ -631,6 +625,19 @@ kde4-meta_change_cmakelists() {
kde4-meta_src_configure() {
debug-print-function ${FUNCNAME} "$@"
+ # Set some cmake default values here (usually workarounds for automagic deps)
+ case ${KMNAME} in
+ kdewebdev)
+ mycmakeargs="
+ -DWITH_KdepimLibs=OFF
+ -DWITH_LibXml2=OFF
+ -DWITH_LibXslt=OFF
+ -DWITH_Boost=OFF
+ -DWITH_LibTidy=OFF
+ ${mycmakeargs}"
+ ;;
+ esac
+
kde4-base_src_configure
}
@@ -660,12 +667,7 @@ kde4-meta_src_test() {
kde4-meta_src_install() {
debug-print-function $FUNCNAME "$@"
- kde4-meta_src_make_doc
- cmake-utils_src_install
-
- if [[ -n ${KMSAVELIBS} ]]; then
- install_library_dependencies
- fi
+ kde4-base_src_install
}
# @FUNCTION: kde4-meta_src_make_doc
@@ -685,11 +687,17 @@ kde4-meta_src_make_doc() {
# @FUNCTION: kde4-meta_pkg_postinst
# @DESCRIPTION:
-# Currently just calls its equivalent in kde4-base.eclass(5). Use this in split
-# ebuilds.
+# Display information about application handbook and invoke kbuildsycoca4.
kde4-meta_pkg_postinst() {
debug-print-function ${FUNCNAME} "$@"
+ if has doc ${IUSE//+} && ! use doc; then
+ echo
+ einfo "Application handbook for ${PN} has not been installed."
+ einfo "To install handbook, reemerge =${CATEGORY}/${P} with 'doc' USE flag."
+ echo
+ fi
+
kde4-base_pkg_postinst
}