diff options
| author | Alexey 'alexxy' Shvetsov <alexxy@gentoo.ru> | 2008-10-11 01:14:34 +0400 |
|---|---|---|
| committer | Alexey 'alexxy' Shvetsov <alexxy@gentoo.ru> | 2008-10-11 01:14:34 +0400 |
| commit | 9278293e9586bbd192e8c27ccd1aeea052ffce3c (patch) | |
| tree | da6445a4e95d09ad622e98ec994aaabd94739c4d | |
| parent | ea6315c28e325617e477bab5643d857f97b5e123 (diff) | |
| download | kde-9278293e9586bbd192e8c27ccd1aeea052ffce3c.tar.gz kde-9278293e9586bbd192e8c27ccd1aeea052ffce3c.tar.bz2 kde-9278293e9586bbd192e8c27ccd1aeea052ffce3c.zip | |
sync eclasses with master branch
| -rw-r--r-- | eclass/kde4-base.eclass | 119 | ||||
| -rw-r--r-- | eclass/kde4-meta.eclass | 131 |
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 |
