Hi Michael, and people at ease with architecture ports, The package brian[1] has a mechanism based on the GSL which does some sort of compilation just-in-time. The default set of build flags works rather well on all flavors of amd64 architecture with or without extensions, however not all of the specified options by default are supported on all architectures. [1] https://salsa.debian.org/med-team/brian/-/tree/master The buildd logs[2] give a rather precise picture of the situation with the existing package fortunately. Architectures affected by unrecognized build options are showing the following symptom: Skipped: GSL support for numpy has not been implemented yet [2] https://buildd.debian.org/status/package.php?p=brian I introduced a patch to try addressing the issue on Debian's official architectures and on riscv64; build issues different symptoms on mips, with missing symbols, but reducing optimization levels seemed to help moving forward. With these changes, I got the following results so far: * still FTBFS on ppc64el, I see the following build time test step; the issue looks like it might just be a matter of doing a small adjustment, but I don't know which one: ====================================================================== ERROR: brian2.tests.test_GSL.test_GSL_stateupdater_basic ---------------------------------------------------------------------- Traceback (most recent call last): File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/core/network.py", line 897, in before_run obj.before_run(run_namespace) File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/input/spikegeneratorgroup.py", line 200, in before_run raise ValueError('Using a dt of %s, some neurons of ' ValueError: Using a dt of <spikegeneratorgroup.dt: 100. * usecond>, some neurons of SpikeGeneratorGroup "spikegeneratorgroup" spike more than once during a time step. The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/nose/case.py", line 197, in runTest self.test(*self.arg) File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/tests/test_GSL.py", line 19, in wrapped func() File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/tests/test_GSL.py", line 57, in test_GSL_stateupdater_basic net.run(100*ms) File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/core/base.py", line 278, in device_override_decorated_function return func(*args, **kwds) File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/units/fundamentalunits.py", line 2434, in new_f result = f(*args, **kwds) File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/core/network.py", line 1008, in run self.before_run(namespace) File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/core/base.py", line 278, in device_override_decorated_function return func(*args, **kwds) File "/tmp/autopkgtest.t0d9nq/build.nMH/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/core/network.py", line 899, in before_run raise BrianObjectException("An error occurred when preparing an object.", obj) from ex brian2.core.base.BrianObjectException: Error encountered with object named "spikegeneratorgroup". Object was created here (most recent call only, full details in debug log): File "/usr/lib/python3/dist-packages/nose/case.py", line 197, in runTest self.test(*self.arg) * the test_GSL_stateupdater_basic works on on mips64el, but rereading the build, there are so many warnings about run time errors such as below, that I would be wary introducing the package on that architecture, so it'd be probably better to not lose much more time here: [...] WARNING /tmp/autopkgtest.Z9EqJI/build.QFw/src/debian/tmp/usr/lib/python3.9/dist-packages/brian2/units/fundamentalunits.py:2186: RuntimeWarning: invalid value encountered in square deviations = np.nansum((np.log10(floatreps) - 1)**2, axis=0) [py.warnings] WARNING /usr/lib/python3/dist-packages/numpy/lib/nanfunctions.py:102: RuntimeWarning: invalid value encountered in isnan mask = np.isnan(a) [py.warnings] [...] * I curiously couldn't locate mipsel builds in my backups, but from what I recall I got results very similar to mips64el. * the riscv64 build goes through! (yay! :) I feel it might be possible to get the software working as intended on at least ppc64el, but time is running out with the freeze, and brian is still out of Testing to day. I'm pinging in case you might have an idea, but if not, I consider filing a request for removal on these architectures by tomorrow. Have a nice day, :) -- Étienne Mollier <etienne.mollier@mailoo.org> Fingerprint: 8f91 b227 c7d6 f2b1 948c 8236 793c f67e 8f0d 11da Sent from /dev/pts/2, please excuse my verbosity.
Attachment:
signature.asc
Description: PGP signature