Gentoo Archives: gentoo-dev

From: Alexandre Rostovtsev <tetromino@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] autotools.eclass:eautoreconf now runs autopoint for you
Date: Mon, 21 May 2012 06:42:29
Message-Id: 1337582478.29985.19.camel@rook
In Reply to: [gentoo-dev] autotools.eclass:eautoreconf now runs autopoint for you by Mike Frysinger
On Sun, 2012-05-20 at 06:32 -0400, Mike Frysinger wrote:
> i've extended eautoreconf to automatically call autopoint when the package > uses gettext. the configure check might seem naïve, but this is how autoreconf > itself does it. this hopefully shouldn't break any packages (at least, none > that weren't already broken), but if you guys start seeing eautoreconf > failures where there were none before, feel free to cc base-system. > -mike > > --- autotools.eclass > +++ autotools.eclass > @@ -162,6 +162,9 @@ eautoreconf() { > einfo "Running eautoreconf in '${PWD}' ..." > [[ -n ${auxdir}${macdir} ]] && mkdir -p ${auxdir} ${macdir} > eaclocal > + if grep -q '^AM_GNU_GETTEXT_VERSION' configure.?? ; then > + eautopoint --force > + fi > [[ ${CHOST} == *-darwin* ]] && g=g > if ${LIBTOOLIZE:-${g}libtoolize} -n --install >& /dev/null ; then > _elibtoolize --copy --force --install
This change broke many gnome-related packages, see bug #416789. You cannot assume that every package that uses AM_GNU_GETTEXT_VERSION wants (just) autopoint; there are also packages that use intltool (to be run after autopoint) or glib-gettext (in which case autopoint should not be used at all). Unless there are major nacks, I intend to apply the following patch today in order to unbreak gnome. The patch follows the logic in gnome2-live.eclass (in the gnome overlay) and gnome-autogen.sh, and is therefore known to work. Note that the patch adds a build dependency on intltool by default. This should not be a problem because (1) intltool is keyworded everywhere, and (2) basically every gentoo build machine already has it installed. Index: autotools.eclass =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/autotools.eclass,v retrieving revision 1.138 diff -u -r1.138 autotools.eclass --- autotools.eclass 20 May 2012 13:01:22 -0000 1.138 +++ autotools.eclass 21 May 2012 06:31:48 -0000 @@ -28,6 +28,11 @@ # The major version of automake your package needs : ${WANT_AUTOMAKE:=latest} +# @ECLASS-VARIABLE: WANT_INTLTOOL +# @DESCRIPTION: +# Do you want intltool? Valid values here are "latest" and "none". +: ${WANT_INTLTOOL:=latest} + # @ECLASS-VARIABLE: WANT_LIBTOOL # @DESCRIPTION: # Do you want libtool? Valid values here are "latest" and "none". @@ -77,6 +82,16 @@ export WANT_AUTOCONF fi +_intltool_atom="dev-util/intltool" +if [[ -n ${WANT_INTLTOOL} ]] ; then + case ${WANT_INTLTOOL} in + none) _intltool_atom="" ;; + latest) ;; + *) die "Invalid WANT_INTLTOOL value '${WANT_INTLTOOL}'" ;; + esac + export WANT_LIBTOOL +fi + _libtool_atom="sys-devel/libtool" if [[ -n ${WANT_LIBTOOL} ]] ; then case ${WANT_LIBTOOL} in @@ -87,7 +102,7 @@ export WANT_LIBTOOL fi -AUTOTOOLS_DEPEND="${_automake_atom} ${_autoconf_atom} ${_libtool_atom}" +AUTOTOOLS_DEPEND="${_automake_atom} ${_autoconf_atom} ${_intltool_atom} ${_libtool_atom}" RDEPEND="" # @ECLASS-VARIABLE: AUTOTOOLS_AUTO_DEPEND @@ -163,9 +178,13 @@ [[ -n ${m4dirs} ]] && mkdir -p ${m4dirs} eaclocal - if grep -q '^AM_GNU_GETTEXT_VERSION' configure.?? ; then + # Follow gnome2-live.eclass and gnome-autogen.sh logic; bug #416789 + if grep -q '^AM_GNU_GETTEXT_VERSION' configure.?? && ! grep -q '^AM_GLIB_GNU_GETTEXT' configure.?? ; then eautopoint --force fi + if grep -q "^AC_PROG_INTLTOOL\|^IT_PROG_INTLTOOL" configure.?? ; then + autotools_run_tool intltoolize --force --copy --automake + fi _elibtoolize --install --copy --force eautoconf eautoheader

Replies