At the heart of this issue is that tests were disabled, via a wholly
bogus and clearly unresearched claim that a dep isn't packaged. No such
dep exists -- the "dep" is a source code file inside the package
sources. It "does not exist" because cmake does not build tests when
running ctest. This is evidenced by loads of other C++ tests not running
at all because... they weren't built.
To fix this, patch the cmake files to expose a target for building
tests.
Next step: for absolutely unfathomable reasons, the package set up
-DCMAKE_SKIP_RPATH=YES, which exists solely to break the software into a
million pieces, as libraries are installed to site-packages and none of
the code can find the dependencies. This cmake option is seriously
advanced low-level debugging, using it at all is a huge red flag.
And the cherry on top is that using it also breaks running tests! Tests
cannot run if test programs cannot find the just-built libraries which
aren't in ld.so.conf. To work around *this*, the ebuild -- in the same
commit adding the bogus RESTRICT=test -- added an LD_PRELOAD of one out
of the four ${BUILD_DIR} libraries loaded by test code. This is *totally
insane*, as the correct solution is either rpath or LD_LIBRARY_PATH, and
LD_PRELOAD injects code into programs such as `mkdir -p "${BUILD_DIR}"`
which in case it wasn't completely obvious, DOES NOT WORK.
```
* environment, line 276: Called die
* The specific snippet of code:
*** The MPI_Type_free() function was called before MPI_INIT was invoked.
*** This is disallowed by the MPI standard.
*** Your MPI job will now abort.
[localhost:00084] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
*** The MPI_Type_free() function was called before MPI_INIT was invoked.
*** This is disallowed by the MPI standard.
*** Your MPI job will now abort.
[localhost:00085] Local abort before MPI_INIT completed completed successfully, but am not able to aggregate error messages, and not able to guarantee that all other processes were killed!
* mkdir -p "${BUILD_DIR}" || die
```
Again, there was no reason to ever assume this could work, and the fact
that it was even possible to think it might be a good idea should have
been worrying: it implied that the installed software might not run
without injecting libraries. Indeed, it didn't run.
Since we are massively renovating the testsuite already, add a couple
needed bdeps, some backport patches fixing issues with the tests, and
skip the final remaining test failures. Additionally, it seems numpy
needs to be pinned to 1.* as indicated by some test fails.
Bug: https://github.com/espressomd/espresso/issues/5166
Bug: https://bugs.gentoo.org/811186
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
It was added in 4.1.3 alongside an upstream PR fixing it. But the live
ebuild wasn't updated days later when the fix was merged, so it survived
for half a decade despite being long unnecessary (and slow).
Bug: https://github.com/espressomd/espresso/issues/3861
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
There are two major issues:
- the source code is incompatible with hdf5 1.13
- some deprecated boost code stopped working in 1.81
For the latter, we can backport a patch. For the former, no available
backport exists so we don't have much of a choice other than to restrict
the upper bounds until it gets properly fixed.
Bug: https://bugs.gentoo.org/927149
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>