From 8f7673a1a4b70f51c9f91c2ab89a45235f713abc Mon Sep 17 00:00:00 2001 From: Andy Postnikov <apostnikov@gmail.com> Date: Fri, 24 Sep 2021 05:09:33 +0300 Subject: [PATCH] testing/boost1.77: new aport --- ...001-revert-cease-dependence-on-range.patch | 49 ++++ testing/boost1.77/APKBUILD | 225 ++++++++++++++++++ .../boost-1.57.0-python-abi_letters.patch | 62 +++++ .../boost-1.57.0-python-libpython_dep.patch | 13 + 4 files changed, 349 insertions(+) create mode 100644 testing/boost1.77/0001-revert-cease-dependence-on-range.patch create mode 100644 testing/boost1.77/APKBUILD create mode 100644 testing/boost1.77/boost-1.57.0-python-abi_letters.patch create mode 100644 testing/boost1.77/boost-1.57.0-python-libpython_dep.patch diff --git a/testing/boost1.77/0001-revert-cease-dependence-on-range.patch b/testing/boost1.77/0001-revert-cease-dependence-on-range.patch new file mode 100644 index 000000000000..a6002074ab93 --- /dev/null +++ b/testing/boost1.77/0001-revert-cease-dependence-on-range.patch @@ -0,0 +1,49 @@ +From 436e1dbe6fcd31523d261d18ad011392f1d6fbbc Mon Sep 17 00:00:00 2001 +From: Oliver Kowalke <oliver.kowalke@gmail.com> +Date: Sun, 1 Dec 2019 20:40:28 +0100 +Subject: [PATCH] Revert "Cease dependence on Range" + +This reverts commit 0c556bb59241e682bbcd3f572815149c5a9b17db. + +see #44 (One test fails to compile after boostorg/coroutine submodule updated) +--- + boost/coroutine/asymmetric_coroutine.hpp | 12 +++--------- + 1 file changed, 3 insertions(+), 9 deletions(-) + +diff --git a/boost/coroutine/asymmetric_coroutine.hpp b/boost/coroutine/asymmetric_coroutine.hpp +index ea96981..640896f 100644 +--- a/boost/coroutine/asymmetric_coroutine.hpp ++++ b/boost/coroutine/asymmetric_coroutine.hpp +@@ -14,6 +14,7 @@ + #include <boost/assert.hpp> + #include <boost/config.hpp> + #include <boost/move/move.hpp> ++#include <boost/range.hpp> + #include <boost/throw_exception.hpp> + #include <boost/utility/explicit_operator_bool.hpp> + +@@ -2354,19 +2355,12 @@ end( push_coroutine< R > & c) + + } + +-// forward declaration of Boost.Range traits to break dependency on it +-template<typename C, typename Enabler> +-struct range_mutable_iterator; +- +-template<typename C, typename Enabler> +-struct range_const_iterator; +- + template< typename Arg > +-struct range_mutable_iterator< coroutines::push_coroutine< Arg >, void > ++struct range_mutable_iterator< coroutines::push_coroutine< Arg > > + { typedef typename coroutines::push_coroutine< Arg >::iterator type; }; + + template< typename R > +-struct range_mutable_iterator< coroutines::pull_coroutine< R >, void > ++struct range_mutable_iterator< coroutines::pull_coroutine< R > > + { typedef typename coroutines::pull_coroutine< R >::iterator type; }; + + } +-- +2.24.1 + diff --git a/testing/boost1.77/APKBUILD b/testing/boost1.77/APKBUILD new file mode 100644 index 000000000000..42f32a82c96c --- /dev/null +++ b/testing/boost1.77/APKBUILD @@ -0,0 +1,225 @@ +# Maintainer: Natanael Copa <ncopa@alpinelinux.org> +pkgname=boost1.77 +pkgver=1.77.0 +_pkgver="${pkgver//./_}" +pkgrel=0 +pkgdesc="Free peer-reviewed portable C++ source libraries" +url="https://www.boost.org/" +arch="all" +license="custom" +depends="$pkgname-libs" +depends_dev="$pkgname linux-headers bzip2-dev icu-dev xz-dev zlib-dev" +makedepends="$depends_dev python3-dev>=3.8 flex bison" +subpackages=" + $pkgname-static + $pkgname-dev + $pkgname-doc + boost-dev:_dev + " +source="https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/boost_$_pkgver.tar.bz2 + boost-1.57.0-python-abi_letters.patch + boost-1.57.0-python-libpython_dep.patch + 0001-revert-cease-dependence-on-range.patch + " +builddir="$srcdir/boost_$_pkgver" + +_enginedir="tools/build/src/engine" +_bjam="$builddir"/$_enginedir/b2 + +_libs=" + atomic + chrono + container + context + contract + coroutine + date_time + fiber + filesystem + graph + iostreams + locale + log_setup + log + math + prg_exec_monitor + program_options + python3 + random + regex + serialization + stacktrace_basic + stacktrace_noop + system + thread + timer + type_erasure + unit_test_framework + wave + wserialization + json + nowide + " +for _lib in $_libs; do + subpackages="$subpackages $pkgname-${_lib}:_boostlib" +done; unset -v _lib +subpackages="$subpackages $pkgname-libs" + +# Claim the unversioned name, this must be removed once we switch our +# boost to a new version +provides="boost=$pkgver-r$pkgrel" +replaces="boost" + +_set_options() { + [ -n "$PY3_VERSION" ] || PY3_VERSION="$(_pyversion python3)" + + local _options_python="${PY2_VERSION:+$PY2_VERSION,}$PY3_VERSION" + [ -z "$_options_python" ] || _options_python="python=$_options_python" + + _options=" + --user-config=\"$builddir/user-config.jam\" + --prefix=\"$pkgdir/usr\" + release + $_options_python + toolset=gcc + debug-symbols=off + threading=multi + runtime-link=shared + link=shared,static + cflags=-fno-strict-aliasing + --layout=system + -q + -j${JOBS:-2} + $_options_carch + " +} + +prepare() { + default_prepare + + _set_options + local abiflags="$(python3-config --abiflags)" + + # create user-config.jam + cat > user-config.jam <<-__EOF__ + + using gcc : : $CC : <cxxflags>"$CXXFLAGS" <linkflags>"$LDFLAGS" ; + using python : ${PY3_VERSION:+$PY3_VERSION }: /usr/bin/python3 : ${PY3_VERSION:+/usr/include/python${PY3_VERSION}$abiflags }: : : : ${abiflags:+$abiflags }; + + __EOF__ +} + +build() { + export BOOST_ROOT="$builddir" + + msg "Building bjam" + cd "$builddir"/$_enginedir + CC= ./build.sh gcc + + msg "Building bcp" + cd "$builddir"/tools/bcp + "$_bjam" -j${JOBS:-2} + + msg "Building boost" + cd "$builddir" + _set_options + "$_bjam" $_options +} + +check() { + cd "$builddir"/tools/build/test + + PATH="${_bjam%/*}:$PATH" python3 test_all.py --default-bjam +} + +package() { + export BOOST_ROOT="$builddir" + _set_options + + install -Dm755 "$_bjam" \ + "$pkgdir"/usr/bin/b2 + ln -s b2 "$pkgdir"/usr/bin/bjam # old name for b2 binary + + install -Dm755 dist/bin/bcp "$pkgdir"/usr/bin/bcp + + install -Dm644 LICENSE_1_0.txt \ + "$pkgdir"/usr/share/licenses/$pkgname/LICENSE_1_0.txt + + "$pkgdir"/usr/bin/bjam $_options \ + --includedir="$pkgdir"/usr/include \ + --libdir="$pkgdir"/usr/lib \ + install +} + +static() { + pkgdesc="Boost static libraries" + depends="$depends_static" + + # Claim the unversioned name, this must be removed once we switch our + # boost to a new version + provides="boost-static=$pkgver-r$pkgrel" + replaces="boost-static" + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/lib*.a "$subpkgdir"/usr/lib/ +} + +_boostlib() { + local name="${subpkgname#$pkgname-}" + pkgdesc="Boost $name shared library" + depends="$depends__boostlib" + + # Claim the unversioned name, this must be removed once we switch our + # boost to a new version + provides="boost-$name=$pkgver-r$pkgrel" + replaces="boost-$name" + + mkdir -p "$subpkgdir"/usr/lib + mv "$pkgdir"/usr/lib/libboost_$name*.so.[0-9]* "$subpkgdir"/usr/lib/ +} + +libs() { + default_libs + + # Claim the unversioned name, this must be removed once we switch our + # boost to a new version + provides="boost-libs=$pkgver-r$pkgrel" + replaces="boost-libs" + + pkgdesc="Boost shared libraries" + depends="$depends_libs" + local _pkg; for _pkg in $origsubpackages; do + case "$_pkg" in + *:_boostlib) depends="$depends ${_pkg%%:*}" ;; + esac + done + + mkdir -p "$subpkgdir" + rmdir "$pkgdir"/usr/lib >/dev/null 2>&1 || : +} + +_dev() { + # This makes boost-dev be a metapackage that depends on boostX.Y-dev + mkdir -p "$subpkgdir" + depends="$pkgname-dev=$pkgver-r$pkgrel" +} + +doc() { + # Claim the unversioned name, this must be removed once we switch our + # boost to a new version + provides="boost-doc=$pkgver-r$pkgrel" + replaces="boost-doc" + + default_doc +} + +_pyversion() { + "$1" -c 'import sys; print("%i.%i" % (sys.version_info.major, sys.version_info.minor))' +} + +sha512sums=" +39b45c9b60bc5a2a4c669a4463d1272c1e093376b2fb374d7f20a84ea10a3e23bb04b335a735a83a04575731f874d9bff77e89acd947524b3fbbae1b26ae1f2f boost_1_77_0.tar.bz2 +d96d4d37394a31764ed817d0bc4a99cffa68a75ff1ecfd4417b9e1e5ae2c31a96ed24f948c6f2758ffdac01328d2402c4cf0d33a37107e4f5f721e636daebd66 boost-1.57.0-python-abi_letters.patch +132c4b62815d605c2d3c9038427fa4f422612a33711d47b2862f2311516af8a371d6b75bf078a7bffe20be863f8d21fb9fe74dc1a1bac3a10d061e9768ec3e02 boost-1.57.0-python-libpython_dep.patch +9b53d2fe2dddd592e43db03c26fadd6c07d4c45a980ae4c775b7a914346a3914f6e0c3ef42dad5e2ea4568afb86c9967e09444ff609cfba1e1d39f4980b22ad6 0001-revert-cease-dependence-on-range.patch +" diff --git a/testing/boost1.77/boost-1.57.0-python-abi_letters.patch b/testing/boost1.77/boost-1.57.0-python-abi_letters.patch new file mode 100644 index 000000000000..7df3ee7047da --- /dev/null +++ b/testing/boost1.77/boost-1.57.0-python-abi_letters.patch @@ -0,0 +1,62 @@ +--- boost_1_57_0/tools/build/src/tools/python.jam 2013-05-21 06:14:18.000000000 +0200 ++++ boost_1_55_0/tools/build/src/tools/python.jam 2014-05-29 19:09:12.115413877 +0200 +@@ -94,7 +94,7 @@ feature.feature pythonpath : : free opti + # using python : 2.3 : /usr/local/bin/python ; + # + rule init ( version ? : cmd-or-prefix ? : includes * : libraries ? +- : condition * : extension-suffix ? ) ++ : condition * : extension-suffix ? : abi-letters ? ) + { + project.push-current $(.project) ; + +@@ -107,7 +107,7 @@ rule init ( version ? : cmd-or-prefix ? + } + } + +- configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) ; ++ configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) : $(abi-letters) ; + + project.pop-current ; + } +@@ -653,7 +653,7 @@ local rule system-library-dependencies ( + + # Declare a target to represent Python's library. + # +-local rule declare-libpython-target ( version ? : requirements * ) ++local rule declare-libpython-target ( version ? : requirements * : abi-letters ? ) + { + # Compute the representation of Python version in the name of Python's + # library file. +@@ -677,13 +677,13 @@ local rule declare-libpython-target ( ve + } + + # Declare it. +- lib python.lib : : <name>python$(lib-version) $(requirements) ; ++ lib python.lib : : <name>python$(lib-version)$(abi-letters) $(requirements) ; + } + + + # Implementation of init. + local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? : +- condition * : extension-suffix ? ) ++ condition * : extension-suffix ? : abi-letters ? ) + { + local prefix ; + local exec-prefix ; +@@ -699,6 +699,7 @@ local rule configure ( version ? : cmd-o + extension-suffix ?= _d ; + } + extension-suffix ?= "" ; ++ abi-letters ?= "" ; + + # Normalize and dissect any version number. + local major-minor ; +@@ -922,7 +923,7 @@ local rule configure ( version ? : cmd-o + } + else + { +- declare-libpython-target $(version) : $(target-requirements) ; ++ declare-libpython-target $(version) : $(target-requirements) : $(abi-letters) ; + + # This is an evil hack. On, Windows, when Python is embedded, nothing + # seems to set up sys.path to include Python's standard library diff --git a/testing/boost1.77/boost-1.57.0-python-libpython_dep.patch b/testing/boost1.77/boost-1.57.0-python-libpython_dep.patch new file mode 100644 index 000000000000..57bfc26774ea --- /dev/null +++ b/testing/boost1.77/boost-1.57.0-python-libpython_dep.patch @@ -0,0 +1,13 @@ +Index: boost_1_57_0/tools/build/src/tools/python.jam +=================================================================== +--- boost_1_57_0/tools/build/src/tools/python.jam (revision 50406) ++++ boost_1_57_0/tools/build/src/tools/python.jam (working copy) +@@ -994,7 +994,7 @@ + else + { + alias python_for_extensions +- : ++ : python + : $(target-requirements) + : + : $(usage-requirements) -- GitLab