Re: What is minimum set of Automake work files needed for distribution on github?

2015-09-28 Thread Bob Friesenhahn

On Mon, 28 Sep 2015, John Calcote wrote:


Thus, the usual technique is to commit the Autotools source files required
by your project, but to NOT commit a configure script. Anyone wanting to
clone your repository is expected to be "developer enough" to know how to
run "autoreconf -i" to create the configure script.


The main problem with this is that not all users wanting to build from 
sources in the repository have the correct autotools versions.  Even 
if they do have the correct autotools versions, the sources may have 
been hacked by an OS Autotools package maintainer to work differently.


Due to these problems, the configure script for my package provides 
the --enable-maintainer-mode option, and I use a method of updating 
the package version which does not require editing configure.ac 
(avoiding re-generating configure).  Whenever someone commits to the 
repository, I rebuild all of the additional generated files enabled to 
be updated via --enable-maintainer-mode.


Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer,http://www.GraphicsMagick.org/



What is minimum set of Automake work files needed for distribution on github?

2015-09-28 Thread Robert Parker
I need to meet the requirements of 2 sets  of users, the ordinary user who
is only interested `./configure; make; make install` and the power users
who want to start with `autoreconf`.

So far google search on the topic has only increased my confusion.

-- 
The Bundys, Cliven, Ted and Al. Great guys to look up to.


Re: What is minimum set of Automake work files needed for distribution on github?

2015-09-28 Thread Eric Blake
On 09/28/2015 04:20 AM, Robert Parker wrote:
> I need to meet the requirements of 2 sets  of users, the ordinary user who
> is only interested `./configure; make; make install` and the power users
> who want to start with `autoreconf`.
> 
> So far google search on the topic has only increased my confusion.

The most common solution: don't store anything but configure.ac and
Makefile.am in git.

The power user checks out git, and runs 'autoreconf' to bootstrap the
project, then runs 'make dist' to create a self-contained tarball.

The ordinary user takes a tarball, unpacks it, and runs './configure;
make; make install' without needing any autotools installed.

Ordinary users therefore do NOT use direct git checkouts.  Working with
git is reserved for power users.

-- 
Eric Blake   eblake redhat com+1-919-301-3266
Libvirt virtualization library http://libvirt.org



signature.asc
Description: OpenPGP digital signature


Re: What is minimum set of Automake work files needed for distribution on github?

2015-09-28 Thread Robert Parker
Thanks, that does make sense.

On Mon, Sep 28, 2015 at 10:22 PM, Eric Blake  wrote:

> On 09/28/2015 04:20 AM, Robert Parker wrote:
> > I need to meet the requirements of 2 sets  of users, the ordinary user
> who
> > is only interested `./configure; make; make install` and the power users
> > who want to start with `autoreconf`.
> >
> > So far google search on the topic has only increased my confusion.
>
> The most common solution: don't store anything but configure.ac and
> Makefile.am in git.
>
> The power user checks out git, and runs 'autoreconf' to bootstrap the
> project, then runs 'make dist' to create a self-contained tarball.
>
> The ordinary user takes a tarball, unpacks it, and runs './configure;
> make; make install' without needing any autotools installed.
>
> Ordinary users therefore do NOT use direct git checkouts.  Working with
> git is reserved for power users.
>
> --
> Eric Blake   eblake redhat com+1-919-301-3266
> Libvirt virtualization library http://libvirt.org
>
>


-- 
The Bundys, Cliven, Ted and Al. Great guys to look up to.


Re: What is minimum set of Automake work files needed for distribution on github?

2015-09-28 Thread John Calcote
Hi Robert,

The Autotools were created to meet a specific need - that of the open
source distribution model supported by many open source projects where,
occasionally - or perhaps nightly, the project maintainers would release a
source tarball containing a configure script and Makefile.in files. As a
regular user, you'd want to just download a tarball, extract, and run
./configure && make.

However, as a potential contributor, you'd want the source repository so
you could create patches against the tip of a particular branch. So you'd
clone the source repository and use the Autotools to create a configure
script for yourself in your repository work area.

Thus, the usual technique is to commit the Autotools source files required
by your project, but to NOT commit a configure script. Anyone wanting to
clone your repository is expected to be "developer enough" to know how to
run "autoreconf -i" to create the configure script.

While you CAN commit a configure script, it generally causes more problems
than it solves, as you find yourself committing an updated configure script
for lots of little project changes. Regardless, many projects do this -
especially lately on projects hosted by github, mainly (I believe) because
github has defined a new trend in the open source world where "regular
users" tend to get the source from the repository rather than from a
tarball, more often than not these days.

Here's a resource you might find helpful:
http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool


John


On Mon, Sep 28, 2015 at 4:20 AM, Robert Parker  wrote:

> I need to meet the requirements of 2 sets  of users, the ordinary user who
> is only interested `./configure; make; make install` and the power users
> who want to start with `autoreconf`.
>
> So far google search on the topic has only increased my confusion.
>
> --
> The Bundys, Cliven, Ted and Al. Great guys to look up to.
>


Re: What is minimum set of Automake work files needed for distribution on github?

2015-09-28 Thread Peter Johansson



On 09/28/2015 08:20 PM, Robert Parker wrote:

I need to meet the requirements of 2 sets  of users, the ordinary user who
is only interested `./configure; make; make install` and the power users
who want to start with `autoreconf`.

So far google search on the topic has only increased my confusion.

The minimum set is 'configure.ac' and 'Makefile.am', but we typically 
have the m4 files under version control as well to avoid the requirement 
that the right version should be available in a location where aclocal 
can find it. Then we usually add some text files also, such as 'README' 
and definitely 'COPYING'.


hth,
Peter