summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto@gentoo.org>2008-09-07 20:07:13 +0000
committerJorge Manuel B. S. Vicetto (jmbsvicetto) <jmbsvicetto@gentoo.org>2008-09-07 20:07:13 +0000
commit0ccca1142170fd629008f37d2a9d8c98b23f5b31 (patch)
tree86dca4128a83ac7fca313f2fac2c1eba7f47bc50
parentbd1de36baf9dad41006f4999a35ea6da852f1601 (diff)
downloadkde-0ccca1142170fd629008f37d2a9d8c98b23f5b31.tar.gz
kde-0ccca1142170fd629008f37d2a9d8c98b23f5b31.tar.bz2
kde-0ccca1142170fd629008f37d2a9d8c98b23f5b31.zip
Applied some fixes to the eclasses to allow an FHS compliant install,
when using the fhs use flag and to still allow multiple versions of kde installed otherwise.
-rw-r--r--eclass/kde4-base.eclass64
-rw-r--r--eclass/kde4-functions.eclass11
2 files changed, 51 insertions, 24 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
index 9e5a385db87..e5166d9a247 100644
--- a/eclass/kde4-base.eclass
+++ b/eclass/kde4-base.eclass
@@ -87,6 +87,11 @@ case "${PV}" in
;;
esac
+# Add the fhs use flag
+if [[ $EAPI = 2 && -n ${KDEBASE} ]]; then
+ IUSE="${IUSE} fhs"
+fi
+
DEPEND="${DEPEND} ${COMMONDEPEND} ${CMAKEDEPEND}
dev-util/pkgconfig
x11-libs/libXt
@@ -179,6 +184,7 @@ case ${NEED_KDE} in
_pv=":kde-svn"
export NEED_KDE="svn"
;;
+
# NEED_KDE=":${SLOT}"
*:kde-svn)
_kdedir="svn"
@@ -194,6 +200,7 @@ case ${NEED_KDE} in
_kdedir="4.0"
_pv="${NEED_KDE}"
;;
+
# NEED_KDE="${PV}:${SLOT}"
*:4.1)
_kdedir="4.1"
@@ -220,10 +227,12 @@ case ${NEED_KDE} in
_operator=">="
_pv="-${NEED_KDE}:kde-4"
;;
+
# The ebuild handles dependencies, KDEDIR, SLOT.
none)
:
;;
+
*) die "NEED_KDE=${NEED_KDE} currently not supported."
;;
esac
@@ -231,8 +240,13 @@ esac
if [[ ${NEED_KDE} != none ]]; then
# Set PREFIX
- KDEDIR="/usr/kde/${_kdedir}"
- KDEDIRS="/usr:/usr/local:${KDEDIR}"
+ if use fhs; then
+ KDEDIR="/usr"
+ KDEDIRS="/usr:/usr/local"
+ else
+ KDEDIR="/usr/kde/${_kdedir}"
+ KDEDIRS="/usr:/usr/local:${KDEDIR}"
+ fi
if [[ -n ${KDEBASE} ]]; then
if [[ ${NEED_KDE} = svn ]]; then
@@ -245,19 +259,34 @@ if [[ ${NEED_KDE} != none ]]; then
fi
fi
- # Block other SLOTS
+ # Block kdelibs on other SLOTS
+ if use fhs; then
+ for KDE_SLOT in ${KDE_SLOTS[@]}; do
+ # block kdelibs on other slots
+ if [[ ${SLOT} != ${KDE_SLOT} ]]; then
+ DEPEND="${DEPEND} !kde-base/kdelibs:${KDE_SLOT}"
+ RDEPEND="${RDEPEND} !kde-base/kdelibs:${KDE_SLOT}"
+ fi
+ done
+ fi
# 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}"
+ if [[ $EAPI = 2 ]]; then
+ DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}[fhs?]"
+ RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}[fhs?]"
+ else
+ DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}"
+ RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}"
+ fi
if [[ ${PN} != "kdepimlibs" ]]; then
- DEPEND="${DEPEND}
- ${_operator}kde-base/kdepimlibs${_pv}"
- RDEPEND="${RDEPEND}
- ${_operator}kde-base/kdepimlibs${_pv}"
+ if [[ $EAPI = "2*" ]]; then
+ DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}[fhs?]"
+ RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}[fhs?]"
+ else
+ DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}"
+ RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}"
+ fi
fi
fi
@@ -291,19 +320,6 @@ 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:
diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass
index 3a6b20285dc..fad94c4ebc5 100644
--- a/eclass/kde4-functions.eclass
+++ b/eclass/kde4-functions.eclass
@@ -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.