summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorAlexey Shvetsov <alexxy@gentoo.org>2011-01-25 21:18:07 +0300
committerAlexey Shvetsov <alexxy@gentoo.org>2011-01-25 21:18:07 +0300
commit7102b2064e9340e01cc29aa9533526af3f7833cb (patch)
tree68be6f178049fadce2b3e9cc5ecbbd8e1f5f451f /eclass
parent347ca2dc3016c50c7d426d56beb6cdd8c574e58a (diff)
parent88a51f4a408eb395448dca24c5a4f7ead82ffd95 (diff)
downloadkde-7102b2064e9340e01cc29aa9533526af3f7833cb.tar.gz
kde-7102b2064e9340e01cc29aa9533526af3f7833cb.tar.bz2
kde-7102b2064e9340e01cc29aa9533526af3f7833cb.zip
Merge branch 'kde-git'
Conflicts: app-cdr/k3b/Manifest app-editors/kile/Manifest app-office/akonadi-server/Manifest app-office/karbon/Manifest app-office/karbon/karbon-2.3.0.ebuild app-office/karbon/karbon-9999.ebuild app-office/kexi/Manifest app-office/kexi/kexi-2.3.0.ebuild app-office/kexi/kexi-9999.ebuild app-office/koffice-data/Manifest app-office/koffice-data/koffice-data-2.3.0.ebuild app-office/koffice-data/koffice-data-9999.ebuild app-office/koffice-l10n/Manifest app-office/koffice-l10n/koffice-l10n-2.3.0.ebuild app-office/koffice-libs/Manifest app-office/koffice-libs/koffice-libs-2.3.0.ebuild app-office/koffice-libs/koffice-libs-9999.ebuild app-office/koffice-meta/Manifest app-office/koffice-meta/koffice-meta-2.3.0.ebuild app-office/koffice-meta/koffice-meta-9999.ebuild app-office/kplato/Manifest app-office/kplato/kplato-2.3.0.ebuild app-office/kplato/kplato-9999.ebuild app-office/kpresenter/Manifest app-office/kpresenter/kpresenter-2.3.0.ebuild app-office/kpresenter/kpresenter-9999.ebuild app-office/krita/Manifest app-office/krita/krita-2.3.0.ebuild app-office/krita/krita-9999.ebuild app-office/kspread/Manifest app-office/kspread/kspread-2.3.0.ebuild app-office/kspread/kspread-9999.ebuild app-office/kword/Manifest app-office/kword/kword-2.3.0.ebuild app-office/kword/kword-9999.ebuild app-office/scribus/Manifest app-office/scribus/scribus-9999.ebuild dev-libs/libindicate/Manifest dev-libs/libindicate/libindicate-0.4.4.ebuild dev-libs/soprano/Manifest eclass/kde4-functions.eclass kde-base/activitymanager/Manifest kde-base/akonadiconsole/Manifest kde-base/akregator/Manifest kde-base/amor/Manifest kde-base/ark/Manifest kde-base/attica/Manifest kde-base/blinken/Manifest kde-base/blogilo/Manifest kde-base/bomber/Manifest kde-base/bovo/Manifest kde-base/cantor/Manifest kde-base/cervisia/Manifest kde-base/dolphin-plugins/Manifest kde-base/dolphin-plugins/dolphin-plugins-4.5.5.ebuild kde-base/dolphin-plugins/dolphin-plugins-4.6.0.ebuild kde-base/dolphin/Manifest kde-base/dragonplayer/Manifest kde-base/drkonqi/Manifest kde-base/ffmpegthumbs/Manifest kde-base/filelight/Manifest kde-base/freespacenotifier/Manifest kde-base/granatier/Manifest kde-base/gwenview/Manifest kde-base/jovie/Manifest kde-base/juk/Manifest kde-base/kabcclient/Manifest kde-base/kaccessible/Manifest kde-base/kaddressbook/Manifest kde-base/kajongg/Manifest kde-base/kalarm/Manifest kde-base/kalgebra/Manifest kde-base/kalzium/Manifest kde-base/kamera/Manifest kde-base/kanagram/Manifest kde-base/kapman/Manifest kde-base/kapptemplate/Manifest kde-base/kate/Manifest kde-base/katomic/Manifest kde-base/kbattleship/Manifest kde-base/kblackbox/Manifest kde-base/kblocks/Manifest kde-base/kbounce/Manifest kde-base/kbreakout/Manifest kde-base/kbruch/Manifest kde-base/kbugbuster/Manifest kde-base/kbugbuster/kbugbuster-4.5.5.ebuild kde-base/kcachegrind/Manifest kde-base/kcalc/Manifest kde-base/kcharselect/Manifest kde-base/kcheckpass/Manifest kde-base/kcminit/Manifest kde-base/kcmshell/Manifest kde-base/kcolorchooser/Manifest kde-base/kcontrol/Manifest kde-base/kcron/Manifest kde-base/kde-env/Manifest kde-base/kde-l10n/Manifest kde-base/kde-meta/Manifest kde-base/kdeaccessibility-colorschemes/Manifest kde-base/kdeaccessibility-iconthemes/Manifest kde-base/kdeaccessibility-meta/Manifest kde-base/kdeaccounts-plugin/Manifest kde-base/kdeadmin-meta/Manifest kde-base/kdeartwork-colorschemes/Manifest kde-base/kdeartwork-desktopthemes/Manifest kde-base/kdeartwork-emoticons/Manifest kde-base/kdeartwork-iconthemes/Manifest kde-base/kdeartwork-kscreensaver/Manifest kde-base/kdeartwork-meta/Manifest kde-base/kdeartwork-sounds/Manifest kde-base/kdeartwork-styles/Manifest kde-base/kdeartwork-wallpapers/Manifest kde-base/kdeartwork-weatherwallpapers/Manifest kde-base/kdebase-cursors/Manifest kde-base/kdebase-data/Manifest kde-base/kdebase-desktoptheme/Manifest kde-base/kdebase-kioslaves/Manifest kde-base/kdebase-menu-icons/Manifest kde-base/kdebase-menu/Manifest kde-base/kdebase-meta/Manifest kde-base/kdebase-runtime-meta/Manifest kde-base/kdebase-startkde/Manifest kde-base/kdebase-wallpapers/Manifest kde-base/kdebindings-csharp/Manifest kde-base/kdebindings-meta/Manifest kde-base/kdebindings-perl/Manifest kde-base/kdebindings-ruby/Manifest kde-base/kdebindings-ruby/kdebindings-ruby-4.5.5.ebuild kde-base/kdebindings-ruby/kdebindings-ruby-4.6.0.ebuild kde-base/kdebindings-ruby/kdebindings-ruby-4.6.9999.ebuild kde-base/kdebindings-ruby/kdebindings-ruby-9999.ebuild kde-base/kdebugdialog/Manifest kde-base/kdeedu-meta/Manifest kde-base/kdegames-meta/Manifest kde-base/kdegraphics-meta/Manifest kde-base/kdegraphics-strigi-analyzer/Manifest kde-base/kdelibs/Manifest kde-base/kdemultimedia-kioslaves/Manifest kde-base/kdemultimedia-meta/Manifest kde-base/kdenetwork-filesharing/Manifest kde-base/kdenetwork-meta/Manifest kde-base/kdepasswd/Manifest kde-base/kdepim-common-libs/Manifest kde-base/kdepim-icons/Manifest kde-base/kdepim-kresources/Manifest kde-base/kdepim-meta/Manifest kde-base/kdepim-runtime/Manifest kde-base/kdepim-strigi-analyzer/Manifest kde-base/kdepim-wizards/Manifest kde-base/kdepimlibs/Manifest kde-base/kdeplasma-addons/Manifest kde-base/kdesdk-kioslaves/Manifest kde-base/kdesdk-meta/Manifest kde-base/kdesdk-misc/Manifest kde-base/kdesdk-scripts/Manifest kde-base/kdesdk-strigi-analyzer/Manifest kde-base/kdesu/Manifest kde-base/kdetoys-meta/Manifest kde-base/kdeutils-meta/Manifest kde-base/kdewebdev-meta/Manifest kde-base/kdf/Manifest kde-base/kdialog/Manifest kde-base/kdiamond/Manifest kde-base/kdm/Manifest kde-base/kdnssd/Manifest kde-base/kdontchangethehostname/Manifest kde-base/keditbookmarks/Manifest kde-base/keditfiletype/Manifest kde-base/kephal/Manifest kde-base/kfile/Manifest kde-base/kfilereplace/Manifest kde-base/kfind/Manifest kde-base/kfloppy/Manifest kde-base/kfmclient/Manifest kde-base/kfourinline/Manifest kde-base/kgamma/Manifest kde-base/kgeography/Manifest kde-base/kget/Manifest kde-base/kglobalaccel/Manifest kde-base/kgoldrunner/Manifest kde-base/kgpg/Manifest kde-base/khangman/Manifest kde-base/khelpcenter/Manifest kde-base/khotkeys/Manifest kde-base/kiconfinder/Manifest kde-base/kig/Manifest kde-base/kigo/Manifest kde-base/killbots/Manifest kde-base/kimagemapeditor/Manifest kde-base/kinfocenter/Manifest kde-base/kioclient/Manifest kde-base/kiriki/Manifest kde-base/kiten/Manifest kde-base/kjots/Manifest kde-base/kjumpingcube/Manifest kde-base/kleopatra/Manifest kde-base/klettres/Manifest kde-base/klickety/Manifest kde-base/klines/Manifest kde-base/klinkstatus/Manifest kde-base/klipper/Manifest kde-base/kmag/Manifest kde-base/kmahjongg/Manifest kde-base/kmail/Manifest kde-base/kmail/kmail-4.4.9999.ebuild kde-base/kmail/kmail-4.6.9999.ebuild kde-base/kmail/kmail-9999.ebuild kde-base/kmenuedit/Manifest kde-base/kmimetypefinder/Manifest kde-base/kmines/Manifest kde-base/kmix/Manifest kde-base/kmousetool/Manifest kde-base/kmouth/Manifest kde-base/kmplot/Manifest kde-base/knetattach/Manifest kde-base/knetwalk/Manifest kde-base/knetworkconf/Manifest kde-base/knetworkconf/knetworkconf-4.5.5.ebuild kde-base/knewstuff/Manifest kde-base/knode/Manifest kde-base/knotes/Manifest kde-base/knotify/Manifest kde-base/kolf/Manifest kde-base/kollision/Manifest kde-base/kolourpaint/Manifest kde-base/kommander/Manifest kde-base/kompare/Manifest kde-base/konqueror/Manifest kde-base/konquest/Manifest kde-base/konsole/Manifest kde-base/konsolekalendar/Manifest kde-base/kontact/Manifest kde-base/kopete/Manifest kde-base/korganizer/Manifest kde-base/kpasswdserver/Manifest kde-base/kpat/Manifest kde-base/kppp/Manifest kde-base/kquitapp/Manifest kde-base/krdc/Manifest kde-base/kreadconfig/Manifest kde-base/kremotecontrol/Manifest kde-base/kreversi/Manifest kde-base/krfb/Manifest kde-base/krfb/krfb-4.5.5.ebuild kde-base/krossjava/Manifest kde-base/krosspython/Manifest kde-base/kruler/Manifest kde-base/krunner/Manifest kde-base/ksame/Manifest kde-base/ksame/ksame-4.5.5.ebuild kde-base/ksaneplugin/Manifest kde-base/kscd/Manifest kde-base/kscreensaver/Manifest kde-base/kshisen/Manifest kde-base/ksirk/Manifest kde-base/ksmserver/Manifest kde-base/ksnapshot/Manifest kde-base/ksnapshot/ksnapshot-4.5.5.ebuild kde-base/kspaceduel/Manifest kde-base/ksplash/Manifest kde-base/ksquares/Manifest kde-base/kstars/Manifest kde-base/kstart/Manifest kde-base/kstartperf/Manifest kde-base/kstartupconfig/Manifest kde-base/kstyles/Manifest kde-base/ksudoku/Manifest kde-base/ksysguard/Manifest kde-base/ksystemlog/Manifest kde-base/ksystraycmd/Manifest kde-base/kteatime/Manifest kde-base/ktimer/Manifest kde-base/ktimetracker/Manifest kde-base/ktimezoned/Manifest kde-base/ktouch/Manifest kde-base/ktraderclient/Manifest kde-base/ktron/Manifest kde-base/ktuberling/Manifest kde-base/kturtle/Manifest kde-base/ktux/Manifest kde-base/kubrick/Manifest kde-base/kuiserver/Manifest kde-base/kuiviewer/Manifest kde-base/kurifilter-plugins/Manifest kde-base/kuser/Manifest kde-base/kvtml-data/Manifest kde-base/kwallet/Manifest kde-base/kwalletd/Manifest kde-base/kwin/Manifest kde-base/kwordquiz/Manifest kde-base/kwrite/Manifest kde-base/kwrited/Manifest kde-base/libkcddb/Manifest kde-base/libkcompactdisc/Manifest kde-base/libkdcraw/Manifest kde-base/libkdeedu/Manifest kde-base/libkdegames/Manifest kde-base/libkdepim/Manifest kde-base/libkdepim/libkdepim-4.4.9999.ebuild kde-base/libkexiv2/Manifest kde-base/libkipi/Manifest kde-base/libkmahjongg/Manifest kde-base/libkonq/Manifest kde-base/libksane/Manifest kde-base/libkworkspace/Manifest kde-base/liboxygenstyle/Manifest kde-base/libplasmaclock/Manifest kde-base/libplasmagenericshell/Manifest kde-base/libtaskmanager/Manifest kde-base/lokalize/Manifest kde-base/lskat/Manifest kde-base/marble/Manifest kde-base/mplayerthumbs/Manifest kde-base/nepomuk/Manifest kde-base/nsplugins/Manifest kde-base/okteta/Manifest kde-base/okular/Manifest kde-base/oxygen-icons/Manifest kde-base/palapeli/Manifest kde-base/parley/Manifest kde-base/phonon-kde/Manifest kde-base/plasma-apps/Manifest kde-base/plasma-runtime/Manifest kde-base/plasma-workspace/Manifest kde-base/powerdevil/Manifest kde-base/printer-applet/Manifest kde-base/pykde4/Manifest kde-base/qguiplatformplugin_kde/Manifest kde-base/renamedlg-plugins/Manifest kde-base/rocs/Manifest kde-base/smoke/Manifest kde-base/solid-runtime/Manifest kde-base/solid/Manifest kde-base/step/Manifest kde-base/superkaramba/Manifest kde-base/svgpart/Manifest kde-base/sweeper/Manifest kde-base/system-config-printer-kde/Manifest kde-base/systemsettings/Manifest kde-base/thumbnailers/Manifest kde-base/umbrello/Manifest kde-misc/kdiff3/Manifest kde-misc/kdiff3/kdiff3-0.9.95-r1.ebuild kde-misc/kdiff3/kdiff3-9999.ebuild kde-misc/nightmode/Manifest kde-misc/nightmode/nightmode-0.2.ebuild kde-misc/plasma-mail/Manifest kde-misc/plasma-mail/plasma-mail-0.3.1.ebuild media-sound/phonon-gstreamer/Manifest media-sound/phonon-gstreamer/phonon-gstreamer-9999.ebuild media-sound/phonon-vlc/Manifest media-sound/phonon-vlc/phonon-vlc-9999.ebuild media-sound/phonon-xine/Manifest media-sound/phonon-xine/phonon-xine-9999.ebuild media-sound/phonon/Manifest media-sound/phonon/phonon-9999.ebuild net-im/choqok/Manifest net-libs/libgcal/Manifest net-libs/libgcal/libgcal-0.9.6.ebuild net-libs/libktorrent/Manifest net-misc/ksshaskpass/Manifest net-misc/ksshaskpass/ksshaskpass-0.5.3.ebuild net-p2p/ktorrent/Manifest sys-auth/polkit-kde-agent/Manifest x11-themes/oxygen-gtk/Manifest Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r--eclass/kde4-base.eclass104
-rw-r--r--eclass/kde4-functions.eclass116
-rw-r--r--eclass/kde4-meta.eclass72
3 files changed, 161 insertions, 131 deletions
diff --git a/eclass/kde4-base.eclass b/eclass/kde4-base.eclass
index 1e64bac94e8..ef25558f8b8 100644
--- a/eclass/kde4-base.eclass
+++ b/eclass/kde4-base.eclass
@@ -10,8 +10,8 @@
# The kde4-base.eclass provides support for building KDE4 based ebuilds
# and KDE4 applications.
#
-# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but
-# eclass will fail with version older than 2.
+# NOTE: KDE 4 ebuilds currently support EAPI "3". This will be reviewed
+# over time as new EAPI versions are approved.
# @ECLASS-VARIABLE: VIRTUALX_REQUIRED
# @DESCRIPTION:
@@ -30,11 +30,17 @@ inherit kde4-functions base virtualx eutils
get_build_type
if [[ ${BUILD_TYPE} = live ]]; then
- if [[ ${KDEBASE} = kdevelop ]]; then
- inherit git
- else
- inherit subversion
- fi
+ case ${KDE_SCM} in
+ svn)
+ inherit subversion
+ ;;
+ git)
+ inherit git
+ ;;
+ *)
+ die "unsupported scm: ${KDE_SCM}"
+ ;;
+ esac
fi
# @ECLASS-VARIABLE: CMAKE_REQUIRED
@@ -369,6 +375,7 @@ if [[ ${PN} != kdelibs ]]; then
fi
fi
fi
+
kdedepend="
dev-util/automoc
dev-util/pkgconfig
@@ -377,6 +384,7 @@ kdedepend="
x11-proto/xf86vidmodeproto
)
"
+
kderdepend=""
if [[ ${PN} != oxygen-icons ]]; then
@@ -439,7 +447,7 @@ IUSE+=" kdeenablefinal"
case ${BUILD_TYPE} in
live)
SRC_URI=""
- if has subversion ${INHERITED}; then
+ if [[ "${KDE_SCM}" == "svn" ]]; then
# Determine branch URL based on live type
local branch_prefix
case ${PV} in
@@ -510,14 +518,45 @@ case ${BUILD_TYPE} in
# 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
+ elif [[ "${KDE_SCM}" == "git" ]]; then
+ case ${PV} in
+ 9999*)
+ # master
+ # @ECLASS-VARIABLE: EGIT_PROJECT_SUFFIX
+ # @DESCRIPTION
+ # Suffix appended to EGIT_PROJECT depending on fetched branch.
+ # Defaults is empty (for -9999 = master), and "-${PV}" otherwise.
+ EGIT_PROJECT_SUFFIX=""
+ ;;
+ 4.6.9999)
+ # keep this as long as 4.6 does not have its own branch in
+ # kde git tree
+ EGIT_PROJECT_SUFFIX=""
+ EGIT_BRANCH="master"
+ ;;
+ *)
+ # branch
+ EGIT_PROJECT_SUFFIX="-${PV}"
+
+ # set EGIT_BRANCH to ${SLOT}
+ EGIT_BRANCH="${SLOT}"
+ ;;
+ esac
if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
KMMODULE="${PN}"
fi
+ if [[ -n ${KMNAME} ]]; then
+ EGIT_PROJECT="${KMNAME}${EGIT_PROJECT_SUFFIX}"
+ if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
+ KMMODULE="${PN}"
+ fi
+ fi
case ${KDEBASE} in
kdevelop)
- EGIT_REPO_URI="git://git.kde.org/${KMMODULE}"
+ EGIT_REPO_URI="git://anongit.kde.org/${KMMODULE}"
;;
+ *)
+ EGIT_REPO_URI="git://anongit.kde.org/${PN}"
esac
fi
;;
@@ -585,15 +624,6 @@ debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
kde4-base_pkg_setup() {
debug-print-function ${FUNCNAME} "$@"
- # Prefix compat:
- if [[ ${EAPI} == 2 ]] && ! use prefix; then
- EPREFIX=
- EROOT=${ROOT}
- fi
-
- # Append missing trailing slash character
- [[ ${EROOT} = */ ]] || EROOT+="/"
-
# QA ebuilds
[[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})."
@@ -651,28 +681,15 @@ kde4-base_src_unpack() {
debug-print-function ${FUNCNAME} "$@"
if [[ ${BUILD_TYPE} = live ]]; then
- 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
- # This setup is because EAPI <= 2 cannot unpack *.tar.xz files
- # directly, so we do it ourselves (using the exact same code as portage)
- case ${file} in
- *.tar.xz)
- echo ">>> Unpacking ${file} to ${PWD}"
- xz -dc "${DISTDIR}"/${file} | tar xof -
- assert "failed unpacking ${file}"
- ;;
- *)
- unpack ${file}
- ;;
- esac
- done
+ case ${KDE_SCM} in
+ svn)
+ migrate_store_dir
+ subversion_src_unpack
+ ;;
+ git)
+ git_src_unpack
+ ;;
+ esac
else
# For EAPI >= 3, we can just use unpack() directly
unpack ${A}
@@ -869,11 +886,6 @@ kde4-base_src_test() {
kde4-base_src_install() {
debug-print-function ${FUNCNAME} "$@"
- # Prefix support, for usage in ebuilds
- if [[ ${EAPI} == 2 ]] && ! use prefix; then
- ED=${D}
- fi
-
if [[ -n ${KMSAVELIBS} ]] ; then
install_library_dependencies
fi
diff --git a/eclass/kde4-functions.eclass b/eclass/kde4-functions.eclass
index 106eb50d398..365cf46d93e 100644
--- a/eclass/kde4-functions.eclass
+++ b/eclass/kde4-functions.eclass
@@ -14,10 +14,10 @@ inherit versionator
# @ECLASS-VARIABLE: EAPI
# @DESCRIPTION:
-# By default kde4 eclasses want EAPI 2 which might be redefinable to newer
-# versions.
+# Currently kde4 eclasses support EAPI 3. Over time newer versions
+# will be supported.
case ${EAPI:-0} in
- 2|3) : ;;
+ 3) : ;;
*) die "EAPI=${EAPI} is not supported" ;;
esac
@@ -36,6 +36,11 @@ elif [[ ${KMNAME} = kdevelop ]]; then
KDEBASE="kdevelop"
fi
+# @ECLASS-VARIABLE: KDE_SCM
+# @DESCRIPTION:
+# If this is a live package which scm does it use - default to svn
+KDE_SCM="${KDE_SCM:-svn}"
+
# @ECLASS-VARIABLE: KDE_SLOTS
# @DESCRIPTION:
# The slots used by all KDE versions later than 4.0. The live KDE releases use
@@ -64,24 +69,6 @@ slot_is_at_least() {
buildsycoca() {
debug-print-function ${FUNCNAME} "$@"
- if [[ ${EAPI} == 2 ]] && ! use prefix; then
- EROOT=${ROOT}
- fi
-
- local KDE3DIR="${EROOT}usr/kde/3.5"
- if [[ -z ${EROOT%%/} && -x "${KDE3DIR}"/bin/kbuildsycoca ]]; then
- # Since KDE3 is aware of shortcuts in /usr, rebuild database
- # for KDE3 as well.
- touch "${KDE3DIR}"/share/services/ksycoca
- chmod 644 "${KDE3DIR}"/share/services/ksycoca
-
- ebegin "Running kbuildsycoca to build global database"
- XDG_DATA_DIRS="${EROOT}usr/local/share:${KDE3DIR}/share:${EROOT}usr/share" \
- DISPLAY="" \
- "${KDE3DIR}"/bin/kbuildsycoca --global --noincremental &> /dev/null
- eend $?
- fi
-
# We no longer need to run kbuildsycoca4, as kded does that automatically, as needed
# fix permission for some directories
@@ -228,7 +215,12 @@ get_build_type() {
# * performs split of kdebase to kdebase-apps when needed
# * moves playground/extragear kde4-base-style to toplevel dir
migrate_store_dir() {
+ if [[ ${KDE_SCM} != svn ]]; then
+ die "migrate_store_dir() only makes sense for subversion"
+ fi
+
local cleandir="${ESVN_STORE_DIR}/KDE"
+
if [[ -d "${cleandir}" ]]; then
ewarn "'${cleandir}' has been found. Moving contents to new location."
addwrite "${ESVN_STORE_DIR}"
@@ -249,22 +241,22 @@ migrate_store_dir() {
for pkg in "${cleandir}"/*; do
mv -f "${pkg}" "${ESVN_STORE_DIR}"/ || eerror "Failed to move '${pkg}'"
done
- rmdir "${cleandir}" || die "Could not move obsolete KDE store dir. Please move '${cleandir}' contents to appropriate location (possibly ${ESVN_STORE_DIR}) and manually remove '${cleandir}' in order to continue."
+ rmdir "${cleandir}" || die "Could not move obsolete KDE store dir. Please move '${cleandir}' contents to appropriate location (possibly ${ESVN_STORE_DIR}) and manually remove '${cleandir}' in order to continue."
fi
if ! hasq kde4-meta ${INHERITED}; then
case ${KMNAME} in
extragear*|playground*)
- local svnlocalpath="${ESVN_STORE_DIR}"/"${KMNAME}"/"${PN}"
- if [[ -d "${svnlocalpath}" ]]; then
+ local scmlocalpath="${ESVN_STORE_DIR}"/"${KMNAME}"/"${PN}"
+ if [[ -d "${scmlocalpath}" ]]; then
local destdir="${ESVN_STORE_DIR}"/"${ESVN_PROJECT}"/"`basename "${ESVN_REPO_URI}"`"
- ewarn "'${svnlocalpath}' has been found."
+ ewarn "'${scmlocalpath}' has been found."
ewarn "Moving contents to new location: ${destdir}"
addwrite "${ESVN_STORE_DIR}"
- mkdir -p "${ESVN_STORE_DIR}"/"${ESVN_PROJECT}" && mv -f "${svnlocalpath}" "${destdir}" \
- || die "Failed to move to '${svnlocalpath}'"
+ mkdir -p "${ESVN_STORE_DIR}"/"${ESVN_PROJECT}" && mv -f "${scmlocalpath}" "${destdir}" \
+ || die "Failed to move to '${scmlocalpath}'"
# Try cleaning empty directories
- rmdir "`dirname "${svnlocalpath}"`" 2> /dev/null
+ rmdir "`dirname "${scmlocalpath}"`" 2> /dev/null
fi
;;
esac
@@ -359,50 +351,48 @@ add_blocker() {
# @FUNCTION: add_kdebase_dep
# @DESCRIPTION:
-# Create proper dependency for kde-base/ dependencies,
-# adding SLOT when needed (and *only* when needed).
-# This takes 1 or 2 arguments. The first being the package
-# name, the optional second, is additional USE flags to append.
-# The output of this should be added directly to DEPEND/RDEPEND, and
-# may be wrapped in a USE conditional (but not an || conditional
-# without an extra set of parentheses).
+# Create proper dependency for kde-base/ dependencies, adding SLOT when needed
+# (and *only* when needed).
+# This takes 1 to 3 arguments. The first being the package name, the optional
+# second is additional USE flags to append, and the optional third is the
+# version to use instead of the automatic version (use sparingly).
+# The output of this should be added directly to DEPEND/RDEPEND, and may be
+# wrapped in a USE conditional (but not an || conditional without an extra set
+# of parentheses).
add_kdebase_dep() {
debug-print-function ${FUNCNAME} "$@"
+ local ver
+
+ if [[ -n ${3} ]]; then
+ ver=${3}
+ elif [[ ${KDEBASE} != kde-base ]]; then
+ ver=${KDE_MINIMAL}
+ # FIXME remove hack when kdepim-4.4.* is gone
+ elif [[ ( ${KMNAME} == kdepim || ${PN} == kdepim-runtime ) && ${PV} == 4.4.[6-8] && ${1} =~ ^kde(pim)?libs$ ]]; then
+ ver=4.4.5
+ # FIXME remove hack when kdepim-4.6beta is gone
+ elif [[ ( ${KMNAME} == kdepim || ${PN} == kdepim-runtime ) && ${PV} == 4.5.98 && ${1} =~ ^(kde(pim)?libs|oxygen-icons)$ ]]; then
+ ver=4.5.90
+ # if building stable-live version depend just on slot
+ # to allow merging packages against more stable basic stuff
+ elif [[ ${PV} == *.9999 ]]; then
+ ver=${SLOT}
+ else
+ ver=${PV}
+ fi
+
[[ -z ${1} ]] && die "Missing parameter"
local use=${2:+,${2}}
if [[ ${KDEBASE} = kde-base ]]; then
- # FIXME remove hack when >kdepim-4.4.5 is gone
- local FIXME_PV
- if [[ ${KMNAME} = kdepim || ${PN} = kdepim-runtime ]] && [[ ${PV} = 4.4.6* || ${PV} = 4.4.7* || ${PV} = 4.4.8* || ${PV} = 4.4.9* ]] && [[ ${1} = kdelibs || ${1} = kdepimlibs || ${1} = oxygen-icons ]]; then
- FIXME_PV=4.4.5
- # FIXME remove hack when kdepim-4.6beta is gone
- elif [[ ${KMNAME} = kdepim || ${PN} = kdepim-runtime ]] && [[ ${PV} = 4.5.94* ]] && [[ ${1} = kdelibs || ${1} = kdepimlibs || ${1} = oxygen-icons ]]; then
- FIXME_PV=4.5.90
- else
- FIXME_PV=${PV}
- fi
-
- # if building stable-live version depend just on slot
- # to allow merging packages against more stable basic stuff
- case ${PV} in
- *.9999*)
- echo " !kdeprefix? ( >=kde-base/${1}-${SLOT}[aqua=,-kdeprefix${use}] )"
- echo " kdeprefix? ( >=kde-base/${1}-${SLOT}:${SLOT}[aqua=,kdeprefix${use}] )"
- ;;
- *)
- echo " !kdeprefix? ( >=kde-base/${1}-${FIXME_PV}[aqua=,-kdeprefix${use}] )"
- echo " kdeprefix? ( >=kde-base/${1}-${FIXME_PV}:${SLOT}[aqua=,kdeprefix${use}] )"
- ;;
- esac
+ echo " !kdeprefix? ( >=kde-base/${1}-${ver}[aqua=,-kdeprefix${use}] )"
+ echo " kdeprefix? ( >=kde-base/${1}-${ver}:${SLOT}[aqua=,kdeprefix${use}] )"
+ elif [[ ${ver} == live ]]; then
+ echo " kde-base/${1}:live[aqua=${use}]"
else
- if [[ ${KDE_MINIMAL} = live ]]; then
- echo " kde-base/${1}:${KDE_MINIMAL}[aqua=${use}]"
- else
- echo " >=kde-base/${1}-${KDE_MINIMAL}[aqua=${use}]"
- fi
+ echo " >=kde-base/${1}-${ver}[aqua=${use}]"
fi
}
diff --git a/eclass/kde4-meta.eclass b/eclass/kde4-meta.eclass
index 0b8897f49c5..8e26ead1bdd 100644
--- a/eclass/kde4-meta.eclass
+++ b/eclass/kde4-meta.eclass
@@ -70,12 +70,21 @@ debug-print "line ${LINENO} ${ECLASS}: RDEPEND ${RDEPEND} - after metapackage-sp
# Useful to build kde4-meta style stuff from extragear/playground (plasmoids etc)
case ${BUILD_TYPE} in
live)
- case ${KMNAME} in
- extragear*|playground*)
- ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
- ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
- ;;
- esac
+ if [[ "${KDE_SCM}" == "svn" ]]; then
+ case ${KMNAME} in
+ extragear*|playground*)
+ ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
+ ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
+ ;;
+ esac
+ elif [[ "${KDE_SCM}" == "git" ]]; then
+ case ${KMNAME} in
+ kdepim)
+ EGIT_REPO_URI="git://anongit.kde.org/${KMNAME}"
+ ;;
+ esac
+
+ fi
;;
esac
@@ -145,12 +154,19 @@ kde4-meta_src_unpack() {
debug-print-function ${FUNCNAME} "$@"
if [[ ${BUILD_TYPE} = live ]]; then
- migrate_store_dir
- S="${WORKDIR}/${P}"
- mkdir -p "${S}"
- ESVN_RESTRICT="export" subversion_src_unpack
- subversion_wc_info
- subversion_bootstrap
+ if [[ "$KDE_SCM" == "svn" ]]; then
+ migrate_store_dir
+ S="${WORKDIR}/${P}"
+ mkdir -p "${S}"
+ ESVN_RESTRICT="export" subversion_src_unpack
+ subversion_wc_info
+ subversion_bootstrap
+ elif [[ "${KDE_SCM}" == "git" ]]; then
+ S="${WORKDIR}/${P}"
+ mkdir -p "${S}"
+ EGIT_HAS_SUBMODULES=1
+ git_src_unpack
+ fi
kde4-meta_src_extract
else
kde4-meta_src_extract
@@ -168,31 +184,43 @@ kde4-meta_src_extract() {
debug-print-function ${FUNCNAME} "$@"
if [[ ${BUILD_TYPE} = live ]]; then
- local rsync_options subdir kmnamedir targetdir
+ local rsync_options subdir kmnamedir targetdir wc_path escm
# Export working copy to ${S}
einfo "Exporting parts of working copy to ${S}"
kde4-meta_create_extractlists
+ rsync_options="--group --links --owner --perms --quiet --exclude=.svn/ --exclude=.git/"
- rsync_options="--group --links --owner --perms --quiet --exclude=.svn/"
+ case "${KDE_SCM}" in
+ svn)
+ wc_path="${ESVN_WC_PATH}"
+ escm="{ESVN}"
+ ;;
+ git)
+ wc_path="${EGIT_STORE_DIR}/${EGIT_PROJECT}"
+ escm="{EGIT}"
+ ;;
+ *)
+ die "Unknown value for KDE_SCM in kde4-meta_src_extract(): ${KDE_SCM}"
+ esac
# Copy ${KMNAME} non-recursively (toplevel files)
- rsync ${rsync_options} "${ESVN_WC_PATH}"/${kmnamedir}* "${S}" \
- || die "${ESVN}: can't export toplevel files to '${S}'."
+ rsync ${rsync_options} "${wc_path}"/${kmnamedir}* "${S}" \
+ || die "${escm}: can't export toplevel files to '${S}'."
# Copy cmake directory
- if [[ -d "${ESVN_WC_PATH}/${kmnamedir}cmake" ]]; then
- rsync --recursive ${rsync_options} "${ESVN_WC_PATH}/${kmnamedir}cmake" "${S}" \
- || die "${ESVN}: can't export cmake files to '${S}'."
+ if [[ -d "${wc_path}/${kmnamedir}cmake" ]]; then
+ rsync --recursive ${rsync_options} "${wc_path}/${kmnamedir}cmake" "${S}" \
+ || die "${escm}: can't export cmake files to '${S}'."
fi
# Copy all subdirectories
for subdir in $(__list_needed_subdirectories); do
targetdir=""
- if [[ $subdir = doc/* && ! -e "$ESVN_WC_PATH/$kmnamedir$subdir" ]]; then
+ if [[ $subdir = doc/* && ! -e "$wc_path/$kmnamedir$subdir" ]]; then
continue
fi
[[ ${subdir%/} = */* ]] && targetdir=${subdir%/} && targetdir=${targetdir%/*} && mkdir -p "${S}/${targetdir}"
- rsync --recursive ${rsync_options} "${ESVN_WC_PATH}/${kmnamedir}${subdir%/}" "${S}/${targetdir}" \
- || die "${ESVN}: can't export subdirectory '${subdir}' to '${S}/${targetdir}'."
+ rsync --recursive ${rsync_options} "${wc_path}/${kmnamedir}${subdir%/}" "${S}/${targetdir}" \
+ || die "${escm}: can't export subdirectory '${subdir}' to '${S}/${targetdir}'."
done
if [[ ${KMNAME} = kdebase-runtime && ${PN} != kdebase-data ]]; then