bugGNU Octave - Bugs: bug #42352, pkg install fails if...

 
 

bug #42352: pkg install fails if --disable-docs is given at build time

Submitted by:  Patric Schmitz <berzerka>
Submitted on:  Wed 14 May 2014 10:01:15 AM UTC  
 
Category: Octave FunctionSeverity: 1 - Wish
Priority: 3 - LowItem Group: Feature Request
Status: ConfirmedAssigned to: None
Originator Name: Patric SchmitzOpen/Closed: Open
Release: devOperating 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 Jump to the original submission)

Thu 27 Oct 2016 09:46:19 PM UTC, comment #15:

Yeah I think the right fix is to install macros.texi with --disable-docs (I think that was discussed before), since --disable-docs is supposed to be limited to "I don't have TeX installed".

The reason for the failure to install packages is not limited to each package, it is because pkg calls doc_cache_create when any package is installed. If that package has texinfo doc strings, then Octave's doc_cache_create function requires macros.texi to function. If that functions fails, pkg treats it as a fatal error and the package is not installed.

Mike Miller <mtmiller>
Project Administrator
Thu 27 Oct 2016 09:41:31 PM UTC, comment #14:

It is a valid option, but one that is normally only used if there is some reason that documentation can't be built.

If OF packages can't be built if Octave is is built with --disable-docs, then maybe the bug is really in the Octave Forge packages. Shouldn't it be possible to build them if Octave is lacking documentation?

And yes, it should be possible to include macros.texi even if --disable-docs is used. Would someone like to prepare a patch? It should be fairly easy.

John W. Eaton <jwe>
Project Administrator
Thu 27 Oct 2016 09:05:39 PM UTC, comment #13:

As "--enable-docs=no" is a valid configure option, but its current side effect of not being able to build & install OF packages is surely unintended, I wonder why this is labeled as "Feature request" instead of e.g., "build failure" or "installation feature" or "incorrect result".

Philip Nienhuis <philipnienhuis>
Project Member
Thu 27 Oct 2016 02:45:43 PM UTC, comment #12:

Also found this bug, used workaround in #10 in 4.0.3

Anonymous
Sun 26 Jun 2016 09:04:20 PM UTC, comment #11:

Found this bug report as I got bitten by the same issue.

Q:
Isn't it possible to unconditionally include macros.texi in builds regardless of --disable-docs? AFAICS it is required by the help system and it isn't quite in the way.

Philip Nienhuis <philipnienhuis>
Project Member
Sun 28 Feb 2016 08:44:13 PM UTC, comment #10:

A trivial workaround for those affected by this bug is either to run octave with the --texi-macros-file pointing to any existing file, e.g.

or to set the path to the file within Octave

or to create an empty file at the built-in path that Octave is expecting to find as suggested in the previous comment.

Mike Miller <mtmiller>
Project Administrator
Tue 19 Jan 2016 02:44:34 PM UTC, comment #9:

I've done a bit more experimentation, and I found that creating an empty "macros.texi" file at the path specified in the error causes "pkg install" to finish.

In addition, the reason "odeset" was failing was not because "macros.texi" wasn't available but because that function is simply not available in the version of Octave I am running. I had noticed that "odeset" was added to core Octave, but not yet in the "stable" branch.

Vote 539 <vote539>
Tue 19 Jan 2016 01:04:12 PM UTC, comment #8:

I also wanted to point out that in addition to "pkg install" failing, it appears that the "odeset" command is failing as well.

octave:1> options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);
error: unable to open /usr/local/share/octave/4.0.1-rc1/etc/macros.texi for reading
error: called from
_makeinfo_ at line 103 column 5
_unimplemented_ at line 520 column 9

I am running a version of Octave built directly from VCS sources on the "stable" branch (r 21090) and configured with the following options: --disable-docs --disable-readline --disable-gui.

Are there any workarounds for building Octave from VCS without building the TeX docs but still having "pkg install" and "odeset" work?

