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.
455 lines
11 KiB
Bash
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.*
|
|
}
|
|
}
|