summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'alexxy' Shvetsov <alexxy@gentoo.ru>2008-10-11 01:14:34 +0400
committerAlexey 'alexxy' Shvetsov <alexxy@gentoo.ru>2008-10-11 01:14:34 +0400
commit9278293e9586bbd192e8c27ccd1aeea052ffce3c (patch)
treeda6445a4e95d09ad622e98ec994aaabd94739c4d
parentea6315c28e325617e477bab5643d857f97b5e123 (diff)
downloadkde-9278293e9586bbd192e8c27ccd1aeea052ffce3c.tar.gz
kde-9278293e9586bbd192e8c27ccd1aeea052ffce3c.tar.bz2
kde-9278293e9586bbd192e8c27ccd1aeea052ffce3c.zip
sync eclasses with master branch
-rw-r--r--eclass/kde4-base.eclass119
-rw-r--r--eclass/kde4-meta.eclass131
2 files changed, 208 insertions, 42 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
index 007edcf5072..4bb92adc955 100644
--- a/eclass/kde4-base.eclass
+++ b/eclass/kde4-base.eclass
@@ -108,7 +108,7 @@ RDEPEND="${RDEPEND} ${COMMONDEPEND}"
# Add the kdeprefix use flag
case "${EAPI}" in
2 | 2_pre3 | 2_pre2 | 2_pre1)
- IUSE="${IUSE} kdeprefix"
+ [[ "${NEED_KDE}" != "any" ]] && IUSE="${IUSE} kdeprefix"
;;
esac
@@ -168,6 +168,13 @@ fi
export NEED_KDE
case ${NEED_KDE} in
+ any)
+ _kdedir=""
+ _operator=">="
+ _pv="-3.9" # we do not specify version only that it needs 4
+ # kdedir is not set and it needs to be detected (maybe fallback for
+ # latest version availible)
+ ;;
latest)
# Should only be used by 'kde-base'-ebuilds
if [[ "${KDEBASE}" == "kde-base" ]]; then
@@ -227,7 +234,6 @@ case ${NEED_KDE} in
;;
*:4.2)
_kdedir="4.2"
- _operator=">="
_pv="-${NEED_KDE}"
;;
*:4.1)
@@ -258,7 +264,7 @@ case ${NEED_KDE} in
_operator=">="
_pv="-${NEED_KDE}:4.1"
;;
- 4.0*)
+ 4.0* | 4)
_kdedir="4.0"
_operator=">="
_pv="-${NEED_KDE}:kde-4"
@@ -286,11 +292,20 @@ if [[ ${NEED_KDE} != none ]]; then
if [[ ${NEED_KDE} = svn ]]; then
SLOT="kde-svn"
else
- case ${PV} in
- 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="kde-4" ;;
- esac
+ case ${KMNAME} in
+ koffice)
+ case ${PV} in
+ *) SLOT="2" ;;
+ esac
+ ;;
+ *)
+ case ${PV} in
+ 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="kde-4" ;;
+ esac
+ ;;
+ esac
fi
fi
@@ -299,38 +314,53 @@ if [[ ${NEED_KDE} != none ]]; then
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] )"
+ # we do this only if we do not depend on any version of kde
+ if [[ ${NEED_KDE} != "any" ]]; then
+ if [[ ${SLOT} != ${KDE_SLOT} ]]; then
+ DEPEND="${DEPEND}
+ !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )"
+ RDEPEND="${RDEPEND}
+ !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )"
+ fi
fi
done
;;
esac
# We only need to add the dependencies if ${PN} is not "kdelibs" or "kdepimlibs"
- if [[ ${PN} != "kdelibs" ]]; then
- 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
+ if [[ ${NEED_KDE} != "any" ]]; then
+ if [[ ${PN} != "kdelibs" ]]; then
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/kdelibs${_pv}[kdeprefix=]"
+ RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}[kdeprefix=]"
;;
*)
- DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}"
- RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}"
- esac
+ DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}"
+ RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}"
+ ;;
+ esac
+ if [[ ${PN} != "kdepimlibs" ]]; then
+ 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
+ else
+ if [[ ${PN} != "kdelibs" ]]; then
+ # need_kde == any
+ DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}"
+ RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}"
+ if [[ ${PN} != "kdepimlibs" ]]; then
+ DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}"
+ RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}"
+ fi
fi
fi
@@ -392,9 +422,14 @@ kde4-base_pkg_setup() {
# 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}"
+ if [[ ${NEED_KDE} != "any" ]]; then
+ if use kdeprefix; then
+ KDEDIR="/usr/kde/${_kdedir}"
+ KDEDIRS="/usr:/usr/local:${KDEDIR}"
+ else
+ KDEDIR="/usr"
+ KDEDIRS="/usr:/usr/local"
+ fi
else
KDEDIR="/usr"
KDEDIRS="/usr:/usr/local"
@@ -601,6 +636,24 @@ kde4-base_src_configure() {
# hardcode path to *.cmake KDE files
PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig"
+ # additonal arguments for KOFFICE
+ if [[ "${KMNAME}" == "koffice" ]]; then
+ case ${PN} in
+ koffice-data):
+ ;;
+ *):
+ mycmakeargs="${mycmakeargs}
+ -DWITH_OpenEXR=ON
+ $(cmake-utils_use_with crypt QCA2)
+ $(cmake-utils_use_with opengl OpenGL)"
+ if use crypt; then
+ mycmakeargs="${mycmakeargs}
+ -DQCA2_LIBRARIES=/usr/$(get_libdir)/qca2/libqca.so.2"
+ fi
+ ;;
+ esac
+ fi
+
[ -e CMakeLists.txt ] && cmake-utils_src_configureout
}
diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass
index fc9027d8cb1..0a7b94bb239 100644
--- a/eclass/kde4-meta.eclass
+++ b/eclass/kde4-meta.eclass
@@ -15,6 +15,16 @@
# 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.
+# we want opengl optional in each koffice package
+if [[ "${KMNAME}" == "koffice" ]]; then
+ case ${PN} in
+ koffice-data)
+ ;;
+ *)
+ OPENGL_REQUIRED="optional"
+ ;;
+ esac
+fi
inherit multilib kde4-functions kde4-base
case "${EAPI}" in
@@ -77,11 +87,26 @@ case ${KMNAME} in
fi
;;
koffice)
+ DEPEND="${DEPEND}
+ !app-office/${PN}:0
+ !app-office/koffice:0
+ !app-office/koffice-meta:0"
case ${PN} in
- koffice-libs|koffice-data) : ;;
+ koffice-libs):
+ IUSE="+crypt"
+ DEPEND="${DEPEND} crypt? ( >=app-crypt/qca-2 )"
+ RDEPEND="${RDEPEND} crypt? ( >=app-crypt/qca-2 )"
+ ;;
+ koffice-data):
+ ;;
*)
- DEPEND="${DEPEND} >=app-office/koffice-libs-${PV}:${SLOT}"
- RDEPEND="${RDEPEND} >=app-office/koffice-libs-${PV}:${SLOT}"
+ IUSE="+crypt"
+ DEPEND="${DEPEND}
+ >=app-office/koffice-libs-${PV}:${SLOT}
+ crypt? ( >=app-crypt/qca-2 )"
+ RDEPEND="${RDEPEND}
+ >=app-office/koffice-libs-${PV}:${SLOT}
+ crypt? ( >=app-crypt/qca-2 )"
;;
esac
;;
@@ -196,6 +221,68 @@ kde4-meta_src_extract() {
fi
kde4-base_src_unpack
+
+ if [[ "${KMNAME}" == "koffice" ]]; then
+ case ${PN} in
+ koffice-data|koffice-libs)
+ ;;
+ *)
+ ### We need to check for latest kdedir if kdedir does not point onto /usr
+ # we check for some basic application and if we found it in /usr we use
+ # /usr as master tree otherwise we pick latest version in /usr/kde/
+ elog "we always prefer KDE installed without kdeprefix so if you get"
+ elog "some issues with linking please switch to -kdeprefix KDE install."
+ if [ -e /usr/bin/kwin ]; then
+ KD="/usr"
+ else
+ KD=$(find /usr/kde/ -maxdepth 1 -mindepth 1 -type d |tail -n 1)
+ #pickup latest version from /usr/kde
+ fi
+ # we have few lib states we can occur on koffice sources
+ ### basic array
+ LIB_ARRAY="kostore koodf kokross komain pigmentcms koresources flake koguiutils kopageapp kotext kowmf"
+ ### dep array
+ R_QT_kostore="\"/usr/$(get_libdir)/qt4/libQtCore.so\"
+ \"/usr/$(get_libdir)/qt4/libQtXml.so\"
+ \"${KD}/$(get_libdir)/libkdecore.so\""
+ R_BAS_kostore="libkostore ${R_QT_kostore}"
+ R_BAS_koodf="libkoodf ${R_BAS_kostore}"
+ R_KROSS_kokross="
+ \"${KD}/$(get_libdir)/libkrossui.so\"
+ \"${KD}/$(get_libdir)/libkrosscore.so\""
+ R_BAS_kokross="libkokross ${R_BAS_koodf} ${R_KROSS_kokross}"
+ R_QT_komain="\"/usr/$(get_libdir)/qt4/libQtGui.so\""
+ R_BAS_komain="libkomain ${R_BAS_koodf} ${R_QT_komain}"
+ R_CMS_pigmentcms="\"/usr/$(get_libdir)/liblcms.so\""
+ R_BAS_pigmentcms="libpigmentcms ${R_BAS_komain} ${R_CMS_pigmentcms}"
+ R_BAS_koresources="libkoresources ${R_BAS_pigmentcms}"
+ R_BAS_flake="libflake ${R_BAS_pigmentcms}"
+ R_BAS_koguiutils="libkoguiutils libkoresources libflake ${R_BAS_pigmentcms}"
+ R_BAS_kopageapp="libkopageapp ${R_BAS_koguitls}"
+ R_BAS_kotext="libkotext libkoresources libflake ${R_BAS_pigmentcms}"
+ ### additional unmentioned stuff
+ R_BAS_kowmf="libkowmf"
+ for libname in ${LIB_ARRAY}; do
+ echo "Fixing library ${libname} with hardcoded path"
+ for libpath in $(eval "echo \$R_BAS_${libname}"); do
+ if [[ "${libpath}" != "\"/usr/"* ]]; then
+ local R="${R} \"/usr/$(get_libdir)/${libpath}.so\""
+ else
+ local R="${R} ${libpath}"
+ fi
+ done
+ find ${S} -name CMakeLists.txt -print| xargs -i \
+ sed -i \
+ -e "s: ${libname} : ${R} :g" \
+ -e "s: ${libname}): ${R}):g" \
+ -e "s:(${libname} :(${R} :g" \
+ -e "s:(${libname}):(${R}):g" \
+ -e "s: ${libname}: ${R}:g" \
+ {} || die "Fixing library names failed."
+ done
+ ;;
+ esac
+ fi
}
# Create lists of files and subdirectories to extract.
@@ -248,9 +335,21 @@ kde4-meta_create_extractlists() {
KMEXTRACTONLY="${KMEXTRACTONLY}
config-endian.h.cmake
filters/config-filters.h.cmake
+ config-openctl.h.cmake
config-openexr.h.cmake
config-opengl.h.cmake
config-prefix.h.cmake"
+ case ${PN} in
+ koffice-libs|koffice-data)
+ ;;
+ *)
+ # add basic extract for all packages
+ KMEXTRACTONLY="${KMEXTRACTONLY}
+ filters/
+ libs/
+ plugins/"
+ ;;
+ esac
;;
esac
# Don't install cmake modules for split ebuilds to avoid collisions.
@@ -261,13 +360,20 @@ kde4-meta_create_extractlists() {
KMEXTRA="${KMEXTRA}
cmake/modules/"
;;
-
*)
KMCOMPILEONLY="${KMCOMPILEONLY}
cmake/modules/"
;;
esac
;;
+ koffice)
+ case ${PN} in
+ koffice-libs|koffice-data|kplato)
+ ;;
+ *)
+ KMEXTRA="${KMEXTRA} filters/${PN}"
+ esac
+ ;;
esac
debug-print "line ${LINENO} ${ECLASS} ${FUNCNAME}: KMEXTRACTONLY ${KMEXTRACTONLY}"
@@ -502,11 +608,11 @@ kde4-meta_change_cmakelists() {
fi
;;
koffice)
- if [[ ${PN} != koffice-libs ]]; then
- sed -i -e '/^INSTALL(FILES.*koffice.desktop/ s/^/#DONOTINSTALL /' \
- doc/CMakeLists.txt || \
- die "${LINENO}: sed died in the koffice.desktop collision prevention section"
- fi
+ #if [[ ${PN} != koffice-libs ]]; then
+ # sed -i -e '/^INSTALL(FILES.*koffice.desktop/ s/^/#DONOTINSTALL /' \
+ # doc/CMakeLists.txt || \
+ # die "${LINENO}: sed died in the koffice.desktop collision prevention section"
+ #fi
;;
esac
@@ -555,6 +661,13 @@ kde4-meta_src_install() {
if [[ -n ${KMSAVELIBS} ]] ; then
install_library_dependencies
fi
+ # remove unvanted koffice stuff
+ if [[ "${KMNAME}" == "koffice" ]] ; then
+ if [[ "${PN}" != "koffice-data" ]]; then
+ rm "${D}"/usr/include/config-openexr.h
+ rm "${D}"/usr/share/apps/cmake/modules/FindKOfficeLibs.cmake
+ fi
+ fi
}
# @FUNCTION: kde4-meta_src_make_doc