GNU bug report logs - #11034
Removing 'cygnus' mode in the near future

Previous Next

Package: automake;

Reported by: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Date: Sat, 17 Mar 2012 00:03:02 UTC

Severity: wishlist

Tags: patch

Done: Stefano Lattarini <stefano.lattarini <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 11034 in the body.
You can then email your comments to 11034 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Sat, 17 Mar 2012 00:03:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefano Lattarini <stefano.lattarini <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-automake <at> gnu.org. (Sat, 17 Mar 2012 00:03:04 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: bug-automake <at> gnu.org
Subject: Removing 'cygnus' mode in the near future
Date: Sat, 17 Mar 2012 00:31:01 +0100
Severity: wishlist
thanks

The section "The effect of --cygnus" in the automake manual reads:

  Some packages, notably GNU GCC and GNU gdb, have a build environment
  originally written at Cygnus Support.
  ... [SNIP] ...
  GNU maintainers are advised to use gnu strictness in preference to the
  special Cygnus mode.  Some day, perhaps, the differences between Cygnus
  trees and GNU trees will disappear (for instance, as GCC is made more
  standards compliant).  At that time the special Cygnus mode will be
  removed.

And as of today, almost any use of the 'cygnus' option has disappeared from
the GCC and GDB trees; for example, the command:

  grep cygnus `find -name '*configure*' -o -name '*[Mm]akefile*' \
                    -o -name '*.am' -o -name '*.mk'`

yields this in the GCC tree:

  ./zlib/Makefile.am:AUTOMAKE_OPTIONS = 1.8 cygnus
  ./zlib/Makefile.in:AUTOMAKE_OPTIONS = 1.8 cygnus

and this in the GDB tree:

  ./bfd/doc/Makefile.in:AUTOMAKE_OPTIONS = 1.9 cygnus
  ./bfd/doc/Makefile.in:# cygnus option.
  ./bfd/doc/Makefile.am:AUTOMAKE_OPTIONS = 1.9 cygnus
  ./bfd/doc/Makefile.am:# cygnus option.
  ./etc/configure.texi:option of @file{/usr/cygnus/@var{release}}, where @var{release} is the
  ./etc/configure.texi:@file{/usr/cygnus/@var{release}/H-@var{host}}, where @var{host} is the
  ./etc/configure.texi:AUTOMAKE_OPTIONS = cygnus
  ./etc/configure.texi:AUTOMAKE_OPTIONS = cygnus 1.3
  ./etc/configure.texi:@cindex canadian cross in cygnus tree
  ./etc/configure.texi:@cindex cygnus configure

So it's time we start thinking about deprecating and finally removing the
cygnus mode.  I'm opening this report so we won't forget about the issue.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 27 Mar 2012 22:22:02 GMT) Full text and rfc822 format available.

Message #8 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: 11034 <at> debbugs.gnu.org
Subject: Re: bug#11034: Removing 'cygnus' mode in the near future
Date: Tue, 27 Mar 2012 23:49:30 +0200
On 03/17/2012 12:31 AM, Stefano Lattarini wrote:
> 
> So it's time we start thinking about deprecating and finally removing the
> cygnus mode.  I'm opening this report so we won't forget about the issue.
> 
As a first step, we warn about the planned future backward-incompatibility
in the NEWS file for automake 1.12; see commit v1.11-2107-g5a4a72a "news:
we are going to drop 'cygnus' soonish":

  <http://lists.gnu.org/archive/html/automake-patches/2012-03/msg00104.html>

Next step is for when Automake 1.12 is released.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 28 Mar 2012 10:37:01 GMT) Full text and rfc822 format available.

Message #11 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: 11034 <at> debbugs.gnu.org
Cc: gdb <at> sourceware.org, Automake List <automake <at> gnu.org>,
	binutils <at> sourceware.org, gcc <at> gcc.gnu.org
Subject: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 28 Mar 2012 12:04:41 +0200
Hello.

I see that binutils, GCC and GDB still use the Automake's 'cygnus' option
in some of their makefiles:

  $ grep_cygnus() {
  >   grep -r 'cygnus' . \
  >    | perl -ne '/(^|[^@])cygnus($|(:!\.com\b))/ and print' \
  >    | grep -v '^[^:]*/Makefile\.in:'; \
  > }

  $ (cd ~/src/binutils && grep_cygnus) # BINUTILS
  ./bfd/doc/Makefile.am:AUTOMAKE_OPTIONS = 1.9 cygnus
  ./binutils/doc/Makefile.am:AUTOMAKE_OPTIONS = cygnus
  ./etc/configure.texi:AUTOMAKE_OPTIONS = cygnus
  ./gas/doc/Makefile.am:AUTOMAKE_OPTIONS = 1.8 cygnus

  $ (cd ~/src/gdb && grep_cygnus) # GDB
  ./bfd/doc/Makefile.am:AUTOMAKE_OPTIONS = 1.9 cygnus
  ./etc/configure.info:     AUTOMAKE_OPTIONS = cygnus
  ./etc/configure.texi:AUTOMAKE_OPTIONS = cygnus

  $ (cd ~/src/gcc && grep_cygnus) # GCC
  ./zlib/Makefile.am:AUTOMAKE_OPTIONS = 1.8 cygnus

But this option is going to be deprecated in Automake 1.12.1 and removed in
Automake 1.13:

  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034>

I just wanted to give you this head-up so that you won't be unpleasantly
surprised by the change.  Note that the actual removal of the 'cygnus'
option won't take place until Automake 1.13, which will at best be
released five or six months from now (and probably later than that).

Best regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 28 Mar 2012 12:52:02 GMT) Full text and rfc822 format available.

Message #14 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: "Joseph S. Myers" <joseph <at> codesourcery.com>
Cc: 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, Automake List <automake <at> gnu.org>,
	binutils <at> sourceware.org, gcc <at> gcc.gnu.org
Subject: Re: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 28 Mar 2012 14:19:41 +0200
Hi Joseph, thanks for the feedback.

On 03/28/2012 01:24 PM, Joseph S. Myers wrote:
> On Wed, 28 Mar 2012, Stefano Lattarini wrote:
> 
>> But this option is going to be deprecated in Automake 1.12.1 and removed in
>> Automake 1.13:
>>
>>   <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034>
> 
> That page isn't very helpful since it doesn't give the non-deprecated way 
> to achieve each part of the effect of "cygnus" if still desired
>
By reading this:

  <http://www.gnu.org/software/automake/manual/automake.html#Cygnus>

you can see how to emulate part of the 'cygnus' effects by other means.

However, it's also clear that it won't be possible to 100% emulate the effect
of cygnus with other options/hacks; in particular the second, fourth and last
points there:

  - texinfo.tex is not required if a Texinfo source file is specified. The
    assumption is that the file will be supplied, but in a place that
    Automake cannot find. This assumption is an artifact of how Cygnus
    packages are typically bundled.

  - Certain tools will be searched for in the build tree as well as in the
    user's PATH. These tools are runtest, expect, makeinfo and texi2dvi.

  - The check target doesn't depend on all.

will basically be impossible to emulate.

> (I think avoiding info documentation being built in the source directory,
> so that builds could use a non-writable source directory, may have been
> one part).
>
There is probably some hack to obtain this effect (it's tested in the testsuite
somewhere), but my opinion is that if you distribute the generated info files
you should also have them generated in the source directory, to avoid nasty
surprises (for a similar issue, involving yacc and lex, see automake bug#10852,
in particular messages <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10852#14>
and <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10852#15>).

> Is there better transition documentation somewhere?
>
Nope, but it would be a good idea to prepare it before starting to deprecate
the 'cygnus' option.  Maybe even for 1.12.  Thanks for the suggestion.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 28 Mar 2012 13:01:03 GMT) Full text and rfc822 format available.

Message #17 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: "Joseph S. Myers" <joseph <at> codesourcery.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, Automake List <automake <at> gnu.org>,
	binutils <at> sourceware.org, gcc <at> gcc.gnu.org
Subject: Re: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 28 Mar 2012 11:24:54 +0000 (UTC)
On Wed, 28 Mar 2012, Stefano Lattarini wrote:

> But this option is going to be deprecated in Automake 1.12.1 and removed in
> Automake 1.13:
> 
>   <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11034>

That page isn't very helpful since it doesn't give the non-deprecated way 
to achieve each part of the effect of "cygnus", if still desired (I think 
avoiding info documentation being built in the source directory, so that 
builds could use a non-writable source directory, may have been one part).  
Is there better transition documentation somewhere?

-- 
Joseph S. Myers
joseph <at> codesourcery.com




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 28 Mar 2012 13:34:02 GMT) Full text and rfc822 format available.

Message #20 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: "Joseph S. Myers" <joseph <at> codesourcery.com>
Cc: 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, Automake List <automake <at> gnu.org>,
	binutils <at> sourceware.org, gcc <at> gcc.gnu.org
Subject: Re: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 28 Mar 2012 15:01:42 +0200
On 03/28/2012 02:29 PM, Joseph S. Myers wrote:
> On Wed, 28 Mar 2012, Stefano Lattarini wrote:
> 
>>   - texinfo.tex is not required if a Texinfo source file is specified. The
>>     assumption is that the file will be supplied, but in a place that
>>     Automake cannot find. This assumption is an artifact of how Cygnus
>>     packages are typically bundled.
> 
> texinfo.tex is in a known location, but only a single copy for GDB and 
> binutils and a single copy for GCC rather than in each directory needing 
> it.
>
Which makes perfect sense.  So Automake should support this use case.

> Is the approach used (for example) in libquadmath/Makefile.am
> 
> TEXINFO_TEX   = ../gcc/doc/include/texinfo.tex
> 
> considered a suitable approach for this case?
>
This would seem the most sensible approach, yes.  Want to give it a try to
see whether it works in the GCC/GDB/Binutils tree? (What should be verified
particularly carefully is that the idiom works also in VPATH builds).

>>   - Certain tools will be searched for in the build tree as well as in the
>>     user's PATH. These tools are runtest, expect, makeinfo and texi2dvi.
> 
> I did previously suggest removing the existing support for building and 
> using these tools in-tree 
> <http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01674.html>, but there was 
> pushback on that.  I don't know, however, if it actually depends on 
> anything built into automake.
>
Hmm...  Couldn't the issues (if any) be worked around by explicitly
re-defining the $(EXPECT), $(RUNTEST), $(MAKEINFO) and $(TEXI2DVI)
variables in the relevant Makefiles so that they point to the bundled
tools?  E.g.,

  EXPECT = $(top_builddir)/../expect/expect

and so on.

>>   - The check target doesn't depend on all.
> 
> I'm not aware of a need for that.
> 
Glad to hear that.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 28 Mar 2012 17:58:02 GMT) Full text and rfc822 format available.

Message #23 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: "Joseph S. Myers" <joseph <at> codesourcery.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, Automake List <automake <at> gnu.org>,
	binutils <at> sourceware.org, gcc <at> gcc.gnu.org
Subject: Re: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 28 Mar 2012 12:29:24 +0000 (UTC)
On Wed, 28 Mar 2012, Stefano Lattarini wrote:

>   - texinfo.tex is not required if a Texinfo source file is specified. The
>     assumption is that the file will be supplied, but in a place that
>     Automake cannot find. This assumption is an artifact of how Cygnus
>     packages are typically bundled.

texinfo.tex is in a known location, but only a single copy for GDB and 
binutils and a single copy for GCC rather than in each directory needing 
it.  Is the approach used (for example) in libquadmath/Makefile.am

TEXINFO_TEX   = ../gcc/doc/include/texinfo.tex

considered a suitable approach for this case?

>   - Certain tools will be searched for in the build tree as well as in the
>     user's PATH. These tools are runtest, expect, makeinfo and texi2dvi.

I did previously suggest removing the existing support for building and 
using these tools in-tree 
<http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01674.html>, but there was 
pushback on that.  I don't know, however, if it actually depends on 
anything built into automake.

>   - The check target doesn't depend on all.

I'm not aware of a need for that.

-- 
Joseph S. Myers
joseph <at> codesourcery.com




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Thu, 29 Mar 2012 00:16:02 GMT) Full text and rfc822 format available.

Message #26 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Ian Lance Taylor <iant <at> google.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	Automake List <automake <at> gnu.org>, binutils <at> sourceware.org,
	"Joseph S. Myers" <joseph <at> codesourcery.com>
Subject: Re: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 28 Mar 2012 16:43:03 -0700
Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:

>> (I think avoiding info documentation being built in the source directory,
>> so that builds could use a non-writable source directory, may have been
>> one part).
>>
> There is probably some hack to obtain this effect (it's tested in the testsuite
> somewhere), but my opinion is that if you distribute the generated info files
> you should also have them generated in the source directory, to avoid nasty
> surprises (for a similar issue, involving yacc and lex, see automake bug#10852,
> in particular messages <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10852#14>
> and <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10852#15>).

It's important that it be possible to build with the sources on a
read-only disk.

It's useful to be able to include .info files in releases so that people
can build the releases without having to have makeinfo installed.

Ian




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Sat, 31 Mar 2012 08:31:01 GMT) Full text and rfc822 format available.

Message #29 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Ian Lance Taylor <iant <at> google.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	Automake List <automake <at> gnu.org>, binutils <at> sourceware.org,
	"Joseph S. Myers" <joseph <at> codesourcery.com>
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Sat, 31 Mar 2012 10:30:06 +0200
Hi Ian, Joseph, and sorry for the delay.

