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
1 On Sun, 2012-05-20 at 06:32 -0400, Mike Frysinger wrote:
2 > i've extended eautoreconf to automatically call autopoint when the package
3 > uses gettext. the configure check might seem naïve, but this is how autoreconf
4 > itself does it. this hopefully shouldn't break any packages (at least, none
5 > that weren't already broken), but if you guys start seeing eautoreconf
6 > failures where there were none before, feel free to cc base-system.
7 > -mike
8 >
9 > --- autotools.eclass
10 > +++ autotools.eclass
11 > @@ -162,6 +162,9 @@ eautoreconf() {
12 > einfo "Running eautoreconf in '${PWD}' ..."
13 > [[ -n ${auxdir}${macdir} ]] && mkdir -p ${auxdir} ${macdir}
14 > eaclocal
15 > + if grep -q '^AM_GNU_GETTEXT_VERSION' configure.?? ; then
16 > + eautopoint --force
17 > + fi
18 > [[ ${CHOST} == *-darwin* ]] && g=g
19 > if ${LIBTOOLIZE:-${g}libtoolize} -n --install >& /dev/null ; then
20 > _elibtoolize --copy --force --install
21
22 This change broke many gnome-related packages, see bug #416789. You
23 cannot assume that every package that uses AM_GNU_GETTEXT_VERSION wants
24 (just) autopoint; there are also packages that use intltool (to be run
25 after autopoint) or glib-gettext (in which case autopoint should not be
26 used at all).
27
28 Unless there are major nacks, I intend to apply the following patch
29 today in order to unbreak gnome. The patch follows the logic in
30 gnome2-live.eclass (in the gnome overlay) and gnome-autogen.sh, and is
31 therefore known to work.
32
33 Note that the patch adds a build dependency on intltool by default. This
34 should not be a problem because (1) intltool is keyworded everywhere,
35 and (2) basically every gentoo build machine already has it installed.
36
37 Index: autotools.eclass
38 ===================================================================
39 RCS file: /var/cvsroot/gentoo-x86/eclass/autotools.eclass,v
40 retrieving revision 1.138
41 diff -u -r1.138 autotools.eclass
42 --- autotools.eclass 20 May 2012 13:01:22 -0000 1.138
43 +++ autotools.eclass 21 May 2012 06:31:48 -0000
44 @@ -28,6 +28,11 @@
45 # The major version of automake your package needs
46 : ${WANT_AUTOMAKE:=latest}
47
48 +# @ECLASS-VARIABLE: WANT_INTLTOOL
49 +# @DESCRIPTION:
50 +# Do you want intltool? Valid values here are "latest" and "none".
51 +: ${WANT_INTLTOOL:=latest}
52 +
53 # @ECLASS-VARIABLE: WANT_LIBTOOL
54 # @DESCRIPTION:
55 # Do you want libtool? Valid values here are "latest" and "none".
56 @@ -77,6 +82,16 @@
57 export WANT_AUTOCONF
58 fi
59
60 +_intltool_atom="dev-util/intltool"
61 +if [[ -n ${WANT_INTLTOOL} ]] ; then
62 + case ${WANT_INTLTOOL} in
63 + none) _intltool_atom="" ;;
64 + latest) ;;
65 + *) die "Invalid WANT_INTLTOOL value '${WANT_INTLTOOL}'" ;;
66 + esac
67 + export WANT_LIBTOOL
68 +fi
69 +
70 _libtool_atom="sys-devel/libtool"
71 if [[ -n ${WANT_LIBTOOL} ]] ; then
72 case ${WANT_LIBTOOL} in
73 @@ -87,7 +102,7 @@
74 export WANT_LIBTOOL
75 fi
76
77 -AUTOTOOLS_DEPEND="${_automake_atom} ${_autoconf_atom} ${_libtool_atom}"
78 +AUTOTOOLS_DEPEND="${_automake_atom} ${_autoconf_atom} ${_intltool_atom} ${_libtool_atom}"
79 RDEPEND=""
80
81 # @ECLASS-VARIABLE: AUTOTOOLS_AUTO_DEPEND
82 @@ -163,9 +178,13 @@
83 [[ -n ${m4dirs} ]] && mkdir -p ${m4dirs}
84
85 eaclocal
86 - if grep -q '^AM_GNU_GETTEXT_VERSION' configure.?? ; then
87 + # Follow gnome2-live.eclass and gnome-autogen.sh logic; bug #416789
88 + if grep -q '^AM_GNU_GETTEXT_VERSION' configure.?? && ! grep -q '^AM_GLIB_GNU_GETTEXT' configure.?? ; then
89 eautopoint --force
90 fi
91 + if grep -q "^AC_PROG_INTLTOOL\|^IT_PROG_INTLTOOL" configure.?? ; then
92 + autotools_run_tool intltoolize --force --copy --automake
93 + fi
94 _elibtoolize --install --copy --force
95 eautoconf
96 eautoheader

Replies