It was marked broken in 1dc27975d1 (May
2025).
But the bug was fixed in October 2025 with:
https://sourceforge.net/p/octave/optim/ci/d8c28ab3f3f37d439bc2d961d79f4a8caa9830d1/
Since there were new commits, but no release. I asked the upstream
maintainer to push the 1.6.3 tag.
I tested it works by importing the library:
nix-shell -p "octave.withPackages (ps: [ ps.optim ])" --run 'octave
--eval "pkg load optim; disp(\"Success!\")"'
The `statistics` package is one of a few Octave packages that produce
graphs as part of their test suite. So these require a plotting and
graphics library to actually produce the plots.
Add them so that `passthru.tests.testOctavePkgTests` work and pass,
and so automated GitHub updates by r-ryantm work.
Some Octave packages require OpenGL for their unit tests, e.g.
`octavePackages.image`. Previously, this test script would have
erroneous failures because OpenGL could not be found. [1] suggested
that we add these to the test environment to remove these incorrect
failures.
Fixing OpenGL being missing actually meant that gnuplot needed to be
pulled in, because these unit tests were plotting AND doing graphics.
And because gnuplot needs fonts, we need fontconfig too.
[1] https://github.com/NixOS/nixpkgs/pull/491992#issuecomment-3944950414
Co-authored-by: Michael Daniels <mdaniels5757@gmail.com>
Co-authored-by: Karl Hallsby <karl@hallsby.com>
The package is not broken on Linux/Darwin, those platforms don't have
COM interfaces. During Octave's "pkg install", it checks for this fact
and will error if they are not available, see below.
```
error: __COM__: Your system doesn't support the COM interface
```
These sources include leftover config.guess and config.sub scripts
generated by upstream maintainer's bootstrap script. Their bootstrap
script uses wget to grab config.guess and config.sub files, which we
cannot do inside the Nix build environment. So we forcibly remove the
config.* scripts and run autoreconf ourselves (through
autoreconfHook).
Nixpkgs commit a0b51629f9 switched where
audio gets it sources, from a release tarball to the actual upstream
sources. These sources include leftover config.guess and config.sub
scripts generated by upstream maintainer's bootstrap script. Their
bootstrap script uses wget to grab config.guess and config.sub files,
which we cannot do inside the Nix build environment. So we forcibly
remove the config.* scripts and run autoreconf ourselves (through
autoreconfHook).