The package rpms/arbor.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/arbor.git/commit/?id=106e0717de9d....
Change:
+%ifarch x86_64 i686 aarch64
Thanks.
Full change:
============
commit 106e0717de9d53bad8ce92230da133f3b839cabc
Author: Ankur Sinha (Ankur Sinha Gmail) <sanjay.ankur(a)gmail.com>
Date: Sun Feb 23 17:44:12 2020 +0000
Fix build using snapshot
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)" <sanjay.ankur(a)gmail.com>
+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<neon_double2> {
+ 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<neon_double2> {
+ 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<neon_double2> {
+ 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)" <sanjay.ankur(a)gmail.com>
+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 <cstddef>
++#include <cstdint>
+ #include <functional>
+ #include <limits>
+ #include <iosfwd>
+--
+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)" <sanjay.ankur(a)gmail.com>
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 <halfflat(a)gmail.com>
-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<const time_type*, const time_type*>;
-
- inline time_event_span as_time_event_span(const std::vector<time_type>& 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 <ankursinha AT fedoraproject DOT org> -
0.2.2-5.20200223gitf12f934f365d9e68f01bfd857982be80da2ddd10
+- Build from latest upstream snapshot
+- Freshen patch
+- Add exclude arches
+
* Tue Jan 28 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 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