On 03/29/2012 01:43 AM, Ian Lance Taylor wrote:
> Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:
> 
>>> (I think avoiding info documentation being built in the source directory,
>>> so that builds could use a non-writable source directory, may have been
>>> one part).
>>>
>> There is probably some hack to obtain this effect (it's tested in the testsuite
>> somewhere), but my opinion is that if you distribute the generated info files
>> you should also have them generated in the source directory, to avoid nasty
>> surprises (for a similar issue, involving yacc and lex, see automake bug#10852,
>> in particular messages <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10852#14>
>> and <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10852#15>).
> 
> It's useful to be able to include .info files in releases so that people
> can build the releases without having to have makeinfo installed.
>
I agree on this (as did past Automake maintainers -- in fact Automake distributes
generated info files be default).  But I also think that, whenever you distribute
generated files, the most sensible and safer thing to do is to have them generated
in the srcdir and not in the builddir, so that the tree from a VCS checkout and
the one extracted from a distribution tarball are similar and consistent (I held
a different opinion once, but Akim Demaille later changed my mind on this).

> It's important that it be possible to build with the sources on a
> read-only disk.
>
Yes, and in fact "make distcheck" verifies that this is possible.  However,
assuming it is also possible to *hack* a package with the sources on a read
only disk is not warranted.

In conclusion, I see two possible sane approaches w.r.t. the handling of
generated info files:

  - Have them distributed (automake's default).  This means that they will
    be build in the srcdir, not in the builddir: of course, this only affects
    the maintainer, since for a user that builds the package from a tarball
    those files should *not* be rebuilt, hence there is no problem even if
    the user's srcdir is read-only.

  - Don't distribute the generated info files.  To obtain this effect, it is
    enough to list the generated into files in the CLEANFILES variable (see
    for example the tests 'txinfo23', 'txinfo24' and 'txinfo25' in the automake
    testsuite).  In this case, the user will have to to have the 'makeinfo'
    program available to build them.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Sat, 31 Mar 2012 09:09:02 GMT) Full text and rfc822 format available.

Message #32 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: ams <at> gnu.org (Alfred M. Szmidt)
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Sat, 31 Mar 2012 05:08:38 -0400
     - Have them distributed (automake's default).  This means that
       they will be build in the srcdir, not in the builddir: of
       course, this only affects the maintainer, since for a user that
       builds the package from a tarball those files should *not* be
       rebuilt, hence there is no problem even if the user's srcdir is
       read-only.

This has always been the right way to do things.

     - Don't distribute the generated info files.  [...]  In this
       case, the user will have to to have the 'makeinfo' program
       available to build them.

Please don't do this, it causes all kinds of headaches, like the small
fact that makeinfo will now be required to bootstrap.




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Sat, 31 Mar 2012 10:15:02 GMT) Full text and rfc822 format available.

Message #35 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: ams <at> gnu.org
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Sat, 31 Mar 2012 12:14:10 +0200
Hi Alfred.

On 03/31/2012 11:08 AM, Alfred M. Szmidt wrote:
>      - Have them distributed (automake's default).  This means that
>        they will be build in the srcdir, not in the builddir: of
>        course, this only affects the maintainer, since for a user that
>        builds the package from a tarball those files should *not* be
>        rebuilt, hence there is no problem even if the user's srcdir is
>        read-only.
> 
> This has always been the right way to do things.
> 
>      - Don't distribute the generated info files.  [...]  In this
>        case, the user will have to to have the 'makeinfo' program
>        available to build them.
> 
> Please don't do this, it causes all kinds of headaches, like the small
> fact that makeinfo will now be required to bootstrap.
>
Note there's nothing I'm planning to do, nor I should do, in this regard:
the two setups described above are both already supported by the current
automake implementation (but the last one is not encouraged, even though
it makes perfect sense in some *rare* situations).  I was just pointing
out that you have to choose one of these setups -- so, if you want to
distribute info files, you must accept to have them build in the srcdir.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Sat, 31 Mar 2012 11:39:01 GMT) Full text and rfc822 format available.

Message #38 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: "Joseph S. Myers" <joseph <at> codesourcery.com>
Cc: 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, Automake List <automake <at> gnu.org>,
	binutils <at> sourceware.org, gcc <at> gcc.gnu.org
Subject: Re: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Sat, 31 Mar 2012 13:38:34 +0200
[Message part 1 (text/plain, inline)]
On 03/28/2012 02:19 PM, Stefano Lattarini wrote:
> Hi Joseph, thanks for the feedback.
> On 03/28/2012 01:24 PM, Joseph S. Myers wrote:
>>
>> Is there better transition documentation somewhere?
>>
> Nope, but it would be a good idea to prepare it before starting to deprecate
> the 'cygnus' option.  Maybe even for 1.12.  Thanks for the suggestion.
>
Or even for 1.11.4, which is to be released in two/three days.  What about the
attached patch?  I will push it by this evening if there is no objection.

Thanks,
  Stefano
[0001-docs-deprecate-cygnus-mode-help-the-transition.patch (text/x-diff, attachment)]

Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Sat, 31 Mar 2012 16:43:02 GMT) Full text and rfc822 format available.

Message #41 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: "Joseph S. Myers" <joseph <at> codesourcery.com>
Cc: 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, Automake List <automake <at> gnu.org>,
	binutils <at> sourceware.org, gcc <at> gcc.gnu.org
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Sat, 31 Mar 2012 18:42:10 +0200
On 03/31/2012 01:38 PM, Stefano Lattarini wrote:
> On 03/28/2012 02:19 PM, Stefano Lattarini wrote:
>> Hi Joseph, thanks for the feedback.
>> On 03/28/2012 01:24 PM, Joseph S. Myers wrote:
>>>
>>> Is there better transition documentation somewhere?
>>>
>> Nope, but it would be a good idea to prepare it before starting to deprecate
>> the 'cygnus' option.  Maybe even for 1.12.  Thanks for the suggestion.
>>
> Or even for 1.11.4, which is to be released in two/three days.  What about the
> attached patch?  I will push it by this evening if there is no objection.
> 
Applied to maint, merged into master and branch-1.11, and pushed.

Regards,
  Stefano





Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 14:26:01 GMT) Full text and rfc822 format available.

Message #44 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Tom Tromey <tromey <at> redhat.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 08:25:22 -0600
>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:

Stefano> Note there's nothing I'm planning to do, nor I should do, in
Stefano> this regard: the two setups described above are both already
Stefano> supported by the current automake implementation (but the last
Stefano> one is not encouraged, even though it makes perfect sense in
Stefano> some *rare* situations).  I was just pointing out that you have
Stefano> to choose one of these setups -- so, if you want to distribute
Stefano> info files, you must accept to have them build in the srcdir.

Or we can just stick with an older version of automake.
It seems to me that this is the sensible approach.

Or move to some other build system; either autogen-based or just
requiring GNU make features.  The latter is fine for GCC but I'm not
sure whether all the src projects are on board.

I'm pretty disappointed that automake would make this change.  I realize
these choices may (arguably) make the most sense for most projects, but
the gcc and src trees are not like most projects; and really the whole
'cygnus' feature is there just to support these two big users.

Tom




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 15:05:01 GMT) Full text and rfc822 format available.

Message #47 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Tom Tromey <tromey <at> redhat.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 17:03:55 +0200
On 04/02/2012 04:25 PM, Tom Tromey wrote:
>>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:
> 
> Stefano> Note there's nothing I'm planning to do, nor I should do, in
> Stefano> this regard: the two setups described above are both already
> Stefano> supported by the current automake implementation (but the last
> Stefano> one is not encouraged, even though it makes perfect sense in
> Stefano> some *rare* situations).  I was just pointing out that you have
> Stefano> to choose one of these setups -- so, if you want to distribute
> Stefano> info files, you must accept to have them build in the srcdir.
> 
> Or we can just stick with an older version of automake.
> It seems to me that this is the sensible approach.
>
> Or move to some other build system; either autogen-based or just
> requiring GNU make features.
>
<shameless plug>

  In this later case, you might want to take a look at the Automake-NG fork,
  started by myself (and still in a VERY early stage):

   - https://lists.gnu.org/mailman/listinfo/automake-ng

  Fork which will possibly be the subject of the oncoming Google summer of
  code:

   - http://www.gnu.org/software/soc-projects/ideas-2012.html#automake

</shameless plug>

> The latter is fine for GCC but I'm not sure whether all the src projects
> are on board.
> 
> I'm pretty disappointed that automake would make this change.  I realize
> these choices may (arguably) make the most sense for most projects, but
> the gcc and src trees are not like most projects; and really the whole
> 'cygnus' feature is there just to support these two big users.
>
True, and that was even stated in the manual; the whole point of ditching
support for cygnus trees is that by now those two big users are basically
not making any real use of the 'cygnus' option anymore.  To quote my
previous report:

    And as of today, almost any use of the 'cygnus' option has disappeared
    from the GCC and GDB trees; for example, the command:

      grep cygnus `find -name '*configure*' -o -name '*[Mm]akefile*' \
                        -o -name '*.am' -o -name '*.mk'`

    yields this in the GCC tree:

      ./zlib/Makefile.am:AUTOMAKE_OPTIONS = 1.8 cygnus
      ./zlib/Makefile.in:AUTOMAKE_OPTIONS = 1.8 cygnus

    and this in the GDB tree:

      ./bfd/doc/Makefile.in:AUTOMAKE_OPTIONS = 1.9 cygnus
      ./bfd/doc/Makefile.in:# cygnus option.
      ./bfd/doc/Makefile.am:AUTOMAKE_OPTIONS = 1.9 cygnus
      ./bfd/doc/Makefile.am:# cygnus option.
      ./etc/configure.texi:option of @file{/usr/cygnus/@var{release}}, where @var{release} is the
      ./etc/configure.texi:@file{/usr/cygnus/@var{release}/H-@var{host}}, where @var{host} is the
      ./etc/configure.texi:AUTOMAKE_OPTIONS = cygnus
      ./etc/configure.texi:AUTOMAKE_OPTIONS = cygnus 1.3
      ./etc/configure.texi:@cindex canadian cross in cygnus tree
      ./etc/configure.texi:@cindex cygnus configure

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 15:17:02 GMT) Full text and rfc822 format available.

Message #50 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Tom Tromey <tromey <at> redhat.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 09:16:30 -0600
>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:

Stefano> True, and that was even stated in the manual; the whole point
Stefano> of ditching support for cygnus trees is that by now those two
Stefano> big users are basically not making any real use of the 'cygnus'
Stefano> option anymore.  To quote my previous report:

Stefano>       ./bfd/doc/Makefile.in:AUTOMAKE_OPTIONS = 1.9 cygnus
Stefano>       ./bfd/doc/Makefile.in:# cygnus option.
Stefano>       ./bfd/doc/Makefile.am:AUTOMAKE_OPTIONS = 1.9 cygnus
Stefano>       ./bfd/doc/Makefile.am:# cygnus option.

But this is a reason not to remove it; or at least to restore the
previous handling of info files.

I don't care about the cygnus option per se.  It was always a grab bag
of hacks.  The issue is removing a feature that an important user relies
on.  So far the suggested replacements haven't seemed that good to me.

Tom




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 15:31:01 GMT) Full text and rfc822 format available.

Message #53 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Tom Tromey <tromey <at> redhat.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 17:29:54 +0200
On 04/02/2012 05:16 PM, Tom Tromey wrote:
>>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:
> 
> Stefano> True, and that was even stated in the manual; the whole point
> Stefano> of ditching support for cygnus trees is that by now those two
> Stefano> big users are basically not making any real use of the 'cygnus'
> Stefano> option anymore.  To quote my previous report:
> 
> Stefano>       ./bfd/doc/Makefile.in:AUTOMAKE_OPTIONS = 1.9 cygnus
> Stefano>       ./bfd/doc/Makefile.in:# cygnus option.
> Stefano>       ./bfd/doc/Makefile.am:AUTOMAKE_OPTIONS = 1.9 cygnus
> Stefano>       ./bfd/doc/Makefile.am:# cygnus option.
> 
> But this is a reason not to remove it; or at least to restore the
> previous handling of info files.
>
> I don't care about the cygnus option per se.  It was always a grab bag
> of hacks.
>
And it's the hacks I'd like to remove, not the option per se :-)

> The issue is removing a feature that an important user relies on.
> So far the suggested replacements haven't seemed that good to me.
>
Sorry if I sound dense, but what exactly is the feature you are talking
about here?

Regards,
  Stefano





Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 19:37:02 GMT) Full text and rfc822 format available.

Message #56 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Tom Tromey <tromey <at> redhat.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 13:36:06 -0600
>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:

Stefano> Sorry if I sound dense, but what exactly is the feature you are
Stefano> talking about here?

I was under the impression that it would no longer be possible to build
info files in the build tree.  But, I see that, according to the
Automake manual, I am wrong about that.  So, sorry for the noise.

Tom




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 19:52:02 GMT) Full text and rfc822 format available.

Message #59 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Tom Tromey <tromey <at> redhat.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 21:51:29 +0200
On 04/02/2012 09:36 PM, Tom Tromey wrote:
>>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:
> 
> Stefano> Sorry if I sound dense, but what exactly is the feature you are
> Stefano> talking about here?
> 
> I was under the impression that it would no longer be possible to build
> info files in the build tree.
>
It should still be possible, with the right hack (which is tested in the
testsuite, and required by other packages anyway).  The baseline is: if
you don't want your '.info' files to be distributed, then it should be
easily possible to have them built in the builddir; but if you want them
distributed, they will be built in the srcdir.  The rationale to do so is
to ensure that, in both cases, the developer's tree layout (as bootstrapped
from a VCS checkout) will match the user's tree layout (as obtained from a
distribution tarball).

> But, I see that, according to the Automake manual, I am wrong about that.
>
Weird, I didn't expect that hack to be documented in the manual...  And in
fact I cannot find it.  Could you please point me to it?  Thanks.

> So, sorry for the noise.
> 
Well, better safe than sorry :-)

Regards,
  Stefano





Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 20:20:02 GMT) Full text and rfc822 format available.

Message #62 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Tom Tromey <tromey <at> redhat.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 14:19:04 -0600
>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:

Stefano> It should still be possible, with the right hack (which is
Stefano> tested in the testsuite, and required by other packages
Stefano> anyway).  The baseline is: if you don't want your '.info' files
Stefano> to be distributed, then it should be easily possible to have
Stefano> them built in the builddir; but if you want them distributed,
Stefano> they will be built in the srcdir.

Now I am confused.  Is it possible to continue to work the way it does
today, or not?

If so, then great.

If not, then we need some other plan.

Tom> But, I see that, according to the Automake manual, I am wrong about that.

Stefano> Weird, I didn't expect that hack to be documented in the
Stefano> manual...  And in fact I cannot find it.  Could you please
Stefano> point me to it?  Thanks.

    http://www.gnu.org/software/automake/manual/automake.html#Cygnus

