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

 
 

bug #55371: Add configure flag to specify makeinfo path

Submitted by:  Arun Isaac <arunisaac>
Submitted on:  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

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)

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>
Project Administrator
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>
Project Administrator
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>
Project Administrator
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>
Project Administrator
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)
  •  

    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.

     

     

     

    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.5