1 |
On Mon, 2012-05-21 at 11:36 -0400, Mike Frysinger wrote: |
2 |
> On Monday 21 May 2012 02:41:18 Alexandre Rostovtsev wrote: |
3 |
> > On Sun, 2012-05-20 at 06:32 -0400, Mike Frysinger wrote: |
4 |
> > > i've extended eautoreconf to automatically call autopoint when the |
5 |
> > > package uses gettext. the configure check might seem naïve, but this is |
6 |
> > > how autoreconf itself does it. this hopefully shouldn't break any |
7 |
> > > packages (at least, none that weren't already broken), but if you guys |
8 |
> > > start seeing eautoreconf failures where there were none before, feel |
9 |
> > > free to cc base-system. -mike |
10 |
> > > |
11 |
> > > --- autotools.eclass |
12 |
> > > +++ autotools.eclass |
13 |
> > > @@ -162,6 +162,9 @@ eautoreconf() { |
14 |
> > > |
15 |
> > > einfo "Running eautoreconf in '${PWD}' ..." |
16 |
> > > [[ -n ${auxdir}${macdir} ]] && mkdir -p ${auxdir} ${macdir} |
17 |
> > > eaclocal |
18 |
> > > |
19 |
> > > + if grep -q '^AM_GNU_GETTEXT_VERSION' configure.?? ; then |
20 |
> > > + eautopoint --force |
21 |
> > > + fi |
22 |
> > > |
23 |
> > > [[ ${CHOST} == *-darwin* ]] && g=g |
24 |
> > > if ${LIBTOOLIZE:-${g}libtoolize} -n --install >& /dev/null ; then |
25 |
> > > |
26 |
> > > _elibtoolize --copy --force --install |
27 |
> > |
28 |
> > This change broke many gnome-related packages, see bug #416789. You |
29 |
> > cannot assume that every package that uses AM_GNU_GETTEXT_VERSION wants |
30 |
> > (just) autopoint; |
31 |
> |
32 |
> two things: |
33 |
> - eautoreconf acts like autoreconf which means it can assume that use of |
34 |
> AM_GNU_GETTEXT_VERSION implies use of `autopoint` |
35 |
> - it doesn't assume *just* autopoint -- nothing is stopping you from running |
36 |
> any other random tools you like (such as intltool) |
37 |
|
38 |
Changing eautoreconf's behavior to exactly match vanilla autoconf may |
39 |
make sense from your point of view as an autotools maintainer, but it |
40 |
breaks ebuilds that do not want vanilla autoconf semantics and that are |
41 |
relying on eautoreconf's old, intltool-friendly behavior. |
42 |
|
43 |
> > there are also packages that use intltool (to be run |
44 |
> > after autopoint) or glib-gettext (in which case autopoint should not be |
45 |
> > used at all). |
46 |
> |
47 |
> so attempting to run `autoreconf` in those packages fails ? |
48 |
|
49 |
It results in configure failure. E.g. |
50 |
|
51 |
>>> Emerging (1 of 1) gnome-extra/evolution-data-server-3.2.3-r2 |
52 |
[...] |
53 |
* Running eautoreconf in '/var/tmp/portage/gnome-extra/evolution-data-server-3.2.3-r2/work/evolution-data-server-3.2.3' ... |
54 |
* Running aclocal -I m4 ... [ ok ] |
55 |
* Running autopoint --force ... [ ok ] |
56 |
* Running libtoolize --install --copy --force --automake ... [ ok ] |
57 |
* Running aclocal -I m4 ... [ ok ] |
58 |
* Running autoconf ... [ ok ] |
59 |
* Running autoheader ... [ ok ] |
60 |
* Running automake --add-missing --copy --foreign ... [ ok ] |
61 |
* Running elibtoolize in: evolution-data-server-3.2.3/ |
62 |
* Applying portage/1.2.0 patch ... |
63 |
* Applying sed/1.5.6 patch ... |
64 |
* Fixing OMF Makefiles ... [ ok ] |
65 |
>>> Source prepared. |
66 |
>>> Configuring source in /var/tmp/portage/gnome-extra/evolution-data-server-3.2.3-r2/work/evolution-data-server-3.2.3 ... |
67 |
[...] |
68 |
config.status: executing po-directories commands |
69 |
config.status: creating po/POTFILES |
70 |
config.status: creating po/Makefile |
71 |
config.status: executing libtool commands |
72 |
config.status: executing po/stamp-it commands |
73 |
config.status: error: po/Makefile.in.in was not created by intltoolize. |
74 |
|
75 |
!!! Please attach the following file when seeking support: |
76 |
!!! /var/tmp/portage/gnome-extra/evolution-data-server-3.2.3-r2/work/evolution-data-server-3.2.3/config.log |
77 |
* ERROR: gnome-extra/evolution-data-server-3.2.3-r2 failed (configure phase): |
78 |
* econf failed |
79 |
|
80 |
> > +# @ECLASS-VARIABLE: WANT_INTLTOOL |
81 |
> > +# @DESCRIPTION: |
82 |
> > +# Do you want intltool? Valid values here are "latest" and "none". |
83 |
> > +: ${WANT_INTLTOOL:=latest} |
84 |
> > ... |
85 |
> > +_intltool_atom="dev-util/intltool" |
86 |
> > +if [[ -n ${WANT_INTLTOOL} ]] ; then |
87 |
> > + case ${WANT_INTLTOOL} in |
88 |
> > + none) _intltool_atom="" ;; |
89 |
> > + latest) ;; |
90 |
> > + *) die "Invalid WANT_INTLTOOL value '${WANT_INTLTOOL}'" ;; |
91 |
> > + esac |
92 |
> > + export WANT_LIBTOOL |
93 |
> > +fi |
94 |
> > ... |
95 |
> > -AUTOTOOLS_DEPEND="${_automake_atom} ${_autoconf_atom} ${_libtool_atom}" |
96 |
> > +AUTOTOOLS_DEPEND="${_automake_atom} ${_autoconf_atom} ${_intltool_atom} |
97 |
> |
98 |
> no. this adds intltool as a dependency to every package inherting this |
99 |
> eclass. |
100 |
|
101 |
Why is that unacceptable? Realistically, every Gentoo machine, with the |
102 |
exception of pure deployment installations that don't build any packages |
103 |
(and therefore don't care about autotools.eclass anyway), already has |
104 |
intltool installed. |
105 |
|
106 |
-Alexandre. |