## START: Set by rpmautospec ## (rpmautospec version 0.3.0) %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 9; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec %bcond_with tests %global _description %{expand: C++ / Python reader for SONATA circuit files. SONATA guide: https://github.com/AllenInstitute/sonata/blob/master/docs/SONATA_DEVELOPER_GUIDE.md } Name: libsonata Version: 0.1.11 Release: %autorelease Summary: A Python and C++ interface to the SONATA format # Boost: include/bbp/sonata/optional.hpp # single file header only library: https://github.com/martinmoene/optional-lite License: LGPLv3 and Boost URL: https://github.com/BlueBrain/libsonata Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz # https://github.com/sanjayankur31/libsonata/tree/fedora-0.1.11 Patch0: 0001-include-catch-cmake.patch Patch1: 0002-use-cpp-17-filesystem.patch Patch2: 0003-Remove-pybind-redeclarations.patch Patch3: 0004-disable-python-ext-build.patch Patch4: 0005-set-libdir.patch # https://github.com/BlueBrain/libsonata/pull/182 Patch5: 0006-fix-assertion-error.patch BuildRequires: cmake BuildRequires: boost-devel BuildRequires: catch-devel BuildRequires: fmt-devel BuildRequires: json-devel BuildRequires: gcc-c++ BuildRequires: git-core # 2.3.1-5 has a fix that is necessary to ensure builds on # s390x, ppc64le, aarch64 # https://github.com/BlueBrain/libsonata/issues/184 BuildRequires: highfive-devel >= 2.3.1-5 BuildRequires: hdf5-devel BuildRequires: pybind11-devel BuildRequires: python3-pybind11 %description %_description %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel %_description %package -n python3-libsonata Summary: %{summary} BuildRequires: python3-devel BuildRequires: python3-pip BuildRequires: python3-wheel BuildRequires: python3-setuptools BuildRequires: python3-setuptools_scm BuildRequires: python3-pytest BuildRequires: python3-h5py %description -n python3-libsonata %_description %prep %autosetup -n libsonata-%{version} -S git rm -rf libsonata.egg-info rm -rf extlib/{Catch2,Highfive,fmt,nlohmann} # Comment out to remove /usr/bin/env shebangs # Can use something similar to correct/remove /usr/bin/python shebangs also # find . -type f -name "*.py" -exec sed -i '/^#![ ]*\/usr\/bin\/env.*$/ d' {} 2>/dev/null ';' %build %cmake -DSONATA_PYTHON=ON -DEXTLIB_FROM_SUBMODULES=OFF -DSONATA_VERSION="%{version}" -DSONATA_TESTS=ON -DSONATA_CXX_WARNINGS=OFF %cmake_build # python bits need to be run in the out of source build directory so we need to # move some files to allow that export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} cp -a README.rst %{__cmake_builddir} cp -a setup.py %{__cmake_builddir} cp -a pyproject.toml %{__cmake_builddir} cp -a COPYING.* %{__cmake_builddir} cp -a MANIFEST.* %{__cmake_builddir} mkdir -p %{__cmake_builddir}/python/libsonata/ cp -a python/libsonata/__init__.py %{__cmake_builddir}/python/libsonata pushd %{__cmake_builddir} %pyproject_wheel popd # regenerate data files and copy to build dir pushd tests/data %{python3} generate.py popd mkdir -p %{__cmake_builddir}/tests cp -a tests/data %{__cmake_builddir}/tests %install %cmake_install # remove static lib rm -rf %{buildroot}/%{_libdir}/libsonata.a # neither cmake nor pyproject install python module(!?) install -p -m 0655 -D -t %{buildroot}/%{python3_sitearch}/libsonata/ %{__cmake_builddir}/python/_libsonata*so export SETUPTOOLS_SCM_PRETEND_VERSION=%{version} pushd %{__cmake_builddir} %pyproject_install %pyproject_save_files libsonata popd %check %ctest tests # There are some messages related to HDF5-DIAG, but upstream's CI also gets them, for example: # https://github.com/BlueBrain/libsonata/runs/5272240111?check_suite_focus=true pushd python/tests export PYTHONPATH=%{buildroot}/%{python3_sitearch}/ %{python3} -m unittest -v popd %files %license COPYING.LESSER %doc README.rst CHANGELOG.md %{_libdir}/libsonata.so.0.1 %{_libdir}/libsonata.so.0.1.11 %files devel %{_includedir}/bbp %{_datadir}/sonata/ %{_libdir}/libsonata.so %files -n python3-libsonata -f %{pyproject_files} %doc README.rst CHANGELOG.md %{python3_sitearch}/libsonata/_libsonata*so %changelog * Thu Jan 19 2023 Fedora Release Engineering 0.1.11-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Thu Jul 21 2022 Fedora Release Engineering 0.1.11-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Tue Jun 14 2022 Python Maint 0.1.11-7 - Rebuilt for Python 3.11 * Fri Mar 18 2022 Ankur Sinha (Ankur Sinha Gmail) 0.1.11-6 - fix: initial build (fixes rhbz#2061077) - requires highfive version that fixes bug to allow correct building on s390x, aarch64, ppc64le * Thu Mar 17 2022 Ankur Sinha (Ankur Sinha Gmail) 0.1.11-5 - feat: initial import to repositories * Thu Mar 17 2022 Ankur Sinha (Ankur Sinha Gmail) 0.1.11-4 - update as per review comments * Thu Mar 17 2022 Ankur Sinha (Ankur Sinha Gmail) 0.1.11-3 - feat: corrections based on review - fix assertion error - fix python package installation - enable all tests * Thu Mar 17 2022 Ankur Sinha (Ankur Sinha Gmail) 0.1.11-2 - Add fork URL in comment * Thu Mar 17 2022 Ankur Sinha (Ankur Sinha Gmail) 0.1.11-1 - feat: ready for review * Thu Mar 17 2022 Ankur Sinha (Ankur Sinha Gmail) 0.1.8-2 - WIP * Thu Mar 17 2022 Ankur Sinha (Ankur Sinha Gmail) 0.1.8-1 - init