[libvirt] [PATCH] use gnulib via a submodule

Jim Meyering jim at meyering.net
Wed Jul 8 10:31:11 UTC 2009


Daniel P. Berrange wrote:

> 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.

Agreed.

>> >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.

Fine.  Will adapt.

>> * 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?

One of those patches moved them into cfg.mk,
which is the new name for Makefile.cfg.

[ Since GNUmakefile is now provided by gnulib,
  and maint.mk/cfg.mk are the names it uses ]




More information about the libvir-list mailing list