From 7c5f38b3ae16f3b66b14db2ea3f5a0a76a48320e Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Tue, 10 Dec 2019 16:35:34 +0000 Subject: [PATCH 01/60] Initial import --- .gitignore | 1 + 0001-Use-system-pybind11.patch | 38 ++ ...a0586deb64c6fbd55fc6f98290466c176319.patch | 53 +++ arbor.spec | 362 ++++++++++++++++++ sources | 1 + 5 files changed, 455 insertions(+) create mode 100644 .gitignore create mode 100644 0001-Use-system-pybind11.patch create mode 100644 18e3a0586deb64c6fbd55fc6f98290466c176319.patch create mode 100644 arbor.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..23af82b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/arbor-0.2.2.tar.gz diff --git a/0001-Use-system-pybind11.patch b/0001-Use-system-pybind11.patch new file mode 100644 index 0000000..494137a --- /dev/null +++ b/0001-Use-system-pybind11.patch @@ -0,0 +1,38 @@ +From f33575182f8780ce3281e65916d05529a9b861e5 Mon Sep 17 00:00:00 2001 +From: "Ankur Sinha (Ankur Sinha Gmail)" +Date: Sat, 7 Dec 2019 16:58:38 +0000 +Subject: [PATCH] Use system pybind11 + +--- + python/CMakeLists.txt | 14 +++----------- + 1 file changed, 3 insertions(+), 11 deletions(-) + +diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt +index 063c514..b0552bd 100644 +--- a/python/CMakeLists.txt ++++ b/python/CMakeLists.txt +@@ -1,18 +1,10 @@ + include(FindPythonModule) # required for find_python_module + +-# Set up pybind11 as an external project. +-set(pb11_src_dir "${PROJECT_SOURCE_DIR}/python/pybind11") +-check_git_submodule(pybind11 "${pb11_src_dir}") +- +-if(NOT pybind11_avail) +- message(FATAL_ERROR "The git submodule for pybind11 is not available, required for python support") ++find_package(pybind11) ++if(NOT pybind11_FOUND) ++ message(FATAL_ERROR "pybind11 not found") + endif() + +-# Set up pybind11, which is used to generate Python bindings. +-# Pybind11 has good cmake support, so just add the pybind11 directory, +-# instead of using find_package. +-set(PYBIND11_CPP_STANDARD -std=c++14) +-add_subdirectory(pybind11) + + # The Python library. MODULE will make a Python-exclusive model. + add_library(pyarb MODULE +-- +2.23.0 + diff --git a/18e3a0586deb64c6fbd55fc6f98290466c176319.patch b/18e3a0586deb64c6fbd55fc6f98290466c176319.patch new file mode 100644 index 0000000..1844678 --- /dev/null +++ b/18e3a0586deb64c6fbd55fc6f98290466c176319.patch @@ -0,0 +1,53 @@ +From 18e3a0586deb64c6fbd55fc6f98290466c176319 Mon Sep 17 00:00:00 2001 +From: Sam Yates +Date: Tue, 10 Dec 2019 10:05:24 +0100 +Subject: [PATCH] Fix for improper vector element access. + +Fixes #917. + +* Avoid use of empty ranges determined by expressions `&vector[i]` where i equals vector.size(). Replace with expressions using `vector.data()` or subrange views. +--- + arbor/backends/gpu/multi_event_stream.hpp | 2 +- + arbor/backends/multicore/multi_event_stream.hpp | 2 +- + arbor/include/arbor/schedule.hpp | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arbor/backends/gpu/multi_event_stream.hpp b/arbor/backends/gpu/multi_event_stream.hpp +index 82842558..929c325d 100644 +--- a/arbor/backends/gpu/multi_event_stream.hpp ++++ b/arbor/backends/gpu/multi_event_stream.hpp +@@ -94,7 +94,7 @@ class multi_event_stream_base { + + // Within a subrange of events with the same index, events should + // be sorted by time. +- arb_assert(std::is_sorted(&tmp_ev_time_[ev_begin_i], &tmp_ev_time_[ev_i])); ++ arb_assert(util::is_sorted(util::subrange_view(tmp_ev_time_, ev_begin_i, ev_i))); + n_nonempty += (tmp_divs_.back()!=ev_i); + tmp_divs_.push_back(ev_i); + ev_begin_i = ev_i; +diff --git a/arbor/backends/multicore/multi_event_stream.hpp b/arbor/backends/multicore/multi_event_stream.hpp +index ae189364..18b42aa5 100644 +--- a/arbor/backends/multicore/multi_event_stream.hpp ++++ b/arbor/backends/multicore/multi_event_stream.hpp +@@ -81,7 +81,7 @@ class multi_event_stream { + + // Within a subrange of events with the same index, events should + // be sorted by time. +- arb_assert(std::is_sorted(&ev_time_[ev_begin_i], &ev_time_[ev_i])); ++ arb_assert(util::is_sorted(util::subrange_view(ev_time_, ev_begin_i, ev_i))); + mark_[s] = ev_begin_i; + span_begin_[s] = ev_begin_i; + span_end_[s] = ev_i; +diff --git a/arbor/include/arbor/schedule.hpp b/arbor/include/arbor/schedule.hpp +index 15e8d62b..d0087fa0 100644 +--- a/arbor/include/arbor/schedule.hpp ++++ b/arbor/include/arbor/schedule.hpp +@@ -18,7 +18,7 @@ namespace arb { + using time_event_span = std::pair; + + inline time_event_span as_time_event_span(const std::vector& v) { +- return {&v[0], &v[0]+v.size()}; ++ return {v.data(), v.data()+v.size()}; + } + + // A schedule describes a sequence of time values used for sampling. Schedules diff --git a/arbor.spec b/arbor.spec new file mode 100644 index 0000000..8620564 --- /dev/null +++ b/arbor.spec @@ -0,0 +1,362 @@ +%global _description %{expand: +Arbor is a high-performance library for Computational Neuroscience simulations. + +Some key features include: + +- Asynchronous spike exchange that overlaps compute and communication. +- Efficient sampling of voltage and current on all back ends. +- Efficient implementation of all features on GPU. +- Reporting of memory and energy consumption (when available on platform). +- An API for addition of new cell types, e.g. LIF and Poisson spike generators. +- Validation tests against numeric/analytic models and NEURON. + +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_without tests + +Name: arbor +Version: 0.2.2 + +Release: 3%{?dist} +Summary: Multi-compartment neural network simulation library + +License: BSD +URL: https://github.com/arbor-sim/%{name} +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +# Use the system copy of pybind11 +# https://github.com/arbor-sim/arbor/issues/915 +Patch0: 0001-Use-system-pybind11.patch +# Fixes for improper element access +Patch1: 18e3a0586deb64c6fbd55fc6f98290466c176319.patch + +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: git-core +BuildRequires: gtest-devel +BuildRequires: json-devel +BuildRequires: libunwind-devel +BuildRequires: pybind11-devel +BuildRequires: python3-devel +BuildRequires: tclap-devel +# For validation, but we don't have these BRs +# BuildRequires: julia julia-sundials julia-unitful julia-JSON + +%description %{_description} + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Provides: %{name}-static = %{version}-%{release} + +%description devel %{_description} + +%package doc +# Does not require the main package, since it may be installed by people using +# the MPI builds +Summary: Documentation for %{name} +BuildRequires: python3-sphinx +BuildRequires: python3-sphinx_rtd_theme + +%description doc %{_description} + +%if %{with mpich} +%package mpich +Summary: MPICH build for %{name} +BuildRequires: mpich-devel +BuildRequires: rpm-mpi-hooks +BuildRequires: python3-mpi4py-mpich + +Requires: mpich +Requires: python3-mpich +Requires: python3-mpi4py-mpich + +%description mpich %{_description} + +%package mpich-devel +Summary: Development files for %{name}-mpich +Requires: %{name}-mpich%{?_isa} = %{version}-%{release} +Provides: %{name}-mpich-static = %{version}-%{release} + +%description mpich-devel %{_description} +%endif + +%if %{with openmpi} +%package openmpi +Summary: OpenMPI build for %{name} +BuildRequires: openmpi-devel +BuildRequires: rpm-mpi-hooks +BuildRequires: python3-mpi4py-openmpi + +Requires: openmpi +Requires: python3-openmpi +Requires: python3-mpi4py-openmpi + +%description openmpi %{_description} + +%package openmpi-devel +Summary: Development files for %{name}-openmpi +Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} +Provides: %{name}-openmpi-static = %{version}-%{release} + +%description openmpi-devel %{_description} +%endif + +%prep +%autosetup -S git + +# Do not build external libraries +# tclap and json +sed -i '/add_subdirectory(ext)/ d' CMakeLists.txt +# Remove ext folder +rm -vrf ext +# Disable doc build: we built it ourselves +sed -i '/add_subdirectory(doc)/ d' CMakeLists.txt +# tclap and json are both header only +find . -type f -name "CMakeLists.txt" -exec sed -i -e 's/ext-tclap//' -e 's/ext-json//' {} 2>/dev/null ';' + +# Correct Python shebangs in all files +find . -type f -name "*" -exec sed -i 's|^#![ ]*/usr/bin/env.*python.*$|#!/usr/bin/python3|' {} 2>/dev/null ';' +# We set it, remove the hard coded bits from CMakeLists.txt +sed -i '/set(ARB_PYEXECDIR/ d' python/CMakeLists.txt + +# builddir for serial +mkdir build-serial + +%if %{with mpich} + mkdir build-mpich +%endif + +%if %{with openmpi} + mkdir build-openmpi +%endif + +%build +# Best to use && so that if anything in the chain fails, the build also fails +# straight away +%global do_cmake_config %{expand: \ +echo +echo "*** BUILDING %{name}-%{version}$MPI_COMPILE_TYPE ***" +echo +%set_build_flags +pushd build$MPI_COMPILE_TYPE && + cmake \\\ + -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ + -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ + -DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \\\ + -DCMAKE_INSTALL_PREFIX:PATH=$MPI_HOME \\\ + -DINCLUDE_INSTALL_DIR:PATH=$MPI_INCLUDE \\\ + -DLIB_INSTALL_DIR:PATH=$MPI_LIB \\\ + -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \\\ + -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\ + -DCMAKE_SKIP_RPATH:BOOL=ON \\\ + -DCMAKE_BUILD_TYPE:STRING="release" \\\ + -DARB_VECTORIZE:BOOL=ON \\\ + -DARB_WITH_MPI:BOOL=$MPI_YES \\\ + -DARB_WITH_GPU:BOOL=OFF \\\ + -DARB_ARCH:STRING="native" \\\ + -DCMAKE_INSTALL_LIBDIR=%{_lib} \\\ + -DARB_WITH_PYTHON:BOOL=ON \\\ + -DARB_PYEXECDIR:STRING=$MPI_PYTHON3_SITEARCH \\\ +%if "%{_lib}" == "lib64" + -DLIB_SUFFIX=64 .. && +%else + -DLIB_SUFFIX="" .. && +%endif +popd || exit -1; + +# Upstream only supports static libraries +# https://github.com/arbor-sim/arbor/issues/916 +# -DBUILD_SHARED_LIBS:BOOL=ON \\\ +# Missing BRs +# -DARB_BUILD_VALIDATION_DATA:BOOL=ON \\\ +} + +%global do_make_build %{expand: \ + %make_build -C build$MPI_COMPILE_TYPE || exit -1 + %make_build -C build$MPI_COMPILE_TYPE tests || exit -1 +} + +# Build serial version, dummy arguments +export MPI_COMPILER=serial +export MPI_SUFFIX="" +export MPI_HOME=%{_prefix} +export MPI_INCLUDE=%{_includedir} +export MPI_LIB=%{_libdir} +export MPI_YES=OFF +export MPI_COMPILE_TYPE="-serial" +export MPI_PYTHON3_SITEARCH=%{python3_sitearch} +%{do_cmake_config} +%{do_make_build} + +# Manually make docs in the serial build +sphinx-build-%{python3_version} -b html doc html +# Remove uneeded dotfiles +rm -rfv html/{.buildinfo,.doctrees} + + +# Build mpich version +%if %{with mpich} +%{_mpich_load} +export CC=mpicc +export CXX=mpicxx +export FC=mpif90 +export F77=mpif77 +export MPI_YES=ON +export MPI_COMPILE_TYPE="-mpich" +%{do_cmake_config} +%{do_make_build} + +%{_mpich_unload} +%endif + +# Build OpenMPI version +%if %{with openmpi} +%{_openmpi_load} +export CC=mpicc +export CXX=mpicxx +export FC=mpif90 +export F77=mpif77 +export MPI_YES=ON +# Python 3 +export MPI_COMPILE_TYPE="-openmpi" +%{do_cmake_config} +%{do_make_build} + +%{_openmpi_unload} +%endif + +%install +# Install everything +%global do_install %{expand: \ +echo +echo "*** INSTALLING %{name}-%{version}$MPI_COMPILE_TYPE ***" +echo + %make_install -C build$MPI_COMPILE_TYPE || exit -1 +} + +# install serial version +export MPI_SUFFIX="" +export MPI_HOME=%{_prefix} +export MPI_BIN=%{_bindir} +export MPI_YES=OFF +export MPI_COMPILE_TYPE="-serial" +%{do_install} + + +# Install MPICH version +%if %{with mpich} +%{_mpich_load} +export MPI_COMPILE_TYPE="-mpich" +%{do_install} + +# Place in correct mpi libdir +%if %{_lib} == lib64 + mv -v $RPM_BUILD_ROOT/%{_libdir}/mpich/lib64 $RPM_BUILD_ROOT/$MPI_LIB/ +%endif + +pushd $RPM_BUILD_ROOT/$MPI_BIN + mv -v modcc{,$MPI_SUFFIX} -v +popd +%{_mpich_unload} +%endif + +# Install OpenMPI version +%if %{with openmpi} +%{_openmpi_load} +export MPI_COMPILE_TYPE="-openmpi" +%{do_install} + +# Correct location +%if %{_lib} == lib64 + mv -v $RPM_BUILD_ROOT/%{_libdir}/openmpi/lib64 $RPM_BUILD_ROOT/$MPI_LIB/ +%endif + +pushd $RPM_BUILD_ROOT/$MPI_BIN + mv -v modcc{,$MPI_SUFFIX} -v +popd +%{_openmpi_unload} +%endif + + +%if %{with tests} +%check +# Run for serial only. our builders are not using MPI +pushd build-serial + ./bin/unit +popd +%endif + + +%files +%license LICENSE +%doc README.md +%{_bindir}/modcc +%{python3_sitearch}/%{name}.cpython-%{python3_version_nodots}*.so + + +%files devel +%{_includedir}/%{name} +%{_includedir}/%{name}env +%{_libdir}/cmake/%{name} +%{_libdir}/libarbor.a +%{_libdir}/libarborenv.a + +%files doc +%license LICENSE +%doc html + + +%if %{with mpich} +%files mpich +%doc README.md +%license LICENSE +%{_libdir}/mpich/bin/modcc_mpich +%{python3_sitearch}/mpich/%{name}.cpython-%{python3_version_nodots}*.so + +%files mpich-devel +%{_libdir}/mpich/include/%{name} +%{_libdir}/mpich/include/%{name}env +%{_libdir}/mpich/lib/cmake/%{name} +%{_libdir}/mpich/lib/libarbor.a +%{_libdir}/mpich/lib/libarborenv.a +%endif + +%if %{with openmpi} +%files openmpi +%doc README.md +%license LICENSE +%{_libdir}/openmpi/bin/modcc_openmpi +%{python3_sitearch}/openmpi/%{name}.cpython-%{python3_version_nodots}*.so + +%files openmpi-devel +%{_libdir}/openmpi/include/%{name} +%{_libdir}/openmpi/include/%{name}env +%{_libdir}/openmpi/lib/cmake/%{name} +%{_libdir}/openmpi/lib/libarbor.a +%{_libdir}/openmpi/lib/libarborenv.a +%endif + +%changelog +* Tue Dec 10 2019 Ankur Sinha - 0.2.2-3 +- Enable tests +- Add patch for test crash + +* Mon Dec 09 2019 Ankur Sinha - 0.2.2-2 +- Remove arch info in provides for static +- Temporarily disable tests +- use python3-devel +- Add documentation in separate sub-package +- add python3-{mpich,openmpi} as requires that own MPI_PYTHON3_SITEARCH directories +- Improve summaries for sub-packages to please rpmlint + +* Sat Dec 07 2019 Ankur Sinha - 0.2.2-1 +- Update to latest release + +* Sun Jan 13 2019 Ankur Sinha - 0.1-1 +- Initial rpm package diff --git a/sources b/sources new file mode 100644 index 0000000..36af8fa --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (arbor-0.2.2.tar.gz) = 5da25d643ac607f94d157fd2506d3974e512328b9391d6b00f245a61142eaa8288722b798e2a497b62d74bccd891f90f7929356b384a7169c7533bba8792d6f6 From 565a52c31b8b180ea3044aa297222d1cb7a9b237 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 11:56:01 +0000 Subject: [PATCH 02/60] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- arbor.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 8620564..6b316ba 100644 --- a/arbor.spec +++ b/arbor.spec @@ -22,7 +22,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.2.2 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -343,6 +343,9 @@ popd %endif %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 0.2.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Tue Dec 10 2019 Ankur Sinha - 0.2.2-3 - Enable tests - Add patch for test crash From 106e0717de9d53bad8ce92230da133f3b839cabc Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sun, 23 Feb 2020 17:44:12 +0000 Subject: [PATCH 03/60] Fix build using snapshot --- .gitignore | 1 + 0001-Correct-isnan-invocation.patch | 49 +++++++++++++++++ 0001-Include-required-header.patch | 24 +++++++++ 0001-Use-system-pybind11.patch | 10 ++-- ...a0586deb64c6fbd55fc6f98290466c176319.patch | 53 ------------------- arbor.spec | 44 ++++++++++++--- sources | 2 +- 7 files changed, 118 insertions(+), 65 deletions(-) create mode 100644 0001-Correct-isnan-invocation.patch create mode 100644 0001-Include-required-header.patch delete mode 100644 18e3a0586deb64c6fbd55fc6f98290466c176319.patch diff --git a/.gitignore b/.gitignore index 23af82b..aa03300 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /arbor-0.2.2.tar.gz +/arbor-f12f934.tar.gz diff --git a/0001-Correct-isnan-invocation.patch b/0001-Correct-isnan-invocation.patch new file mode 100644 index 0000000..5c44296 --- /dev/null +++ b/0001-Correct-isnan-invocation.patch @@ -0,0 +1,49 @@ +From 3207c57635f44f7d38a2e630739d846369779297 Mon Sep 17 00:00:00 2001 +From: "Ankur Sinha (Ankur Sinha Gmail)" +Date: Sun, 23 Feb 2020 15:49:21 +0000 +Subject: [PATCH] Correct isnan invocation + +--- + arbor/include/arbor/simd/neon.hpp | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/arbor/include/arbor/simd/neon.hpp b/arbor/include/arbor/simd/neon.hpp +index 22ae0e7..3857999 100644 +--- a/arbor/include/arbor/simd/neon.hpp ++++ b/arbor/include/arbor/simd/neon.hpp +@@ -397,8 +397,8 @@ struct neon_double2 : implbase { + auto is_small = cmp_lt(x, broadcast(exp_minarg)); + + bool a[2]; +- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; +- a[1] = isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; ++ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; ++ a[1] = std::isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; + + auto is_nan = mask_copy_from(a); + +@@ -445,8 +445,8 @@ struct neon_double2 : implbase { + auto is_small = cmp_lt(x, broadcast(expm1_minarg)); + + bool a[2]; +- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; +- a[1] = isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; ++ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; ++ a[1] = std::isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; + + auto is_nan = mask_copy_from(a); + +@@ -515,8 +515,8 @@ struct neon_double2 : implbase { + auto is_domainerr = cmp_lt(x, broadcast(0)); + + bool a[2]; +- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; +- a[1] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; ++ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; ++ a[1] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; + + auto is_nan = mask_copy_from(a); + is_domainerr = logical_or(is_nan, is_domainerr); +-- +2.24.1 + diff --git a/0001-Include-required-header.patch b/0001-Include-required-header.patch new file mode 100644 index 0000000..fc607a8 --- /dev/null +++ b/0001-Include-required-header.patch @@ -0,0 +1,24 @@ +From 015bce3b60da23b18b308c6b758b463650cff397 Mon Sep 17 00:00:00 2001 +From: "Ankur Sinha (Ankur Sinha Gmail)" +Date: Sun, 23 Feb 2020 14:45:42 +0000 +Subject: [PATCH] Include required header + +--- + arbor/include/arbor/common_types.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/arbor/include/arbor/common_types.hpp b/arbor/include/arbor/common_types.hpp +index de9dc37..d756467 100644 +--- a/arbor/include/arbor/common_types.hpp ++++ b/arbor/include/arbor/common_types.hpp +@@ -6,6 +6,7 @@ + */ + + #include ++#include + #include + #include + #include +-- +2.24.1 + diff --git a/0001-Use-system-pybind11.patch b/0001-Use-system-pybind11.patch index 494137a..a385645 100644 --- a/0001-Use-system-pybind11.patch +++ b/0001-Use-system-pybind11.patch @@ -1,4 +1,4 @@ -From f33575182f8780ce3281e65916d05529a9b861e5 Mon Sep 17 00:00:00 2001 +From 26f74e228ebd1840befa4122d4f36840104a2380 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sat, 7 Dec 2019 16:58:38 +0000 Subject: [PATCH] Use system pybind11 @@ -8,7 +8,7 @@ Subject: [PATCH] Use system pybind11 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt -index 063c514..b0552bd 100644 +index bf4d5f0..0057102 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -1,18 +1,10 @@ @@ -31,8 +31,8 @@ index 063c514..b0552bd 100644 -set(PYBIND11_CPP_STANDARD -std=c++14) -add_subdirectory(pybind11) - # The Python library. MODULE will make a Python-exclusive model. - add_library(pyarb MODULE + set(pyarb_source + cells.cpp -- -2.23.0 +2.24.1 diff --git a/18e3a0586deb64c6fbd55fc6f98290466c176319.patch b/18e3a0586deb64c6fbd55fc6f98290466c176319.patch deleted file mode 100644 index 1844678..0000000 --- a/18e3a0586deb64c6fbd55fc6f98290466c176319.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 18e3a0586deb64c6fbd55fc6f98290466c176319 Mon Sep 17 00:00:00 2001 -From: Sam Yates -Date: Tue, 10 Dec 2019 10:05:24 +0100 -Subject: [PATCH] Fix for improper vector element access. - -Fixes #917. - -* Avoid use of empty ranges determined by expressions `&vector[i]` where i equals vector.size(). Replace with expressions using `vector.data()` or subrange views. ---- - arbor/backends/gpu/multi_event_stream.hpp | 2 +- - arbor/backends/multicore/multi_event_stream.hpp | 2 +- - arbor/include/arbor/schedule.hpp | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/arbor/backends/gpu/multi_event_stream.hpp b/arbor/backends/gpu/multi_event_stream.hpp -index 82842558..929c325d 100644 ---- a/arbor/backends/gpu/multi_event_stream.hpp -+++ b/arbor/backends/gpu/multi_event_stream.hpp -@@ -94,7 +94,7 @@ class multi_event_stream_base { - - // Within a subrange of events with the same index, events should - // be sorted by time. -- arb_assert(std::is_sorted(&tmp_ev_time_[ev_begin_i], &tmp_ev_time_[ev_i])); -+ arb_assert(util::is_sorted(util::subrange_view(tmp_ev_time_, ev_begin_i, ev_i))); - n_nonempty += (tmp_divs_.back()!=ev_i); - tmp_divs_.push_back(ev_i); - ev_begin_i = ev_i; -diff --git a/arbor/backends/multicore/multi_event_stream.hpp b/arbor/backends/multicore/multi_event_stream.hpp -index ae189364..18b42aa5 100644 ---- a/arbor/backends/multicore/multi_event_stream.hpp -+++ b/arbor/backends/multicore/multi_event_stream.hpp -@@ -81,7 +81,7 @@ class multi_event_stream { - - // Within a subrange of events with the same index, events should - // be sorted by time. -- arb_assert(std::is_sorted(&ev_time_[ev_begin_i], &ev_time_[ev_i])); -+ arb_assert(util::is_sorted(util::subrange_view(ev_time_, ev_begin_i, ev_i))); - mark_[s] = ev_begin_i; - span_begin_[s] = ev_begin_i; - span_end_[s] = ev_i; -diff --git a/arbor/include/arbor/schedule.hpp b/arbor/include/arbor/schedule.hpp -index 15e8d62b..d0087fa0 100644 ---- a/arbor/include/arbor/schedule.hpp -+++ b/arbor/include/arbor/schedule.hpp -@@ -18,7 +18,7 @@ namespace arb { - using time_event_span = std::pair; - - inline time_event_span as_time_event_span(const std::vector& v) { -- return {&v[0], &v[0]+v.size()}; -+ return {v.data(), v.data()+v.size()}; - } - - // A schedule describes a sequence of time values used for sampling. Schedules diff --git a/arbor.spec b/arbor.spec index 6b316ba..5231c99 100644 --- a/arbor.spec +++ b/arbor.spec @@ -19,20 +19,37 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ %bcond_without tests +%global commit f12f934f365d9e68f01bfd857982be80da2ddd10 +%global checkoutdate 20200223 +%global shortcommit %(c=%{commit}; echo ${c:0:7}) + Name: arbor Version: 0.2.2 -Release: 4%{?dist} +Release: 5.%{checkoutdate}git%{commit}%{?dist} Summary: Multi-compartment neural network simulation library License: BSD URL: https://github.com/arbor-sim/%{name} +%if %{?commit} +Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz +%else Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +%endif # Use the system copy of pybind11 # https://github.com/arbor-sim/arbor/issues/915 Patch0: 0001-Use-system-pybind11.patch -# Fixes for improper element access -Patch1: 18e3a0586deb64c6fbd55fc6f98290466c176319.patch +# Include missing header +# https://github.com/arbor-sim/arbor/pull/963 +Patch1: 0001-Include-required-header.patch +# Correct isnan invocation +# https://github.com/arbor-sim/arbor/pull/964 +Patch2: 0001-Correct-isnan-invocation.patch + +# Random123 does not support these +# arbor fails to build on i686: error: static assertion failed: size_t is not the same as unsigned long or unsigned long long +# https://github.com/arbor-sim/arbor/issues/920 +ExcludeArch: mips64r2 mips32r2 s390 s390x i686 armv7hl BuildRequires: cmake BuildRequires: gcc-c++ @@ -42,6 +59,7 @@ BuildRequires: json-devel BuildRequires: libunwind-devel BuildRequires: pybind11-devel BuildRequires: python3-devel +BuildRequires: Random123-devel BuildRequires: tclap-devel # For validation, but we don't have these BRs # BuildRequires: julia julia-sundials julia-unitful julia-JSON @@ -107,11 +125,15 @@ Provides: %{name}-openmpi-static = %{version}-%{release} %endif %prep +%if %{?commit} +%autosetup -n %{name}-%{commit} -S git +%else %autosetup -S git +%endif # Do not build external libraries -# tclap and json -sed -i '/add_subdirectory(ext)/ d' CMakeLists.txt +# tclap and json and random123 +sed -i -e '/add_subdirectory(ext)/ d' -e 's/ ext-random123//' CMakeLists.txt # Remove ext folder rm -vrf ext # Disable doc build: we built it ourselves @@ -156,7 +178,11 @@ pushd build$MPI_COMPILE_TYPE && -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\ -DCMAKE_SKIP_RPATH:BOOL=ON \\\ -DCMAKE_BUILD_TYPE:STRING="release" \\\ +%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 \\\ -DARB_ARCH:STRING="native" \\\ @@ -287,8 +313,9 @@ popd %if %{with tests} %check # Run for serial only. our builders are not using MPI +# these tests segfault, filter out pushd build-serial - ./bin/unit + ./bin/unit --gtest_filter=-*mc_event_delivery*:*fvm_lowered*:*mc_cell_group* popd %endif @@ -343,6 +370,11 @@ popd %endif %changelog +* Sun Feb 23 2020 Ankur Sinha - 0.2.2-5.20200223gitf12f934f365d9e68f01bfd857982be80da2ddd10 +- Build from latest upstream snapshot +- Freshen patch +- Add exclude arches + * Tue Jan 28 2020 Fedora Release Engineering - 0.2.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index 36af8fa..8aa8f1f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (arbor-0.2.2.tar.gz) = 5da25d643ac607f94d157fd2506d3974e512328b9391d6b00f245a61142eaa8288722b798e2a497b62d74bccd891f90f7929356b384a7169c7533bba8792d6f6 +SHA512 (arbor-f12f934.tar.gz) = a08e192ab627939159862c597dd00267f7cfad9bf27e7eca674e9598ac758e9eda2a573bbb47ece839f5d8f9604551bf274f9ced873d98e9b93ffa3bc2efdaae From 77288ee3fbf9a1800f6aed8ca1975fbc7bc074a0 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Wed, 26 Feb 2020 15:08:20 +0000 Subject: [PATCH 04/60] Update to new commit: fix 32bit builds --- .gitignore | 1 + 0001-Correct-isnan-invocation.patch | 49 ----------------------------- arbor.spec | 28 ++++++++--------- sources | 2 +- 4 files changed, 16 insertions(+), 64 deletions(-) delete mode 100644 0001-Correct-isnan-invocation.patch diff --git a/.gitignore b/.gitignore index aa03300..80f2251 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /arbor-0.2.2.tar.gz /arbor-f12f934.tar.gz +/arbor-fb5d4ea.tar.gz diff --git a/0001-Correct-isnan-invocation.patch b/0001-Correct-isnan-invocation.patch deleted file mode 100644 index 5c44296..0000000 --- a/0001-Correct-isnan-invocation.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 3207c57635f44f7d38a2e630739d846369779297 Mon Sep 17 00:00:00 2001 -From: "Ankur Sinha (Ankur Sinha Gmail)" -Date: Sun, 23 Feb 2020 15:49:21 +0000 -Subject: [PATCH] Correct isnan invocation - ---- - arbor/include/arbor/simd/neon.hpp | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/arbor/include/arbor/simd/neon.hpp b/arbor/include/arbor/simd/neon.hpp -index 22ae0e7..3857999 100644 ---- a/arbor/include/arbor/simd/neon.hpp -+++ b/arbor/include/arbor/simd/neon.hpp -@@ -397,8 +397,8 @@ struct neon_double2 : implbase { - auto is_small = cmp_lt(x, broadcast(exp_minarg)); - - bool a[2]; -- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; -- a[1] = isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; -+ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; -+ a[1] = std::isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; - - auto is_nan = mask_copy_from(a); - -@@ -445,8 +445,8 @@ struct neon_double2 : implbase { - auto is_small = cmp_lt(x, broadcast(expm1_minarg)); - - bool a[2]; -- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; -- a[1] = isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; -+ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; -+ a[1] = std::isnan(vgetq_lane_f64(x, 1)) == 0 ? 0 : 1; - - auto is_nan = mask_copy_from(a); - -@@ -515,8 +515,8 @@ struct neon_double2 : implbase { - auto is_domainerr = cmp_lt(x, broadcast(0)); - - bool a[2]; -- a[0] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; -- a[1] = isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; -+ a[0] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; -+ a[1] = std::isnan(vgetq_lane_f64(x, 0)) == 0 ? 0 : 1; - - auto is_nan = mask_copy_from(a); - is_domainerr = logical_or(is_nan, is_domainerr); --- -2.24.1 - diff --git a/arbor.spec b/arbor.spec index 5231c99..3b3dae4 100644 --- a/arbor.spec +++ b/arbor.spec @@ -19,14 +19,14 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ %bcond_without tests -%global commit f12f934f365d9e68f01bfd857982be80da2ddd10 -%global checkoutdate 20200223 +%global commit fb5d4ea736282dce14c3284bc5db748b082db957 +%global checkoutdate 20200225 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: arbor Version: 0.2.2 -Release: 5.%{checkoutdate}git%{commit}%{?dist} +Release: 6.%{checkoutdate}git%{commit}%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -42,14 +42,9 @@ Patch0: 0001-Use-system-pybind11.patch # Include missing header # https://github.com/arbor-sim/arbor/pull/963 Patch1: 0001-Include-required-header.patch -# Correct isnan invocation -# https://github.com/arbor-sim/arbor/pull/964 -Patch2: 0001-Correct-isnan-invocation.patch # Random123 does not support these -# arbor fails to build on i686: error: static assertion failed: size_t is not the same as unsigned long or unsigned long long -# https://github.com/arbor-sim/arbor/issues/920 -ExcludeArch: mips64r2 mips32r2 s390 s390x i686 armv7hl +ExcludeArch: mips64r2 mips32r2 s390 s390x BuildRequires: cmake BuildRequires: gcc-c++ @@ -144,7 +139,7 @@ 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 ';' # We set it, remove the hard coded bits from CMakeLists.txt -sed -i '/set(ARB_PYEXECDIR/ d' python/CMakeLists.txt +sed -i '/set(arb_pyexecdir/ d' python/CMakeLists.txt # builddir for serial mkdir build-serial @@ -188,7 +183,7 @@ pushd build$MPI_COMPILE_TYPE && -DARB_ARCH:STRING="native" \\\ -DCMAKE_INSTALL_LIBDIR=%{_lib} \\\ -DARB_WITH_PYTHON:BOOL=ON \\\ - -DARB_PYEXECDIR:STRING=$MPI_PYTHON3_SITEARCH \\\ + -Darb_pyexecdir:STRING=$MPI_PYTHON3_SITEARCH \\\ %if "%{_lib}" == "lib64" -DLIB_SUFFIX=64 .. && %else @@ -324,7 +319,7 @@ popd %license LICENSE %doc README.md %{_bindir}/modcc -%{python3_sitearch}/%{name}.cpython-%{python3_version_nodots}*.so +%{python3_sitearch}/%{name} %files devel @@ -344,7 +339,7 @@ popd %doc README.md %license LICENSE %{_libdir}/mpich/bin/modcc_mpich -%{python3_sitearch}/mpich/%{name}.cpython-%{python3_version_nodots}*.so +%{python3_sitearch}/mpich/%{name} %files mpich-devel %{_libdir}/mpich/include/%{name} @@ -359,7 +354,7 @@ popd %doc README.md %license LICENSE %{_libdir}/openmpi/bin/modcc_openmpi -%{python3_sitearch}/openmpi/%{name}.cpython-%{python3_version_nodots}*.so +%{python3_sitearch}/openmpi/%{name} %files openmpi-devel %{_libdir}/openmpi/include/%{name} @@ -370,6 +365,11 @@ popd %endif %changelog +* Wed Feb 26 2020 Ankur Sinha - 0.2.2-5.20200226gitfb5d4ea736282dce14c3284bc5db748b082db957 +- Use new snapshot that fixes errors on 32 bit systems +- No longer excludes i686 and armv7hl +- Drop unneeded patch. + * Sun Feb 23 2020 Ankur Sinha - 0.2.2-5.20200223gitf12f934f365d9e68f01bfd857982be80da2ddd10 - Build from latest upstream snapshot - Freshen patch diff --git a/sources b/sources index 8aa8f1f..1d28e53 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (arbor-f12f934.tar.gz) = a08e192ab627939159862c597dd00267f7cfad9bf27e7eca674e9598ac758e9eda2a573bbb47ece839f5d8f9604551bf274f9ced873d98e9b93ffa3bc2efdaae +SHA512 (arbor-fb5d4ea.tar.gz) = d514ad36a63820cab543b19adf1f63218decfa7d6e9f8726178d90668c59952bde4daba91699c93b9678da4f42313050a8799ec58a5e78ef7d7f86a681ffc8b0 From 6ff156d2bf77cd00cf1ea7fd9a3310cf12d3462b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Thu, 2 Apr 2020 12:38:37 +0200 Subject: [PATCH 05/60] Fix string quoting for rpm >= 4.16 --- arbor.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arbor.spec b/arbor.spec index 3b3dae4..076ad4e 100644 --- a/arbor.spec +++ b/arbor.spec @@ -31,7 +31,7 @@ Summary: Multi-compartment neural network simulation library License: BSD URL: https://github.com/arbor-sim/%{name} -%if %{?commit} +%if 0%{?commit:1} Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz %else Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz @@ -120,7 +120,7 @@ Provides: %{name}-openmpi-static = %{version}-%{release} %endif %prep -%if %{?commit} +%if 0%{?commit:1} %autosetup -n %{name}-%{commit} -S git %else %autosetup -S git @@ -277,7 +277,7 @@ export MPI_COMPILE_TYPE="-mpich" %{do_install} # Place in correct mpi libdir -%if %{_lib} == lib64 +%if "%{_lib}" == "lib64" mv -v $RPM_BUILD_ROOT/%{_libdir}/mpich/lib64 $RPM_BUILD_ROOT/$MPI_LIB/ %endif @@ -294,7 +294,7 @@ export MPI_COMPILE_TYPE="-openmpi" %{do_install} # Correct location -%if %{_lib} == lib64 +%if "%{_lib}" == "lib64" mv -v $RPM_BUILD_ROOT/%{_libdir}/openmpi/lib64 $RPM_BUILD_ROOT/$MPI_LIB/ %endif From 963479bbd44d28cce8a4161cc4dcb7e66dbe236b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Thu, 2 Apr 2020 13:24:45 +0200 Subject: [PATCH 06/60] Bump release --- arbor.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 076ad4e..212aa5a 100644 --- a/arbor.spec +++ b/arbor.spec @@ -26,7 +26,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.2.2 -Release: 6.%{checkoutdate}git%{commit}%{?dist} +Release: 7.%{checkoutdate}git%{commit}%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -365,6 +365,9 @@ popd %endif %changelog +* Thu Apr 02 2020 Björn Esser - 0.2.2-7.20200225gitfb5d4ea736282dce14c3284bc5db748b082db957 +- Fix string quoting for rpm >= 4.16 + * Wed Feb 26 2020 Ankur Sinha - 0.2.2-5.20200226gitfb5d4ea736282dce14c3284bc5db748b082db957 - Use new snapshot that fixes errors on 32 bit systems - No longer excludes i686 and armv7hl From bfc08a0dba86def653f11ca5f8e0cd32cee08c80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 26 May 2020 02:40:43 +0200 Subject: [PATCH 07/60] Rebuilt for Python 3.9 --- arbor.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 212aa5a..85d30d1 100644 --- a/arbor.spec +++ b/arbor.spec @@ -26,7 +26,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.2.2 -Release: 7.%{checkoutdate}git%{commit}%{?dist} +Release: 8.%{checkoutdate}git%{commit}%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -365,6 +365,9 @@ popd %endif %changelog +* Tue May 26 2020 Miro Hrončok - 0.2.2-8.20200225gitfb5d4ea736282dce14c3284bc5db748b082db957 +- Rebuilt for Python 3.9 + * Thu Apr 02 2020 Björn Esser - 0.2.2-7.20200225gitfb5d4ea736282dce14c3284bc5db748b082db957 - Fix string quoting for rpm >= 4.16 From ba04c151410d0fbe56f78905ae6662c65131a861 Mon Sep 17 00:00:00 2001 From: sagitter Date: Mon, 8 Jun 2020 14:16:59 +0200 Subject: [PATCH 08/60] Release 0.3 --- .gitignore | 1 + 0001-Include-required-header.patch | 24 ------- ...ch => arbor-0001-Use-system-pybind11.patch | 12 +--- arbor-tinyopt_cmake.patch | 66 +++++++++++++++++++ arbor.spec | 58 +++++++++++----- sources | 2 +- 6 files changed, 111 insertions(+), 52 deletions(-) delete mode 100644 0001-Include-required-header.patch rename 0001-Use-system-pybind11.patch => arbor-0001-Use-system-pybind11.patch (89%) create mode 100644 arbor-tinyopt_cmake.patch diff --git a/.gitignore b/.gitignore index 80f2251..b1f9e10 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /arbor-0.2.2.tar.gz /arbor-f12f934.tar.gz /arbor-fb5d4ea.tar.gz +/arbor-0.3.tar.gz diff --git a/0001-Include-required-header.patch b/0001-Include-required-header.patch deleted file mode 100644 index fc607a8..0000000 --- a/0001-Include-required-header.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 015bce3b60da23b18b308c6b758b463650cff397 Mon Sep 17 00:00:00 2001 -From: "Ankur Sinha (Ankur Sinha Gmail)" -Date: Sun, 23 Feb 2020 14:45:42 +0000 -Subject: [PATCH] Include required header - ---- - arbor/include/arbor/common_types.hpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arbor/include/arbor/common_types.hpp b/arbor/include/arbor/common_types.hpp -index de9dc37..d756467 100644 ---- a/arbor/include/arbor/common_types.hpp -+++ b/arbor/include/arbor/common_types.hpp -@@ -6,6 +6,7 @@ - */ - - #include -+#include - #include - #include - #include --- -2.24.1 - diff --git a/0001-Use-system-pybind11.patch b/arbor-0001-Use-system-pybind11.patch similarity index 89% rename from 0001-Use-system-pybind11.patch rename to arbor-0001-Use-system-pybind11.patch index a385645..3a826bc 100644 --- a/0001-Use-system-pybind11.patch +++ b/arbor-0001-Use-system-pybind11.patch @@ -3,15 +3,11 @@ From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sat, 7 Dec 2019 16:58:38 +0000 Subject: [PATCH] Use system pybind11 ---- - python/CMakeLists.txt | 14 +++----------- - 1 file changed, 3 insertions(+), 11 deletions(-) - diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index bf4d5f0..0057102 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt -@@ -1,18 +1,10 @@ +@@ -1,19 +1,10 @@ include(FindPythonModule) # required for find_python_module -# Set up pybind11 as an external project. @@ -30,9 +26,7 @@ index bf4d5f0..0057102 100644 -# instead of using find_package. -set(PYBIND11_CPP_STANDARD -std=c++14) -add_subdirectory(pybind11) - +- set(pyarb_source cells.cpp --- -2.24.1 - + config.cpp diff --git a/arbor-tinyopt_cmake.patch b/arbor-tinyopt_cmake.patch new file mode 100644 index 0000000..1306cbd --- /dev/null +++ b/arbor-tinyopt_cmake.patch @@ -0,0 +1,66 @@ +--- a/ext/CMakeLists.orig.txt 2020-06-06 20:38:54.795020000 +0200 ++++ b/ext/CMakeLists.txt 2020-06-06 20:41:11.429317416 +0200 +@@ -1,63 +1,6 @@ + # Niels Lohmann's json library (single-header version). + +-add_library(ext-json INTERFACE) +-target_include_directories(ext-json INTERFACE json/single_include) +- + # tinyopt command line parsing libary (header-only). + + add_library(ext-tinyopt INTERFACE) + target_include_directories(ext-tinyopt INTERFACE tinyopt/include) +- +-# Random123 (DE Shaw Research) counter-based random number generators (header-only) +- +-add_library(ext-random123 INTERFACE) +-target_include_directories(ext-random123 INTERFACE $/random123/include) +-install(TARGETS ext-random123 EXPORT arbor-targets) +- +-# Google benchmark for microbenchmarks: +- +-check_git_submodule(gbench google-benchmark) +-if(gbench_avail) +- # Set up google benchmark as an external project. +- +- include(ExternalProject) +- set(gbench_src_dir "${CMAKE_CURRENT_SOURCE_DIR}/google-benchmark") +- set(gbench_install_dir "${CMAKE_CURRENT_BINARY_DIR}/google-benchmark") +- set(gbench_cmake_args +- "-DCMAKE_BUILD_TYPE=release" +- "-DCMAKE_INSTALL_PREFIX=${gbench_install_dir}" +- "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" +- "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") +- +- ExternalProject_Add(gbench-build +- # Add dummy DOWNLOAD_COMMAND to stop ExternalProject_Add terminating CMake if the +- # git submodule had not been udpated. +- DOWNLOAD_COMMAND "${CMAKE_COMMAND}" -E echo "Warning: ${gbench_src_dir} empty or missing." +- SOURCE_DIR "${gbench_src_dir}" +- CMAKE_ARGS "${gbench_cmake_args}" +- INSTALL_DIR "${gbench_install_dir}" +- ) +- set_target_properties(gbench-build PROPERTIES EXCLUDE_FROM_ALL TRUE) +- +-else() +- add_error_target(gbench-build +- "Building Google benchmark library" +- "The git submodule for google benchmark is not available") +-endif() +- +-add_library(ext-benchmark INTERFACE) +-add_dependencies(ext-benchmark gbench-build) +-target_include_directories(ext-benchmark INTERFACE "${gbench_install_dir}/include") +-target_link_libraries(ext-benchmark INTERFACE "${gbench_install_dir}/lib/libbenchmark.a") +- +-# Sphinx RTD theme +- +-check_git_submodule(rtdtheme sphinx_rtd_theme) +-add_target_if(rtdtheme_avail +- check-sphinx_rtd_theme +- "Checking for Read the Docs Sphinx theme" +- "The git submodule for read the docs is not available") +- +-add_library(ext-sphinx_rtd_theme INTERFACE) +-add_dependencies(ext-sphinx_rtd_theme check-sphinx_rtd_theme) +-target_include_directories(ext-sphinx_rtd_theme INTERFACE sphinx_rtd_theme) diff --git a/arbor.spec b/arbor.spec index 85d30d1..d13cdcd 100644 --- a/arbor.spec +++ b/arbor.spec @@ -19,14 +19,13 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ %bcond_without tests -%global commit fb5d4ea736282dce14c3284bc5db748b082db957 -%global checkoutdate 20200225 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) +#%%global commit fb5d4ea736282dce14c3284bc5db748b082db957 +#%%global checkoutdate 20200225 +#%%global shortcommit %%(c=%%{commit}; echo ${c:0:7}) Name: arbor -Version: 0.2.2 - -Release: 8.%{checkoutdate}git%{commit}%{?dist} +Version: 0.3 +Release: 1%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -38,10 +37,9 @@ Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz %endif # Use the system copy of pybind11 # https://github.com/arbor-sim/arbor/issues/915 -Patch0: 0001-Use-system-pybind11.patch -# Include missing header -# https://github.com/arbor-sim/arbor/pull/963 -Patch1: 0001-Include-required-header.patch +Patch0: %{name}-0001-Use-system-pybind11.patch + +Patch1: %{name}-tinyopt_cmake.patch # Random123 does not support these ExcludeArch: mips64r2 mips32r2 s390 s390x @@ -65,6 +63,8 @@ BuildRequires: tclap-devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Provides: %{name}-static = %{version}-%{release} +Provides: python3-%{name} = %{version}-%{release} +%{?python_provide:%python_provide python3-%{name}} %description devel %{_description} @@ -94,6 +94,8 @@ Requires: python3-mpi4py-mpich Summary: Development files for %{name}-mpich Requires: %{name}-mpich%{?_isa} = %{version}-%{release} Provides: %{name}-mpich-static = %{version}-%{release} +Provides: python3-%{name}-mpich = %{version}-%{release} +%{?python_provide:%python_provide python3-%{name}-mpich} %description mpich-devel %{_description} %endif @@ -115,6 +117,8 @@ Requires: python3-mpi4py-openmpi Summary: Development files for %{name}-openmpi Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} Provides: %{name}-openmpi-static = %{version}-%{release} +Provides: python3-%{name}-openmpi = %{version}-%{release} +%{?python_provide:%python_provide python3-%{name}-openmpi} %description openmpi-devel %{_description} %endif @@ -123,14 +127,15 @@ Provides: %{name}-openmpi-static = %{version}-%{release} %if 0%{?commit:1} %autosetup -n %{name}-%{commit} -S git %else -%autosetup -S git +%autosetup -p1 %endif # Do not build external libraries # tclap and json and random123 -sed -i -e '/add_subdirectory(ext)/ d' -e 's/ ext-random123//' CMakeLists.txt -# Remove ext folder -rm -vrf ext +sed -i -e 's/ ext-random123//' CMakeLists.txt +# Remove ext folders, unbundle libraries +rm -vrf ext/google-benchmark ext/json ext/random123 ext/sphinx_rtd_theme +mv ext/tinyopt/LICENSE ext/tinyopt/LICENSE-tinyopt # Disable doc build: we built it ourselves sed -i '/add_subdirectory(doc)/ d' CMakeLists.txt # tclap and json are both header only @@ -159,7 +164,6 @@ mkdir build-serial echo echo "*** BUILDING %{name}-%{version}$MPI_COMPILE_TYPE ***" echo -%set_build_flags pushd build$MPI_COMPILE_TYPE && cmake \\\ -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \\\ @@ -177,6 +181,9 @@ pushd build$MPI_COMPILE_TYPE && -DARB_VECTORIZE:BOOL=ON \\\ %else -DARB_VECTORIZE:BOOL=OFF \\\ +%endif +%ifarch %{power64} + -DARB_ARCH=power8 \\\ %endif -DARB_WITH_MPI:BOOL=$MPI_YES \\\ -DARB_WITH_GPU:BOOL=OFF \\\ @@ -211,6 +218,10 @@ export MPI_INCLUDE=%{_includedir} export MPI_LIB=%{_libdir} export MPI_YES=OFF export MPI_COMPILE_TYPE="-serial" +export CFLAGS="%{build_cflags}" +export CXXFLAGS="%{build_cxxflags}" +export FFLAGS="%{build_fflags}" +export LDFLAGS="%{build_ldflags}" export MPI_PYTHON3_SITEARCH=%{python3_sitearch} %{do_cmake_config} %{do_make_build} @@ -229,6 +240,10 @@ export CXX=mpicxx export FC=mpif90 export F77=mpif77 export MPI_YES=ON +export CFLAGS="%{build_cflags}" +export CXXFLAGS="%{build_cxxflags}" +export FFLAGS="%{build_fflags}" +export LDFLAGS="%{build_ldflags}" export MPI_COMPILE_TYPE="-mpich" %{do_cmake_config} %{do_make_build} @@ -244,6 +259,10 @@ export CXX=mpicxx export FC=mpif90 export F77=mpif77 export MPI_YES=ON +export CFLAGS="%{build_cflags}" +export CXXFLAGS="%{build_cxxflags}" +export FFLAGS="%{build_fflags}" +export LDFLAGS="%{build_ldflags}" # Python 3 export MPI_COMPILE_TYPE="-openmpi" %{do_cmake_config} @@ -316,7 +335,7 @@ popd %files -%license LICENSE +%license LICENSE ext/tinyopt/LICENSE-tinyopt %doc README.md %{_bindir}/modcc %{python3_sitearch}/%{name} @@ -337,7 +356,7 @@ popd %if %{with mpich} %files mpich %doc README.md -%license LICENSE +%license LICENSE ext/tinyopt/LICENSE-tinyopt %{_libdir}/mpich/bin/modcc_mpich %{python3_sitearch}/mpich/%{name} @@ -352,7 +371,7 @@ popd %if %{with openmpi} %files openmpi %doc README.md -%license LICENSE +%license LICENSE ext/tinyopt/LICENSE-tinyopt %{_libdir}/openmpi/bin/modcc_openmpi %{python3_sitearch}/openmpi/%{name} @@ -365,6 +384,9 @@ popd %endif %changelog +* Sat Jun 06 2020 Antonio Trande - 0.3-1 +- Release 0.3 + * Tue May 26 2020 Miro Hrončok - 0.2.2-8.20200225gitfb5d4ea736282dce14c3284bc5db748b082db957 - Rebuilt for Python 3.9 diff --git a/sources b/sources index 1d28e53..94a682c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (arbor-fb5d4ea.tar.gz) = d514ad36a63820cab543b19adf1f63218decfa7d6e9f8726178d90668c59952bde4daba91699c93b9678da4f42313050a8799ec58a5e78ef7d7f86a681ffc8b0 +SHA512 (arbor-0.3.tar.gz) = d81438e6b0474615d383b9a401a0ff32b3039e19b9ff9be2648c27cf96c72951f74959dd6213579ae6f2a158579cf2e1ea325fe60ec6b9c8decd800e9a171ebc From 6e9d0cd4d2ed348ee2ae3a0663239b78a10ad591 Mon Sep 17 00:00:00 2001 From: sagitter Date: Mon, 8 Jun 2020 19:49:12 +0200 Subject: [PATCH 09/60] Move Provides lines to runtime packages --- arbor.spec | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/arbor.spec b/arbor.spec index d13cdcd..3d97311 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -39,6 +39,7 @@ Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz # https://github.com/arbor-sim/arbor/issues/915 Patch0: %{name}-0001-Use-system-pybind11.patch +# This patch changes ext/CMakeLists.txt for automatically using tinyopt libraries by cmake command. Patch1: %{name}-tinyopt_cmake.patch # Random123 does not support these @@ -54,6 +55,8 @@ BuildRequires: pybind11-devel BuildRequires: python3-devel BuildRequires: Random123-devel BuildRequires: tclap-devel +Provides: python3-%{name} = %{version}-%{release} +%{?python_provide:%python_provide python3-%{name}} # For validation, but we don't have these BRs # BuildRequires: julia julia-sundials julia-unitful julia-JSON @@ -63,8 +66,6 @@ BuildRequires: tclap-devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} Provides: %{name}-static = %{version}-%{release} -Provides: python3-%{name} = %{version}-%{release} -%{?python_provide:%python_provide python3-%{name}} %description devel %{_description} @@ -87,6 +88,8 @@ BuildRequires: python3-mpi4py-mpich Requires: mpich Requires: python3-mpich Requires: python3-mpi4py-mpich +Provides: python3-%{name}-mpich = %{version}-%{release} +%{?python_provide:%python_provide python3-%{name}-mpich} %description mpich %{_description} @@ -94,8 +97,6 @@ Requires: python3-mpi4py-mpich Summary: Development files for %{name}-mpich Requires: %{name}-mpich%{?_isa} = %{version}-%{release} Provides: %{name}-mpich-static = %{version}-%{release} -Provides: python3-%{name}-mpich = %{version}-%{release} -%{?python_provide:%python_provide python3-%{name}-mpich} %description mpich-devel %{_description} %endif @@ -110,6 +111,8 @@ BuildRequires: python3-mpi4py-openmpi Requires: openmpi Requires: python3-openmpi Requires: python3-mpi4py-openmpi +Provides: python3-%{name}-openmpi = %{version}-%{release} +%{?python_provide:%python_provide python3-%{name}-openmpi} %description openmpi %{_description} @@ -117,8 +120,6 @@ Requires: python3-mpi4py-openmpi Summary: Development files for %{name}-openmpi Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} Provides: %{name}-openmpi-static = %{version}-%{release} -Provides: python3-%{name}-openmpi = %{version}-%{release} -%{?python_provide:%python_provide python3-%{name}-openmpi} %description openmpi-devel %{_description} %endif @@ -384,6 +385,10 @@ popd %endif %changelog +* Mon Jun 08 2020 Antonio Trande - 0.3-2 +- Move Provides lines to runtime packages +- Add patch for using tinyopt libraries + * Sat Jun 06 2020 Antonio Trande - 0.3-1 - Release 0.3 From c20d8e8bbf4e42113fe63a1fad5b7c8ba572f9c4 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sun, 28 Jun 2020 17:55:46 +0100 Subject: [PATCH 10/60] Update compiler and compiler flags --- arbor.spec | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/arbor.spec b/arbor.spec index 3d97311..2acfa6e 100644 --- a/arbor.spec +++ b/arbor.spec @@ -31,7 +31,7 @@ Summary: Multi-compartment neural network simulation library License: BSD URL: https://github.com/arbor-sim/%{name} %if 0%{?commit:1} -Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz +Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz %else Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz %endif @@ -212,17 +212,15 @@ popd || exit -1; } # Build serial version, dummy arguments -export MPI_COMPILER=serial +%global __cc gcc +%global __cxx g++ +%set_build_flags export MPI_SUFFIX="" export MPI_HOME=%{_prefix} export MPI_INCLUDE=%{_includedir} export MPI_LIB=%{_libdir} export MPI_YES=OFF export MPI_COMPILE_TYPE="-serial" -export CFLAGS="%{build_cflags}" -export CXXFLAGS="%{build_cxxflags}" -export FFLAGS="%{build_fflags}" -export LDFLAGS="%{build_ldflags}" export MPI_PYTHON3_SITEARCH=%{python3_sitearch} %{do_cmake_config} %{do_make_build} @@ -236,15 +234,14 @@ rm -rfv html/{.buildinfo,.doctrees} # Build mpich version %if %{with mpich} %{_mpich_load} +%global __cc mpicc +%global __cxx mpicxx +%set_build_flags export CC=mpicc export CXX=mpicxx export FC=mpif90 export F77=mpif77 export MPI_YES=ON -export CFLAGS="%{build_cflags}" -export CXXFLAGS="%{build_cxxflags}" -export FFLAGS="%{build_fflags}" -export LDFLAGS="%{build_ldflags}" export MPI_COMPILE_TYPE="-mpich" %{do_cmake_config} %{do_make_build} @@ -255,15 +252,14 @@ export MPI_COMPILE_TYPE="-mpich" # Build OpenMPI version %if %{with openmpi} %{_openmpi_load} +%global __cc mpicc +%global __cxx mpicxx +%set_build_flags export CC=mpicc export CXX=mpicxx export FC=mpif90 export F77=mpif77 export MPI_YES=ON -export CFLAGS="%{build_cflags}" -export CXXFLAGS="%{build_cxxflags}" -export FFLAGS="%{build_fflags}" -export LDFLAGS="%{build_ldflags}" # Python 3 export MPI_COMPILE_TYPE="-openmpi" %{do_cmake_config} @@ -385,6 +381,10 @@ popd %endif %changelog +* Sun Jun 28 2020 Ankur Sinha - 0.3-2 +- Update build flags to ensure CC and CXX are set correctly +- https://lists.fedoraproject.org/archives/list/scitech@lists.fedoraproject.org/thread/BNKLXKY4O7BOTZ7LH7XDUTQO6FG2UWUT/#BNKLXKY4O7BOTZ7LH7XDUTQO6FG2UWUT + * Mon Jun 08 2020 Antonio Trande - 0.3-2 - Move Provides lines to runtime packages - Add patch for using tinyopt libraries From e12d1405e8fb137b1c82fb6ffb239bac18d9f793 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 12:19:31 +0000 Subject: [PATCH 11/60] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- arbor.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 2acfa6e..a4d376a 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -381,6 +381,9 @@ popd %endif %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Sun Jun 28 2020 Ankur Sinha - 0.3-2 - Update build flags to ensure CC and CXX are set correctly - https://lists.fedoraproject.org/archives/list/scitech@lists.fedoraproject.org/thread/BNKLXKY4O7BOTZ7LH7XDUTQO6FG2UWUT/#BNKLXKY4O7BOTZ7LH7XDUTQO6FG2UWUT From d3a8ac1dc95e0d13dedef120367e71838f6e40a0 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Mon, 27 Jul 2020 16:16:38 -0600 Subject: [PATCH 12/60] Disable LTO for armv7hl build --- arbor.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index a4d376a..25a09b9 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -159,6 +159,11 @@ mkdir build-serial %endif %build +# This packages triggers an ICE in GCC when using LTO on armv7. +%ifarch armv7hl +%define _lto_cflags %{nil} +%endif + # Best to use && so that if anything in the chain fails, the build also fails # straight away %global do_cmake_config %{expand: \ @@ -381,6 +386,9 @@ popd %endif %changelog +* Mon Jul 27 2020 Jeff Law - 0.3-4 +- Disable LTO for armv7hl build + * Mon Jul 27 2020 Fedora Release Engineering - 0.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 68a7378595516583fd473729c95e619aceb19057 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 1 Aug 2020 00:02:48 +0000 Subject: [PATCH 13/60] - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- arbor.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 25a09b9..7f70711 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -386,6 +386,10 @@ popd %endif %changelog +* Sat Aug 01 2020 Fedora Release Engineering - 0.3-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Mon Jul 27 2020 Jeff Law - 0.3-4 - Disable LTO for armv7hl build From 3c6e26df0063ba63b6e9f87a1ca3f1a716c13c06 Mon Sep 17 00:00:00 2001 From: Jeff Law Date: Fri, 28 Aug 2020 14:12:48 -0600 Subject: [PATCH 14/60] Re-enable LTO Do not force -march=native on armv7hl so that build architecture does not bleed into the binaries. This should probably be done on all targets --- arbor.spec | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/arbor.spec b/arbor.spec index 7f70711..bf2c25c 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -159,11 +159,6 @@ mkdir build-serial %endif %build -# This packages triggers an ICE in GCC when using LTO on armv7. -%ifarch armv7hl -%define _lto_cflags %{nil} -%endif - # Best to use && so that if anything in the chain fails, the build also fails # straight away %global do_cmake_config %{expand: \ @@ -193,7 +188,9 @@ pushd build$MPI_COMPILE_TYPE && %endif -DARB_WITH_MPI:BOOL=$MPI_YES \\\ -DARB_WITH_GPU:BOOL=OFF \\\ +%ifnarch armv7hl -DARB_ARCH:STRING="native" \\\ +%endif -DCMAKE_INSTALL_LIBDIR=%{_lib} \\\ -DARB_WITH_PYTHON:BOOL=ON \\\ -Darb_pyexecdir:STRING=$MPI_PYTHON3_SITEARCH \\\ @@ -386,6 +383,11 @@ popd %endif %changelog +* Fri Aug 28 2020 Jeff Law - 0.3-6 +- Re-enable LTO +- Do not force -march=native on armv7hl so that build architecture does not bleed + into the binaries. This should probably be done on all targets + * Sat Aug 01 2020 Fedora Release Engineering - 0.3-5 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From ed199813e59faffab0be36d6798fbe64cb3695e2 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 5 Oct 2020 21:19:32 +0100 Subject: [PATCH 15/60] Explicitly require setuptools --- arbor.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index bf2c25c..e4b69a2 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -53,6 +53,7 @@ BuildRequires: json-devel BuildRequires: libunwind-devel BuildRequires: pybind11-devel BuildRequires: python3-devel +BuildRequires: python3-setuptools BuildRequires: Random123-devel BuildRequires: tclap-devel Provides: python3-%{name} = %{version}-%{release} @@ -383,6 +384,9 @@ popd %endif %changelog +* Mon Oct 05 2020 Ankur Sinha - 0.3-7 +- Explicitly require setuptools + * Fri Aug 28 2020 Jeff Law - 0.3-6 - Re-enable LTO - Do not force -march=native on armv7hl so that build architecture does not bleed From d265c8809cd9547a3d8e41e32334f2a8c345f822 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 16 Dec 2020 23:34:14 +0000 Subject: [PATCH 16/60] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- arbor.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/arbor.spec b/arbor.spec index e4b69a2..8240cb0 100644 --- a/arbor.spec +++ b/arbor.spec @@ -108,6 +108,7 @@ Summary: OpenMPI build for %{name} BuildRequires: openmpi-devel BuildRequires: rpm-mpi-hooks BuildRequires: python3-mpi4py-openmpi +BuildRequires: make Requires: openmpi Requires: python3-openmpi From 273e4d387d3971ebe4befba6c9518ba4fe273b33 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 00:22:05 +0000 Subject: [PATCH 17/60] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- arbor.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index 8240cb0..dfadd2a 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 7%{?dist} +Release: 8%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -385,6 +385,9 @@ popd %endif %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 0.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Oct 05 2020 Ankur Sinha - 0.3-7 - Explicitly require setuptools From 14a6c3d6b47fcad62f141641ee6a78fa25de7909 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 4 Jun 2021 19:59:30 +0200 Subject: [PATCH 18/60] Rebuilt for Python 3.10 --- arbor.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index dfadd2a..cb75563 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -385,6 +385,9 @@ popd %endif %changelog +* Fri Jun 04 2021 Python Maint - 0.3-9 +- Rebuilt for Python 3.10 + * Tue Jan 26 2021 Fedora Release Engineering - 0.3-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 9d56fea8669500d699c245e2aeea3b584336243f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 12:54:41 +0000 Subject: [PATCH 19/60] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 12e287be9de30f14d1ce208bffb18b3dadc21b47 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 17:50:53 +0000 Subject: [PATCH 20/60] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- arbor.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arbor.spec b/arbor.spec index cb75563..2c9197a 100644 --- a/arbor.spec +++ b/arbor.spec @@ -25,7 +25,7 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ Name: arbor Version: 0.3 -Release: 9%{?dist} +Release: 10%{?dist} Summary: Multi-compartment neural network simulation library License: BSD @@ -385,6 +385,9 @@ popd %endif %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 0.3-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Fri Jun 04 2021 Python Maint - 0.3-9 - Rebuilt for Python 3.10 From acb7e68fb114f0c0690b02e0ba77fd7dd6db99b6 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sat, 25 Sep 2021 21:31:09 +0100 Subject: [PATCH 21/60] feat: update to 0.5.2 --- .gitignore | 1 + arbor.spec | 193 +++++++++++++++++++++++++++-------------- run_cpp_examples.sh | 21 +++++ run_python_examples.sh | 21 +++++ sources | 2 +- 5 files changed, 174 insertions(+), 64 deletions(-) create mode 100644 run_cpp_examples.sh create mode 100644 run_python_examples.sh diff --git a/.gitignore b/.gitignore index b1f9e10..fe292ed 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /arbor-f12f934.tar.gz /arbor-fb5d4ea.tar.gz /arbor-0.3.tar.gz +/arbor-0.5.2.tar.gz diff --git a/arbor.spec b/arbor.spec index 2c9197a..97a076d 100644 --- a/arbor.spec +++ b/arbor.spec @@ -19,36 +19,34 @@ Documentation is available at https://arbor.readthedocs.io/en/latest/ %bcond_without tests -#%%global commit fb5d4ea736282dce14c3284bc5db748b082db957 -#%%global checkoutdate 20200225 -#%%global shortcommit %%(c=%%{commit}; echo ${c:0:7}) +%global forgeurl https://github.com/arbor-sim/arbor Name: arbor -Version: 0.3 -Release: 10%{?dist} +Version: 0.5.2 +Release: %autorelease Summary: Multi-compartment neural network simulation library +%forgemeta + +URL: %forgeurl +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 -URL: https://github.com/arbor-sim/%{name} -%if 0%{?commit:1} -Source0: %{url}/archive/%{commit}/%{name}-%{shortcommit}.tar.gz -%else -Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz -%endif -# Use the system copy of pybind11 -# https://github.com/arbor-sim/arbor/issues/915 -Patch0: %{name}-0001-Use-system-pybind11.patch # This patch changes ext/CMakeLists.txt for automatically using tinyopt libraries by cmake command. -Patch1: %{name}-tinyopt_cmake.patch +#Patch1: arbor-tinyopt_cmake.patch # Random123 does not support these -ExcludeArch: mips64r2 mips32r2 s390 s390x +ExcludeArch: mips64r2 mips32r2 s390 BuildRequires: cmake +BuildRequires: make BuildRequires: gcc-c++ BuildRequires: git-core BuildRequires: gtest-devel +BuildRequires: google-benchmark-devel BuildRequires: json-devel BuildRequires: libunwind-devel BuildRequires: pybind11-devel @@ -56,32 +54,42 @@ BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: Random123-devel BuildRequires: tclap-devel -Provides: python3-%{name} = %{version}-%{release} -%{?python_provide:%python_provide python3-%{name}} +Provides: python3-arbor = %{version}-%{release} + # For validation, but we don't have these BRs # BuildRequires: julia julia-sundials julia-unitful julia-JSON +%if %{with tests} +BuildRequires: %{py3_dist numpy} +BuildRequires: %{py3_dist pandas} +BuildRequires: %{py3_dist seaborn} +%endif + +# Required by arbor +Requires: %{py3_dist numpy} + %description %{_description} %package devel -Summary: Development files for %{name} -Requires: %{name}%{?_isa} = %{version}-%{release} -Provides: %{name}-static = %{version}-%{release} +Summary: Development files for arbor +Requires: arbor%{?_isa} = %{version}-%{release} +Provides: arbor-static = %{version}-%{release} %description devel %{_description} %package doc # Does not require the main package, since it may be installed by people using # the MPI builds -Summary: Documentation for %{name} +Summary: Documentation for arbor BuildRequires: python3-sphinx BuildRequires: python3-sphinx_rtd_theme +BuildRequires: python3-svgwrite %description doc %{_description} %if %{with mpich} %package mpich -Summary: MPICH build for %{name} +Summary: MPICH build for arbor BuildRequires: mpich-devel BuildRequires: rpm-mpi-hooks BuildRequires: python3-mpi4py-mpich @@ -89,65 +97,74 @@ BuildRequires: python3-mpi4py-mpich Requires: mpich Requires: python3-mpich Requires: python3-mpi4py-mpich -Provides: python3-%{name}-mpich = %{version}-%{release} -%{?python_provide:%python_provide python3-%{name}-mpich} +Requires: %{py3_dist numpy} +Provides: python3-arbor-mpich = %{version}-%{release} %description mpich %{_description} %package mpich-devel -Summary: Development files for %{name}-mpich -Requires: %{name}-mpich%{?_isa} = %{version}-%{release} -Provides: %{name}-mpich-static = %{version}-%{release} +Summary: Development files for arbor-mpich +Requires: arbor-mpich%{?_isa} = %{version}-%{release} +Provides: arbor-mpich-static = %{version}-%{release} %description mpich-devel %{_description} %endif %if %{with openmpi} %package openmpi -Summary: OpenMPI build for %{name} +Summary: OpenMPI build for arbor BuildRequires: openmpi-devel BuildRequires: rpm-mpi-hooks BuildRequires: python3-mpi4py-openmpi -BuildRequires: make Requires: openmpi Requires: python3-openmpi Requires: python3-mpi4py-openmpi -Provides: python3-%{name}-openmpi = %{version}-%{release} -%{?python_provide:%python_provide python3-%{name}-openmpi} +Requires: %{py3_dist numpy} +Provides: python3-arbor-openmpi = %{version}-%{release} %description openmpi %{_description} %package openmpi-devel -Summary: Development files for %{name}-openmpi -Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} -Provides: %{name}-openmpi-static = %{version}-%{release} +Summary: Development files for arbor-openmpi +Requires: arbor-openmpi%{?_isa} = %{version}-%{release} +Provides: arbor-openmpi-static = %{version}-%{release} %description openmpi-devel %{_description} %endif %prep -%if 0%{?commit:1} -%autosetup -n %{name}-%{commit} -S git -%else -%autosetup -p1 -%endif +%forgesetup +# Disable failing padded test +sed -i '/test_padded.cpp/ d' test/unit/CMakeLists.txt + +# should always be included, but is currently included only if bundled pybind11 +# is used +sed -i '/add_subdirectory(python)/i \ +include(FindPythonModule)' CMakeLists.txt # Do not build external libraries -# tclap and json and random123 sed -i -e 's/ ext-random123//' CMakeLists.txt -# Remove ext folders, unbundle libraries -rm -vrf ext/google-benchmark ext/json ext/random123 ext/sphinx_rtd_theme -mv ext/tinyopt/LICENSE ext/tinyopt/LICENSE-tinyopt + # Disable doc build: we built it ourselves sed -i '/add_subdirectory(doc)/ d' CMakeLists.txt + +# Remove ext folders, unbundle libraries +rm -vrf ext/google-benchmark ext/json ext/random123 +mv ext/tinyopt/LICENSE ext/tinyopt/LICENSE-tinyopt + # tclap and json are both header only find . -type f -name "CMakeLists.txt" -exec sed -i -e 's/ext-tclap//' -e 's/ext-json//' {} 2>/dev/null ';' # Correct Python shebangs in all files find . -type f -name "*" -exec sed -i 's|^#![ ]*/usr/bin/env.*python.*$|#!/usr/bin/python3|' {} 2>/dev/null ';' -# We set it, remove the hard coded bits from CMakeLists.txt -sed -i '/set(arb_pyexecdir/ d' python/CMakeLists.txt + +# test scripts +cp %{SOURCE1} scripts/ +cp %{SOURCE2} scripts/ +chmod +x scripts/*.sh +sed -i 's/ python / python3 /' scripts/run_python_examples.sh +sed -i 's|build/|./|' scripts/run_cpp_examples.sh # builddir for serial mkdir build-serial @@ -165,7 +182,7 @@ mkdir build-serial # straight away %global do_cmake_config %{expand: \ echo -echo "*** BUILDING %{name}-%{version}$MPI_COMPILE_TYPE ***" +echo "*** BUILDING arbor-%{version}$MPI_COMPILE_TYPE ***" echo pushd build$MPI_COMPILE_TYPE && cmake \\\ @@ -180,6 +197,8 @@ pushd build$MPI_COMPILE_TYPE && -DSHARE_INSTALL_PREFIX:PATH=%{_datadir} \\\ -DCMAKE_SKIP_RPATH:BOOL=ON \\\ -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 @@ -195,7 +214,7 @@ pushd build$MPI_COMPILE_TYPE && %endif -DCMAKE_INSTALL_LIBDIR=%{_lib} \\\ -DARB_WITH_PYTHON:BOOL=ON \\\ - -Darb_pyexecdir:STRING=$MPI_PYTHON3_SITEARCH \\\ + -DARB_PYTHON_LIB_PATH:STRING=$MPI_PYTHON3_SITEARCH \\\ %if "%{_lib}" == "lib64" -DLIB_SUFFIX=64 .. && %else @@ -212,7 +231,10 @@ popd || exit -1; %global do_make_build %{expand: \ %make_build -C build$MPI_COMPILE_TYPE || exit -1 + %make_build -C build$MPI_COMPILE_TYPE examples || exit -1 +%if %{with tests} %make_build -C build$MPI_COMPILE_TYPE tests || exit -1 +%endif } # Build serial version, dummy arguments @@ -276,7 +298,7 @@ export MPI_COMPILE_TYPE="-openmpi" # Install everything %global do_install %{expand: \ echo -echo "*** INSTALLING %{name}-%{version}$MPI_COMPILE_TYPE ***" +echo "*** INSTALLING arbor-%{version}$MPI_COMPILE_TYPE ***" echo %make_install -C build$MPI_COMPILE_TYPE || exit -1 } @@ -325,13 +347,50 @@ popd %endif +# https://github.com/arbor-sim/arbor/blob/master/.github/workflows/basic.yml %if %{with tests} %check -# Run for serial only. our builders are not using MPI +# General tests +export PYTHONPATH="%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}" + # these tests segfault, filter out pushd build-serial - ./bin/unit --gtest_filter=-*mc_event_delivery*:*fvm_lowered*:*mc_cell_group* + %{python3} ../python/test/unit/runner.py -v2 + ./bin/unit + ./bin/unit-modcc + cp ../scripts/run_cpp_examples.sh . + ./run_cpp_examples.sh popd +./scripts/run_python_examples.sh + +# MPICH +%if %{with mpich} +%{_mpich_load} +export PYTHONPATH="%{buildroot}/$MPI_PYTHON3_SITEARCH" +pushd build-mpich + #./bin/unit --gtest_filter=-*mc_event_delivery*:*fvm_lowered*:*mc_cell_group* + mpirun -n %{_smp_build_ncpus} %{python3} ../python/test/unit_distributed/runner.py -v2 + mpirun -n %{_smp_build_ncpus} ./bin/unit-mpi + cp ../scripts/run_cpp_examples.sh . + ./run_cpp_examples.sh "mpirun -n %{_smp_build_ncpus}" +popd +./scripts/run_python_examples.sh "mpirun -n %{_smp_build_ncpus}" +%{_mpich_unload} +%endif + +# OpenMPI +%if %{with openmpi} +%{_openmpi_load} +export PYTHONPATH="%{buildroot}/$MPI_PYTHON3_SITEARCH" +pushd build-openmpi + mpirun -n %{_smp_build_ncpus} %{python3} ../python/test/unit_distributed/runner.py -v2 + mpirun -n %{_smp_build_ncpus} ./bin/unit-mpi + cp ../scripts/run_cpp_examples.sh . + ./run_cpp_examples.sh "mpirun -n %{_smp_build_ncpus}" +popd +./scripts/run_python_examples.sh "mpirun -n %{_smp_build_ncpus}" +%{_openmpi_unload} +%endif %endif @@ -339,14 +398,16 @@ popd %license LICENSE ext/tinyopt/LICENSE-tinyopt %doc README.md %{_bindir}/modcc -%{python3_sitearch}/%{name} +%{python3_sitearch}/arbor %files devel -%{_includedir}/%{name} -%{_includedir}/%{name}env -%{_libdir}/cmake/%{name} +%{_includedir}/arborio +%{_includedir}/arbor +%{_includedir}/arborenv +%{_libdir}/cmake/arbor %{_libdir}/libarbor.a +%{_libdir}/libarborio.a %{_libdir}/libarborenv.a %files doc @@ -359,13 +420,15 @@ popd %doc README.md %license LICENSE ext/tinyopt/LICENSE-tinyopt %{_libdir}/mpich/bin/modcc_mpich -%{python3_sitearch}/mpich/%{name} +%{python3_sitearch}/mpich/arbor %files mpich-devel -%{_libdir}/mpich/include/%{name} -%{_libdir}/mpich/include/%{name}env -%{_libdir}/mpich/lib/cmake/%{name} +%{_libdir}/mpich/include/arbor +%{_libdir}/mpich/include/arborio +%{_libdir}/mpich/include/arborenv +%{_libdir}/mpich/lib/cmake/arbor %{_libdir}/mpich/lib/libarbor.a +%{_libdir}/mpich/lib/libarborio.a %{_libdir}/mpich/lib/libarborenv.a %endif @@ -374,17 +437,21 @@ popd %doc README.md %license LICENSE ext/tinyopt/LICENSE-tinyopt %{_libdir}/openmpi/bin/modcc_openmpi -%{python3_sitearch}/openmpi/%{name} +%{python3_sitearch}/openmpi/arbor %files openmpi-devel -%{_libdir}/openmpi/include/%{name} -%{_libdir}/openmpi/include/%{name}env -%{_libdir}/openmpi/lib/cmake/%{name} +%{_libdir}/openmpi/include/arbor +%{_libdir}/openmpi/include/arborio +%{_libdir}/openmpi/include/arborenv +%{_libdir}/openmpi/lib/cmake/arbor %{_libdir}/openmpi/lib/libarbor.a +%{_libdir}/openmpi/lib/libarborio.a %{_libdir}/openmpi/lib/libarborenv.a %endif %changelog +%autochangelog + * Wed Jul 21 2021 Fedora Release Engineering - 0.3-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/run_cpp_examples.sh b/run_cpp_examples.sh new file mode 100644 index 0000000..d463b29 --- /dev/null +++ b/run_cpp_examples.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# Runs all C++ examples + +set -Eeuo pipefail + +if [[ "$#" -gt 1 ]]; then + echo "usage: run_cpp_examples.sh " + exit 1 +fi + +PREFIX=${1:-} + +$PREFIX build/bin/bench +$PREFIX build/bin/brunel +$PREFIX build/bin/dryrun +$PREFIX build/bin/gap_junctions +$PREFIX build/bin/generators +$PREFIX build/bin/lfp +$PREFIX build/bin/probe-demo v +$PREFIX build/bin/ring +$PREFIX build/bin/single-cell diff --git a/run_python_examples.sh b/run_python_examples.sh new file mode 100644 index 0000000..5eca21d --- /dev/null +++ b/run_python_examples.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# Runs all Python examples + +set -Eeuo pipefail + +if [[ "$#" -gt 1 ]]; then + echo "usage: run_python_examples.sh " + exit 1 +fi + +PREFIX=${1:-} + +$PREFIX python python/example/network_ring.py +$PREFIX python python/example/single_cell_model.py +$PREFIX python python/example/single_cell_recipe.py +$PREFIX python python/example/single_cell_stdp.py +$PREFIX python python/example/brunel.py -n 400 -m 100 -e 20 -p 0.1 -w 1.2 -d 1 -g 0.5 -l 5 -t 100 -s 1 -G 50 -S 123 +$PREFIX python python/example/single_cell_swc.py python/example/single_cell_detailed.swc +$PREFIX python python/example/single_cell_detailed.py python/example/single_cell_detailed.swc +$PREFIX python python/example/single_cell_detailed_recipe.py python/example/single_cell_detailed.swc +$PREFIX python python/example/single_cell_cable.py diff --git a/sources b/sources index 94a682c..7e44b21 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (arbor-0.3.tar.gz) = d81438e6b0474615d383b9a401a0ff32b3039e19b9ff9be2648c27cf96c72951f74959dd6213579ae6f2a158579cf2e1ea325fe60ec6b9c8decd800e9a171ebc +SHA512 (arbor-0.5.2.tar.gz) = f53ff1d1e2fb5a00c941e5e44db73ca4cd96db1d7f22b88473b8c65569e3e50a73126d04c2fa1b583730c0760362b1172b114fccb49becd10daa8dc5d1ec07be From 0ba165ae921e68394dafabf65fb65bbcaf92c147 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sat, 25 Sep 2021 21:33:04 +0100 Subject: [PATCH 22/60] chore: remove unused patch --- arbor-tinyopt_cmake.patch | 66 --------------------------------------- 1 file changed, 66 deletions(-) delete mode 100644 arbor-tinyopt_cmake.patch diff --git a/arbor-tinyopt_cmake.patch b/arbor-tinyopt_cmake.patch deleted file mode 100644 index 1306cbd..0000000 --- a/arbor-tinyopt_cmake.patch +++ /dev/null @@ -1,66 +0,0 @@ ---- a/ext/CMakeLists.orig.txt 2020-06-06 20:38:54.795020000 +0200 -+++ b/ext/CMakeLists.txt 2020-06-06 20:41:11.429317416 +0200 -@@ -1,63 +1,6 @@ - # Niels Lohmann's json library (single-header version). - --add_library(ext-json INTERFACE) --target_include_directories(ext-json INTERFACE json/single_include) -- - # tinyopt command line parsing libary (header-only). - - add_library(ext-tinyopt INTERFACE) - target_include_directories(ext-tinyopt INTERFACE tinyopt/include) -- --# Random123 (DE Shaw Research) counter-based random number generators (header-only) -- --add_library(ext-random123 INTERFACE) --target_include_directories(ext-random123 INTERFACE $/random123/include) --install(TARGETS ext-random123 EXPORT arbor-targets) -- --# Google benchmark for microbenchmarks: -- --check_git_submodule(gbench google-benchmark) --if(gbench_avail) -- # Set up google benchmark as an external project. -- -- include(ExternalProject) -- set(gbench_src_dir "${CMAKE_CURRENT_SOURCE_DIR}/google-benchmark") -- set(gbench_install_dir "${CMAKE_CURRENT_BINARY_DIR}/google-benchmark") -- set(gbench_cmake_args -- "-DCMAKE_BUILD_TYPE=release" -- "-DCMAKE_INSTALL_PREFIX=${gbench_install_dir}" -- "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" -- "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") -- -- ExternalProject_Add(gbench-build -- # Add dummy DOWNLOAD_COMMAND to stop ExternalProject_Add terminating CMake if the -- # git submodule had not been udpated. -- DOWNLOAD_COMMAND "${CMAKE_COMMAND}" -E echo "Warning: ${gbench_src_dir} empty or missing." -- SOURCE_DIR "${gbench_src_dir}" -- CMAKE_ARGS "${gbench_cmake_args}" -- INSTALL_DIR "${gbench_install_dir}" -- ) -- set_target_properties(gbench-build PROPERTIES EXCLUDE_FROM_ALL TRUE) -- --else() -- add_error_target(gbench-build -- "Building Google benchmark library" -- "The git submodule for google benchmark is not available") --endif() -- --add_library(ext-benchmark INTERFACE) --add_dependencies(ext-benchmark gbench-build) --target_include_directories(ext-benchmark INTERFACE "${gbench_install_dir}/include") --target_link_libraries(ext-benchmark INTERFACE "${gbench_install_dir}/lib/libbenchmark.a") -- --# Sphinx RTD theme -- --check_git_submodule(rtdtheme sphinx_rtd_theme) --add_target_if(rtdtheme_avail -- check-sphinx_rtd_theme -- "Checking for Read the Docs Sphinx theme" -- "The git submodule for read the docs is not available") -- --add_library(ext-sphinx_rtd_theme INTERFACE) --add_dependencies(ext-sphinx_rtd_theme check-sphinx_rtd_theme) --target_include_directories(ext-sphinx_rtd_theme INTERFACE sphinx_rtd_theme) From 742b557442a4c8e298146026536b14965a87fcc6 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sat, 25 Sep 2021 22:33:46 +0100 Subject: [PATCH 23/60] feat: correct flags for s390 builds --- arbor.spec | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/arbor.spec b/arbor.spec index 97a076d..f5bcd85 100644 --- a/arbor.spec +++ b/arbor.spec @@ -203,14 +203,13 @@ pushd build$MPI_COMPILE_TYPE && -DARB_VECTORIZE:BOOL=ON \\\ %else -DARB_VECTORIZE:BOOL=OFF \\\ -%endif -%ifarch %{power64} - -DARB_ARCH=power8 \\\ %endif -DARB_WITH_MPI:BOOL=$MPI_YES \\\ -DARB_WITH_GPU:BOOL=OFF \\\ -%ifnarch armv7hl +%ifnarch s390x s390 -DARB_ARCH:STRING="native" \\\ +%else + -DARB_ARCH:STRING="none" \\\ %endif -DCMAKE_INSTALL_LIBDIR=%{_lib} \\\ -DARB_WITH_PYTHON:BOOL=ON \\\ From 2bf1aea7838a96506fe40d141c69a962c1a2ebe8 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Sat, 25 Sep 2021 22:46:00 +0100 Subject: [PATCH 24/60] chore: remove second unneeded patch --- arbor-0001-Use-system-pybind11.patch | 32 ---------------------------- 1 file changed, 32 deletions(-) delete mode 100644 arbor-0001-Use-system-pybind11.patch diff --git a/arbor-0001-Use-system-pybind11.patch b/arbor-0001-Use-system-pybind11.patch deleted file mode 100644 index 3a826bc..0000000 --- a/arbor-0001-Use-system-pybind11.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 26f74e228ebd1840befa4122d4f36840104a2380 Mon Sep 17 00:00:00 2001 -From: "Ankur Sinha (Ankur Sinha Gmail)" -Date: Sat, 7 Dec 2019 16:58:38 +0000 -Subject: [PATCH] Use system pybind11 - -diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt -index bf4d5f0..0057102 100644 ---- a/python/CMakeLists.txt -+++ b/python/CMakeLists.txt -@@ -1,19 +1,10 @@ - include(FindPythonModule) # required for find_python_module - --# Set up pybind11 as an external project. --set(pb11_src_dir "${PROJECT_SOURCE_DIR}/python/pybind11") --check_git_submodule(pybind11 "${pb11_src_dir}") -- --if(NOT pybind11_avail) -- message(FATAL_ERROR "The git submodule for pybind11 is not available, required for python support") -+find_package(pybind11) -+if(NOT pybind11_FOUND) -+ message(FATAL_ERROR "pybind11 not found") - endif() - --# Set up pybind11, which is used to generate Python bindings. --# Pybind11 has good cmake support, so just add the pybind11 directory, --# instead of using find_package. --set(PYBIND11_CPP_STANDARD -std=c++14) --add_subdirectory(pybind11) -- - set(pyarb_source - cells.cpp - config.cpp From 0491a511af63e5e50bb0d77e261b06e9f636bd96 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 21:33:03 +0000 Subject: [PATCH 25/60] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 1bb72ad40dd88f7f7522980dedd78494646342f7 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Wed, 15 Jun 2022 14:15:59 +0200 Subject: [PATCH 26/60] Rebuilt for Python 3.11 From ac69956f33f1cf51d9cf158f571291d6bc2791c8 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Tue, 5 Jul 2022 22:07:05 +0900 Subject: [PATCH 27/60] Fix FTBFS on F37 - Workaround for %%__cc macro expansion issue (bug 2103479) - backport upstream fix for test failure wrt move instruction omission on ctor with recent compiler - backport upstream fix for pandas error with duplicate indices --- ...andas-prevent-duplicate-index-pr1625.patch | 38 +++++++++++++++++++ ...r-remove-checks-for-move-ctor-pr1899.patch | 34 +++++++++++++++++ arbor.spec | 10 +++++ 3 files changed, 82 insertions(+) create mode 100644 arbor-pandas-prevent-duplicate-index-pr1625.patch create mode 100644 arbor-remove-checks-for-move-ctor-pr1899.patch diff --git a/arbor-pandas-prevent-duplicate-index-pr1625.patch b/arbor-pandas-prevent-duplicate-index-pr1625.patch new file mode 100644 index 0000000..cc0985e --- /dev/null +++ b/arbor-pandas-prevent-duplicate-index-pr1625.patch @@ -0,0 +1,38 @@ +--- arbor-0.5.2/python/example/network_ring.py.debug 2022-07-05 15:12:19.730356523 +0900 ++++ arbor-0.5.2/python/example/network_ring.py 2022-07-05 17:29:11.514008125 +0900 +@@ -135,5 +135,5 @@ + samples, meta = sim.samples(handles[gid])[0] + df_list.append(pandas.DataFrame({'t/ms': samples[:, 0], 'U/mV': samples[:, 1], 'Cell': f"cell {gid}"})) + +-df = pandas.concat(df_list) ++df = pandas.concat(df_list, ignore_index=True) + seaborn.relplot(data=df, kind="line", x="t/ms", y="U/mV",hue="Cell",ci=None).savefig('network_ring_result.svg') +--- arbor-0.5.2/python/example/single_cell_detailed.py.debug 2022-07-05 15:12:19.728356520 +0900 ++++ arbor-0.5.2/python/example/single_cell_detailed.py 2022-07-05 17:35:48.116117751 +0900 +@@ -111,6 +111,6 @@ + + df = pandas.DataFrame() + for t in model.traces: +- df=df.append(pandas.DataFrame({'t/ms': t.time, 'U/mV': t.value, 'Location': str(t.location), 'Variable': t.variable})) ++ df=df.append(pandas.DataFrame({'t/ms': t.time, 'U/mV': t.value, 'Location': str(t.location), 'Variable': t.variable}), ignore_index=True) + + seaborn.relplot(data=df, kind="line", x="t/ms", y="U/mV",hue="Location",col="Variable",ci=None).savefig('single_cell_detailed_result.svg') +--- arbor-0.5.2/python/example/single_cell_detailed_recipe.py.debug 2022-07-05 15:12:19.743356546 +0900 ++++ arbor-0.5.2/python/example/single_cell_detailed_recipe.py 2022-07-05 17:36:24.580142710 +0900 +@@ -170,5 +170,5 @@ + + df = pandas.DataFrame() + for i in range(len(data)): +- df = df.append(pandas.DataFrame({'t/ms': data[i][:, 0], 'U/mV': data[i][:, 1], 'Location': str(meta[i]), 'Variable':'voltage'})) ++ df = df.append(pandas.DataFrame({'t/ms': data[i][:, 0], 'U/mV': data[i][:, 1], 'Location': str(meta[i]), 'Variable':'voltage'}), ignore_index=True) + seaborn.relplot(data=df, kind="line", x="t/ms", y="U/mV",hue="Location",col="Variable",ci=None).savefig('single_cell_recipe_result.svg') +--- arbor-0.5.2/python/example/single_cell_swc.py.debug 2022-07-05 15:12:19.733356528 +0900 ++++ arbor-0.5.2/python/example/single_cell_swc.py 2022-07-05 17:31:01.313038480 +0900 +@@ -95,6 +95,6 @@ + for t in m.traces: + df_list.append(pandas.DataFrame({'t/ms': t.time, 'U/mV': t.value, 'Location': str(t.location), "Variable": t.variable})) + +-df = pandas.concat(df_list) ++df = pandas.concat(df_list, ignore_index=True) + + seaborn.relplot(data=df, kind="line", x="t/ms", y="U/mV",hue="Location",col="Variable",ci=None).savefig('single_cell_swc.svg') diff --git a/arbor-remove-checks-for-move-ctor-pr1899.patch b/arbor-remove-checks-for-move-ctor-pr1899.patch new file mode 100644 index 0000000..b2a04b0 --- /dev/null +++ b/arbor-remove-checks-for-move-ctor-pr1899.patch @@ -0,0 +1,34 @@ +From c088f8d71106e9bb4b133704c7e85fdef751971f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fabian=20B=C3=B6sch?= + <48126478+boeschf@users.noreply.github.com> +Date: Wed, 18 May 2022 16:38:35 +0200 +Subject: [PATCH] remove checks for move ctor when it could be elided + +--- + test/unit/test_thread.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/test/unit/test_thread.cpp b/test/unit/test_thread.cpp +index 49d46d053..3ef13c723 100644 +--- a/test/unit/test_thread.cpp ++++ b/test/unit/test_thread.cpp +@@ -72,7 +72,8 @@ TEST(task_system, test_copy) { + ts.async(f, 0); + + // Copy into new ftor and move ftor into a task (std::function) +- EXPECT_EQ(1, nmove); ++ // move ctor is elided with some compilers ++ //EXPECT_EQ(1, nmove); + EXPECT_EQ(1, ncopy); + reset(); + } +@@ -99,7 +100,8 @@ TEST(notification_queue, test_copy) { + q.push({task(f), 0}); + + // Copy into new ftor and move ftor into a task (std::function) +- EXPECT_EQ(1, nmove); ++ // move ctor is elided with some compilers ++ //EXPECT_EQ(1, nmove); + EXPECT_EQ(1, ncopy); + reset(); + } diff --git a/arbor.spec b/arbor.spec index f5bcd85..caa6c77 100644 --- a/arbor.spec +++ b/arbor.spec @@ -37,6 +37,12 @@ License: BSD # This patch changes ext/CMakeLists.txt for automatically using tinyopt libraries by cmake command. #Patch1: arbor-tinyopt_cmake.patch +# https://github.com/arbor-sim/arbor/pull/1899 +Patch2: arbor-remove-checks-for-move-ctor-pr1899.patch +# Extracted from: https://github.com/arbor-sim/arbor/pull/1625 +# panda requires unique index +# https://github.com/arbor-sim/arbor/pull/1625/commits/eff34806dbea822798a5fd7a9e7600af29d126ab +Patch3: arbor-pandas-prevent-duplicate-index-pr1625.patch # Random123 does not support these ExcludeArch: mips64r2 mips32r2 s390 @@ -135,6 +141,8 @@ Provides: arbor-openmpi-static = %{version}-%{release} %prep %forgesetup +%patch2 -p1 -b .move_ctor +%patch3 -p1 -b .pandas_index # Disable failing padded test sed -i '/test_padded.cpp/ d' test/unit/CMakeLists.txt @@ -240,6 +248,8 @@ popd || exit -1; %global __cc gcc %global __cxx g++ %set_build_flags +export CC=gcc +export CXX=g++ export MPI_SUFFIX="" export MPI_HOME=%{_prefix} export MPI_INCLUDE=%{_includedir} From f7c89640ec6736b8a00f3d71ebc6c9394a4be626 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 21:08:47 +0000 Subject: [PATCH 28/60] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering From e19236dbfe50bbd610615f5c49dba5f04fa2bc1b Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Aug 2022 15:40:59 +0100 Subject: [PATCH 29/60] split out changelog file --- arbor.spec | 75 ------------------------------------------------------ changelog | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 75 deletions(-) create mode 100644 changelog diff --git a/arbor.spec b/arbor.spec index caa6c77..87e28dc 100644 --- a/arbor.spec +++ b/arbor.spec @@ -460,78 +460,3 @@ popd %changelog %autochangelog - -* Wed Jul 21 2021 Fedora Release Engineering - 0.3-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Fri Jun 04 2021 Python Maint - 0.3-9 -- Rebuilt for Python 3.10 - -* Tue Jan 26 2021 Fedora Release Engineering - 0.3-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Mon Oct 05 2020 Ankur Sinha - 0.3-7 -- Explicitly require setuptools - -* Fri Aug 28 2020 Jeff Law - 0.3-6 -- Re-enable LTO -- Do not force -march=native on armv7hl so that build architecture does not bleed - into the binaries. This should probably be done on all targets - -* Sat Aug 01 2020 Fedora Release Engineering - 0.3-5 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Jeff Law - 0.3-4 -- Disable LTO for armv7hl build - -* Mon Jul 27 2020 Fedora Release Engineering - 0.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Sun Jun 28 2020 Ankur Sinha - 0.3-2 -- Update build flags to ensure CC and CXX are set correctly -- https://lists.fedoraproject.org/archives/list/scitech@lists.fedoraproject.org/thread/BNKLXKY4O7BOTZ7LH7XDUTQO6FG2UWUT/#BNKLXKY4O7BOTZ7LH7XDUTQO6FG2UWUT - -* Mon Jun 08 2020 Antonio Trande - 0.3-2 -- Move Provides lines to runtime packages -- Add patch for using tinyopt libraries - -* Sat Jun 06 2020 Antonio Trande - 0.3-1 -- Release 0.3 - -* Tue May 26 2020 Miro Hrončok - 0.2.2-8.20200225gitfb5d4ea736282dce14c3284bc5db748b082db957 -- Rebuilt for Python 3.9 - -* Thu Apr 02 2020 Björn Esser - 0.2.2-7.20200225gitfb5d4ea736282dce14c3284bc5db748b082db957 -- Fix string quoting for rpm >= 4.16 - -* Wed Feb 26 2020 Ankur Sinha - 0.2.2-5.20200226gitfb5d4ea736282dce14c3284bc5db748b082db957 -- Use new snapshot that fixes errors on 32 bit systems -- No longer excludes i686 and armv7hl -- Drop unneeded patch. - -* Sun Feb 23 2020 Ankur Sinha - 0.2.2-5.20200223gitf12f934f365d9e68f01bfd857982be80da2ddd10 -- Build from latest upstream snapshot -- Freshen patch -- Add exclude arches - -* Tue Jan 28 2020 Fedora Release Engineering - 0.2.2-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Tue Dec 10 2019 Ankur Sinha - 0.2.2-3 -- Enable tests -- Add patch for test crash - -* Mon Dec 09 2019 Ankur Sinha - 0.2.2-2 -- Remove arch info in provides for static -- Temporarily disable tests -- use python3-devel -- Add documentation in separate sub-package -- add python3-{mpich,openmpi} as requires that own MPI_PYTHON3_SITEARCH directories -- Improve summaries for sub-packages to please rpmlint - -* Sat Dec 07 2019 Ankur Sinha - 0.2.2-1 -- Update to latest release - -* Sun Jan 13 2019 Ankur Sinha - 0.1-1 -- Initial rpm package diff --git a/changelog b/changelog new file mode 100644 index 0000000..2bfa808 --- /dev/null +++ b/changelog @@ -0,0 +1,75 @@ +* Wed Jul 21 2021 Fedora Release Engineering - 0.3-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 04 2021 Python Maint - 0.3-9 +- Rebuilt for Python 3.10 + +* Tue Jan 26 2021 Fedora Release Engineering - 0.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Oct 05 2020 Ankur Sinha - 0.3-7 +- Explicitly require setuptools + +* Fri Aug 28 2020 Jeff Law - 0.3-6 +- Re-enable LTO +- Do not force -march=native on armv7hl so that build architecture does not bleed + into the binaries. This should probably be done on all targets + +* Sat Aug 01 2020 Fedora Release Engineering - 0.3-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Jeff Law - 0.3-4 +- Disable LTO for armv7hl build + +* Mon Jul 27 2020 Fedora Release Engineering - 0.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sun Jun 28 2020 Ankur Sinha - 0.3-2 +- Update build flags to ensure CC and CXX are set correctly +- https://lists.fedoraproject.org/archives/list/scitech@lists.fedoraproject.org/thread/BNKLXKY4O7BOTZ7LH7XDUTQO6FG2UWUT/#BNKLXKY4O7BOTZ7LH7XDUTQO6FG2UWUT + +* Mon Jun 08 2020 Antonio Trande - 0.3-2 +- Move Provides lines to runtime packages +- Add patch for using tinyopt libraries + +* Sat Jun 06 2020 Antonio Trande - 0.3-1 +- Release 0.3 + +* Tue May 26 2020 Miro Hrončok - 0.2.2-8.20200225gitfb5d4ea736282dce14c3284bc5db748b082db957 +- Rebuilt for Python 3.9 + +* Thu Apr 02 2020 Björn Esser - 0.2.2-7.20200225gitfb5d4ea736282dce14c3284bc5db748b082db957 +- Fix string quoting for rpm >= 4.16 + +* Wed Feb 26 2020 Ankur Sinha - 0.2.2-5.20200226gitfb5d4ea736282dce14c3284bc5db748b082db957 +- Use new snapshot that fixes errors on 32 bit systems +- No longer excludes i686 and armv7hl +- Drop unneeded patch. + +* Sun Feb 23 2020 Ankur Sinha - 0.2.2-5.20200223gitf12f934f365d9e68f01bfd857982be80da2ddd10 +- Build from latest upstream snapshot +- Freshen patch +- Add exclude arches + +* Tue Jan 28 2020 Fedora Release Engineering - 0.2.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Dec 10 2019 Ankur Sinha - 0.2.2-3 +- Enable tests +- Add patch for test crash + +* Mon Dec 09 2019 Ankur Sinha - 0.2.2-2 +- Remove arch info in provides for static +- Temporarily disable tests +- use python3-devel +- Add documentation in separate sub-package +- add python3-{mpich,openmpi} as requires that own MPI_PYTHON3_SITEARCH directories +- Improve summaries for sub-packages to please rpmlint + +* Sat Dec 07 2019 Ankur Sinha - 0.2.2-1 +- Update to latest release + +* Sun Jan 13 2019 Ankur Sinha - 0.1-1 +- Initial rpm package + From 875d06240b2650a884759bc431c0c3656f054572 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Aug 2022 15:46:25 +0100 Subject: [PATCH 30/60] feat: upload new sources --- .gitignore | 2 ++ sources | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fe292ed..df2c4bf 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ /arbor-fb5d4ea.tar.gz /arbor-0.3.tar.gz /arbor-0.5.2.tar.gz +/arbor-0.6.tar.gz +/arbor-0.7.tar.gz diff --git a/sources b/sources index 7e44b21..b7a9016 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (arbor-0.5.2.tar.gz) = f53ff1d1e2fb5a00c941e5e44db73ca4cd96db1d7f22b88473b8c65569e3e50a73126d04c2fa1b583730c0760362b1172b114fccb49becd10daa8dc5d1ec07be +SHA512 (arbor-0.7.tar.gz) = 66471172e159c87c930c89cfed20020cd7c770e0fd5f32b265197710c7bbd2920cfa018f384553130dd93645e149ccb71f64cc04208534c96b4e581f0c0acb50 From 51865e2e071f3d0a0b16ad3b62079c42ec2934f0 Mon Sep 17 00:00:00 2001 From: "Ankur Sinha (Ankur Sinha Gmail)" Date: Mon, 29 Aug 2022 16:36:49 +0100 Subject: [PATCH 31/60] feat: update to 0.7 (fixes rhbz#2047167) --- 0001-Quote-various-cmake-var-values.patch | 33 ++++++++++ ...andas-prevent-duplicate-index-pr1625.patch | 38 ------------ ...r-remove-checks-for-move-ctor-pr1899.patch | 34 ----------- arbor.spec | 61 ++++++++++--------- 4 files changed, 65 insertions(+), 101 deletions(-) create mode 100644 0001-Quote-various-cmake-var-values.patch delete mode 100644 arbor-pandas-prevent-duplicate-index-pr1625.patch delete mode 100644 arbor-remove-checks-for-move-ctor-pr1899.patch diff --git a/0001-Quote-various-cmake-var-values.patch b/0001-Quote-various-cmake-var-values.patch new file mode 100644 index 0000000..ac8fb39 --- /dev/null +++ b/0001-Quote-various-cmake-var-values.patch @@ -0,0 +1,33 @@ +From 02bb37946cafdb5892c04a2e9804566c3d36e8a0 Mon Sep 17 00:00:00 2001 +From: "Ankur Sinha (Ankur Sinha Gmail)" +Date: Mon, 29 Aug 2022 17:22:11 +0100 +Subject: [PATCH] Quote various cmake var values + +--- + cmake/arbor-config.cmake.in | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/cmake/arbor-config.cmake.in b/cmake/arbor-config.cmake.in +index c9edecdc..7b6e1391 100644 +--- a/cmake/arbor-config.cmake.in ++++ b/cmake/arbor-config.cmake.in +@@ -46,11 +46,11 @@ endfunction() + + set(ARB_VECTORIZE @ARB_VECTORIZE@) + set(ARB_WITH_GPU @ARB_WITH_GPU@) +-set(ARB_ARCH @ARB_ARCH@) +-set(ARB_MODCC_FLAGS @ARB_MODCC_FLAGS@) +-set(ARB_CXX @CMAKE_CXX_COMPILER@) +-set(ARB_CXX_FLAGS @CMAKE_CXX_FLAGS@) +-set(ARB_CXX_FLAGS_TARGET @ARB_CXX_FLAGS_TARGET_FULL@) ++set(ARB_ARCH "@ARB_ARCH@") ++set(ARB_MODCC_FLAGS "@ARB_MODCC_FLAGS@") ++set(ARB_CXX "@CMAKE_CXX_COMPILER@") ++set(ARB_CXX_FLAGS "@CMAKE_CXX_FLAGS@") ++set(ARB_CXX_FLAGS_TARGET "@ARB_CXX_FLAGS_TARGET_FULL@") + + _append_property(arbor::arbor INTERFACE_LINK_LIBRARIES @arbor_add_import_libs@) + _append_property(arbor::arborenv INTERFACE_LINK_LIBRARIES @arborenv_add_import_libs@) +-- +2.37.2 + diff --git a/arbor-pandas-prevent-duplicate-index-pr1625.patch b/arbor-pandas-prevent-duplicate-index-pr1625.patch deleted file mode 100644 index cc0985e..0000000 --- a/arbor-pandas-prevent-duplicate-index-pr1625.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- arbor-0.5.2/python/example/network_ring.py.debug 2022-07-05 15:12:19.730356523 +0900 -+++ arbor-0.5.2/python/example/network_ring.py 2022-07-05 17:29:11.514008125 +0900 -@@ -135,5 +135,5 @@ - samples, meta = sim.samples(handles[gid])[0] - df_list.append(pandas.DataFrame({'t/ms': samples[:, 0], 'U/mV': samples[:, 1], 'Cell': f"cell {gid}"})) - --df = pandas.concat(df_list) -+df = pandas.concat(df_list, ignore_index=True) - seaborn.relplot(data=df, kind="line", x="t/ms", y="U/mV",hue="Cell",ci=None).savefig('network_ring_result.svg') ---- arbor-0.5.2/python/example/single_cell_detailed.py.debug 2022-07-05 15:12:19.728356520 +0900 -+++ arbor-0.5.2/python/example/single_cell_detailed.py 2022-07-05 17:35:48.116117751 +0900 -@@ -111,6 +111,6 @@ - - df = pandas.DataFrame() - for t in model.traces: -- df=df.append(pandas.DataFrame({'t/ms': t.time, 'U/mV': t.value, 'Location': str(t.location), 'Variable': t.variable})) -+ df=df.append(pandas.DataFrame({'t/ms': t.time, 'U/mV': t.value, 'Location': str(t.location), 'Variable': t.variable}), ignore_index=True) - - seaborn.relplot(data=df, kind="line", x="t/ms", y="U/mV",hue="Location",col="Variable",ci=None).savefig('single_cell_detailed_result.svg') ---- arbor-0.5.2/python/example/single_cell_detailed_recipe.py.debug 2022-07-05 15:12:19.743356546 +0900 -+++ arbor-0.5.2/python/example/single_cell_detailed_recipe.py 2022-07-05 17:36:24.580142710 +0900 -@@ -170,5 +170,5 @@ - - df = pandas.DataFrame() - for i in range(len(data)): -- df = df.append(pandas.DataFrame({'t/ms': data[i][:, 0], 'U/mV': data[i][:, 1], 'Location': str(meta[i]), 'Variable':'voltage'})) -+ df = df.append(pandas.DataFrame({'t/ms': data[i][:, 0], 'U/mV': data[i][:, 1], 'Location': str(meta[i]), 'Variable':'voltage'}), ignore_index=True) - seaborn.relplot(data=df, kind="line", x="t/ms", y="U/mV",hue="Location",col="Variable",ci=None).savefig('single_cell_recipe_result.svg') ---- arbor-0.5.2/python/example/single_cell_swc.py.debug 2022-07-05 15:12:19.733356528 +0900 -+++ arbor-0.5.2/python/example/single_cell_swc.py 2022-07-05 17:31:01.313038480 +0900 -@@ -95,6 +95,6 @@ - for t in m.traces: - df_list.append(pandas.DataFrame({'t/ms': t.time, 'U/mV': t.value, 'Location': str(t.location), "Variable": t.variable})) - --df = pandas.concat(df_list) -+df = pandas.concat(df_list, ignore_index=True) - - seaborn.relplot(data=df, kind="line", x="t/ms", y="U/mV",hue="Location",col="Variable",ci=None).savefig('single_cell_swc.svg') diff --git a/arbor-remove-checks-for-move-ctor-pr1899.patch b/arbor-remove-checks-for-move-ctor-pr1899.patch deleted file mode 100644 index b2a04b0..0000000 --- a/arbor-remove-checks-for-move-ctor-pr1899.patch +++ /dev/null @@ -1,34 +0,0 @@ -From c088f8d71106e9bb4b133704c7e85fdef751971f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Fabian=20B=C3=B6sch?= - <48126478+boeschf@users.noreply.github.com> -Date: Wed, 18 May 2022 16:38:35 +0200 -Subject: [PATCH] remove checks for move ctor when it could be elided - ---- - test/unit/test_thread.cpp | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/test/unit/test_thread.cpp b/test/unit/test_thread.cpp -index 49d46d053..3ef13c723 100644 ---- a/test/unit/test_thread.cpp -+++ b/test/unit/test_thread.cpp -@@ -72,7 +72,8 @@ TEST(task_system, test_copy) { - ts.async(f, 0); - - // Copy into new ftor and move ftor into a task (std::function) -- EXPECT_EQ(1, nmove); -+ // move ctor is elided with some compilers -+ //EXPECT_EQ(1, nmove); - EXPECT_EQ(1, ncopy); - reset(); - } -@@ -99,7 +100,8 @@ TEST(notification_queue, test_copy) { - q.push({task(f), 0}); - - // Copy into new ftor and move ftor into a task (std::function) -- EXPECT_EQ(1, nmove); -+ // move ctor is elided with some compilers -+ //EXPECT_EQ(1, nmove); - EXPECT_EQ(1, ncopy); - reset(); - } diff --git a/arbor.spec b/arbor.spec index 87e28dc..d48b2de 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.5.2 +Version: 0.7 Release: %autorelease Summary: Multi-compartment neural network simulation library @@ -35,20 +35,14 @@ Source1: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts Source2: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts/run_cpp_examples.sh License: BSD -# This patch changes ext/CMakeLists.txt for automatically using tinyopt libraries by cmake command. -#Patch1: arbor-tinyopt_cmake.patch -# https://github.com/arbor-sim/arbor/pull/1899 -Patch2: arbor-remove-checks-for-move-ctor-pr1899.patch -# Extracted from: https://github.com/arbor-sim/arbor/pull/1625 -# panda requires unique index -# https://github.com/arbor-sim/arbor/pull/1625/commits/eff34806dbea822798a5fd7a9e7600af29d126ab -Patch3: arbor-pandas-prevent-duplicate-index-pr1625.patch +Patch1: 0001-Quote-various-cmake-var-values.patch # Random123 does not support these ExcludeArch: mips64r2 mips32r2 s390 BuildRequires: cmake BuildRequires: make +BuildRequires: fmt-devel BuildRequires: gcc-c++ BuildRequires: git-core BuildRequires: gtest-devel @@ -141,8 +135,10 @@ Provides: arbor-openmpi-static = %{version}-%{release} %prep %forgesetup -%patch2 -p1 -b .move_ctor -%patch3 -p1 -b .pandas_index +%patch1 -p1 + +# correct catalogue location +sed -i 's|dummy-catalogue.so|lib/dummy-catalogue.so|' python/test/unit/test_catalogues.py # Disable failing padded test sed -i '/test_padded.cpp/ d' test/unit/CMakeLists.txt @@ -245,8 +241,6 @@ popd || exit -1; } # Build serial version, dummy arguments -%global __cc gcc -%global __cxx g++ %set_build_flags export CC=gcc export CXX=g++ @@ -260,17 +254,12 @@ export MPI_PYTHON3_SITEARCH=%{python3_sitearch} %{do_cmake_config} %{do_make_build} -# Manually make docs in the serial build -sphinx-build-%{python3_version} -b html doc html -# Remove uneeded dotfiles -rm -rfv html/{.buildinfo,.doctrees} - +# skip building sphinx docs because they bundle js/fonts and it's very hard to +# unbundle # Build mpich version %if %{with mpich} %{_mpich_load} -%global __cc mpicc -%global __cxx mpicxx %set_build_flags export CC=mpicc export CXX=mpicxx @@ -287,8 +276,6 @@ export MPI_COMPILE_TYPE="-mpich" # Build OpenMPI version %if %{with openmpi} %{_openmpi_load} -%global __cc mpicc -%global __cxx mpicxx %set_build_flags export CC=mpicc export CXX=mpicxx @@ -334,6 +321,8 @@ export MPI_COMPILE_TYPE="-mpich" pushd $RPM_BUILD_ROOT/$MPI_BIN mv -v modcc{,$MPI_SUFFIX} -v + mv -v arbor-build-catalogue{,$MPI_SUFFIX} -v + mv -v lmorpho{,$MPI_SUFFIX} -v popd %{_mpich_unload} %endif @@ -351,21 +340,25 @@ export MPI_COMPILE_TYPE="-openmpi" pushd $RPM_BUILD_ROOT/$MPI_BIN mv -v modcc{,$MPI_SUFFIX} -v + mv -v arbor-build-catalogue{,$MPI_SUFFIX} -v + mv -v lmorpho{,$MPI_SUFFIX} -v popd %{_openmpi_unload} %endif -# https://github.com/arbor-sim/arbor/blob/master/.github/workflows/basic.yml +# https://github.com/arbor-sim/arbor/blob/master/.github/workflows/test-everything.yml %if %{with tests} %check # General tests export PYTHONPATH="%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}" +# for arbor-build-catalogue +export PATH="$PATH:%{buildroot}/%{_bindir}" # these tests segfault, filter out pushd build-serial - %{python3} ../python/test/unit/runner.py -v2 - ./bin/unit + %{python3} -m unittest discover -v -s ../python + ./bin/unit --gtest_filter=-*task_system.test_copy*:*notification_queue.test_copy* ./bin/unit-modcc cp ../scripts/run_cpp_examples.sh . ./run_cpp_examples.sh @@ -376,9 +369,9 @@ popd %if %{with mpich} %{_mpich_load} export PYTHONPATH="%{buildroot}/$MPI_PYTHON3_SITEARCH" +export PATH="$PATH:." pushd build-mpich - #./bin/unit --gtest_filter=-*mc_event_delivery*:*fvm_lowered*:*mc_cell_group* - mpirun -n %{_smp_build_ncpus} %{python3} ../python/test/unit_distributed/runner.py -v2 + mpirun -n %{_smp_build_ncpus} %{python3} -m unittest discover -v -s ../python mpirun -n %{_smp_build_ncpus} ./bin/unit-mpi cp ../scripts/run_cpp_examples.sh . ./run_cpp_examples.sh "mpirun -n %{_smp_build_ncpus}" @@ -391,8 +384,9 @@ popd %if %{with openmpi} %{_openmpi_load} export PYTHONPATH="%{buildroot}/$MPI_PYTHON3_SITEARCH" +export PATH="$PATH:." pushd build-openmpi - mpirun -n %{_smp_build_ncpus} %{python3} ../python/test/unit_distributed/runner.py -v2 + mpirun -n %{_smp_build_ncpus} %{python3} -m unittest discover -v -s ../python mpirun -n %{_smp_build_ncpus} ./bin/unit-mpi cp ../scripts/run_cpp_examples.sh . ./run_cpp_examples.sh "mpirun -n %{_smp_build_ncpus}" @@ -407,7 +401,10 @@ popd %license LICENSE ext/tinyopt/LICENSE-tinyopt %doc README.md %{_bindir}/modcc +%{_bindir}/arbor-build-catalogue +%{_bindir}/lmorpho %{python3_sitearch}/arbor +%{_datadir}/arbor %files devel @@ -421,7 +418,7 @@ popd %files doc %license LICENSE -%doc html +%doc example/ %if %{with mpich} @@ -429,7 +426,10 @@ popd %doc README.md %license LICENSE ext/tinyopt/LICENSE-tinyopt %{_libdir}/mpich/bin/modcc_mpich +%{_libdir}/mpich/bin/arbor-build-catalogue_mpich +%{_libdir}/mpich/bin/lmorpho_mpich %{python3_sitearch}/mpich/arbor +%{_libdir}/mpich/share/arbor %files mpich-devel %{_libdir}/mpich/include/arbor @@ -446,7 +446,10 @@ popd %doc README.md %license LICENSE ext/tinyopt/LICENSE-tinyopt %{_libdir}/openmpi/bin/modcc_openmpi +%{_libdir}/openmpi/bin/arbor-build-catalogue_openmpi +%{_libdir}/openmpi/bin/lmorpho_openmpi %{python3_sitearch}/openmpi/arbor +%{_libdir}/openmpi/share/arbor %files openmpi-devel %{_libdir}/openmpi/include/arbor From e6a755e643bc9a87e1baa39287535f2350851c88 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Sat, 26 Nov 2022 13:21:49 -0500 Subject: [PATCH 32/60] Add ExcludeArch: i686 This is encouraged by Changes/EncourageI686LeafRemoval; plus, some of the tests are currently segfaulting on that architecture. --- arbor.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arbor.spec b/arbor.spec index d48b2de..b4a120a 100644 --- a/arbor.spec +++ b/arbor.spec @@ -37,8 +37,10 @@ License: BSD Patch1: 0001-Quote-various-cmake-var-values.patch -# Random123 does not support these -ExcludeArch: mips64r2 mips32r2 s390 +# Random123 does not support: +# mips64r2 mips32r2 s390 +# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: mips64r2 mips32r2 s390 %{ix86} BuildRequires: cmake BuildRequires: make From d6b3bf9a21f86927d178f8bf4659885623084d47 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 22:03:15 +0000 Subject: [PATCH 33/60] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering From f6ca2c9dba54a87eac47e11fc97a829e4ec20d28 Mon Sep 17 00:00:00 2001 From: "Benjamin A. Beasley" Date: Thu, 19 Jan 2023 10:30:39 -0500 Subject: [PATCH 34/60] Add some missing #include directives Fixes failure to compile with GCC 13. --- 2080.patch | 33 +++++++++++++++++++++++++++++++++ arbor.spec | 9 ++++++--- 2 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 2080.patch diff --git a/2080.patch b/2080.patch new file mode 100644 index 0000000..acb984d --- /dev/null +++ b/2080.patch @@ -0,0 +1,33 @@ +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 b4a120a..b6f2482 100644 --- a/arbor.spec +++ b/arbor.spec @@ -35,7 +35,11 @@ Source1: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts Source2: https://raw.githubusercontent.com/arbor-sim/arbor/master/scripts/run_cpp_examples.sh License: BSD -Patch1: 0001-Quote-various-cmake-var-values.patch +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 # Random123 does not support: # mips64r2 mips32r2 s390 @@ -136,8 +140,7 @@ Provides: arbor-openmpi-static = %{version}-%{release} %endif %prep -%forgesetup -%patch1 -p1 +%forgeautosetup -p1 # correct catalogue location sed -i 's|dummy-catalogue.so|lib/dummy-catalogue.so|' python/test/unit/test_catalogues.py From 1f66525b15b2ad52161f350a328748bba8a081e4 Mon Sep 17 00:00:00 2001 From: Vitaly Zaitsev Date: Wed, 28 Jun 2023 10:59:00 +0200 Subject: [PATCH 35/60] 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 36/60] 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 37/60] 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 38/60] 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 39/60] 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 40/60] 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 41/60] 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 42/60] 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 43/60] 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 44/60] 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 45/60] 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 46/60] 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 47/60] 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 48/60] 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 49/60] 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 50/60] 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 51/60] 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 52/60] 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 53/60] 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 54/60] 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 55/60] 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 56/60] 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 57/60] 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 58/60] 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 59/60] 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 60/60] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild