On Fri, Oct 16, 2009 at 1:43 PM, Doug Cutting <[email protected]> wrote:

> Matt Massie wrote:
>
>> People who want to modify and develop the C code, could use 'src/c' in the
>> tarball or use svn directly.  However, people who just want to simply
>> use/consumer the C implementation without any hassle would use the
>> avro-c-x.x.x.tar.gz package.  Package maintainers would also use this
>> pristine tarball as a basis for packaging as well.
>>
>
> Could avro-c-x.x.x.tar.gz be created by the following?
>
>  tar xzf avro-x.x.x.tar.gz src/c
>  cd src/c
>  tar czf ../../avro-c-x.x.x.tar.gz
>

> I don't see why it shouldn't be, and, if it can be, I don't see why we
> needthe nested tarball: we ship a single pristine tarball, and folks can
> re-package parts of it as needed.  What am I missing?
>

Autotools builds file templates (*.in) and /bin/sh scripts to create a
complete build environment for compiling C source.  It also checks to make
sure that all files and tests in the projects are accounted for.

It's bad practice to checkin the templates and /bin/sh scripts to svn that
autotools generates.  All that is currently checked into Avro svn is the '
configure.in' and 'Makefile.am' files needed by autotools to create the
build environment.  It makes sense to put them under version control since
they are created and managed by maintainers.

*** If we just tar'd up 'src/c' as you show above...

We would be requiring Avro C consumers to have all the autotools installed
(aclocal, autoconf, automake, libtool, etc) beyond gcc and make.

Users would have to run `autoreconf -f -i` to bootstrap the build
environment and create a 'configure' script.  In a sense, we force
users/consumers to be developers/packagers whether they like it or not.
They may find they need to upgrade their autotools to generate an Avro build
environment.  Moreover, we have no control over other people autotools
environments.  For bug reports, we would have to ask users about what
versions of the autotools they used to compile instead of focusing more
strictly on bugs in the source itself.

*** If we run 'make distcheck' in 'src/c' to create a pristine tarball...

We would be requiring Avro C consumers to have '/bin/sh', gcc and make
installed to build.

They don't need autotools installed on the machine to compile.  We're also
guaranteeing that the tarball package obeys the GNU packaging conventions
(like proper cleanup of files, unit tests defined and pass, correctfile
locations, etc).  Users only need to extract the tarball and `./configure;
make`.

We're also guaranteeing that all bugs reports have a common build
environment since we're packaging the build environment as well as the
source.

-Matt

Reply via email to