diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..91a7093 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +/arbor-0.2.2.tar.gz +/arbor-f12f934.tar.gz +/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 +/arbor-0.9.0.tar.gz 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 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/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-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 new file mode 100644 index 0000000..8e76de4 --- /dev/null +++ b/arbor.spec @@ -0,0 +1,483 @@ +%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 mpich 1 +%bcond openmpi 1 + +%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 +Version: 0.9.0 +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-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 +# 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 +# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval +ExcludeArch: mips64r2 mips32r2 s390x %{ix86} + +BuildRequires: cmake +BuildRequires: make +BuildRequires: fmt-devel +BuildRequires: gcc-c++ +BuildRequires: git-core +BuildRequires: gtest-devel +BuildRequires: google-benchmark-devel +BuildRequires: json-devel +BuildRequires: libunwind-devel +BuildRequires: pybind11-devel +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: Random123-devel +BuildRequires: tclap-devel +BuildRequires: pugixml-devel + +# 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} + +# Provide Python meta data for packages requiring arbor +%py_provides python3-arbor + +%description %{_description} + +%package devel +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 arbor +BuildRequires: python3-sphinx +BuildRequires: python3-sphinx_rtd_theme +BuildRequires: python3-svgwrite + +BuildArch: noarch + +%description doc %{_description} + +%if %{with mpich} +%package mpich +Summary: MPICH build for arbor +BuildRequires: mpich-devel +BuildRequires: rpm-mpi-hooks +BuildRequires: python3-mpi4py-mpich + +Requires: mpich +Requires: python3-mpich +Requires: python3-mpi4py-mpich +Requires: %{py3_dist numpy} +Provides: python3-arbor-mpich = %{version}-%{release} + +%description mpich %{_description} + +%package mpich-devel +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 arbor +BuildRequires: openmpi-devel +BuildRequires: rpm-mpi-hooks +BuildRequires: python3-mpi4py-openmpi + +Requires: openmpi +Requires: python3-openmpi +Requires: python3-mpi4py-openmpi +Requires: %{py3_dist numpy} +Provides: python3-arbor-openmpi = %{version}-%{release} + +%description openmpi %{_description} + +%package openmpi-devel +Summary: Development files for arbor-openmpi +Requires: arbor-openmpi%{?_isa} = %{version}-%{release} +Provides: arbor-openmpi-static = %{version}-%{release} + +%description openmpi-devel %{_description} +%endif + +%prep +%forgeautosetup -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 + +# 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 +sed -i -e 's/ ext-random123//' CMakeLists.txt + +# 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 ';' + +# 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/ +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 + +%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 arbor-%{version}$MPI_COMPILE_TYPE ***" +echo +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_USE_BUNDLED_LIBS:BOOL=OFF \\\ + -DARB_USE_BUNDLED_PYBIND11:BOOL=OFF \\\ + -DARB_VECTORIZE:BOOL=OFF \\\ + -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 \\\ +%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 examples || exit -1 +%if %{with tests} + %make_build -C build$MPI_COMPILE_TYPE tests || exit -1 +%endif +} + +# Build serial version, dummy arguments +%set_build_flags +export CC=gcc +export CXX=g++ +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} + +# skip building sphinx docs because they bundle js/fonts and it's very hard to +# unbundle + +# Build mpich version +%if %{with mpich} +%{_mpich_load} +%set_build_flags +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} +%set_build_flags +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 arbor-%{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 + mv -v arbor-build-catalogue{,$MPI_SUFFIX} -v + mv -v lmorpho{,$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 + 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/test-matrix.yml +%if %{with tests} +%check + +# 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 + %{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 + +# MPICH +%if %{with mpich} +%{_mpich_load} +pushd build-mpich +%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}" +popd +%{py3_test_envvars} ./scripts/run_python_examples.sh "%{mpirun}" +%{_mpich_unload} +%endif + +# OpenMPI +%if %{with openmpi} +%{_openmpi_load} +pushd build-openmpi +%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}" +popd +%{py3_test_envvars} ./scripts/run_python_examples.sh "%{mpirun}" +%{_openmpi_unload} +%endif +%endif + + +%files +%license LICENSE ext/tinyopt/LICENSE-tinyopt +%doc README.md +%{_bindir}/modcc +%{_bindir}/arbor-build-catalogue +%{_bindir}/lmorpho +%{python3_sitearch}/arbor +%{_datadir}/arbor + + +%files devel +%{_includedir}/arborio +%{_includedir}/arbor +%{_includedir}/arborenv +%{_libdir}/cmake/arbor +%{_libdir}/libarbor.a +%{_libdir}/libarborio.a +%{_libdir}/libarborenv.a + +%files doc +%license LICENSE +%doc example/ + + +%if %{with mpich} +%files mpich +%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 +%{_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 + +%if %{with openmpi} +%files openmpi +%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 +%{_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 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 + 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; + 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 new file mode 100644 index 0000000..2f80fee --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (arbor-0.9.0.tar.gz) = fa0280cae870c150c8f891949da9d6276f672bb7191b7b982cda4695dd38e3bffdd0dfa5f3acc2cf940909f64eb9da04cd11aeb7a4baa262fdbcd99be618aa15