diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2010-03-31 02:11:55 +0000 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2010-03-31 02:11:55 +0000 |
commit | f9d3eb3884ccb07f3efac248cf4af56682526939 (patch) | |
tree | f9fd7bd8a1c088a5cd309f36a16e12018fe658cc /eclass | |
parent | fix manifests (diff) | |
download | gentoo-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.eclass | 27 |
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" |