[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gnulib is no longer an hg subrepo
From: |
Markus Mützel |
Subject: |
Re: gnulib is no longer an hg subrepo |
Date: |
Sun, 26 Jan 2020 20:23:30 +0100 |
Am 26. Januar 2020 um 19:52 Uhr schrieb "Markus Mützel":
> > To make updating gnulib easier for us, I think we will need to come up
> > with some solution in the bootstrap script so that it will automatically
> > fetch new changes for gnulib. Otherwise, we will have to manually
> > update the gnulib sources when we change GNULIB_REVISION in
> > bootstrap.conf. This will require some coordination with the gnulib
> > folks. I looked at it but couldn't decide the right thing to do. I
> > might be wrong, but it looks like the update will already happen if
> > gnulib is a git subrepo. Otherwise, fetching new changes doesn't
> > happen. Should that always happen, even if the GNULIB_SRCDIR is set?
> > Should a failed fetch be fatal by default? Maybe you are not on the
> > network or don't have permission to write to a shared gnulib source
> > tree. If it is fatal by default, then there should probably be an
> > option to allow skipping that step. Too many twists and turns. I gave
> > up. Would someone like to take up this cause and try to make bootstrap
> > do the right thing for us?
>
> Would this change help?
>
> # HG changeset patch
> # User Markus Mützel <address@hidden>
> # Date 1580064128 -3600
> # Sun Jan 26 19:42:08 2020 +0100
> # Node ID b08a376fb1c4cd1af470dcce467a7276813da234
> # Parent e6482c932d4bc097050f5fb2e4e5ffd98a5581df
> bootstrap: Pull from remote git if $GNULIB_REVISION doesn't exist in local
> git.
>
> diff -r e6482c932d4b -r b08a376fb1c4 bootstrap
> --- a/bootstrap Sun Jan 26 17:00:05 2020 +0100
> +++ b/bootstrap Sun Jan 26 19:42:08 2020 +0100
> @@ -670,6 +670,9 @@
> || cleanup_gnulib
>
> trap - 1 2 13 15
> +
> + elif ! git --git-dir="$gnulib_path"/.git cat-file commit
> "$GNULIB_REVISION"; then
> + git --git-dir="$gnulib_path"/.git pull
> fi
> GNULIB_SRCDIR=$gnulib_path
> ;;
>
>
>
> This only executes if the package is not in a GIT repository (which is the
> case for Octave) and the "gnulib" sub-directory already exists.
> It assumes that $gnulib_path (i.e. the "gnulib" sub-directory) is a GIT
> repository and pulls from remote if the specific commit cannot be found in
> the local repository.
> This only happens if GNULIB_SRCDIR is not previously set.
>
A slight modification to skip the test if GNULIB_REVISION is set empty:
diff -r e6482c932d4b bootstrap
--- a/bootstrap Sun Jan 26 17:00:05 2020 +0100
+++ b/bootstrap Sun Jan 26 20:18:45 2020 +0100
@@ -670,6 +670,11 @@
|| cleanup_gnulib
trap - 1 2 13 15
+
+ elif test -n "$GNULIB_REVISION" \
+ && ! git --git-dir="$gnulib_path"/.git cat-file \
+ commit "$GNULIB_REVISION"; then
+ git --git-dir="$gnulib_path"/.git pull
fi
GNULIB_SRCDIR=$gnulib_path
;;
That would allow to skip the update by calling:
GNULIB_REVISION= ./bootstrap
Markus