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
This is a better name since we have multiple 64-bit things that could
be referred to.
LP64 : integer=32, long=64, pointer=64
ILP64 : integer=64, long=64, pointer=64
This makes packages use lapack and blas, which can wrap different
BLAS/LAPACK implementations.
treewide: cleanup from blas/lapack changes
A few issues in the original treewide:
- can’t assume blas64 is a bool
- unused commented code
Also migrate to opencv3 to address #72739, the PR didn't build for me.
Disable testing and ccache since they were broken.
Co-authored-by: Robert Scott <code@humanleg.org.uk>
shogun needs the cblas.h header file to be available. It used to get
it from liblapack, but that is not available anymore. Instead we can
use openblasCompat to get it.