"Info files are always created in the build directory, and not in the
source directory. Packages that don't use the cygnus option can emulate
this effect by using the no-installinfo option and listing the generated
info files in the CLEANFILES variable. "

Re-reading the suggestion here, I can't understand how it would work.

Anyway the real use in the src tree is different, IIUC.
Info files are built in the build tree by developers, but put in the
source tree for distribution.

Tom




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 20:50:02 GMT) Full text and rfc822 format available.

Message #65 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Tom Tromey <tromey <at> redhat.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 22:49:27 +0200
On 04/02/2012 10:19 PM, Tom Tromey wrote:
>>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:
> 
> Stefano> It should still be possible, with the right hack (which is
> Stefano> tested in the testsuite, and required by other packages
> Stefano> anyway).  The baseline is: if you don't want your '.info' files
> Stefano> to be distributed, then it should be easily possible to have
> Stefano> them built in the builddir; but if you want them distributed,
> Stefano> they will be built in the srcdir.
> 
> Now I am confused.  Is it possible to continue to work the way it does
> today, or not?
>
The point is: if you want to have info files build in the builddir *and*
distributed, than no, it won't be possible (without bending over backwards).
But I still don't understand why it's a big deal to have the '.info' files
placed in the srcdir *if you are going do distribute them*.

> If so, then great.
> 
> If not, then we need some other plan.
>
By looking at the 'handle_texinfo_helper' function in the automake script,
I suspect adding a new Automake option 'info-in-builddir' (say) and an
handful of lines to the automake script might be enough to give you an easy
way to force the '.info' files to be generated in the builddir.  But before
doing so, I'd like to understand why you want so strongly to support such
a setup.

> Tom> But, I see that, according to the Automake manual, I am wrong about that.
> 
> Stefano> Weird, I didn't expect that hack to be documented in the
> Stefano> manual...  And in fact I cannot find it.  Could you please
> Stefano> point me to it?  Thanks.
> 
>     http://www.gnu.org/software/automake/manual/automake.html#Cygnus
> 
> "Info files are always created in the build directory, and not in the
> source directory. Packages that don't use the cygnus option can emulate
> this effect by using the no-installinfo option and listing the generated
> info files in the CLEANFILES variable. "
> 
> Re-reading the suggestion here, I can't understand how it would work.
>
Another automake internal hack basically.  For more details, in case you are
interested, see code and comments in the 'automake.in:handle_texinfo_helper'
subroutine, and the test cases txinfo{23,24,25}.test in the Automake
distribution.

> Anyway the real use in the src tree is different, IIUC.
> Info files are built in the build tree by developers, but put in the
> source tree for distribution.
>
In such a setup, what is the issue with having the '.info' files built
in the srcdir?  It's not like the developers will develop with a
read-only source tree, right?

Regards,
  Stefano





Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 21:01:02 GMT) Full text and rfc822 format available.

Message #68 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Roumen Petrov <bugtrack <at> roumenpetrov.info>
Cc: Tom Tromey <tromey <at> redhat.com>, 11034 <at> debbugs.gnu.org,
	joseph <at> codesourcery.com, automake <at> gnu.org
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 22:59:44 +0200
On 04/02/2012 10:12 PM, Roumen Petrov wrote:
> Hi Stefano,
> 
> Stefano Lattarini wrote:
>> [SNIP]
>> It should still be possible, with the right hack (which is tested in the
>> testsuite, and required by other packages anyway).  The baseline is: if
>> you don't want your '.info' files to be distributed, then it should be
>> easily possible to have them built in the builddir; but if you want them
>> distributed, they will be built in the srcdir.
> Sound like if user would like to distribute binaries they must be in source directory .
> Why generated file, not required for build process, has to be places in source tree.
>
This is explained in excruciating details in some code comments in the automake
script (in the 'handle_texinfo_helper', more precisely).  I'll just copy and
paste them here:

  #  Until Automake 1.6.3, .info files were built in the
  #  source tree.  This was an obstacle to the support of
  #  non-distributed .info files, and non-distributed .texi
  #  files.
  #
  #  * Non-distributed .texi files is important in some packages
  #    where .texi files are built at make time, probably using
  #    other binaries built in the package itself, maybe using
  #    tools or information found on the build host.  Because
  #    these files are not distributed they are always rebuilt
  #    at make time; they should therefore not lie in the source
  #    directory.  One plan was to support this using
  #    nodist_info_TEXINFOS or something similar.  (Doing this
  #    requires some sanity checks.  For instance Automake should
  #    not allow:
  #      dist_info_TEXINFOS = foo.texi
  #      nodist_foo_TEXINFOS = included.texi
  #    because a distributed file should never depend on a
  #    non-distributed file.)
  #
  #  * If .texi files are not distributed, then .info files should
  #    not be distributed either.  There are also cases where one
  #    wants to distribute .texi files, but does not want to
  #    distribute the .info files.  For instance the Texinfo package
  #    distributes the tool used to build these files; it would
  #    be a waste of space to distribute them.  It's not clear
  #    which syntax we should use to indicate that .info files should
  #    not be distributed.  Akim Demaille suggested that eventually
  #    we switch to a new syntax:
  #    |  Maybe we should take some inspiration from what's already
  #    |  done in the rest of Automake.  Maybe there is too much
  #    |  syntactic sugar here, and you want
  #    |     nodist_INFO = bar.info
  #    |     dist_bar_info_SOURCES = bar.texi
  #    |     bar_texi_DEPENDENCIES = foo.texi
  #    |  with a bit of magic to have bar.info represent the whole
  #    |  bar*info set.  That's a lot more verbose that the current
  #    |  situation, but it is not new, hence the user has less to
  #    | learn.
  #    |
  #    |  But there is still too much room for meaningless specs:
  #    |     nodist_INFO = bar.info
  #    |     dist_bar_info_SOURCES = bar.texi
  #    |     dist_PS = bar.ps something-written-by-hand.ps
  #    |     nodist_bar_ps_SOURCES = bar.texi
  #    |     bar_texi_DEPENDENCIES = foo.texi
  #    |  here bar.texi is dist_ in line 2, and nodist_ in 4.
  #
  #  Back to the point, it should be clear that in order to support
  #  non-distributed .info files, we need to build them in the
  #  build tree, not in the source tree (non-distributed .texi
  #  files are less of a problem, because we do not output build
  #  rules for them).  In Automake 1.7 .info build rules have been
  #  largely cleaned up so that .info files get always build in the
  #  build tree, even when distributed.  The idea was that
  #    (1) if during a VPATH build the .info file was found to be
  #        absent or out-of-date (in the source tree or in the
  #        build tree), Make would rebuild it in the build tree.
  #        If an up-to-date source-tree of the .info file existed,
  #        make would not rebuild it in the build tree.
  #    (2) having two copies of .info files, one in the source tree
  #        and one (newer) in the build tree is not a problem
  #        because 'make dist' always pick files in the build tree
  #        first.
  #  However it turned out the be a bad idea for several reasons:
  #    * Tru64, OpenBSD, and FreeBSD (not NetBSD) Make do not behave
  #      like GNU Make on point (1) above.  These implementations
  #      of Make would always rebuild .info files in the build
  #      tree, even if such files were up to date in the source
  #      tree.  Consequently, it was impossible to perform a VPATH
  #      build of a package containing Texinfo files using these
  #      Make implementations.
  #      (Refer to the Autoconf Manual, section "Limitation of
  #      Make", paragraph "VPATH", item "target lookup", for
  #      an account of the differences between these
  #      implementations.)
  #    * The GNU Coding Standards require these files to be built
  #      in the source-tree (when they are distributed, that is).
  #    * Keeping a fresher copy of distributed files in the
  #      build tree can be annoying during development because
  #      - if the files is kept under CVS, you really want it
  #        to be updated in the source tree;
  #      - it is confusing that 'make distclean' does not erase
  #        all files in the build tree.
  #
  #  Consequently, starting with Automake 1.8, .info files are
  #  built in the source tree again.  Because we still plan to
  #  support non-distributed .info files at some point, we
  #  have a single variable ($INSRC) that controls whether
  #  the current .info file must be built in the source tree
  #  or in the build tree.  Actually this variable is switched
  #  off for .info files that appear to be cleaned; this is
  #  for backward compatibility with package such as Texinfo,
  #  which do things like
  #    info_TEXINFOS = texinfo.txi info-stnd.texi info.texi
  #    DISTCLEANFILES = texinfo texinfo-* info*.info*
  #    # Do not create info files for distribution.
  #    dist-info:
  #  in order not to distribute .info files.

HTH.

> What if author(s) would like to separate process of document creation from binaries ?
> 
>>   The rationale to do so is
>> to ensure that, in both cases, the developer's tree layout (as bootstrapped
>> from a VCS checkout) will match the user's tree layout (as obtained from a
>> distribution tarball).
>
> May be I miss what is rationale to keep read-only and build-ready source tree.
>
I don't understand what you mean here.  Could you please rephrase your statement?

Regards,
  Stefano

P.S. Please keep the '11034 <at> debbugs.gnu.org' address in CC:, so that this discussion
gets properly recorded in the automake bug tracker.  Thanks.




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 21:11:01 GMT) Full text and rfc822 format available.

Message #71 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Ian Lance Taylor <iant <at> google.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Mon, 02 Apr 2012 14:10:03 -0700
Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:

>> Anyway the real use in the src tree is different, IIUC.
>> Info files are built in the build tree by developers, but put in the
>> source tree for distribution.
>>
> In such a setup, what is the issue with having the '.info' files built
> in the srcdir?  It's not like the developers will develop with a
> read-only source tree, right?

There are many different people who build gcc from snapshots, not
releases, for various different reasons.  It would be good if those
people could continue to build from a read-only source directory.  It
would be good if those people could get .info files appropriate to their
source code.  Of course releases should continue to contain .info files.

We do not want .info files to be part of source code control for
development, but we do want them to be part of source code control for
releases.  That means that there is no correct setting for svn:ignore or
whatever.  This can be worked around, it's just a minor pain.

Ian




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 02 Apr 2012 21:27:01 GMT) Full text and rfc822 format available.

Message #74 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Roumen Petrov <bugtrack <at> roumenpetrov.info>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: Tom Tromey <tromey <at> redhat.com>, 11034 <at> debbugs.gnu.org, iant <at> google.com,
	joseph <at> codesourcery.com, automake <at> gnu.org
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Tue, 03 Apr 2012 00:26:29 +0300
Hi Stefano,

Stefano Lattarini wrote:
> On 04/02/2012 10:19 PM, Tom Tromey wrote:
>>>>>>> "Stefano" == Stefano Lattarini<stefano.lattarini <at> gmail.com>  writes:
>> Stefano>  It should still be possible, with the right hack (which is
>> Stefano>  tested in the testsuite, and required by other packages
>> Stefano>  anyway).  The baseline is: if you don't want your '.info' files
>> Stefano>  to be distributed, then it should be easily possible to have
>> Stefano>  them built in the builddir; but if you want them distributed,
>> Stefano>  they will be built in the srcdir.
>>
>> Now I am confused.  Is it possible to continue to work the way it does
>> today, or not?
>>
> The point is: if you want to have info files build in the builddir *and*
> distributed, than no, it won't be possible (without bending over backwards).
> But I still don't understand why it's a big deal to have the '.info' files
> placed in the srcdir *if you are going do distribute them*.

A lot of manual include path to executable. This path depend from vendor 
and OS. The correctly written documentation has to use proper paths
For instance /bin/sh is correct for most system but on some linux based 
OS-es it is /system/bin/sh .

So the rule to put into source tree generated files (documentation) 
prevent parallel build for multiple host or target platforms.


[SNIP]
Roumen





Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 03 Apr 2012 16:26:01 GMT) Full text and rfc822 format available.

Message #77 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Joern Rennecke <amylaar <at> spamcop.net>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Tue, 03 Apr 2012 04:22:40 -0400
Quoting Stefano Lattarini <stefano.lattarini <at> gmail.com>:

> By looking at the 'handle_texinfo_helper' function in the automake script,
> I suspect adding a new Automake option 'info-in-builddir' (say) and an
> handful of lines to the automake script might be enough to give you an easy
> way to force the '.info' files to be generated in the builddir.  But before
> doing so, I'd like to understand why you want so strongly to support such
> a setup.

It is quite common during development / testing to build multiple
configurations simultaneously from the same sources, with separate
make processes.  Writing to the source directory would cause disastrous
race conditions.




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 03 Apr 2012 20:06:02 GMT) Full text and rfc822 format available.

Message #80 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Ian Lance Taylor <iant <at> google.com>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Tue, 03 Apr 2012 22:04:20 +0200
[Message part 1 (text/plain, inline)]
OK, you've all made clear you have your sensible reasons to have the '.info'
files generated in the builddir in your use cases.  Since the actual change
required by automake to allow this is very small and safe, I'm ready to do
it (see attached patch, which I will push in a couple of days to 'master' if
there is no objection).

But since I'm not yet ready to publish this new feature, I intend to make
it available only though the new, undocumented option named (literally)
"hack!info-in-builddir".  I hope this is acceptable to you.

Regards,
  Stefano
[0001-texinfo-hack-to-allow-.info-files-to-be-generated-in.patch (text/x-diff, attachment)]

Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 03 Apr 2012 20:08:01 GMT) Full text and rfc822 format available.

Message #83 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Ian Lance Taylor <iant <at> google.com>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Tue, 03 Apr 2012 22:05:35 +0200
On 04/03/2012 10:04 PM, Stefano Lattarini wrote:
> OK, you've all made clear you have your sensible reasons to have the '.info'
> files generated in the builddir in your use cases.  Since the actual change
> required by automake to allow this is very small and safe, I'm ready to do
> it (see attached patch, which I will push in a couple of days to 'master' if
> there is no objection).
> 
> But since I'm not yet ready to publish this new feature, I intend to make
> it available only though the new, undocumented option named (literally)
> "hack!info-in-builddir".  I hope this is acceptable to you.
> 
Oops, with this squashed in:

  diff --git a/tests/txinfo-builddir.test b/tests/txinfo-builddir.test
  index 64ca190..a09af80 100755
  --- a/tests/txinfo-builddir.test
  +++ b/tests/txinfo-builddir.test
  @@ -27,7 +27,7 @@ required=makeinfo
   echo AC_OUTPUT >> configure.ac

   cat > Makefile.am << 'END'
  -AUTOMAKE_OPTIONS = cygnus ##!hack!info-in-builddir
  +AUTOMAKE_OPTIONS = !hack!info-in-builddir
   info_TEXINFOS = foo.texi subdir/bar.texi
   subdir_bar_TEXINFOS = subdir/inc.texi
   END

