bugGNU Astronomy Utilities - Bugs: bug #47821, bootstrap crashes with no...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #47821: bootstrap crashes with no --gnulib-srcdir

Submitter:  Mohammad Akhlaghi <makhlaghi>
Submitted:  Mon 02 May 2016 04:36:11 AM UTC
   
 
Category:  Development Severity:  4 - Important
Item Group:  Crash Status:  Fixed
Privacy:  Public Assigned to:  makhlaghi
Open/Closed:  Closed

Mon 02 May 2016 02:39:23 PM UTC, comment #3: 

The "imported/" name for the outputs of the bootstrapping process was ambiguous: What is imported? From where? Is it hand written and part of the utility or library source codes (like "include/")? What is the difference with "include/" (for a non-programmer)?

So the name of the directory was changed to "bootstrapped/" to be more clear and directly tell anyone who is looking at the contents of the top directory that it has something to do with "bootstrap" and "bootstrap.conf".

This change has been pushed to the main repo's master branch.

Mohammad Akhlaghi <makhlaghi>
Group administrator
Mon 02 May 2016 08:35:15 AM UTC, comment #2: 

The bug was fixed and is pushed to master. It was done using a second directory called "imported" (as suggested in previous post). This directory includes all directories that we have imported into Gnuastro during the bootstrapping, not just those from Gnulib. So the m4/ directory (which until now was a completely imported directory and in the top gnuastro diretory and also include Autoconf archives) is also moved within `imported'. The book was also updated to explain how it is possible to run bootstrap without any options.

A `imported/README' file was added to the repository to explain this directory (since it isn't a standard name). `imported/README' also allows this directory to be included in the version control history, therefore we don't need the mkdir line of the first post below. This also fixes this bug as much as it releated to Gnuastro for now. Ideally, it might have been better if ./bootstrap could also support a multi-directory build_aux, but that is their choice and I understand the difficulty in implementing the `-p' option to non-GNU `mkdir's.

Mohammad Akhlaghi <makhlaghi>
Group administrator
Mon 02 May 2016 04:52:28 AM UTC, comment #1: 

Another solution can be to use a different top directory for the Gnulib imported files necessary for Gnuastro. For example to "from-gnulib", so the three relevant variables in bootstrap.conf become:


source_base="from-gnulib/lib"
tests_base="from-gnulib/tests"
build_aux="from-gnulib/build-aux"


Mohammad Akhlaghi <makhlaghi>
Group administrator
Mon 02 May 2016 04:36:11 AM UTC, original submission:  

By default (with the default boostrap.conf file), bootstrap will run with no options and clone the full Gnulib repository (all its current files and its version controlled history) into the gnuastro/gnulib directory.

However, in bootstrap.conf, we have specified the build_aux variable (directory keeping the build_aux files) to be: gnulib/build_aux (similar to the source_base and tests_base) directories (which are all in gnuastro/gnulib/). This is done to keep things in the top directory clean of redundant directories (directories that have not been made by us). If build_aux is in the top directory, it is not immediately clear that it is imported from Gnulib, which I consider to be a problem.

The bootstrap script makes the build_aux directory very early in the process using `mkdir $build_aux'. By default it is not a subdirectory, so there is no problem, in the case above, (where build_aux=/gnulib/build_aux), mkdir will complain (since it needs the GNU-specific `-p' option). To avoid this problem, in bootstrap.conf, we have added a short line:


if [ ! -d gnulib ]; then mkdir gnulib; fi


This conflicts with bootstrap's checking for Gnulib's existance in the top directory! Since it does not attempt to clone Gnulib any more and directly goes onto running gnulib-tool (which is not found). So it complains with:


./bootstrap: line 690: gnulib/gnulib-tool: No such file or directory


One solution might be to get in touch with Gnulib and ask them to use a different check (instead of the directory name) for Gnulib, for example to look inside it and see if a `.git' repository exists, or look for some standard Gnulib file (maybe README, or NEWS for example). In this way the problem will be solved.

However, in general, I feel that having two repositories within each other (Gnulib with Gnuastro, which happens when you run ./bootstrap with no option). Is not the ideal clean structure a developer would like to have. Gnulib is a separte package/library and Gnuastro only needs to have the parts of it that it needs. But it would be great if this issue is fixed so those who (for any reason) want this structure, can have it.

Mohammad Akhlaghi <makhlaghi>
Group administrator

 

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

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 makhlaghi (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-05-02 makhlaghi StatusConfirmed Fixed
        Assigned toNone makhlaghi
        Open/ClosedOpen Closed

    Back to the top

    Powered by Savane 3.13-4b48.
    Corresponding source code