From 83f67abc22699efc5a997685455d3ddad20d11d8 Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Sat, 6 Jan 2024 03:54:36 +0100 Subject: [PATCH] added python-boost-py310 subpackage for python 3.10 support [release 1.81.0-2mamba;Thu Mar 30 2023] --- README.md | 7 + libboost-1.57.0-moc-libqt4-4.8.6.patch | 15 + libboost-1.58.0-python-3.3.patch | 28 ++ libboost-1.76.0-arm-upstream-fix-build.patch | 48 +++ libboost181.spec | 419 +++++++++++++++++++ 5 files changed, 517 insertions(+) create mode 100644 libboost-1.57.0-moc-libqt4-4.8.6.patch create mode 100644 libboost-1.58.0-python-3.3.patch create mode 100644 libboost-1.76.0-arm-upstream-fix-build.patch create mode 100644 libboost181.spec diff --git a/README.md b/README.md index 31a7a99..d8995dc 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,9 @@ # libboost181 +The Boost libraries provide free peer-reviewed portable C++ source libraries. +The emphasis is on libraries which work well with the C++ Standard Library. +The libraries are intended to be widely useful, and are in regular use by thousands of programmers across a broad spectrum of applications. + +A further goal is to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. +Ten Boost libraries will be included in the C++ Standards Committee's upcoming C++ Standard Library Technical Report as a step toward becoming part of a future C++ Standard. + diff --git a/libboost-1.57.0-moc-libqt4-4.8.6.patch b/libboost-1.57.0-moc-libqt4-4.8.6.patch new file mode 100644 index 0000000..a585d43 --- /dev/null +++ b/libboost-1.57.0-moc-libqt4-4.8.6.patch @@ -0,0 +1,15 @@ +--- boost_1_57_0/boost/type_traits/detail/has_binary_operator.hpp.orig 2015-04-11 16:45:40.250578640 +0200 ++++ boost_1_57_0/boost/type_traits/detail/has_binary_operator.hpp 2015-04-11 16:45:58.911577918 +0200 +@@ -6,6 +6,7 @@ + // + // See http://www.boost.org/libs/type_traits for most recent version including documentation. + ++#ifndef Q_MOC_RUN + #include + #include + #include +@@ -227,3 +228,4 @@ + #endif + + #include ++#endif diff --git a/libboost-1.58.0-python-3.3.patch b/libboost-1.58.0-python-3.3.patch new file mode 100644 index 0000000..ec3831c --- /dev/null +++ b/libboost-1.58.0-python-3.3.patch @@ -0,0 +1,28 @@ +From 3e405b6fd5db5615bbef241763de070118222ca7 Mon Sep 17 00:00:00 2001 +From: Stefan Seefeld +Date: Thu, 9 Apr 2015 08:57:08 -0400 +Subject: [PATCH] Fix exec_file for Python 3 < 3.4. + +--- + src/exec.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/libs/python/src/exec.cpp b/libs/python/src/exec.cpp +index 2910db7..12cdabc 100644 +--- a/libs/python/src/exec.cpp ++++ b/libs/python/src/exec.cpp +@@ -86,9 +86,12 @@ object BOOST_PYTHON_DECL exec_file(str filename, object global, object local) + char *f = python::extract(filename); + + // Let python open the file to avoid potential binary incompatibilities. +-#if PY_VERSION_HEX >= 0x03000000 +- // See http://www.codeproject.com/Articles/820116/Embedding-Python-program-in-a-C-Cplusplus-code ++#if PY_VERSION_HEX >= 0x03400000 + FILE *fs = _Py_fopen(f, "r"); ++#elif PY_VERSION_HEX >= 0x03000000 ++ PyObject *fo = Py_BuildValue("s", f); ++ FILE *fs = _Py_fopen(fo, "r"); ++ Py_DECREF(fo); + #else + PyObject *pyfile = PyFile_FromString(f, const_cast("r")); + if (!pyfile) throw std::invalid_argument(std::string(f) + " : no such file"); diff --git a/libboost-1.76.0-arm-upstream-fix-build.patch b/libboost-1.76.0-arm-upstream-fix-build.patch new file mode 100644 index 0000000..5b97e3d --- /dev/null +++ b/libboost-1.76.0-arm-upstream-fix-build.patch @@ -0,0 +1,48 @@ +From 6064875bff2e52ba63f01911eb4deb79259c5e3b Mon Sep 17 00:00:00 2001 +From: Carlos Miguel Ferreira +Date: Thu, 3 Jun 2021 23:10:37 +0100 +Subject: [PATCH] Fixes wrong type for mutex in regex v5 + +With the Boost.Regex to ehader-only library, the declaration +of a mutex that should have been changed from boost::static_mutex +to std::mutex was left behind. This was preventing regex from +being built for older arm platforms [1] + +[1]: https://github.com/openwrt/packages/issues/15725 + +Signed-off-by: Carlos Miguel Ferreira +--- + include/boost/regex/v5/mem_block_cache.hpp | 12 ++++-------- + 1 file changed, 4 insertions(+), 8 deletions(-) + +diff --git a/include/boost/regex/v5/mem_block_cache.hpp b/include/boost/regex/v5/mem_block_cache.hpp +index 0af4eae18..eb3ec776c 100644 +--- a/include/boost/regex/v5/mem_block_cache.hpp ++++ b/include/boost/regex/v5/mem_block_cache.hpp +@@ -85,10 +85,10 @@ struct mem_block_node + struct mem_block_cache + { + // this member has to be statically initialsed: +- mem_block_node* next; +- unsigned cached_blocks; ++ mem_block_node* next { nullptr }; ++ unsigned cached_blocks { 0 }; + #ifdef BOOST_HAS_THREADS +- boost::static_mutex mut; ++ std::mutex mut; + #endif + + ~mem_block_cache() +@@ -133,11 +133,7 @@ struct mem_block_cache + } + static mem_block_cache& instance() + { +-#ifdef BOOST_HAS_THREADS +- static mem_block_cache block_cache = { 0, 0, BOOST_STATIC_MUTEX_INIT, }; +-#else +- static mem_block_cache block_cache = { 0, 0, }; +-#endif ++ static mem_block_cache block_cache; + return block_cache; + } + }; diff --git a/libboost181.spec b/libboost181.spec new file mode 100644 index 0000000..5e27c48 --- /dev/null +++ b/libboost181.spec @@ -0,0 +1,419 @@ +%define pckver %(echo %version | tr . _) +%define pckmajver %(echo %version | cut -d. -f1-2 | tr . _) +Name: libboost181 +Version: 1.81.0 +Release: 2mamba +Summary: Free peer-reviewed portable C++ source libraries +Group: System/Libraries +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: https://www.boost.org/ +Source: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/boost_%{pckver}.tar.bz2 +Patch0: libboost-1.57.0-moc-libqt4-4.8.6.patch +Patch1: libboost-1.58.0-python-3.3.patch +Patch2: libboost-1.76.0-arm-upstream-fix-build.patch +License: Boost Software License +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libbzip2-devel +BuildRequires: libgcc +BuildRequires: libicu-devel +BuildRequires: liblzma-devel +BuildRequires: libmpi-devel +BuildRequires: libstdc++6-devel +BuildRequires: libz-devel +BuildRequires: libzstd-devel +## AUTOBUILDREQ-END +BuildRequires: libicu-devel >= 67.1 +BuildRequires: libpython3-devel +BuildRequires: python-numpy-py3 +BuildRequires: openmpi-devel +BuildRequires: boost-jam + +%description +The Boost libraries provide free peer-reviewed portable C++ source libraries. +The emphasis is on libraries which work well with the C++ Standard Library. +The libraries are intended to be widely useful, and are in regular use by thousands of programmers across a broad spectrum of applications. + +A further goal is to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. +Ten Boost libraries will be included in the C++ Standards Committee's upcoming C++ Standard Library Technical Report as a step toward becoming part of a future C++ Standard. + +%package devel +Group: Development/Libraries +Summary: Devel package for libboost +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: python-boost181-py3 = %{?epoch:%epoch:}%{version}-%{release} +Requires: python-boost181-py310 = %{?epoch:%epoch:}%{version}-%{release} + +%description devel +The Boost libraries provide free peer-reviewed portable C++ source libraries. +The emphasis is on libraries which work well with the C++ Standard Library. +The libraries are intended to be widely useful, and are in regular use by thousands of programmers across a broad spectrum of applications. +A further goal is to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. +Ten Boost libraries will be included in the C++ Standards Committee's upcoming C++ Standard Library Technical Report as a step toward becoming part of a future C++ Standard. +This is the devel package. + +%package -n python-boost181-py3 +Group: System/Libraries +Summary: Boost.Python library for Python 3 +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description -n python-boost181-py3 +The Boost libraries provides free peer-reviewed portable C++ source libraries. +The emphasis is on libraries which work well with the C++ Standard Library. +The libraries are intended to be widely useful, and are in regular use by thousands of programmers across a broad spectrum of applications. +A further goal is to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. +Ten Boost libraries will be included in the C++ Standards Committee's upcoming C++ Standard Library Technical Report as a step toward becoming part of a future C++ Standard. +This package contains then Boost.python library for Python 3. + +%package -n python-boost181-py310 +Group: System/Libraries +Summary: Boost.Python library for Python 3.10 +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description -n python-boost181-py310 +The Boost libraries provides free peer-reviewed portable C++ source libraries. +The emphasis is on libraries which work well with the C++ Standard Library. +The libraries are intended to be widely useful, and are in regular use by thousands of programmers across a broad spectrum of applications. +A further goal is to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. +Ten Boost libraries will be included in the C++ Standards Committee's upcoming C++ Standard Library Technical Report as a step toward becoming part of a future C++ Standard. +This package contains then Boost.python library for Python 3.10. + +%debug_package + +%prep +%setup -q -n boost_%{pckver} -a0 +#-D -T +#:<< _EOF +mv boost_%{pckver} boost_python37 + +#%patch0 -p1 +#%patch1 -p1 +#%patch2 -p2 + +%build +#:<< _EOF +# Build boost with python310 +./bootstrap.sh \ + --with-icu \ + --with-python-root=%{_prefix} \ + --with-python-version=%{python310_version} + +sed -i "s|using python.*|using python : %{python310_version} : %{_prefix} : %{python310_inc} ;|" project-config.jam +echo "using mpi ;" >> project-config.jam + +EXPAT_INCLUDE=%{_includedir} \ +EXPAT_LIBPATH=%{_libdir} \ +./b2 \ + --prefix=%{_prefix} \ + --layout=system -d2 \ + python=%{python310_version} \ + runtime-link=shared \ + link=shared,static \ + toolset=gcc \ + variant=release \ + threading=multi \ + debug-symbols=on \ + stage \ +%ifarch x86_64 + cflags="-fPIC" +%endif + +cd boost_python37 +# Rebuild boost with Python 3.7 +rm -f user-config.jam + +./bootstrap.sh \ + --with-icu \ + --with-python-root=%{_prefix} \ + --with-python-version=%{python3_version} \ + --with-libraries=python + +sed -i "s|using python.*|using python : %{python3_version} : %{_prefix} : %{python3_inc} ;|" project-config.jam +echo "using mpi ;" >> project-config.jam + +EXPAT_INCLUDE=%{_includedir} \ +EXPAT_LIBPATH=%{_libdir} \ +./b2 \ + -a \ + --prefix=%{_prefix} \ + --layout=system -d2 \ + python=%{python3_version} \ + runtime-link=shared \ + link=shared,static \ + toolset=gcc \ + variant=release \ + threading=multi \ + debug-symbols=on \ + stage \ +%ifarch x86_64 + cflags="-fPIC" +%endif + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +cd boost_python37 +EXPAT_INCLUDE=%{_includedir} \ +EXPAT_LIBPATH=%{_libdir} \ +./b2 \ + --prefix=%{buildroot}%{_prefix} \ + --libdir=%{buildroot}%{_libdir} \ + --execprefix=%{buildroot}%{_libexecdir} \ + --includedir=%{buildroot}%{_includedir} \ + --layout=system -d2 \ + python=%{python3_version} \ + runtime-link=shared \ + link=shared,static \ + toolset=gcc \ + variant=release \ + threading=multi \ + debug-symbols=on \ + install + +cd .. + +EXPAT_INCLUDE=%{_includedir} \ +EXPAT_LIBPATH=%{_libdir} \ +./b2 \ + --prefix=%{buildroot}%{_prefix} \ + --libdir=%{buildroot}%{_libdir} \ + --execprefix=%{buildroot}%{_libexecdir} \ + --includedir=%{buildroot}%{_includedir} \ + --layout=system -d2 \ + python=%{python310_version} \ + runtime-link=shared \ + link=shared,static \ + toolset=gcc \ + variant=release \ + threading=multi \ + debug-symbols=on \ + install + +# https://github.com/boostorg/python/issues/203#issuecomment-391477685 +for _lib in python mpi_python numpy; do + ln -srL %{buildroot}%{_libdir}/libboost_${_lib}{27,}.so + ln -srL %{buildroot}%{_libdir}/libboost_${_lib}3{10,}.so +done + +rm -f %{buildroot}%{_libdir}/boost-python3.10/mpi.so + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_libdir}/libboost_*.so.* +%exclude %{_libdir}/libboost_python3*.so.* +%exclude %{_libdir}/libboost_mpi_python3*.so.* +%exclude %{_libdir}/libboost_numpy3*.so.* +%doc LICENSE_1_0.txt + +%files devel +%defattr(-,root,root) +%dir %{_includedir}/boost +%{_includedir}/boost/* +%{_libdir}/libboost_*.so +%{_libdir}/libboost_*.a +#%exclude %{_libdir}/mpi.so +%dir %{_libdir}/cmake/Boost-%{version} +%{_libdir}/cmake/Boost-%{version}/Boost*.cmake +%{_libdir}/cmake/Boost*.cmake +%{_libdir}/cmake/boost_*/*.cmake + +%files -n python-boost181-py3 +%defattr(-,root,root) +#%{_libdir}/boost-python3.7/mpi.so +%{_libdir}/libboost_python37.so.* +#%{_libdir}/libboost_mpi_python37.so.* +%{_libdir}/libboost_numpy37.so.* + +%files -n python-boost181-py310 +%defattr(-,root,root) +#%{_libdir}/boost-python3.10/mpi.so +%{_libdir}/libboost_python310.so.* +%{_libdir}/libboost_mpi_python310.so.* +%{_libdir}/libboost_numpy310.so.* + +%changelog +* Thu Mar 30 2023 Silvan Calarco 1.81.0-2mamba +- added python-boost-py310 subpackage for python 3.10 support + +* Sat Dec 17 2022 Automatic Build System 1.81.0-1mamba +- automatic version update by autodist + +* Thu Aug 11 2022 Automatic Build System 1.80.0-1mamba +- automatic version update by autodist + +* Fri Apr 15 2022 Automatic Build System 1.79.0-1mamba +- automatic version update by autodist + +* Sun Mar 20 2022 Silvan Calarco 1.78.0-2mamba +- exclude duplicated python libraries from main package + +* Mon Jan 03 2022 Silvan Calarco 1.78.0-1mamba +- update to 1.78.0 + +* Tue Apr 20 2021 Automatic Build System 1.76.0-1mamba +- automatic version update by autodist + +* Tue Jan 19 2021 Silvan Calarco 1.75.0-2mamba +- libboost-devel: restore libboost_[python|numpy]3.so symlinks + +* Fri Jan 15 2021 Automatic Build System 1.75.0-1mamba +- automatic version update by autodist + +* Sun Sep 06 2020 Silvan Calarco 1.72.0-2mamba +- rebuilt with libicu 67.1 + +* Fri Jan 31 2020 Automatic Build System 1.72.0-1mamba +- automatic version update by autodist + +* Mon Dec 23 2019 Silvan Calarco 1.71.0-5mamba +- python-boost-py3: don't obsolete python3-boost provided by legacy package + +* Sun Dec 22 2019 Silvan Calarco 1.71.0-4mamba +- added python-boost-py36 package, rename python3-boost to python-boost-py3 + +* Wed Nov 27 2019 Silvan Calarco 1.71.0-3mamba +- fix build for python3 + +* Fri Nov 22 2019 Silvan Calarco 1.71.0-2mamba +- rebuilt with debug package and python3 + +* Sat Oct 26 2019 Silvan Calarco 1.71.0-1mamba +- update to 1.71.0 + +* Mon Feb 11 2019 Silvan Calarco 1.69.0-2mamba +- rebuilt with --threading=multi and --layout=system + +* Tue Jan 22 2019 Automatic Build System 1.69.0-1mamba +- automatic version update by autodist + +* Fri Oct 05 2018 Automatic Build System 1.68.0-1mamba +- automatic version update by autodist + +* Sat Sep 01 2018 Silvan Calarco 1.66.0-2mamba +- move mpi.so from devel to main package + +* Sat Jan 06 2018 Automatic Build System 1.66.0-1mamba +- automatic version update by autodist + +* Thu Sep 21 2017 Automatic Build System 1.65.1-1mamba +- automatic version update by autodist + +* Fri Feb 24 2017 Automatic Build System 1.63.0-1mamba +- automatic version update by autodist + +* Sun Oct 30 2016 Automatic Build System 1.62.0-1mamba +- automatic version update by autodist + +* Sat Sep 10 2016 Automatic Build System 1.61.0-1mamba +- automatic version update by autodist + +* Sat Jan 16 2016 Automatic Build System 1.60.0-1mamba +- automatic version update by autodist + +* Thu Dec 17 2015 Silvan Calarco 1.59.0-2mamba +- rebuilt with gcc 5.3.0 + +* Wed Oct 28 2015 Automatic Build System 1.59.0-1mamba +- automatic version update by autodist + +* Thu Apr 30 2015 Automatic Build System 1.58.0-1mamba +- automatic version update by autodist + +* Sat Apr 11 2015 Silvan Calarco 1.57.0-4mamba +- patch to fix qt4 moc (kdepim 4.14.6) + +* Thu Feb 05 2015 Silvan Calarco 1.57.0-3mamba +- fix python3 module + +* Wed Feb 04 2015 Silvan Calarco 1.57.0-2mamba +- rebuilt adding python3-boost and python3-boost-devel + +* Sat Nov 22 2014 Automatic Build System 1.57.0-1mamba +- automatic version update by autodist + +* Thu Oct 09 2014 Silvan Calarco 1.55.0-2mamba +- rebuilt with libicu 53 + +* Sat Nov 30 2013 Silvan Calarco 1.55.0-1mamba +- update to 1.55.0 + +* Sat Jul 13 2013 Automatic Build System 1.54.0-1mamba +- automatic version update by autodist + +* Sat Mar 30 2013 Automatic Build System 1.53.0-1mamba +- automatic version update by autodist + +* Mon Dec 24 2012 Silvan Calarco 1.52.0-2mamba +- fix adding locales library (added --with-libraries=all to bootstrap.sh) + +* Sat Dec 15 2012 Silvan Calarco 1.52.0-1mamba +- update to 1.52.0 +- add --with-locale required by blender 2.65 + +* Mon Jul 30 2012 Silvan Calarco 1.50.0-1mamba +- update to 1.50.0 + +* Fri Jun 29 2012 Silvan Calarco 1.45.0-2mamba +- added patch to fix thread support with gcc >= 4.7 + +* Tue Dec 14 2010 Silvan Calarco 1.45.0-1mamba +- update to 1.45.0 + +* Tue Jun 29 2010 Automatic Build System 1.43.0-2mamba +- automatic rebuild by autodist + +* Thu Jun 10 2010 Automatic Build System 1.43.0-1mamba +- update to 1.43.0 + +* Thu Jun 25 2009 Silvan Calarco 1.39.0-3mamba +- added no_exception patch to serialization/throw_exception.hpp (see http://marc.info/?l=boost&m=123972460823115&w=2) + +* Thu Jun 04 2009 Silvan Calarco 1.39.0-2mamba +- re-enable ICU support and threading variants + +* Thu Jun 04 2009 Silvan Calarco 1.39.0-1mamba +- update to 1.39.0 + +* Tue Mar 31 2009 Silvan Calarco 1.38.0-1mamba +- update to 1.38.0 +- python packages renamed to python-boost* + +* Wed Feb 04 2009 Silvan Calarco 1.37.0-1mamba +- automatic update by autodist + +* Tue Oct 28 2008 Silvan Calarco 1.36.0-2mamba +- rebuilt against python 2.6 + +* Fri Sep 12 2008 gil 1.36.0-1mamba +- update to 1.36.0 + +* Mon Jul 21 2008 gil 1.35.0-1mamba +- update to 1.35.0 +- edit patch0 + +* Sun Oct 14 2007 Silvan Calarco 1.34.1-1mamba +- update to 1.34.1 + +* Mon Jul 02 2007 Silvan Calarco 1.34.0-1mamba +- update to 1.34.0 + +* Fri Apr 27 2007 Silvan Calarco 1.33.1-1mamba +- update to 1.33.1 + +* Tue Feb 22 2005 Davide Madrisan 1.32.0-1qilnx +- update to version 1.32.0 by autospec +- package license modified +- added license file in the package documentation +- specfile updates +- fixes in the install section +- added missing header files + +* Tue Jun 29 2004 Silvan Calarco 1.31.0-1qilnx +- first build