Re: Autoconf and CVS

From:

Stepan Kasal

Subject:

Re: Autoconf and CVS

Date:

Wed, 4 Jan 2006 08:25:16 +0100

User-agent:

Mutt/1.4.1i

Hello,
On Sat, Dec 24, 2005 at 08:52:12AM -0700, Ed Hartnett wrote:
> I have a project with several developers, and we keep the configure.ac
> and the configure checked in, but we are moving towards only having
> configure.ac checked in.
>
> In general there will be on developer taking the lead on configuration
> and make files. He or she will want the latest autotools. Also, he or
> she should be the one to generate distributions.
>
> Other developers may not need to stay up with the latest autotools
> versions. Unless they decide they need to edit the configuration files
> to support some change. This happens with some frequency, so many
> developers will have to keep up with autotools versions anyway.
>
> Since that's already the case for us, we are going to stop putting
> configure and Makefile(s) in the repository.
very nicely explained. I believe this experience should teach maintainers
of new projects that it is better to omit generated files from CVS from
the beginning.
On Sat, Dec 24, 2005 at 10:26:10AM -0600, Bob Friesenhahn wrote:
> In some cases most of the project developers don't want to have
> anything to do with build maintenance. They just want to edit
> existing C/C++ source code.
This is natural. But they might want to add a new source file, ...
I must be annoying to ask "the autotools expert" to do it for them.
It's much better to keep the primary condition and the bootstrap script
working, so that every user can install a reasonably recent autotools
and bootstrap the project himself. In the days of Automake 1.4 and 1.5,
there were problems with compatibility between different versions of
Automake, but that has been solved several years ago.
Gnome projects can serve as an example of this.
For example, I'm the "autotools guy" for the gnumeric project, currently.
Sure, I sometimes make changes to the build system which other developers
rather do not want to understand. But there is much more cases when a
developper modifies configure.in or a Makefile.am in an obvious way, and
I don't have to keep my eye on such changes.
Actually, I'm not their only autotools expert, and they wouldn't have
any problems had I disappeared.
> So the maintainer mode feature can be added to disable automatic rules,
> and only the actual build maintaine enables maintainer mode.
As explained above, if a developper wants to add a C file, they have to
reconfigure with --enable-maintainer-mode.
The bootstrap scrips of projects in the Gnome CVS run ./configure always
with --enable-maintainer-mode.
This means that AM_MAINTAINER_MODE can help only to people using the
distributed tarballs. But hey, if you are going to build a project, you
shall be able to unpacka tarball without screwing the timestamps!
The conclusion is that AM_MAINTAINER_MODE shall rather be avoided.
Have a nice day,
Stepan