summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce A. Locke <blocke@gentoo.org>2002-05-21 20:31:28 +0000
committerBruce A. Locke <blocke@gentoo.org>2002-05-21 20:31:28 +0000
commitebc060faa2adee408b78303000903053cbaaae84 (patch)
tree759867026a9f7c848866db5d1ff50614cd2ea234 /eclass/inherit.eclass
parentmask openoffice-bin-641d (diff)
downloadgentoo-2-ebc060faa2adee408b78303000903053cbaaae84.tar.gz
gentoo-2-ebc060faa2adee408b78303000903053cbaaae84.tar.bz2
gentoo-2-ebc060faa2adee408b78303000903053cbaaae84.zip
inherit.eclass needs to stick around so older packages can be unmerged
Diffstat (limited to 'eclass/inherit.eclass')
-rw-r--r--eclass/inherit.eclass67
1 files changed, 67 insertions, 0 deletions
diff --git a/eclass/inherit.eclass b/eclass/inherit.eclass
new file mode 100644
index 000000000000..1a257226783b
--- /dev/null
+++ b/eclass/inherit.eclass
@@ -0,0 +1,67 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Dan Armak <danarmak@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/eclass/inherit.eclass,v 1.16 2002/05/21 20:31:28 blocke Exp $
+
+##########################################################################
+#
+# This is required as without it older installed packages using the older
+# inherit method cannot be uninstalled!
+#
+##########################################################################
+
+# This eclass provides the inherit() function. In the future it will be placed in ebuild.sh, but for now drobbins
+# doesn't want to make a new portage just for my testing, so every eclass/ebuild will source this file manually and
+# then inherit(). This way when the time comes for this to move into ebuild.sh, we can just delete the source lines.
+
+# Since portage-1.8.9_pre32 eclasses were partially merged with ebuild.sh and this part went there.
+# Since we're providing backward support for rc6 profile/portage-1.8.8 owners till a month after
+# the 1.0 release, I do this which is like a c++ include file's #ifdef...#define...#endif
+
+# $ECLASSDIR is defined in ebuild.sh in new portages. If it isn't there go into compatibility mode,
+# else sourcing this file does nothing
+
+if [ -z "$ECLASSDIR" ]; then
+
+ export COMPAT="true"
+
+ ECLASS=inherit
+ ECLASSDIR=/usr/portage/eclass
+
+ inherit() {
+
+ while [ "$1" ]; do
+
+ # any future resolution code goes here
+ local location
+ location="${ECLASSDIR}/${1}.eclass"
+
+ # for now, disable by deafult because it creates a lot extra sourcing. (get debug lvels there already!)
+ #. ${ECLASSDIR}/debug.eclass
+ #debug-print "inherit: $1 -> $location"
+
+ source "$location" || die "died sourcing $location in $FUNCNAME"
+
+ shift
+
+ done
+
+ }
+
+ inherit debug
+
+ debug-print "inherit.eclass: compatibility mode set"
+
+ EXPORT_FUNCTIONS() {
+
+ while [ "$1" ]; do
+ debug-print "EXPORT_FUNCTIONS: ${1} -> ${ECLASS}_${1}"
+ eval "$1() { ${ECLASS}_$1 ; }" > /dev/null
+ shift
+ done
+
+ }
+
+else
+ debug-print "inherit.eclass: new portage detected, taking no action"
+fi