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

 
 

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

Submitter:  Patric Schmitz <berzerka>
Submitted:  Wed 14 May 2014 10:01:15 AM UTC
   
 
Category:  Octave Function Severity:  1 - Wish
Priority:  3 - Low Item Group:  Feature Request
Status:  Confirmed Assigned to:  None
Originator Name:  Patric Schmitz Open/Closed:  * Open
Release:  * dev Operating System:  * Any
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Thu 14 Apr 2022 07:59:30 AM UTC, comment #16: 

I just stumbled over this old bug. For me the following patch resolved the issue.


diff -r e219aacda1e5 scripts/pkg/private/install.m
--- a/scripts/pkg/private/install.m     Sun Apr 10 14:34:05 2022 -0700
+++ b/scripts/pkg/private/install.m     Thu Apr 14 09:41:29 2022 +0200
@@ -238,7 +238,9 @@
       create_pkgadddel (desc, pdir, "PKG_ADD", global_install);
       create_pkgadddel (desc, pdir, "PKG_DEL", global_install);
       finish_installation (desc, pdir, global_install);
-      generate_lookfor_cache (desc);
+      if __octave_config_info__("ENABLE_DOCS")
+        generate_lookfor_cache (desc);
+      endif
     endfor
   catch
     ## Something went wrong, delete tmpdirs.


Not sure whether this works in general.

Muhali <muhali>
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>
Group Member
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>
Group 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>
Group 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>
Group 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.


octave --texi-macros-file=/dev/null


or to set the path to the file within Octave


>> texi_macros_file ("/dev/null");
>> pkg install ...


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>
Group Member
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>
Group Member
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>
Group Member
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 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 jwe (Posted a comment)
  • -email is unavailable- added by philipnienhuis
  • -email is unavailable- added by vote539 (Posted a comment)
  • -email is unavailable- added by urilabob (Posted a comment)
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by berzerka (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 10 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-06-26 philipnienhuis Carbon-Copy- Added philipnienhuis
    2016-02-28 mtmiller Priority5 - Normal 3 - Low
    2014-05-16 mtmiller CategoryConfiguration and Build System Octave Function
        Severity2 - Minor 1 - Wish
        Item GroupNone Feature Request
        StatusNeed Info Confirmed
        Release3.8.1 dev
        Operating SystemGNU/Linux Any
    2014-05-14 mtmiller Severity3 - Normal 2 - Minor
        StatusNone Need Info

    Back to the top

    Powered by Savane 3.13-4448.
    Corresponding source code