summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2010-03-31 02:11:55 +0000
committerRobin H. Johnson <robbat2@gentoo.org>2010-03-31 02:11:55 +0000
commitf9d3eb3884ccb07f3efac248cf4af56682526939 (patch)
treef9fd7bd8a1c088a5cd309f36a16e12018fe658cc /eclass
parentfix manifests (diff)
downloadgentoo-2-f9d3eb3884ccb07f3efac248cf4af56682526939.tar.gz
gentoo-2-f9d3eb3884ccb07f3efac248cf4af56682526939.tar.bz2
gentoo-2-f9d3eb3884ccb07f3efac248cf4af56682526939.zip
Bug #312315: We must reflect the latest stable automake SLOT for all architectures, otherwise we get fun circular build dependencies when we already have a should-be-sufficent automake and try to bring in a different one during the stage2->3 transition.
Diffstat (limited to 'eclass')
-rw-r--r--eclass/autotools.eclass27
1 files changed, 24 insertions, 3 deletions
diff --git a/eclass/autotools.eclass b/eclass/autotools.eclass
index cba6e0e07393..414932b17f89 100644
--- a/eclass/autotools.eclass
+++ b/eclass/autotools.eclass
@@ -1,6 +1,6 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/eclass/autotools.eclass,v 1.94 2010/03/07 17:43:11 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/eclass/autotools.eclass,v 1.95 2010/03/31 02:11:55 robbat2 Exp $
# @ECLASS: autotools.eclass
# @MAINTAINER:
@@ -24,13 +24,29 @@ inherit eutils libtool
# The major version of automake your package needs
: ${WANT_AUTOMAKE:=latest}
+# @ECLASS-VARIABLE: _LATEST_AUTOMAKE
+# @DESCRIPTION:
+# CONSTANT!
+# The latest major version/slot of automake available on each arch.
+# If a newer version is stable on any arch, and is NOT reflected in this list,
+# then circular dependencies may arise during emerge @system bootstraps.
+# Do NOT change this variable in your ebuilds!
+_LATEST_AUTOMAKE='1.11 1.10'
+
_automake_atom="sys-devel/automake"
_autoconf_atom="sys-devel/autoconf"
if [[ -n ${WANT_AUTOMAKE} ]]; then
case ${WANT_AUTOMAKE} in
none) _automake_atom="" ;; # some packages don't require automake at all
# if you change the “latest” version here, change also autotools_run_tool
- latest) _automake_atom="=sys-devel/automake-1.10*" ;;
+ # this MUST reflect the latest stable major version for each arch!
+ latest)
+ t="" ; for v in ${_LATEST_AUTOMAKE} ; do
+ t="${t} =sys-devel/automake-${v}*"
+ done
+ unset t v
+ _automake_atom="|| ( ${_automake_atom} )"
+ ;;
*) _automake_atom="=sys-devel/automake-${WANT_AUTOMAKE}*" ;;
esac
export WANT_AUTOMAKE
@@ -261,7 +277,12 @@ autotools_run_tool() {
# We do the “latest” → version switch here because it solves
# possible order problems, see bug #270010 as an example.
- [[ ${WANT_AUTOMAKE} == "latest" ]] && export WANT_AUTOMAKE=1.10
+ for pv in ${_LATEST_AUTOMAKE} ; do
+ has_version "=sys-devel/automake-${pv}*" && export WANT_AUTOMAKE="$pv"
+ done
+ unset pv
+ [[ ${WANT_AUTOMAKE} == "latest" ]] && \
+ die "Cannot find the latest automake! Tried ${_LATEST_AUTOMAKE}"
[[ ${WANT_AUTOCONF} == "latest" ]] && export WANT_AUTOCONF=2.5
local STDERR_TARGET="${T}/$1.out"