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).
There currently seems to be a chance that after a nextcloud-client
update it will crash on startup. This crashing can be fixed by deleting the
`~/.cache/Nextcloud/qmlcache` folder.
For the crashing behavior, see also:
* #127324
* #121594
* #119029
* ...
The workaround introduced in this commit is also already used by muse.
See: 842a0d94cb/pkgs/applications/audio/musescore/default.nix (L34)
We already have gsasl as a build input, but it was not being used
because we were missing the --with-libgsasl configure flag.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
overrideScope applies an overlay that fixes the build error for
libyaml-streamly, however the (correct) broken state of the package in
the normal package set is incorrectly inherited, so a markUnbroken is
required.
This should mirror the behavior we implement for sudo: The TERMINFO and
TERMINFO_DIRS variables are inherited from the normal user's
environment, so terminfo files installed in the user's profile can be
found by ncurses applications running as root.