bugGNU Octave - Bugs: bug #55371, Add configure flag to specify...

 
 

bug #55371: Add configure flag to specify makeinfo path

Submitter:  Arun Isaac <arunisaac>
Submitted:  Thu 03 Jan 2019 03:05:37 PM UTC
   
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Feature Request
Status:  Wont Fix Assigned to:  None
Originator Name:  Arun Isaac Open/Closed:  * Closed
Release:  * 4.4.1 Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Mon 07 Jan 2019 06:57:18 AM UTC, comment #7: 

That's unfortunate. For the guix octave package, I'll just patch libinterp/corefcn/help.h. You may close this bug report. Thank you.

Arun Isaac <arunisaac>
Fri 04 Jan 2019 06:03:50 PM UTC, comment #6: 

In general, I think the best approach for shelling out to programs is to use PATH. The next best is to fall back to an environment variable. If Octave used the value of a MAKEINFO environment variable at run time would that help you? And the third best approach is an application-specific configuration option, in this case ~/.octaverc or /path/to/share/octave/site/m/startup/octaverc. I really do not agree with the principle of propagating full paths to programs found at build time from the build system to the run system.

Mike Miller <mtmiller>
Group Member
Fri 04 Jan 2019 05:58:04 PM UTC, comment #5: 

I personally would rather not add a configuration option just to fill in the default value for makeinfo_program, that's exactly why it's a configuration variable, so the distribution or the user can set their own preferred default value.

And I believe adding automatic configuration detection of the full path to executables at build time to be encoded into the program to use at run time is in bad form. For example, I recently removed the SED variable from liboctinterp, because Octave had been encoding the full path to the sed program for years.

Let's say I build Octave with MAKEINFO set to /usr/local/texinfo-6.5/bin/makeinfo and that does get stored as the default value of makeinfo_program that Octave uses at run time. Now what happens when I distribute that executable to someone else and they don't have /usr/local/texinfo-6.5 on their system? I think this is not the right direction to address this.

Mike Miller <mtmiller>
Group Member
Fri 04 Jan 2019 10:24:13 AM UTC, comment #4: 

A distribution configuration file is possible, but it would be simpler to have a configure flag. Or better still, if the configure system could automatically find makeinfo and substitute the path as the default value of makeinfo_program. Is this a reasonable request?

Currently, the Guix octave package does patch libinterp/corefcn/help.h. But, this approach is quite fragile and can break in future releases. Hence, the desire for a better approach.

Arun Isaac <arunisaac>
Fri 04 Jan 2019 09:10:58 AM UTC, comment #3: 

Correct, the MAKEINFO program used by the build system is only used in the build and install process, it is not used by Octave at run time.

There are several utility programs that Octave shells out to at run time that can only be configured using Octave. Octave uses 'info', 'makeinfo', 'less', and 'gnuplot' by name by default, assuming they are available on PATH. Each of these can be configured using the 'info_program', 'makeinfo_program', 'PAGER', and 'gnuplot_binary' functions.

If I had to set a complete path to 'makeinfo' for the Debian package, I would add a line to /usr/share/octave/4.4.1/m/startup/octaverc, something like


## Set the default path to makeinfo on Debian systems
makeinfo_program ("/path/to/somewhere/bin/makeinfo");


The only option at the moment if you don't think that providing a distribution configuration file is suitable is patching libinterp/corefcn/help.h to set a complete path to the makeinfo program.

Mike Miller <mtmiller>
Group Member
Fri 04 Jan 2019 08:15:06 AM UTC, comment #2: 

If I understand correctly, ./configure MAKEINFO=/path/to/makeinfo does not set the default value of makeinfo_program. So, it does not serve my purpose.

I am actually working on the GuixSD octave package. https://issues.guix.info/issue/33963 Currently, the help pages don't work out of the box because makeinfo is not found. I need some build time flag to set the default makeinfo_program. I cannot use the run time solution you suggested because that would be harder to package.

Arun Isaac <arunisaac>
Thu 03 Jan 2019 07:20:12 PM UTC, comment #1: 

You can already build Octave with MAKEINFO=/path/to/makeinfo. For example


export MAKEINFO=/path/to/makeinfo
./configure


or


./configure MAKEINFO=/path/to/makeinfo


to specify the makeinfo program to use at build time. Does this help address your issue with the makeinfo program not being on PATH?

Further, at run time after Octave is built and installed, you can use the 'makeinfo_program' function to set which makeinfo program to use when formatting help strings. For example


>> makeinfo_program ('/path/to/makeinfo');
>> help sqrt


This can be done in your ~/.octaverc or the global octaverc to make the change effective every time Octave runs.

Mike Miller <mtmiller>
Group Member
Thu 03 Jan 2019 03:05:37 PM UTC, original submission:  

It would be useful to have a configure flag --with-makeinfo=/path/to/makeinfo to specify the path to makeinfo during build time. It would be better still if configure can automatically find the correct path to makeinfo and set that as the default for makeinfo_program.

I use GNU GuixSD, and I need this feature because in Guix, makeinfo is not present in standard paths like /usr/bin/makeinfo and cannot be assumed to be found using the PATH environment variable.

Many thanks!

Arun Isaac <arunisaac>

 

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

Attach Files:
   
   
Comment:
   

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 arunisaac (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.

    Only group members can vote.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2019-01-24 mtmiller StatusWorks For Me Wont Fix
        Open/ClosedOpen Closed
    2019-01-03 mtmiller StatusNone Works For Me

    Back to the top

    Powered by Savane 3.13-cf05.
    Corresponding source code