[libvirt] [PATCH] use gnulib via a submodule

Daniel P. Berrange berrange at redhat.com
Wed Jul 8 10:28:57 UTC 2009


On Tue, Jul 07, 2009 at 07:02:08PM +0200, Jim Meyering wrote:
> diff --git a/configure.in b/configure.in
> index 29c8867..1170958 100644
> --- a/configure.in
> +++ b/configure.in
> @@ -5,7 +5,8 @@ AC_CONFIG_SRCDIR([src/libvirt.c])
>  AC_CONFIG_AUX_DIR([build-aux])
>  AM_CONFIG_HEADER([config.h])
>  dnl Make automake keep quiet about wildcards & other GNUmake-isms
> -AM_INIT_AUTOMAKE([-Wno-portability])
> +AM_INIT_AUTOMAKE([1.11 color-tests parallel-tests -Wno-portability])
> +AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
>  AC_CANONICAL_HOST


We can't include this one, since we need to be able to work with
automake on RHEL-5.


> >From 856172836da7f639323702aff67489e9a74d47d5 Mon Sep 17 00:00:00 2001
> From: Jim Meyering <meyering at redhat.com>
> Date: Tue, 7 Jul 2009 11:22:52 +0200
> Subject: [PATCH 5/7] make .gnulib a submodule
> 
> This makes it so we record (via a git submodule)
> a snapshot of whatever version of gnulib we're using,
> and none of gnulib sources are in the libvirt repository.
> The result is that we have as much reproducibility as when
> we version-controlled imported copies of the gnulib sources,
> but without the hassle of the manual process we used when
> syncing with upstream.
> 
> Note that when you clone libvirt, you get only the libvirt
> repository, but when you first run ./bootstrap, it clones
> gnulib (at the SHA1 recorded via the submodule), creating
> the .gnulib/ hierarchy.  Then, the bootstrap script runs
> gnulib-tool to populate gnulib/ with the files that make
> up the selected modules.


I think perhaps we should wire this into the autogen.sh
script. People are used to just cloning a repository and
running autogen.sh to get things setup, so it would cause
unneccessary confusion to also require them to run bootstrap
seprately. 


> 
> * bootstrap (modules): Add gnumakefile and maintainer-makefile.
> * GNUmakefile: Remove file, now provided by gnulib.
> * Makefile.maint: Remove.  Replaced by maint.mk from gnulib.
> .gitignore: Add GNUmakefile and maint.mk.
> * cfg.mk (prev_version_file): Disable this feature.
> Setting this to /dev/null avoids an otherwise harmless diagnostic.

We have a few custom non-gnulib rules in Makefile.maint, for
checking use of non-reentrant safe functions, and banning use
of asprintf() in favour of virAsprintf(). Is there a good place
to hook those into the stock gnulib Makefile.maint. Perhaps we
could just abuse Makefile.cfg for this since its included anyway?

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list