octave-maintainers
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]