bugGNU Octave - Bugs: bug #57044, gitlab mirror: "bootstrap...


bug #57044: gitlab mirror: "bootstrap --no-git requires --gnulib-srcdir"

Submitted by:  Colin Macdonald <cbm>
Submitted on:  Fri 11 Oct 2019 10:12:10 PM UTC  
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Other
Status:  None Assigned to:  None
Originator Name:  Open/Closed:  Open
Release:  dev Operating System:  Any

Add a New Comment (Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


( Jump to the original submission)

Sat 12 Oct 2019 12:46:04 AM UTC, comment #9: 

> always pull the latest gnulib from git on savannah into a subdirectory, when the user runs ./bootstrap

After thinking about this for a minute, I do think it's important to have some way of tracking which commit from gnulib was used to build a particular revision of Octave, particularly stable releases, so I was wrong in that respect. But in my own development, I do build Octave against gnulib's master branch.

Personally, I think all of the pain points of having gnulib be a hg subrepo are because of the way subrepos are implemented in hg. If they were instead tracked but enabled later at the user's option, as in git modules, I think the problems would dissolve.

Mike Miller <mtmiller>
Project Administrator
Sat 12 Oct 2019 12:26:29 AM UTC, comment #8: 

jwe - I know Jordi's talked about the pros and cons of hg subrepos before. Do you have a specific new layout you want to use, or are you musing generally about the problems with the current layout?

Personally I would probably prefer that we just not have our own gnulib mirror at all anymore, and use bootstrap the way it was intended, to always pull the latest gnulib from git on savannah into a subdirectory, when the user runs ./bootstrap.

I know another option was to have a new top-level project with no files, that tracks octave and gnulib as subrepos. I'm not really a fan of that idea. I think it would be confusing to need to pull from a new project name, and have a layout that differs from every other GNU / Gnulib / autotools style project out there.

Mike Miller <mtmiller>
Project Administrator
Sat 12 Oct 2019 12:21:30 AM UTC, comment #7: 

Colin - I think it might be reasonable to put a conditional in there. What about

if test -d .hg; then

This should have zero effect on everyone currently working on Octave with hg.

This will affect anyone that was downloading a snapshot of the Octave sources and was expecting ./bootstrap to look for an existing gnulib in the current directory, with this change it would instead use git to pull the latest gnulib from savannah. I expect the number of people working with Octave this way to be close to zero.

Mike Miller <mtmiller>
Project Administrator
Fri 11 Oct 2019 11:52:48 PM UTC, comment #6: 

We might also reconsider our decision to include gnulib as an hg subrepo contained in a subdirectory of the Octave source tree.

John W. Eaton <jwe>
Project Administrator
Fri 11 Oct 2019 10:59:50 PM UTC, comment #5: 

From Octave src root dir, either "git status" or "hg status" will give an error.  Can we modify bootstrap.conf, something like this pseudocode:

if exit_value_of(`hg status`) == 0:

B/c without those two lines, git went and grabbed gnulib by itself...

Colin Macdonald <cbm>
Fri 11 Oct 2019 10:30:55 PM UTC, comment #4: 

Heads up to other maintainers and developers, yes I am hosting git mirrors of the Octave source tree in an experiment to see if doing so brings in contributions or raises visibility. If you don't care about git, you can ignore their existence and bugs like this one :)

Mike Miller <mtmiller>
Project Administrator
Fri 11 Oct 2019 10:22:05 PM UTC, comment #3: 

Sorry, that should be '--gnulib-srcdir=../../gnulib'.

And I think if you simply drop a copy of gnulib or a symlink into the Octave source directory itself, it will just find it where it's expected. No changes needed either way.

Mike Miller <mtmiller>
Project Administrator
Fri 11 Oct 2019 10:17:49 PM UTC, comment #2: 

The way I build is to use an external gnulib git clone. This could be either in the octave source tree, or in another directory. Here is my exact process.

cd ~/src
git clone https://git.savannah.gnu.org/git/gnulib.git
cd ~/src/octave/default
./bootstrap --with-gnulib=../../gnulib

Gnulib is already a hg subrepository, I'm not sure there is a nice way to make it also a git subrepository without things getting very confusing (both vcs would need to track subrepository state). I don't advocate trying to do this in the Octave official repository.

I may end up making another top-level repository that contains octave and gnulib as subrepos, and configures one to talk to the other. But we can discuss that elsewhere.

Mike Miller <mtmiller>
Project Administrator
Fri 11 Oct 2019 10:15:43 PM UTC, comment #1: 

diff --git a/bootstrap.conf b/bootstrap.conf
index 6409c133c0..892c5aaf5d 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -177,8 +177,8 @@ source_base="libgnu"

# Don't use git to update gnulib sources. We keep gnulib under a
# Mercurial subrepository instead.

# Don't check for translations since we don't have any in Octave yet.
# This avoids the need for sha1sum or compatible utility in bootstrap.

This "fixes" it.  So how can we do that selectively?

Colin Macdonald <cbm>
Fri 11 Oct 2019 10:12:10 PM UTC, original submission:  

This bug is only relevant to the gitlab/github mirrors that mtmiller has setup.

# git clone https://gitlab.com/mtmiller/octave.git
# cd octave
# ./bootstrap
./bootstrap: Error: --no-git requires --gnulib-srcdir

Is this a problem we can solve with git submodules?  Or some tweaking to `bootstrap`.  It would be nice if it worked OOTB.

Colin Macdonald <cbm>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by cbm (Submitted the item)
  • -email is unavailable- added by cbm

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.




    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-10-11 cbm Carbon-Copy- => Added mtmiller

    Back to the top

    Powered by Savane 3.5