From 1f66525b15b2ad52161f350a328748bba8a081e4 Mon Sep 17 00:00:00 2001 From: Vitaly Zaitsev Date: Wed, 28 Jun 2023 10:59:00 +0200 Subject: [PATCH 01/29] Rebuilt due to fmt 10 update. From ad813ca9b55d2e90955718df9d47429490dc4c7c Mon Sep 17 00:00:00 2001 From: Python Maint Date: Wed, 28 Jun 2023 15:02:54 +0200 Subject: [PATCH 02/29] Rebuilt for Python 3.12 From 71050f70263bd2cf1dbea9d32048a55f9291e591 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 13:40:08 +0000 Subject: [PATCH 03/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 6bb5c02c8664a8c25c18da28cad490834fbb41fe Mon Sep 17 00:00:00 2001 From: Sandro Date: Thu, 20 Jul 2023 11:15:19 +0200 Subject: [PATCH 04/29] Fix use of distutils (RHBZ#2219935) --- arbor.spec | 6 +++++- looseversion.patch | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 looseversion.patch diff --git a/arbor.spec b/arbor.spec index b6f2482..2d6941f 100644 --- a/arbor.spec +++ b/arbor.spec @@ -33,13 +33,16 @@ Source0: %forgesource # script to run examples Source1: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts/run_python_examples.sh Source2: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts/run_cpp_examples.sh -License: BSD +License: BSD-3-Clause Patch: 0001-Quote-various-cmake-var-values.patch # Add some missing #include directives # Fixes failure to compile with GCC 13. # https://github.com/arbor-sim/arbor/pull/2080 Patch: %{forgeurl}/pull/2080.patch +# Replace use of LooseVersion from distutils.version (removed in Python3.12) +# https://github.com/arbor-sim/arbor/pull/2157 +Patch: looseversion.patch # Random123 does not support: # mips64r2 mips32r2 s390 @@ -60,6 +63,7 @@ BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: Random123-devel BuildRequires: tclap-devel +BuildRequires: pugixml-devel Provides: python3-arbor = %{version}-%{release} # For validation, but we don't have these BRs diff --git a/looseversion.patch b/looseversion.patch new file mode 100644 index 0000000..65fde4a --- /dev/null +++ b/looseversion.patch @@ -0,0 +1,25 @@ +diff --git a/pyproject.toml b/pyproject.toml +index 0d732541..12e003e2 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -46,6 +46,7 @@ requires = [ + "scikit-build", + "cmake>=3.18", + "ninja", ++ "looseversion", + ] + build-backend = "setuptools.build_meta" + +diff --git a/scripts/tsplot b/scripts/tsplot +index c64e7b18..10ddf3f4 100755 +--- a/scripts/tsplot ++++ b/scripts/tsplot +@@ -11,7 +11,7 @@ import matplotlib as M + import matplotlib.pyplot as P + import numbers + from functools import reduce +-from distutils.version import LooseVersion ++from looseversion import LooseVersion + from itertools import chain, islice, cycle + + # Run-time check for matplot lib version for line style functionality. From 942ac93a60d1d535c3dcce0961d39acbfe508dfb Mon Sep 17 00:00:00 2001 From: Sandro Date: Fri, 21 Jul 2023 16:45:28 +0200 Subject: [PATCH 05/29] Fix ExcludeArch - s/s390/s390x/ --- arbor.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 2d6941f..32150a3 100644 --- a/arbor.spec +++ b/arbor.spec @@ -47,7 +47,7 @@ Patch: looseversion.patch # Random123 does not support: # mips64r2 mips32r2 s390 # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval -ExcludeArch: mips64r2 mips32r2 s390 %{ix86} +ExcludeArch: mips64r2 mips32r2 s390x %{ix86} BuildRequires: cmake BuildRequires: make From 06e1cefc66d04a814071e6fc985972a255d80c23 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 6 Nov 2023 07:41:38 -0500 Subject: [PATCH 06/29] Do not enable extra ISA extensions based on the build host We must confine ourselves to the baseline features of each architecture unless runtime feature detection is used. --- arbor.spec | 8 -------- 1 file changed, 8 deletions(-) diff --git a/arbor.spec b/arbor.spec index 32150a3..d91e333 100644 --- a/arbor.spec +++ b/arbor.spec @@ -212,18 +212,10 @@ pushd build$MPI_COMPILE_TYPE && -DCMAKE_BUILD_TYPE:STRING="release" \\\ -DARB_USE_BUNDLED_LIBS:BOOL=OFF \\\ -DARB_USE_BUNDLED_PYBIND11:BOOL=OFF \\\ -%ifarch x86_64 i686 aarch64 - -DARB_VECTORIZE:BOOL=ON \\\ -%else -DARB_VECTORIZE:BOOL=OFF \\\ -%endif -DARB_WITH_MPI:BOOL=$MPI_YES \\\ -DARB_WITH_GPU:BOOL=OFF \\\ -%ifnarch s390x s390 - -DARB_ARCH:STRING="native" \\\ -%else -DARB_ARCH:STRING="none" \\\ -%endif -DCMAKE_INSTALL_LIBDIR=%{_lib} \\\ -DARB_WITH_PYTHON:BOOL=ON \\\ -DARB_PYTHON_LIB_PATH:STRING=$MPI_PYTHON3_SITEARCH \\\ From 9b31ac866770e20c5f6c7c96cd6b7e41690b1007 Mon Sep 17 00:00:00 2001 From: Sandro Date: Thu, 20 Jul 2023 11:15:19 +0200 Subject: [PATCH 07/29] Fix use of distutils (RHBZ#2219935) --- arbor.spec | 6 +++++- looseversion.patch | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 looseversion.patch diff --git a/arbor.spec b/arbor.spec index b6f2482..2d6941f 100644 --- a/arbor.spec +++ b/arbor.spec @@ -33,13 +33,16 @@ Source0: %forgesource # script to run examples Source1: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts/run_python_examples.sh Source2: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts/run_cpp_examples.sh -License: BSD +License: BSD-3-Clause Patch: 0001-Quote-various-cmake-var-values.patch # Add some missing #include directives # Fixes failure to compile with GCC 13. # https://github.com/arbor-sim/arbor/pull/2080 Patch: %{forgeurl}/pull/2080.patch +# Replace use of LooseVersion from distutils.version (removed in Python3.12) +# https://github.com/arbor-sim/arbor/pull/2157 +Patch: looseversion.patch # Random123 does not support: # mips64r2 mips32r2 s390 @@ -60,6 +63,7 @@ BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: Random123-devel BuildRequires: tclap-devel +BuildRequires: pugixml-devel Provides: python3-arbor = %{version}-%{release} # For validation, but we don't have these BRs diff --git a/looseversion.patch b/looseversion.patch new file mode 100644 index 0000000..65fde4a --- /dev/null +++ b/looseversion.patch @@ -0,0 +1,25 @@ +diff --git a/pyproject.toml b/pyproject.toml +index 0d732541..12e003e2 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -46,6 +46,7 @@ requires = [ + "scikit-build", + "cmake>=3.18", + "ninja", ++ "looseversion", + ] + build-backend = "setuptools.build_meta" + +diff --git a/scripts/tsplot b/scripts/tsplot +index c64e7b18..10ddf3f4 100755 +--- a/scripts/tsplot ++++ b/scripts/tsplot +@@ -11,7 +11,7 @@ import matplotlib as M + import matplotlib.pyplot as P + import numbers + from functools import reduce +-from distutils.version import LooseVersion ++from looseversion import LooseVersion + from itertools import chain, islice, cycle + + # Run-time check for matplot lib version for line style functionality. From 075e102ba4f72af2169208247dbcc9dfb6a94cf2 Mon Sep 17 00:00:00 2001 From: Sandro Date: Fri, 21 Jul 2023 16:45:28 +0200 Subject: [PATCH 08/29] Fix ExcludeArch - s/s390/s390x/ --- arbor.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 2d6941f..32150a3 100644 --- a/arbor.spec +++ b/arbor.spec @@ -47,7 +47,7 @@ Patch: looseversion.patch # Random123 does not support: # mips64r2 mips32r2 s390 # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval -ExcludeArch: mips64r2 mips32r2 s390 %{ix86} +ExcludeArch: mips64r2 mips32r2 s390x %{ix86} BuildRequires: cmake BuildRequires: make From 5f9c71a9f39cbf6b302c7b894f3e51cac3449e5f Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 6 Nov 2023 07:41:38 -0500 Subject: [PATCH 09/29] Do not enable extra ISA extensions based on the build host We must confine ourselves to the baseline features of each architecture unless runtime feature detection is used. --- arbor.spec | 8 -------- 1 file changed, 8 deletions(-) diff --git a/arbor.spec b/arbor.spec index 32150a3..d91e333 100644 --- a/arbor.spec +++ b/arbor.spec @@ -212,18 +212,10 @@ pushd build$MPI_COMPILE_TYPE && -DCMAKE_BUILD_TYPE:STRING="release" \\\ -DARB_USE_BUNDLED_LIBS:BOOL=OFF \\\ -DARB_USE_BUNDLED_PYBIND11:BOOL=OFF \\\ -%ifarch x86_64 i686 aarch64 - -DARB_VECTORIZE:BOOL=ON \\\ -%else -DARB_VECTORIZE:BOOL=OFF \\\ -%endif -DARB_WITH_MPI:BOOL=$MPI_YES \\\ -DARB_WITH_GPU:BOOL=OFF \\\ -%ifnarch s390x s390 - -DARB_ARCH:STRING="native" \\\ -%else -DARB_ARCH:STRING="none" \\\ -%endif -DCMAKE_INSTALL_LIBDIR=%{_lib} \\\ -DARB_WITH_PYTHON:BOOL=ON \\\ -DARB_PYTHON_LIB_PATH:STRING=$MPI_PYTHON3_SITEARCH \\\ From 34249863176ab007cb5ffa8d55b6d120fb37ea95 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 13:28:00 +0000 Subject: [PATCH 10/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From a4e8c1c574150431f51dfdefe141c6ec379486dc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 23:22:37 +0000 Subject: [PATCH 11/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From b9e93b2a069c4adb9b4db3e21f8c66a4e4b78217 Mon Sep 17 00:00:00 2001 From: Sandro Date: Thu, 21 Dec 2023 15:38:15 +0100 Subject: [PATCH 12/29] Update to 0.9.0 (RHBZ#2145131) - Drop obsolete patches - Exclude segfaulting tests --- .gitignore | 1 + 2080.patch | 33 --------------------------------- arbor.spec | 11 ++--------- looseversion.patch | 25 ------------------------- sources | 2 +- 5 files changed, 4 insertions(+), 68 deletions(-) delete mode 100644 2080.patch delete mode 100644 looseversion.patch diff --git a/.gitignore b/.gitignore index df2c4bf..91a7093 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /arbor-0.5.2.tar.gz /arbor-0.6.tar.gz /arbor-0.7.tar.gz +/arbor-0.9.0.tar.gz diff --git a/2080.patch b/2080.patch deleted file mode 100644 index acb984d..0000000 --- a/2080.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 884c568f96bc10079f28f4b2b7c8fc120c020053 Mon Sep 17 00:00:00 2001 -From: "Benjamin A. Beasley" -Date: Thu, 19 Jan 2023 10:10:21 -0500 -Subject: [PATCH] Add some missing #include directives - -Fixes failure to compile with GCC 13. ---- - arbor/include/arbor/morph/primitives.hpp | 1 + - arbor/threading/threading.cpp | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/arbor/include/arbor/morph/primitives.hpp b/arbor/include/arbor/morph/primitives.hpp -index 4be04670b..9d75060df 100644 ---- a/arbor/include/arbor/morph/primitives.hpp -+++ b/arbor/include/arbor/morph/primitives.hpp -@@ -2,6 +2,7 @@ - - #include - #include -+#include - #include - #include - -diff --git a/arbor/threading/threading.cpp b/arbor/threading/threading.cpp -index 552fda90a..4c786b867 100644 ---- a/arbor/threading/threading.cpp -+++ b/arbor/threading/threading.cpp -@@ -1,4 +1,5 @@ - #include -+#include - - #include - #include diff --git a/arbor.spec b/arbor.spec index d91e333..820f868 100644 --- a/arbor.spec +++ b/arbor.spec @@ -22,7 +22,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ %global forgeurl https://github.com/arbor-sim/arbor Name: arbor -Version: 0.7 +Version: 0.9.0 Release: %autorelease Summary: Multi-compartment neural network simulation library @@ -36,13 +36,6 @@ Source2: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts License: BSD-3-Clause Patch: 0001-Quote-various-cmake-var-values.patch -# Add some missing #include directives -# Fixes failure to compile with GCC 13. -# https://github.com/arbor-sim/arbor/pull/2080 -Patch: %{forgeurl}/pull/2080.patch -# Replace use of LooseVersion from distutils.version (removed in Python3.12) -# https://github.com/arbor-sim/arbor/pull/2157 -Patch: looseversion.patch # Random123 does not support: # mips64r2 mips32r2 s390 @@ -359,7 +352,7 @@ export PATH="$PATH:%{buildroot}/%{_bindir}" # these tests segfault, filter out pushd build-serial %{python3} -m unittest discover -v -s ../python - ./bin/unit --gtest_filter=-*task_system.test_copy*:*notification_queue.test_copy* + ./bin/unit --gtest_filter=-*task_system.test_copy*:*notification_queue.test_copy*:*diffusion* ./bin/unit-modcc cp ../scripts/run_cpp_examples.sh . ./run_cpp_examples.sh diff --git a/looseversion.patch b/looseversion.patch deleted file mode 100644 index 65fde4a..0000000 --- a/looseversion.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/pyproject.toml b/pyproject.toml -index 0d732541..12e003e2 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -46,6 +46,7 @@ requires = [ - "scikit-build", - "cmake>=3.18", - "ninja", -+ "looseversion", - ] - build-backend = "setuptools.build_meta" - -diff --git a/scripts/tsplot b/scripts/tsplot -index c64e7b18..10ddf3f4 100755 ---- a/scripts/tsplot -+++ b/scripts/tsplot -@@ -11,7 +11,7 @@ import matplotlib as M - import matplotlib.pyplot as P - import numbers - from functools import reduce --from distutils.version import LooseVersion -+from looseversion import LooseVersion - from itertools import chain, islice, cycle - - # Run-time check for matplot lib version for line style functionality. diff --git a/sources b/sources index b7a9016..2f80fee 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (arbor-0.7.tar.gz) = 66471172e159c87c930c89cfed20020cd7c770e0fd5f32b265197710c7bbd2920cfa018f384553130dd93645e149ccb71f64cc04208534c96b4e581f0c0acb50 +SHA512 (arbor-0.9.0.tar.gz) = fa0280cae870c150c8f891949da9d6276f672bb7191b7b982cda4695dd38e3bffdd0dfa5f3acc2cf940909f64eb9da04cd11aeb7a4baa262fdbcd99be618aa15 From 954f13bec726b36e03225ea55d173de9b9ff3c7d Mon Sep 17 00:00:00 2001 From: Sandro Date: Thu, 21 Dec 2023 15:44:35 +0100 Subject: [PATCH 13/29] Use user friendly notation of conditionals [skip changelog] --- arbor.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arbor.spec b/arbor.spec index 820f868..45cc5ea 100644 --- a/arbor.spec +++ b/arbor.spec @@ -14,10 +14,10 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ } # Best to start with the serial version when debugging build failures -%bcond_without mpich -%bcond_without openmpi +%bcond mpich 1 +%bcond openmpi 1 -%bcond_without tests +%bcond tests 1 %global forgeurl https://github.com/arbor-sim/arbor From 75ce46ad7fd7f96aac77bf114bd2762d0fc12d1c Mon Sep 17 00:00:00 2001 From: Sandro Date: Thu, 21 Dec 2023 15:48:33 +0100 Subject: [PATCH 14/29] Add Packit confg [skip changelog] --- .packit.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .packit.yaml diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..d8b371c --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,13 @@ +upstream_project_url: https://github.com/arbor-sim/arbor +upstream_tag_template: v{version} + +jobs: + - job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-rawhide + - job: koji_build + + trigger: commit + dist_git_branches: + - fedora-all From 962e7973c5262e52cc3641dd1193a03de252f378 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 24 Dec 2023 13:24:48 +0100 Subject: [PATCH 15/29] Disable Python unittest for MPI - Use Python macros for configuring test environment - Make `gtest_filter` modular - Re-enable previously disabled tests (they now succeed) [skip changelog] --- arbor.spec | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/arbor.spec b/arbor.spec index 45cc5ea..cb54184 100644 --- a/arbor.spec +++ b/arbor.spec @@ -19,6 +19,12 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ %bcond tests 1 +# Python unit tests in MPI environment fail in a non-deterministic way. +# Using pytest _as is_ doesn't work either and `-m unittest` does not +# allow filtering tests as `pytest -k` does. +# For now we don't run the Python MPI tests. +%bcond mpi_py_unittest 0 + %global forgeurl https://github.com/arbor-sim/arbor Name: arbor @@ -341,51 +347,52 @@ popd %endif -# https://github.com/arbor-sim/arbor/blob/master/.github/workflows/test-everything.yml +# https://github.com/arbor-sim/arbor/blob/master/.github/workflows/test-matrix.yml %if %{with tests} %check -# General tests -export PYTHONPATH="%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}" -# for arbor-build-catalogue -export PATH="$PATH:%{buildroot}/%{_bindir}" + +# Taken from upstream's GitHub workflow +%global mpirun mpirun -n %{_smp_build_ncpus} # these tests segfault, filter out +gtest_filter="${gtest_filter--}${gtest_filter+:}*diffusion*" + pushd build-serial - %{python3} -m unittest discover -v -s ../python - ./bin/unit --gtest_filter=-*task_system.test_copy*:*notification_queue.test_copy*:*diffusion* + %{py3_test_envvars} %{python3} -m unittest discover -v -s ../python + ./bin/unit ${gtest_filter+--gtest_filter=}${gtest_filter-} ./bin/unit-modcc cp ../scripts/run_cpp_examples.sh . ./run_cpp_examples.sh popd -./scripts/run_python_examples.sh +%{py3_test_envvars} ./scripts/run_python_examples.sh # MPICH %if %{with mpich} %{_mpich_load} -export PYTHONPATH="%{buildroot}/$MPI_PYTHON3_SITEARCH" -export PATH="$PATH:." pushd build-mpich - mpirun -n %{_smp_build_ncpus} %{python3} -m unittest discover -v -s ../python - mpirun -n %{_smp_build_ncpus} ./bin/unit-mpi +%if %{with mpi_py_unittest} + %{py3_test_envvars} %{mpirun} %{python3} -m unittest discover -v -s ../python +%endif + %{mpirun} ./bin/unit-mpi cp ../scripts/run_cpp_examples.sh . - ./run_cpp_examples.sh "mpirun -n %{_smp_build_ncpus}" + ./run_cpp_examples.sh "%{mpirun}" popd -./scripts/run_python_examples.sh "mpirun -n %{_smp_build_ncpus}" +%{py3_test_envvars} ./scripts/run_python_examples.sh "%{mpirun}" %{_mpich_unload} %endif # OpenMPI %if %{with openmpi} %{_openmpi_load} -export PYTHONPATH="%{buildroot}/$MPI_PYTHON3_SITEARCH" -export PATH="$PATH:." pushd build-openmpi - mpirun -n %{_smp_build_ncpus} %{python3} -m unittest discover -v -s ../python - mpirun -n %{_smp_build_ncpus} ./bin/unit-mpi +%if %{with mpi_py_unittest} + %{py3_test_envvars} %{mpirun} %{python3} -m unittest discover -v -s ../python +%endif + %{mpirun} ./bin/unit-mpi cp ../scripts/run_cpp_examples.sh . - ./run_cpp_examples.sh "mpirun -n %{_smp_build_ncpus}" + ./run_cpp_examples.sh "%{mpirun}" popd -./scripts/run_python_examples.sh "mpirun -n %{_smp_build_ncpus}" +%{py3_test_envvars} ./scripts/run_python_examples.sh "%{mpirun}" %{_openmpi_unload} %endif %endif From 24bcdc3f022c09f847c40b6af000e917e4433227 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sun, 24 Dec 2023 18:35:46 +0100 Subject: [PATCH 16/29] Fix rpmlint errors Fixed: * wrong-script-interpreter * no-binary * lto-no-text-in-archive Pending: * static-library-without-debuginfo [skip changelog] --- arbor.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index cb54184..f48af7f 100644 --- a/arbor.spec +++ b/arbor.spec @@ -89,11 +89,13 @@ Provides: arbor-static = %{version}-%{release} %package doc # Does not require the main package, since it may be installed by people using # the MPI builds -Summary: Documentation for arbor +Summary: Documentation for arbor BuildRequires: python3-sphinx BuildRequires: python3-sphinx_rtd_theme BuildRequires: python3-svgwrite +BuildArch: noarch + %description doc %{_description} %if %{with mpich} @@ -171,6 +173,9 @@ find . -type f -name "CMakeLists.txt" -exec sed -i -e 's/ext-tclap//' -e 's/ext- # Correct Python shebangs in all files find . -type f -name "*" -exec sed -i 's|^#![ ]*/usr/bin/env.*python.*$|#!/usr/bin/python3|' {} 2>/dev/null ';' +# Fix shebang (special case) +sed -i 's|^#![ ]*/usr/env/bin.*python.*$|#!/usr/bin/python3|' example/lfp/neuron_lfp_example.py + # test scripts cp %{SOURCE1} scripts/ cp %{SOURCE2} scripts/ @@ -215,6 +220,7 @@ pushd build$MPI_COMPILE_TYPE && -DARB_WITH_MPI:BOOL=$MPI_YES \\\ -DARB_WITH_GPU:BOOL=OFF \\\ -DARB_ARCH:STRING="none" \\\ + -DARB_CXX_FLAGS_TARGET:STRING="-ffat-lto-objects" \\\ -DCMAKE_INSTALL_LIBDIR=%{_lib} \\\ -DARB_WITH_PYTHON:BOOL=ON \\\ -DARB_PYTHON_LIB_PATH:STRING=$MPI_PYTHON3_SITEARCH \\\ From 33098ec868c47404ce2e25f0d78777ff4a4180fc Mon Sep 17 00:00:00 2001 From: Sandro Date: Tue, 6 Feb 2024 11:51:18 +0100 Subject: [PATCH 17/29] Stop running examples script The script is no longer run upstream. Let's follow suit. [skip changelog] --- arbor.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index f48af7f..f929765 100644 --- a/arbor.spec +++ b/arbor.spec @@ -370,7 +370,6 @@ pushd build-serial cp ../scripts/run_cpp_examples.sh . ./run_cpp_examples.sh popd -%{py3_test_envvars} ./scripts/run_python_examples.sh # MPICH %if %{with mpich} From 6ebc987a02bffba639fe79239c934ac9ea86aca9 Mon Sep 17 00:00:00 2001 From: Sandro Date: Mon, 29 Apr 2024 14:37:58 +0200 Subject: [PATCH 18/29] Fix missing includes [skip changelog] --- arbor.spec | 2 ++ fix-missing-includes.patch | 43 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 fix-missing-includes.patch diff --git a/arbor.spec b/arbor.spec index f929765..36324fc 100644 --- a/arbor.spec +++ b/arbor.spec @@ -42,6 +42,8 @@ Source2: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts License: BSD-3-Clause Patch: 0001-Quote-various-cmake-var-values.patch +# Tests are failing to compile due to some missing includes +Patch: fix-missing-includes.patch # Random123 does not support: # mips64r2 mips32r2 s390 diff --git a/fix-missing-includes.patch b/fix-missing-includes.patch new file mode 100644 index 0000000..edfda30 --- /dev/null +++ b/fix-missing-includes.patch @@ -0,0 +1,43 @@ +From fa15938c196bf317e0292d41ec7d341978e9ed08 Mon Sep 17 00:00:00 2001 +From: Sandro +Date: Mon, 29 Apr 2024 14:35:01 +0200 +Subject: [PATCH] Fix missing includes + +Tests are failing to compile without those. + +diff --git a/test/unit/common.hpp b/test/unit/common.hpp +index db75e4d1..e02b9df2 100644 +--- a/test/unit/common.hpp ++++ b/test/unit/common.hpp +@@ -11,6 +11,7 @@ + #include + #include + #include ++#include + + #include + +diff --git a/test/unit/test_event_queue.cpp b/test/unit/test_event_queue.cpp +index daa0ccb9..17c10378 100644 +--- a/test/unit/test_event_queue.cpp ++++ b/test/unit/test_event_queue.cpp +@@ -6,6 +6,7 @@ + #include + + #include "event_queue.hpp" ++#include "common.hpp" + + using namespace arb; + +diff --git a/test/unit/test_ordered_forest.cpp b/test/unit/test_ordered_forest.cpp +index c58c76a4..12f7bd31 100644 +--- a/test/unit/test_ordered_forest.cpp ++++ b/test/unit/test_ordered_forest.cpp +@@ -5,6 +5,7 @@ + + #include + #include "util/ordered_forest.hpp" ++#include "common.hpp" + + using arb::util::ordered_forest; + From ba0e5e1b73201cb595b762d22d45e1fb910ca797 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sun, 9 Jun 2024 02:10:06 +0200 Subject: [PATCH 19/29] Rebuilt for Python 3.13 From cf66a6f82067aaf88bb485fee1339f5eda389579 Mon Sep 17 00:00:00 2001 From: Sandro Date: Sat, 13 Jul 2024 11:14:02 +0200 Subject: [PATCH 20/29] Provide Python meta data using macro Allow packages depending on `arbor` to resolve their deps. --- arbor.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 36324fc..0710547 100644 --- a/arbor.spec +++ b/arbor.spec @@ -65,7 +65,6 @@ BuildRequires: python3-setuptools BuildRequires: Random123-devel BuildRequires: tclap-devel BuildRequires: pugixml-devel -Provides: python3-arbor = %{version}-%{release} # For validation, but we don't have these BRs # BuildRequires: julia julia-sundials julia-unitful julia-JSON @@ -79,6 +78,9 @@ BuildRequires: %{py3_dist seaborn} # Required by arbor Requires: %{py3_dist numpy} +# Provide Python meta data for packages requiring arbor +%py_provides python3-arbor + %description %{_description} %package devel From 8aea21b811aaea6650371718a05bbf99cdff15c9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 17:20:50 +0000 Subject: [PATCH 21/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From e65a78b984f778056f1e8c25dc38b705d98bf682 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 11:26:54 +0000 Subject: [PATCH 22/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 0fbdf5f6bf95e2965aaff84e265418214a14c0d8 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 16 Jan 2025 09:53:58 -0500 Subject: [PATCH 23/29] Fix a few typos that cause failure to compile with GCC 15 --- ...that-cause-failure-to-compile-with-G.patch | 41 +++++++++++++++++++ arbor.spec | 5 +++ 2 files changed, 46 insertions(+) create mode 100644 0001-Fix-a-few-typos-that-cause-failure-to-compile-with-G.patch diff --git a/0001-Fix-a-few-typos-that-cause-failure-to-compile-with-G.patch b/0001-Fix-a-few-typos-that-cause-failure-to-compile-with-G.patch new file mode 100644 index 0000000..d337a29 --- /dev/null +++ b/0001-Fix-a-few-typos-that-cause-failure-to-compile-with-G.patch @@ -0,0 +1,41 @@ +From 8880ff435f69b515a57e60e8b7434dad9e47847e Mon Sep 17 00:00:00 2001 +From: "Benjamin A. Beasley" +Date: Thu, 16 Jan 2025 09:49:20 -0500 +Subject: [PATCH] Fix a few typos that cause failure to compile with GCC 15 + +These were eventually included in +76120d16c00ae67128c3c69421ab712f985f3445, along with many other changes. +--- + arbor/include/arbor/util/expected.hpp | 2 +- + python/strprintf.hpp | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arbor/include/arbor/util/expected.hpp b/arbor/include/arbor/util/expected.hpp +index 9d860f65..1af88eb4 100644 +--- a/arbor/include/arbor/util/expected.hpp ++++ b/arbor/include/arbor/util/expected.hpp +@@ -486,7 +486,7 @@ struct expected { + // Swap ops. + + void swap(expected& other) { +- data_.swap(other.data); ++ data_.swap(other.data_); + } + + // Accessors. +diff --git a/python/strprintf.hpp b/python/strprintf.hpp +index 63801677..2ccf12c1 100644 +--- a/python/strprintf.hpp ++++ b/python/strprintf.hpp +@@ -168,7 +168,7 @@ namespace impl { + for (auto& x: s.seq_) { + if (!first) o << s.sep_; + first = false; +- o << s.f(x); ++ o << s.f_(x); + } + return o; + } +-- +2.47.1 + diff --git a/arbor.spec b/arbor.spec index 0710547..ebd3875 100644 --- a/arbor.spec +++ b/arbor.spec @@ -44,6 +44,11 @@ License: BSD-3-Clause Patch: 0001-Quote-various-cmake-var-values.patch # Tests are failing to compile due to some missing includes Patch: fix-missing-includes.patch +# Fix a few typos that cause failure to compile with GCC 15 +# +# These were eventually included in +# 76120d16c00ae67128c3c69421ab712f985f3445, along with many other changes. +Patch: 0001-Fix-a-few-typos-that-cause-failure-to-compile-with-G.patch # Random123 does not support: # mips64r2 mips32r2 s390 From a8a86bb6e2b0e10e806548f0e7d137460c3f267b Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 22:57:55 +0200 Subject: [PATCH 24/29] Rebuilt for Python 3.14 From f00866be761625ef567ad22d64b4681e40eb6872 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 17:11:20 +0000 Subject: [PATCH 25/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From da8dc566a0becf9a0cf4c63d07a552d65de10cbc Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 12:38:25 +0200 Subject: [PATCH 26/29] Rebuilt for Python 3.14.0rc2 bytecode From fb5798ff20cff15bf5e5e2be12e3b8cb8f905bd4 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 12:07:31 +0200 Subject: [PATCH 27/29] Rebuilt for Python 3.14.0rc3 bytecode From 6e948adaf65b421b7cd945798d66f3f3d25e1fbc Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Mon, 3 Nov 2025 08:25:35 +0000 Subject: [PATCH 28/29] Remove pybind11 version check so we can use pybind11 3.0 --- arbor-0.9.0-pybind11-3.0.patch | 22 ++++++++++++++++++++++ arbor.spec | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 arbor-0.9.0-pybind11-3.0.patch diff --git a/arbor-0.9.0-pybind11-3.0.patch b/arbor-0.9.0-pybind11-3.0.patch new file mode 100644 index 0000000..6fc58db --- /dev/null +++ b/arbor-0.9.0-pybind11-3.0.patch @@ -0,0 +1,22 @@ +diff -Naur arbor-0.9.0-original/python/pyarb.hpp arbor-0.9.0/python/pyarb.hpp +--- arbor-0.9.0-original/python/pyarb.hpp 2023-08-10 10:47:38.000000000 +0100 ++++ arbor-0.9.0/python/pyarb.hpp 2025-11-03 08:24:00.093256311 +0000 +@@ -13,18 +13,6 @@ + + #include + +-// Version check +-#define mk_tok(x) #x +-#define mk_ver(M, m, p) mk_tok(M) "." mk_tok(m) "." mk_tok(p) +-#define PB11_ERR(M, m, p) "Required version of pybind11 is 2.8.1 <= version < 3.0.0 Found " mk_ver(M, m, p) +-static_assert((PYBIND11_VERSION_HEX >= 0x02080100) +- && +- (PYBIND11_VERSION_HEX < 0x03000000), +- PB11_ERR(PYBIND11_VERSION_MAJOR, PYBIND11_VERSION_MINOR, PYBIND11_VERSION_PATCH)); +-#undef PB11_ERR +-#undef mk_ver +-#undef mk_tok +- + namespace pyarb { + + // Sample recorder object interface. diff --git a/arbor.spec b/arbor.spec index ebd3875..8e76de4 100644 --- a/arbor.spec +++ b/arbor.spec @@ -49,6 +49,9 @@ Patch: fix-missing-includes.patch # These were eventually included in # 76120d16c00ae67128c3c69421ab712f985f3445, along with many other changes. Patch: 0001-Fix-a-few-typos-that-cause-failure-to-compile-with-G.patch +# Remove the hard-coded pybind11 version check so that we can build with +# pybind11 3.0; this is part of https://github.com/arbor-sim/arbor/pull/2481. +Patch: arbor-0.9.0-pybind11-3.0.patch # Random123 does not support: # mips64r2 mips32r2 s390 From 72e9933a9a4d03477802e939d9483be40e67e80f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 16 Jan 2026 03:52:17 +0000 Subject: [PATCH 29/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild