summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
Diffstat (limited to 'eclass')
-rw-r--r--eclass/kde4-base.eclass149
-rw-r--r--eclass/kde4-functions.eclass13
-rw-r--r--eclass/kde4-meta.eclass72
3 files changed, 205 insertions, 29 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
index 541643823b7..d7b6a6bb041 100644
--- a/eclass/kde4-base.eclass
+++ b/eclass/kde4-base.eclass
@@ -155,18 +155,32 @@ esac
# - VERSION_NUMBER:SLOT - Use the minimum KDE4 version and the SLOT specified in the NEED_KDE value.
# - none - Let the ebuild handle SLOT, kde dependencies, KDEDIR, ...
# @CODE
-#
-# Note: There is no default NEED_KDE for ebuilds not in kde-base or part of
-# koffice, so you must set it explicitly in the ebuild, in all other cases.
+# Note: default NEED_KDE is latest
if [[ -z ${NEED_KDE} ]]; then
- if [[ -n ${KDEBASE} ]]; then
- NEED_KDE="latest"
- else
- die "kde4-base.eclass inherited but NEED_KDE not defined - broken ebuild"
- fi
+ NEED_KDE="latest"
fi
export NEED_KDE
+# @ECLASS-VARIABLE: KDE_WANTED
+# @DESCRIPTION:
+# This variable is for setting what version of kde we want in the first place
+# when need_kde=latest is inherited.
+# Its walue is compared and then it is looked for that version specialy before
+# any other. So in case you have more +kdeprefix installs you can choose to
+# which one link in first place if is there.
+# @CODE
+# Acceptable values are:
+# stable = 4.1 or what so ever is main tree
+# testing = what so ever is in testing on main tree
+# snapshot = 4.2 or what so ever is released under snapshots
+# live = live svn ebuilds, also default value, dont be scared it goes in this
+# order: live->snapshot->testing->stable, when searching for kde. This way we
+# allow users to use just kde4snapshots and use software from the tree.
+if [[ -z ${KDE_WANTED} ]]; then
+ KDE_WANTED="live"
+fi
+export KDE_WANTED
+
case ${NEED_KDE} in
any)
_kdedir=""
@@ -176,7 +190,6 @@ case ${NEED_KDE} in
# latest version availible)
;;
latest)
- # Should only be used by 'kde-base'-ebuilds
if [[ "${KDEBASE}" == "kde-base" ]]; then
case ${PV} in
4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*)
@@ -191,11 +204,19 @@ case ${NEED_KDE} in
3.9*)
_kdedir="3.9"
_pv="-${PV}:kde-4" ;;
+ 9999*)
+ _kdedir="live"
+ _pv="-${PV}:live" ;;
*)
die "NEED_KDE=latest not supported for PV=${PV}" ;;
esac
_operator=">="
else
+<<<<<<< HEAD:eclass/kde4-base.eclass
+ # this creates dependency on any version of kde4
+ _operator=">="
+ _pv="-3.9"
+=======
case ${PV} in
4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6* ) _kdedir="4.2" ;;
4.1 | 4.0.9* | 4.0.8*) _kdedir="4.1" ;;
@@ -203,6 +224,7 @@ case ${NEED_KDE} in
3.9*) _kdedir="3.9" ;;
*) die "NEED_KDE=latest not supported for PV=${PV}" ;;
esac
+>>>>>>> origin/4.2:eclass/kde4-base.eclass
fi
;;
@@ -250,6 +272,7 @@ case ${NEED_KDE} in
# NEED_KDE="${PV}"
scm|svn|live|9999*)
_kdedir="live"
+<<<<<<< HEAD:eclass/kde4-base.eclass
_operator=">="
_pv="-${NEED_KDE}:live"
export NEED_KDE="live"
@@ -257,6 +280,15 @@ case ${NEED_KDE} in
4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*)
_kdedir="4.2"
_operator=">="
+=======
+ _operator=">="
+ _pv="-${NEED_KDE}:live"
+ export NEED_KDE="live"
+ ;;
+ 4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*)
+ _kdedir="4.2"
+ _operator=">="
+>>>>>>> origin/4.2:eclass/kde4-base.eclass
_pv="-${NEED_KDE}:4.2"
;;
4.1 | 4.0.9* | 4.0.8*)
@@ -300,8 +332,14 @@ if [[ ${NEED_KDE} != none ]]; then
;;
*)
case ${PV} in
+<<<<<<< HEAD:eclass/kde4-base.eclass
+ 4.1* | 4.0.9* | 4.0.8*) SLOT="4.1" ;;
+ 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) SLOT="4.2" ;;
+ 9999*) SLOT="live" ;;
+=======
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" ;;
+>>>>>>> origin/4.2:eclass/kde4-base.eclass
*) SLOT="kde-4" ;;
esac
;;
@@ -315,6 +353,13 @@ if [[ ${NEED_KDE} != none ]]; then
for KDE_SLOT in ${KDE_SLOTS[@]}; do
# block non kdeprefix ${PN} on other slots
# we do this only if we do not depend on any version of kde
+<<<<<<< HEAD:eclass/kde4-base.eclass
+ if [[ ${SLOT} != ${KDE_SLOT} ]]; then
+ DEPEND="${DEPEND}
+ !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )"
+ RDEPEND="${RDEPEND}
+ !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )"
+=======
if [[ ${NEED_KDE} != "any" ]]; then
if [[ ${SLOT} != ${KDE_SLOT} ]]; then
DEPEND="${DEPEND}
@@ -322,14 +367,30 @@ if [[ ${NEED_KDE} != none ]]; then
RDEPEND="${RDEPEND}
!kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )"
fi
+>>>>>>> origin/4.2:eclass/kde4-base.eclass
fi
done
;;
esac
# We only need to add the dependencies if ${PN} is not "kdelibs" or "kdepimlibs"
+<<<<<<< HEAD:eclass/kde4-base.eclass
+ 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
+>>>>>>> origin/4.2:eclass/kde4-base.eclass
case "${EAPI}" in
2 | 2_pre3 | 2_pre2 | 2_pre1)
DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}[kdeprefix=]"
@@ -363,7 +424,6 @@ if [[ ${NEED_KDE} != none ]]; then
fi
fi
fi
-
unset _operator _pv
fi
@@ -414,7 +474,13 @@ case ${SLOT} in
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${PN}"
ESVN_PROJECT="KDE/${PN}"
fi
+<<<<<<< HEAD:eclass/kde4-base.eclass
+ # limit syncing to 1 hour.
+ ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
+ inherit subversion
+=======
inherit subversion
+>>>>>>> origin/4.2:eclass/kde4-base.eclass
;;
*)
if [[ -n ${KDEBASE} ]]; then
@@ -467,6 +533,52 @@ kde4-base_pkg_setup() {
# Don't set KDEHOME during compile, it will cause access violations
unset KDEHOME
+ if [[ ${NEED_KDE} == latest ]]; then
+ # We need to set up correct kdedir based on what we find
+ # not to do it by versioning but based on what is on system.
+ # We might also be cool and install app for all kde installs
+ # but i guess that is just insane.
+ # We can check for kdelibs because they are basic package and
+ # rest of the stuff wont work without it. This might be changed
+ # in future.
+ case ${KDE_WANTED} in
+ # note this will need to be updated as stable moves and so on
+ live)
+ _versions="9999 4.1.69 4.1.0"
+ ;;
+ snapshot)
+ _versions="4.1.69 4.1.0 9999"
+ ;;
+ testing)
+ _versions="4.1.0 4.1.69 9999"
+ ;;
+ stable)
+ _versions="4.1.0 4.1.69 9999"
+ ;;
+ *) die "KDE_WANTED=${KDE_WANTED} not supported here." ;;
+ esac
+ # check if exists and fallback as we go
+ for X in ${_versions}; do
+ if has_version ">=kde-base/kdelibs-${X}"; then
+ # figure out which X we are in and set it into _kdedir
+ case ${X} in
+ # also keep track here same for kde_wanted
+ 9999)
+ _kdedir="live"
+ break
+ ;;
+ 4.1.69)
+ _kdedir="4.2"
+ break
+ ;;
+ 4.1.0)
+ _kdedir="4.1"
+ break
+ ;;
+ esac
+ fi
+ done
+ fi
if [[ ${NEED_KDE} != none ]]; then
# Set PREFIX
@@ -491,13 +603,9 @@ kde4-base_pkg_setup() {
;;
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
+ # Set the prefix based on KDEDIR
+ # Make it a consequence of kdeprefix
+ PREFIX=${KDEDIR}
unset _kdedir
@@ -538,10 +646,17 @@ kde4-base_pkg_setup() {
case ${SLOT} in
live)
if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
+<<<<<<< HEAD:eclass/kde4-base.eclass
+ elog
+ elog "WARNING! This is an experimental ebuild of the ${KMNAME:-${PN}} KDE4 SVN tree."
+ elog "Use at your own risk. Do _NOT_ file bugs at bugs.gentoo.org because"
+ elog "of this ebuild!"
+=======
echo
ewarn "WARNING! This is an experimental ebuild of the ${KMNAME:-${PN}} KDE4 SVN tree."
ewarn "Use at your own risk. Do _NOT_ file bugs at bugs.gentoo.org because"
ewarn "of this ebuild!"
+>>>>>>> origin/4.2:eclass/kde4-base.eclass
fi
;;
*)
diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass
index 750c41a5cca..6d28ca05c43 100644
--- a/eclass/kde4-functions.eclass
+++ b/eclass/kde4-functions.eclass
@@ -39,6 +39,8 @@ KDE_SLOTS=( "kde-4" "4.1" "4.2" )
# @DESCRIPTION:
# The slots used by all KDE live versions.
KDE_LIVE_SLOTS=( "live" )
+<<<<<<< HEAD:eclass/kde4-functions.eclass
+=======
# @ECLASS-VARIABLE: KDE_DERIVATION_MAP
# @DESCRIPTION:
@@ -385,6 +387,7 @@ is-parent-package() {
done <<< "$KDE_DERIVATION_MAP"
return 1
}
+>>>>>>> origin/4.2:eclass/kde4-functions.eclass
# @FUNCTION: buildsycoca
# @DESCRIPTION:
@@ -560,3 +563,13 @@ kde4-functions_check_use() {
die "Missing USE flags found"
fi
}
+# @FUNCTION: kdebase_toplevel_cmakelists
+# @DESCRIPTION:
+# replace includes for live ebuilds with optional requests
+kdebase_toplevel_cmakelist() {
+ insert=$(sed -e '/macro_optional_find_package/!d' < "${ESVN_WC_PATH}"/CMakeLists.txt)
+ at=$(sed -n '/^include[[:space:]]*(/=' < "${S}"/CMakeLists.txt | sed -n '$p')
+ for line in ${insert}; do
+ sed "${at}a${line}" -i "${S}"/CMakeLists.txt
+ done
+}
diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass
index 1e5a579718c..b977171318a 100644
--- a/eclass/kde4-meta.eclass
+++ b/eclass/kde4-meta.eclass
@@ -47,18 +47,6 @@ case ${KDEBASE} in
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)
@@ -178,6 +166,14 @@ kde4-meta_src_unpack() {
case ${SLOT} in
live)
S="${WORKDIR}/${PN}"
+<<<<<<< HEAD:eclass/kde4-meta.eclass
+ mkdir -p "${S}"
+ ESVN_RESTRICT="export" subversion_src_unpack
+ subversion_wc_info
+ kde4-meta_src_extract
+ kde4-base_apply_patches
+ subversion_bootstrap
+=======
# Ensure the target directory exists
mkdir -p "${S}"
# Update working copy
@@ -190,6 +186,7 @@ kde4-meta_src_unpack() {
kde4-base_apply_patches
subversion_bootstrap
# CMakeLists.txt magic
+>>>>>>> origin/4.2:eclass/kde4-meta.eclass
kde4-meta_change_cmakelists
;;
*)
@@ -206,9 +203,15 @@ kde4-meta_src_unpack() {
kde4-meta_src_extract() {
case ${SLOT} in
live)
+<<<<<<< HEAD:eclass/kde4-meta.eclass
+ local rsync_options subdir kmnamedir targetdir
+ # Export working copy to ${S}
+ einfo "Exporting parts of working copy to ${S}"
+=======
local rsync_options subdir kmnamedir targetdir
# Export working copy to ${S}
einfo "Exporting parts of working copy to ${S}"
+>>>>>>> origin/4.2:eclass/kde4-meta.eclass
kde4-meta_create_extractlists
case ${KMNAME} in
@@ -280,6 +283,15 @@ kde4-meta_src_extract() {
[[ -n ${abort} ]] && die "There were missing files."
fi
+<<<<<<< HEAD:eclass/kde4-meta.eclass
+ kde4-base_src_unpack
+
+ if [[ "${KMNAME}" == "koffice" ]]; then
+ case ${PN} in
+ koffice-data|koffice-libs)
+ ;;
+ *)
+=======
kde4-base_src_unpack
if [[ "${KMNAME}" == "koffice" ]]; then
@@ -299,17 +311,27 @@ kde4-meta_src_extract() {
#pickup latest version from /usr/kde
fi
# we have few lib states we can occur on koffice sources
+>>>>>>> origin/4.2:eclass/kde4-meta.eclass
### 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\"
+<<<<<<< HEAD:eclass/kde4-meta.eclass
+ \"${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\""
+=======
\"${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\""
+>>>>>>> origin/4.2:eclass/kde4-meta.eclass
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}"
@@ -326,12 +348,29 @@ kde4-meta_src_extract() {
echo "Fixing library ${libname} with hardcoded path"
for libpath in $(eval "echo \$R_BAS_${libname}"); do
if [[ "${libpath}" != "\"/usr/"* ]]; then
+<<<<<<< HEAD:eclass/kde4-meta.eclass
+ local R="${R} \"${KDEDIR}/$(get_libdir)/${libpath}.so\""
+=======
local R="${R} \"/usr/$(get_libdir)/${libpath}.so\""
+>>>>>>> origin/4.2:eclass/kde4-meta.eclass
else
local R="${R} ${libpath}"
fi
done
find ${S} -name CMakeLists.txt -print| xargs -i \
+<<<<<<< HEAD:eclass/kde4-meta.eclass
+ 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
+=======
sed -i \
-e "s: ${libname} : ${R} :g" \
-e "s: ${libname}): ${R}):g" \
@@ -343,6 +382,7 @@ kde4-meta_src_extract() {
;;
esac
fi
+>>>>>>> origin/4.2:eclass/kde4-meta.eclass
esac
}
@@ -725,8 +765,13 @@ kde4-meta_src_install() {
# remove unvanted koffice stuff
if [[ "${KMNAME}" == "koffice" ]] ; then
if [[ "${PN}" != "koffice-data" ]]; then
+<<<<<<< HEAD:eclass/kde4-meta.eclass
+ rm "${D}"/${KDEDIR}/include/config-openexr.h
+ rm "${D}"/${KDEDIR}/share/apps/cmake/modules/FindKOfficeLibs.cmake
+=======
rm "${D}"/usr/include/config-openexr.h
rm "${D}"/usr/share/apps/cmake/modules/FindKOfficeLibs.cmake
+>>>>>>> origin/4.2:eclass/kde4-meta.eclass
fi
fi
}
@@ -761,6 +806,8 @@ kde4-meta_pkg_postinst() {
kde4-meta_pkg_postrm() {
kde4-base_pkg_postrm
}
+<<<<<<< HEAD:eclass/kde4-meta.eclass
+=======
kdebase_toplevel_cmakelist() {
insert=$(sed -e '/macro_optional_find_package/!d' < "${ESVN_WC_PATH}"/CMakeLists.txt)
at=$(sed -n '/^include[[:space:]]*(/=' < "${S}"/CMakeLists.txt | sed -n '$p')
@@ -768,4 +815,5 @@ kdebase_toplevel_cmakelist() {
sed "${at}a${line}" -i "${S}"/CMakeLists.txt
done
}
+>>>>>>> origin/4.2:eclass/kde4-meta.eclass