gnu-octave / pkg-control

Control package for GNU Octave including system analysis and control synthesis
https://gnu-octave.github.io/pkg-control/
Other
17 stars 3 forks source link

Regression for Octave 6.2.0 #2

Closed wbv closed 1 year ago

wbv commented 1 year ago

It seems like commit b5f5130 made changes to accommodate Octave 9, but the changes actually cause the package to be incompatible when trying to build for Octave 6.2.0 on Debian Bullseye amd64 (the current stable release). This is the version which comes from the Debian package repos.

When installing version 3.5.1, I get a build error:

GNU Octave, version 6.2.0
Copyright (C) 2021 The Octave Project Developers.
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-pc-linux-gnu".

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 "https://github.com/gnu-octave/pkg-control/releases/download/control-3.5.1/control-3.5.1.tar.gz"
In file included from __control_helper_functions__.cc:7:
lti_input_idx.cc: In function ‘octave_value_list F__lti_input_idx__(const octave_value_list&, int)’:
lti_input_idx.cc:96:13: error: ‘range’ is not a member of ‘octave’
   96 |     octave::range<double> mat_idx (1, idx-offset);
      |             ^~~~~
lti_input_idx.cc:96:19: error: expected primary-expression before ‘double’
   96 |     octave::range<double> mat_idx (1, idx-offset);
      |                   ^~~~~~
lti_input_idx.cc:97:13: error: ‘range’ is not a member of ‘octave’
   97 |     octave::range<double> opt_idx (idx+1-offset, len);
      |             ^~~~~
lti_input_idx.cc:97:19: error: expected primary-expression before ‘double’
   97 |     octave::range<double> opt_idx (idx+1-offset, len);
      |                   ^~~~~~
lti_input_idx.cc:100:17: error: ‘opt_idx’ was not declared in this scope
  100 |     retval(1) = opt_idx;
      |                 ^~~~~~~
lti_input_idx.cc:101:17: error: ‘mat_idx’ was not declared in this scope
  101 |     retval(0) = mat_idx;
      |                 ^~~~~~~
make: *** [Makefile:69: __control_helper_functions__.oct] Error 1
make: *** Waiting for unfinished jobs....

I was able to get by installing version 3.5.0. Being mostly oblivious to how Octave and packages are built and interact, I have no idea how that should be addressed, as the commit I mentioned makes it seem necessary for Octave 9.

For what it's worth, the error message here seems pretty straightforward, and I'm not the only person with this issue, it seems: https://stackoverflow.com/questions/75927632/octave-error-in-installing-octave-control-package

ttl-octave commented 1 year ago

Thanks for the report. I will prepare a fixed version in the next couple of days.

ttl-octave commented 1 year ago

The issue is fixed with the just released control 3.5.2 package.

ttl-octave commented 1 year ago

No more replies. Therefore assuming that the issue is fixed for @wbv with control package 3.5.2.