Code change:
in stdenv.mkDerivation rec { inherit pname version; <del> src = srcs.toolbox; postUnpack = '' mkdir -p $sourceRoot/third_party/{rxcpp,gtest} ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz ln -s ${srcs.gtest} $sourceRoot/third_party/gtest/release-${gtestVersion}.tar.gz ''; </del> <ins> outputs = [ "out" "dev" "doc" ]; </ins> <del> # broken doCheck = false; </del> <ins> src = srcs.toolbox; </ins> patches = [ <ins> # Fix compile errors with json-c # https://github.com/shogun-toolbox/shogun/pull/4104 </ins> (fetchpatch { <del> url = "https://github.com/awild82/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch"; </del> <ins> url = "https://github.com/shogun-toolbox/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch"; </ins> sha256 = "158hqv4xzw648pmjbwrhxjp7qcppqa7kvriif87gn3zdn711c49s"; }) <ins> # Fix compile errors with GCC 9+ # https://github.com/shogun-toolbox/shogun/pull/4811 (fetchpatch { url = "https://github.com/shogun-toolbox/shogun/commit/c8b670be4790e0f06804b048a6f3d77c17c3ee95.patch"; sha256 = "sha256-MxsR3Y2noFQevfqWK3nmX5iK4OVWeKBl5tfeDNgjcXk="; }) (fetchpatch { url = "https://github.com/shogun-toolbox/shogun/commit/5aceefd9fb0e2132c354b9a0c0ceb9160cc9b2f7.patch"; sha256 = "sha256-AgJJKQA8vc5oKaTQDqMdwBR4hT4sn9+uW0jLe7GteJw="; }) # Fix compile errors with Eigen 3.4 ./eigen-3.4.patch </ins> ] ++ lib.optional (!withSvmLight) ./svmlight-scrubber.patch; <del> CCACHE_DISABLE="1"; CCACHE_DIR=".ccache"; nativeBuildInputs = [ cmake ]; buildInputs = with lib; [ blas lapack bzip2 colpack curl ctags eigen hdf5 json_c lp_solve xz lzo protobuf nlopt snappy swig (libarchive.dev) libxml2 lapack glpk ] ++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ]) ++ optional  (opencvSupport) opencv; NIX_CFLAGS_COMPILE="-faligned-new"; cmakeFlags = let onOff = b: if b then "ON" else "OFF"; flag = n: b: "-D"+n+"="+onOff b; in with lib; [ (flag "ENABLE_TESTING" doCheck) (flag "BUILD_META_EXAMPLES" doCheck) (flag "CMAKE_VERBOSE_MAKEFILE:BOOL" doCheck) (flag "PythonModular" pythonSupport) (flag "OpenCV" opencvSupport) (flag "USE_SVMLIGHT" withSvmLight) </del> <ins> nativeBuildInputs = [ cmake swig ctags ] ++ (with pythonPackages; [ python jinja2 ply ]); buildInputs = [ eigen blas lapack glpk protobuf json_c libxml2 hdf5 curl libarchive bzip2 xz snappy lzo nlopt lp_solve colpack ] ++ lib.optionals pythonSupport (with pythonPackages; [ python numpy ]) ++ lib.optional opencvSupport opencv; cmakeFlags = let enableIf = cond: if cond then "ON" else "OFF"; in [ "-DBUILD_META_EXAMPLES=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_ARPACK=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_ARPREC=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_CPLEX=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_Mosek=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_TFLogger=ON" "-DCMAKE_DISABLE_FIND_PACKAGE_ViennaCL=ON" "-DCMAKE_SKIP_BUILD_RPATH=OFF" "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;TrainedModelSerialization'"  # Sporadic segfault "-DENABLE_TESTING=${enableIf doCheck}" "-DDISABLE_META_INTEGRATION_TESTS=ON" "-DTRAVIS_DISABLE_META_CPP=ON" "-DPythonModular=${enableIf pythonSupport}" "-DOpenCV=${enableIf opencvSupport}" "-DUSE_SVMLIGHT=${enableIf withSvmLight}" </ins> ]; <ins> CXXFLAGS = "-faligned-new"; doCheck = true; postUnpack = '' mkdir -p $sourceRoot/third_party/{rxcpp,GoogleMock} ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz ln -s ${srcs.gtest} $sourceRoot/third_party/GoogleMock/release-${gtestVersion}.tar.gz ''; </ins> postPatch = '' # Fix preprocessing SVMlight code sed -i 

Related discussion:
text: shogun fails to build since the eigen 3.4.0 bump: The package is a likely candidate for removal. Upstream is unresponsive and development has halted. Removed from debian: Removed from fedora: Blocking vcpkg update: Please run and paste the result. Maintainer information:
I think you were the last one to modify this package, so please speak up if you need it. Also pinging Last call - if no one responds within the next week, I'll open a PR to remove this package.
Yes, I was working on making it build on Darwin and adding it as a Python 3 module. Well, I did, but I didn't feel motivated to create a PR. As you comment, upstream has been inactive for almost a year, the latest release is several years old, and it becomes harder and harder to make it work, and the patches would start to accumulate. To make it work on Darwin we need two upstream patches that fix the build with newer compiler versions. In the current derivation, the Python interface is not built because the CMake flag is not the right one. When enabled, Swig 3 is used to generate the Python interface, but Swig 3 doesn't support Python 3.8+ (and with Swig 4 just fails). It can be fixed with a patch, that feels more like a hack, intercepting the Makefile build, so I am not happy with it: Another small patch is needed to fix the deprecated . Also, I wasn't happy that adding it as a Python module will recompile the entire library again, which takes too much time IMO. I haven't checked if it is possible to build with Eigen 3.4 because it takes forever to compile. It could probably work on the development version. Note that the development version doesn't support Eigen 3.4 because of this, but it may work: But there is no such limitation on the 6.1.4 release, which probably means it would require another patch to fix the code, if somebody figures out. So, I'd argue that the package is too old now, and the derivation has too many issues, and it's too much of a hassle to maintain it, so it's probably better to just remove it.
I decided to sit and take a look at the error, and I actually fixed it.