bugGNU Octave - Bugs: bug #51911, doc build fails with...

 
 

bug #51911: doc build fails with texi2dvi/texi2pdf errors, revisited

Submitter:  Dan Sebald <sebald>
Submitted:  Fri 01 Sep 2017 05:52:14 AM UTC
   
 
Category:  Configuration and Build System Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Wont Fix Assigned to:  None
Originator Name:  Open/Closed:  * Closed
Release:  * dev Operating System:  * GNU/Linux
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Fri 01 Sep 2017 11:42:34 AM UTC, comment #6: 

V=1 isn't something specific to the rules for building documentation, it's a general feature of Makefiles generated by automake when using silent rules.  So this problem applies to all failed targets.  If you want to see the commands used, you need to use V=1.

OTOH, the TeX targets are a little different, because you don't even see the error messages.  That's because they are written to stdout along with a lot of other log info instead going to stderr, and there's no easy way to just display the errors.  So automake just hides all the output from these rules when in silent mode.  Fixing this seems like more trouble than it is worth.  This is a developer problem anyway.  Typical users who build from a tarball shouldn't need to rebuild DVI files.

Closing as "won't fix".

John W. Eaton <jwe>
Group administrator
Fri 01 Sep 2017 07:25:29 AM UTC, comment #5: 

One simple thing that could be done to help the user is to supply the V=1 hint when there is a doc build error, i.e.:


  TEXI2DVI doc/interpreter/octave.dvi
/usr/bin/texi2dvi: etex exited with bad status, quitting. Use 'make V=1' for more detail.


Dan Sebald <sebald>
Fri 01 Sep 2017 07:07:12 AM UTC, comment #4: 

OK, it wasn't a total rebuild...

So, now I'm getting some good info:


TEXINPUTS="/home/sebald/octave/octave/octave/build-aux:$TEXINPUTS" \
MAKEINFO='/bin/bash /home/sebald/octave/octave/octave/build-aux/missing makeinfo   -I doc/interpreter -I /home/sebald/octave/octave/octave/doc/interpreter' \
texi2dvi  --build-dir=doc/interpreter/octave.t2d -o doc/interpreter/octave.dvi  \
`test -f 'doc/interpreter/octave.texi' || echo '/home/sebald/octave/octave/octave/'`doc/interpreter/octave.texi
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015/Debian) (preloaded format=etex)
 restricted \write18 enabled.
entering extended mode
(/home/sebald/octave/octave/octave/doc/interpreter/octave.texi
(/home/sebald/octave/octave/octave/build-aux/texinfo.tex
Loading texinfo [version 2017-05-14.14]: pdf, fonts, markup, glyphs,
page headings, tables, conditionals, indexing, sectioning, toc, environments,
defuns, macros, cross references, insertions, localization, formatting,
and turning on texinfo input format.)
(/home/sebald/octave/octave/octave/doc/interpreter/macros.texi)
(/home/sebald/octave/octave/octave/doc/interpreter/version-octave.texi)
/home/sebald/octave/octave/octave/doc/interpreter/octave.texi:99: epsf.tex not
found, images will be ignored.
@image ...f.tex not found, images will be ignored}
                                                  @global @warnednoepsftrue ...
l.99 @flushright @image{octave_logo,2.1in}

?


Installing epsf.tex did the trick.  Thanks.  (Mint 18.2 seems to group things a little differently.  Maybe some dependencies were missed.)

Dan Sebald <sebald>
Fri 01 Sep 2017 06:28:46 AM UTC, comment #3: 

That is what I've been trying, but could never get anywhere.  Thanks for the make V=1 tip.

The settings for the comment characters is (via grep):

config.h:#define ENABLE_DOCS 1
config.log:#define ENABLE_DOCS 1
config.status:D["ENABLE_DOCS"]=" 1"

and in configure:

config.log:AMCOND_BUILD_DOCS_FALSE='#'
config.status:S["AMCOND_BUILD_DOCS_FALSE"]="#"

Well, I did a ./bootstrap ten minutes ago, so make is going to take a while.  I'll write back (probably tomorrow).

Dan Sebald <sebald>
Fri 01 Sep 2017 06:20:06 AM UTC, comment #2: 

Sorry, that should be 'make V=1', to have the build commands echoed fully.

Mike Miller <mtmiller>
Group Member
Fri 01 Sep 2017 06:18:39 AM UTC, comment #1: 

You're not reading the makefile correctly, please look again.

There should be a commented-out rule for doc/interpreter/octave.dvi that you quoted, but if you continue searching there will be a rule that is not commented-out.

The reason for the error is not a makefile configuration error, it's simply an error exit status from the etex program. If you want to know what that is, you should probably try 'make V=0' to see the full build command, and then try to run the texi2dvi command manually and go from there.

Mike Miller <mtmiller>
Group Member
Fri 01 Sep 2017 05:52:14 AM UTC, original submission:  

I've run into a build problem:


  GEN      build-aux/subst-script-vals.sh