Sorry for the noise,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 03 Apr 2012 20:30:02 GMT) Full text and rfc822 format available.

Message #86 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Ian Lance Taylor <iant <at> google.com>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Tue, 03 Apr 2012 22:29:21 +0200
[Message part 1 (text/plain, inline)]
On 04/03/2012 10:05 PM, Stefano Lattarini wrote:
> On 04/03/2012 10:04 PM, Stefano Lattarini wrote:
>> OK, you've all made clear you have your sensible reasons to have the '.info'
>> files generated in the builddir in your use cases.  Since the actual change
>> required by automake to allow this is very small and safe, I'm ready to do
>> it (see attached patch, which I will push in a couple of days to 'master' if
>> there is no objection).
>>
>> But since I'm not yet ready to publish this new feature, I intend to make
>> it available only though the new, undocumented option named (literally)
>> "hack!info-in-builddir".  I hope this is acceptable to you.
>>
On a second though, by double-checking the existing code, I couldn't see how
the 'cygnus' option could possibly influence the location of the generated
info files -- and it turned out it didn't!  Despite what was documented in
the manual, the 'cygnus' option did *not* cause the generated '.info' files
to be placed in the builddir (see attached test case).  This is true for at
least for automake 1.9.6, 1.10.3, 1.11.1, 1.11.4, and automake built from
the master branch (I've checked them all).  Since nobody ever complained
about such a breakage, I conclude that the feature was not truly needed, and
I'm thus withdrawing my previous patch.

Regards,
  Stefano
[txinfo-cygnus-bug.test (text/plain, attachment)]

Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 03 Apr 2012 20:41:02 GMT) Full text and rfc822 format available.

Message #89 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Tom Tromey <tromey <at> redhat.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	Ian Lance Taylor <iant <at> google.com>,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Tue, 03 Apr 2012 14:39:48 -0600
>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:

Stefano> On a second though, by double-checking the existing code, I
Stefano> couldn't see how the 'cygnus' option could possibly influence
Stefano> the location of the generated info files -- and it turned out
Stefano> it didn't!  Despite what was documented in the manual, the
Stefano> 'cygnus' option did *not* cause the generated '.info' files to
Stefano> be placed in the builddir (see attached test case).

It certainly does for me:

    barimba. pwd
    /home/tromey/gnu/baseline-gdb/build/binutils
    barimba. grep '^srcdir = ' Makefile
    srcdir = ../../src/binutils
    barimba. find . -name 'binutils.info'
    ./doc/binutils.info
    barimba. find ../../src/binutils -name 'binutils.info'
    barimba.

How did you test it?
If you built from a distribution tar, then it is expected that the info
file would be in srcdir.

Tom




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 03 Apr 2012 21:09:01 GMT) Full text and rfc822 format available.

Message #92 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Ian Lance Taylor <iant <at> google.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Tue, 03 Apr 2012 14:08:01 -0700
Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:

> But since I'm not yet ready to publish this new feature, I intend to make
> it available only though the new, undocumented option named (literally)
> "hack!info-in-builddir".  I hope this is acceptable to you.

Sure, works for me.

Thanks.

Ian




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 03 Apr 2012 21:46:02 GMT) Full text and rfc822 format available.

Message #95 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Pedro Alves <palves <at> redhat.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	Ian Lance Taylor <iant <at> google.com>,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Tue, 03 Apr 2012 22:39:55 +0100
On 04/03/2012 09:04 PM, Stefano Lattarini wrote:

> OK, you've all made clear you have your sensible reasons to have the '.info'

...
> it available only though the new, undocumented option named (literally)
> "hack!info-in-builddir".  I hope this is acceptable to you.
...
> *undocumented* option '!hack!info-in-builddir' (whose name should
> made it clear that it is not meant for public consumption).

So will this be called a hack forever, or will the naming be revisited
before a release?  IMO, either the feature is sensible, and there doesn't
seem to be a good reason other users couldn't also use it, and hence it
should get a non-hackish name and be documented; or it isn't sensible, and
then it shouldn't exist.  Why the second-class treatment?

-- 
Pedro Alves




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Tue, 03 Apr 2012 23:54:02 GMT) Full text and rfc822 format available.

Message #98 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Miles Bader <miles <at> gnu.org>
To: Pedro Alves <palves <at> redhat.com>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	Ian Lance Taylor <iant <at> google.com>,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	Stefano Lattarini <stefano.lattarini <at> gmail.com>,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 04 Apr 2012 08:53:15 +0900
Pedro Alves <palves <at> redhat.com> writes:
>> OK, you've all made clear you have your sensible reasons to have the '.info'
>
> ...
>> it available only though the new, undocumented option named (literally)
>> "hack!info-in-builddir".  I hope this is acceptable to you.
> ...
>> *undocumented* option '!hack!info-in-builddir' (whose name should
>> made it clear that it is not meant for public consumption).
>
> So will this be called a hack forever, or will the naming be revisited
> before a release?  IMO, either the feature is sensible, and there doesn't
> seem to be a good reason other users couldn't also use it, and hence it
> should get a non-hackish name and be documented; or it isn't sensible, and
> then it shouldn't exist.  Why the second-class treatment?

I suspect there are better, cleaner, ways to accomplish the underlying
goal, but I suppose the gcc maintainers don't want to spend the time
fiddling around with their build infrastructure for such a minor
issue...

-miles

-- 
Alone, adj. In bad company.




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 04 Apr 2012 07:44:01 GMT) Full text and rfc822 format available.

Message #101 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Tom Tromey <tromey <at> redhat.com>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	Ian Lance Taylor <iant <at> google.com>,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org,
	joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 04 Apr 2012 09:42:56 +0200
On 04/03/2012 10:39 PM, Tom Tromey wrote:
>>>>>> "Stefano" == Stefano Lattarini <stefano.lattarini <at> gmail.com> writes:
> 
> Stefano> On a second though, by double-checking the existing code, I
> Stefano> couldn't see how the 'cygnus' option could possibly influence
> Stefano> the location of the generated info files -- and it turned out
> Stefano> it didn't!  Despite what was documented in the manual, the
> Stefano> 'cygnus' option did *not* cause the generated '.info' files to
> Stefano> be placed in the builddir (see attached test case).
> 
> It certainly does for me:
>
Yes, but (at least for the binutils case) that's only because you already
have an hack *unrelated to the cygnus option* to make it work; i.e., in
'binutils/doc/Makefile.am', I read:

  # Automake 1.9 will only build info files in the objdir if they are
  # mentioned in DISTCLEANFILES.  It doesn't have to be unconditional,
  # though, so we use a bogus condition.
  if GENINSRC_NEVER
  DISTCLEANFILES = binutils.info
  endif

>     barimba. pwd
>     /home/tromey/gnu/baseline-gdb/build/binutils
>     barimba. grep '^srcdir = ' Makefile
>     srcdir = ../../src/binutils
>     barimba. find . -name 'binutils.info'
>     ./doc/binutils.info
>     barimba. find ../../src/binutils -name 'binutils.info'
>     barimba.
> 
> How did you test it?
>
With the testcase attached to my mail (warning: it requires the Automake
testsuite infrastructure to work).  I can transform it in an independent
test script if you are really interested.

> If you built from a distribution tar, then it is expected that the info
> file would be in srcdir.
>
I didn't use the binutils distribution to test my claim, but the minimal
test case I had created on purpose, and attached in the previous mail.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 04 Apr 2012 07:49:01 GMT) Full text and rfc822 format available.

Message #104 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: Miles Bader <miles <at> gnu.org>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, Pedro Alves <palves <at> redhat.com>,
	Ian Lance Taylor <iant <at> google.com>,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	binutils <at> sourceware.org, gdb <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 04 Apr 2012 09:47:40 +0200
On 04/04/2012 01:53 AM, Miles Bader wrote:
> Pedro Alves <palves <at> redhat.com> writes:
>>> OK, you've all made clear you have your sensible reasons to have the '.info'
>>
>> ...
>>> it available only though the new, undocumented option named (literally)
>>> "hack!info-in-builddir".  I hope this is acceptable to you.
>> ...
>>> *undocumented* option '!hack!info-in-builddir' (whose name should
>>> made it clear that it is not meant for public consumption).
>>
>> So will this be called a hack forever, or will the naming be revisited
>> before a release?  IMO, either the feature is sensible, and there doesn't
>> seem to be a good reason other users couldn't also use it, and hence it
>> should get a non-hackish name and be documented; or it isn't sensible, and
>> then it shouldn't exist.  Why the second-class treatment?
> 
> I suspect there are better, cleaner, ways to accomplish the underlying
> goal, but I suppose the gcc maintainers don't want to spend the time
> fiddling around with their build infrastructure for such a minor
> issue...
>
Exactly; basically, I wrote the proposed hack because the Binutils, GDB and
GCC packages are important enough that is worth to cater for their unusual
(or even maybe slightly broken) usages, even when that requires a little
extra work on the Automake part.

But then it turned out that the new hack is not really needed, since those
packages already have another hack in place to obtain the behaviour they
want (see my recent answer to Tom), and one that works also with older
Automake releases (back at least to Automake 1.9).

So I've retired my patch, and the hack it introduces.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 04 Apr 2012 09:04:01 GMT) Full text and rfc822 format available.

Message #107 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Pedro Alves <palves <at> redhat.com>
To: Miles Bader <miles <at> gnu.org>
Cc: gcc <at> gcc.gnu.org, Roumen Petrov <bugtrack <at> roumenpetrov.info>,
	11034 <at> debbugs.gnu.org, gdb <at> sourceware.org,
	Ian Lance Taylor <iant <at> google.com>,
	"automake-patches <at> gnu.org" <automake-patches <at> gnu.org>,
	automake <at> gnu.org, Tom Tromey <tromey <at> redhat.com>, ams <at> gnu.org,
	Stefano Lattarini <stefano.lattarini <at> gmail.com>,
	binutils <at> sourceware.org, joseph <at> codesourcery.com
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 04 Apr 2012 10:03:00 +0100
On 04/04/2012 12:53 AM, Miles Bader wrote:

> I suspect there are better, cleaner, ways to accomplish the underlying
> goal, but I suppose the gcc maintainers don't want to spend the time
> fiddling around with their build infrastructure for such a minor
> issue...


Why speculate?  I haven't seen any hint on what the better, cleaner,
way to accomplish this is.

-- 
Pedro Alves




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 04 Apr 2012 13:19:01 GMT) Full text and rfc822 format available.

Message #110 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: "Joseph S. Myers" <joseph <at> codesourcery.com>
To: Stefano Lattarini <stefano.lattarini <at> gmail.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Wed, 4 Apr 2012 13:17:35 +0000 (UTC)
On Sat, 31 Mar 2012, Stefano Lattarini wrote:

> Note there's nothing I'm planning to do, nor I should do, in this regard:
> the two setups described above are both already supported by the current
> automake implementation (but the last one is not encouraged, even though
> it makes perfect sense in some *rare* situations).  I was just pointing
> out that you have to choose one of these setups -- so, if you want to
> distribute info files, you must accept to have them build in the srcdir.

The approach used in GCC, for example in the libquadmath directory, is a 
--enable-generated-files-in-srcdir configure option that is used when 
building a release tarball - so normally the files go in the build 
directory, but a special configuration is used to put them in the source 
directory only when building releases.  (This does not involve the 
"cygnus" option.)  I think support for that seems more generically useful 
(and it makes sense to me for automake to look at features used in other 
packages' configure/build systems, that aren't inherently specific to 
those packages, and try to provide generic versions of them).

The Binutils/GDB release tarball building process is substantially 
different and I'm not familiar with it.

-- 
Joseph S. Myers
joseph <at> codesourcery.com




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Thu, 05 Apr 2012 12:06:01 GMT) Full text and rfc822 format available.

Message #113 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: "Joseph S. Myers" <joseph <at> codesourcery.com>
Cc: gcc <at> gcc.gnu.org, 11034 <at> debbugs.gnu.org, gdb <at> sourceware.org, iant <at> google.com,
	automake <at> gnu.org, ams <at> gnu.org, binutils <at> sourceware.org
Subject: Re: bug#11034: Binutils, GDB, GCC and Automake's 'cygnus' option
Date: Thu, 05 Apr 2012 14:04:04 +0200
On 04/04/2012 03:17 PM, Joseph S. Myers wrote:
> On Sat, 31 Mar 2012, Stefano Lattarini wrote:
> 
>> Note there's nothing I'm planning to do, nor I should do, in this regard:
>> the two setups described above are both already supported by the current
>> automake implementation (but the last one is not encouraged, even though
>> it makes perfect sense in some *rare* situations).  I was just pointing
>> out that you have to choose one of these setups -- so, if you want to
>> distribute info files, you must accept to have them build in the srcdir.
> 
> The approach used in GCC, for example in the libquadmath directory, is a 
> --enable-generated-files-in-srcdir configure option that is used when 
> building a release tarball - so normally the files go in the build 
> directory, but a special configuration is used to put them in the source 
> directory only when building releases.  (This does not involve the 
> "cygnus" option.)  I think support for that seems more generically useful 
> (and it makes sense to me for automake to look at features used in other 
> packages' configure/build systems, that aren't inherently specific to 
> those packages, and try to provide generic versions of them).
>
I agree, but for the moment being I'm just interested in ensuring the
removal of the 'cygnus' option won't impact too negatively on its last
relevant users (GCC, GDB, Binutils, and the bfd library).  So far it
appears this is the case luckily, so I'll go ahead with the deprecation
of 'cygnus' in Automake 1.12.1 and its removal in Automake 1.13.

Regards,
  Stefano




Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 30 Apr 2012 16:48:01 GMT) Full text and rfc822 format available.

