void-packages/srcpkgs/boost/template
q66 5b1be772c7 boost: fix aligned_alloc brokenness for real
The previous patch does not work; I could reproduce that
libtorrent was still using the wrong stuff on my system and
segfaulting. Even if it did work, it would be fragile, since
there is no guarantee features.h will define _XOPEN_SOURCE (e.g.
defining _BSD_SOURCE or _DEFAULT_SOURCE will disable the lines
that define it).

Therefore, stop trying to be clever and simply make POSIX the
fallback behavior. It would be okay to drop all the system
specific logic too, since our boost build is for a single
target, but those are harmless and would just make for an
unnecessarily bigger patch.
2022-09-23 02:05:39 +00:00

455 lines
11 KiB
Bash

# Template file for 'boost'
pkgname=boost
version=1.80.0
revision=3
wrksrc="${pkgname}_${version//\./_}"
hostmakedepends="which bzip2-devel icu-devel python3-devel pkg-config"
makedepends="zlib-devel bzip2-devel icu-devel python3-devel liblzma-devel
libzstd-devel"
short_desc="Free peer-reviewed portable C++ source libraries"
maintainer="John <me@johnnynator.dev>"
license="BSL-1.0"
homepage="http://www.boost.org/"
distfiles="https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${version//./_}.tar.bz2"
checksum=1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0
python_version=3
replaces="libboost_program_options1.72>=0 libboost_math_c99f1.72>=0
libboost_stacktrace_basic1.72>=0 libboost_stacktrace_noop1.72>=0
libboost_iostreams1.72>=0 libboost_math_tr1l1.72>=0 libboost_filesystem1.72>=0
libboost_chrono1.72>=0 libboost_math_tr1f1.72>=0 libboost_wave1.72>=0
libboost_graph1.72>=0 libboost_locale1.72>=0 libboost_regex1.72>=0
libboost_fiber1.72>=0 libboost_type_erasure1.72>=0 libboost_coroutine1.72>=0
libboost_atomic1.72>=0 libboost_prg_exec_monitor1.72>=0 libboost_math_c991.72>=0
boost-python3-1.72>=0 libboost_log_setup1.72>=0
libboost_timer1.72>=0 libboost_system1.72>=0 libboost_unit_test_framework1.72>=0
libboost_serialization1.72>=0 libboost_math_tr11.72>=0
libboost_math_c99l1.72>=0 boost-python1.72>=0 libboost_contract1.72>=0
libboost_date_time1.72>=0 libboost_log1.72>=0 libboost_random1.72>=0
libboost_thread1.72>=0 libboost_container1.72>=0
libboost_wserialization1.72>=0 libboost_context1.72>=0
libboost_stacktrace_addr2line1.72>=0"
subpackages="libboost_program_options1.80 libboost_math_c99f1.80
libboost_stacktrace_basic1.80 libboost_stacktrace_noop1.80
libboost_iostreams1.80 libboost_filesystem1.80
libboost_chrono1.80 libboost_math_tr1f1.80 libboost_wave1.80
libboost_graph1.80 libboost_locale1.80 libboost_regex1.80
libboost_fiber1.80 libboost_type_erasure1.80 libboost_coroutine1.80
libboost_atomic1.80 libboost_prg_exec_monitor1.80 libboost_math_c991.80
boost-python3-1.80 libboost_log_setup1.80 boost-devel libboost_json1.80
libboost_timer1.80 libboost_system1.80 libboost_unit_test_framework1.80
libboost_serialization1.80 libboost_math_tr11.80 boost-build
libboost_contract1.80 libboost_nowide1.80
libboost_date_time1.80 libboost_log1.80 libboost_random1.80
libboost_thread1.80 libboost_container1.80 boost-jam
libboost_wserialization1.80 libboost_context1.80"
# on glibc ppc, boost.math disables long double stuff because of
# non-ieee754-conforming long double type (IBM double-double)
#
# this does not affect musl (where long double is 64-bit)
#
case "$XBPS_TARGET_MACHINE" in
ppc64le|ppc64|ppc|ppcle) ;;
*) subpackages+=" libboost_math_c99l1.80 libboost_math_tr1l1.80";;
esac
if [ -z "$CROSS_BUILD" ]; then
subpackages+=" libboost_stacktrace_addr2line1.80"
fi
case "$XBPS_TARGET_MACHINE" in
i686*) _arch=x86; _abi=sysv ;;
x86_64*) _arch=x86; _abi=sysv ;;
arm*) _arch=arm; _abi=aapcs ;;
aarch64*) _arch=arm; _abi=aapcs ;;
mips*) _arch=mips32r2; _abi=o32 ;;
ppc*) _arch=power; _abi=sysv ;;
esac
do_build() {
# bootstrap.sh will reset CXX and CXXFLAGS (L229)
./bootstrap.sh --with-toolset=gcc \
--prefix=${DESTDIR}/usr --with-python=/usr/bin/python3 \
--with-python-root=${XBPS_CROSS_BASE}/usr
(
# Rebuild bjam for target
cd tools/build/src/engine
CXXFLAGS="$CXXFLAGS -fdebug-prefix-map=$PWD=."
# toolset gcc will force gcc -x c++ -O2 -s
# toolset cxx will use CXX and CXXFLAGS
CXX_VERSION_OPT=--version ./build.sh cxx
)
cat > user-config.jam <<-__EOF
using gcc : : ${CXX} : <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
using python : ${py3_ver} : /usr/bin/python3 : ${XBPS_CROSS_BASE}/${py3_inc} : ${XBPS_CROSS_BASE}/${py3_lib} ;
__EOF
./b2 ${makejobs} \
--user-config=${wrksrc}/user-config.jam --debug-building \
--toolset=gcc abi=${_abi} architecture=${_arch} python=${py3_ver} \
threading=multi runtime-link=shared link=shared,static
}
do_install() {
# Install bjam
# XXX: make bjam a symlink to b2
for _b in b2; do
vbin tools/build/src/engine/${_b}
done
ln -sf b2 "$DESTDIR/usr/bin/bjam"
# Install headers/libs
./b2 --prefix=${DESTDIR}/usr abi=${_abi} architecture=${_arch} \
--user-config=${wrksrc}/user-config.jam \
python=${py3_ver} threading=multi runtime-link=shared link=shared,static \
install
# Install Boost.Build stuff.
vmkdir usr/share/boost-build
cd ${wrksrc}/tools/build && cp -a . ${DESTDIR}/usr/share/boost-build
find ${DESTDIR}/usr/share/boost-build \
-type f -name \*.orig -exec rm -f {} \;
rm -rf ${DESTDIR}/usr/share/boost-build/src/engine/bootstrap
rm -rf ${DESTDIR}/usr/share/boost-build/src/engine/{b2,bjam}
( echo '# System wide configuration file for Boost.Build.' ; \
echo ; \
echo 'using gcc ;' ; ) >${wrksrc}/site-config.jam
cd $wrksrc
vconf site-config.jam
# license
vlicense LICENSE_1_0.txt
}
boost-jam_package() {
short_desc+=" - Boost.Jam utility"
depends="boost-build>=${version}_${revision}"
pkg_install() {
vmove usr/bin/bjam
vmove usr/bin/b2
}
}
boost-python3-1.80_package() {
depends="boost python3"
replaces="boost-python3>=0"
short_desc+=" - Python3 bindings"
pkg_install() {
vmove "usr/lib/libboost_python3*.so.*"
}
}
boost-build_package() {
conf_files="/etc/site-config.jam"
short_desc+=" - Boost.Build framework"
pkg_install() {
vmove usr/share/boost-build
vmove etc/site-config.jam
}
}
boost-devel_package() {
noverifyrdeps=yes
depends="boost ${subpackages/boost-devel}"
short_desc+=" - development files"
pkg_install() {
vmove usr/include
vmove usr/lib/cmake
vmove "usr/lib/*.a"
vmove "usr/lib/*.so"
}
}
libboost_atomic1.80_package() {
depends="boost"
short_desc+=" - libboost_atomic"
pkg_install() {
vmove usr/lib/libboost_atomic.so.*
}
}
libboost_chrono1.80_package() {
depends="boost"
short_desc+=" - libboost_chrono"
pkg_install() {
vmove usr/lib/libboost_chrono.so.*
}
}
libboost_container1.80_package() {
depends="boost"
short_desc+=" - libboost_container"
pkg_install() {
vmove usr/lib/libboost_container.so.*
}
}
libboost_context1.80_package() {
depends="boost"
short_desc+=" - libboost_context"
pkg_install() {
vmove usr/lib/libboost_context.so.*
}
}
libboost_contract1.80_package() {
depends="boost"
short_desc+=" - libboost_contract"
pkg_install() {
vmove usr/lib/libboost_contract.so.*
}
}
libboost_coroutine1.80_package() {
depends="boost"
short_desc+=" - libboost_coroutine"
pkg_install() {
vmove usr/lib/libboost_coroutine.so.*
}
}
libboost_date_time1.80_package() {
depends="boost"
short_desc+=" - libboost_date_time"
pkg_install() {
vmove usr/lib/libboost_date_time.so.*
}
}
libboost_fiber1.80_package() {
depends="boost"
short_desc+=" - libboost_fiber"
pkg_install() {
vmove usr/lib/libboost_fiber.so.*
}
}
libboost_filesystem1.80_package() {
depends="boost"
short_desc+=" - libboost_filesystem"
pkg_install() {
vmove usr/lib/libboost_filesystem.so.*
}
}
libboost_graph1.80_package() {
depends="boost"
short_desc+=" - libboost_graph"
pkg_install() {
vmove usr/lib/libboost_graph.so.*
}
}
libboost_iostreams1.80_package() {
depends="boost"
short_desc+=" - libboost_iostreams"
pkg_install() {
vmove usr/lib/libboost_iostreams.so.*
}
}
libboost_locale1.80_package() {
depends="boost"
short_desc+=" - libboost_locale"
pkg_install() {
vmove usr/lib/libboost_locale.so.*
}
}
libboost_log1.80_package() {
depends="boost"
short_desc+=" - libboost_log"
pkg_install() {
vmove usr/lib/libboost_log.so.*
}
}
libboost_log_setup1.80_package() {
depends="boost"
short_desc+=" - libboost_log_setup"
pkg_install() {
vmove usr/lib/libboost_log_setup.so.*
}
}
libboost_math_c991.80_package() {
depends="boost"
short_desc+=" - libboost_math_c99"
pkg_install() {
vmove usr/lib/libboost_math_c99.so.*
}
}
libboost_math_c99f1.80_package() {
depends="boost"
short_desc+=" - libboost_math_c99f"
pkg_install() {
vmove usr/lib/libboost_math_c99f.so.*
}
}
libboost_math_c99l1.80_package() {
depends="boost"
short_desc+=" - libboost_math_c99l"
pkg_install() {
vmove usr/lib/libboost_math_c99l.so.*
}
}
libboost_json1.80_package() {
depends="boost"
short_desc+=" - libboost_json"
pkg_install() {
vmove usr/lib/libboost_json.so.*
}
}
libboost_math_tr11.80_package() {
depends="boost"
short_desc+=" - libboost_math_tr1"
pkg_install() {
vmove usr/lib/libboost_math_tr1.so.*
}
}
libboost_math_tr1f1.80_package() {
depends="boost"
short_desc+=" - libboost_math_tr1f"
pkg_install() {
vmove usr/lib/libboost_math_tr1f.so.*
}
}
libboost_math_tr1l1.80_package() {
depends="boost"
short_desc+=" - libboost_math_tr1l"
pkg_install() {
vmove usr/lib/libboost_math_tr1l.so.*
}
}
libboost_nowide1.80_package() {
depends="boost"
short_desc+=" - libboost_nowide"
pkg_install() {
vmove usr/lib/libboost_nowide.so.*
}
}
libboost_prg_exec_monitor1.80_package() {
depends="boost"
short_desc+=" - libboost_prg_exec_monitor"
pkg_install() {
vmove usr/lib/libboost_prg_exec_monitor.so.*
}
}
libboost_program_options1.80_package() {
depends="boost"
short_desc+=" - libboost_program_options"
pkg_install() {
vmove usr/lib/libboost_program_options.so.*
}
}
libboost_random1.80_package() {
depends="boost"
short_desc+=" - libboost_random"
pkg_install() {
vmove usr/lib/libboost_random.so.*
}
}
libboost_regex1.80_package() {
depends="boost"
short_desc+=" - libboost_regex"
pkg_install() {
vmove usr/lib/libboost_regex.so.*
}
}
libboost_serialization1.80_package() {
depends="boost"
short_desc+=" - libboost_serialization"
pkg_install() {
vmove usr/lib/libboost_serialization.so.*
}
}
libboost_stacktrace_addr2line1.80_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_addr2line"
pkg_install() {
vmove usr/lib/libboost_stacktrace_addr2line.so.*
}
}
libboost_stacktrace_basic1.80_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_basic"
pkg_install() {
vmove usr/lib/libboost_stacktrace_basic.so.*
}
}
libboost_stacktrace_noop1.80_package() {
depends="boost"
short_desc+=" - libboost_stacktrace_noop"
pkg_install() {
vmove usr/lib/libboost_stacktrace_noop.so.*
}
}
libboost_system1.80_package() {
depends="boost"
short_desc+=" - libboost_system"
pkg_install() {
vmove usr/lib/libboost_system.so.*
}
}
libboost_thread1.80_package() {
depends="boost"
short_desc+=" - libboost_thread"
pkg_install() {
vmove usr/lib/libboost_thread.so.*
}
}
libboost_timer1.80_package() {
depends="boost"
short_desc+=" - libboost_timer"
pkg_install() {
vmove usr/lib/libboost_timer.so.*
}
}
libboost_type_erasure1.80_package() {
depends="boost"
short_desc+=" - libboost_type_erasure"
pkg_install() {
vmove usr/lib/libboost_type_erasure.so.*
}
}
libboost_unit_test_framework1.80_package() {
depends="boost"
short_desc+=" - libboost_unit_test_framework"
pkg_install() {
vmove usr/lib/libboost_unit_test_framework.so.*
}
}
libboost_wave1.80_package() {
depends="boost"
short_desc+=" - libboost_wave"
pkg_install() {
vmove usr/lib/libboost_wave.so.*
}
}
libboost_wserialization1.80_package() {
depends="boost"
short_desc+=" - libboost_wserialization"
pkg_install() {
vmove usr/lib/libboost_wserialization.so.*
}
}