summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Lohrke <carlo@gentoo.org>2006-06-11 10:28:58 +0000
committerCarsten Lohrke <carlo@gentoo.org>2006-06-11 10:28:58 +0000
commit27f55136edd747d61cfac4eff15672f0b3030a0c (patch)
treef142007c5f86f40f4578413f46f9090792e32246 /eclass/kde.eclass
parentStable on hppa. (diff)
downloadhistorical-27f55136edd747d61cfac4eff15672f0b3030a0c.tar.gz
historical-27f55136edd747d61cfac4eff15672f0b3030a0c.tar.bz2
historical-27f55136edd747d61cfac4eff15672f0b3030a0c.zip
Improved KDE patch handling.
Diffstat (limited to 'eclass/kde.eclass')
-rw-r--r--eclass/kde.eclass34
1 files changed, 27 insertions, 7 deletions
diff --git a/eclass/kde.eclass b/eclass/kde.eclass
index 7d2bea57a1be..13f3bcc5b8a3 100644
--- a/eclass/kde.eclass
+++ b/eclass/kde.eclass
@@ -1,6 +1,6 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/kde.eclass,v 1.164 2006/06/10 16:19:54 swegener Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/kde.eclass,v 1.165 2006/06/11 10:28:58 carlo Exp $
#
# Author Dan Armak <danarmak@gentoo.org>
#
@@ -87,12 +87,32 @@ kde_pkg_setup() {
kde_src_unpack() {
debug-print-function $FUNCNAME $*
- # call base_src_unpack, which implements most of the functionality and has sections,
- # unlike this function. The change from base_src_unpack to kde_src_unpack is thus
- # wholly transparent for ebuilds.
- base_src_unpack $*
-
- # kde-specific stuff stars here
+ local PATCHDIR="${WORKDIR}/patches/"
+ if [[ -z $* ]] ; then
+ # Unpack first and deal with KDE patches after examing possible patch sets.
+ # To be picked up, patches need to be named $PN-$PV-*{diff,patch} and be
+ # placed in $PATCHDIR. Monolithic ebuilds will use the split ebuild patches.
+ base_src_unpack unpack
+ if [[ -d "${PATCHDIR}" ]] ; then
+ if is-parent-package ${CATEGORY}/${PN} ; then
+ packages="$(get-child-packages ${CATEGORY}/${PN})"
+ packages="${packages//${CATEGORY}\//} ${PN}"
+ else
+ packages="${PN}"
+ fi
+ for _p in ${packages} ; do
+ PATCHES="${PATCHES} $(ls ${PATCHDIR}/${_p}-${PV}-*{diff,patch} 2>/dev/null)"
+ if [[ -n "${KDEBASE}" ]] ; then
+ PATCHES="${PATCHES} $(ls ${PATCHDIR}/${_p}-${SLOT}-*{diff,patch} 2>/dev/null)"
+ fi
+ done
+ fi
+ [[ -n ${PATCHES} ]] && base_src_unpack autopatch
+ else
+ # Call base_src_unpack, which has sections, to do unpacking and patching
+ # step by step transparently as defined in the ebuild.
+ base_src_unpack $*
+ fi
[[ -z ${KDE_S} ]] && KDE_S="${S}"