bugGNU Octave - Bugs: bug #56171, [octave forge] (control) fails to...

 
 

bug #56171: [octave forge] (control) fails to build and install

Submitter:  None
Submitted:  Fri 19 Apr 2019 03:38:36 PM UTC
   
 
Category:  Octave Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Build Failure
Status:  Fixed Assigned to:  None
Originator Name:  Charles (past) Tolle Originator Email:  -email is unavailable-
Open/Closed:  * Closed Release:  * 5.1.0
Operating System:  * Mac OS Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Wed 15 Jul 2020 06:39:03 AM UTC, comment #13: 

@ianaber: Is that an error for you? The snippet in comment #9 suggests that is a warning for other users.

Markus Mützel <mmuetzel>
Group administrator
Tue 14 Jul 2020 08:43:16 PM UTC, comment #12: 

I have tried fresh installs of Octave 4.1 and 5 on Mac and the current version on Windows. On Mac I tried the native package as well as using homebrew with the compile fro source options. When I try to install control using pkg install -forge control I get the same compilation errors eg.

Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)

The installation fails every time.

Ian Abercrombie <ianaber>
Sun 05 Jul 2020 09:55:57 AM UTC, comment #11: 

The original issue seems to have been fixed according to comment #8.
The issue mentioned in comment #9 is a duplicate of the (now fixed) bug #58698 (see also comment #10).

Closing report as fixed.

Markus Mützel <mmuetzel>
Group administrator
Sat 04 Jul 2020 08:30:33 PM UTC, comment #10: 

I did some more hunting, and it looks like my issue is reported here as a bug in "pkg install" itself, not the control package.

https://savannah.gnu.org/bugs/?func=detailitem&item_id=58698

Shane <sffc>
Sat 04 Jul 2020 08:25:16 PM UTC, comment #9: 

I'm having trouble installing control-3.2.0 on the tip of the stable branch (Octave 6.0.1, commit 9e7b2625e574).  However, it installs against Octave 5.1.90 with an otherwise identical configuration, which leads me to believe that something changed in Octave that broke the Control package.

First I get the warnings that we're all ignoring:

-----
MA02ID.f:230:34:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
-----

Then I get this error:

-----
error: Element 1 in argument list is not defined
error: called from
    install>copy_built_files at line 426 column 15
    install at line 197 column 7
    pkg at line 566 column 9
-----

I can share a Dockerfile that reproduces this error if that would be helpful.

This is currently blocking my attempt at upgrading Octave Online Server to Octave 6.0.1.

Shane <sffc>
Wed 12 Feb 2020 10:35:52 AM UTC, comment #8: 

It looks like this has been fixed in Homebrew. `pkg install -forge control` now works for me in a vanilla Homebrew setup using a "bottled" Octave installation.

OP, please try doing `brew update; brew upgrade` and that should fix it for you.

Andrew Janke <apjanke>
Fri 31 Jan 2020 11:04:39 PM UTC, comment #7: 

All I can contribute for this bug report is that it looks like the OP is trying to build the control package with an older version of clang that doesn't support C++11 alias templates (https://en.cppreference.com/w/cpp/language/type_alias).

I was not able to reproduce this error with Clang 8 on Debian, the control package builds and installs fine.

This looks like a homebrew configuration issue, and if you can get that worked out with the right compiler configuration, installing the package should work.

Leaving open for further comments for now, but I don't see a bug here in anything that Octave has any control over.

Mike Miller <mtmiller>
Group Member
Sat 04 May 2019 12:55:24 PM UTC, comment #6: 

Andrew:  yes, they will get email notification if they leave a valid email address.

The following was posted to the mailing list and so did not appear here:


It appears that I had an old path include mistake within my compiler.  Still there but it has been patched via CPATH.   So the old error has gone away.  However a new error has been created within octave's own header files.   I tries reinstall octave normally and from source which installed fine.  But when I still try to install the -forge packages I now get this error:


brew uninstall octave
brew install -s octave
octave

octave
GNU Octave, version 5.1.0
Copyright (C) 2019 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type 'warranty'.

Octave was configured for "x86_64-apple-darwin18.5.0".

Additional information about Octave is available at https://www.octave.org.

Please contribute if you find this software useful.
For more information, visit https://www.octave.org/get-involved.html

Read https://www.octave.org/bugs.html to learn how to submit bug reports.
For information about changes from previous versions, type 'news'.