Message #116 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: automake-patches <at> gnu.org
Cc: 11034 <at> debbugs.gnu.org
Subject: [PATCH 0/2] cygnus: deprecate and remove
Date: Mon, 30 Apr 2012 18:45:41 +0200
The first patch deprecates support for Cygnus style-trees.  It is meant
to be applied to the 'maint' branch, so that it will appear in the next
Automake maintenance version (1.12.1)

The second patch removes support for Cygnus style-trees altogether.  It
is meant to be applied (on the top of the first one) to the 'master'
branch, so that it will appear in the next major Automake version (1.13).

I will push in a couple of days.

Regards,
  Stefano

-*-*-*-

Stefano Lattarini (2):
  cygnus: warn when it's used (flagged as 'obsolete' now)
  cygnus: remove support for Cygnus-style trees

 NEWS                                 |   24 ++++++++--
 automake.in                          |   57 +++++------------------
 doc/automake.texi                    |   79 +-------------------------------
 lib/Automake/Options.pm              |    5 +-
 lib/am/dejagnu.am                    |   29 ++----------
 lib/am/texinfos.am                   |   21 ---------
 t/clean2.sh                          |   68 ---------------------------
 t/cygnus-check-without-all.sh        |   50 --------------------
 t/cygnus-dependency-tracking.sh      |   73 -----------------------------
 t/cygnus-imply-foreign.sh            |   60 ------------------------
 t/cygnus-no-dist.sh                  |   84 ----------------------------------
 t/cygnus-no-installinfo.sh           |   53 ---------------------
 t/cygnus-no-more.sh                  |   46 +++++++++++++++++++
 t/cygnus-requires-maintainer-mode.sh |   53 ---------------------
 t/flavor.sh                          |    5 +-
 t/library.sh                         |    2 -
 t/list-of-tests.mk                   |   10 +---
 t/txinfo5.sh                         |   38 ---------------
 t/txinfo5b.sh                        |   41 -----------------
 19 files changed, 89 insertions(+), 709 deletions(-)
 delete mode 100755 t/clean2.sh
 delete mode 100755 t/cygnus-check-without-all.sh
 delete mode 100755 t/cygnus-dependency-tracking.sh
 delete mode 100755 t/cygnus-imply-foreign.sh
 delete mode 100755 t/cygnus-no-dist.sh
 delete mode 100755 t/cygnus-no-installinfo.sh
 create mode 100755 t/cygnus-no-more.sh
 delete mode 100755 t/cygnus-requires-maintainer-mode.sh
 delete mode 100755 t/txinfo5.sh
 delete mode 100755 t/txinfo5b.sh

-- 
1.7.9.5





Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 30 Apr 2012 16:48:02 GMT) Full text and rfc822 format available.

Message #119 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: automake-patches <at> gnu.org
Cc: 11034 <at> debbugs.gnu.org
Subject: [PATCH 1/2] cygnus: warn when it's used (flagged as 'obsolete' now)
Date: Mon, 30 Apr 2012 18:45:42 +0200
Support for "Cygnus-style" tree as enabled by the 'cygnus'
option is now reported as obsolete when the warnings in the
'obsolete' category are enabled.

See automake bug#11034.

* automake.in (check_cygnus): Report the use of 'cygnus' mode as
obsolete.
* NEWS: Update.
* docs/automake.texi: Minor adjustments.
* t/cygnus-deprecation.sh: New test.
* t/list-of-tests.mk: Add it.
* tests/cygnus-check-without-all.sh: Adjust by calling automake
with the warnings in the 'obsolete' category disabled.
* t/cygnus-requires-maintainer-mode.sh: Likewise.
* t/cygnus-dependency-tracking.sh: Likewise.
* t/cygnus-imply-foreign.sh: Likewise.
* t/cygnus-no-installinfo.sh: Likewise.
* t/cygnus-no-dist.sh: Likewise.
* t/clean2.sh: Likewise.
* t/flavor.sh: Likewise.
* t/txinfo5.sh: Likewise.
* t/txinfo5b.sh: Likewise.
* t/library.sh: Remove use of 'cygnus' and 'dejagnu' options,
and of AM_MAINTAINER_MODE macro.

Signed-off-by: Stefano Lattarini <stefano.lattarini <at> gmail.com>
---
 NEWS                                 |   14 +++++--
 automake.in                          |    5 +++
 doc/automake.texi                    |   12 +++---
 t/clean2.sh                          |    2 +-
 t/cygnus-check-without-all.sh        |    2 +-
 t/cygnus-dependency-tracking.sh      |    1 +
 t/cygnus-deprecation.sh              |   68 ++++++++++++++++++++++++++++++++++
 t/cygnus-no-dist.sh                  |    4 +-
 t/cygnus-no-installinfo.sh           |    6 ++-
 t/cygnus-requires-maintainer-mode.sh |    6 +--
 t/flavor.sh                          |   22 ++++++++++-
 t/library.sh                         |    2 -
 t/list-of-tests.mk                   |    1 +
 t/txinfo5.sh                         |    2 +-
 t/txinfo5b.sh                        |    5 ++-
 15 files changed, 127 insertions(+), 25 deletions(-)
 create mode 100755 t/cygnus-deprecation.sh

diff --git a/NEWS b/NEWS
index 4e49512..bc867c4 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+New in 1.12.1:
+
+* Deprecated obsolescent features:
+
+  - Support for the "Cygnus-style" trees (enabled by the 'cygnus' option) is
+    now deprecated (its use triggers a warning in the 'obsolete' category).
+    It will be removed in the next major Automake release (1.13).
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.12:
 
 * WARNING: Future backward-incompatibilities!
@@ -32,10 +42,6 @@ New in 1.12:
   - All the "old alias" macros in 'm4/obsolete.m4' will be removed in
     the next major Automake version (1.13).
 
-  - Support for the "Cygnus-style" trees (enabled by the 'cygnus' option)
-    will be deprecated in the next minor version of Automake (1.12.1) and
-    removed in the next major version (1.13).
-
   - Support for the two- and three-arguments invocation forms of the
     AM_INIT_AUTOMAKE macro will be deprecated in the next minor version
     of Automake (1.12.1) and removed in the next major version (1.13).
diff --git a/automake.in b/automake.in
index a454109..d5b8e43 100644
--- a/automake.in
+++ b/automake.in
@@ -5570,6 +5570,11 @@ sub check_cygnus
   my $cygnus = option 'cygnus';
   return unless $cygnus;
 
+  # This feature is deprecated, will be removed in the next
+  # Automake major release.
+  msg 'obsolete', $cygnus->get,
+      "support for Cygnus-style trees is deprecated";
+
   set_strictness ('foreign');
   set_option ('no-installinfo', $cygnus);
   set_option ('no-dependencies', $cygnus);
diff --git a/doc/automake.texi b/doc/automake.texi
index c21a5b7..045964f 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -1958,9 +1958,9 @@ Automake also has a special (and @emph{today deprecated}) ``cygnus'' mode
 that is similar to strictness but handled differently.  This mode is
 useful for packages that are put into a ``Cygnus'' style tree (e.g., older
 versions of the GCC and gdb trees).  @xref{Cygnus}, for more information
-on this mode.  Please note that this mode is deprecated and @emph{will be
-removed in the future automake versions}; you must avoid its use in new
-packages, and should stop using it in existing packages as well.
+on this mode.  Please note that this mode @emph{is deprecated and will be
+removed in the next major Automake release (1.13)}; you must avoid its use
+in new packages, and should stop using it in existing packages as well.
 
 
 @node Uniform
@@ -2604,7 +2604,7 @@ copied.  The default is to make a symbolic link.
 Causes the generated @file{Makefile.in}s to follow Cygnus rules, instead
 of GNU or Gnits rules.  For more information, see @ref{Cygnus}.
 Note that @emph{this mode of operation is deprecated, and will be removed}
-in a future Automake release.
+in the next major Automake release (1.13).
 
 @item -f
 @opindex -f
@@ -11026,8 +11026,8 @@ The file @file{THANKS} is required.
 
 @emph{The features described in this section are deprecated; you must
 not use any of them in new code, and should remove their use from older
-but still maintained code: they will be withdrawn in a future Automake
-release.}
+but still maintained code: they will be withdrawn the next major Automake
+release (1.13).}
 
 Some packages, notably GNU GCC and GNU gdb, used to have a build
 environment originally written at Cygnus Support (subsequently renamed
diff --git a/t/clean2.sh b/t/clean2.sh
index 2599e97..b5f5df2 100755
--- a/t/clean2.sh
+++ b/t/clean2.sh
@@ -49,7 +49,7 @@ END
 
 $ACLOCAL
 $AUTOCONF
-$AUTOMAKE --cygnus
+$AUTOMAKE --cygnus -Wno-obsolete
 
 ./configure
 $MAKE
diff --git a/t/cygnus-check-without-all.sh b/t/cygnus-check-without-all.sh
index f428e95..121c657 100755
--- a/t/cygnus-check-without-all.sh
+++ b/t/cygnus-check-without-all.sh
@@ -33,7 +33,7 @@ check-local:
 END
 
 $ACLOCAL
-$AUTOMAKE --cygnus
+$AUTOMAKE --cygnus -Wno-obsolete
 
 $EGREP '(^| )all.*(:|:.* )check' Makefile.in && Exit 1
 
diff --git a/t/cygnus-dependency-tracking.sh b/t/cygnus-dependency-tracking.sh
index f07c6fc..6c858c1 100755
--- a/t/cygnus-dependency-tracking.sh
+++ b/t/cygnus-dependency-tracking.sh
@@ -27,6 +27,7 @@ AC_OUTPUT
 END
 
 cat > Makefile.am <<'END'
+AUTOMAKE_OPTIONS = -Wno-obsolete
 bin_PROGRAMS = foo
 foo_SOURCES = foo.c
 .PHONY: test-nodeps
diff --git a/t/cygnus-deprecation.sh b/t/cygnus-deprecation.sh
new file mode 100755
index 0000000..779914b
--- /dev/null
+++ b/t/cygnus-deprecation.sh
@@ -0,0 +1,68 @@
+#! /bin/sh
+# Copyright (C) 2012 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Check that support for Cygnus-style trees is deprecated.
+# That feature will be removed in the next major Automake release.
+# See automake bug#11034.
+
+. ./defs || Exit 1
+
+warn_rx='support for Cygnus.*trees.*deprecated'
+
+cat >> configure.ac <<'END'
+AC_PROG_CC
+AM_MAINTAINER_MODE
+END
+
+$ACLOCAL
+$AUTOCONF
+
+: > Makefile.am
+
+# 'cygnus' option from command line
+$AUTOMAKE --cygnus -Wno-obsolete
+AUTOMAKE_fails --cygnus
+grep "^automake.*: .*$warn_rx" stderr
+AUTOMAKE_fails -Wnone -Wobsolete --cygnus
+grep "^automake.*: .*$warn_rx" stderr
+AUTOMAKE_fails --cygnus -Wnone -Wobsolete
+grep "^automake.*: .*$warn_rx" stderr
+
+rm -rf autom4te*.cache
+
+# 'cygnus' option in Makefile.am
+echo "AUTOMAKE_OPTIONS = cygnus" > Makefile.am
+cat Makefile.am # For debugging.
+$AUTOMAKE -Wno-obsolete
+AUTOMAKE_fails
+grep "^Makefile\.am:1:.*$warn_rx" stderr
+AUTOMAKE_fails -Wnone -Wobsolete
+grep "^Makefile\.am:1:.*$warn_rx" stderr
+
+rm -rf autom4te*.cache
+
+# 'cygnus' option in configure.ac
+: > Makefile.am
+sed "s|^\\(AM_INIT_AUTOMAKE\\).*|\1([cygnus])|" configure.ac > t
+diff configure.ac t && fatal_ "failed to edit configure.ac"
+mv -f t configure.ac
+$AUTOMAKE -Wno-obsolete
+AUTOMAKE_fails
+grep "^configure\.ac:2:.*$warn_rx" stderr
+AUTOMAKE_fails -Wnone -Wobsolete
+grep "^configure\.ac:2:.*$warn_rx" stderr
+
+:
diff --git a/t/cygnus-no-dist.sh b/t/cygnus-no-dist.sh
index 519f0c2..d94a8f5 100755
--- a/t/cygnus-no-dist.sh
+++ b/t/cygnus-no-dist.sh
@@ -29,7 +29,7 @@ END
 
 $ACLOCAL
 $AUTOCONF
-$AUTOMAKE --cygnus
+$AUTOMAKE --cygnus -Wno-obsolete
 
 ./configure
 $MAKE
@@ -55,6 +55,8 @@ cat > sub2/Makefile.am <<'END'
 # in override warnings, for when (below) we add the 'distdir'
 # target.
 AUTOMAKE_OPTIONS = cygnus -Wall
+# This is required because the 'cygnus' option is now deprecated.
+AUTOMAKE_OPTIONS += -Wno-obsolete
 END
 
 cat configure.stub - > configure.ac <<'END'
diff --git a/t/cygnus-no-installinfo.sh b/t/cygnus-no-installinfo.sh
index 6f3f322..d46b6b3 100755
--- a/t/cygnus-no-installinfo.sh
+++ b/t/cygnus-no-installinfo.sh
@@ -33,9 +33,11 @@ cat > foo.texi <<'END'
 END
 
 $ACLOCAL
-# FIXME: -Wno-override works around a buglet in definition of $(MAKEINFO)
+# -Wno-override works around a buglet in definition of $(MAKEINFO)
 # in cygnus mode; see also xfailing test 'txinfo5.test'.
-$AUTOMAKE --cygnus -Wno-override
+# -Wno-obsolete accounts for the fact that the cygnus mode is now
+# deprecated.
+$AUTOMAKE --cygnus -Wno-override -Wno-obsolete
 $AUTOCONF
 
 cwd=`pwd` || Exit 1
diff --git a/t/cygnus-requires-maintainer-mode.sh b/t/cygnus-requires-maintainer-mode.sh
index b01dfbc..546e898 100755
--- a/t/cygnus-requires-maintainer-mode.sh
+++ b/t/cygnus-requires-maintainer-mode.sh
@@ -21,7 +21,7 @@
 : > Makefile.am
 
 $ACLOCAL
-AUTOMAKE_fails --cygnus
+AUTOMAKE_fails -Wno-obsolete --cygnus
 grep '^configure\.ac:.*AM_MAINTAINER_MODE.*required.*cygnus' stderr
 
 cat >> configure.ac <<'END'
@@ -34,7 +34,7 @@ END
 
 mkdir sub
 cat > sub/Makefile.am <<'END'
-AUTOMAKE_OPTIONS = cygnus
+AUTOMAKE_OPTIONS = -Wno-obsolete cygnus
 END
 
 rm -rf autom4te.cache
@@ -48,6 +48,6 @@ END
 
 rm -rf autom4te.cache
 $ACLOCAL
-$AUTOMAKE --cygnus
+$AUTOMAKE --cygnus -Wno-obsolete
 
 :
diff --git a/t/flavor.sh b/t/flavor.sh
index f532406..6a1fddb 100755
--- a/t/flavor.sh
+++ b/t/flavor.sh
@@ -35,8 +35,8 @@ END
 $ACLOCAL
 $AUTOCONF
 # Order flavors so that all needed files are installed early.
-for flavor in --gnits --gnu --foreign --cygnus --ignore-deps
-do
+for flavor in --gnits --gnu --foreign --ignore-deps; do
+
   $AUTOMAKE --add-missing $flavor
   ./configure --enable-maintainer-mode
   grep " $flavor" Makefile
@@ -54,6 +54,24 @@ do
   touch Makefile.am
   $MAKE
   grep " $flavor" Makefile
+
 done
 
+# Cygnus mode is deprecated now, and must be handled separately.
+$AUTOMAKE --cygnus -Wno-obsolete
+./configure --enable-maintainer-mode
+grep " --cygnus" Makefile
+$MAKE
+# Two code paths in configure.am:
+# - either a file in $(am__configure_deps) has been updated ...
+$sleep
+touch aclocal.m4
+$MAKE
+grep " --cygnus" Makefile
+# - ... or not; i.e., Makefile.am or an included file has.
+$sleep
+touch Makefile.am
+$MAKE
+grep " --cygnus" Makefile
+
 :
diff --git a/t/library.sh b/t/library.sh
index dffe658..1bf34de 100755
--- a/t/library.sh
+++ b/t/library.sh
@@ -20,13 +20,11 @@
 
 cat >> configure.ac << 'END'
 AC_PROG_RANLIB
-AM_MAINTAINER_MODE
 AC_PROG_CC
 AM_PROG_AR
 END
 
 cat > Makefile.am << 'END'
-AUTOMAKE_OPTIONS = dejagnu cygnus
 lib_LIBRARIES = libfoo.a
 libfoo_a_DEPENDENCIES = libzot.a
 END
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index fef7165..5b6f746 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -330,6 +330,7 @@ t/cxxlibobj.sh \
 t/cxxlink.sh \
 t/cxxnoc.sh \
 t/cxxo.sh \
+t/cygnus-deprecation.sh \
 t/cygnus-check-without-all.sh \
 t/cygnus-dependency-tracking.sh \
 t/cygnus-imply-foreign.sh \
diff --git a/t/txinfo5.sh b/t/txinfo5.sh
index 9e42823..d515617 100755
--- a/t/txinfo5.sh
+++ b/t/txinfo5.sh
@@ -33,6 +33,6 @@ END
 echo '@setfilename ian.info' > ian.texi
 
 $ACLOCAL
-$AUTOMAKE --cygnus
+$AUTOMAKE --cygnus -Wno-obsolete
 
 :
diff --git a/t/txinfo5b.sh b/t/txinfo5b.sh
index c4eac53..a99f607 100755
--- a/t/txinfo5b.sh
+++ b/t/txinfo5b.sh
@@ -25,9 +25,10 @@ AM_MAINTAINER_MODE
 END
 
 cat > Makefile.am << 'END'
-# Disable 'override' warning to work around an unrelated
+# Disable 'override' warnings to work around an unrelated
 # texi+cygnus bug.
-AUTOMAKE_OPTIONS = -Wno-override
+# Disable obsolete warnings because the 'cygnus' mode is now deprecated.
+AUTOMAKE_OPTIONS = -Wno-override -Wno-obsolete
 info_TEXINFOS = ian.texi
 END
 
-- 
1.7.9.5





Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Mon, 30 Apr 2012 16:48:02 GMT) Full text and rfc822 format available.

