From ba04c151410d0fbe56f78905ae6662c65131a861 Mon Sep 17 00:00:00 2001 From: sagitter Date: Jun 08 2020 12:16:59 +0000 Subject: [PATCH 1/2] Release 0.3 --- 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/0001-Use-system-pybind11.patch deleted file mode 100644 index a385645..0000000 --- a/0001-Use-system-pybind11.patch +++ /dev/null @@ -1,38 +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 - ---- - 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 @@ - 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 --- -2.24.1 - diff --git a/arbor-0001-Use-system-pybind11.patch b/arbor-0001-Use-system-pybind11.patch new file mode 100644 index 0000000..3a826bc --- /dev/null +++ b/arbor-0001-Use-system-pybind11.patch @@ -0,0 +1,32 @@ +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 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" \\\ @@ -178,6 +182,9 @@ pushd build$MPI_COMPILE_TYPE && %else -DARB_VECTORIZE:BOOL=OFF \\\ %endif +%ifarch %{power64} + -DARB_ARCH=power8 \\\ +%endif -DARB_WITH_MPI:BOOL=$MPI_YES \\\ -DARB_WITH_GPU:BOOL=OFF \\\ -DARB_ARCH:STRING="native" \\\ @@ -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: Jun 08 2020 17:49:12 +0000 Subject: [PATCH 2/2] Move Provides lines to runtime packages --- 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