Hi Eric,
On 05/10/2011 01:16 AM, Eric Blake wrote:
On 05/09/2011 02:25 AM, Prerna Saxena wrote:
> 'bootstrap' script clones the .gnulib submodule from upstream git
> sources only (provided in .gitmodules), irrespective of whether
> $GNULIB_SRCDIR is provided.
Which is what we want. A local gnulib checkout is not the same as
upstream gnulib, and we want to ensure that no one commits to upstream
libvirt.git unless the .gnulib submodule also points to upstream
gnulib.git. Otherwise, we risk the scenario that something that works
for you with your local gnulib commit won't work for anyone else because
your gnulib commit is not public.
Thank you for the detailed explanation.
The need for this patch arose because I was trying to build libvirt in a
restrictive environment without outbound network access, and wanted to
force libvirt to use the gnulib sources provided locally.
However,libvirt would necessarily clone from the reference provided in
$GNULIB_SRCDIR/.git/config, which happened to be
git://git.sv.gnu.org/gnulib.git
This patch was meant to be a workaround to prevent autogen.sh from
failing at clone of gnulib.
Your note has been pretty helpful in suggesting the --no-git workaround.
I was not aware of this option. I am trying to build it and see if it
works for me.
> This patch allows gnulib git sources provided by $GNULIB_SRCDIR
to be
> used for adding the gnulib submodule.
NAK.
GNULIB_SRCDIR is used to prime the pump - if you have a local checkout,
then you don't need quite as much disk space or network usage to create
your clone (your clone in .gnulib will implicitly point to your prior
gnulib checkout as its reference). But you _still_ need .gnulib to be
independent of your local reference repository, since it is possible
that libvirt intentionally lags upstream gnulib, or that libvirt wants
to use a newer upstream gnulib than what you have in your local
reference repository at the moment.
Furthermore, you can use:
./bootstrap --no-git --gnulib-srcdir=/path/to/local
as a means of checking out the exact version of gnulib that you desire
without referencing upstream gnulib.git.
Finally, this patch would have to go to upstream gnulib.git, since
libvirt's copy of this file is a direct clone of upstream gnulib's
bootstrap. Unless you can get this accepted upstream, then libvirt
should not behave differently than any other project that uses gnulib's
bootstrap script.
Ah yes! This is an additional complexity which I had hitherto not
factored in :)
--
Prerna Saxena
Linux Technology Centre,
IBM Systems and Technology Lab,
Bangalore, India