%undefine __cmake_in_source_build %undefine __cmake3_in_source_build # Use static linking against boost %bcond_with static_boost_python #------------------------------------------------------------------------------- # Configure python2/3 according to platform and passed-in parameter #------------------------------------------------------------------------------- # Require --without=python3 in order to disable python3 build package %bcond_without python3 # Require --without=python2 in order to disable python2 build package on RHEL7 %if 0%{?rhel} == 7 %bcond_without python2 %endif # Require --without=docs in order to disable gfal2-python-doc package on RHEL7 %if 0%{?rhel} == 7 %bcond_without docs %endif # Python path discovery %if 0%{?with_python2} %if 0%{?rhel} == 7 %{!?python_sitearch: %define python_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %else %{!?python2_sitearch: %define python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} %endif %endif %if 0%{?with_python3} %{!?python3_sitearch: %define python3_sitearch %(%{__python3} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} %endif # Python modules filtering %global __provides_exclude_from ^((%{python2_sitearch})|(%{python3_sitearch})/.*\\.so)$ Name: gfal2-python Version: 1.12.0 Release: 1%{?dist} Summary: Python bindings for gfal 2 License: ASL 2.0 URL: http://dmc.web.cern.ch/ # git clone --branch master https://gitlab.cern.ch/dmc/gfal2-bindings.git gfal2-python-1.12.0 # pushd gfal2-python-1.12.0 # git checkout v1.12.0 # popd # tar czf gfal2-python-1.12.0.tar.gz --exclude-vcs gfal2-python-1.12.0 Source0: %{name}-%{version}.tar.gz Patch0: 0000_CMake_FindPython3_11.patch BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: gfal2-devel >= 2.21.0 BuildRequires: boost-devel # Python 2 %if 0%{?with_python2} BuildRequires: python2-devel %endif # Epydoc %if 0%{?with_docs} BuildRequires: epydoc %endif # Python 3 %if 0%{?with_python3} %if 0%{?rhel} == 7 BuildRequires: python36-devel BuildRequires: boost-python36-devel %else BuildRequires: python3-devel BuildRequires: boost-python3-devel %endif %endif %global _description \ Python bindings for gfal2. \ GFAL2 offers an a single, simple and portable API \ for the file operations in grids and cloud environments. %description %_description %if 0%{?with_python2} %package -n python2-gfal2 Summary: %summary Requires: gfal2-core >= 2.21.0 Requires: python2 %{?python_provide:%python_provide python2-gfal2} # Remove before F30 Provides: gfal2-python = %{version}-%{release} Provides: gfal2-python%{?_isa} = %{version}-%{release} Obsoletes: gfal2-python < %{version}-%{release} %description -n python2-gfal2 %_description %endif %if 0%{?with_python3} %package -n python3-gfal2 Summary: gfal2 python bindings for Python 3 Requires: gfal2-core >= 2.21.0 Requires: python3 # Remove before F30 Provides: gfal2-python3 = %{version}-%{release} Provides: gfal2-python3%{?_isa} = %{version}-%{release} Obsoletes: gfal2-python3 < %{version}-%{release} %description -n python3-gfal2 Python 3 bindings for gfal2. GFAL2 offers an a single, simple and portable API for the file operations in grids and cloud environments. %endif %if 0%{?with_docs} %package doc Summary: Documentation for %{name} BuildArch: noarch %description doc Documentation files for %{name}. %endif %clean %cmake3_build --target clean %prep %setup -q %patch0 -p1 %build # Make sure the version in the spec file and the version used # for building matches gfal2_python_cmake_ver=`sed -n 's/^set *(VERSION_\(MAJOR\|MINOR\|PATCH\) *\([0-9]\+\).*/\2/p' CMakeLists.txt | paste -sd '.'` gfal2_python_spec_ver=`expr "%{version}" : '\([0-9]*\\.[0-9]*\\.[0-9]*\)'` if [ "$gfal2_python_cmake_ver=" != "$gfal2_python_spec_ver=" ]; then echo "The version in the spec file does not match the CMakeLists.txt version!" echo "$gfal2_python_cmake_ver!= %{version}" exit 1 fi %cmake3 \ -DDOC_INSTALL_DIR=%{_pkgdocdir} \ %if 0%{?with_static_boost_python} -DBoost_USE_STATIC_LIBS=ON \ %endif %if 0%{?with_docs} -DBUILDDOCS=TRUE \ %endif -DUNIT_TESTS=TRUE %cmake3_build %if 0%{?with_docs} %cmake3_build --target doc %endif %install %cmake3_install %if 0%{?with_python2} %files -n python2-gfal2 %{python_sitearch}/gfal2.so %doc LICENSE %endif %if 0%{?with_python3} %files -n python3-gfal2 %{python3_sitearch}/gfal2.so %doc LICENSE %endif %if 0%{?with_docs} %files doc %{_pkgdocdir}/LICENSE %{_pkgdocdir}/RELEASE-NOTES %{_pkgdocdir}/README %{_pkgdocdir}/readme.html %dir %{_pkgdocdir}/html %dir %{_pkgdocdir}/examples %{_pkgdocdir}/html/* %{_pkgdocdir}/examples/* %endif %changelog * Mon Aug 15 2022 Mihai Patrascoiu - 1.12.0-1 - Upgrade to upstream release 1.12.0 * Thu Jul 21 2022 Fedora Release Engineering - 1.11.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Tue Jul 19 2022 Mihai Patrascoiu - 1.11.1-4 - Patch for the Python 3.11 rebuild (close RHBZ#2098706) * Mon Jun 13 2022 Python Maint - 1.11.1-3 - Rebuilt for Python 3.11 * Wed May 04 2022 Thomas Rodgers - 1.11.1-2 - Rebuilt for Boost 1.78 * Mon Mar 07 2022 Mihai Patrascoiu - 1.11.1-1 - Upgrade to upstream release 1.11.1 * Thu Jan 20 2022 Fedora Release Engineering - 1.9.5-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Fri Aug 06 2021 Jonathan Wakely - 1.9.5-15 - Rebuilt for Boost 1.76 * Thu Jul 22 2021 Fedora Release Engineering - 1.9.5-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Fri Jun 04 2021 Python Maint - 1.9.5-13 - Rebuilt for Python 3.10 * Tue Jan 26 2021 Fedora Release Engineering - 1.9.5-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Fri Jan 22 2021 Jonathan Wakely - 1.9.5-11 - Rebuilt for Boost 1.75 * Sat Aug 01 2020 Fedora Release Engineering - 1.9.5-10 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Mon Jul 27 2020 Fedora Release Engineering - 1.9.5-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Fri May 29 2020 Jonathan Wakely - 1.9.5-8 - Rebuilt for Boost 1.73 * Tue May 26 2020 Miro Hrončok - 1.9.5-7 - Rebuilt for Python 3.9 * Tue Jan 28 2020 Fedora Release Engineering - 1.9.5-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Mon Sep 16 2019 Andrea Manzi - 1.9.5-5 - rename python3 package - remove python2 package from f32 on - remove el5 compilation * Mon Aug 19 2019 Miro Hrončok - 1.9.5-4 - Rebuilt for Python 3.8 * Thu Jul 25 2019 Fedora Release Engineering - 1.9.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Thu Jan 31 2019 Fedora Release Engineering - 1.9.5-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Thu Oct 25 2018 Andrea Manzi - 1.9.5-2 - Update for release 1.9.5 * Wed Feb 07 2018 Fedora Release Engineering - 1.9.3-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 1.9.3-5 - Add Provides for the old name without %%_isa * Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 1.9.3-4 - Python 2 binary package renamed to python2-gfal2 See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 * Wed Aug 02 2017 Fedora Release Engineering - 1.9.3-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - Rebuild with binutils fix for ppc64le (#1475636) * Wed Jul 26 2017 Alejandro Alvarez - 1.9.3-1 - Update for release 1.9.3 * Wed Jul 26 2017 Fedora Release Engineering - 1.9.2-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Thu Jul 20 2017 Kalev Lember - 1.9.2-3 - Rebuilt for Boost 1.64 * Fri Jul 07 2017 Igor Gnatenko - 1.9.2-2 - Rebuild due to bug in RPM (RHBZ #1468476) * Mon Apr 03 2017 Alejandro Alvarez - 1.9.2-1 - Update for release 1.9.2 * Mon Feb 20 2017 Alejandro Alvarez - 1.9.1-1 - Update for release 1.9.1 * Fri Feb 10 2017 Fedora Release Engineering - 1.8.5-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Fri Jan 27 2017 Jonathan Wakely - 1.8.5-2 - Rebuilt for Boost 1.63 * Wed Jan 18 2017 Alejandro Alvarez - 1.8.5-1 - Update to upstream release * Tue Jul 19 2016 Fedora Release Engineering - 1.8.4-5 - https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages * Tue Mar 08 2016 Alejandro Alvarez - 1.8.4-4 - Add patch to work with newer versions of Boost * Wed Feb 03 2016 Fedora Release Engineering - 1.8.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Fri Jan 15 2016 Jonathan Wakely - 1.8.4-2 - Rebuilt for Boost 1.60 * Mon Nov 09 2015 Alejandro Alvarez - 1.8.4-1 - Update for release 1.8.4 * Thu Aug 27 2015 Jonathan Wakely - 1.8.3-4 - Rebuilt for Boost 1.59 * Wed Jul 29 2015 Fedora Release Engineering - 1.8.3-3 - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 * Wed Jul 22 2015 David Tardon - 1.8.3-2 - rebuild for Boost 1.58 * Fri Jul 03 2015 Alejandro Alvarez - 1.8.3-1 - Update for release 1.8.3 * Wed Jun 17 2015 Fedora Release Engineering - 1.8.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Fri Apr 17 2015 Alejandro Alvarez - 1.8.1-1 - Update for release 1.8.1 * Thu Apr 02 2015 Alejandro Alvarez - 1.7.1-1 - Update for release 1.7.1 * Fri Feb 06 2015 Alejandro Alvarez - 1.7.0-1 - Update for release 1.7.0 * Tue Jan 27 2015 Petr Machata - 1.6.0-2 - Rebuild for boost 1.57.0 * Fri Nov 07 2014 Alejandro Alvarez - 1.6.0-1 - Update for release 1.6.0 * Sat Aug 16 2014 Fedora Release Engineering - 1.5.0-1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Tue Jul 01 2014 Alejandro Alvarez - 1.5.0-1 - Update for release 1.5.0 * Sat Jun 07 2014 Fedora Release Engineering - 1.4.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Fri May 23 2014 Petr Machata - 1.4.1-2 - Rebuild for boost 1.55.0 * Fri Feb 28 2014 Adrien Devresse - 1.4.1-1 - Release 1.4.1 of gfal2 python bindings, see RELEASE-NOTES for details * Sat Nov 16 2013 Ville Skyttä - 1.3.0-2 - Install docs to %%{_pkgdocdir} where available (#993774). - Own doc dirs. * Fri Nov 01 2013 Adrien Devresse - 1.3.0-1 - Release 1.3.0 of gfal2 python bindings, see RELEASE-NOTES for details * Wed May 08 2013 Adrien Devresse - 1.2.1-1 - First release compatible for EPEL