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