summaryrefslogtreecommitdiff
path: root/eclass/kde4-meta.eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass/kde4-meta.eclass')
-rw-r--r--eclass/kde4-meta.eclass195
1 files changed, 131 insertions, 64 deletions
diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass
index 5bee705f2c5..2114e0ed744 100644
--- a/eclass/kde4-meta.eclass
+++ b/eclass/kde4-meta.eclass
@@ -41,25 +41,30 @@ if [[ -z ${KMNAME} ]]; then
fi
case ${KDEBASE} in
- kde-base)
- HOMEPAGE="http://www.kde.org/"
- LICENSE="GPL-2"
- ;;
- koffice)
- HOMEPAGE="http://www.koffice.org/"
- LICENSE="GPL-2"
- ;;
+ kde-base) HOMEPAGE="http://www.kde.org/"
+ LICENSE="GPL-2" ;;
+ koffice) HOMEPAGE="http://www.koffice.org/"
+ LICENSE="GPL-2" ;;
esac
+debug-print "${BASH_SOURCE} ${LINENO} ${ECLASS}: DEPEND ${DEPEND} - before blockers"
+debug-print "${BASH_SOURCE} ${LINENO} ${ECLASS}: RDEPEND ${RDEPEND} - before blockers"
+
+# Add a blocker on the package we're derived from
+if [[ -n ${KDEBASE} ]]; then
+ DEPEND="${DEPEND} !$(get-parent-package ${CATEGORY}/${PN}):${SLOT}"
+ RDEPEND="${RDEPEND} !$(get-parent-package ${CATEGORY}/${PN}):${SLOT}"
+fi
+
+debug-print "line ${LINENO} ${ECLASS}: DEPEND ${DEPEND} - after blockers"
+debug-print "line ${LINENO} ${ECLASS}: RDEPEND ${RDEPEND} - after blockers"
+
# Add dependencies that all packages in a certain module share.
case ${KMNAME} in
kdebase|kdebase-workspace|kdebase-runtime)
- # required for 4.0.X
- if [[ ${PV} == "4.0.*" ]]; then
- DEPEND="${DEPEND} >=kde-base/qimageblitz-0.0.4"
- RDEPEND="${RDEPEND} >=kde-base/qimageblitz-0.0.4"
- fi
- ;;
+ DEPEND="${DEPEND} >=kde-base/qimageblitz-0.0.4"
+ RDEPEND="${RDEPEND} >=kde-base/qimageblitz-0.0.4"
+ ;;
kdepim)
DEPEND="${DEPEND} dev-libs/boost app-office/akonadi-server"
RDEPEND="${RDEPEND} dev-libs/boost"
@@ -72,37 +77,39 @@ case ${KMNAME} in
IUSE="+kontact"
DEPEND="${DEPEND} kontact? ( >=kde-base/kontactinterfaces-${PV}:${SLOT} )"
RDEPEND="${RDEPEND} kontact? ( >=kde-base/kontactinterfaces-${PV}:${SLOT} )"
- ;;
+ ;;
esac
- ;;
+ ;;
kdegames)
if [[ ${PN} != "libkdegames" ]]; then
DEPEND="${DEPEND} >=kde-base/libkdegames-${PV}:${SLOT}"
RDEPEND="${RDEPEND} >=kde-base/libkdegames-${PV}:${SLOT}"
fi
- ;;
+ ;;
koffice)
- 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"
case ${PN} in
- koffice-data) : ;;
- *)
+ koffice-libs):
IUSE="+crypt"
DEPEND="${DEPEND} crypt? ( >=app-crypt/qca-2 )"
RDEPEND="${RDEPEND} crypt? ( >=app-crypt/qca-2 )"
- if [[ ${PN} != "koffice-libs" ]]; then
- DEPEND="${DEPEND} >=app-office/koffice-libs-${PV}:${SLOT}"
- RDEPEND="${RDEPEND} >=app-office/koffice-libs-${PV}:${SLOT}"
- fi
;;
+ koffice-data):
+ ;;
+ *)
+ 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
- ;;
+ ;;
esac
debug-print "line ${LINENO} ${ECLASS}: DEPEND ${DEPEND} - after metapackage-specific dependencies"
@@ -199,8 +206,8 @@ kde4-meta_src_extract() {
kde4-meta_create_extractlists
case ${KMNAME} in
- kdebase) kmnamedir="" ;;
- kdebase-*) kmnamedir="${KMNAME#kdebase-}/" ;;
+ kdebase) kmnamedir="" ;;
+ kdebase-*) kmnamedir="${KMNAME#kdebase-}/" ;;
esac
rsync_options="--group --links --owner --perms --quiet --exclude=.svn/"
@@ -230,7 +237,7 @@ kde4-meta_src_extract() {
sed -i -e '/^install(PROGRAMS[[:space:]]*[^[:space:]]*\/kde4[[:space:]]/s/^/#DONOTINSTALL /' \
"${S}"/CMakeLists.txt || die "Sed to exclude bin/kde4 failed"
fi
- ;;
+ ;;
*)
local abort tarball tarfile f extractlist
tarball="${KMNAME}-${PV}.tar.bz2"
@@ -266,13 +273,59 @@ kde4-meta_src_extract() {
done
[[ -n ${abort} ]] && die "There were missing files."
fi
- ;;
- esac
+
kde4-base_src_unpack
- # fix koffice linking
+
if [[ "${KMNAME}" == "koffice" ]]; then
- koffice_fix_libraries
- fi
+ case ${PN} in
+ koffice-data|koffice-libs)
+ ;;
+ *)
+ ### 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\"
+ \"${KDEDIR}/$(get_libdir)/libkdecore.so\""
+ R_BAS_kostore="libkostore ${R_QT_kostore}"
+ R_BAS_koodf="libkoodf ${R_BAS_kostore}"
+ R_KROSS_kokross="
+ \"${KDEDIR}/$(get_libdir)/libkrossui.so\"
+ \"${KDEDIR}/$(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} \"${KDEDIR}/$(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
+ esac
}
# Create lists of files and subdirectories to extract.
@@ -291,36 +344,36 @@ kde4-meta_create_extractlists() {
# In those cases you should care to add the relevant files to KMEXTRACTONLY
case ${KMNAME} in
kdebase)
- KMEXTRACTONLY="${KMEXTRACTONLY}
- apps/config-apps.h.cmake
- apps/ConfigureChecks.cmake"
- ;;
+ KMEXTRACTONLY="${KMEXTRACTONLY}
+ apps/config-apps.h.cmake
+ apps/ConfigureChecks.cmake"
+ ;;
kdebase-runtime)
- KMEXTRACTONLY="${KMEXTRACTONLY}
- config-runtime.h.cmake"
- ;;
+ KMEXTRACTONLY="${KMEXTRACTONLY}
+ config-runtime.h.cmake"
+ ;;
kdebase-workspace)
- KMEXTRACTONLY="${KMEXTRACTONLY}
- config-unix.h.cmake
- ConfigureChecks.cmake
- config-workspace.h.cmake
- config-X11.h.cmake
- startkde.cmake"
- ;;
+ KMEXTRACTONLY="${KMEXTRACTONLY}
+ config-unix.h.cmake
+ ConfigureChecks.cmake
+ config-workspace.h.cmake
+ config-X11.h.cmake
+ startkde.cmake"
+ ;;
kdegames)
- if [[ ${PN} != "libkdegames" ]]; then
- KMEXTRACTONLY="${KMEXTRACTONLY}
- libkdegames"
- fi
- ;;
- kdepim)
+ if [[ ${PN} != "libkdegames" ]]; then
KMEXTRACTONLY="${KMEXTRACTONLY}
- kleopatra/ConfigureChecks.cmake"
- if has kontact ${IUSE//+} && use kontact; then
- KMEXTRA="${KMEXTRA} kontact/plugins/${PLUGINNAME:-${PN}}"
- KMEXTRACTONLY="${KMEXTRACTONLY} kontactinterfaces/"
- fi
- ;;
+ libkdegames"
+ fi
+ ;;
+ kdepim)
+ KMEXTRACTONLY="${KMEXTRACTONLY}
+ kleopatra/ConfigureChecks.cmake"
+ if has kontact ${IUSE//+} && use kontact; then
+ KMEXTRA="${KMEXTRA} kontact/plugins/${PLUGINNAME:-${PN}}"
+ KMEXTRACTONLY="${KMEXTRACTONLY} kontactinterfaces/"
+ fi
+ ;;
koffice)
KMEXTRACTONLY="${KMEXTRACTONLY}
config-endian.h.cmake
@@ -338,10 +391,9 @@ kde4-meta_create_extractlists() {
filters/
libs/
plugins/"
- KMEXTRA="${KMEXTRA} filters/${PN}"
;;
esac
- ;;
+ ;;
esac
# Don't install cmake modules for split ebuilds to avoid collisions.
case ${KMNAME} in
@@ -357,6 +409,14 @@ kde4-meta_create_extractlists() {
;;
esac
;;
+ koffice)
+ case ${PN} in
+ koffice-libs|koffice-data|kplato)
+ ;;
+ *)
+ KMEXTRA="${KMEXTRA} filters/${PN}"
+ esac
+ ;;
esac
debug-print "line ${LINENO} ${ECLASS} ${FUNCNAME}: KMEXTRACTONLY ${KMEXTRACTONLY}"
@@ -590,6 +650,13 @@ kde4-meta_change_cmakelists() {
|| die "${LINENO}: sed to remove dependency on Blitz failed."
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
+ ;;
esac
popd > /dev/null