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

gnudatalanguage: Init at 1.0.0 #107056

Merged
merged 5 commits into from Oct 17, 2021
Merged

Conversation

ShamrockLee
Copy link
Contributor

@ShamrockLee ShamrockLee commented Dec 16, 2020

Motivation for this change

Interactive Data Language (IDL) is an array-oriented programming language and commercial software similar to MATLAB, and GNU Data Language (GDL) is a free and open source implementation of IDL.

Making this program available in nixpkgs makes the IDL/GDL runnable on NixOS and other supported platforms, and may benefit researchers and students in the realm of astronomy and atmospheric science. (It is hard to install IDL on NixOS )

This package depends on overridden plplot in order to have PlPlot drivers.

Status of Darwin support:

  • Though efforts are made to support Darwin (by choosing MPICH instead of OpenMPI, making libfabric and udunits build on Darwin, etc.), the built are still blocked by some dependencies.
  • The current issue is the plplot with wxmac backend (driver) failing to find <Carbon/Carbon.h>, which would be solved by injecting graphite2 somewhere. (See the issue comment)
  • As soon as the dependency issues get solved (by other PRs), this package should build. Please file an issue or another PR if it doesn't.
Things done
  • 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) (1247605984)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@ShamrockLee
Copy link
Contributor Author

@GrahamcOfBorg eval

@ShamrockLee ShamrockLee force-pushed the gnudatalanguage branch 2 times, most recently from b93412d to 7ef7228 Compare December 17, 2020 17:07
@ShamrockLee
Copy link
Contributor Author

@GrahamcOfBorg eval

@ShamrockLee ShamrockLee marked this pull request as draft December 18, 2020 07:13
@ShamrockLee ShamrockLee changed the title [WIP] gnudatalanguage: Init at 1.0.0-rc.3 [WIP] [Help wanted] gnudatalanguage: Init at 1.0.0-rc.3 Dec 18, 2020
@ShamrockLee
Copy link
Contributor Author

@GrahamcOfBorg eval

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/prs-in-distress/3604/44

@ShamrockLee ShamrockLee force-pushed the gnudatalanguage branch 2 times, most recently from 0aae40b to 05ac556 Compare September 22, 2021 04:43
@ShamrockLee ShamrockLee changed the title [WIP] [Help wanted] gnudatalanguage: Init at 1.0.0-rc.3 [WIP] [Help wanted] gnudatalanguage: Init at 1.0.0 Sep 22, 2021
@ShamrockLee ShamrockLee changed the title [WIP] [Help wanted] gnudatalanguage: Init at 1.0.0 gnudatalanguage: Init at 1.0.0 Sep 23, 2021
@ShamrockLee
Copy link
Contributor Author

@ofborg build gnudatalanguage

@ShamrockLee ShamrockLee marked this pull request as ready for review September 23, 2021 17:52
@ShamrockLee
Copy link
Contributor Author

gnudatalanguage build error on x86_64-linux:

$ nix-run-local nixUnstable build .#gnudatalanguage
error: builder for '/nix/store/8cs5zkvnxjsjxsn9vxp5g5nfkd6jqfqz-netcdf-4.8.0.drv' failed with exit code 1;
       last 10 log lines:
       > checking size of void*... 8
       > checking for library containing deflate... -lz
       > checking for library containing dlopen... -ldl
       > checking for floor in -lm... yes
       > checking for library containing H5Fflush... -lhdf5
       > checking for library containing H5DSis_scale... -lhdf5_hl
       > checking hdf5.h usability... yes
       > checking hdf5.h presence... yes
       > checking for hdf5.h... yes
       > configure: error: HDF5 was not built with zlib, which is required. Rebuild HDF5 with zlib.
       For full logs, run 'nix log /nix/store/8cs5zkvnxjsjxsn9vxp5g5nfkd6jqfqz-netcdf-4.8.0.drv'.
error: 1 dependencies of derivation '/nix/store/83klg4i9yf299xr62hnn18wpx2dkahf5-gnudatalanguage-1.0.0.drv' failed to build

@ShamrockLee
Copy link
Contributor Author

ShamrockLee commented Oct 3, 2021

Though zlib ? null, hdf5 happens to default to support zlib.
netcdf expects the dependent hdf5 to build with zlib, and throws an error when configuring if not.
Solution: Change zlibSupport ? false to zlibSupport ? true in hdf5

@doronbehar How does the change in netcdf/default.nix look like?

@ShamrockLee ShamrockLee force-pushed the gnudatalanguage branch 3 times, most recently from 17e04f2 to b25400f Compare October 4, 2021 04:19
pkgs/tools/misc/hdf5/default.nix Outdated Show resolved Hide resolved
pkgs/development/interpreters/gnudatalanguage/default.nix Outdated Show resolved Hide resolved
pkgs/development/interpreters/gnudatalanguage/default.nix Outdated Show resolved Hide resolved
@ShamrockLee ShamrockLee force-pushed the gnudatalanguage branch 2 times, most recently from 5fddb72 to 11a9a3e Compare October 4, 2021 16:42
@doronbehar
Copy link
Contributor

Thanks for all the work and obliging to reviews @ShamrockLee, your contribution is appreciated.

*   Generate PlPlot drivers by
    injecting wxGtk31 (if enableWX == true)
    and/or xorg.libX11 (if enableXWin == true,
    default to false)
    into the buildInputs of plplot
    with plplot.overrideAttrs
*   Override hdf4 and hdf5 with
    custom mpi (if
    enableMPI == true and libraryMPI == mpich)
    and szip (if enableSzip == true, default to false)
@ShamrockLee
Copy link
Contributor Author

The netcdf error happens to be more simple than I have thought. NetCDF simply requires the HDF5 API version to default to 1.10. There's nothing to do with MPI.

As HDF5 API v1.10 and v1.12 are not fully compatible, I add as switch for the choice (i. e. useHdf5v110Api), and notify the user (in the comment) to switch enableNetCDF off when they want to switch useHdf5v110Api off.

This package is ready to go.

@doronbehar doronbehar merged commit a851c61 into NixOS:master Oct 17, 2021
@ShamrockLee ShamrockLee deleted the gnudatalanguage branch October 22, 2021 20:49
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.

None yet

5 participants