summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Mrozowski <reavertm@gentoo.org>2010-05-06 07:23:15 +0200
committerMaciej Mrozowski <reavertm@gentoo.org>2010-05-06 07:33:11 +0200
commit397d5aaa2afcdec757b784bbbca2f6d0116ac70d (patch)
treed67b2e480ad1380f461a93a262add1b387dc1b68
parent634e4218f94d11dbfb749b9a9ecc561467864cdc (diff)
downloadkde-397d5aaa2afcdec757b784bbbca2f6d0116ac70d.tar.gz
kde-397d5aaa2afcdec757b784bbbca2f6d0116ac70d.tar.bz2
kde-397d5aaa2afcdec757b784bbbca2f6d0116ac70d.zip
[eclass/kde4-base,kde4-functions] Add preliminary git support and kdevelop support (gitorious)
-rw-r--r--eclass/kde4-base.eclass199
-rw-r--r--eclass/kde4-functions.eclass9
2 files changed, 132 insertions, 76 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
index 6a575189f3e..dd9ba480425 100644
--- a/eclass/kde4-base.eclass
+++ b/eclass/kde4-base.eclass
@@ -17,7 +17,11 @@ inherit kde4-functions base eutils
get_build_type
if [[ ${BUILD_TYPE} = live ]]; then
- inherit subversion
+ if [[ ${KDEBASE} = kdevelop ]]; then
+ inherit git
+ else
+ inherit subversion
+ fi
fi
# @ECLASS-VARIABLE: CMAKE_REQUIRED
@@ -52,7 +56,7 @@ fi
# Note that it is fixed to ${SLOT} for kde-base packages.
KDE_MINIMAL="${KDE_MINIMAL:-4.3}"
-# Set slot for packages in kde-base and koffice
+# Set slot for packages in kde-base, koffice and kdevelop
case ${KDEBASE} in
kde-base)
# Determine SLOT from PVs
@@ -69,6 +73,23 @@ case ${KDEBASE} in
koffice)
SLOT="2"
;;
+ kdevelop)
+ if [[ ${BUILD_TYPE} = live ]]; then
+ KDEVELOP_VERSION="9999"
+ KDEVPLATFORM_VERSION="9999"
+ else
+ case ${PN} in
+ kdevelop|quanta)
+ KDEVELOP_VERSION=${PV}
+ KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
+ ;;
+ *)
+ KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
+ KDEVPLATFORM_VERSION=${PV}
+ esac
+ fi
+ SLOT="4"
+ ;;
esac
slot_is_at_least 4.5 ${KDE_MINIMAL} && CMAKE_MIN_VERSION="2.6.4"
@@ -89,6 +110,10 @@ case ${KDEBASE} in
HOMEPAGE="http://www.koffice.org/"
LICENSE="GPL-2"
;;
+ kdevelop)
+ HOMEPAGE="http://www.kdevelop.org/"
+ LICENSE="GPL-2"
+ ;;
esac
# @ECLASS-VARIABLE: OPENGL_REQUIRED
@@ -143,7 +168,6 @@ case ${KDEBASE} in
RESTRICT+=" mirror"
;;
esac
-
# Block installation of other SLOTS unless kdeprefix
RDEPEND+=" $(block_other_slots)"
;;
@@ -153,7 +177,7 @@ esac
# @DESCRIPTION:
# Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1..
# Currently defaults to 4.5.1 for KDE 4.3 and earlier
-# or 4.6.0_rc1 for KDE 4.4 and later
+# or 4.6.0 for KDE 4.4 and later
if slot_is_at_least 4.4 "${KDE_MINIMAL}"; then
QT_MINIMAL="${QT_MINIMAL:-4.6.0}"
fi
@@ -262,6 +286,13 @@ if [[ ${PN} != kdelibs ]]; then
kdecommondepend+="
>=kde-base/kdelibs-${KDE_MINIMAL}
"
+ if [[ ${KDEBASE} = kdevelop ]]; then
+ if [[ ${PN} != kdevplatform ]]; then
+ kdecommondepend+="
+ >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
+ "
+ fi
+ fi
fi
fi
kdedepend="
@@ -303,77 +334,88 @@ IUSE+=" kdeenablefinal"
# koffice ebuild, the URI should be set in the ebuild itself
case ${BUILD_TYPE} in
live)
- # Determine branch URL based on live type
- local branch_prefix
- case ${PV} in
- 9999*)
- # trunk
- branch_prefix="trunk/KDE"
- ;;
- *)
- # branch
- branch_prefix="branches/KDE/${SLOT}"
- # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
- # @DESCRIPTION
- # Suffix appended to ESVN_PROJECT depending on fetched branch.
- # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
- ESVN_PROJECT_SUFFIX="-${PV}"
- ;;
- esac
SRC_URI=""
- # @ECLASS-VARIABLE: ESVN_MIRROR
- # @DESCRIPTION:
- # This variable allows easy overriding of default kde mirror service
- # (anonsvn) with anything else you might want to use.
- ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
- # Split ebuild, or extragear stuff
- if [[ -n ${KMNAME} ]]; then
- ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
+ if has subversion ${INHERITED}; then
+ # Determine branch URL based on live type
+ local branch_prefix
+ case ${PV} in
+ 9999*)
+ # trunk
+ branch_prefix="trunk/KDE"
+ ;;
+ *)
+ # branch
+ branch_prefix="branches/KDE/${SLOT}"
+ # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
+ # @DESCRIPTION
+ # Suffix appended to ESVN_PROJECT depending on fetched branch.
+ # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
+ ESVN_PROJECT_SUFFIX="-${PV}"
+ ;;
+ esac
+ # @ECLASS-VARIABLE: ESVN_MIRROR
+ # @DESCRIPTION:
+ # This variable allows easy overriding of default kde mirror service
+ # (anonsvn) with anything else you might want to use.
+ ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
+ # Split ebuild, or extragear stuff
+ if [[ -n ${KMNAME} ]]; then
+ ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
+ if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
+ KMMODULE="${PN}"
+ fi
+ # Split kde-base/ ebuilds: (they reside in trunk/KDE)
+ case ${KMNAME} in
+ kdebase-*)
+ ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
+ ;;
+ kdelibs-*)
+ ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
+ ;;
+ kdereview*)
+ ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
+ ;;
+ kdesupport)
+ ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
+ ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
+ ;;
+ kde*)
+ ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
+ ;;
+ extragear*|playground*)
+ # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
+ # build packages from same svn location.
+ ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
+ ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
+ ;;
+ koffice)
+ ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
+ ;;
+ *)
+ ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
+ ;;
+ esac
+ else
+ # kdelibs, kdepimlibs
+ ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
+ ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
+ fi
+ # @ECLASS-VARIABLE: ESVN_UP_FREQ
+ # @DESCRIPTION:
+ # This variable is used for specifying the timeout between svn synces
+ # for kde-base and koffice modules. Does not affect misc apps.
+ # Default value is 1 hour.
+ [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
+ elif has git ${INHERITED}; then
if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
KMMODULE="${PN}"
fi
- # Split kde-base/ ebuilds: (they reside in trunk/KDE)
- case ${KMNAME} in
- kdebase-*)
- ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
- ;;
- kdelibs-*)
- ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
- ;;
- kdereview*)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
- ;;
- kdesupport)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
- ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
- ;;
- kde*)
- ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
- ;;
- extragear*|playground*)
- # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
- # build packages from same svn location.
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
- ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
- ;;
- koffice)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
- ;;
- *)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
+ case ${KDEBASE} in
+ kdevelop)
+ EGIT_REPO_URI="git://gitorious.org/${KMNAME}/${KMMODULE}.git"
;;
esac
- else
- # kdelibs, kdepimlibs
- ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
- ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
fi
- # @ECLASS-VARIABLE: ESVN_UP_FREQ
- # @DESCRIPTION:
- # This variable is used for specifying the timeout between svn synces
- # for kde-base and koffice modules. Does not affect misc apps.
- # Default value is 1 hour.
- [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
;;
*)
if [[ -n ${KDEBASE} ]]; then
@@ -407,6 +449,10 @@ case ${BUILD_TYPE} in
2.1.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
*) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
esac
+ ;;
+ kdevelop)
+ SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
+ ;;
esac
unset _kmname _kmname_pv
fi
@@ -494,8 +540,12 @@ kde4-base_src_unpack() {
debug-print-function ${FUNCNAME} "$@"
if [[ ${BUILD_TYPE} = live ]]; then
- migrate_store_dir
- subversion_src_unpack
+ if has subversion ${INHERITED}; then
+ migrate_store_dir
+ subversion_src_unpack
+ elif has git ${INHERITED}; then
+ git_src_unpack
+ fi
elif [[ ${EAPI} == 2 ]]; then
local file
for file in ${A}; do
@@ -539,7 +589,14 @@ kde4-base_src_prepare() {
has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas
fi
- [[ ${BUILD_TYPE} = live ]] && subversion_src_prepare
+ # SCM bootstrap
+ if [[ ${BUILD_TYPE} = live ]]; then
+ if has subversion ${INHERITED}; then
+ subversion_src_prepare
+ elif has git ${INHERITED}; then
+ git_src_prepare
+ fi
+ fi
# Apply patches
base_src_prepare
diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass
index ca48c2f0b3c..a03085b6b9d 100644
--- a/eclass/kde4-functions.eclass
+++ b/eclass/kde4-functions.eclass
@@ -25,16 +25,15 @@ esac
# @DESCRIPTION:
# This gets set to a non-zero value when a package is considered a kde or
# koffice ebuild.
-
if [[ ${CATEGORY} = kde-base ]]; then
debug-print "${ECLASS}: KDEBASE ebuild recognized"
KDEBASE=kde-base
-fi
-
-# is this a koffice ebuild?
-if [[ ${KMNAME} = koffice || ${PN} = koffice ]]; then
+elif [[ ${KMNAME} = koffice || ${PN} = koffice ]]; then
debug-print "${ECLASS}: KOFFICE ebuild recognized"
KDEBASE=koffice
+elif [[ ${KMNAME} = kdevelop ]]; then
+ debug-print "${ECLASS}: KDEVELOP ebuild recognized"
+ KDEBASE="kdevelop"
fi
# @ECLASS-VARIABLE: KDE_SLOTS