Message #122 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: automake-patches <at> gnu.org
Cc: 11034 <at> debbugs.gnu.org
Subject: [PATCH 2/2] cygnus: remove support for Cygnus-style trees
Date: Mon, 30 Apr 2012 18:45:43 +0200
Support for "Cygnus-style" tree as enabled by the 'cygnus' option
has been deprecated in the documentation and with runtime warning
since Automake 1.12.1.  It's now time to remove it.

Closes automake bug#11034.

* lib/Automake/Options.pm (_process_option_list): Issue a proper
error when the 'cygnus' option is seen.
* automake.in: Don't handle the 'cygnus' option anymore.
* docs/automake.texi: Remove references to cygnus option and
Cygnus-style trees.
* lib/am/dejagnu.am, lib/am/texinfos.am: Drop special setups for
cygnus mode.
* NEWS: Update.
* t/cygnus-no-more.sh: New test.
* t/flavor.sh: Adjust.
* t/cygnus-deprecation.sh: Remove.
* t/cygnus-check-without-all.sh: Likewise.
* t/cygnus-requires-maintainer-mode.sh: Likewise.
* t/cygnus-dependency-tracking.sh: Likewise.
* t/cygnus-imply-foreign.sh: Likewise.
* t/cygnus-no-installinfo.sh: Likewise.
* t/cygnus-no-dist.sh: Likewise.
* t/clean2.sh: Likewise.
* t/txinfo5.sh: Likewise.
* t/txinfo5b.sh: Likewise.
* t/list-of-tests.mk: Update.

Signed-off-by: Stefano Lattarini <stefano.lattarini <at> gmail.com>
---
 NEWS                                           |   10 +++
 automake.in                                    |   62 +++--------------
 doc/automake.texi                              |   79 +---------------------
 lib/Automake/Options.pm                        |    5 +-
 lib/am/dejagnu.am                              |   29 +-------
 lib/am/texinfos.am                             |   21 ------
 t/clean2.sh                                    |   68 -------------------
 t/cygnus-check-without-all.sh                  |   50 --------------
 t/cygnus-dependency-tracking.sh                |   74 --------------------
 t/cygnus-imply-foreign.sh                      |   60 -----------------
 t/cygnus-no-dist.sh                            |   86 ------------------------
 t/cygnus-no-installinfo.sh                     |   55 ---------------
 t/{cygnus-deprecation.sh => cygnus-no-more.sh} |   30 ++-------
 t/cygnus-requires-maintainer-mode.sh           |   53 ---------------
 t/flavor.sh                                    |   17 -----
 t/list-of-tests.mk                             |   11 +--
 t/txinfo5.sh                                   |   38 -----------
 t/txinfo5b.sh                                  |   42 ------------
 18 files changed, 34 insertions(+), 756 deletions(-)
 delete mode 100755 t/clean2.sh
 delete mode 100755 t/cygnus-check-without-all.sh
 delete mode 100755 t/cygnus-dependency-tracking.sh
 delete mode 100755 t/cygnus-imply-foreign.sh
 delete mode 100755 t/cygnus-no-dist.sh
 delete mode 100755 t/cygnus-no-installinfo.sh
 rename t/{cygnus-deprecation.sh => cygnus-no-more.sh} (65%)
 delete mode 100755 t/cygnus-requires-maintainer-mode.sh
 delete mode 100755 t/txinfo5.sh
 delete mode 100755 t/txinfo5b.sh

diff --git a/NEWS b/NEWS
index bc867c4..386754f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,13 @@
+New in 1.13:
+
+* Obsolete features removed:
+
+  - Support for the "Cygnus-style" trees (once enabled by the 'cygnus'
+    option) has been removed.  See discussion about automake bug#11034
+    for more background.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 New in 1.12.1:
 
 * Deprecated obsolescent features:
diff --git a/automake.in b/automake.in
index d5b8e43..f2f6c07 100644
--- a/automake.in
+++ b/automake.in
@@ -3364,11 +3364,6 @@ sub handle_texinfo_helper ($)
       $texinfodir = ('$(srcdir)/'
 		     . dirname (variable_value ('TEXINFO_TEX')));
     }
