Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

octave: Use qt5 and other improvements #79864

Merged
merged 12 commits into from Feb 27, 2020
Merged

Conversation

doronbehar
Copy link
Contributor

@doronbehar doronbehar commented Feb 11, 2020

Motivation for this change
Things done

Sundials was added a new version 2.7.5 2.7.0 named sundials_2 - this is the version GNU octave needs so it'll be able to solve ODEs, according to the configure report.

  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
ccs:

@7c6f434c
Copy link
Member

Looks like ofBorg failure is a real build failure for octave

@doronbehar
Copy link
Contributor Author

Funny I haven't noticed that when writing the PR. Now everything is fixed, including a fix to the sundials version - now we use 2.7.0 instead of 2.7.5.

@flokli
Copy link
Contributor

flokli commented Feb 18, 2020

Oof, is there a reason why we need to use such an old version of sundials?

IIRC, sundials_3 also was only in there because of bmcage/odes#98, so it could probably be dropped by now, too.

pkgs/top-level/all-packages.nix Show resolved Hide resolved
pkgs/top-level/all-packages.nix Outdated Show resolved Hide resolved
pkgs/top-level/all-packages.nix Outdated Show resolved Hide resolved
pkgs/top-level/all-packages.nix Outdated Show resolved Hide resolved
pkgs/top-level/all-packages.nix Outdated Show resolved Hide resolved
@doronbehar
Copy link
Contributor Author

Oof, is there a reason why we need to use such an old version of sundials?

I couldn't get any other newer version of sundials to satisfy the ./configure script - it always complains that ODEs will not work with the current sundials because the API got changed between 2.7.0 and any other newer version.

I honestly tried drilling into Octave's bug reports but I couldn't get a clear view as for the status of it, see https://savannah.gnu.org/search/?words=sundials&type_of_search=bugs&Search=Search&exact=1 . I'll glad to get some help regarding this if you'd care so much to insist.

@flokli
Copy link
Contributor

flokli commented Feb 18, 2020

@doronbehar it's not me insisting being extremely picky here, but linking old packages to upstream issues ensures we're not stuck with that old version forever, and know where to check for compatibility.

https://savannah.gnu.org/bugs/?func=detailitem&item_id=52475 suggests we should be able to build with sundials 3.1.0 at least with d94876e7a0aa - which would allow us to switch over to the (still existing) sundials_3 derivation.

I don't see a bug report for latest sundials version, and if it doesn't work with that, would encourage to open one.

@doronbehar
Copy link
Contributor Author

https://savannah.gnu.org/bugs/?func=detailitem&item_id=52475 suggests we should be able to build with sundials 3.1.0 at least with d94876e7a0aa - which would allow us to switch over to the (still existing) sundials_3 derivation.

@flokli this thread (https://savannah.gnu.org/bugs/?func=detailitem&item_id=52475 ) is from 13 March 2019 - meaning octave 5.2.0 should include the linked patch http://hg.savannah.gnu.org/hgweb/octave/rev/d94876e7a0aa .

I don't see a bug report for latest sundials version, and if it doesn't work with that, would encourage to open one.

You are totally right, I've submitted the following bug report on octave's end: https://savannah.gnu.org/bugs/index.php?57854

@doronbehar
Copy link
Contributor Author

Update: Upstream confirms my findings - that octave 5.x is compatible with sundials 2.x only: https://savannah.gnu.org/bugs/?57854#comment1 :

I'm closing this as a bug report, since everything that is intended to work is working as far as I know, Octave verion 5 builds and works with SUNDIALS version 2.x, and Octave version 6 builds and works with SUNDIALS version 3.x (partially) and 4.x (fully).

We'll wait for octave 6 and see what's up with sundials 5.x then.

@flokli
Copy link
Contributor

flokli commented Feb 19, 2020

Thanks for asking back upstream - In that case, I propose to just go with an explicit sundials_2 version.

@flokli
Copy link
Contributor

flokli commented Feb 19, 2020

FYI, sundials_3 cleanup is happening in #80540.

@flokli
Copy link
Contributor

flokli commented Feb 21, 2020

@doronbehar with #80540 merged, can you give this a rebase and apply the python3 changes suggested there?

@doronbehar
Copy link
Contributor Author

Sure, rebased and cleaned up the git log a little bit.

@worldofpeace
Copy link
Contributor

worldofpeace commented Feb 24, 2020

I feel like comments in all-packages.nix isn't really a good idea because it gets mangled frequently, and not convenient or an immediately obvious place to look for documentation.

@doronbehar
Copy link
Contributor Author

I feel like comments in all-packages.nix isn't really a good idea because it gets mangled frequently, and not convenient or an immediately obvious place to look for documentation.

I tend to agree @worldofpeace . Where do you think would be a better place to place these comments? I think they are better put somewhere then nowhere :)

@7c6f434c
Copy link
Member

Maybe explicitly passing all the options is better than passing only the non-default options and also writing this full printout? The explanations of the options naturally live in default.nix

@worldofpeace
Copy link
Contributor

@doronbehar I believe what @7c6f434c said sounds correct.

@doronbehar
Copy link
Contributor Author

Agree, sent a fix.

@7c6f434c 7c6f434c merged commit b41a7ee into NixOS:master Feb 27, 2020
@doronbehar doronbehar mentioned this pull request Mar 3, 2020
13 tasks
@doronbehar doronbehar deleted the improve-octave branch October 11, 2021 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

How to build Octave with (QT5) GUI?
4 participants