config.status: creating build-aux/subst-script-vals.sh-tmp
config.status: executing build-aux/subst-script-vals.sh commands
  GEN      libgui/mk-default-qt-settings.sh
config.status: creating libgui/mk-default-qt-settings.sh-tmp
config.status: executing libgui/mk-default-qt-settings.sh commands
  TEXI2DVI doc/interpreter/octave.dvi
/usr/bin/texi2dvi: etex exited with bad status, quitting.


It seems to manifest similar to

https://savannah.gnu.org/bugs/?48172

and discussion thread

http://octave.1599824.n4.nabble.com/Fwd-Re-make-failed-tt4678092.html#a4678102

I got stuck on the fact I had a Sundials IDAKLU issue:


configure:79337: WARNING: --without-osmesa specified.  Functions or features that depend on OSMesa will be disabled.
configure:79472: WARNING: Sundials IDA library not configured with IDAKLU, ode15i and ode15s will not support the sparse Jacobian feature
configure:79497: WARNING: JAVA_HOME environment variable not initialized.  Auto-detection will proceed but is unreliable.
configure:79502: WARNING: No Java executable found.  Octave will not be able to call Java methods.


, but after trying a half dozen variations on including and excluding OSMesa, Sundials and Java, I came to the conclusion that none of that seems to matter.

I can tell what is wrong.  The octave.dvi file is NOT being generated because it is conditionally commented out of the Makefile:


distclean-libtool:
        -rm -f libtool config.lt
doc/interpreter/$(am__dirstamp):
        @$(MKDIR_P) doc/interpreter
        @: > doc/interpreter/$(am__dirstamp)

#$(srcdir)/doc/interpreter/octave.info: doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi
#        $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \
#        am__cwd=`pwd` && $(am__cd) $(srcdir) && \
#        rm -rf $$backupdir && mkdir $$backupdir && \
#        if ($(MAKEINFO) --version) >/dev/null 2>&1; then \
#          for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
#            if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
#          done; \
#        else :; fi && \
#        cd "$$am__cwd"; \
#        if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter \
#         -o $@ $(srcdir)/doc/interpreter/octave.texi; \
#        then \
#          rc=0; \
#          $(am__cd) $(srcdir); \
#        else \
#          rc=$$?; \
#          $(am__cd) $(srcdir) && \
#          $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
#        fi; \
#        rm -rf $$backupdir; exit $$rc

#doc/interpreter/octave.dvi: doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi doc/interpreter/$(am__dirstamp)
#        $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
#        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter' \
#        $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
#        `test -f 'doc/interpreter/octave.texi' || echo '$(srcdir)/'`doc/interpreter/octave.texi

#doc/interpreter/octave.pdf: doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi doc/interpreter/$(am__dirstamp)
#        $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
#        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter' \
#        $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \
#        `test -f 'doc/interpreter/octave.texi' || echo '$(srcdir)/'`doc/interpreter/octave.texi

#doc/interpreter/octave.html: doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi doc/interpreter/$(am__dirstamp)
#        $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp)
#        $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter \
#         -o $(@:.html=.htp) `test -f 'doc/interpreter/octave.texi' || echo '$(srcdir)/'`doc/interpreter/octave.texi; \
#        then \
#          rm -rf $@ && mv $(@:.html=.htp) $@; \
#        else \
#          rm -rf $(@:.html=.htp); exit 1; \
#        fi
$(srcdir)/doc/interpreter/version-octave.texi:  $(srcdir)/doc/interpreter/stamp-vti
$(srcdir)/doc/interpreter/stamp-vti: doc/interpreter/octave.texi $(top_srcdir)/configure


and I can verify that is the case by observing in the Makefile.in file:


@AMCOND_BUILD_DOCS_FALSE@doc/interpreter/octave.dvi: doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi doc/interpreter/$(am__dirstamp)
@AMCOND_BUILD_DOCS_FALSE@        $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
@AMCOND_BUILD_DOCS_FALSE@        MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter' \
@AMCOND_BUILD_DOCS_FALSE@        $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \
@AMCOND_BUILD_DOCS_FALSE@        `test -f 'doc/interpreter/octave.texi' || echo '$(srcdir)/'`doc/interpreter/octave.texi


So, something is indicating that octave.dvi should not be created.  Whether that is a missing TeX file or something, I will investigate.  However, the issue is that because octave.dvi is conditionally excluded from the build, then too should the

TEXI2DVI doc/interpreter/octave.dvi

that attempts to utilize the octave.dvi be excluded.

Dan Sebald <sebald>

 

(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 mtmiller (Posted a comment)
  • -email is unavailable- added by sebald (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 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2017-09-01 jwe StatusNeed Info Wont Fix
        Open/ClosedOpen Closed
    2017-09-01 mtmiller CategoryDocumentation Configuration and Build System
    2017-09-01 mtmiller StatusNone Need Info

    Back to the top

    Powered by Savane 3.13-4448.
    Corresponding source code