- flatbuffers removed as a dep as the upstream doesn't support installing with flatbuffer support currently and this is an experimental feature
- BUILD_TESTS workaround removed as upstream now properly understands BUILD_TESTING
- `eigen` is a new dependency in this release
- Removed `USE_LATEST_STD` as it was causing an ICE in clang when building on an m1 macbook and it is not strictly necessary for the package
CMake uses the directory of the configuration files to calculate
the path to the installed library and headers. But now that shogun uses
multiple outputs, this results in the $dev output being used for the
location of the shared library instead of $out.
Path the targets file to use the right location for the shared library.
Also default pythonSupport to false because it's broken for Python 3.
In any case the Python interface has been disabled for almost 2 years
now because the wrong CMake flag was being passed, so the build stays
the same.
But do use the proper flag now.
Main changes are:
- Build with default stdenv instead of forcing GCC 8, by applying upstream
patches that fix building with newer compilers.
Together with #134390 and #134393 (and the blas library fixes on #135493
and #136535), this enables building the derivation on darwin.
- Use multiple outputs.
- Move build-only inputs to nativeBuildInputs.
- Generate the meta examples but do not compile them (they are compiled as
part of the tests), to not make the build take more time than already is.
Install the example source files into $doc (but do not install the
example binaries, only the sources).
- Enable testing by setting the CMake variable CMAKE_SKIP_BUILD_RPATH to
false (it should not be needed if #108496 is merged). This allows the
tests to locate the shogun library and run without problems.
Disable integration and meta tests to speed up the build.
With a few other minor changes:
- Use upstream URL for the json-c patch.
- Be explicit about which optional, commercial dependencies are not used,
to stop CMake searching for them.
- Do not set NIX_CFLAGS_COMPILE with '-faligned-new' because it causes a
warning when compiling C files. Set CXXFLAGS instead.
- Remove unnecessary ccache variables from the environment.
- Fix wrong Google Mock download location, which was forcing CMake to need
network access to download the tarball to the right location (which fails
within the sandbox).
SVMlight uses a non-standard license [0] that doesn't allow distribution
without the author's permission:
> The software must not be modified and distributed without prior permission of the author.
So remove all code related to it when building the binary package.
Use upstream's own script to do it (which they use to create and
distribute their own Debian package), with a few fixes.
There is still the option of building from source with SVMlight enabled
with an override that sets the withSvmLight parameter.
If SVMlight is enabled set the license to unfree. Also fix the
deprecated gpl3 license to gpl3Plus.
[0]: https://github.com/shogun-toolbox/shogun/blob/shogun_6.1.4/doc/license/LICENSE_SVMlight.md
I currently do not have much time to work on nixpkgs. Remove
myself as a maintainer from a bunch of packages to avoid that
people are waiting on me for a review.
Rust 1.50.0 incorporated a Cargo change (rust-lang/cargo#8937) in
which cargo vendor erroneously changed permissions of vendored
crates. This was fixed in Rust
1.51.0 (rust-lang/cargo#9131). Unfortunately, this means that all
cargoSha256/cargoHashes produced during the Rust 1.50.0 cycle are
potentially broken.
This change updates cargoSha256/cargoHash tree-wide.
Fixes#121994.