Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/extra/boost181-libs
diff options
context:
space:
mode:
Diffstat (limited to 'extra/boost181-libs')
-rw-r--r--extra/boost181-libs/.SRCINFO30
-rw-r--r--extra/boost181-libs/PKGBUILD100
-rw-r--r--extra/boost181-libs/boost181-libs-fix-smart-pointer-output.patch36
-rw-r--r--extra/boost181-libs/boost181-libs-ublas-c++20-iterator.patch59
4 files changed, 225 insertions, 0 deletions
diff --git a/extra/boost181-libs/.SRCINFO b/extra/boost181-libs/.SRCINFO
new file mode 100644
index 00000000..d96c11e3
--- /dev/null
+++ b/extra/boost181-libs/.SRCINFO
@@ -0,0 +1,30 @@
+pkgbase = boost181-libs
+ pkgdesc = Free peer-reviewed portable C++ source libraries
+ pkgver = 1.81.0
+ pkgrel = 1
+ url = https://www.boost.org/
+ arch = i486
+ arch = i686
+ arch = pentium4
+ arch = x86_64
+ license = custom
+ makedepends = icu
+ makedepends = python
+ makedepends = python-numpy
+ makedepends = bzip2
+ makedepends = zlib
+ makedepends = openmpi
+ makedepends = zstd
+ options = !lto
+ source = https://archives.boost.io/release/1.81.0/source/boost_1_81_0.tar.bz2
+ source = boost181-libs-fix-smart-pointer-output.patch::https://github.com/boostorg/smart_ptr/commit/e7433ba54596da97cb7859455cd37ca140305a9c.patch
+ sha256sums = 71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa
+ sha256sums = 22aab67d550b7f57e361d1c2ea8492a6e4efc5e1b650c8267de52cc5a0c0e46d
+
+pkgname = boost181-libs
+ pkgdesc = Free peer-reviewed portable C++ source libraries (runtime libraries)
+ depends = bzip2
+ depends = zlib
+ depends = icu
+ depends = zstd
+ optdepends = openmpi: for mpi support
diff --git a/extra/boost181-libs/PKGBUILD b/extra/boost181-libs/PKGBUILD
new file mode 100644
index 00000000..7edc8eb7
--- /dev/null
+++ b/extra/boost181-libs/PKGBUILD
@@ -0,0 +1,100 @@
+options=(!lto)
+options=(!lto)
+# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Contributor: Bart?omiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor: Marius Knaust <marius.knaust@gmail.com>
+# Contributor: Ionut Biru <ibiru@archlinux.org>
+# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
+# Contributor: kevin <kevin@archlinux.org>
+# Contributor: Giovanni Scafora <giovanni@archlinux.org>
+# Contributor: Kritoke <kritoke@gamebox.net>
+# Contributor: Luca Roccia <little_rock@users.sourceforge.net>
+
+pkgname=('boost181-libs')
+pkgver=1.81.0
+pkgrel=1
+_srcname=boost_${pkgver//./_}
+pkgdesc="Free peer-reviewed portable C++ source libraries"
+arch=(i486 i686 pentium4 'x86_64')
+url="https://www.boost.org/"
+license=('custom')
+makedepends=('icu' 'python' 'python-numpy' 'bzip2' 'zlib' 'openmpi' 'zstd')
+source=(https://archives.boost.io/release/$pkgver/source/$_srcname.tar.bz2
+ $pkgname-fix-smart-pointer-output.patch::https://github.com/boostorg/smart_ptr/commit/e7433ba54596da97cb7859455cd37ca140305a9c.patch)
+sha256sums=('71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa'
+ '22aab67d550b7f57e361d1c2ea8492a6e4efc5e1b650c8267de52cc5a0c0e46d')
+
+prepare() {
+ cd $_srcname
+
+ patch -Np2 -i ../$pkgname-fix-smart-pointer-output.patch
+}
+
+build() {
+ local JOBS="$(sed 's/.*\(-j *[0-9]\+\).*/\1/' <<<$MAKEFLAGS)"
+ local python_version=$(
+ python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
+
+ pushd $_srcname/tools/build
+ ./bootstrap.sh --cxxflags="$CXXFLAGS $LDFLAGS"
+ ./b2 install --prefix="$srcdir"/fakeinstall
+ ln -s b2 "$srcdir"/fakeinstall/bin/bjam
+ popd
+
+ cd $_srcname
+ ./bootstrap.sh --with-toolset=gcc --with-icu --with-python=python3
+
+ # support for OpenMPI
+ echo "using mpi ;" >>project-config.jam
+
+ # boostbook is needed by quickbook
+ install -dm755 "$srcdir"/fakeinstall/share/boostbook
+ cp -a tools/boostbook/{xsl,dtd} "$srcdir"/fakeinstall/share/boostbook/
+
+ # install to $srcdir/fakeinstall in preparation for split packaging
+ ./b2 install \
+ variant=release \
+ debug-symbols=off \
+ threading=multi \
+ runtime-link=shared \
+ link=shared,static \
+ toolset=gcc \
+ --without-python \
+ cflags="$CPPFLAGS $CFLAGS -fPIC -O3 -ffat-lto-objects" \
+ cxxflags="$CPPFLAGS $CXXFLAGS -fPIC -O3 -ffat-lto-objects" \
+ linkflags="$LDFLAGS" \
+ --layout=system \
+ $JOBS \
+ \
+ --prefix="$srcdir"/fakeinstall || true
+}
+
+package_boost181-libs() {
+ pkgdesc+=' (runtime libraries)'
+ depends=('bzip2' 'zlib' 'icu' 'zstd')
+ optdepends=('openmpi: for mpi support')
+
+ install -dm755 "$pkgdir"/usr/lib
+ cp -a fakeinstall/lib/*.so* "$pkgdir"/usr/lib/
+ # no develpment so links, just the so libs
+ rm -f "$pkgdir"/usr/lib/*.so
+
+ install -Dm644 -t "$pkgdir/usr/share/licenses/$pkgname" $_srcname/LICENSE_1_0.txt
+}
+
+# vim:set ts=2 sw=2 et:
+# no LTO on i486
+if [ "$CARCH" = 'i486' ]; then
+ sed -i '
+ 1i options=(!lto)
+ ' PKGBUILD
+fi
+if [ "$CARCH" == 'i486' ]; then
+ eval "$(
+ declare -f build | \
+ sed '
+ s/-ffat-lto-objects//g
+ '
+ )"
+fi
diff --git a/extra/boost181-libs/boost181-libs-fix-smart-pointer-output.patch b/extra/boost181-libs/boost181-libs-fix-smart-pointer-output.patch
new file mode 100644
index 00000000..ff936f5f
--- /dev/null
+++ b/extra/boost181-libs/boost181-libs-fix-smart-pointer-output.patch
@@ -0,0 +1,36 @@
+From e7433ba54596da97cb7859455cd37ca140305a9c Mon Sep 17 00:00:00 2001
+From: Peter Dimov <pdimov@gmail.com>
+Date: Mon, 13 Jan 2025 16:13:04 +0200
+Subject: [PATCH] Fix operator<< for shared_ptr and intrusive_ptr. Fixes #115.
+
+---
+ include/boost/smart_ptr/intrusive_ptr.hpp | 2 +-
+ include/boost/smart_ptr/shared_ptr.hpp | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/boost/smart_ptr/intrusive_ptr.hpp b/include/boost/smart_ptr/intrusive_ptr.hpp
+index ddb20c0b0e..11b476513a 100644
+--- a/include/boost/smart_ptr/intrusive_ptr.hpp
++++ b/include/boost/smart_ptr/intrusive_ptr.hpp
+@@ -285,7 +285,7 @@ template<class T, class U> intrusive_ptr<T> dynamic_pointer_cast( intrusive_ptr<
+
+ // operator<<
+
+-template<class Y> std::ostream & operator<< (std::ostream & os, intrusive_ptr<Y> const & p)
++template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
+ {
+ os << p.get();
+ return os;
+diff --git a/include/boost/smart_ptr/shared_ptr.hpp b/include/boost/smart_ptr/shared_ptr.hpp
+index 2431a33590..2deed9b632 100644
+--- a/include/boost/smart_ptr/shared_ptr.hpp
++++ b/include/boost/smart_ptr/shared_ptr.hpp
+@@ -775,7 +775,7 @@ template<class T> inline typename shared_ptr<T>::element_type * get_pointer(shar
+
+ // operator<<
+
+-template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> const & p)
++template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< (std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
+ {
+ os << p.get();
+ return os;
diff --git a/extra/boost181-libs/boost181-libs-ublas-c++20-iterator.patch b/extra/boost181-libs/boost181-libs-ublas-c++20-iterator.patch
new file mode 100644
index 00000000..21321cc3
--- /dev/null
+++ b/extra/boost181-libs/boost181-libs-ublas-c++20-iterator.patch
@@ -0,0 +1,59 @@
+From a31e5cffa85f58b64a39fa7c4a1bd3bd9228b069 Mon Sep 17 00:00:00 2001
+From: Conrad Poelman <cpgithub@stellarscience.com>
+Date: Tue, 4 Aug 2020 17:20:40 -0400
+Subject: [PATCH] Remove deprecated inheritance from std::iterator (#97)
+
+std::iterator was deprecated in C++17 and removed in C++20. I replaced the inheritance with the 5 equivalent typedefs, even though they're not all used by ublas, for compatibility in case clients depend on them.
+---
+ .../boost/numeric/ublas/detail/iterator.hpp | 24 ++++++++++++++-----
+ 1 file changed, 18 insertions(+), 6 deletions(-)
+
+diff --git a/include/boost/numeric/ublas/detail/iterator.hpp b/include/boost/numeric/ublas/detail/iterator.hpp
+index 1723a301c..7aebf2f9f 100644
+--- a/include/boost/numeric/ublas/detail/iterator.hpp
++++ b/include/boost/numeric/ublas/detail/iterator.hpp
+@@ -107,8 +107,12 @@ namespace boost { namespace numeric { namespace ublas {
+ * via the post increment operator.
+ */
+ template<class IC, class I, class T>
+- struct forward_iterator_base:
+- public std::iterator<IC, T> {
++ struct forward_iterator_base {
++ typedef IC iterator_category;
++ typedef T value_type;
++ typedef std::ptrdiff_t difference_type;
++ typedef T* pointer;
++ typedef T& reference;
+ typedef I derived_iterator_type;
+ typedef T derived_value_type;
+
+@@ -145,8 +149,12 @@ namespace boost { namespace numeric { namespace ublas {
+ * via the post increment and post decrement operator.
+ */
+ template<class IC, class I, class T>
+- struct bidirectional_iterator_base:
+- public std::iterator<IC, T> {
++ struct bidirectional_iterator_base {
++ typedef IC iterator_category;
++ typedef T value_type;
++ typedef std::ptrdiff_t difference_type;
++ typedef T* pointer;
++ typedef T& reference;
+ typedef I derived_iterator_type;
+ typedef T derived_value_type;
+
+@@ -200,8 +208,12 @@ namespace boost { namespace numeric { namespace ublas {
+ */
+ template<class IC, class I, class T, class D = std::ptrdiff_t>
+ // ISSUE the default for D seems rather dangerous as it can easily be (silently) incorrect
+- struct random_access_iterator_base:
+- public std::iterator<IC, T> {
++ struct random_access_iterator_base {
++ typedef IC iterator_category;
++ typedef T value_type;
++ typedef D difference_type;
++ typedef T* pointer;
++ typedef T& reference;
+ typedef I derived_iterator_type;
+ typedef T derived_value_type;
+ typedef D derived_difference_type;