#6 WIP: Update to 0.9.0 (RHBZ#2145131)
Opened 4 months ago by gui1ty. Modified 2 months ago
rpms/ gui1ty/arbor update  into  rawhide

file modified
+1
@@ -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

file added
+13
@@ -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

file removed
-33
@@ -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>

file modified
+37 -32
@@ -14,15 +14,21 @@ 

  }

  

  # 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,6 @@ 

  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
@@ -90,11 +89,13 @@ 

  %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 +173,9 @@ 

  # 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 +220,7 @@ 

          -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 +353,51 @@ 

  %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

file removed
-25
@@ -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.

file modified
+1 -1
@@ -1,1 +1,1 @@ 

- SHA512 (arbor-0.7.tar.gz) = 66471172e159c87c930c89cfed20020cd7c770e0fd5f32b265197710c7bbd2920cfa018f384553130dd93645e149ccb71f64cc04208534c96b4e581f0c0acb50

+ SHA512 (arbor-0.9.0.tar.gz) = fa0280cae870c150c8f891949da9d6276f672bb7191b7b982cda4695dd38e3bffdd0dfa5f3acc2cf940909f64eb9da04cd11aeb7a4baa262fdbcd99be618aa15

Python unit tests are failing. I disabled them for now. Use --with mpi_py_unittest to enable them for further inspection. For the serial build all tests succeed, if that is any consolation. Upstream has stopped running run_python_examples.sh in their workflow. Maybe we can drop that script as well. Although, it still runs fine without issues.

I also fixed some rpmlint errors. I haven't checked if these were present before. One error (static-library-without-debuginfo) remains, though. If my understanding of the error is correct, the static libraries need to be added to find-debuginfo. Yet, I couldn't find any information on how to achieve that. It seems find-debuginfo is baked in to rpm at the end of the %install stage and doesn't take static libraries into consideration.

More info is in the commit messages.

Build succeeded.
https://fedora.softwarefactory-project.io/zuul/buildset/c37cbd984444445495f259497cdb04b2

rebased onto b9e93b2

2 months ago

1 new commit added

  • Stop running examples script
2 months ago

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci
https://fedora.softwarefactory-project.io/zuul/buildset/f4a359517de346fd8e1b85030dd83e17

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci
https://fedora.softwarefactory-project.io/zuul/buildset/0bb8c9588d6f48ebb2be7ee4dce81cc1