octave:1> pkg install -forge control
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
In file included from __control_helper_functions__.cc:1:
In file included from ./is_real_scalar.cc:28:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/../octave/oct.h:30:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/Matrix.h:31:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/mx-base.h:30:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/MatrixType.h:29:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/MSparse.h:29:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/Array-util.h:28:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/Array.h:37:
In file included from /usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/dim-vector.h:35:
/usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/oct-refcount.h:126:80: error: expected ';' after attributes list
using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>;
                                                                               ^
                                                                               ;
/usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/oct-refcount.h:126:1: error: cannot template a using declaration
using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>;
^
2 errors generated.
make: *** [__control_helper_functions__.oct] Error 1
make: *** Waiting for unfinished jobs....
MA02ID.f:188:21:

MA02ID.f:184:72:

          DO 90 J = 1, N+1
                                                                        2
MA02ID.f:188:21:

                DWORK(J-1) = DWORK(J-1) + TEMP
                     1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:188:34:

MA02ID.f:184:72:

          DO 90 J = 1, N+1
                                                                        2
MA02ID.f:188:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:230:21:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:21:

                DWORK(J-1) = DWORK(J-1) + TEMP
                     1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:230:34:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
tar -xzf slicot.tar.gz
/usr/local/Cellar/octave/5.1.0_2/bin/mkoctfile-5.1.0 -Wall -Wno-deprecated-declarations  __control_helper_functions__.cc
mkdir sltmp
mv slicot/src/*.f ./sltmp
mv slicot/src_aux/*.f ./sltmp
cp TG04BX.fortran ./sltmp/TG04BX.f
cp TB01ZD.fortran ./sltmp/TB01ZD.f
cd sltmp; /usr/local/Cellar/octave/5.1.0_2/bin/mkoctfile-5.1.0 -c *.f
ar -rc slicotlibrary.a ./sltmp/*.o
rm -rf sltmp slicot

pkg: error running `make' for the control package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 441 column 9
octave:1> exit



the key lines:


/usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/oct-refcount.h:126:80: error: expected ';' after attributes list
using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>;
                                                                               ^
                                                                               ;
/usr/local/Cellar/octave/5.1.0_2/include/octave-5.1.0/octave/oct-refcount.h:126:1: error: cannot template a using declaration
using octave_refcount OCTAVE_DEPRECATED (4.4, "use 'octave::refcount' instead") = octave::refcount<T>;
^
2 errors generated.
make: *** [__control_helper_functions__.oct] Error 1
make: *** Waiting for unfinished jobs....


Additional info:


gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 10.0.1 (clang-1001.0.46.4)
Target: x86_64-apple-darwin18.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

brew list
arpack                        gcc                        graphicsmagick                libevent                lua                        pixman                        sqlite
cairo                        gcc@4.9                        graphite2                libffi                        maxima                        pkg-config                suite-sparse
clisp                        gcc@7                        gzip                        libheif                        metis                        plotutils                sundials
cmake                        gd                        harfbuzz                libmpc                        mpfr                        portaudio                szip
doxygen                        gdbm                        hdf5                        libogg                        netpbm                        pstoedit                tcl-tk
epstool                        gettext                        icu4c                        libomp                        ocaml                        python                        texinfo
fftw                        ghostscript                ilmbase                        libpng                        octave                        qhull                        veclibfort
fig2dev                        gl2ps                        imagemagick                libsigsegv                open-mpi                qrupdate                webp
flac                        glib                        isl                        libsndfile                openexr                        qt                        wxmac
fltk                        glpk                        jasper                        libtiff                        openjpeg                readline                wxmaxima
fontconfig                gmp                        jpeg                        libtool                        openssl                        rlwrap                        x265
freetype                gnu-sed                        libcerf                        libvorbis                pango                        shared-mime-info        xz
fribidi                        gnuplot                        libde265                little-cms2                pcre                        snappy


My CPATH patch is:


CPATH=/Library/Developer/CommandLineTools/usr/include/c++/v1


Any idea’s?

John W. Eaton <jwe>
Group administrator
Sat 20 Apr 2019 05:18:58 PM UTC, comment #5: 

Filed bug #56183 for adding tests for building and linking with BLAS, Fortran, etc.

Mike Miller <mtmiller>
Group Member
Sat 20 Apr 2019 02:42:57 AM UTC, comment #4: 

Do Anonymous submitters get notifications of comments on their posts?

Eh, screw it: here's a downstream Homebrew PR for a revision bump for octave which I think will fix this problem: https://github.com/Homebrew/homebrew-core/pull/39122

Andrew Janke <apjanke>
Sat 20 Apr 2019 02:25:50 AM UTC, comment #3: 

This does sound like a local configuration issue or a Homebrew formula definition or "bottling" issue.

On my macOS 10.14.4 box with Xcode 10.2 installed, `pkg install -forge control` succeeds for me in Octave.app 5.1.0 beta 3, which is a customized Homebrew-based installation. (Raises warnings as usual, but the actual build & installation succeeds.) But Octave.app uses customized formulae and builds everything from source, so that doesn't necessarily reflect what's happening with core Homebrew octave installs.

On my vanilla Homebrewed Octave 5.1.0 installation, however, it's busted. Different error message, but definitely busted:


octave:5> ver
----------------------------------------------------------------------
GNU Octave Version: 5.1.0 (hg id: d05d6eebde10)
GNU Octave License: GNU General Public License
Operating System: Darwin 18.5.0 Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64
----------------------------------------------------------------------
no packages installed.
octave:6> pkg install -forge control
[...]
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
ld: warning: directory not found for option '-L/usr/local/opt/gcc/lib/gcc/8/gcc/x86_64-apple-darwin18.2.0/8.3.0'
ld: warning: directory not found for option '-L/usr/local/opt/gcc/lib/gcc/8/gcc/x86_64-apple-darwin18.2.0/8.3.0/../../..'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [__control_slicot_functions__.oct] Error 1
tar -xzf slicot.tar.gz
/usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -Wall -Wno-deprecated-declarations  __control_helper_functions__.cc
mkdir sltmp
mv slicot/src/*.f ./sltmp
mv slicot/src_aux/*.f ./sltmp
cp TG04BX.fortran ./sltmp/TG04BX.f
cp TB01ZD.fortran ./sltmp/TB01ZD.f
cd sltmp; /usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -c *.f
ar -rc slicotlibrary.a ./sltmp/*.o
rm -rf sltmp slicot
LFLAGS="-L/usr/local/Cellar/octave/5.1.0/lib/octave/5.1.0 -L/usr/local/Cellar/octave/5.1.0/lib  -L/usr/local/opt/veclibfort/lib -lvecLibFort  -L/usr/local/opt/gcc/lib/gcc/8/gcc/x86_64-apple-darwin18.2.0/8.3.0 -L/usr/local/opt/gcc/lib/gcc/8/gcc/x86_64-apple-darwin18.2.0/8.3.0/../../.. -lgfortran -lquadmath -lm" \
    /usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -Wall -Wno-deprecated-declarations  __control_slicot_functions__.cc common.cc slicotlibrary.a

pkg: error running `make' for the control package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 441 column 9
octave:6>


My Homebrew and overall OS installation on this box are pretty well managed imho, so it's less likely to be a local configuration issue here.

gfortran linkage issue? gfortran is provided by gcc.

The gcc Homebrew formula has been updated recently, and the octave formula/bottle has not been updated since:


$ brew log gcc | head -6
commit ddde81887459bc4855031fb5b6919032f35f277b
Author: BrewTestBot <homebrew-test-bot@lists.sfconservancy.org>
Date:   Fri Apr 19 09:46:10 2019 +0000

    gcc: update 8.3.0_1 bottle.

[~]
$ brew log octave | head -6
commit 33a5454868538fee44e7d398b5259b95a5f53f44
Author: BrewTestBot <homebrew-test-bot@lists.sfconservancy.org>
Date:   Tue Mar 26 20:40:27 2019 +0000

    octave: update 5.1.0 bottle.


Often, when a Homebrew formula is updated, its dependencies that have binary linkage to it must also be updated, with a "revision bump" that's just a rebuild to update the bottle to link against the new dependency's build. That may well be what's happening here. Normally, Homebrew's CI infrastructure detects these linkage problems because it runs `brew test` on all the updated formula's dependents. But `brew test` on octave does not involve installing Octave Forge packages, or doing any C/C++/Fortran/mkoctfile compilation. And the Octave installation does not have direct linkage to the gcc libraries (I think). So it may well have missed this.

Reinstalling `octave` from source fixed it for me.


[~]
$ brew uninstall octave
Uninstalling /usr/local/Cellar/octave/5.1.0... (2,261 files, 53.5MB)
[~]
$ brew install -s octave
==> Downloading https://ftp.gnu.org/gnu/octave/octave-5.1.0.tar.xz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/octave/5.1.0 --disable-silent-rules --enable-link-all-dependencies --enable-shared --disable-static --with-hdf5-includedir=/usr
==> make all
==> make install
🍺  /usr/local/Cellar/octave/5.1.0: 2,261 files, 53.8MB, built in 9 minutes 2 seconds
[~]
$ octave
octave:1> pkg install -forge control
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
[...]
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
ld: warning: could not create compact unwind for _sb10yd_: stack subq instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _mb03xp_: stack subq instruction is too different from dwarf stack size
For information about changes from previous versions of the control package, run 'news control'.
octave:2> pkg list
Package Name  | Version | Installation directory
--------------+---------+-----------------------
     control  |   3.2.0 | /Users/janke/octave/control-3.2.0
octave:3>


This is consistent with the Homebrew bottle needing a rebuild to account for the gcc update.

Please report this downstream to Homebrew core at https://github.com/Homebrew/homebrew-core/issues. Tell them specifically that "octave may need a revision bump to handle the recent gcc update". Include a link to this Savannah issue so they can see the background of what's going on.

In the meantime, you can run `brew reinstall -s octave` from the shell command line to probably get a working Octave installation.

Also make sure you have run Xcode once and accepted the license agreement it presents, just to make sure.

Also, perhaps Homebrew core should add a trivial usage of `mkoctfile` to the Octave `brew test`, to make sure the development/compilation parts of Octave work. That's a significant component of how Octave is used in the wild. Not sure how you'd set up a trivial mkoctfile that involved Fortran compilation, though. That's probably something Octave itself should ship in its bundled test suite if it wants downstream packagers to exercise it. If this was done, then Homebrew would be able to automatically detect when an Octave rebuild was needed to take care of this case.

Andrew Janke <apjanke>
Fri 19 Apr 2019 04:33:40 PM UTC, comment #2: 

Yeah this looks like a local configuration issue. Compiling a C++ source file should naturally be able to find <cstdint>, so I don't think this is a bug in the control package.

Mike Miller <mtmiller>
Group Member
Fri 19 Apr 2019 03:56:46 PM UTC, comment #1: 

I can just guess that you are using homebrew installing Octave 5.1 on macOS (version?)? You really should add these infos and since this looks like a packaging problem where dependencies aren't installed you might ask the homebrew people

Andreas Weber <andy1978>
Group Member
Fri 19 Apr 2019 03:38:36 PM UTC, original submission:  

octave:1> pkg install -forge control
warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead
In file included from _control_helper_functions_.cc:1:
In file included from ./is_real_scalar.cc:28:
In file included from /usr/local/Cellar/octave/5.1.0/include/octave-5.1.0/octave/../octave/oct.h:26:
/usr/local/Cellar/octave/5.1.0/include/octave-5.1.0/octave/octave-config.h:64:14: fatal error: 'cstdint' file not found
#    include <cstdint>
             ^
1 error generated.
make: * [__control_helper_functions__.oct] Error 1
make: * Waiting for unfinished jobs....
MA02ID.f:188:21:

MA02ID.f:184:72:

          DO 90 J = 1, N+1
                                                                        2
MA02ID.f:188:21:

                DWORK(J-1) = DWORK(J-1) + TEMP
                     1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:188:34:

MA02ID.f:184:72:

          DO 90 J = 1, N+1
                                                                        2
MA02ID.f:188:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:230:21:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:21:

                DWORK(J-1) = DWORK(J-1) + TEMP
                     1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
MA02ID.f:230:34:

MA02ID.f:226:72:

          DO 160 J = 1, N+1
                                                                        2
MA02ID.f:230:34:

                DWORK(J-1) = DWORK(J-1) + TEMP
                                  1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
tar -xzf slicot.tar.gz
/usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -Wall -Wno-deprecated-declarations  _control_helper_functions_.cc
mkdir sltmp
mv slicot/src/*.f ./sltmp
mv slicot/src_aux/*.f ./sltmp
cp TG04BX.fortran ./sltmp/TG04BX.f
cp TB01ZD.fortran ./sltmp/TB01ZD.f
cd sltmp; /usr/local/Cellar/octave/5.1.0/bin/mkoctfile-5.1.0 -c *.f
ar -rc slicotlibrary.a ./sltmp/*.o
rm -rf sltmp slicot

pkg: error running `make' for the control package.
error: called from
    configure_make at line 99 column 9
    install at line 184 column 7
    pkg at line 441 column 9

Anonymous

 

(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 ianaber (Posted a comment)
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by sffc (Posted a comment)
  • -email is unavailable- added by jwe (Posted a comment)
  • -email is unavailable- added by apjanke (Posted a comment)
  • -email is unavailable- added by andy1978 (Posted a comment)
  • -email is unavailable- added by None (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 5 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-07-05 mmuetzel StatusWorks For Me Fixed
        Open/ClosedOpen Closed
    2020-01-31 mtmiller StatusNeed Info Works For Me
    2019-04-19 mtmiller StatusNone Need Info
        SummaryForge control package fails to build and install. [octave forge] (control) fails to build and install

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code