Compare commits

...
Sign in to create a new pull request.

7 commits

Author SHA1 Message Date
Sandro
f644e8d870
Fix missing includes
[skip changelog]
2024-05-17 08:50:41 +02:00
Sandro
6917253fc3
Stop running examples script
The script is no longer run upstream. Let's follow suit.

[skip changelog]
2024-05-17 08:50:41 +02:00
Sandro
72e978e5ad
Fix rpmlint errors
Fixed:

* wrong-script-interpreter
* no-binary
* lto-no-text-in-archive

Pending:

* static-library-without-debuginfo

[skip changelog]
2024-05-17 08:50:41 +02:00
Sandro
42f80ede91
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]
2024-05-17 08:50:41 +02:00
Sandro
18bbfd2759
Add Packit confg
[skip changelog]
2024-05-17 08:50:41 +02:00
Sandro
3aa76c2154
Use user friendly notation of conditionals
[skip changelog]
2024-05-17 08:50:41 +02:00
Sandro
2d9b695914
Update to 0.9.0 (RHBZ#2145131)
- Drop obsolete patches
- Exclude segfaulting tests
2024-05-17 08:50:34 +02:00
7 changed files with 97 additions and 91 deletions

1
.gitignore vendored
View file

@ -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

13
.packit.yaml Normal file
View file

@ -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

View file

@ -1,33 +0,0 @@
From 884c568f96bc10079f28f4b2b7c8fc120c020053 Mon Sep 17 00:00:00 2001
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
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 <algorithm>
#include <cstdlib>
+#include <cstdint>
#include <ostream>
#include <vector>
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 <atomic>
+#include <stdexcept>
#include <arbor/assert.hpp>
#include <arbor/util/scope_exit.hpp>

View file

@ -14,15 +14,21 @@ 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
# 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.7
Version: 0.9.0
Release: %autorelease
Summary: Multi-compartment neural network simulation library
@ -36,13 +42,8 @@ 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
# Tests are failing to compile due to some missing includes
Patch: fix-missing-includes.patch
# Random123 does not support:
# mips64r2 mips32r2 s390
@ -90,11 +91,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}
@ -172,6 +175,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/
@ -216,6 +222,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 \\\
@ -348,51 +355,51 @@ 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*
%{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
# 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

View file

@ -0,0 +1,43 @@
From fa15938c196bf317e0292d41ec7d341978e9ed08 Mon Sep 17 00:00:00 2001
From: Sandro <devel@penguinpee.nl>
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 <unordered_map>
#include <utility>
#include <vector>
+#include <algorithm>
#include <gtest/gtest.h>
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 <arbor/spike_event.hpp>
#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 <gtest/gtest.h>
#include "util/ordered_forest.hpp"
+#include "common.hpp"
using arb::util::ordered_forest;

View file

@ -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.

View file

@ -1 +1 @@
SHA512 (arbor-0.7.tar.gz) = 66471172e159c87c930c89cfed20020cd7c770e0fd5f32b265197710c7bbd2920cfa018f384553130dd93645e149ccb71f64cc04208534c96b4e581f0c0acb50
SHA512 (arbor-0.9.0.tar.gz) = fa0280cae870c150c8f891949da9d6276f672bb7191b7b982cda4695dd38e3bffdd0dfa5f3acc2cf940909f64eb9da04cd11aeb7a4baa262fdbcd99be618aa15