Vote 539 <vote539>
Mon 26 Oct 2015 06:27:38 PM UTC, comment #7:

A doc useflag does not fix this problem for me, and unmasking and upgrading from 3.8.2 to 4.0.0 does not fix.

I'm using Gentoo, too; they have a possibly related bug https://bugs.gentoo.org/show_bug.cgi?id=529628
and forum post
https://forums.gentoo.org/viewtopic-t-997832-highlight-octave.html

(I think Max Miller's "disable-docs" is a typo for "enable-docs"; having the flag disabled does not work for me either).

Added the line

>=sci-mathematics/octave-4.0.0 doc

to /etc/portage/package.use
(see https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/USE#Declaring_USE_flags_for_individual_packages)
Then ran

> emerge --update --newuse --deep --with-bdeps=y @world

at the command-line prompt.

Check it worked:

> eix --installed-with-use doc

[I] sci-mathematics/octave
Available versions: 3.6.4(0/3.6.4) (~)3.6.4-r1(0/3.6.4) (~)3.8.1(0/3.8.1) (~)3.8.1-r1(0/3.8.1) 3.8.2(0/3.8.2) (~)4.0.0(0/4.0.0) {X curl doc fftw +glpk gnuplot gui hdf5 +imagemagick java jit opengl postscript +qhull +qrupdate readline +sparse static-libs zlib ELIBC="FreeBSD"}
Installed versions: 4.0.0(05:48:02 PM 10/26/2015)(X curl doc glpk imagemagick java opengl qhull qrupdate readline sparse zlib -fftw -gnuplot -gui -hdf5 -jit -postscript -static-libs ELIBC="-FreeBSD")
Homepage: http://www.octave.org/
Description: High-level interactive language for numerical computations

So the flag is there, but the files are not...

Starting the program:

> octave

warning: docstring file '/usr/share/octave/4.0.0/etc/built-in-docstrings' not found
GNU Octave, version 4.0.0
Copyright (C) 2015 John W. Eaton and others....

Trying to install a package:
octave:2> pkg install -forge general
unable to open /usr/share/octave/4.0.0/etc/macros.texi for reading
error: called from '__makeinfo__' in file /usr/share/octave/4.0.0/m/help/__makeinfo__.m near line 103, column 5

At the Octave prompt, help:
help pkg
warning: load_path: /home/hazel/octave/general-2.0.0: No such file or directory
error: unable to open /usr/share/octave/4.0.0/etc/macros.texi for reading
error: called from
_makeinfo_ at line 103 column 5
help at line 102 column 22

Back in the system shell,

> ls /usr/share/octave/4.0.0/etc/macros.texi

ls: cannot access /usr/share/octave/4.0.0/etc/macros.texi: No such file or directory

> octave --force-gui

also brings up the command-line interface, not sure that this is related.

Is this something obvious I'm missing? I can't see a way to make it work. Thanks for any help.

Anonymous
Sun 25 Oct 2015 04:08:08 PM UTC, comment #6:

This is a bug, not a feature request; it breaks important existing functionalities (installing Octave packages and reading Octave documentation).

I also agree with Bob McKay that the severity ("wish") seems a bit low.

Could someone please post an explicit workaround? Running

EXTRA_ECONF="--enable-docs" emerge octave

did not work for me.

Finally, on May 29, 2015, Octave 4.0.0 was released. It's not stable in Gentoo yet, though.

Anonymous
Tue 21 Oct 2014 11:07:13 AM UTC, comment #5:

Confirmed the reported error in "pkg install" and the result that no package is installed when Octave is built without --disable-docs.

Anonymous
Sat 26 Jul 2014 06:37:16 PM UTC, comment #4:

"IOW, --disable-docs doesn't save you any build steps, it just prevents files that are already built from being installed."

Please forgive me if I am misunderstanding. I'm not really clear whether this is a source code or a packaging issue. But it seems to be not really about the presence or absence of the doc files, but the presence or absence of a compatible texinfo in the installing system. It's causing problems in a number of downstream systems (just google "texinfo octave"); specifically, it is currently breaking octave in macports.

The problem seems to be that if texinfo is absent or an incompatible version, the install defaults to --disable-docs, (which then fails as Patric describes). If this is the intended behaviour, it needs to work (i.e. if --disable-docs is to be an option, then it should succeed in building octave without docs, and specifically without texinfo calls - and in particular, _makeinfo_.m shouldn't be called in the build). This looks to be non-trivial to fix. But if it's not the intended behaviour - if --disable-docs builds are intended to fail with an error message - then octave has a hard dependency on texinfo, rather than the soft one that is currently described.

Because it's breaking a number of downstream builds, perhaps it needs to be characterised as an installation problem rather than a feature request, with severity rather higher than 'wish'.

Bob McKay <urilabob>
Fri 16 May 2014 11:48:36 PM UTC, comment #3:

Confirmed the reported error in "pkg install" and the result that no package is installed when Octave is built without --disable-docs.

Mike Miller <mtmiller>
Project Administrator
Wed 14 May 2014 04:03:21 PM UTC, comment #2:

It should primarily be possible to install a package although --disable-docs was passed to configure. Instead of failing, you could give the user a notification like "Will not build the package's texinfo pages since octave was build with documentation disabled." or something.

Patric Schmitz <berzerka>
Wed 14 May 2014 01:04:13 PM UTC, comment #1:

Thanks for your bug report. I have not tested to confirm, but this seems likely.

Note that if you are building Octave from an official source release, you do not need to --disable-docs or --enable-docs, the docs are already built and available in the source package. IOW, --disable-docs doesn't save you any build steps, it just prevents files that are already built from being installed. This may be an oversight in gentoo's packaging.

What is the expected behavior, do you want the package to be installed but without documentation support? Or a better error message? Just trying to clarify what you are asking to be fixed.

Mike Miller <mtmiller>
Project Administrator
Wed 14 May 2014 10:01:15 AM UTC, original submission:

pkg install seems to require a texinfo file which is only installed when --enable-docs is given to configure.

output:

octave:1> pkg install -forge general
unable to open /usr/share/octave/3.8.1/etc/macros.texi for reading
error: called from '__makeinfo__' in file /usr/share/octave/3.8.1/m/help/__makeinfo__.m near line 103,
error: called from:
error: /usr/share/octave/3.8.1/m/pkg/private/install.m at line 240, column 5
error: /usr/share/octave/3.8.1/m/pkg/pkg.m at line 394, column 9

after rebuilding octave with --enable-docs (enabling the doc useflag on gentoo) it works as expected:

octave:1> pkg install -forge general
For information about changes from previous versions of the general package, run 'news general'.
octave:2>

Patric Schmitz <berzerka>

 

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

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by jwe (Posted a comment)
  • -unavailable- added by philipnienhuis
  • -unavailable- added by vote539 (Posted a comment)
  • -unavailable- added by urilabob (Posted a comment)
  • -unavailable- added by mtmiller (Posted a comment)
  • -unavailable- added by berzerka (Submitted the item)
  •  

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

    Only project members can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 10 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Sun 26 Jun 2016 09:04:20 PM UTCphilipnienhuisCarbon-Copy-=>Added philipnienhuis
    Sun 28 Feb 2016 08:44:13 PM UTCmtmillerPriority5 - Normal=>3 - Low
    Fri 16 May 2014 11:48:36 PM UTCmtmillerCategoryConfiguration and Build System=>Octave Function
      Severity2 - Minor=>1 - Wish
      Item GroupNone=>Feature Request
      StatusNeed Info=>Confirmed
      Release3.8.1=>dev
      Operating SystemGNU/Linux=>Any
    Wed 14 May 2014 01:04:13 PM UTCmtmillerSeverity3 - Normal=>2 - Minor
      StatusNone=>Need Info

    Back to the top


    Powered by Savane 3.1-cleanup1