-  elsif (option 'cygnus')
-    {
-      $texinfodir = '$(top_srcdir)/../texinfo';
-      define_variable ('TEXINFO_TEX', "$texinfodir/texinfo.tex", INTERNAL);
-    }
   elsif ($config_aux_dir_set_in_configure_ac)
     {
       $texinfodir = $am_config_aux_dir;
@@ -4113,8 +4108,8 @@ sub handle_configure ($$$@)
   define_pretty_variable ('am__configure_deps', TRUE, INTERNAL,
 			  @configuredeps);
 
-  my $automake_options = '--' . (global_option 'cygnus' ? 'cygnus' : $strictness_name)
-			 . (global_option 'no-dependencies' ? ' --ignore-deps' : '');
+  my $automake_options = '--' . $strictness_name .
+			 (global_option 'no-dependencies' ? ' --ignore-deps' : '');
 
   $output_rules .= file_contents
     ('configure',
@@ -4587,25 +4582,16 @@ sub do_check_merge_target ()
   push @check_tests, 'check-local'
     if user_phony_rule 'check-local';
 
-  # In --cygnus mode, check doesn't depend on all.
-  if (option 'cygnus')
-    {
-      # Just run the local check rules.
-      pretty_print_rule ('check-am:', "\t\t", @check);
-    }
-  else
+  # The check target must depend on the local equivalent of
+  # 'all', to ensure all the primary targets are built.  Then it
+  # must build the local check rules.
+  $output_rules .= "check-am: all-am\n";
+  if (@check)
     {
-      # The check target must depend on the local equivalent of
-      # 'all', to ensure all the primary targets are built.  Then it
-      # must build the local check rules.
-      $output_rules .= "check-am: all-am\n";
-      if (@check)
-        {
-	  pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t  ",
-			     @check);
-	  depend ('.MAKE', 'check-am');
-	}
+      pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t  ", @check);
+      depend ('.MAKE', 'check-am');
     }
+
   if (@check_tests)
     {
       pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t  ",
@@ -5564,26 +5550,6 @@ sub scan_autoconf_files ()
 
 ################################################################
 
-# Set up for Cygnus mode.
-sub check_cygnus
-{
-  my $cygnus = option 'cygnus';
-  return unless $cygnus;
-
-  # This feature is deprecated, will be removed in the next
-  # Automake major release.
-  msg 'obsolete', $cygnus->get,
-      "support for Cygnus-style trees is deprecated";
-
-  set_strictness ('foreign');
-  set_option ('no-installinfo', $cygnus);
-  set_option ('no-dependencies', $cygnus);
-  set_option ('no-dist', $cygnus);
-
-  err_ac "'AM_MAINTAINER_MODE' required when --cygnus specified"
-    if !$seen_maint_mode;
-}
-
 # Do any extra checking for GNU standards.
 sub check_gnu_standards
 {
@@ -6954,8 +6920,7 @@ sub preprocess_file ($%)
 
   # Complete %transform with global options.
   # Note that %transform goes last, so it overrides global options.
-  %transform = ('CYGNUS'      => !! option 'cygnus',
-		 'MAINTAINER-MODE'
+  %transform = ( 'MAINTAINER-MODE'
 		 => $seen_maint_mode ? subst ('MAINTAINER_MODE_TRUE') : '',
 
 		 'XZ'          => !! option 'dist-xz',
@@ -8097,7 +8062,6 @@ sub generate_makefile ($$)
     if var 'DIST_SUBDIRS' && ! var 'SUBDIRS';
 
   # Check first, because we might modify some state.
-  check_cygnus;
   check_gnu_standards;
   check_gnits_standards;
 
@@ -8279,7 +8243,6 @@ Dependency tracking:
       --include-deps     enable dependency tracking code
 
 Flavors:
-      --cygnus           assume program is part of Cygnus-style tree
       --foreign          set strictness to foreign
       --gnits            set strictness to gnits
       --gnu              set strictness to gnu
@@ -8337,7 +8300,6 @@ EOF
 sub parse_arguments ()
 {
   my $strict = 'gnu';
-  my $cygnus = 0;
   my $ignore_deps = 0;
   my @warnings = ();
 
@@ -8350,7 +8312,6 @@ sub parse_arguments ()
      'gnu'		=> sub { $strict = 'gnu'; },
      'gnits'		=> sub { $strict = 'gnits'; },
      'foreign'		=> sub { $strict = 'foreign'; },
-     'cygnus'		=> \$cygnus,
      'include-deps'	=> sub { $ignore_deps = 0; },
      'i|ignore-deps'	=> sub { $ignore_deps = 1; },
      'no-force'	=> sub { $force_generation = 0; },
@@ -8366,7 +8327,6 @@ sub parse_arguments ()
 
   set_strictness ($strict);
   my $cli_where = new Automake::Location;
-  set_global_option ('cygnus', $cli_where) if $cygnus;
   set_global_option ('no-dependencies', $cli_where) if $ignore_deps;
   for my $warning (@warnings)
     {
diff --git a/doc/automake.texi b/doc/automake.texi
index 045964f..c4591cb 100644
--- a/doc/automake.texi
+++ b/doc/automake.texi
@@ -115,7 +115,6 @@ section entitled ``GNU Free Documentation License.''
 * Conditionals::                Conditionals
 * Silencing Make::              Obtain less verbose output from @command{make}
 * Gnits::                       The effect of @option{--gnu} and @option{--gnits}
-* Cygnus::                      The effect of @option{--cygnus} (deprecated, soon to be removed)
 * Not Enough::                  When Automake is not Enough
 * Distributing::                Distributing the Makefile.in
 * API Versioning::              About compatibility between Automake versions
@@ -1954,14 +1953,6 @@ standard is actually published (which may never happen).
 @xref{Gnits}, for more information on the precise implications of the
 strictness level.
 
-Automake also has a special (and @emph{today deprecated}) ``cygnus'' mode
-that is similar to strictness but handled differently.  This mode is
-useful for packages that are put into a ``Cygnus'' style tree (e.g., older
-versions of the GCC and gdb trees).  @xref{Cygnus}, for more information
-on this mode.  Please note that this mode @emph{is deprecated and will be
-removed in the next major Automake release (1.13)}; you must avoid its use
-in new packages, and should stop using it in existing packages as well.
-
 
 @node Uniform
 @section The Uniform Naming Scheme
@@ -2599,13 +2590,6 @@ scripts and data files (like e.g., @file{texinfo.texi} and
 When used with @option{--add-missing}, causes installed files to be
 copied.  The default is to make a symbolic link.
 
-@item --cygnus
-@opindex --cygnus
-Causes the generated @file{Makefile.in}s to follow Cygnus rules, instead
-of GNU or Gnits rules.  For more information, see @ref{Cygnus}.
-Note that @emph{this mode of operation is deprecated, and will be removed}
-in the next major Automake release (1.13).
-
 @item -f
 @opindex -f
 @itemx --force-missing
@@ -9999,15 +9983,12 @@ then @samp{portability} warnings will be @emph{disabled} in
 @item @option{gnits}
 @itemx @option{gnu}
 @itemx @option{foreign}
-@itemx @option{cygnus}
 @cindex Option, @option{gnits}
 @cindex Option, @option{gnu}
 @cindex Option, @option{foreign}
-@cindex Option, @option{cygnus}
 @opindex gnits
 @opindex gnu
 @opindex foreign
-@opindex cygnus
 
 Set the strictness as appropriate.  The @option{gnits} option also
 implies options @option{readme-alpha} and @option{check-news}.
@@ -11019,64 +11000,6 @@ The file @file{THANKS} is required.
 @end itemize
 
 
-@node Cygnus
-@chapter The effect of @option{--cygnus}
-
-@cindex @option{cygnus} strictness
-
-@emph{The features described in this section are deprecated; you must
-not use any of them in new code, and should remove their use from older
-but still maintained code: they will be withdrawn the next major Automake
-release (1.13).}
-
-Some packages, notably GNU GCC and GNU gdb, used to have a build
-environment originally written at Cygnus Support (subsequently renamed
-Cygnus Solutions, and then later purchased by Red Hat).  Packages with
-this ancestry are sometimes referred to as ``Cygnus'' trees.
-
-A Cygnus tree has slightly different rules for how a
-@file{Makefile.in} is to be constructed.  Passing @option{--cygnus} to
-@command{automake} will cause any generated @file{Makefile.in} to
-comply with Cygnus rules.
-
-Here are the precise effects of @option{--cygnus}:
-
-@itemize @bullet
-
-@item
-The @option{foreign} strictness is implied.
-
-@item
-The options @option{no-installinfo}, @option{no-dependencies} and
-@option{no-dist} are implied (@pxref{Options}).
-
-@item
-The macro @code{AM_MAINTAINER_MODE} is required.
-
-@item
-Info files are always created in the build directory, and not in the
-source directory.  Packages that don't use the @option{cygnus} option
-can emulate this effect by using the @option{no-installinfo} option
-and listing the generated info files in the @code{CLEANFILES} variable.
-
-@item
-@file{texinfo.tex} is not required if a Texinfo source file is
-specified.  The assumption is that the file will be supplied, but in a
-place that Automake cannot find -- it is an artifact of how Cygnus
-packages are typically bundled.  This effect can be emulated in
-packages not using the @option{cygnus} option with a proper definition
-of the @code{TEXINFO_TEX} variable (@pxref{Texinfo}).
-
-@item
-Certain tools will be searched for in the build tree as well as in the
-user's @env{PATH}.  These tools are @command{runtest}, @command{expect},
-@command{makeinfo} and @command{texi2dvi}.
-
-@item
-The @code{check} target doesn't depend on @code{all}.
-@end itemize
-
-
 @node Not Enough
 @chapter When Automake Isn't Enough
 
@@ -13098,7 +13021,7 @@ suite failures, please attach the @file{tests/test-suite.log} file.
 @c  LocalWords:  texinfo setfilename settitle setchapternewpage texi direntry
 @c  LocalWords:  dircategory in's aclocal ifinfo titlepage Tromey vskip pt sp
 @c  LocalWords:  filll defcodeindex ov cv op tr syncodeindex fn cp vr ifnottex
-@c  LocalWords:  dir Automake's ac Dist Gnits gnits cygnus dfn Autoconf's pxref
+@c  LocalWords:  dir Automake's ac Dist Gnits gnits dfn Autoconf's pxref
 @c  LocalWords:  cindex Autoconf autoconf perl samp cvs dist trindex SUBST foo
 @c  LocalWords:  xs emph FIXME ref vindex pkglibdir pkgincludedir pkgdatadir mt
 @c  LocalWords:  pkg libdir cpio bindir sbindir rmt pax sbin zar zardir acindex
diff --git a/lib/Automake/Options.pm b/lib/Automake/Options.pm
index 2f977bd..ede9326 100644
--- a/lib/Automake/Options.pm
+++ b/lib/Automake/Options.pm
@@ -269,7 +269,6 @@ sub _is_valid_easy_option ($)
   return scalar grep { $opt eq $_ } qw(
     check-news
     color-tests
-    cygnus
     dejagnu
     dist-bzip2
     dist-lzip
@@ -319,6 +318,10 @@ sub _process_option_list (\%@)
           error ($where,
                  "automatic de-ANSI-fication support has been removed");
         }
+      elsif ($_ eq 'cygnus')
+        {
+          error $where, "support for Cygnus-style trees has been removed";
+        }
       elsif ($_ eq 'dist-lzma')
         {
           error ($where, "support for lzma-compressed distribution " .
diff --git a/lib/am/dejagnu.am b/lib/am/dejagnu.am
index f1ee471..50c1f51 100644
--- a/lib/am/dejagnu.am
+++ b/lib/am/dejagnu.am
@@ -20,24 +20,8 @@ DEJATOOL = $(PACKAGE)
 ## Default flags to pass to dejagnu.  The user can override this.
 RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
 
-## In Cygnus mode, these are found in the build tree.
-## Otherwise they are looked for in $PATH.
-if %?CYGNUS%
-EXPECT = `if test -f $(top_builddir)/../expect/expect; then \
-	    echo $(top_builddir)/../expect/expect; \
-	  else \
-	    echo expect; \
-	  fi`
-
-RUNTEST = `if test -f $(top_srcdir)/../dejagnu/runtest; then \
-	     echo $(top_srcdir)/../dejagnu/runtest; \
-	   else \
-	     echo runtest; \
-	   fi`
-else ! %?CYGNUS%
 EXPECT = expect
 RUNTEST = runtest
-endif ! %?CYGNUS%
 
 
 .PHONY: check-DEJAGNU
@@ -45,21 +29,14 @@ check-DEJAGNU: site.exp
 ## Life is easiest with an absolute srcdir, so do that.
 	srcdir='$(srcdir)'; export srcdir; \
 	EXPECT=$(EXPECT); export EXPECT; \
-## Allow this to work when expect and DejaGnu are in tree.
-## Only required when --cygnus in force.
-?CYGNUS?	if [ -f $(top_builddir)/../expect/expect ]; then \
-?CYGNUS?	  TCL_LIBRARY=`$(am__cd) $(top_srcdir)/../tcl/library && pwd`; \
-?CYGNUS?	  export TCL_LIBRARY; \
-?CYGNUS?	fi; \
-	runtest=$(RUNTEST); \
 ## If runtest can't be found, print a warning but don't die.  It is
 ## pointless to cause a failure if the tests cannot be run at all.
-	if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
+	if $(SHELL) -c "$(RUNTEST) --version" > /dev/null 2>&1; then \
 	  exit_status=0; l='$(DEJATOOL)'; for tool in $$l; do \
-	    if $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
+	    if $(RUNTEST) $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
 	    then :; else exit_status=1; fi; \
 	  done; \
-	else echo "WARNING: could not find 'runtest'" 1>&2; :;\
+	else echo "WARNING: could not find '$(RUNTEST)'" 1>&2; :;\
 	fi; \
 	exit $$exit_status
 
diff --git a/lib/am/texinfos.am b/lib/am/texinfos.am
index 42787c7..e78cded 100644
--- a/lib/am/texinfos.am
+++ b/lib/am/texinfos.am
@@ -20,26 +20,7 @@
 ## ----------- ##
 
 if %?LOCAL-TEXIS%
-if ! %?CYGNUS%
 TEXI2DVI = texi2dvi
-
-else %?CYGNUS%
-
-## Find these programs wherever they may lie.  Yes, this has
-## intimate knowledge of the structure of the texinfo distribution.
-MAKEINFO = `if test -f $(top_builddir)/../texinfo/makeinfo/makeinfo; then \
-            echo $(top_builddir)/../texinfo/makeinfo/makeinfo; \
-          else \
-            echo makeinfo; \
-          fi`
-
-TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then \
-             echo $(top_srcdir)/../texinfo/util/texi2dvi; \
-           else \
-             echo texi2dvi; \
-           fi`
-endif %?CYGNUS%
-
 TEXI2PDF = $(TEXI2DVI) --pdf --batch
 MAKEINFOHTML = $(MAKEINFO) --html
 AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
@@ -428,6 +409,4 @@ maintainer-clean-aminfo:
 ?MAINTCLEAN?	-test -z "%MAINTCLEAN%" \
 ?MAINTCLEAN?	|| rm -rf %MAINTCLEAN%
 
-?CYGNUS?.PHONY: clean-info
-?CYGNUS?clean-info: mostlyclean-aminfo clean-aminfo
 endif %?LOCAL-TEXIS%
diff --git a/t/clean2.sh b/t/clean2.sh
deleted file mode 100755
index b5f5df2..0000000
--- a/t/clean2.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2004-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Make sure distclean works in cygnus mode.
-# Report from Daniel Jacobowitz.
-
-. ./defs || Exit 1
-
-cat >> configure.ac << 'END'
-AM_MAINTAINER_MODE
-AC_CONFIG_FILES([sub/Makefile])
-AC_OUTPUT
-END
-
-cat > Makefile.am << 'END'
-SUBDIRS = sub
-
-data_DATA = bar
-
-bar:
-	touch $@
-
-DISTCLEANFILES = bar
-END
-
-mkdir sub
-
-cat > sub/Makefile.am << 'END'
-data_DATA = foo
-
-foo:
-	touch $@
-
-CLEANFILES = $(data_DATA)
-END
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE --cygnus -Wno-obsolete
-
-./configure
-$MAKE
-ls -l
-test -f bar
-test -f sub/foo
-$MAKE distclean
-ls -l
-test ! -r bar
-test ! -r sub/foo
-test ! -r Makefile
-test ! -r config.status
-test -f Makefile.in
-test -f configure
-
-:
diff --git a/t/cygnus-check-without-all.sh b/t/cygnus-check-without-all.sh
deleted file mode 100755
index 121c657..0000000
--- a/t/cygnus-check-without-all.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Check that, in cygnus mode, target "check" does not depend target
-# "all".
-
-. ./defs || Exit 1
-
-cat >> configure.ac <<'END'
-AM_MAINTAINER_MODE
-AC_OUTPUT
-END
-
-cat > Makefile.am <<'END'
-all-local:
-	: > all-target-has-failed
-	exit 1
-check-local:
-	touch check-target-has-run
-END
-
-$ACLOCAL
-$AUTOMAKE --cygnus -Wno-obsolete
-
-$EGREP '(^| )all.*(:|:.* )check' Makefile.in && Exit 1
-
-$AUTOCONF
-./configure
-
-$MAKE check
-test -f check-target-has-run
-test ! -r all-target-has-failed
-# Sanity checks.
-$MAKE && Exit 1
-test -f all-target-has-failed
-
-:
diff --git a/t/cygnus-dependency-tracking.sh b/t/cygnus-dependency-tracking.sh
deleted file mode 100755
index 6c858c1..0000000
--- a/t/cygnus-dependency-tracking.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Check that cygnus mode disables automatic dependency tracking.
-# And check that this *cannot* be overridden.
-
-required=cc
-. ./defs || Exit 1
-
-cat >> configure.ac <<'END'
-AM_MAINTAINER_MODE
-AC_PROG_CC
-AC_OUTPUT
-END
-
-cat > Makefile.am <<'END'
-AUTOMAKE_OPTIONS = -Wno-obsolete
-bin_PROGRAMS = foo
-foo_SOURCES = foo.c
-.PHONY: test-nodeps
-test-nodeps:
-	test ! -d .deps
-	test ! -d _deps
-	test ! -d '$(DEPDIR)'
-END
-
-cat > foo.c <<'END'
-#include "bar.h"
-int main ()
-{
-  GIVE_BACK 0;
-}
-END
-
-cat > bar.sav <<'END'
-#define GIVE_BACK return
-END
-
-cp bar.sav bar.h
-
-$ACLOCAL
-$AUTOMAKE --include-deps --cygnus --include-deps
-$AUTOCONF
-
-# Unknown options should cause just warnings from configure.
-./configure --enable-dependency-tracking
-$MAKE
-$MAKE test-nodeps
-
-: > bar.h
-$MAKE
-$MAKE test-nodeps
-
-# Sanity check.
-$MAKE clean
-$MAKE >out 2>&1 && { cat out; Exit 1; }
-cat out
-# Not all compilers mention the undefined symbol in the error message.
-grep GIVE_BACK out || grep main out
-
-:
diff --git a/t/cygnus-imply-foreign.sh b/t/cygnus-imply-foreign.sh
deleted file mode 100755
index 3dcf671..0000000
--- a/t/cygnus-imply-foreign.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Check that 'cygnus' mode imply 'foreign' mode.
-
-. ./defs || Exit 1
-
-cat >> configure.ac <<'END'
-# This is *required* in cygnus mode
-AM_MAINTAINER_MODE
-END
-
-$ACLOCAL
-
-: > Makefile.am
-
-# We want complete control automake flags, while honouring the
-# user overrides for $AUTOMAKE.
-AUTOMAKE=$am_original_AUTOMAKE
-
-# Sanity check: gnu mode must complain about missing files and
-# portability problems.
-AUTOMAKE_fails
-grep 'required file.*README' stderr
-
-# But cygnus mode should imply foreign mode, so no complaints.
-# And cygnus mode should by able to override gnu and gnits modes.
-$AUTOMAKE --cygnus -Werror
-$AUTOMAKE --gnu --cygnus -Werror
-$AUTOMAKE --gnits --cygnus -Werror
-
-# Try again, this time enabling cygnus mode from Makefile.am.
-cp Makefile.am Makefile.sav
-echo 'AUTOMAKE_OPTIONS = gnu cygnus' >> Makefile.am
-$AUTOMAKE -Werror
-mv -f Makefile.sav Makefile.am
-
-# Try again, this time enabling cygnus mode from configure.ac.
-cp configure.ac configure.sav
-sed 's/^AM_INIT_AUTOMAKE$/&([gnits cygnus])/' configure.sav >configure.ac
-cmp configure.ac configure.sav && fatal_ 'failed to edit configure.ac'
-
-$ACLOCAL --force
-$AUTOMAKE -Werror
-mv -f configure.sav configure.ac
-
-:
diff --git a/t/cygnus-no-dist.sh b/t/cygnus-no-dist.sh
deleted file mode 100755
index d94a8f5..0000000
--- a/t/cygnus-no-dist.sh
+++ /dev/null
@@ -1,86 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Check that cygnus mode forbids creation of distribution tarball.
-
-. ./defs || Exit 1
-
-echo AM_MAINTAINER_MODE >> configure.ac
-mv -f configure.ac configure.stub
-
-cat configure.stub - > configure.ac <<'END'
-AC_OUTPUT
-END
-
-: > Makefile.am
-
-$ACLOCAL
-$AUTOCONF
-$AUTOMAKE --cygnus -Wno-obsolete
-
-./configure
-$MAKE
-
-for target in dist distdir distcheck dist-all dist-gzip; do
-  $MAKE -n $target >out 2>&1 && { cat out; Exit 1; }
-  cat out
-  grep $target out
-done
-
-# Now check that cygnus mode in a subdirectory disables
-# distribution-building in that subdirectory.
-
-cat > Makefile.am <<'END'
-SUBDIRS = sub1 sub2
-END
-
-mkdir sub1 sub2
-: > sub1/Makefile.am
-cat > sub2/Makefile.am <<'END'
-# The '-Wall' after 'cygnus' should ensure no warning gets
-# unintentionally disabled.  We are particularly interested
-# in override warnings, for when (below) we add the 'distdir'
-# target.
-AUTOMAKE_OPTIONS = cygnus -Wall
-# This is required because the 'cygnus' option is now deprecated.
-AUTOMAKE_OPTIONS += -Wno-obsolete
-END
-
-cat configure.stub - > configure.ac <<'END'
-AC_CONFIG_FILES([sub1/Makefile sub2/Makefile])
-AC_OUTPUT
-END
-
-$AUTOCONF
-$AUTOMAKE
-
-./configure
-$MAKE
-cd sub2
-$MAKE -n distdir >out 2>&1 && { cat out; Exit 1; }
-grep distdir out
-cd ..
-
-cat >> sub2/Makefile.am <<'END'
-distdir:
-END
-$AUTOMAKE sub2/Makefile
-./config.status sub2/Makefile
-
-$MAKE distdir
-$MAKE dist
-
-:
diff --git a/t/cygnus-no-installinfo.sh b/t/cygnus-no-installinfo.sh
deleted file mode 100755
index d46b6b3..0000000
--- a/t/cygnus-no-installinfo.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Check that cygnus mode enables the 'no-installinfo' option.
-
-required=makeinfo
-. ./defs || Exit 1
-
-cat >> configure.ac <<'END'
-AM_MAINTAINER_MODE
-AC_OUTPUT
-END
-
-cat > Makefile.am <<'END'
-info_TEXINFOS = foo.texi
-END
-
-cat > foo.texi <<'END'
-@setfilename foo.info
-END
-
-$ACLOCAL
-# -Wno-override works around a buglet in definition of $(MAKEINFO)
-# in cygnus mode; see also xfailing test 'txinfo5.test'.
-# -Wno-obsolete accounts for the fact that the cygnus mode is now
-# deprecated.
-$AUTOMAKE --cygnus -Wno-override -Wno-obsolete
-$AUTOCONF
-
-cwd=`pwd` || Exit 1
-./configure --prefix="$cwd"/_inst
-$MAKE
-$MAKE install
-test ! -d _inst
-test ! -r foo.info
-test ! -d _inst/share/info
-$MAKE install-info
-ls -l _inst
-test -f foo.info
-test -f _inst/share/info/foo.info
-
-:
diff --git a/t/cygnus-deprecation.sh b/t/cygnus-no-more.sh
similarity index 65%
rename from t/cygnus-deprecation.sh
rename to t/cygnus-no-more.sh
index 779914b..4be0561 100755
--- a/t/cygnus-deprecation.sh
+++ b/t/cygnus-no-more.sh
@@ -20,37 +20,18 @@
 
 . ./defs || Exit 1
 
-warn_rx='support for Cygnus.*trees.*deprecated'
-
-cat >> configure.ac <<'END'
-AC_PROG_CC
-AM_MAINTAINER_MODE
-END
+warn_rx='support for Cygnus.*trees.*removed'
 
 $ACLOCAL
-$AUTOCONF
-
-: > Makefile.am
 
-# 'cygnus' option from command line
-$AUTOMAKE --cygnus -Wno-obsolete
-AUTOMAKE_fails --cygnus
-grep "^automake.*: .*$warn_rx" stderr
-AUTOMAKE_fails -Wnone -Wobsolete --cygnus
-grep "^automake.*: .*$warn_rx" stderr
-AUTOMAKE_fails --cygnus -Wnone -Wobsolete
-grep "^automake.*: .*$warn_rx" stderr
-
-rm -rf autom4te*.cache
+# Use of 'cygnus' option must raise an unconditional error, not a
+# warning.
+AUTOMAKE="$am_original_AUTOMAKE -Wnone -Wno-error"
 
 # 'cygnus' option in Makefile.am
 echo "AUTOMAKE_OPTIONS = cygnus" > Makefile.am
-cat Makefile.am # For debugging.
-$AUTOMAKE -Wno-obsolete
 AUTOMAKE_fails
 grep "^Makefile\.am:1:.*$warn_rx" stderr
-AUTOMAKE_fails -Wnone -Wobsolete
-grep "^Makefile\.am:1:.*$warn_rx" stderr
 
 rm -rf autom4te*.cache
 
@@ -59,10 +40,7 @@ rm -rf autom4te*.cache
 sed "s|^\\(AM_INIT_AUTOMAKE\\).*|\1([cygnus])|" configure.ac > t
 diff configure.ac t && fatal_ "failed to edit configure.ac"
 mv -f t configure.ac
-$AUTOMAKE -Wno-obsolete
 AUTOMAKE_fails
 grep "^configure\.ac:2:.*$warn_rx" stderr
-AUTOMAKE_fails -Wnone -Wobsolete
-grep "^configure\.ac:2:.*$warn_rx" stderr
 
 :
diff --git a/t/cygnus-requires-maintainer-mode.sh b/t/cygnus-requires-maintainer-mode.sh
deleted file mode 100755
index 546e898..0000000
--- a/t/cygnus-requires-maintainer-mode.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2010-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Check that, in cygnus mode, maintainer mode is required.
-
-. ./defs || Exit 1
-
-: > Makefile.am
-
-$ACLOCAL
-AUTOMAKE_fails -Wno-obsolete --cygnus
-grep '^configure\.ac:.*AM_MAINTAINER_MODE.*required.*cygnus' stderr
-
-cat >> configure.ac <<'END'
-AC_CONFIG_FILES([sub/Makefile])
-END
-
-cat > Makefile.am <<'END'
-SUBDIRS = sub
-END
-
-mkdir sub
-cat > sub/Makefile.am <<'END'
-AUTOMAKE_OPTIONS = -Wno-obsolete cygnus
-END
-
-rm -rf autom4te.cache
-$ACLOCAL
-AUTOMAKE_fails
-grep '^configure\.ac:.*AM_MAINTAINER_MODE.*required.*cygnus' stderr
-
-cat >> configure.ac <<'END'
-AM_MAINTAINER_MODE
-END
-
-rm -rf autom4te.cache
-$ACLOCAL
-$AUTOMAKE --cygnus -Wno-obsolete
-
-:
diff --git a/t/flavor.sh b/t/flavor.sh
index 6a1fddb..8b999cc 100755
--- a/t/flavor.sh
+++ b/t/flavor.sh
@@ -57,21 +57,4 @@ for flavor in --gnits --gnu --foreign --ignore-deps; do
 
 done
 
-# Cygnus mode is deprecated now, and must be handled separately.
-$AUTOMAKE --cygnus -Wno-obsolete
-./configure --enable-maintainer-mode
-grep " --cygnus" Makefile
-$MAKE
-# Two code paths in configure.am:
-# - either a file in $(am__configure_deps) has been updated ...
-$sleep
-touch aclocal.m4
-$MAKE
-grep " --cygnus" Makefile
-# - ... or not; i.e., Makefile.am or an included file has.
-$sleep
-touch Makefile.am
-$MAKE
-grep " --cygnus" Makefile
-
 :
diff --git a/t/list-of-tests.mk b/t/list-of-tests.mk
index 5b6f746..43d7538 100644
--- a/t/list-of-tests.mk
+++ b/t/list-of-tests.mk
@@ -213,7 +213,6 @@ t/check-no-test-driver.sh \
 t/check-concurrency-bug9245.sh \
 t/checkall.sh \
 t/clean.sh \
-t/clean2.sh \
 t/colneq.sh \
 t/colneq2.sh \
 t/colneq3.sh \
@@ -330,13 +329,7 @@ t/cxxlibobj.sh \
 t/cxxlink.sh \
 t/cxxnoc.sh \
 t/cxxo.sh \
-t/cygnus-deprecation.sh \
-t/cygnus-check-without-all.sh \
-t/cygnus-dependency-tracking.sh \
-t/cygnus-imply-foreign.sh \
-t/cygnus-no-dist.sh \
-t/cygnus-no-installinfo.sh \
-t/cygnus-requires-maintainer-mode.sh \
+t/cygnus-no-more.sh \
 t/cygwin32.sh \
 t/dash.sh \
 t/defun.sh \
@@ -1157,8 +1150,6 @@ t/txinfo.sh \
 t/txinfo2.sh \
 t/txinfo3.sh \
 t/txinfo4.sh \
-t/txinfo5.sh \
-t/txinfo5b.sh \
 t/txinfo6.sh \
 t/txinfo7.sh \
 t/txinfo8.sh \
diff --git a/t/txinfo5.sh b/t/txinfo5.sh
deleted file mode 100755
index d515617..0000000
--- a/t/txinfo5.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1998-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Test to make sure that texinfo.tex is not required by --cygnus.
-# Also check that TEXINFOS + cygnus work without requiring the
-# '-Wno-override' option.
-# See also sister test txinfo5b.test.
-# Report from Ian Taylor.
-
-. ./defs || Exit 1
-
-cat >> configure.ac << 'END'
-AM_MAINTAINER_MODE
-END
-
-cat > Makefile.am << 'END'
-info_TEXINFOS = ian.texi
-END
-
-echo '@setfilename ian.info' > ian.texi
-
-$ACLOCAL
-$AUTOMAKE --cygnus -Wno-obsolete
-
-:
diff --git a/t/txinfo5b.sh b/t/txinfo5b.sh
deleted file mode 100755
index a99f607..0000000
--- a/t/txinfo5b.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#! /bin/sh
-# Copyright (C) 1998-2012 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Test to make sure that texinfo.tex is not required by --cygnus.
-# See also sister test txinfo5.test.
-# Report from Ian Taylor.
-
-. ./defs || Exit 1
-
-cat >> configure.ac << 'END'
-AM_MAINTAINER_MODE
-END
-
-cat > Makefile.am << 'END'
-# Disable 'override' warnings to work around an unrelated
-# texi+cygnus bug.
-# Disable obsolete warnings because the 'cygnus' mode is now deprecated.
-AUTOMAKE_OPTIONS = -Wno-override -Wno-obsolete
-info_TEXINFOS = ian.texi
-END
-
-echo '@setfilename ian.info' > ian.texi
-
-$ACLOCAL
-$AUTOMAKE --cygnus
-$AUTOMAKE -a --cygnus
-test ! -f texinfo.tex
-
-:
-- 
1.7.9.5





Information forwarded to bug-automake <at> gnu.org:
bug#11034; Package automake. (Wed, 02 May 2012 09:19:01 GMT) Full text and rfc822 format available.

Message #125 received at 11034 <at> debbugs.gnu.org (full text, mbox):

From: Stefano Lattarini <stefano.lattarini <at> gmail.com>
To: automake-patches <at> gnu.org
Cc: 11034 <at> debbugs.gnu.org
Subject: Re: [PATCH 0/2] cygnus: deprecate and remove
Date: Wed, 02 May 2012 11:16:18 +0200
tags 11034 + patch
close 11034
thanks

On 04/30/2012 06:45 PM, Stefano Lattarini wrote:
>
> Stefano Lattarini (2):
>   cygnus: warn when it's used (flagged as 'obsolete' now)
>   cygnus: remove support for Cygnus-style trees
>
> The first patch deprecates support for Cygnus style-trees.  It is meant
> to be applied to the 'maint' branch, so that it will appear in the next
> Automake maintenance version (1.12.1)
> 
> The second patch removes support for Cygnus style-trees altogether.  It
> is meant to be applied (on the top of the first one) to the 'master'
> branch, so that it will appear in the next major Automake version (1.13).
> 
> I will push in a couple of days.
> 
Pushed now.  I'm thus closing the bug report.

Regards,
  Stefano




Added tag(s) patch. Request was from Stefano Lattarini <stefano.lattarini <at> gmail.com> to control <at> debbugs.gnu.org. (Wed, 02 May 2012 09:19:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 11034 <at> debbugs.gnu.org and Stefano Lattarini <stefano.lattarini <at> gmail.com> Request was from Stefano Lattarini <stefano.lattarini <at> gmail.com> to control <at> debbugs.gnu.org. (Wed, 02 May 2012 09:19:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 30 May 2012 11:24:02 GMT) Full text and rfc822 format available.

This bug report was last modified 11 years and 295 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.