diff options
-rw-r--r-- | eclass/kde4-base.eclass | 282 | ||||
-rw-r--r-- | eclass/kde4-functions.eclass | 187 | ||||
-rw-r--r-- | eclass/kde4-meta.eclass | 53 |
3 files changed, 344 insertions, 178 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass index 721f365390af..dd1dde7b29e0 100644 --- a/eclass/kde4-base.eclass +++ b/eclass/kde4-base.eclass @@ -1,40 +1,51 @@ # Copyright 2007-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.12 2008/05/17 14:09:03 zlin Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.13 2008/10/02 06:49:02 jmbsvicetto Exp $ # @ECLASS: kde4-base.eclass # @MAINTAINER: # kde@gentoo.org -# @BLURB: This eclass provides functions for kde 4.0 ebuilds +# @BLURB: This eclass provides functions for kde 4.X ebuilds # @DESCRIPTION: # The kde4-base.eclass provides support for building KDE4 monolithic ebuilds # and KDE4 applications. # # NOTE: This eclass uses the SLOT dependencies from EAPI="1" or compatible, -# hence you must define EAPI="1" in the ebuild, before inheriting any eclasses. +# and use deps from EAPI="2", hence you must define EAPI="2" in the ebuild, +# before inheriting any eclasses. -inherit base eutils multilib cmake-utils kde4-functions +inherit base cmake-utils eutils kde4-functions multilib -EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_postinst pkg_postrm +case "${EAPI}" in + 2) + EXPORT_FUNCTIONS pkg_setup src_unpack src_configure src_compile src_test src_install pkg_postinst pkg_postrm + ;; + *) + EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_postinst pkg_postrm + ;; +esac +# Set the qt dependencies kde4-base_set_qt_dependencies() { local qt qtcore qtgui qt3support qtdepend qtopengldepend # use dependencies case "${EAPI}" in - kdebuild-1) - qt="[accessibility][dbus][gif][jpeg][png][qt3support][ssl][zlib]" - qtcore="[qt3support][ssl]" - qtgui="[accessibility][dbus]" - qt3support="[accessibility]" + 2 | 2_pre3 | 2_pre2 | 2_pre1) + + qt="[" case "${OPENGL_REQUIRED}" in always) - qt="${qt}[opengl]" + qt="${qt}opengl," ;; optional) - qt="${qt}[opengl?]" + qt="${qt}opengl?," ;; esac + qt="${qt}accessibility,dbus,gif,jpeg,png,qt3support,ssl,zlib]" + qtcore="[qt3support,ssl]" + qtgui="[accessibility,dbus]" + qt3support="[accessibility]" ;; esac @@ -50,7 +61,7 @@ kde4-base_set_qt_dependencies() { # allow monolithic qt for PV < 4.1 case "${PV}" in - scm|9999.4|4.1*) : ;; + scm|9999*|4.1*|4.0.9*|4.0.8*) : ;; *) qtdepend="|| ( ( ${qtdepend} ) >=x11-libs/qt-4.3.3:4${qt} )" qtopengldepend="|| ( ${qtopengldepend} >=x11-libs/qt-4.3.3:4 )" @@ -77,13 +88,30 @@ kde4-base_set_qt_dependencies() { } kde4-base_set_qt_dependencies -DEPEND="${DEPEND} ${COMMONDEPEND} - >=dev-util/cmake-2.4.7-r1 +# Set the cmake dependencies +case "${PV}" in + 9999*) + CMAKEDEPEND=">=dev-util/cmake-2.6" + ;; + *) + CMAKEDEPEND=">=dev-util/cmake-2.4.7-r1" + ;; +esac + +# Set the common dependencies +DEPEND="${DEPEND} ${COMMONDEPEND} ${CMAKEDEPEND} dev-util/pkgconfig x11-libs/libXt x11-proto/xf86vidmodeproto" RDEPEND="${RDEPEND} ${COMMONDEPEND}" +# Add the kdeprefix use flag +case "${EAPI}" in + 2 | 2_pre3 | 2_pre2 | 2_pre1) + IUSE="${IUSE} kdeprefix" + ;; +esac + # @ECLASS-VARIABLE: OPENGL_REQUIRED # @DESCRIPTION: # Is qt-opengl required? Possible values are 'always', 'optional' and 'never'. @@ -144,84 +172,150 @@ case ${NEED_KDE} in # Should only be used by 'kde-base'-ebuilds if [[ "${KDEBASE}" == "kde-base" ]]; then case ${PV} in - 3.9*) _kdedir="3.9" ;; - 4*) _kdedir="4.0" ;; - *) die "NEED_KDE=latest not supported for PV=${PV}" ;; + 4.1*| 4.0.9* | 4.0.8*) + _kdedir="4.1" + _pv="-${PV}:4.1" ;; + 4.0*) + _kdedir="4.0" + _pv="-${PV}:kde-4" ;; + 3.9*) + _kdedir="3.9" + _pv="-${PV}:kde-4" ;; + *) + die "NEED_KDE=latest not supported for PV=${PV}" ;; esac _operator=">=" - _pv="-${PV}:kde-4" else - _kdedir="4.0" - _pv=":kde-4" + case ${PV} in + 4.1 | 4.0.9* | 4.0.8*) _kdedir="4.1" ;; + 4.0*) _kdedir="4.0" ;; + 3.9*) _kdedir="3.9" ;; + *) die "NEED_KDE=latest not supported for PV=${PV}" ;; + esac fi ;; - scm|svn|9999*|:kde-svn) - _kdedir="svn" - _pv=":kde-svn" - export NEED_KDE="svn" - ;; - *:kde-svn) + + # NEED_KDE=":${SLOT}" + :kde-svn) _kdedir="svn" - _operator=">=" _pv="-${NEED_KDE}" export NEED_KDE="svn" ;; - # The ebuild handles dependencies, KDEDIR, SLOT. - none) - : + :4.1) + _kdedir="4.1" + _pv="${NEED_KDE}" ;; - # NEED_KDE=":${SLOT}" :kde-4) _kdedir="4.0" _pv="${NEED_KDE}" ;; + # NEED_KDE="${PV}:${SLOT}" + *:kde-svn) + _kdedir="svn" + _operator=">=" + _pv="-${NEED_KDE}" + export NEED_KDE="svn" + ;; + *:4.1) + _kdedir="4.1" + _operator=">=" + _pv="-${NEED_KDE}" + ;; *:kde-4) _kdedir="4.0" _operator=">=" _pv="-${NEED_KDE}" ;; - 3.9*) - _kdedir="3.9" + + # NEED_KDE="${PV}" + scm|svn|9999*) + _kdedir="svn" _operator=">=" - _pv="-${NEED_KDE}:kde-4" + _pv="-${NEED_KDE}:kde-svn" + export NEED_KDE="svn" ;; - 4*) + 4.1 | 4.0.9* | 4.0.8*) + _kdedir="4.1" + _operator=">=" + _pv="-${NEED_KDE}:4.1" + ;; + 4.0* | 4) _kdedir="4.0" _operator=">=" _pv="-${NEED_KDE}:kde-4" ;; - *) die "NEED_KDE=${NEED_KDE} currently not supported." + 3.9*) + _kdedir="3.9" + _operator=">=" + _pv="-${NEED_KDE}:kde-4" + ;; + + # The ebuild handles dependencies, KDEDIR, SLOT. + none) + : + ;; + + *) + die "NEED_KDE=${NEED_KDE} currently not supported." ;; esac if [[ ${NEED_KDE} != none ]]; then - KDEDIR="/usr/kde/${_kdedir}" - KDEDIRS="/usr:/usr/local:${KDEDIR}" + #Set the SLOT if [[ -n ${KDEBASE} ]]; then if [[ ${NEED_KDE} = svn ]]; then SLOT="kde-svn" else - SLOT="kde-4" + case ${PV} in + 4.1* | 4.0.9* | 4.0.8*) SLOT="4.1" ;; + *) SLOT="kde-4" ;; + esac fi fi + # Block install of other SLOTS unless kdeprefix + case "${EAPI}" in + 2 | 2_pre3 | 2_pre2 | 2_pre1) + for KDE_SLOT in ${KDE_SLOTS[@]}; do + # block non kdeprefix ${PN} on other slots + if [[ ${SLOT} != ${KDE_SLOT} ]]; then + DEPEND="${DEPEND} + !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )" + RDEPEND="${RDEPEND} + !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )" + fi + done + ;; + esac + # We only need to add the dependencies if ${PN} is not "kdelibs" or "kdepimlibs" if [[ ${PN} != "kdelibs" ]]; then - DEPEND="${DEPEND} - ${_operator}kde-base/kdelibs${_pv}" - RDEPEND="${RDEPEND} - ${_operator}kde-base/kdelibs${_pv}" + case "${EAPI}" in + 2 | 2_pre3 | 2_pre2 | 2_pre1) + DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}[kdeprefix=]" + RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}[kdeprefix=]" + ;; + *) + DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}" + RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}" + ;; + esac if [[ ${PN} != "kdepimlibs" ]]; then - DEPEND="${DEPEND} - ${_operator}kde-base/kdepimlibs${_pv}" - RDEPEND="${RDEPEND} - ${_operator}kde-base/kdepimlibs${_pv}" + case "${EAPI}" in + 2 | 2_pre3 | 2_pre2 | 2_pre1) + DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}[kdeprefix=]" + RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}[kdeprefix=]" + ;; + *) + DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}" + RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}" + esac fi fi - unset _operator _pv _kdedir + unset _operator _pv fi # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a @@ -237,7 +331,9 @@ if [[ -n ${KDEBASE} ]]; then case ${KDEBASE} in kde-base) case ${PV} in - *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2";; + 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) @@ -249,33 +345,16 @@ if [[ -n ${KDEBASE} ]]; then fi debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}" -debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND ${DEPEND} - before blockers" - -# Monolithic ebuilds should add blockers for split ebuilds in the same slot. -# If KMNAME is not set then this is not a split package -if [[ -n ${KDEBASE} && -z ${KMNAME} ]]; then - for _x in $(get-child-packages ${CATEGORY}/${PN}); do - DEPEND="${DEPEND} !${_x}:${SLOT}" - RDEPEND="${RDEPEND} !${_x}:${SLOT}" - done - unset _x -fi - -debug-print "${BASH_SOURCE} ${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND ${DEPEND} - after blockers" # @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 /usr/ by default, this value # can be superseded by defining PREFIX before inheriting kde4-base. -if [[ -n ${KDEBASE} ]]; then - PREFIX=${KDEDIR} -else - # if PREFIX is not defined we set it to the default value of /usr - PREFIX="${PREFIX:-/usr}" -fi +# This value is set on pkg_setup +PREFIX="" -debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SLOT ${SLOT} - KDEDIR ${KDEDIR} - KDEDIRS ${KDEDIRS}- PREFIX ${PREFIX} - NEED_KDE ${NEED_KDE}" +debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SLOT ${SLOT} - NEED_KDE ${NEED_KDE}" # @FUNCTION: kde4-base_pkg_setup # @DESCRIPTION: @@ -286,8 +365,40 @@ debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SLOT ${SLOT} - KDEDIR ${KDEDIR} - kde4-base_pkg_setup() { debug-print-function $FUNCNAME "$@" + # Don't set KDEHOME during compile, it will cause access violations + unset KDEHOME + + if [[ ${NEED_KDE} != none ]]; then + + # Set PREFIX + case "${EAPI}" in + 2 | 2_pre3 | 2_pre2 | 2_pre1) + if use kdeprefix; then + KDEDIR="/usr/kde/${_kdedir}" + KDEDIRS="/usr:/usr/local:${KDEDIR}" + else + KDEDIR="/usr" + KDEDIRS="/usr:/usr/local" + fi + ;; + *) + KDEDIR="/usr" + KDEDIRS="/usr:/usr/local" + ;; + esac + fi + + if [[ -n ${KDEBASE} ]]; then + PREFIX=${KDEDIR} + else + # if PREFIX is not defined we set it to the default value of /usr + PREFIX="${PREFIX:-/usr}" + fi + + unset _kdedir + case "${EAPI}" in - kdebuild-1) + 2 | 2_pre3 | 2_pre2 | 2_pre1) [[ -n ${QT4_BUILT_WITH_USE_CHECK} || -n ${KDE4_BUILT_WITH_USE_CHECK[@]} ]] && \ die "built_with_use illegal in this EAPI!" ;; @@ -354,7 +465,7 @@ kde4-base_apply_patches() { _packages="${PN}" fi if [[ $(declare -p PATCHES) != 'declare -a '* ]]; then - PATCHES=(${PATCHES}) + die "PATCHES needs to be an array!" fi for _p in ${_packages}; do for _f in "${_patchdir}"/${_p}-${PV}-*{diff,patch}; do @@ -418,9 +529,17 @@ kde4-base_src_unpack() { # General function for compiling KDE4 applications. kde4-base_src_compile() { debug-print-function ${FUNCNAME} "$@" - - kde4-base_src_configure - kde4-base_src_make + case "${EAPI}" in + 2) + ;; + *) + kde4-base_src_configure + ;; + esac + if [[ -d ${WORKDIR}/${PN}_build ]]; then + pushd "${WORKDIR}"/${PN}_build > /dev/null + fi + [ -e [Mm]akefile ] && kde4-base_src_make } # @FUNCTION: kde4-base_src_configure @@ -453,11 +572,17 @@ kde4-base_src_configure() { # Here we set the install prefix mycmakeargs="${mycmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}" + # If prefix is /usr, sysconf needs to be /etc, not /usr/etc + [[ "${PREFIX}" == "/usr" ]] && mycmakeargs="${mycmakeargs} -DSYSCONF_INSTALL_DIR=/etc" + # Set environment QTEST_COLORED=1 QT_PLUGIN_PATH=${KDEDIR}/$(get_libdir)/kde4/plugins/ - cmake-utils_src_configureout + # hardcode path to *.cmake KDE files + PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig" + + [ -e CMakeLists.txt ] && cmake-utils_src_configureout } # @FUNCTION: kde4-base_src_make @@ -490,7 +615,10 @@ kde4-base_src_install() { debug-print-function ${FUNCNAME} "$@" kde4-base_src_make_doc - cmake-utils_src_install + if [[ -d ${WORKDIR}/${PN}_build ]]; then + pushd "${WORKDIR}"/${PN}_build > /dev/null + fi + [ -e [Mm]akefile ] && cmake-utils_src_install } # @FUNCTION: kde4-base_src_make_doc diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass index 99ec36ff4ba9..eddf608e102f 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.7 2008/05/17 14:09:03 zlin Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-functions.eclass,v 1.8 2008/10/02 06:49:02 jmbsvicetto Exp $ # @ECLASS: kde4-functions.eclass # @MAINTAINER: @@ -29,6 +29,17 @@ if [[ "${KMNAME}" == "koffice" || "${PN}" == "koffice" ]]; then KDEBASE="koffice" fi +# @ECLASS-VARIABLE: KDE_SLOTS +# @DESCRIPTION: +# The slots used by all KDE versions after 4.0 - this doesn't include kde-3.5 and the +# live-ebuilds that use the following var. +KDE_SLOTS=( "kde-4" "4.1" ) + +# @ECLASS-VARIABLE: KDE_LIVE_SLOTS +# @DESCRIPTION: +# The slots used by all KDE live versions. +KDE_LIVE_SLOTS=( "kde-svn" ) + # @ECLASS-VARIABLE: KDE_DERIVATION_MAP # @DESCRIPTION: # Map of the monolithic->split ebuild derivation. @@ -37,6 +48,20 @@ fi # # Also see get-parent-package(), get-child-packages(), is-parent-package() KDE_DERIVATION_MAP=' +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/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 kde-base/kdeaccessibility kde-base/kdeaccessibility-colorschemes kde-base/kdeaccessibility kde-base/kdeaccessibility-iconthemes kde-base/kdeaccessibility kde-base/kmag @@ -46,6 +71,8 @@ kde-base/kdeaccessibility kde-base/kttsd kde-base/kdeadmin kde-base/kcron kde-base/kdeadmin kde-base/kdat kde-base/kdeadmin kde-base/knetworkconf +kde-base/kdeadmin kde-base/kpackage +kde-base/kdeadmin kde-base/ksystemlog kde-base/kdeadmin kde-base/ksysv kde-base/kdeadmin kde-base/kuser kde-base/kdeadmin kde-base/lilo-config @@ -60,82 +87,88 @@ 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/dolphin -kde-base/kdebase kde-base/kappfinder -kde-base/kdebase kde-base/kdepasswd -kde-base/kdebase kde-base/kdialog -kde-base/kdebase kde-base/keditbookmarks -kde-base/kdebase kde-base/kfind -kde-base/kdebase kde-base/kinfocenter -kde-base/kdebase kde-base/konqueror -kde-base/kdebase kde-base/konsole -kde-base/kdebase kde-base/kwrite -kde-base/kdebase kde-base/libkonq -kde-base/kdebase kde-base/nsplugins kde-base/kdebase kde-base/drkonqi +kde-base/kdebase kde-base/kappfinder +kde-base/kdebase kde-base/kcheckpass +kde-base/kdebase kde-base/kcminit kde-base/kdebase kde-base/kcmshell kde-base/kdebase kde-base/kcontrol +kde-base/kdebase kde-base/kde-menu +kde-base/kdebase kde-base/kde-menu-icons +kde-base/kdebase kde-base/kde-wallpapers +kde-base/kdebase kde-base/kdebase-cursors 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/kde-menu +kde-base/kdebase kde-base/kdepasswd kde-base/kdebase kde-base/kdesu +kde-base/kdebase kde-base/kdialog +kde-base/kdebase kde-base/kdm +kde-base/kdebase kde-base/keditbookmarks kde-base/kdebase kde-base/kfile +kde-base/kdebase kde-base/kfind kde-base/kdebase kde-base/khelpcenter +kde-base/kdebase kde-base/khotkeys kde-base/kdebase kde-base/kiconfinder +kde-base/kdebase kde-base/kinfocenter kde-base/kdebase kde-base/kioclient +kde-base/kdebase kde-base/klipper +kde-base/kdebase kde-base/kmenuedit kde-base/kdebase kde-base/kmimetypefinder kde-base/kdebase kde-base/knetattach kde-base/kdebase kde-base/knewstuff kde-base/kdebase kde-base/knotify +kde-base/kdebase kde-base/konqueror +kde-base/kdebase kde-base/konsole kde-base/kdebase kde-base/kpasswdserver kde-base/kdebase kde-base/kquitapp kde-base/kdebase kde-base/kreadconfig -kde-base/kdebase kde-base/kstart -kde-base/kdebase kde-base/kstyles -kde-base/kdebase kde-base/ktimezoned -kde-base/kdebase kde-base/ktraderclient -kde-base/kdebase kde-base/kuiserver -kde-base/kdebase kde-base/kurifilter-plugins -kde-base/kdebase kde-base/nepomuk -kde-base/kdebase kde-base/phonon -kde-base/kdebase kde-base/solid-hardware -kde-base/kdebase kde-base/soliduiserver -kde-base/kdebase kde-base/kcheckpass -kde-base/kdebase kde-base/kcminit -kde-base/kdebase kde-base/kdebase-startkde -kde-base/kdebase kde-base/kstartupconfig -kde-base/kdebase kde-base/kde-menu-icons -kde-base/kdebase kde-base/kde-wallpapers -kde-base/kdebase kde-base/kdm -kde-base/kdebase kde-base/khotkeys -kde-base/kdebase kde-base/klipper -kde-base/kdebase kde-base/kmenuedit kde-base/kdebase kde-base/krunner kde-base/kdebase kde-base/kscreensaver kde-base/kdebase kde-base/ksmserver kde-base/kdebase kde-base/ksplash +kde-base/kdebase kde-base/kstart +kde-base/kdebase kde-base/kstartupconfig +kde-base/kdebase kde-base/kstyles kde-base/kdebase kde-base/ksysguard kde-base/kdebase kde-base/ksystraycmd +kde-base/kdebase kde-base/ktimezoned kde-base/kdebase kde-base/ktip +kde-base/kdebase kde-base/ktraderclient +kde-base/kdebase kde-base/kuiserver +kde-base/kdebase kde-base/kurifilter-plugins kde-base/kdebase kde-base/kwin +kde-base/kdebase kde-base/kwrite +kde-base/kdebase kde-base/libkonq kde-base/kdebase kde-base/libkworkspace kde-base/kdebase kde-base/libplasma kde-base/kdebase kde-base/libtaskmanager +kde-base/kdebase kde-base/nepomuk +kde-base/kdebase kde-base/nsplugins +kde-base/kdebase kde-base/phonon +kde-base/kdebase kde-base/phonon-xine kde-base/kdebase kde-base/plasma +kde-base/kdebase kde-base/plasma-apps +kde-base/kdebase kde-base/plasma-workspace +kde-base/kdebase kde-base/renamedlg-plugins kde-base/kdebase kde-base/solid +kde-base/kdebase kde-base/solid-hardware +kde-base/kdebase kde-base/soliduiserver kde-base/kdebase kde-base/systemsettings kde-base/kdebindings kde-base/kalyptus kde-base/kdebindings kde-base/kdejava kde-base/kdebindings kde-base/kimono kde-base/kdebindings kde-base/kjsembed kde-base/kdebindings kde-base/korundum +kde-base/kdebindings kde-base/krossjava kde-base/kdebindings kde-base/krosspython kde-base/kdebindings kde-base/krossruby kde-base/kdebindings kde-base/pykde4 -kde-base/kdebindings kde-base/qyoto kde-base/kdebindings kde-base/qtjava kde-base/kdebindings kde-base/qtruby kde-base/kdebindings kde-base/qtsharp +kde-base/kdebindings kde-base/qyoto kde-base/kdebindings kde-base/smoke kde-base/kdebindings kde-base/xparts kde-base/kdeedu kde-base/blinken @@ -162,7 +195,9 @@ kde-base/kdegames kde-base/bovo kde-base/kdegames kde-base/katomic kde-base/kdegames kde-base/kbattleship kde-base/kdegames kde-base/kblackbox +kde-base/kdegames kde-base/kblocks kde-base/kdegames kde-base/kbounce +kde-base/kdegames kde-base/kbreakout kde-base/kdegames kde-base/kdiamond kde-base/kdegames kde-base/kfourinline kde-base/kdegames kde-base/kgoldrunner @@ -179,6 +214,7 @@ kde-base/kdegames kde-base/kpat kde-base/kdegames kde-base/kreversi kde-base/kdegames kde-base/ksame kde-base/kdegames kde-base/kshisen +kde-base/kdegames kde-base/ksirk kde-base/kdegames kde-base/kspaceduel kde-base/kdegames kde-base/ksquares kde-base/kdegames kde-base/ksudoku @@ -190,17 +226,24 @@ kde-base/kdegames kde-base/lskat kde-base/kdegraphics kde-base/gwenview kde-base/kdegraphics kde-base/kamera kde-base/kdegraphics kde-base/kcolorchooser +kde-base/kdegraphics kde-base/kdegraphics-strigi-analyzer kde-base/kdegraphics kde-base/kgamma kde-base/kdegraphics kde-base/kghostview kde-base/kdegraphics kde-base/kolourpaint kde-base/kdegraphics kde-base/kruler +kde-base/kdegraphics kde-base/ksaneplugin kde-base/kdegraphics kde-base/ksnapshot +kde-base/kdegraphics kde-base/libkdcraw +kde-base/kdegraphics kde-base/libkexiv2 +kde-base/kdegraphics kde-base/libkipi +kde-base/kdegraphics kde-base/libksane kde-base/kdegraphics kde-base/libkscan kde-base/kdegraphics kde-base/okular kde-base/kdegraphics kde-base/svgpart kde-base/kdemultimedia kde-base/dragonplayer kde-base/kdemultimedia kde-base/juk kde-base/kdemultimedia kde-base/kdemultimedia-kioslaves +kde-base/kdemultimedia kde-base/kdemultimedia-strigi-analyzer kde-base/kdemultimedia kde-base/kmix kde-base/kdemultimedia kde-base/kscd kde-base/kdemultimedia kde-base/libkcddb @@ -221,11 +264,14 @@ kde-base/kdepim kde-base/kabcclient kde-base/kdepim kde-base/kaddressbook kde-base/kdepim kde-base/kalarm kde-base/kdepim kde-base/kdemaildir +kde-base/kdepim kde-base/kdepim-icons kde-base/kdepim kde-base/kdepim-kioslaves kde-base/kdepim kde-base/kdepim-kresources +kde-base/kdepim kde-base/kdepim-strigi-analyzer kde-base/kdepim kde-base/kdepim-wizards kde-base/kdepim kde-base/kfeed kde-base/kdepim kde-base/kitchensync +kde-base/kdepim kde-base/kjots kde-base/kdepim kde-base/kleopatra kde-base/kdepim kde-base/kmail kde-base/kdepim kde-base/kmailcvt @@ -236,6 +282,7 @@ 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/kontactinterfaces kde-base/kdepim kde-base/korganizer kde-base/kdepim kde-base/korn kde-base/kdepim kde-base/kpilot @@ -250,22 +297,24 @@ kde-base/kdepim kde-base/mailtransport kde-base/kdepim kde-base/mimelib kde-base/kdepim kde-base/networkstatus kde-base/kdesdk kde-base/cervisia -kde-base/kdesdk kde-base/kdeaccounts-plugin kde-base/kdesdk kde-base/kapptemplate kde-base/kdesdk kde-base/kate kde-base/kdesdk kde-base/kbabel kde-base/kdesdk kde-base/kbugbuster kde-base/kdesdk kde-base/kcachegrind +kde-base/kdesdk kde-base/kdeaccounts-plugin 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/kdesdk-strigi-analyzer kde-base/kdesdk kde-base/kmtrace kde-base/kdesdk kde-base/kompare kde-base/kdesdk kde-base/kspy kde-base/kdesdk kde-base/kstartperf -kde-base/kdesdk kde-base/strigi-analyzer kde-base/kdesdk kde-base/kuiviewer +kde-base/kdesdk kde-base/lokalize kde-base/kdesdk kde-base/poxml +kde-base/kdesdk kde-base/strigi-analyzer kde-base/kdesdk kde-base/umbrello kde-base/kdetoys kde-base/amor kde-base/kdetoys kde-base/kteatime @@ -279,12 +328,11 @@ kde-base/kdeutils kde-base/kdessh kde-base/kdeutils kde-base/kdf kde-base/kdeutils kde-base/kfloppy kde-base/kdeutils kde-base/kgpg -kde-base/kdeutils kde-base/kjots kde-base/kdeutils kde-base/kmilo kde-base/kdeutils kde-base/kregexpeditor -kde-base/kdeutils kde-base/kdessh kde-base/kdeutils kde-base/ktimer kde-base/kdeutils kde-base/kwallet +kde-base/kdeutils kde-base/okteta kde-base/kdeutils kde-base/superkaramba kde-base/kdeutils kde-base/sweeper kde-base/kdewebdev kde-base/kfilereplace @@ -292,20 +340,6 @@ kde-base/kdewebdev kde-base/kimagemapeditor kde-base/kdewebdev kde-base/klinkstatus 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/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 @@ -357,41 +391,19 @@ buildsycoca() { debug-print-function ${FUNCNAME} "$@" if [[ -x ${KDEDIR}/bin/kbuildsycoca4 && -z "${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 + # Make sure tha cache file exists, or kbuildsycoca4 will fail + touch "${KDEDIR}/share/kde4/services/ksycoca4" - # kbuildsycoca4 needs a running dbus session to work correctly. - # We have to start a new dbus session, because the DBUS_SESSION_BUS_ADDRESS in the environment - # could from from the user's environment (through su [without '-']), causing kbuildsycoca4 to hang. - - echo "Starting dbus session for kbuildsycoca4" - local _i - for _i in $(dbus-launch); do - # We export both the ADDRESS _and_ the PID. We need the latter only to kill our session. - debug-print "Exporting: ${_i}" - export "${_i}"; - done - debug-print "kbuildsycoca4 is using ${DBUS_SESSION_BUS_ADDRESS}" + # 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. XDG_DATA_DIRS="/usr/share:${KDEDIRS//:/\/share:}/share:/usr/local/share" \ - ${KDEDIR}/bin/kbuildsycoca4 --global --noincremental &> /dev/null - eend $? - - echo "Killing dbus session for kbuildsycoca4" - debug-print "ADDRESS ${DBUS_SESSION_BUS_ADDRESS}" - debug-print "PID: ${DBUS_SESSION_BUS_PID}" - kill ${DBUS_SESSION_BUS_PID} + DISPLAY="" DBUS_SESSION_BUS_ADDRESS="" \ + ${KDEDIR}/bin/kbuildsycoca4 --global --noincremental &> /dev/null eend $? - unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID - - # For some reason this directory gets created with noone other than root - # being able to read it. Hence we chmod it. - chmod -R 0755 "${ROOT}"/usr/share/kde4 fi } @@ -426,13 +438,22 @@ done # but this default can be overridden by defining KDE_LINGUAS_DIR. enable_selected_linguas() { local lingua - comment_all_add_subdirectory "${KDE_LINGUAS_DIR:-${S}/po}" + for lingua in ${KDE_LINGUAS}; do - if use linguas_${lingua}; then + if [ -e "${S}"/po/"${lingua}".po ]; then + mv "${S}"/po/"${lingua}".po "${S}"/po/"${lingua}".po.old + fi + done + comment_all_add_subdirectory "${KDE_LINGUAS_DIR:-${S}/po}" + for lingua in ${LINGUAS}; do + if [ -d "${S}"/po/"${lingua}" ]; then sed -e "/add_subdirectory([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ -e "/ADD_SUBDIRECTORY([[:space:]]*${lingua}[[:space:]]*)[[:space:]]*$/ s/^#DONOTCOMPILE //" \ -i "${KDE_LINGUAS_DIR:-${S}/po}"/CMakeLists.txt || die "Sed to uncomment linguas_${lingua} failed." fi + if [ -e "${S}"/po/"${lingua}".po.old ]; then + mv "${S}"/po/"${lingua}".po.old "${S}"/po/"${lingua}".po + fi done } diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass index 34db91a75ec4..219e7e9d3237 100644 --- a/eclass/kde4-meta.eclass +++ b/eclass/kde4-meta.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-meta.eclass,v 1.6 2008/05/15 19:49:32 ingmar Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-meta.eclass,v 1.7 2008/10/02 06:49:02 jmbsvicetto Exp $ # # @ECLASS: kde4-meta.eclass # @MAINTAINER: @@ -17,7 +17,14 @@ inherit multilib kde4-functions kde4-base -EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_postinst pkg_postrm +case "${EAPI}" in + 2) + EXPORT_FUNCTIONS pkg_setup src_unpack src_configure src_compile src_test src_install pkg_postinst pkg_postrm + ;; + *) + EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_postinst pkg_postrm + ;; +esac if [[ -z ${KMNAME} ]]; then die "kde4-meta.eclass inherited but KMNAME not defined - broken ebuild" @@ -49,17 +56,17 @@ case ${KMNAME} in RDEPEND="${RDEPEND} >=kde-base/qimageblitz-0.0.4" ;; kdepim) - DEPEND="${DEPEND} dev-libs/boost" + DEPEND="${DEPEND} dev-libs/boost app-office/akonadi-server" RDEPEND="${RDEPEND} dev-libs/boost" if [[ ${PN} != kode ]]; then DEPEND="${DEPEND} >=kde-base/kode-${PV}:${SLOT}" RDEPEND="${RDEPEND} >=kde-base/kode-${PV}:${SLOT}" fi case ${PN} in - akregator|kaddressbook|kmail|kmobiletools|knode|knotes|korganizer|ktimetracker) + akregator|kaddressbook|kjots|kmail|kmobiletools|knode|knotes|korganizer|ktimetracker) IUSE="+kontact" - DEPEND="${DEPEND} kontact? ( >=kde-base/kontact-${PV}:${SLOT} )" - RDEPEND="${RDEPEND} kontact? ( >=kde-base/kontact-${PV}:${SLOT} )" + DEPEND="${DEPEND} kontact? ( >=kde-base/kontactinterfaces-${PV}:${SLOT} )" + RDEPEND="${RDEPEND} kontact? ( >=kde-base/kontactinterfaces-${PV}:${SLOT} )" ;; esac ;; @@ -234,7 +241,7 @@ kde4-meta_create_extractlists() { kleopatra/ConfigureChecks.cmake" if has kontact ${IUSE//+} && use kontact; then KMEXTRA="${KMEXTRA} kontact/plugins/${PLUGINNAME:-${PN}}" - KMEXTRACTONLY="${KMEXTRACTONLY} kontact/interfaces/" + KMEXTRACTONLY="${KMEXTRACTONLY} kontactinterfaces/" fi ;; koffice) @@ -248,14 +255,18 @@ kde4-meta_create_extractlists() { esac # Don't install cmake modules for split ebuilds to avoid collisions. case ${KMNAME} in - kdebase-workspace|kdebase-runtime|kdepim|kdegames|kdegraphics) - if [[ ${PN} != "libkdegames" ]]; then - KMCOMPILEONLY="${KMCOMPILEONLY} - cmake/modules/" - else - KMEXTRA="${KMEXTRA} - cmake/modules/" - fi + kdebase-runtime|kdebase-workspace|kdeedu|kdegames|kdegraphics|kdepim) + case ${PN} in + libkdegames|libkdeedu|marble) + KMEXTRA="${KMEXTRA} + cmake/modules/" + ;; + + *) + KMCOMPILEONLY="${KMCOMPILEONLY} + cmake/modules/" + ;; + esac ;; esac @@ -303,7 +314,7 @@ __list_needed_subdirectories() { case ${PV} in - scm|9999.4) : ;; + scm|9999*) : ;; *) topdir="${KMNAME}-${PV}/" ;; esac @@ -352,7 +363,13 @@ load_library_dependencies() { kde4-meta_src_compile() { debug-print-function ${FUNCNAME} "$@" - kde4-meta_src_configure + case "${EAPI}" in + 2 | 2_pre3 | 2_pre2 | 2_pre1) + ;; + *) + kde4-base_meta_configure + ;; + esac kde4-meta_src_make } @@ -467,7 +484,7 @@ kde4-meta_change_cmakelists() { ;; kdepim) case ${PN} in - kaddressbook|kmailcvt|kontact|korganizer) + kaddressbook|kalarm|kmailcvt|kontact|korganizer|korn) sed -i -n -e '/qt4_generate_dbus_interface(.*org\.kde\.kmail\.\(kmail\|mailcomposer\)\.xml/p' \ -e '/add_custom_target(kmail_xml /,/)/p' "${S}"/kmail/CMakeLists.txt || die "uncommenting xml failed" _change_cmakelists_parent_dirs kmail |