Bug #312315: We must reflect the latest stable automake SLOT for all architectures...
authorRobin H. Johnson <robbat2@gentoo.org>
Wed, 31 Mar 2010 02:11:55 +0000 (02:11 +0000)
committerRobin H. Johnson <robbat2@gentoo.org>
Wed, 31 Mar 2010 02:11:55 +0000 (02:11 +0000)
eclass/autotools.eclass

index cba6e0e073936b6a5c8f124b8e481276acd614bd..414932b17f89fb4f61fdd856684a2f62f2496f72 100644 (file)
@@ -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"