From 394a768911875d912a79088297d569a55540070b Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 3 Mar 2021 12:05:16 +0000 Subject: [PATCH 01/86] Adjust Boost.Locale patch to use NULL instead of nullptr --- boost-1.73-locale-empty-vector.patch | 2 +- boost.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch index f5cc981..77cc929 100644 --- a/boost-1.73-locale-empty-vector.patch +++ b/boost-1.73-locale-empty-vector.patch @@ -28,7 +28,7 @@ index 7f1ea6a..dc59e8c 100644 tmp.resize(str.length()); icu::Collator *collate = get_collator(level); - int len = collate->getSortKey(str,&tmp[0],tmp.size()); -+ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); ++ int len = collate->getSortKey(str,tmp.empty()?NULL:&tmp[0],tmp.size()); if(len > int(tmp.size())) { tmp.resize(len); collate->getSortKey(str,&tmp[0],tmp.size()); diff --git a/boost.spec b/boost.spec index 68f4160..381a27c 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1278,8 +1278,11 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Mar 03 2021 Jonathan Wakely - 1.75.0-4 +- Adjust Boost.Locale patch to use NULL instead of nullptr + * Tue Feb 02 2021 Thomas Rodgers - 1.75.0-3 -- Patch for https://bugzilla.redhat.com/show_bug.cgi?id=1923740 +- Patch Boost.Build to find boost-build.jam (#1923740) * Tue Jan 26 2021 Fedora Release Engineering - 1.75.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From aa5af673c5b55a7c1f005de3e444febd79dee61c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 3 Mar 2021 12:14:40 +0000 Subject: [PATCH 02/86] Revert previous commit and un-bump %release The original patch to use nullptr was fine, because it's in a .cpp file which is built using a recent standard dialect, so nullptr is defined. --- boost-1.73-locale-empty-vector.patch | 2 +- boost.spec | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch index 77cc929..f5cc981 100644 --- a/boost-1.73-locale-empty-vector.patch +++ b/boost-1.73-locale-empty-vector.patch @@ -28,7 +28,7 @@ index 7f1ea6a..dc59e8c 100644 tmp.resize(str.length()); icu::Collator *collate = get_collator(level); - int len = collate->getSortKey(str,&tmp[0],tmp.size()); -+ int len = collate->getSortKey(str,tmp.empty()?NULL:&tmp[0],tmp.size()); ++ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); if(len > int(tmp.size())) { tmp.resize(len); collate->getSortKey(str,&tmp[0],tmp.size()); diff --git a/boost.spec b/boost.spec index 381a27c..0722e5f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 4%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1278,9 +1278,6 @@ fi %{_mandir}/man1/b2.1* %changelog -* Wed Mar 03 2021 Jonathan Wakely - 1.75.0-4 -- Adjust Boost.Locale patch to use NULL instead of nullptr - * Tue Feb 02 2021 Thomas Rodgers - 1.75.0-3 - Patch Boost.Build to find boost-build.jam (#1923740) From 8bed92113e5b9ac574415a37848608e56092c5c7 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 30 Mar 2021 19:35:18 +0100 Subject: [PATCH 03/86] Rebuilt for removed libstdc++ symbol (#1937698) --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 0722e5f..a6af3c2 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1278,6 +1278,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Mar 30 2021 Jonathan Wakely - 1.75.0-4 +- Rebuilt for removed libstdc++ symbol (#1937698) + * Tue Feb 02 2021 Thomas Rodgers - 1.75.0-3 - Patch Boost.Build to find boost-build.jam (#1923740) From 67e502ea95d8fe0dcf11489e808389423a24611a Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Mon, 12 Apr 2021 12:12:48 +0000 Subject: [PATCH 04/86] init FMF CI gating --- .fmf/version | 1 + gating.yaml | 20 ++++++ plans/ci.fmf | 6 ++ tests/boost-testsuite-sanity/Makefile | 63 +++++++++++++++++ tests/boost-testsuite-sanity/PURPOSE | 3 + tests/boost-testsuite-sanity/main.fmf | 16 +++++ tests/boost-testsuite-sanity/runtest.sh | 90 +++++++++++++++++++++++++ tests/boost-testsuite-sanity/tests | 5 ++ 8 files changed, 204 insertions(+) create mode 100644 .fmf/version create mode 100644 gating.yaml create mode 100644 plans/ci.fmf create mode 100644 tests/boost-testsuite-sanity/Makefile create mode 100644 tests/boost-testsuite-sanity/PURPOSE create mode 100644 tests/boost-testsuite-sanity/main.fmf create mode 100755 tests/boost-testsuite-sanity/runtest.sh create mode 100644 tests/boost-testsuite-sanity/tests diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..14943f1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,20 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional} diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..1ad2c12 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,6 @@ +summary: CI Gating Plan +discover: + how: fmf + directory: tests +execute: + how: beakerlib diff --git a/tests/boost-testsuite-sanity/Makefile b/tests/boost-testsuite-sanity/Makefile new file mode 100644 index 0000000..e1d5f40 --- /dev/null +++ b/tests/boost-testsuite-sanity/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/boost/Sanity/boost-testsuite-sanity +# Description: boost testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/boost/Sanity/boost-testsuite-sanity +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE tests + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Michal Kolar " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: boost testing by upstream testsuite" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 1h" >> $(METADATA) + @echo "RunFor: boost" >> $(METADATA) + @echo "Requires: boost dnf-utils rpm-build boost-b2" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6 -RHEL7 -RHEL8" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/boost-testsuite-sanity/PURPOSE b/tests/boost-testsuite-sanity/PURPOSE new file mode 100644 index 0000000..695d634 --- /dev/null +++ b/tests/boost-testsuite-sanity/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/boost/Sanity/boost-testsuite-sanity +Description: boost testing by upstream testsuite +Author: Michal Kolar diff --git a/tests/boost-testsuite-sanity/main.fmf b/tests/boost-testsuite-sanity/main.fmf new file mode 100644 index 0000000..e751d7c --- /dev/null +++ b/tests/boost-testsuite-sanity/main.fmf @@ -0,0 +1,16 @@ +summary: boost testing by upstream testsuite +description: '' +contact: +- Michal Kolar +component: +- boost +test: ./runtest.sh +framework: beakerlib +recommend: +- boost +- dnf-utils +- rpm-build +- boost-b2 +duration: 1h +extra-summary: /tools/boost/Sanity/boost-testsuite-sanity +extra-task: /tools/boost/Sanity/boost-testsuite-sanity diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh new file mode 100755 index 0000000..98e9842 --- /dev/null +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -0,0 +1,90 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/boost/Sanity/boost-testsuite-sanity +# Description: boost testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +BUILD_USER=${BUILD_USER:-bstbld} +TESTS_COUNT_MIN=${TESTS_COUNT_MIN:-100} +PACKAGE="boost" +REQUIRES="$PACKAGE rpm-build boost-b2" +if rlIsFedora; then + REQUIRES="$REQUIRES dnf-utils" +else + REQUIRES="$REQUIRES yum-utils" +fi + +rlJournalStart + rlPhaseStartSetup + rlShowRunningKernel + rlAssertRpm --all + rlRun "TmpDir=`mktemp -d /home/boost.XXXXXXXXXX`" # work in /home due to high demands on disk space + rlRun "cp tests $TmpDir" + rlRun "pushd $TmpDir" + rlFetchSrcForInstalled $PACKAGE + rlRun "useradd -M -N $BUILD_USER" 0,9 + [ "$?" == "0" ] && rlRun "del=yes" + rlRun "chown -R $BUILD_USER:users $TmpDir" + rlPhaseEnd + + rlPhaseStartSetup "build boost" + rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" + rlRun "dnf builddep -y $TmpDir/SPECS/*.spec" + rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/rpmbuild.log" + rlRun "cd $TmpDir/BUILD/boost*" + rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/bootstrap.log" + rlPhaseEnd + + rlPhaseStartTest "run testsuite" + while read test_path; do + if [ -f $TmpDir/BUILD/boost*/libs/$test_path/test/Jamfile* ]; then + rlRun "cd $TmpDir/BUILD/boost*/libs/$test_path/test" + rlRun "su -c '/usr/bin/b2 -d1 --build-dir=$TmpDir/test-build &>>$TmpDir/testsuite.log' $BUILD_USER" + rm -fr $TmpDir/test-build + else + rlLogInfo "$test_path/Jamfile* not found, skipping" + fi + done <$TmpDir/tests + rlRun "rlFileSubmit $TmpDir/testsuite.log" + rlPhaseEnd + + rlPhaseStartTest "evaluate results" + rlRun "cd $TmpDir" + rlRun "grep -E '\.\.\.failed .+$TmpDir/test-build' testsuite.log" 1 "There should be no failure" + rlRun "tests_count=\$(grep -E '\*\*passed\*\*.+$TmpDir/test-build' testsuite.log | wc -l)" + [ "$tests_count" -ge "$TESTS_COUNT_MIN" ] && rlLogInfo "Test counter: $tests_count" || rlFail "Test counter $tests_count should be greater than or equal to $TESTS_COUNT_MIN" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" + [ "$del" == "yes" ] && rlRun "userdel $BUILD_USER" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/boost-testsuite-sanity/tests b/tests/boost-testsuite-sanity/tests new file mode 100644 index 0000000..d360dbd --- /dev/null +++ b/tests/boost-testsuite-sanity/tests @@ -0,0 +1,5 @@ +integer +random +rational +regex +timer From 3eea468474d024a4da8a314233e2f6e63ad672ea Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Mon, 10 May 2021 10:40:07 -0700 Subject: [PATCH 05/86] Patch for https://bugzilla.redhat.com/show_bug.cgi\?id\=1958382 --- ...5.0-remove-deprecated-boost-iterator.patch | 114 ++++++++++++++++++ boost.spec | 10 +- 2 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 boost-1.75.0-remove-deprecated-boost-iterator.patch diff --git a/boost-1.75.0-remove-deprecated-boost-iterator.patch b/boost-1.75.0-remove-deprecated-boost-iterator.patch new file mode 100644 index 0000000..6341174 --- /dev/null +++ b/boost-1.75.0-remove-deprecated-boost-iterator.patch @@ -0,0 +1,114 @@ +From f364ee7be2bb1a44a2724d92f67490deaf19dc5e Mon Sep 17 00:00:00 2001 +From: Andrey Semashev +Date: Mon, 11 May 2020 19:59:23 +0300 +Subject: [PATCH] Removed usage of deprecated header boost/detail/iterator.hpp. + +The header was deprecated in favor of . It generates compiler +warnings and will be removed in a future release. +--- + boost/detail/algorithm.hpp | 2 +- + boost/graph/adjacency_iterator.hpp | 6 +++--- + boost/graph/detail/adjacency_list.hpp | 5 +++-- + boost/graph/incremental_components.hpp | 6 +++--- + 4 files changed, 10 insertions(+), 9 deletions(-) + +diff --git a/boost/detail/algorithm.hpp b/boost/detail/algorithm.hpp +index 7793fb357..9b3195cbf 100644 +--- a/boost/detail/algorithm.hpp ++++ b/boost/detail/algorithm.hpp +@@ -30,7 +30,7 @@ + + #ifndef BOOST_ALGORITHM_HPP + #define BOOST_ALGORITHM_HPP +-#include ++ + // Algorithms on sequences + // + // The functions in this file have not yet gone through formal +diff --git a/boost/graph/adjacency_iterator.hpp b/boost/graph/adjacency_iterator.hpp +index 5325e7875..4693e3a3a 100644 +--- a/boost/graph/adjacency_iterator.hpp ++++ b/boost/graph/adjacency_iterator.hpp +@@ -10,7 +10,7 @@ + #ifndef BOOST_ADJACENCY_ITERATOR_HPP + #define BOOST_ADJACENCY_ITERATOR_HPP + +-#include ++#include + #include + #include + +@@ -45,7 +45,7 @@ template < class Graph, + class adjacency_iterator_generator + { + typedef +- typename boost::detail::iterator_traits< OutEdgeIter >::difference_type ++ typename std::iterator_traits< OutEdgeIter >::difference_type + difference_type; + + public: +@@ -81,7 +81,7 @@ template < class Graph, + class inv_adjacency_iterator_generator + { + typedef +- typename boost::detail::iterator_traits< InEdgeIter >::difference_type ++ typename std::iterator_traits< InEdgeIter >::difference_type + difference_type; + + public: +diff --git a/boost/graph/detail/adjacency_list.hpp b/boost/graph/detail/adjacency_list.hpp +index 4b11fa516..c1a2ada23 100644 +--- a/boost/graph/detail/adjacency_list.hpp ++++ b/boost/graph/detail/adjacency_list.hpp +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -2370,7 +2371,7 @@ namespace detail + typedef typename OutEdgeList::size_type degree_size_type; + typedef typename OutEdgeList::iterator OutEdgeIter; + +- typedef boost::detail::iterator_traits< OutEdgeIter > ++ typedef std::iterator_traits< OutEdgeIter > + OutEdgeIterTraits; + typedef + typename OutEdgeIterTraits::iterator_category OutEdgeIterCat; +@@ -2398,7 +2399,7 @@ namespace detail + + // Edge Iterator + +- typedef boost::detail::iterator_traits< EdgeIter > EdgeIterTraits; ++ typedef std::iterator_traits< EdgeIter > EdgeIterTraits; + typedef typename EdgeIterTraits::iterator_category EdgeIterCat; + typedef typename EdgeIterTraits::difference_type EdgeIterDiff; + +diff --git a/boost/graph/incremental_components.hpp b/boost/graph/incremental_components.hpp +index 1ad8c9403..f16882e2a 100644 +--- a/boost/graph/incremental_components.hpp ++++ b/boost/graph/incremental_components.hpp +@@ -13,10 +13,10 @@ + #ifndef BOOST_INCREMENTAL_COMPONENTS_HPP + #define BOOST_INCREMENTAL_COMPONENTS_HPP + +-#include ++#include + #include + #include +-#include ++#include + #include + #include + +@@ -69,7 +69,7 @@ void compress_components(ParentIterator first, ParentIterator last) + } + + template < class ParentIterator > +-typename boost::detail::iterator_traits< ParentIterator >::difference_type ++typename std::iterator_traits< ParentIterator >::difference_type + component_count(ParentIterator first, ParentIterator last) + { + std::ptrdiff_t count = 0; diff --git a/boost.spec b/boost.spec index a6af3c2..38e86db 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -156,6 +156,10 @@ Patch94: boost-1.73-locale-empty-vector.patch # https://github.com/boostorg/build/issues/696 Patch95: boost-1.75.0-boost-build-fix.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1958382 +# https://github.com/boostorg/graph/pull/218 +Patch98: boost-1.75.0-remove-deprecated-boost-iterator.patch + %bcond_with tests %bcond_with docs_generated @@ -677,6 +681,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch93 -p1 %patch94 -p1 %patch95 -p1 +%patch98 -p1 %build %set_build_flags @@ -1278,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri May 07 2021 Thomas Rodgers - 1.75.0-5 +- Patch to fix deprecated iterator warnings (#1958382) + * Tue Mar 30 2021 Jonathan Wakely - 1.75.0-4 - Rebuilt for removed libstdc++ symbol (#1937698) From 5f7b377f410467f8d9c45e7f84544795566ce3c3 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Wed, 19 May 2021 16:44:05 +0100 Subject: [PATCH 06/86] Rebuild for ICU 69 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 38e86db..b6ef112 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed May 19 2021 Pete Walter - 1.75.0-6 +- Rebuild for ICU 69 + * Fri May 07 2021 Thomas Rodgers - 1.75.0-5 - Patch to fix deprecated iterator warnings (#1958382) From b796f2d0eb5aa9954cc5a559db984774616e586f Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Thu, 20 May 2021 00:53:58 +0100 Subject: [PATCH 07/86] Rebuild for ICU 69 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index b6ef112..87cfca0 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed May 19 2021 Pete Walter - 1.75.0-7 +- Rebuild for ICU 69 + * Wed May 19 2021 Pete Walter - 1.75.0-6 - Rebuild for ICU 69 From 582a02c7ab6e2f145156c7ff85a39256bffe0386 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 4 Jun 2021 12:11:52 +0200 Subject: [PATCH 08/86] Rebuilt for Python 3.10 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 87cfca0..10282c1 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Jun 04 2021 Python Maint - 1.75.0-8 +- Rebuilt for Python 3.10 + * Wed May 19 2021 Pete Walter - 1.75.0-7 - Rebuild for ICU 69 From 237974a0ce1b2d3a2c6fface1db482a5b92ef845 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 13:51:03 +0000 Subject: [PATCH 09/86] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 7fd53e56413a3e7b5ad7e1983ac0a4d6579c3185 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 18:48:13 +0000 Subject: [PATCH 10/86] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 10282c1..cbc8a5b 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 1.75.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Fri Jun 04 2021 Python Maint - 1.75.0-8 - Rebuilt for Python 3.10 From dd07b4b21f480f41a031ff3a352ef4e556959433 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Wed, 4 Aug 2021 13:35:00 -0700 Subject: [PATCH 11/86] Rebase to 1.75.0 See https://fedoraproject.org/wiki/Changes/F35Boost176 Drop patches: deleted: boost-1.73-python3.10.patch deleted: boost-1.73.0-b2-build-flags.patch deleted: boost-1.75.0-boost-build-fix.patch Fix include inside boost namespace in boost/math/tools/mp.hpp See https://github.com/boostorg/math/pull/670 Fix duplicate typedef in boost/math/tools/mp.hpp See https://github.com/boostorg/math/pull/671 --- boost-1.73-python3.10.patch | 108 ------------------ boost-1.73.0-b2-build-flags.patch | 11 -- boost-1.75.0-boost-build-fix.patch | 25 ---- boost-1.76.0-b2-build-flags.patch | 25 ++++ ...t-1.76.0-fix-duplicate-typedef-in-mp.patch | 27 +++++ ...0-fix-include-inside-boost-namespace.patch | 33 ++++++ boost.spec | 44 ++++--- sources | 2 +- 8 files changed, 113 insertions(+), 162 deletions(-) delete mode 100644 boost-1.73-python3.10.patch delete mode 100644 boost-1.73.0-b2-build-flags.patch delete mode 100644 boost-1.75.0-boost-build-fix.patch create mode 100644 boost-1.76.0-b2-build-flags.patch create mode 100644 boost-1.76.0-fix-duplicate-typedef-in-mp.patch create mode 100644 boost-1.76.0-fix-include-inside-boost-namespace.patch diff --git a/boost-1.73-python3.10.patch b/boost-1.73-python3.10.patch deleted file mode 100644 index a6106a9..0000000 --- a/boost-1.73-python3.10.patch +++ /dev/null @@ -1,108 +0,0 @@ ---- boost_1_73_0/boost/parameter/python.hpp% 2020-11-13 23:37:19.232520985 +0000 -+++ boost_1_73_0/boost/parameter/python.hpp 2020-11-13 23:40:58.808393161 +0000 -@@ -66,7 +66,7 @@ - - if (Py_TYPE(&unspecified) == 0) - { -- Py_TYPE(&unspecified) = &PyType_Type; -+ Py_SET_TYPE(&unspecified, &PyType_Type); - PyType_Ready(&unspecified); - } - ---- boost_1_73_0/libs/python/src/object/class.cpp~ 2020-11-13 23:37:19.236520983 +0000 -+++ boost_1_73_0/libs/python/src/object/class.cpp 2020-11-13 23:40:40.233403979 +0000 -@@ -208,7 +208,7 @@ - { - if (static_data_object.tp_dict == 0) - { -- Py_TYPE(&static_data_object) = &PyType_Type; -+ Py_SET_TYPE(&static_data_object, &PyType_Type); - static_data_object.tp_base = &PyProperty_Type; - if (PyType_Ready(&static_data_object)) - return 0; -@@ -316,7 +316,7 @@ - { - if (class_metatype_object.tp_dict == 0) - { -- Py_TYPE(&class_metatype_object) = &PyType_Type; -+ Py_SET_TYPE(&class_metatype_object, &PyType_Type); - class_metatype_object.tp_base = &PyType_Type; - if (PyType_Ready(&class_metatype_object)) - return type_handle(); -@@ -375,11 +375,11 @@ - // there. A negative number indicates that the extra - // instance memory is not yet allocated to any holders. - #if PY_VERSION_HEX >= 0x02060000 -- Py_SIZE(result) = -+ Py_SET_SIZE(result, - #else -- result->ob_size = -+ result->ob_size = ( - #endif -- -(static_cast(offsetof(instance<>,storage) + instance_size)); -+ -(static_cast(offsetof(instance<>,storage) + instance_size))); - } - return (PyObject*)result; - } -@@ -470,7 +470,7 @@ - { - if (class_type_object.tp_dict == 0) - { -- Py_TYPE(&class_type_object) = incref(class_metatype().get()); -+ Py_SET_TYPE(&class_type_object, incref(class_metatype().get())); - class_type_object.tp_base = &PyBaseObject_Type; - if (PyType_Ready(&class_type_object)) - return type_handle(); -@@ -739,7 +739,7 @@ - assert(holder_offset >= offsetof(objects::instance<>,storage)); - - // Record the fact that the storage is occupied, noting where it starts -- Py_SIZE(self) = holder_offset; -+ Py_SET_SIZE(self, holder_offset); - return (char*)self + holder_offset; - } - else ---- boost_1_73_0/libs/python/src/object/life_support.cpp~ 2020-11-13 23:37:19.240520980 +0000 -+++ boost_1_73_0/libs/python/src/object/life_support.cpp 2020-11-13 23:39:37.492440504 +0000 -@@ -93,7 +93,7 @@ - - if (Py_TYPE(&life_support_type) == 0) - { -- Py_TYPE(&life_support_type) = &PyType_Type; -+ Py_SET_TYPE(&life_support_type, &PyType_Type); - PyType_Ready(&life_support_type); - } - ---- boost_1_73_0/libs/python/src/object/function.cpp~ 2020-11-13 23:37:19.244520978 +0000 -+++ boost_1_73_0/libs/python/src/object/function.cpp 2020-11-13 23:39:14.260454029 +0000 -@@ -107,7 +107,7 @@ - PyObject* p = this; - if (Py_TYPE(&function_type) == 0) - { -- Py_TYPE(&function_type) = &PyType_Type; -+ Py_SET_TYPE(&function_type, &PyType_Type); - ::PyType_Ready(&function_type); - } - ---- boost_1_73_0/libs/python/src/object/enum.cpp~ 2020-11-13 23:37:19.248520976 +0000 -+++ boost_1_73_0/libs/python/src/object/enum.cpp 2020-11-13 23:38:51.943467016 +0000 -@@ -153,7 +153,7 @@ - { - if (enum_type_object.tp_dict == 0) - { -- Py_TYPE(&enum_type_object) = incref(&PyType_Type); -+ Py_SET_TYPE(&enum_type_object, incref(&PyType_Type)); - #if PY_VERSION_HEX >= 0x03000000 - enum_type_object.tp_base = &PyLong_Type; - #else ---- boost_1_73_0/boost/python/object/make_instance.hpp~ 2020-11-14 00:26:47.356724835 +0000 -+++ boost_1_73_0/boost/python/object/make_instance.hpp 2020-11-14 00:26:49.947723159 +0000 -@@ -47,7 +47,7 @@ - - // Note the position of the internally-stored Holder, - // for the sake of destruction -- Py_SIZE(instance) = offsetof(instance_t, storage); -+ Py_SET_SIZE(instance, offsetof(instance_t, storage)); - - // Release ownership of the python object - protect.cancel(); diff --git a/boost-1.73.0-b2-build-flags.patch b/boost-1.73.0-b2-build-flags.patch deleted file mode 100644 index e2e2037..0000000 --- a/boost-1.73.0-b2-build-flags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- boost_1_73_0/tools/build/src/engine/build.sh~ 2020-04-25 17:09:03.159419899 +0100 -+++ boost_1_73_0/tools/build/src/engine/build.sh 2020-04-25 17:11:35.085907844 +0100 -@@ -233,7 +233,7 @@ - - *) - B2_CXX="${CXX} -x c++ -std=c++11" -- B2_CXXFLAGS_RELEASE="-O2 -s" -+ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" - B2_CXXFLAGS_DEBUG="-O0 -g" - esac - ;; diff --git a/boost-1.75.0-boost-build-fix.patch b/boost-1.75.0-boost-build-fix.patch deleted file mode 100644 index 264441b..0000000 --- a/boost-1.75.0-boost-build-fix.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 40e5bcd594b01f9b7091de07f9efc4567cc1ac40 Mon Sep 17 00:00:00 2001 -From: Thomas Rodgers -Date: Tue, 2 Feb 2021 18:15:30 -0800 -Subject: [PATCH] Apply post 1.75.0 change from upstream - ---- - tools/build/src/engine/startup.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/build/src/engine/startup.cpp b/tools/build/src/engine/startup.cpp -index f58625408..a7659bb50 100644 ---- a/tools/build/src/engine/startup.cpp -+++ b/tools/build/src/engine/startup.cpp -@@ -195,7 +195,7 @@ bool b2::startup::bootstrap(FRAME *frame) - { - const std::string path{ - b2::paths::normalize( -- b2_exe_path + "/../../share/boost-build/" + boost_build_jam)}; -+ b2_exe_path + "/../../share/boost-build/src/kernel/" + boost_build_jam)}; - if (b2::filesys::is_file(path)) - b2_file_path = path; - } --- -2.26.2 - diff --git a/boost-1.76.0-b2-build-flags.patch b/boost-1.76.0-b2-build-flags.patch new file mode 100644 index 0000000..3422b5d --- /dev/null +++ b/boost-1.76.0-b2-build-flags.patch @@ -0,0 +1,25 @@ +From 5dde5a5a3c12dd8f52cb61ba220ec221ecfa98f0 Mon Sep 17 00:00:00 2001 +From: Thomas Rodgers +Date: Thu, 29 Jul 2021 10:15:37 -0700 +Subject: [PATCH] Use options from RPM for release builds with GCC + +--- + tools/build/src/engine/build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index 58f41cb4a..f85040f99 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -325,7 +325,7 @@ case "${B2_TOOLSET}" in + B2_CXX="${B2_CXX} -pthread" + ;; + esac +- B2_CXXFLAGS_RELEASE="-O2 -s" ++ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" + B2_CXXFLAGS_DEBUG="-O0 -g" + ;; + +-- +2.31.1 + diff --git a/boost-1.76.0-fix-duplicate-typedef-in-mp.patch b/boost-1.76.0-fix-duplicate-typedef-in-mp.patch new file mode 100644 index 0000000..a6c3c7d --- /dev/null +++ b/boost-1.76.0-fix-duplicate-typedef-in-mp.patch @@ -0,0 +1,27 @@ +From 62fcbde69aae70af24a51cb6582a2a95f65441c2 Mon Sep 17 00:00:00 2001 +From: Thomas Rodgers +Date: Wed, 4 Aug 2021 13:22:35 -0700 +Subject: [PATCH] Fix duplicate typedef in mp.hpp [#671] + +https://github.com/boostorg/math/pull/671 +--- + boost/math/tools/mp.hpp | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp +index dc8440988..3100a0bb6 100644 +--- a/boost/math/tools/mp.hpp ++++ b/boost/math/tools/mp.hpp +@@ -426,9 +426,6 @@ struct make_integer_sequence_impl + template + using make_integer_sequence = typename detail::make_integer_sequence_impl::type; + +-template +-using index_sequence = integer_sequence; +- + template + using make_index_sequence = make_integer_sequence; + +-- +2.31.1 + diff --git a/boost-1.76.0-fix-include-inside-boost-namespace.patch b/boost-1.76.0-fix-include-inside-boost-namespace.patch new file mode 100644 index 0000000..0fd8f05 --- /dev/null +++ b/boost-1.76.0-fix-include-inside-boost-namespace.patch @@ -0,0 +1,33 @@ +From f6818a161d3f835d246aceea0804243c887ac10b Mon Sep 17 00:00:00 2001 +From: Thomas Rodgers +Date: Wed, 4 Aug 2021 13:09:57 -0700 +Subject: [PATCH] Fix include inside boost namespace [#670] + +https://github.com/boostorg/math/pull/670/commits/1ec5c98d80de97f9e962c5627e1a0e6096099894 +--- + boost/math/tools/mp.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp +index 35565646f..dc8440988 100644 +--- a/boost/math/tools/mp.hpp ++++ b/boost/math/tools/mp.hpp +@@ -13,6 +13,7 @@ + + #include + #include ++#include + + namespace boost { namespace math { namespace tools { namespace meta_programming { + +@@ -338,7 +339,6 @@ using mp_remove_if_q = mp_remove_if; + // Index sequence + // Use C++14 index sequence if available + #if defined(__cpp_lib_integer_sequence) && (__cpp_lib_integer_sequence >= 201304) +-#include + template + using index_sequence = std::index_sequence; + +-- +2.31.1 + diff --git a/boost.spec b/boost.spec index cbc8a5b..43afae3 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.75.0 -Release: 9%{?dist} +Version: 1.76.0 +Release: 0%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,7 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -Source0: https://dl.bintray.com/boostorg/release/%{version}/source/%{name}_%%{version_enc}.tar.bz2 +Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html @@ -138,28 +138,26 @@ Patch96: boost-1.75.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch97: boost-1.75.0-no-rpath.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch83: boost-1.73.0-b2-build-flags.patch - # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch88: boost-1.73.0-cmakedir.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1896382 -# https://github.com/boostorg/python/issues/325 -Patch93: boost-1.73-python3.10.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1899888 # https://github.com/boostorg/locale/issues/52 Patch94: boost-1.73-locale-empty-vector.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1923740 -# https://github.com/boostorg/build/issues/696 -Patch95: boost-1.75.0-boost-build-fix.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1958382 # https://github.com/boostorg/graph/pull/218 Patch98: boost-1.75.0-remove-deprecated-boost-iterator.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1541035 +Patch99: boost-1.76.0-b2-build-flags.patch + +# https://github.com/boostorg/math/pull/670 +Patch100: boost-1.76.0-fix-include-inside-boost-namespace.patch + +# https://github.com/boostorg/math/pull/671 +Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch + %bcond_with tests %bcond_with docs_generated @@ -676,12 +674,12 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch51 -p1 %patch96 -p1 %patch97 -p1 -%patch83 -p1 +%patch99 -p1 %patch88 -p1 -%patch93 -p1 %patch94 -p1 -%patch95 -p1 %patch98 -p1 +%patch100 -p1 +%patch101 -p1 %build %set_build_flags @@ -1283,6 +1281,18 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Aug 04 2021 Thomas Rodgers - 1.76.0-1 +- Rebase to 1.75.0 + See https://fedoraproject.org/wiki/Changes/F35Boost176 +- Drop patches: + deleted: boost-1.73-python3.10.patch + deleted: boost-1.73.0-b2-build-flags.patch + deleted: boost-1.75.0-boost-build-fix.patch +- Fix include inside boost namespace in boost/math/tools/mp.hpp + See https://github.com/boostorg/math/pull/670 +- Fix duplicate typedef in boost/math/tools/mp.hpp + See https://github.com/boostorg/math/pull/671 + * Wed Jul 21 2021 Fedora Release Engineering - 1.75.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index 784d5b3..ced7dc7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_75_0.tar.bz2) = d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a +SHA512 (boost_1_76_0.tar.bz2) = 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429 From ee1a4870ab2d9e85e5b54a464ef48457a69d0add Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Thu, 5 Aug 2021 13:49:56 -0700 Subject: [PATCH 12/86] Boost.Math does not support 'long double' of ppc64le See https://github.com/boostorg/math/pull/524 --- boost.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 43afae3..06d011f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 0%{?dist} +Release: 1%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1064,10 +1064,16 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_math_c99.so.%{sonamever} %{_libdir}/libboost_math_c99f.so.%{sonamever} +%ifnarch ppc64 ppc64le +# long double not supported for this platform %{_libdir}/libboost_math_c99l.so.%{sonamever} +%endif %{_libdir}/libboost_math_tr1.so.%{sonamever} %{_libdir}/libboost_math_tr1f.so.%{sonamever} +%ifnarch ppc64 ppc64le +# long double not supported for this platform %{_libdir}/libboost_math_tr1l.so.%{sonamever} +%endif %files nowide %license LICENSE_1_0.txt @@ -1281,6 +1287,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Aug 05 2021 Thomas Rodgers - 1.76.0-2 +- Boost.Math does not support 'long double' of ppc64le + See https://github.com/boostorg/math/pull/524 * Wed Aug 04 2021 Thomas Rodgers - 1.76.0-1 - Rebase to 1.75.0 See https://fedoraproject.org/wiki/Changes/F35Boost176 From 03817f73cbf5fce489a3ddab76d729634ce52a7b Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Thu, 5 Aug 2021 14:48:33 -0700 Subject: [PATCH 13/86] Second attempt at making the long double c99 and tr1 math libs conditional on ppc64le --- boost.spec | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/boost.spec b/boost.spec index 06d011f..3d9cd41 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 1%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1065,14 +1065,14 @@ fi %{_libdir}/libboost_math_c99.so.%{sonamever} %{_libdir}/libboost_math_c99f.so.%{sonamever} %ifnarch ppc64 ppc64le -# long double not supported for this platform -%{_libdir}/libboost_math_c99l.so.%{sonamever} + # long double not supported for this platform + %{_libdir}/libboost_math_c99l.so.%{sonamever} %endif %{_libdir}/libboost_math_tr1.so.%{sonamever} %{_libdir}/libboost_math_tr1f.so.%{sonamever} %ifnarch ppc64 ppc64le -# long double not supported for this platform -%{_libdir}/libboost_math_tr1l.so.%{sonamever} + # long double not supported for this platform + %{_libdir}/libboost_math_tr1l.so.%{sonamever} %endif %files nowide @@ -1287,6 +1287,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Aug 05 2021 Thomas Rodgers - 1.76.0-3 +- Second attempt at making the long double c99 and tr1 math libs conditional + on ppc64le * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-2 - Boost.Math does not support 'long double' of ppc64le See https://github.com/boostorg/math/pull/524 From 65b36067d52a774f4453294ed5a361a4e65255d4 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Thu, 5 Aug 2021 18:41:56 -0700 Subject: [PATCH 14/86] Third attempt at making the long double c99 and tr1 math libs conditional on ppc64le --- boost.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 3d9cd41..eeb2715 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1173,10 +1173,14 @@ fi %{_libdir}/libboost_log_setup.so %{_libdir}/libboost_math_tr1.so %{_libdir}/libboost_math_tr1f.so +%ifnarch ppc64 ppc64le %{_libdir}/libboost_math_tr1l.so +%endif %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so +%ifnarch ppc64 ppc64le %{_libdir}/libboost_math_c99l.so +%endif %{_libdir}/libboost_nowide.so %if %{with python3} %{_libdir}/libboost_numpy%{python3_version_nodots}.so @@ -1287,6 +1291,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Aug 05 2021 Thomas Rodgers - 1.76.0-4 +- Third attempt at making the long double c99 and tr1 math libs conditional + on ppc64le * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-3 - Second attempt at making the long double c99 and tr1 math libs conditional on ppc64le From 6a7ecd767d4296a3d3e4786b1786b17f29569d4c Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Sun, 23 May 2021 14:00:02 +0000 Subject: [PATCH 15/86] drop unwanted scratch build rule for gating --- gating.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/gating.yaml b/gating.yaml index 14943f1..4581d72 100644 --- a/gating.yaml +++ b/gating.yaml @@ -5,7 +5,6 @@ decision_context: bodhi_update_push_stable subject_type: koji_build rules: - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} - - !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation} --- !Policy product_versions: - rhel-8 From 0fc8825319a7ff4d7a35fb5742c36ed64793ae6d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 1 Sep 2021 13:23:48 +0100 Subject: [PATCH 16/86] Add whitespace between changelog entries --- boost.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/boost.spec b/boost.spec index eeb2715..dbed81a 100644 --- a/boost.spec +++ b/boost.spec @@ -1294,12 +1294,15 @@ fi * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-4 - Third attempt at making the long double c99 and tr1 math libs conditional on ppc64le + * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-3 - Second attempt at making the long double c99 and tr1 math libs conditional on ppc64le + * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-2 - Boost.Math does not support 'long double' of ppc64le See https://github.com/boostorg/math/pull/524 + * Wed Aug 04 2021 Thomas Rodgers - 1.76.0-1 - Rebase to 1.75.0 See https://fedoraproject.org/wiki/Changes/F35Boost176 From 3824fb19034c59a1dd5377abdb0719535931f51d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 1 Sep 2021 13:38:22 +0100 Subject: [PATCH 17/86] Remove double % in Source0 tag --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index dbed81a..d5a50ba 100644 --- a/boost.spec +++ b/boost.spec @@ -54,7 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%%{version_enc}.tar.bz2 +Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html From 214bbadaf6d65b9cecbf8951e258a5623c2ccdc1 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 1 Sep 2021 14:13:43 +0100 Subject: [PATCH 18/86] Make boost-python3 depend on specific 3.X version (#1896713) --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index d5a50ba..81ee49f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -351,6 +351,7 @@ conventional methods such as command-line and configuration file. %if %{with python3} %package python3 Summary: Run-time component of boost python library for Python 3 +Requires: python(abi) = %{python3_version} %description python3 @@ -1291,6 +1292,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Sep 01 2021 Jonathan Wakely - 1.76.0-5 +- Make boost-python3 depend on specific 3.X version (#1896713) + * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-4 - Third attempt at making the long double c99 and tr1 math libs conditional on ppc64le From bba3a6c2a04e68f2c50ec48ec20bd05c0d380493 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 1 Sep 2021 17:51:47 +0100 Subject: [PATCH 19/86] Add patch to fix CI failure --- boost-1.76.0-random-test.patch | 34 ++++++++++++++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-random-test.patch diff --git a/boost-1.76.0-random-test.patch b/boost-1.76.0-random-test.patch new file mode 100644 index 0000000..5ce7477 --- /dev/null +++ b/boost-1.76.0-random-test.patch @@ -0,0 +1,34 @@ +From c3ada7a1b2b54f4b27585f72308a76984f8489b4 Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Tue, 16 Mar 2021 10:47:16 +0000 +Subject: [PATCH] Add missing #includes. + +--- + test/multiprecision_float_test.cpp | 1 + + test/multiprecision_int_test.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/test/multiprecision_float_test.cpp b/test/multiprecision_float_test.cpp +index 904c59d8f..bc2a9364d 100644 +--- boost_1_76_0/libs/random/test/multiprecision_float_test.cpp ++++ boost_1_76_0/libs/random/test/multiprecision_float_test.cpp +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + + +diff --git a/test/multiprecision_int_test.cpp b/test/multiprecision_int_test.cpp +index 577e52aff..41ec229b5 100644 +--- boost_1_76_0/libs/random/test/multiprecision_int_test.cpp ++++ boost_1_76_0/libs/random/test/multiprecision_int_test.cpp +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + + typedef boost::mpl::list < diff --git a/boost.spec b/boost.spec index 81ee49f..fb1921b 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -158,6 +158,9 @@ Patch100: boost-1.76.0-fix-include-inside-boost-namespace.patch # https://github.com/boostorg/math/pull/671 Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch +# https://github.com/boostorg/random/issues/82 +Patch102: boost-1.76.0-random-test.patch + %bcond_with tests %bcond_with docs_generated @@ -681,6 +684,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch98 -p1 %patch100 -p1 %patch101 -p1 +%patch102 -p1 %build %set_build_flags @@ -1292,6 +1296,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Sep 01 2021 Jonathan Wakely - 1.76.0-6 +- Add patch to fix CI failure + * Wed Sep 01 2021 Jonathan Wakely - 1.76.0-5 - Make boost-python3 depend on specific 3.X version (#1896713) From 6edfd326176b2333052aae56fd6aa3209600d432 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 22:31:40 +0000 Subject: [PATCH 20/86] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index fb1921b..fa3e2dc 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1296,6 +1296,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 1.76.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Sep 01 2021 Jonathan Wakely - 1.76.0-6 - Add patch to fix CI failure From 6502666126527c7b47c4a4690e0c6d30022fe6aa Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Tue, 1 Feb 2022 15:56:55 +0100 Subject: [PATCH 21/86] Fix https://github.com/boostorg/multiprecision/issues/419 The PR https://github.com/boostorg/multiprecision/pull/421 fixes the issue, and is planned for Boost version 1.79.0. --- ...fix_multiprecision_issue_419-ppc64le.patch | 27 +++++++++++++++++++ boost.spec | 11 +++++++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch diff --git a/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch b/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch new file mode 100644 index 0000000..5cd6d40 --- /dev/null +++ b/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch @@ -0,0 +1,27 @@ +From d1343f28dcbe25b100b082b34775bd92ead4602c Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Tue, 25 Jan 2022 09:27:40 +0000 +Subject: [PATCH] Update gcc Intel intrinsic usage config. Fixes + https://github.com/boostorg/multiprecision/issues/419. + +--- + include/boost/multiprecision/cpp_int/intel_intrinsics.hpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp +index eb4624bb4..37717cd51 100644 +--- a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp ++++ b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp +@@ -19,7 +19,11 @@ + // If this is GCC/clang, then check that the actual intrinsic exists: + // + #if defined(__has_builtin) && defined(__GNUC__) +-#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) ++#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) \ ++ && !(defined(BOOST_GCC) && (__GNUC__ >= 9) \ ++ && (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)\ ++ || defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_AMD64) \ ++ || defined(_M_X64) || defined(__amd64__) || defined(_M_X64))) + #undef BOOST_MP_HAS_IMMINTRIN_H + #endif + #elif defined(BOOST_MP_HAS_IMMINTRIN_H) && defined(__GNUC__) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) diff --git a/boost.spec b/boost.spec index fa3e2dc..5928a44 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -161,6 +161,10 @@ Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch # https://github.com/boostorg/random/issues/82 Patch102: boost-1.76.0-random-test.patch +# PR https://github.com/boostorg/multiprecision/pull/421 +# fixes ppc64le issue https://github.com/boostorg/multiprecision/issues/419 +Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch + %bcond_with tests %bcond_with docs_generated @@ -685,6 +689,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch100 -p1 %patch101 -p1 %patch102 -p1 +%patch103 -p2 %build %set_build_flags @@ -1296,6 +1301,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Feb 1 2022 Laurent Rineau - 1.76.0-8 +- Add patch to fix Boost Multiprecision on ppc64le + https://github.com/boostorg/multiprecision/issues/419 + * Wed Jan 19 2022 Fedora Release Engineering - 1.76.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 0e92f1aa2e2fb7863be42c60deda475d7fc2c955 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Tue, 1 Feb 2022 16:44:57 +0100 Subject: [PATCH 22/86] Restore math_c99l and math_tr1l on ppc64le --- boost.spec | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/boost.spec b/boost.spec index 5928a44..400890e 100644 --- a/boost.spec +++ b/boost.spec @@ -1074,16 +1074,10 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_math_c99.so.%{sonamever} %{_libdir}/libboost_math_c99f.so.%{sonamever} -%ifnarch ppc64 ppc64le - # long double not supported for this platform - %{_libdir}/libboost_math_c99l.so.%{sonamever} -%endif +%{_libdir}/libboost_math_c99l.so.%{sonamever} %{_libdir}/libboost_math_tr1.so.%{sonamever} %{_libdir}/libboost_math_tr1f.so.%{sonamever} -%ifnarch ppc64 ppc64le - # long double not supported for this platform - %{_libdir}/libboost_math_tr1l.so.%{sonamever} -%endif +%{_libdir}/libboost_math_tr1l.so.%{sonamever} %files nowide %license LICENSE_1_0.txt @@ -1183,14 +1177,10 @@ fi %{_libdir}/libboost_log_setup.so %{_libdir}/libboost_math_tr1.so %{_libdir}/libboost_math_tr1f.so -%ifnarch ppc64 ppc64le %{_libdir}/libboost_math_tr1l.so -%endif %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so -%ifnarch ppc64 ppc64le %{_libdir}/libboost_math_c99l.so -%endif %{_libdir}/libboost_nowide.so %if %{with python3} %{_libdir}/libboost_numpy%{python3_version_nodots}.so @@ -1304,6 +1294,7 @@ fi * Tue Feb 1 2022 Laurent Rineau - 1.76.0-8 - Add patch to fix Boost Multiprecision on ppc64le https://github.com/boostorg/multiprecision/issues/419 +- Acknowledge the change of the ABI of ppc64le with long double. * Wed Jan 19 2022 Fedora Release Engineering - 1.76.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From bc37ceb79d4456aaa0fd5434cad1c105717af3a7 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 3 Feb 2022 00:17:30 +0000 Subject: [PATCH 23/86] Add rpmlintrc file to suppress errors in Zuul checks --- boost.rpmlintrc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 boost.rpmlintrc diff --git a/boost.rpmlintrc b/boost.rpmlintrc new file mode 100644 index 0000000..c8a2596 --- /dev/null +++ b/boost.rpmlintrc @@ -0,0 +1,24 @@ +# The meta-package doesn't contain any files, this is intended. +addFilter("boost.x86_64: E: no-binary") + +# All docs are in a separate boost-doc package +addFilter("boost.*: W: no-documentation") +addFilter("boost.*: W: description-shorter-than-summary") + +# Upstream don't provide one +addFilter("boost-doctools.x86_64: W: no-manual-page-for-binary quickbook") + +# Ignore these +addFilter("boost.*: W: spelling-error %description -l en_US foundational ") +addFilter("boost.*: W: spelling-error %description -l en_US invariants ") +addFilter("boost.*: W: spelling-error %description -l en_US postconditions ") +addFilter("boost.*: W: spelling-error %description -l en_US userland ") +addFilter("boost.*: W: spelling-error Summary(en_US) numpy ") + +# The example code is useless without the headers +addFilter("boost-examples.x86_64: E: devel-dependency boost-devel") + +# These libs are statically linked +addFilter("boost-date-time.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_date_time.so.*") +addFilter("boost-system.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_system.so.*") +addFilter("boost-stacktrace.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_stacktrace_noop.so.*") From 9eaf760933410d1eb9fdd750275be9952bdce9aa Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Wed, 2 Feb 2022 18:36:49 -0800 Subject: [PATCH 24/86] Add patch to fix narrowing conversions on ppc64le https://github.com/boostorg/interval/issues/29 --- ....0-fix-narrowing-conversions-for-ppc.patch | 32 +++++++++++++++++++ boost.spec | 12 ++++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-fix-narrowing-conversions-for-ppc.patch diff --git a/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch new file mode 100644 index 0000000..42662dd --- /dev/null +++ b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch @@ -0,0 +1,32 @@ +From 0039878782516ea3313608f99f0d50e846151bc2 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Mon, 31 Jan 2022 11:37:29 +0000 +Subject: [PATCH] Fix narrowing conversions for ppc + +These constants are too large for `long long` so are unsigned, +and then cannot be narrowed to the signed type. + +Fixes #29 +--- + .../numeric/interval/detail/ppc_rounding_control.hpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp +index 87fe8ee..99f9986 100644 +--- a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp ++++ b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp +@@ -28,10 +28,10 @@ typedef union { + double dmode; + } rounding_mode_struct; + +-static const rounding_mode_struct mode_upward = { 0xFFF8000000000002LL }; +-static const rounding_mode_struct mode_downward = { 0xFFF8000000000003LL }; +-static const rounding_mode_struct mode_to_nearest = { 0xFFF8000000000000LL }; +-static const rounding_mode_struct mode_toward_zero = { 0xFFF8000000000001LL }; ++static const rounding_mode_struct mode_upward = { (::boost::long_long_type)0xFFF8000000000002LL }; ++static const rounding_mode_struct mode_downward = { (::boost::long_long_type)0xFFF8000000000003LL }; ++static const rounding_mode_struct mode_to_nearest = { (::boost::long_long_type)0xFFF8000000000000LL }; ++static const rounding_mode_struct mode_toward_zero = { (::boost::long_long_type)0xFFF8000000000001LL }; + + struct ppc_rounding_control + { diff --git a/boost.spec b/boost.spec index 400890e..18744b5 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -165,6 +165,11 @@ Patch102: boost-1.76.0-random-test.patch # fixes ppc64le issue https://github.com/boostorg/multiprecision/issues/419 Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch +# PR https://github.com/boostorg/interval/pull/30 +# Fixes narrowing conversions for ppc - +# https://github.com/boostorg/interval/issues/29 +Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch + %bcond_with tests %bcond_with docs_generated @@ -690,6 +695,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch101 -p1 %patch102 -p1 %patch103 -p2 +%patch104 -p2 %build %set_build_flags @@ -1291,6 +1297,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Feb 2 2022 Thomas Rodgers - 1.76.0-9 +- Add patch to fix narrowing conversions on ppc64le + https://github.com/boostorg/interval/issues/29 + * Tue Feb 1 2022 Laurent Rineau - 1.76.0-8 - Add patch to fix Boost Multiprecision on ppc64le https://github.com/boostorg/multiprecision/issues/419 From 3c2829edfe0a42d456a0f571a327861f39c97af3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 31 Mar 2022 13:12:21 +0100 Subject: [PATCH 25/86] Add patch to fix XML validation errors in ptr_container docs --- boost-1.76.0-ptr_cont-xml.patch | 1263 +++++++++++++++++++++++++++++++ boost.spec | 9 +- 2 files changed, 1271 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-ptr_cont-xml.patch diff --git a/boost-1.76.0-ptr_cont-xml.patch b/boost-1.76.0-ptr_cont-xml.patch new file mode 100644 index 0000000..ed088bf --- /dev/null +++ b/boost-1.76.0-ptr_cont-xml.patch @@ -0,0 +1,1263 @@ +From adc94a80adbb7b720bd149c8b805876baa77b815 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Wed, 5 Aug 2020 11:28:26 +0100 +Subject: [PATCH] Fix invalid XHTML markup in docs + +The reStructuredText files insert
HTML elements, which are not +valid in XHTML. + +The doc/tutorial_example.html file contains unquoted attributes and +unclosed and tags (although since that file is included +into another document, it probably shouldn't have , and + elements at all). +--- + doc/associative_ptr_container.html | 2 +- + doc/associative_ptr_container.rst | 2 +- + doc/examples.html | 2 +- + doc/examples.rst | 4 +- + doc/faq.html | 2 +- + doc/faq.rst | 2 +- + doc/guidelines.html | 4 +- + doc/guidelines.rst | 4 +- + doc/headers.html | 2 +- + doc/headers.rst | 2 +- + doc/indirect_fun.html | 2 +- + doc/indirect_fun.rst | 2 +- + doc/ptr_array.html | 2 +- + doc/ptr_array.rst | 2 +- + doc/ptr_container.html | 2 +- + doc/ptr_container.rst | 2 +- + doc/ptr_deque.html | 2 +- + doc/ptr_deque.rst | 2 +- + doc/ptr_inserter.html | 2 +- + doc/ptr_inserter.rst | 2 +- + doc/ptr_list.html | 2 +- + doc/ptr_list.rst | 2 +- + doc/ptr_map.html | 2 +- + doc/ptr_map.rst | 2 +- + doc/ptr_map_adapter.html | 2 +- + doc/ptr_map_adapter.rst | 2 +- + doc/ptr_multimap_adapter.html | 2 +- + doc/ptr_multimap_adapter.rst | 2 +- + doc/ptr_multiset.html | 2 +- + doc/ptr_multiset.rst | 2 +- + doc/ptr_multiset_adapter.html | 2 +- + doc/ptr_multiset_adapter.rst | 2 +- + doc/ptr_sequence_adapter.html | 2 +- + doc/ptr_sequence_adapter.rst | 2 +- + doc/ptr_set.html | 2 +- + doc/ptr_set.rst | 2 +- + doc/ptr_set_adapter.html | 2 +- + doc/ptr_set_adapter.rst | 2 +- + doc/ptr_vector.html | 2 +- + doc/ptr_vector.rst | 2 +- + doc/reference.html | 4 +- + doc/reference.rst | 4 +- + doc/reversible_ptr_container.html | 2 +- + doc/reversible_ptr_container.rst | 2 +- + doc/tutorial.html | 4 +- + doc/tutorial.rst | 4 +- + doc/tutorial_example.html | 384 ++++++++++++++--------------- + 47 files changed, 245 insertions(+), 245 deletions(-) + +diff --git a/doc/associative_ptr_container.html b/doc/associative_ptr_container.html +index ccc4d9fa..9467864f 100644 +--- a/libs/ptr_container/doc/associative_ptr_container.html ++++ b/libs/ptr_container/doc/associative_ptr_container.html +@@ -529,7 +529,7 @@

++
+ + + +diff --git a/doc/associative_ptr_container.rst b/doc/associative_ptr_container.rst +index b9b8d45a..6dcd0833 100644 +--- a/libs/ptr_container/doc/associative_ptr_container.rst ++++ b/libs/ptr_container/doc/associative_ptr_container.rst +@@ -216,7 +216,7 @@ Semantics: algorithms + + .. raw:: html + +-
++
+ + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/examples.html b/doc/examples.html +index 5568b323..dbc8ce2b 100644 +--- a/libs/ptr_container/doc/examples.html ++++ b/libs/ptr_container/doc/examples.html +@@ -886,7 +886,7 @@

9. A large example

+
  • home
  • +
  • reference
  • + +-
    ++
    + + + +diff --git a/doc/examples.rst b/doc/examples.rst +index 213094bf..d82f4b85 100644 +--- a/libs/ptr_container/doc/examples.rst ++++ b/libs/ptr_container/doc/examples.rst +@@ -180,7 +180,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. + + .. raw:: html + +-
    ++
    + + **Navigate:** + +@@ -189,7 +189,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/faq.html b/doc/faq.html +index f318483b..1d701131 100644 +--- a/libs/ptr_container/doc/faq.html ++++ b/libs/ptr_container/doc/faq.html +@@ -373,7 +373,7 @@

    [13] for details.

    +-

    ++
    + + + +diff --git a/doc/faq.rst b/doc/faq.rst +index 40c8eb2d..e2ead8d7 100644 +--- a/libs/ptr_container/doc/faq.rst ++++ b/libs/ptr_container/doc/faq.rst +@@ -95,7 +95,7 @@ class with dummy implementations of the virtual functions. See `[13] ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/guidelines.html b/doc/guidelines.html +index 759b6259..25d1f148 100644 +--- a/libs/ptr_container/doc/guidelines.html ++++ b/libs/ptr_container/doc/guidelines.html +@@ -414,12 +414,12 @@

    container< nullable<T> >.

    +-

    Navigate:

    ++

    Navigate:

    +
    +-

    ++
    + + + +diff --git a/doc/guidelines.rst b/doc/guidelines.rst +index 1c39c7ba..bf69dac8 100644 +--- a/libs/ptr_container/doc/guidelines.rst ++++ b/libs/ptr_container/doc/guidelines.rst +@@ -144,7 +144,7 @@ you. That is when you truly need ``container< nullable >``. + + .. raw:: html + +-
    ++
    + + **Navigate:** + +@@ -153,7 +153,7 @@ you. That is when you truly need ``container< nullable >``. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/headers.html b/doc/headers.html +index 4b040825..aa1609ab 100644 +--- a/libs/ptr_container/doc/headers.html ++++ b/libs/ptr_container/doc/headers.html +@@ -375,7 +375,7 @@

    Library headers

    +
  • home
  • +
  • reference
  • + +-
    ++
    + + + +diff --git a/doc/headers.rst b/doc/headers.rst +index befcbb55..8c8e8ded 100644 +--- a/libs/ptr_container/doc/headers.rst ++++ b/libs/ptr_container/doc/headers.rst +@@ -75,7 +75,7 @@ Library headers + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/indirect_fun.html b/doc/indirect_fun.html +index a0446472..acc13346 100644 +--- a/libs/ptr_container/doc/indirect_fun.html ++++ b/libs/ptr_container/doc/indirect_fun.html +@@ -401,7 +401,7 @@

    Indirected functions

    + + } // namespace 'boost' + +-
    ++
    + + + +diff --git a/doc/indirect_fun.rst b/doc/indirect_fun.rst +index 5fd13df2..f6583d90 100644 +--- a/libs/ptr_container/doc/indirect_fun.rst ++++ b/libs/ptr_container/doc/indirect_fun.rst +@@ -127,7 +127,7 @@ first operation is expanded inline. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_array.html b/doc/ptr_array.html +index 30da95f7..483fcfa4 100644 +--- a/libs/ptr_container/doc/ptr_array.html ++++ b/libs/ptr_container/doc/ptr_array.html +@@ -660,7 +660,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_array.rst b/doc/ptr_array.rst +index 68c2b47b..a7390236 100644 +--- a/libs/ptr_container/doc/ptr_array.rst ++++ b/libs/ptr_container/doc/ptr_array.rst +@@ -281,7 +281,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_container.html b/doc/ptr_container.html +index 5672bdfd..77a89a35 100644 +--- a/libs/ptr_container/doc/ptr_container.html ++++ b/libs/ptr_container/doc/ptr_container.html +@@ -735,7 +735,7 @@

    References

    + + +
    [13]Kevlin Henney, Null Object, 2002.
    +-
    ++
    + + + +diff --git a/doc/ptr_container.rst b/doc/ptr_container.rst +index 0436cce7..257a2fda 100644 +--- a/libs/ptr_container/doc/ptr_container.rst ++++ b/libs/ptr_container/doc/ptr_container.rst +@@ -384,7 +384,7 @@ __ http://www.two-sdg.demon.co.uk/curbralan/papers/europlop/NullObject.pdf + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. + +diff --git a/doc/ptr_deque.html b/doc/ptr_deque.html +index 5216aa0e..bc996969 100644 +--- a/libs/ptr_container/doc/ptr_deque.html ++++ b/libs/ptr_container/doc/ptr_deque.html +@@ -526,7 +526,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_deque.rst b/doc/ptr_deque.rst +index 020ba362..a2a2cc99 100644 +--- a/libs/ptr_container/doc/ptr_deque.rst ++++ b/libs/ptr_container/doc/ptr_deque.rst +@@ -170,7 +170,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_inserter.html b/doc/ptr_inserter.html +index 9fb05a8a..92e4a527 100644 +--- a/libs/ptr_container/doc/ptr_inserter.html ++++ b/libs/ptr_container/doc/ptr_inserter.html +@@ -348,7 +348,7 @@

    Insert Iterators

    + } // namespace 'ptr_container' + } // namespace 'boost' + +-
    ++
    + + + +diff --git a/doc/ptr_inserter.rst b/doc/ptr_inserter.rst +index 574bbdad..ef1c820b 100644 +--- a/libs/ptr_container/doc/ptr_inserter.rst ++++ b/libs/ptr_container/doc/ptr_inserter.rst +@@ -70,7 +70,7 @@ can be transfered as well. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2008. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_list.html b/doc/ptr_list.html +index 1a8e6798..c76aeaf9 100644 +--- a/libs/ptr_container/doc/ptr_list.html ++++ b/libs/ptr_container/doc/ptr_list.html +@@ -500,7 +500,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_list.rst b/doc/ptr_list.rst +index 302049d0..2eceb9d7 100644 +--- a/libs/ptr_container/doc/ptr_list.rst ++++ b/libs/ptr_container/doc/ptr_list.rst +@@ -146,7 +146,7 @@ Semantics: list operations + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_map.html b/doc/ptr_map.html +index e5fd2c9c..bc75e5cb 100644 +--- a/libs/ptr_container/doc/ptr_map.html ++++ b/libs/ptr_container/doc/ptr_map.html +@@ -342,7 +342,7 @@

    Class +-

    ++
    + + + +diff --git a/doc/ptr_map.rst b/doc/ptr_map.rst +index 6b50a2ba..64113937 100644 +--- a/libs/ptr_container/doc/ptr_map.rst ++++ b/libs/ptr_container/doc/ptr_map.rst +@@ -63,7 +63,7 @@ to store the pointers. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_map_adapter.html b/doc/ptr_map_adapter.html +index 2ed30539..b451914c 100644 +--- a/libs/ptr_container/doc/ptr_map_adapter.html ++++ b/libs/ptr_container/doc/ptr_map_adapter.html +@@ -556,7 +556,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_map_adapter.rst b/doc/ptr_map_adapter.rst +index 517ea7fc..aabf5c4e 100644 +--- a/libs/ptr_container/doc/ptr_map_adapter.rst ++++ b/libs/ptr_container/doc/ptr_map_adapter.rst +@@ -194,7 +194,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_multimap_adapter.html b/doc/ptr_multimap_adapter.html +index 3780ec8c..49243a16 100644 +--- a/libs/ptr_container/doc/ptr_multimap_adapter.html ++++ b/libs/ptr_container/doc/ptr_multimap_adapter.html +@@ -540,7 +540,7 @@

    Semantics: typedefs

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_multimap_adapter.rst b/doc/ptr_multimap_adapter.rst +index 3b9e9961..56d37f5d 100644 +--- a/libs/ptr_container/doc/ptr_multimap_adapter.rst ++++ b/libs/ptr_container/doc/ptr_multimap_adapter.rst +@@ -189,7 +189,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_multiset.html b/doc/ptr_multiset.html +index a82a7995..50fa9681 100644 +--- a/libs/ptr_container/doc/ptr_multiset.html ++++ b/libs/ptr_container/doc/ptr_multiset.html +@@ -349,7 +349,7 @@

    Class +
      +
    • Using nullable<T> as Key is meaningless and is not allowed
    • +
    +-

    ++
    + + + +diff --git a/doc/ptr_multiset.rst b/doc/ptr_multiset.rst +index 120891bd..3af8bef3 100644 +--- a/libs/ptr_container/doc/ptr_multiset.rst ++++ b/libs/ptr_container/doc/ptr_multiset.rst +@@ -70,7 +70,7 @@ to store the pointers. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_multiset_adapter.html b/doc/ptr_multiset_adapter.html +index 6bcfebb1..96e811d1 100644 +--- a/libs/ptr_container/doc/ptr_multiset_adapter.html ++++ b/libs/ptr_container/doc/ptr_multiset_adapter.html +@@ -491,7 +491,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_multiset_adapter.rst b/doc/ptr_multiset_adapter.rst +index eb9eafe2..8c437fb1 100644 +--- a/libs/ptr_container/doc/ptr_multiset_adapter.rst ++++ b/libs/ptr_container/doc/ptr_multiset_adapter.rst +@@ -134,7 +134,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_sequence_adapter.html b/doc/ptr_sequence_adapter.html +index aa2e7a42..9c4af800 100644 +--- a/libs/ptr_container/doc/ptr_sequence_adapter.html ++++ b/libs/ptr_container/doc/ptr_sequence_adapter.html +@@ -827,7 +827,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_sequence_adapter.rst b/doc/ptr_sequence_adapter.rst +index 5640d029..d98684c1 100644 +--- a/libs/ptr_container/doc/ptr_sequence_adapter.rst ++++ b/libs/ptr_container/doc/ptr_sequence_adapter.rst +@@ -443,7 +443,7 @@ contain any nulls*. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_set.html b/doc/ptr_set.html +index 8e66779f..1a5a37b0 100644 +--- a/libs/ptr_container/doc/ptr_set.html ++++ b/libs/ptr_container/doc/ptr_set.html +@@ -350,7 +350,7 @@

    Class +
  • Using nullable<T> as Key is meaningless and is not allowed
  • + +-

    ++
    + + + +diff --git a/doc/ptr_set.rst b/doc/ptr_set.rst +index 6679a8b2..5fb83d1e 100644 +--- a/libs/ptr_container/doc/ptr_set.rst ++++ b/libs/ptr_container/doc/ptr_set.rst +@@ -72,7 +72,7 @@ to store the pointers. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_set_adapter.html b/doc/ptr_set_adapter.html +index 12820d38..e32501da 100644 +--- a/libs/ptr_container/doc/ptr_set_adapter.html ++++ b/libs/ptr_container/doc/ptr_set_adapter.html +@@ -491,7 +491,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_set_adapter.rst b/doc/ptr_set_adapter.rst +index bb19e148..7b89c184 100644 +--- a/libs/ptr_container/doc/ptr_set_adapter.rst ++++ b/libs/ptr_container/doc/ptr_set_adapter.rst +@@ -136,7 +136,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_vector.html b/doc/ptr_vector.html +index def2a569..150c9a71 100644 +--- a/libs/ptr_container/doc/ptr_vector.html ++++ b/libs/ptr_container/doc/ptr_vector.html +@@ -550,7 +550,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_vector.rst b/doc/ptr_vector.rst +index 374166f2..575a5679 100644 +--- a/libs/ptr_container/doc/ptr_vector.rst ++++ b/libs/ptr_container/doc/ptr_vector.rst +@@ -185,7 +185,7 @@ Semantics: C-array support + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/reference.html b/doc/reference.html +index 1ae18479..653b4324 100644 +--- a/libs/ptr_container/doc/reference.html ++++ b/libs/ptr_container/doc/reference.html +@@ -797,11 +797,11 @@

    BOOST_NO_EXCEPTIONS is defined, then BOOST_PTR_CONTAINER_NO_EXCEPTIONS + is also defined.

    +-

    Navigate:

    ++

    Navigate:

    +
    +-

    ++
    + + + +diff --git a/doc/reference.rst b/doc/reference.rst +index 3dffbc68..0b827e0e 100644 +--- a/libs/ptr_container/doc/reference.rst ++++ b/libs/ptr_container/doc/reference.rst +@@ -486,7 +486,7 @@ is also defined. + + .. raw:: html + +-
    ++
    + + **Navigate:** + +@@ -494,7 +494,7 @@ is also defined. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/reversible_ptr_container.html b/doc/reversible_ptr_container.html +index ede30c57..e45fcde8 100644 +--- a/libs/ptr_container/doc/reversible_ptr_container.html ++++ b/libs/ptr_container/doc/reversible_ptr_container.html +@@ -885,7 +885,7 @@

    Semantics

    + Boost.Serialization +
  • Exception safety: Loading gives the basic guarantee
  • + +-
    ++
    + + + +diff --git a/doc/reversible_ptr_container.rst b/doc/reversible_ptr_container.rst +index 360f7d97..4fb24163 100644 +--- a/libs/ptr_container/doc/reversible_ptr_container.rst ++++ b/libs/ptr_container/doc/reversible_ptr_container.rst +@@ -506,7 +506,7 @@ All containers can be serialized by means of + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/tutorial.html b/doc/tutorial.html +index 7c93b469..05047afd 100644 +--- a/libs/ptr_container/doc/tutorial.html ++++ b/libs/ptr_container/doc/tutorial.html +@@ -773,7 +773,7 @@

    Algorithms

    + BOOST_ASSERT( another_zoo.empty() ); + +

    That is all; now you have learned all the basics!

    +-

    See also

    ++

    See also

    + +-
    ++
    + + + +diff --git a/doc/tutorial.rst b/doc/tutorial.rst +index a7c12e20..8b84364a 100644 +--- a/libs/ptr_container/doc/tutorial.rst ++++ b/libs/ptr_container/doc/tutorial.rst +@@ -440,7 +440,7 @@ That is all; now you have learned all the basics! + + .. raw:: html + +-
    ++
    + + **See also** + +@@ -455,7 +455,7 @@ That is all; now you have learned all the basics! + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/tutorial_example.html b/doc/tutorial_example.html +index 202a17bb..9ebf4a1c 100644 +--- a/libs/ptr_container/doc/tutorial_example.html ++++ b/libs/ptr_container/doc/tutorial_example.html +@@ -1,12 +1,12 @@ + + +- ++ + +- ++ + + + +-
    //
    ++    
    //
    + // Boost.Pointer Container
    + //
    + //  Copyright Thorsten Ottosen 2003-2005. Use, modification and
    +@@ -30,149 +30,149 @@
    + //
    + // First we select which container to use.
    + //
    +-#include <boost/ptr_container/ptr_deque.hpp>
    ++#include <boost/ptr_container/ptr_deque.hpp>
    + 
    +-//
    ++//
    + // we need these later in the example
    + //
    +-#include <boost/assert.hpp>
    +-#include <string>
    +-#include <exception>
    ++#include <boost/assert.hpp>
    ++#include <string>
    ++#include <exception>
    + 
    + 
    +-//
    ++//
    + // Then we define a small polymorphic class
    + // hierarchy.
    + // 
    + 
    +-class animal : boost::noncopyable
    +-{
    +-    virtual std::string do_speak() const = 0;
    +-    std::string name_;
    ++class animal : boost::noncopyable
    ++{
    ++    virtual std::string do_speak() const = 0;
    ++    std::string name_;
    + 
    +-protected:
    +-    //
    ++protected:
    ++    //
    +     // Animals cannot be copied...
    +     //
    +-    animal( const animal& r ) : name_( r.name_ )           { }
    +-    void operator=( const animal& );
    ++    animal( const animal& r ) : name_( r.name_ )           { }
    ++    void operator=( const animal& );
    + 
    +-private:
    +-    //
    ++private:
    ++    //
    +     // ...but due to advances in genetics, we can clone them!
    +     //
    + 
    +-    virtual animal* do_clone() const = 0;
    ++    virtual animal* do_clone() const = 0;
    +         
    +-public:
    +-    animal( const std::string& name ) : name_(name)        { }
    +-    virtual ~animal() throw()                              { }
    ++public:
    ++    animal( const std::string& name ) : name_(name)        { }
    ++    virtual ~animal() throw()                              { }
    +     
    +-    std::string speak() const
    +-    {
    +-        return do_speak();
    +-    }
    +-
    +-    std::string name() const
    +-    {
    +-        return name_;
    +-    }
    +-
    +-    animal* clone() const
    +-    {
    +-        return do_clone();
    +-    }
    +-};
    +-
    +-//
    ++    std::string speak() const
    ++    {
    ++        return do_speak();
    ++    }
    ++
    ++    std::string name() const
    ++    {
    ++        return name_;
    ++    }
    ++
    ++    animal* clone() const
    ++    {
    ++        return do_clone();
    ++    }
    ++};
    ++
    ++//
    + // An animal is still not Clonable. We need this last hook.
    + //
    + // Notice that we pass the animal by const reference
    + // and return by pointer.
    + //
    + 
    +-animal* new_clone( const animal& a )
    +-{
    +-    return a.clone();
    +-}
    ++animal* new_clone( const animal& a )
    ++{
    ++    return a.clone();
    ++}
    + 
    +-//
    ++//
    + // We do not need to define 'delete_clone()' since
    + // since the default is to call the default 'operator delete()'.
    + //
    + 
    +-const std::string muuuh = "Muuuh!";
    +-const std::string oiink = "Oiiink";
    +-
    +-class cow : public animal
    +-{
    +-    virtual std::string do_speak() const
    +-    {
    +-        return muuuh;
    +-    }
    +-
    +-    virtual animal* do_clone() const
    +-    {
    +-        return new cow( *this );
    +-    }
    +-
    +-public:
    +-    cow( const std::string& name ) : animal(name)          { }
    +-};
    +-
    +-class pig : public animal
    +-{
    +-    virtual std::string do_speak() const
    +-    {
    +-        return oiink;
    +-    }
    +-
    +-    virtual animal* do_clone() const
    +-    {
    +-        return new pig( *this );
    +-    }
    ++const std::string muuuh = "Muuuh!";
    ++const std::string oiink = "Oiiink";
    ++
    ++class cow : public animal
    ++{
    ++    virtual std::string do_speak() const
    ++    {
    ++        return muuuh;
    ++    }
    ++
    ++    virtual animal* do_clone() const
    ++    {
    ++        return new cow( *this );
    ++    }
    ++
    ++public:
    ++    cow( const std::string& name ) : animal(name)          { }
    ++};
    ++
    ++class pig : public animal
    ++{
    ++    virtual std::string do_speak() const
    ++    {
    ++        return oiink;
    ++    }
    ++
    ++    virtual animal* do_clone() const
    ++    {
    ++        return new pig( *this );
    ++    }
    +     
    +-public:
    +-    pig( const std::string& name ) : animal(name)          { }
    +-};
    ++public:
    ++    pig( const std::string& name ) : animal(name)          { }
    ++};
    + 
    +-//
    ++//
    + // Then we, of course, need a place to put all
    + // those animals.
    + //
    + 
    +-class farm
    +-{
    +-    //
    ++class farm
    ++{
    ++    //
    +     // This is where the smart containers are handy
    +     //
    +-    typedef boost::ptr_deque<animal> barn_type;
    +-    barn_type                        barn;
    ++    typedef boost::ptr_deque<animal> barn_type;
    ++    barn_type                        barn;
    + 
    +-    //
    ++    //
    +     // A convenience typedef for the compiler-appropriate
    +     // smart pointer used to manage barns
    +     //    
    +-    typedef compatible-smart-ptr<barn_type> raii_ptr;
    ++    typedef compatible-smart-ptr<barn_type> raii_ptr;
    + 
    +-    //
    ++    //
    +     // An error type
    +     //
    +-    struct farm_trouble : public std::exception           { };
    ++    struct farm_trouble : public std::exception           { };
    + 
    +-public:
    +-    // 
    ++public:
    ++    // 
    +     // We would like to make it possible to
    +     // iterate over the animals in the farm
    +     //
    +-    typedef barn_type::iterator  animal_iterator;
    ++    typedef barn_type::iterator  animal_iterator;
    + 
    +-    //
    ++    //
    +     // We also need to count the farm's size...
    +     //
    +-    typedef barn_type::size_type size_type;
    ++    typedef barn_type::size_type size_type;
    +     
    +-    //
    ++    //
    +     // And we also want to transfer an animal
    +     // safely around. The easiest way to think
    +     // about '::auto_type' is to imagine a simplified
    +@@ -184,100 +184,100 @@
    +     //
    +     // but not more.
    +     //
    +-    typedef barn_type::auto_type  animal_transport;
    ++    typedef barn_type::auto_type  animal_transport;
    + 
    +-    // 
    ++    // 
    +     // Create an empty farm.
    +     //
    +-    farm()                                                 { }
    ++    farm()                                                 { }
    +     
    +-    //
    ++    //
    +     // We need a constructor that can make a new
    +     // farm by cloning a range of animals.
    +     //
    +-    farm( animal_iterator begin, animal_iterator end )
    +-     : 
    +-        //
    ++    farm( animal_iterator begin, animal_iterator end )
    ++     : 
    ++        //
    +         // Objects are always cloned before insertion
    +         // unless we explicitly add a pointer or 
    +         // use 'release()'. Therefore we actually
    +         // clone all animals in the range
    +         //
    +-        barn( begin, end )                               { }
    ++        barn( begin, end )                               { }
    +     
    +-    //
    ++    //
    +     // ... so we need some other function too
    +     //
    + 
    +-    animal_iterator begin()
    +-    {
    +-        return barn.begin();
    +-    }
    ++    animal_iterator begin()
    ++    {
    ++        return barn.begin();
    ++    }
    + 
    +-    animal_iterator end()
    +-    {
    +-        return barn.end();
    +-    }
    ++    animal_iterator end()
    ++    {
    ++        return barn.end();
    ++    }
    +     
    +-    //
    ++    //
    +     // Here it is quite ok to have an 'animal*' argument.
    +     // The smart container will handle all ownership
    +     // issues.
    +     //
    +-    void buy_animal( animal* a )
    +-    {
    +-        barn.push_back( a );
    +-    }
    ++    void buy_animal( animal* a )
    ++    {
    ++        barn.push_back( a );
    ++    }
    + 
    +-    //
    ++    //
    +     // The farm can also be in economical trouble and
    +     // therefore be in the need to sell animals.
    +     //
    +-    animal_transport sell_animal( animal_iterator to_sell )
    +-    {
    +-        if( to_sell == end() )
    +-            throw farm_trouble();
    ++    animal_transport sell_animal( animal_iterator to_sell )
    ++    {
    ++        if( to_sell == end() )
    ++            throw farm_trouble();
    + 
    +-        //
    ++        //
    +         // Here we remove the animal from the barn,
    +         // but the animal is not deleted yet...it's
    +         // up to the buyer to decide what
    +         // to do with it.
    +         //
    +-        return barn.release( to_sell );
    +-    }
    ++        return barn.release( to_sell );
    ++    }
    + 
    +-    //
    ++    //
    +     // How big a farm do we have?
    +     //
    +-    size_type size() const
    +-    {
    +-        return barn.size();
    +-    }
    ++    size_type size() const
    ++    {
    ++        return barn.size();
    ++    }
    + 
    +-    //
    ++    //
    +     // If things are bad, we might choose to sell all animals :-(
    +       //
    + 
    +-    raii_ptr sell_farm()
    +-    {
    +-        return barn.release();
    +-    }
    ++    raii_ptr sell_farm()
    ++    {
    ++        return barn.release();
    ++    }
    + 
    +-    //
    ++    //
    +     // However, if things are good, we might buy somebody
    +     // else's farm :-)
    +     //
    + 
    +-    void buy_farm( raii_ptr other )
    +-    {
    +-        //
    ++    void buy_farm( raii_ptr other )
    ++    {
    ++        //
    +         // This line inserts all the animals from 'other'
    +         // and is guaranteed either to succeed or to have no
    +         // effect
    +         //
    +-        barn.transfer( barn.end(), // insert new animals at the end
    +-                         *other );     // we want to transfer all animals,
    ++        barn.transfer( barn.end(), // insert new animals at the end
    ++                         *other );     // we want to transfer all animals,
    +                                        // so we use the whole container as argument
    +         //
    +         // You might think you would have to do
    +@@ -286,86 +286,86 @@
    +         //
    +         // but '*other' is empty and can go out of scope as it wants
    +         //
    +-        BOOST_ASSERT( other->empty() );
    +-    }
    ++        BOOST_ASSERT( other->empty() );
    ++    }
    +     
    +-}; // class 'farm'.
    ++}; // class 'farm'.
    + 
    +-int main()
    +-{
    +-    //
    ++int main()
    ++{
    ++    //
    +     // First we make a farm
    +     //
    +-    farm animal_farm;
    +-    BOOST_ASSERT( animal_farm.size() == 0u );
    ++    farm animal_farm;
    ++    BOOST_ASSERT( animal_farm.size() == 0u );
    +     
    +-    animal_farm.buy_animal( new pig("Betty") );
    +-    animal_farm.buy_animal( new pig("Benny") );
    +-    animal_farm.buy_animal( new pig("Jeltzin") );
    +-    animal_farm.buy_animal( new cow("Hanz") );
    +-    animal_farm.buy_animal( new cow("Mary") );
    +-    animal_farm.buy_animal( new cow("Frederik") );
    +-    BOOST_ASSERT( animal_farm.size() == 6u );
    +-
    +-    //
    ++    animal_farm.buy_animal( new pig("Betty") );
    ++    animal_farm.buy_animal( new pig("Benny") );
    ++    animal_farm.buy_animal( new pig("Jeltzin") );
    ++    animal_farm.buy_animal( new cow("Hanz") );
    ++    animal_farm.buy_animal( new cow("Mary") );
    ++    animal_farm.buy_animal( new cow("Frederik") );
    ++    BOOST_ASSERT( animal_farm.size() == 6u );
    ++
    ++    //
    +     // Then we make another farm...it will actually contain
    +     // a clone of the other farm.
    +     //
    +-    farm new_farm( animal_farm.begin(), animal_farm.end() );
    +-    BOOST_ASSERT( new_farm.size() == 6u );
    ++    farm new_farm( animal_farm.begin(), animal_farm.end() );
    ++    BOOST_ASSERT( new_farm.size() == 6u );
    + 
    +-    //
    ++    //
    +     // Is it really clones in the new farm?
    +     //
    +-    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    ++    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    +     
    +-    //
    ++    //
    +     // Then we search for an animal, Mary (the Crown Princess of Denmark),
    +     // because we would like to buy her ...
    +     //
    +-    typedef farm::animal_iterator iterator;
    +-    iterator to_sell;
    +-    for( iterator i   = animal_farm.begin(),
    +-                  end = animal_farm.end();
    +-         i != end; ++i )
    +-    {
    +-        if( i->name() == "Mary" )
    +-        {
    +-            to_sell = i;
    +-            break;
    +-        }
    +-    }
    +-
    +-    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    +-
    +-
    +-    if( mary->speak() == muuuh )
    +-        //
    ++    typedef farm::animal_iterator iterator;
    ++    iterator to_sell;
    ++    for( iterator i   = animal_farm.begin(),
    ++                  end = animal_farm.end();
    ++         i != end; ++i )
    ++    {
    ++        if( i->name() == "Mary" )
    ++        {
    ++            to_sell = i;
    ++            break;
    ++        }
    ++    }
    ++
    ++    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    ++
    ++
    ++    if( mary->speak() == muuuh )
    ++        //
    +         // Great, Mary is a cow, and she may live longer
    +         //
    +-        new_farm.buy_animal( mary.release() );
    +-    else
    +-        //
    ++        new_farm.buy_animal( mary.release() );
    ++    else
    ++        //
    +         // Then the animal would be destroyed (!)
    +         // when we go out of scope.
    +         //
    +-        ;
    ++        ;
    + 
    +-    //
    ++    //
    +     // Now we can observe some changes to the two farms...
    +     //
    +-    BOOST_ASSERT( animal_farm.size() == 5u );
    +-    BOOST_ASSERT( new_farm.size()    == 7u );
    ++    BOOST_ASSERT( animal_farm.size() == 5u );
    ++    BOOST_ASSERT( new_farm.size()    == 7u );
    + 
    +-    //
    ++    //
    +     // The new farm has however underestimated how much
    +     // it cost to feed Mary and its owner is forced to sell the farm...
    +     //
    +-    animal_farm.buy_farm( new_farm.sell_farm() );
    ++    animal_farm.buy_farm( new_farm.sell_farm() );
    + 
    +-    BOOST_ASSERT( new_farm.size()    == 0u );
    +-    BOOST_ASSERT( animal_farm.size() == 12u );     
    +-}
    ++    BOOST_ASSERT( new_farm.size()    == 0u );
    ++    BOOST_ASSERT( animal_farm.size() == 12u );     
    ++}
    + 
    + + diff --git a/boost.spec b/boost.spec index 18744b5..243da2f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 9%{?dist} +Release: 10%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -170,6 +170,9 @@ Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch # https://github.com/boostorg/interval/issues/29 Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +# https://github.com/boostorg/ptr_container/pull/27 +Patch105: boost-1.76.0-ptr_cont-xml.patch + %bcond_with tests %bcond_with docs_generated @@ -696,6 +699,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch102 -p1 %patch103 -p2 %patch104 -p2 +%patch105 -p1 %build %set_build_flags @@ -1297,6 +1301,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Mar 31 2022 Jonathan Wakely - 1.76.0-10 +- Add patch to fix XML validation errors in ptr_container docs + * Wed Feb 2 2022 Thomas Rodgers - 1.76.0-9 - Add patch to fix narrowing conversions on ppc64le https://github.com/boostorg/interval/issues/29 From 3bd0a83d5256fdc1c30f8e4ea7a0229fd145bf38 Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Tue, 26 Apr 2022 20:53:21 -0700 Subject: [PATCH 26/86] Add BuildRequires: libstd-devel to fix (#2042336) --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 243da2f..9fe4211 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 10%{?dist} +Release: 11%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -123,6 +123,7 @@ BuildRequires: libicu-devel BuildRequires: libquadmath-devel %endif BuildRequires: bison +BuildRequires: libzstd-devel # https://bugzilla.redhat.com/show_bug.cgi?id=828856 # https://bugzilla.redhat.com/show_bug.cgi?id=828857 @@ -1301,6 +1302,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 +- Add BuildRequires: libstd-devel to fix (#2042336) + * Thu Mar 31 2022 Jonathan Wakely - 1.76.0-10 - Add patch to fix XML validation errors in ptr_container docs From 83163cb5f79721a3e37d3e36f7962fdede51afc7 Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Wed, 27 Apr 2022 07:39:23 -0700 Subject: [PATCH 27/86] Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Miro Hrončok Fix enum_type_object type on Python 3.11 See https://github.com/boostorg/python/pull/385#event-6498973175 Fix previous changelog copy-pasta --- boost.spec | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 9fe4211..35434f0 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 11%{?dist} +Release: 12%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -174,6 +174,9 @@ Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/ptr_container/pull/27 Patch105: boost-1.76.0-ptr_cont-xml.patch +# https://github.com/boostorg/python/pull/385 +Patch106: boost-1.76.0-enum_type_object-type-python-3.11.patch + %bcond_with tests %bcond_with docs_generated @@ -701,6 +704,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch103 -p2 %patch104 -p2 %patch105 -p1 +%patch106 -p1 %build %set_build_flags @@ -1302,7 +1306,13 @@ fi %{_mandir}/man1/b2.1* %changelog -* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 +* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-12 +- Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) + Miro Hrončok - Fix enum_type_object type on Python 3.11 + See https://github.com/boostorg/python/pull/385#event-6498973175 +- Fix previous changelog copy-pasta + +* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 - Add BuildRequires: libstd-devel to fix (#2042336) * Thu Mar 31 2022 Jonathan Wakely - 1.76.0-10 From efa25cfd8109c514840be613cbd7b9b4c602a01d Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Wed, 27 Apr 2022 07:44:11 -0700 Subject: [PATCH 28/86] And this time with the boost-1.76.0-enum_type_object-type-python-3.11.patch --- ....0-enum_type_object-type-python-3.11.patch | 35 +++++++++++++++++++ boost.spec | 5 ++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-enum_type_object-type-python-3.11.patch diff --git a/boost-1.76.0-enum_type_object-type-python-3.11.patch b/boost-1.76.0-enum_type_object-type-python-3.11.patch new file mode 100644 index 0000000..5b77498 --- /dev/null +++ b/boost-1.76.0-enum_type_object-type-python-3.11.patch @@ -0,0 +1,35 @@ +From ae5da2a7e8f1111757d8a474095486a5b22aa12d Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Mon, 25 Apr 2022 10:51:46 +0200 +Subject: [PATCH] Fix enum_type_object type on Python 3.11 + +The enum_type_object type inherits from PyLong_Type which is not tracked +by the GC. Instances doesn't have to be tracked by the GC: remove the +Py_TPFLAGS_HAVE_GC flag. + +The Python C API documentation says: + + "To create a container type, the tp_flags field of the type object + must include the Py_TPFLAGS_HAVE_GC and provide an implementation of + the tp_traverse handler." + +https://docs.python.org/dev/c-api/gcsupport.html + +The new exception was introduced in Python 3.11 by: +https://github.com/python/cpython/issues/88429 +--- + libs/python/src/object/enum.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libs/python/src/object/enum.cpp b/libs/python/src/object/enum.cpp +index 293e705899..5753b32e07 100644 +--- a/libs/python/src/object/enum.cpp ++++ b/libs/python/src/object/enum.cpp +@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = { + #if PY_VERSION_HEX < 0x03000000 + | Py_TPFLAGS_CHECKTYPES + #endif +- | Py_TPFLAGS_HAVE_GC + | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ diff --git a/boost.spec b/boost.spec index 35434f0..3ba31d7 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 12%{?dist} +Release: 13%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1306,6 +1306,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Apr 27 2022 Thomas Rodgers - 1.76.0-12 +- And this time with the boost-1.76.0-enum_type_object-type-python-3.11.patch + * Tue Apr 26 2022 Thomas Rodgers - 1.76.0-12 - Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) Miro Hrončok - Fix enum_type_object type on Python 3.11 From 9c645e2838c5e88e8b4130bd98f81a2fe5fbd40a Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 27 Apr 2022 18:13:43 +0100 Subject: [PATCH 29/86] Tidy up %changelog --- boost.spec | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/boost.spec b/boost.spec index 3ba31d7..72ab47d 100644 --- a/boost.spec +++ b/boost.spec @@ -1306,17 +1306,14 @@ fi %{_mandir}/man1/b2.1* %changelog -* Wed Apr 27 2022 Thomas Rodgers - 1.76.0-12 -- And this time with the boost-1.76.0-enum_type_object-type-python-3.11.patch +* Wed Apr 27 2022 Thomas Rodgers - 1.76.0-13 +- Add missing boost-1.76.0-enum_type_object-type-python-3.11.patch file * Tue Apr 26 2022 Thomas Rodgers - 1.76.0-12 - Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) - Miro Hrončok - Fix enum_type_object type on Python 3.11 - See https://github.com/boostorg/python/pull/385#event-6498973175 -- Fix previous changelog copy-pasta * Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 -- Add BuildRequires: libstd-devel to fix (#2042336) +- Add BuildRequires: libzstd-devel to fix (#2042336) * Thu Mar 31 2022 Jonathan Wakely - 1.76.0-10 - Add patch to fix XML validation errors in ptr_container docs From 582765308348e8ddbca9516f9fe24a4ade1c8ce1 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Fri, 29 Apr 2022 13:37:45 -0700 Subject: [PATCH 30/86] Rebase to 1.78.0 See https://fedoraproject.org/wiki/Changes/F37Boost178 Drop patches: deleted: boost-1.75.0-build-optflags.patch deleted: boost-1.75.0-no-rpath.patch deleted: boost-1.76.0-b2-build-flags.patch deleted: boost-1.76.0-fix-include-inside-boost-namespace.patch deleted: boost-1.76.0-fix-duplicate-typedef-in-mp.patch Fix silent dropping of some libraries See https://github.com/bfgroup/b2/pull/113 --- boost-1.76.0-b2-build-flags.patch | 25 ------- ...t-1.76.0-fix-duplicate-typedef-in-mp.patch | 27 ------- ...0-fix-include-inside-boost-namespace.patch | 33 --------- boost-1.78.0-b2-build-flags.patch | 25 +++++++ ...patch => boost-1.78.0-build-optflags.patch | 28 +++++--- boost-1.78.0-fix-b2-staging.patch | 72 +++++++++++++++++++ ...rpath.patch => boost-1.78.0-no-rpath.patch | 26 ++++--- boost.spec | 55 +++++++------- sources | 2 +- 9 files changed, 162 insertions(+), 131 deletions(-) delete mode 100644 boost-1.76.0-b2-build-flags.patch delete mode 100644 boost-1.76.0-fix-duplicate-typedef-in-mp.patch delete mode 100644 boost-1.76.0-fix-include-inside-boost-namespace.patch create mode 100644 boost-1.78.0-b2-build-flags.patch rename boost-1.75.0-build-optflags.patch => boost-1.78.0-build-optflags.patch (65%) create mode 100644 boost-1.78.0-fix-b2-staging.patch rename boost-1.75.0-no-rpath.patch => boost-1.78.0-no-rpath.patch (65%) diff --git a/boost-1.76.0-b2-build-flags.patch b/boost-1.76.0-b2-build-flags.patch deleted file mode 100644 index 3422b5d..0000000 --- a/boost-1.76.0-b2-build-flags.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5dde5a5a3c12dd8f52cb61ba220ec221ecfa98f0 Mon Sep 17 00:00:00 2001 -From: Thomas Rodgers -Date: Thu, 29 Jul 2021 10:15:37 -0700 -Subject: [PATCH] Use options from RPM for release builds with GCC - ---- - tools/build/src/engine/build.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh -index 58f41cb4a..f85040f99 100755 ---- a/tools/build/src/engine/build.sh -+++ b/tools/build/src/engine/build.sh -@@ -325,7 +325,7 @@ case "${B2_TOOLSET}" in - B2_CXX="${B2_CXX} -pthread" - ;; - esac -- B2_CXXFLAGS_RELEASE="-O2 -s" -+ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" - B2_CXXFLAGS_DEBUG="-O0 -g" - ;; - --- -2.31.1 - diff --git a/boost-1.76.0-fix-duplicate-typedef-in-mp.patch b/boost-1.76.0-fix-duplicate-typedef-in-mp.patch deleted file mode 100644 index a6c3c7d..0000000 --- a/boost-1.76.0-fix-duplicate-typedef-in-mp.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 62fcbde69aae70af24a51cb6582a2a95f65441c2 Mon Sep 17 00:00:00 2001 -From: Thomas Rodgers -Date: Wed, 4 Aug 2021 13:22:35 -0700 -Subject: [PATCH] Fix duplicate typedef in mp.hpp [#671] - -https://github.com/boostorg/math/pull/671 ---- - boost/math/tools/mp.hpp | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp -index dc8440988..3100a0bb6 100644 ---- a/boost/math/tools/mp.hpp -+++ b/boost/math/tools/mp.hpp -@@ -426,9 +426,6 @@ struct make_integer_sequence_impl - template - using make_integer_sequence = typename detail::make_integer_sequence_impl::type; - --template --using index_sequence = integer_sequence; -- - template - using make_index_sequence = make_integer_sequence; - --- -2.31.1 - diff --git a/boost-1.76.0-fix-include-inside-boost-namespace.patch b/boost-1.76.0-fix-include-inside-boost-namespace.patch deleted file mode 100644 index 0fd8f05..0000000 --- a/boost-1.76.0-fix-include-inside-boost-namespace.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f6818a161d3f835d246aceea0804243c887ac10b Mon Sep 17 00:00:00 2001 -From: Thomas Rodgers -Date: Wed, 4 Aug 2021 13:09:57 -0700 -Subject: [PATCH] Fix include inside boost namespace [#670] - -https://github.com/boostorg/math/pull/670/commits/1ec5c98d80de97f9e962c5627e1a0e6096099894 ---- - boost/math/tools/mp.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp -index 35565646f..dc8440988 100644 ---- a/boost/math/tools/mp.hpp -+++ b/boost/math/tools/mp.hpp -@@ -13,6 +13,7 @@ - - #include - #include -+#include - - namespace boost { namespace math { namespace tools { namespace meta_programming { - -@@ -338,7 +339,6 @@ using mp_remove_if_q = mp_remove_if; - // Index sequence - // Use C++14 index sequence if available - #if defined(__cpp_lib_integer_sequence) && (__cpp_lib_integer_sequence >= 201304) --#include - template - using index_sequence = std::index_sequence; - --- -2.31.1 - diff --git a/boost-1.78.0-b2-build-flags.patch b/boost-1.78.0-b2-build-flags.patch new file mode 100644 index 0000000..512f109 --- /dev/null +++ b/boost-1.78.0-b2-build-flags.patch @@ -0,0 +1,25 @@ +From 1ded9b9c219542442b3c10af815e5413a2a89c75 Mon Sep 17 00:00:00 2001 +From: Thomas W Rodgers +Date: Tue, 1 Mar 2022 10:03:34 -0800 +Subject: [PATCH] Adjust b2 build flags for Fedora Packaging + +--- + src/engine/build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index f1ad08cb..ab58deba 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -323,7 +323,7 @@ case "${B2_TOOLSET}" in + + gcc|gcc-*) + CXX_VERSION_OPT=${CXX_VERSION_OPT:---version} +- B2_CXXFLAGS_RELEASE="-O2 -s" ++ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" + B2_CXXFLAGS_DEBUG="-O0 -g" + ;; + +-- +2.35.1 + diff --git a/boost-1.75.0-build-optflags.patch b/boost-1.78.0-build-optflags.patch similarity index 65% rename from boost-1.75.0-build-optflags.patch rename to boost-1.78.0-build-optflags.patch index d9c6dd4..47578a6 100644 --- a/boost-1.75.0-build-optflags.patch +++ b/boost-1.78.0-build-optflags.patch @@ -1,26 +1,34 @@ +From 739edb2889cb63c281a3597e712988a40bc82829 Mon Sep 17 00:00:00 2001 +From: Thomas W Rodgers +Date: Mon, 28 Feb 2022 20:55:14 -0800 +Subject: [PATCH 1/3] Adjust options for Fedora package build + +--- + src/tools/gcc.jam | 31 ++++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index ff3209f7b..1d8e7cbfe 100644 +index 47a11322..543cfd84 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -577,7 +577,7 @@ rule compile.fortran ( targets * : sources * : properties * ) +@@ -510,7 +510,7 @@ rule compile.fortran ( targets * : sources * : properties * ) actions compile.c++ bind PCH_FILE { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" } actions compile.c bind PCH_FILE -@@ -587,7 +587,7 @@ actions compile.c bind PCH_FILE - +@@ -521,6 +521,7 @@ actions compile.c bind PCH_FILE actions compile.c++.preprocess bind PCH_FILE { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" + "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" +++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" } actions compile.c.preprocess bind PCH_FILE -@@ -704,20 +704,20 @@ actions compile.c.pch +@@ -623,20 +624,20 @@ actions compile.c.pch ### # Declare flags and action for compilation. @@ -56,5 +64,5 @@ index ff3209f7b..1d8e7cbfe 100644 toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; -- -2.26.2 +2.35.1 diff --git a/boost-1.78.0-fix-b2-staging.patch b/boost-1.78.0-fix-b2-staging.patch new file mode 100644 index 0000000..fa0e212 --- /dev/null +++ b/boost-1.78.0-fix-b2-staging.patch @@ -0,0 +1,72 @@ +From 78fd284a42caabe8815cb0870b46e5567872e75b Mon Sep 17 00:00:00 2001 +From: Dmitry +Date: Sat, 11 Dec 2021 16:58:23 +0300 +Subject: [PATCH] Don't skip install targets if there's no in ureqs + (#113) + +--- + src/tools/stage.jam | 4 ++++ + test/install_build_no.py | 26 ++++++++++++++++++++++++++ + test/test_all.py | 1 + + 3 files changed, 31 insertions(+) + create mode 100755 test/install_build_no.py + +diff --git a/tools/build/src/tools/stage.jam b/tools/build/src/tools/stage.jam +index c5f02e3ba4..325129dc81 100644 +--- a/tools/build/src/tools/stage.jam ++++ b/tools/build/src/tools/stage.jam +@@ -478,6 +478,10 @@ class install-target-class : basic-target + return [ sequence.unique $(result2) ] ; + } + ++ rule skip-from-usage-requirements ( ) ++ { ++ } ++ + # Returns true iff 'type' is subtype of some element of 'types-to-include'. + # + local rule include-type ( type : types-to-include * ) +diff --git a/tools/build/test/install_build_no.py b/tools/build/test/install_build_no.py +new file mode 100755 +index 0000000000..0ccf3c5cc6 +--- /dev/null ++++ b/tools/build/test/install_build_no.py +@@ -0,0 +1,26 @@ ++#!/usr/bin/python ++ ++# Copyright 2021 Dmitry Arkhipov (grisumbras@gmail.com) ++# Distributed under the Boost Software License, Version 1.0. ++# (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt) ++ ++# Check that no in usage-requirements of dependencies does not affect ++# install rule, i.e. a skipped installed target does not affect insallation of ++# other targets. ++ ++import BoostBuild ++ ++t = BoostBuild.Tester() ++ ++t.write("a.cpp", "int main() {}\n") ++ ++t.write("jamroot.jam", """ ++make x : : maker : no ; ++exe a : a.cpp ; ++install install : x a ; ++""") ++ ++t.run_build_system() ++t.expect_addition("install/a.exe") ++ ++t.cleanup() +diff --git a/tools/build/test/test_all.py b/tools/build/test/test_all.py +index b7ef5ad701..9ed729d017 100644 +--- a/tools/build/test/test_all.py ++++ b/tools/build/test/test_all.py +@@ -250,6 +250,7 @@ def reorder_tests(tests, first_test): + "inherit_toolset", + "inherited_dependency", + "inline", ++ "install_build_no", + "libjpeg", + "liblzma", + "libpng", diff --git a/boost-1.75.0-no-rpath.patch b/boost-1.78.0-no-rpath.patch similarity index 65% rename from boost-1.75.0-no-rpath.patch rename to boost-1.78.0-no-rpath.patch index a025241..f5c6c47 100644 --- a/boost-1.75.0-no-rpath.patch +++ b/boost-1.78.0-no-rpath.patch @@ -1,20 +1,23 @@ +From 25e4220a4564a3f8ec22607fcdbee90c81f040d6 Mon Sep 17 00:00:00 2001 +From: Thomas W Rodgers +Date: Mon, 28 Feb 2022 21:24:07 -0800 +Subject: [PATCH 2/3] Adjust options to remove RPATH for Fedora package builds + +--- + src/tools/gcc.jam | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index 02dc154cf..c076f70f4 100644 +index 543cfd84..fd213ccb 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -1132,17 +1132,17 @@ actions link.mingw bind LIBRARIES - - actions link.dll.mingw bind LIBRARIES - { -- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS) -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[0])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS) - } +@@ -1045,12 +1045,11 @@ actions link.dll.mingw bind LIBRARIES actions link bind LIBRARIES { - "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) - } +-} ++ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)} actions link.dll bind LIBRARIES { @@ -23,3 +26,6 @@ index 02dc154cf..c076f70f4 100644 } ### +-- +2.35.1 + diff --git a/boost.spec b/boost.spec index 72ab47d..3e60d65 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.76.0 -Release: 13%{?dist} +Version: 1.78.0 +Release: 0%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,6 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org +# https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: @@ -134,10 +135,10 @@ Patch15: boost-1.58.0-pool.patch Patch51: boost-1.58.0-pool-test_linking.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch96: boost-1.75.0-build-optflags.patch +Patch105: boost-1.78.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch97: boost-1.75.0-no-rpath.patch +Patch106: boost-1.78.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch88: boost-1.73.0-cmakedir.patch @@ -146,18 +147,8 @@ Patch88: boost-1.73.0-cmakedir.patch # https://github.com/boostorg/locale/issues/52 Patch94: boost-1.73-locale-empty-vector.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1958382 -# https://github.com/boostorg/graph/pull/218 -Patch98: boost-1.75.0-remove-deprecated-boost-iterator.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch99: boost-1.76.0-b2-build-flags.patch - -# https://github.com/boostorg/math/pull/670 -Patch100: boost-1.76.0-fix-include-inside-boost-namespace.patch - -# https://github.com/boostorg/math/pull/671 -Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch +Patch107: boost-1.78.0-b2-build-flags.patch # https://github.com/boostorg/random/issues/82 Patch102: boost-1.76.0-random-test.patch @@ -172,10 +163,14 @@ Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/ptr_container/pull/27 -Patch105: boost-1.76.0-ptr_cont-xml.patch +Patch108: boost-1.76.0-ptr_cont-xml.patch + +# Fixes missing libboost_fiber.so +# https://github.com/boostorg/boost/issues/632 +Patch109: boost-1.78.0-fix-b2-staging.patch # https://github.com/boostorg/python/pull/385 -Patch106: boost-1.76.0-enum_type_object-type-python-3.11.patch +Patch110: boost-1.76.0-enum_type_object-type-python-3.11.patch %bcond_with tests %bcond_with docs_generated @@ -692,19 +687,17 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch15 -p0 %patch51 -p1 -%patch96 -p1 -%patch97 -p1 -%patch99 -p1 +%patch105 -p1 +%patch106 -p1 +%patch107 -p1 %patch88 -p1 %patch94 -p1 -%patch98 -p1 -%patch100 -p1 -%patch101 -p1 %patch102 -p1 %patch103 -p2 %patch104 -p2 -%patch105 -p1 -%patch106 -p1 +%patch108 -p1 +%patch109 -p1 +%patch110 -p1 %build %set_build_flags @@ -1306,6 +1299,18 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Apr 29 2022 Thomas Rodgers - 1.78.0-0 +- Rebase to 1.78.0 + See https://fedoraproject.org/wiki/Changes/F37Boost178 +- Drop patches: + deleted: boost-1.75.0-build-optflags.patch + deleted: boost-1.75.0-no-rpath.patch + deleted: boost-1.76.0-b2-build-flags.patch + deleted: boost-1.76.0-fix-include-inside-boost-namespace.patch + deleted: boost-1.76.0-fix-duplicate-typedef-in-mp.patch +- Fix silent dropping of some libraries + See https://github.com/bfgroup/b2/pull/113 + * Wed Apr 27 2022 Thomas Rodgers - 1.76.0-13 - Add missing boost-1.76.0-enum_type_object-type-python-3.11.patch file diff --git a/sources b/sources index ced7dc7..84ff6c3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_76_0.tar.bz2) = 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429 +SHA512 (boost_1_78_0.tar.bz2) = 9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf From 36115b3780b25c24da042bfb368a87e96d7bc26d Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 13 Jun 2022 18:55:42 +0200 Subject: [PATCH 31/86] Rebuilt for Python 3.11 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 3e60d65..fc3837a 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 0%{?dist} +Release: 1%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1299,6 +1299,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Jun 13 2022 Python Maint - 1.78.0-1 +- Rebuilt for Python 3.11 + * Fri Apr 29 2022 Thomas Rodgers - 1.78.0-0 - Rebase to 1.78.0 See https://fedoraproject.org/wiki/Changes/F37Boost178 From 19a004c283d3d087e7cafc37d4ed36e381f389de Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Fri, 10 Jun 2022 16:10:42 +0200 Subject: [PATCH 32/86] Re-add CMake file Fixes rhbz#1898979 --- boost.spec | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/boost.spec b/boost.spec index fc3837a..8d5a639 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -842,9 +842,6 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* -# Remove cmake files (some of these are duplicates of the generic bits anyway). -rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake - %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -871,9 +868,6 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* -# Remove cmake files (some of these are duplicates of the generic bits anyway). -rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake - %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -899,9 +893,6 @@ echo ============================= install serial ================== rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ -# Remove cmake files until we know somebody wants them. -rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake - echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install @@ -1164,6 +1155,7 @@ fi %files devel %license LICENSE_1_0.txt %{_includedir}/%{name} +%{_libdir}/cmake %{_libdir}/libboost_atomic.so %{_libdir}/libboost_chrono.so %{_libdir}/libboost_container.so @@ -1231,6 +1223,7 @@ fi %files openmpi-devel %license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/cmake %{_libdir}/openmpi/lib/libboost_mpi.so %{_libdir}/openmpi/lib/libboost_graph_parallel.so @@ -1262,6 +1255,7 @@ fi %files mpich-devel %license LICENSE_1_0.txt +%{_libdir}/mpich/lib/cmake %{_libdir}/mpich/lib/libboost_mpi.so %{_libdir}/mpich/lib/libboost_graph_parallel.so @@ -1299,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 14 2022 Laurent Rineau - 1.78.0-2 +- Re-add the CMake config file provided by Boost + * Mon Jun 13 2022 Python Maint - 1.78.0-1 - Rebuilt for Python 3.11 From 12bd4872acfcafe9328d19882652f7a8ebd1bdd7 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 14 Jun 2022 17:28:28 +0200 Subject: [PATCH 33/86] Rebuilt for Python 3.11 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 8d5a639..fc4e83a 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 14 2022 Python Maint - 1.78.0-3 +- Rebuilt for Python 3.11 + * Tue Jun 14 2022 Laurent Rineau - 1.78.0-2 - Re-add the CMake config file provided by Boost From b96dcf38c8f469b41edcc3e6f72ecb059cc171e3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 21 Jun 2022 21:18:29 +0100 Subject: [PATCH 34/86] Remove old Obsoletes tags --- boost.spec | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/boost.spec b/boost.spec index fc4e83a..602c9c4 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -329,8 +329,6 @@ portion of Boost.TR1. %package nowide Summary: Standard library functions with UTF-8 API on Windows -# Added for F33, remove for F35: -Obsoletes: boost-nowide <= 0.20190814 %description nowide @@ -476,15 +474,7 @@ Requires: libquadmath-devel%{?_isa} %if %{with python3} # Require boost-numpy3 here, because main boost metapackage only Recommends: it Requires: %{name}-numpy3%{?_isa} = %{version}-%{release} -# Added for F33, remove for F35: -Obsoletes: %{name}-python3-devel < 1.69.0-20 -Provides: %{name}-python3-devel = %{version}-%{release} -Provides: %{name}-python3-devel%{?_isa} = %{version}-%{release} %endif -# Added for F33, remove for F35: -Obsoletes: boost-nowide-devel <= 0.20190814 -Provides: boost-nowide-devel = %{version} -Provides: boost-nowide-devel%{?_isa} = %{version} %description devel Headers and shared object symbolic links for the Boost C++ libraries. @@ -671,10 +661,6 @@ Tools for working with Boost documentation in BoostBook or QuickBook format. %package b2 Summary: A low-level build tool -# Added for F33, remove for F35: -Obsoletes: boost-jam < 1.73.0 -Provides: boost-jam = %{version} -Provides: boost-jam%{?_isa} = %{version} %description b2 B2 (formerly Boost.Jam) is the low-level build engine tool for Boost.Build. @@ -1293,6 +1279,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 21 2022 Jonathan Wakely - 1.78.0-4 +- Remove old Obsoletes tags + * Tue Jun 14 2022 Python Maint - 1.78.0-3 - Rebuilt for Python 3.11 From 2888982c2808dbde3756c1044c37bf1059656051 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Thu, 23 Jun 2022 11:30:01 +0100 Subject: [PATCH 35/86] Fix the CMake config file for openmpi and mpich --- boost.spec | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 602c9c4..afc01ed 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -824,9 +824,14 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/ %endif +# Using 'b2 stage' does not fix the paths in these files, so do it manually +sed -i -e 's|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/.*"|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../../../include"|' ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/*/*-config.cmake + # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* +rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_{python,{w,}serialization}* +rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_numpy* %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH @@ -850,9 +855,14 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/ %endif +# Using 'b2 stage' does not fix the paths in these files, so do it manually +sed -i -e 's|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/.*"|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../../../include"|' ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/*/*-config.cmake + # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* +rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_{python,{w,}serialization}* +rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_numpy* %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH @@ -1279,6 +1289,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jun 22 2022 Laurent Rineau - 1.78.0-5 +- Fix the CMake config file for openmpi and mpich + * Tue Jun 21 2022 Jonathan Wakely - 1.78.0-4 - Remove old Obsoletes tags From 6585f3fb6e5e46a9d295d494726e3a6e777a00aa Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 24 Jun 2022 10:41:39 +0100 Subject: [PATCH 36/86] Restore Provides for boost-python3-devel (#2100748) This doesn't restore the Provides: boost-nowide-devel as that is only used in one package, which is already changing. The Provides: boost-jam isn't needed either. --- boost.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index afc01ed..da8514a 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -474,6 +474,9 @@ Requires: libquadmath-devel%{?_isa} %if %{with python3} # Require boost-numpy3 here, because main boost metapackage only Recommends: it Requires: %{name}-numpy3%{?_isa} = %{version}-%{release} +# Old Provides: for compatibility with packages that still require it. +Provides: %{name}-python3-devel = %{version}-%{release} +Provides: %{name}-python3-devel%{?_isa} = %{version}-%{release} %endif %description devel @@ -1289,6 +1292,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Jun 24 2022 Jonathan Wakely - 1.78.0-6 +- Restore Provides for boost-python3-devel (#2100748) + * Wed Jun 22 2022 Laurent Rineau - 1.78.0-5 - Fix the CMake config file for openmpi and mpich From af99b5250178d9b922db1774ae69c155a738c46c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 14 Jul 2022 13:35:31 +0100 Subject: [PATCH 37/86] Add boost-json to umbrella package --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index da8514a..79b56ad 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -86,6 +86,7 @@ Requires: %{name}-fiber%{?_isa} = %{version}-%{release} Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} Requires: %{name}-graph%{?_isa} = %{version}-%{release} Requires: %{name}-iostreams%{?_isa} = %{version}-%{release} +Requires: %{name}-json%{?_isa} = %{version}-%{release} Requires: %{name}-locale%{?_isa} = %{version}-%{release} Requires: %{name}-log%{?_isa} = %{version}-%{release} Requires: %{name}-math%{?_isa} = %{version}-%{release} @@ -1292,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jul 14 2022 Jonathan Wakely - 1.78.0-7 +- Add boost-json to umbrella package + * Fri Jun 24 2022 Jonathan Wakely - 1.78.0-6 - Restore Provides for boost-python3-devel (#2100748) From bea3cff9aebdc4f45da1f8f883df092d60b9eeba Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 22:11:12 +0000 Subject: [PATCH 38/86] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 79b56ad..5d989a1 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 1.78.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Thu Jul 14 2022 Jonathan Wakely - 1.78.0-7 - Add boost-json to umbrella package From e938c8d9b3d81414f313826113169222ed6159ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Mon, 1 Aug 2022 15:02:21 +0200 Subject: [PATCH 39/86] Rebuilt for ICU 71.1 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 5d989a1..d545fe8 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Aug 01 2022 Frantisek Zatloukal - 1.78.0-9 +- Rebuilt for ICU 71.1 + * Wed Jul 20 2022 Fedora Release Engineering - 1.78.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 1c4335a6e00e2020baaa1af4d4c032fcc31e87d7 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 14 Dec 2022 17:47:54 +0000 Subject: [PATCH 40/86] Use xargs --no-run-if-empty to avoid error Recent Boost releases seem to have no executable headers, so the find command returns no results. --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index d545fe8..e4287d8 100644 --- a/boost.spec +++ b/boost.spec @@ -673,7 +673,7 @@ a number of significant features and is now developed independently. %prep %setup -q -n %{toplev_dirname} -find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x +find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x %patch15 -p0 %patch51 -p1 From 8576ab076fdb98d3208f9ad17b28778b0443b538 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Sat, 31 Dec 2022 02:19:50 +0000 Subject: [PATCH 41/86] Rebuild for ICU 72 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index e4287d8..73cf5e2 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 9%{?dist} +Release: 10%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat Dec 31 2022 Pete Walter - 1.78.0-10 +- Rebuild for ICU 72 + * Mon Aug 01 2022 Frantisek Zatloukal - 1.78.0-9 - Rebuilt for ICU 71.1 From 571ebc8df11139da25447f39af305b647c3fec8b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 23:05:04 +0000 Subject: [PATCH 42/86] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 73cf5e2..151e133 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 10%{?dist} +Release: 11%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jan 18 2023 Fedora Release Engineering - 1.78.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Sat Dec 31 2022 Pete Walter - 1.78.0-10 - Rebuild for ICU 72 From 3420df724444633aee5b0cc5dd9f02add05066b9 Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Thu, 12 Jan 2023 18:48:17 -0800 Subject: [PATCH 43/86] Rebase to 1.81.0 See https://fedoraproject.org/wiki/Changes/F38Boost181 Drop patches: deleted: boost-1.58.0-pool.patch deleted: boost-1.58.0-pool-test_linking.patch deleted: boost-1.78.0-build-optflags.patch deleted: boost-1.73-locale-empty-vector.patch deleted: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch deleted: boost-1.76.0-ptr_cont-xml.patch deleted: boost-1.78.0-fix-b2-staging.patch deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch - New Boost.URL runtime component - boost_build directory is now b2 in upstream, renamte to boost_build on install --- boost-1.58.0-pool-test_linking.patch | 30 - boost-1.58.0-pool.patch | 120 -- boost-1.73-locale-empty-vector.patch | 37 - ....0-enum_type_object-type-python-3.11.patch | 35 - boost-1.76.0-ptr_cont-xml.patch | 1263 ----------------- ...patch => boost-1.81.0-build-optflags.patch | 55 +- boost.spec | 83 +- sources | 2 +- 8 files changed, 72 insertions(+), 1553 deletions(-) delete mode 100644 boost-1.58.0-pool-test_linking.patch delete mode 100644 boost-1.58.0-pool.patch delete mode 100644 boost-1.73-locale-empty-vector.patch delete mode 100644 boost-1.76.0-enum_type_object-type-python-3.11.patch delete mode 100644 boost-1.76.0-ptr_cont-xml.patch rename boost-1.78.0-build-optflags.patch => boost-1.81.0-build-optflags.patch (51%) diff --git a/boost-1.58.0-pool-test_linking.patch b/boost-1.58.0-pool-test_linking.patch deleted file mode 100644 index b57e6d0..0000000 --- a/boost-1.58.0-pool-test_linking.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- boost_1_68_0/libs/pool/test/Jamfile.v2.orig 2018-08-01 20:50:52.000000000 +0000 -+++ boost_1_68_0/libs/pool/test/Jamfile.v2 2018-12-01 17:29:33.322195409 +0000 -@@ -22,18 +22,18 @@ - import testing ; - - test-suite pool : -- [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 ] -- [ run test_pool_alloc.cpp ] -- [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 ] -- [ run test_msvc_mem_leak_detect.cpp ] -- [ run test_bug_3349.cpp ] -- [ run test_bug_4960.cpp ] -+ [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 /boost/system//boost_system ] -+ [ run test_pool_alloc.cpp : : : /boost/system//boost_system ] -+ [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 /boost/system//boost_system ] -+ [ run test_msvc_mem_leak_detect.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_3349.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_4960.cpp : : : /boost/system//boost_system ] - [ run test_bug_1252.cpp : : : - clang:-Wno-c++11-long-long - gcc:-Wno-long-long -- pathscale:-Wno-long-long ] -- [ run test_bug_2696.cpp ] -- [ run test_bug_5526.cpp ] -+ pathscale:-Wno-long-long /boost/system//boost_system ] -+ [ run test_bug_2696.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_5526.cpp : : : /boost/system//boost_system ] - [ run test_threading.cpp : : : multi /boost/thread//boost_thread ] - [ compile test_poisoned_macros.cpp ] - ; diff --git a/boost-1.58.0-pool.patch b/boost-1.58.0-pool.patch deleted file mode 100644 index ed8449e..0000000 --- a/boost-1.58.0-pool.patch +++ /dev/null @@ -1,120 +0,0 @@ -Index: boost/pool/pool.hpp -=================================================================== ---- boost/pool/pool.hpp (revision 78317) -+++ boost/pool/pool.hpp (revision 78326) -@@ -27,4 +27,6 @@ - #include - -+// std::numeric_limits -+#include - // boost::integer::static_lcm - #include -@@ -358,4 +360,11 @@ - } - -+ size_type max_chunks() const -+ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool. -+ size_type partition_size = alloc_size(); -+ size_type POD_size = integer::static_lcm::value + sizeof(size_type); -+ return (std::numeric_limits::max() - POD_size) / alloc_size(); -+ } -+ - static void * & nextof(void * const ptr) - { //! \returns Pointer dereferenced. -@@ -377,5 +388,7 @@ - //! the first time that object needs to allocate system memory. - //! The default is 32. This parameter may not be 0. -- //! \param nmax_size is the maximum number of chunks to allocate in one block. -+ //! \param nmax_size is the maximum number of chunks to allocate in one block. -+ set_next_size(nnext_size); -+ set_max_size(nmax_size); - } - -@@ -400,7 +413,7 @@ - } - void set_next_size(const size_type nnext_size) -- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. -- //! \returns nnext_size. -- next_size = start_size = nnext_size; -+ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. -+ BOOST_USING_STD_MIN(); -+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks()); - } - size_type get_max_size() const -@@ -410,5 +423,6 @@ - void set_max_size(const size_type nmax_size) - { //! Set max_size. -- max_size = nmax_size; -+ BOOST_USING_STD_MIN(); -+ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks()); - } - size_type get_requested_size() const -@@ -713,7 +727,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // initialize it, -@@ -753,7 +767,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // initialize it, -@@ -797,4 +811,6 @@ - //! \returns Address of chunk n if allocated ok. - //! \returns 0 if not enough memory for n chunks. -+ if (n > max_chunks()) -+ return 0; - - const size_type partition_size = alloc_size(); -@@ -845,7 +861,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // insert it into the list, -Index: libs/pool/test/test_bug_6701.cpp -=================================================================== ---- libs/pool/test/test_bug_6701.cpp (revision 78326) -+++ libs/pool/test/test_bug_6701.cpp (revision 78326) -@@ -0,0 +1,27 @@ -+/* Copyright (C) 2012 Étienne Dupuis -+* -+* Use, modification and distribution is subject to the -+* Boost Software License, Version 1.0. (See accompanying -+* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -+*/ -+ -+// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701) -+ -+#include -+#include -+ -+int main() -+{ -+ boost::pool<> p(1024, std::numeric_limits::max() / 768); -+ -+ void *x = p.malloc(); -+ BOOST_ASSERT(!x); -+ -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_next_size()); -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_max_size()); -+ -+ void *y = p.ordered_malloc(std::numeric_limits::max() / 768); -+ BOOST_ASSERT(!y); -+ -+ return 0; -+} diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch deleted file mode 100644 index f5cc981..0000000 --- a/boost-1.73-locale-empty-vector.patch +++ /dev/null @@ -1,37 +0,0 @@ -From daf4ef50c88c2b9a6bf2c40b537eebc202caad6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Gonzalve?= - -Date: Sat, 14 Nov 2020 10:39:47 +0100 -Subject: [PATCH] Do not try to access element when vector is empty - -Trying to access tmp[0] causes a crash on Fedora when assertion on STL -are enabled. - -/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. - -This patch just passes nullptr as pointer to getSortKey() when tmp size -is 0, preventing dereferencing elements in empty vector. - -I guess that &tmp[0] should be optimized as 'no real access' when -disabling assertion, but actually leads to crash when assert are -enabled. ---- - src/icu/collator.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libs/locale/src/icu/collator.cpp b/libs/locale/src/icu/collator.cpp -index 7f1ea6a..dc59e8c 100644 ---- a/libs/locale/src/icu/collator.cpp -+++ b/libs/locale/src/icu/collator.cpp -@@ -93,7 +93,7 @@ namespace boost { - std::vector tmp; - tmp.resize(str.length()); - icu::Collator *collate = get_collator(level); -- int len = collate->getSortKey(str,&tmp[0],tmp.size()); -+ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); - if(len > int(tmp.size())) { - tmp.resize(len); - collate->getSortKey(str,&tmp[0],tmp.size()); --- -2.26.2 - diff --git a/boost-1.76.0-enum_type_object-type-python-3.11.patch b/boost-1.76.0-enum_type_object-type-python-3.11.patch deleted file mode 100644 index 5b77498..0000000 --- a/boost-1.76.0-enum_type_object-type-python-3.11.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ae5da2a7e8f1111757d8a474095486a5b22aa12d Mon Sep 17 00:00:00 2001 -From: Victor Stinner -Date: Mon, 25 Apr 2022 10:51:46 +0200 -Subject: [PATCH] Fix enum_type_object type on Python 3.11 - -The enum_type_object type inherits from PyLong_Type which is not tracked -by the GC. Instances doesn't have to be tracked by the GC: remove the -Py_TPFLAGS_HAVE_GC flag. - -The Python C API documentation says: - - "To create a container type, the tp_flags field of the type object - must include the Py_TPFLAGS_HAVE_GC and provide an implementation of - the tp_traverse handler." - -https://docs.python.org/dev/c-api/gcsupport.html - -The new exception was introduced in Python 3.11 by: -https://github.com/python/cpython/issues/88429 ---- - libs/python/src/object/enum.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/libs/python/src/object/enum.cpp b/libs/python/src/object/enum.cpp -index 293e705899..5753b32e07 100644 ---- a/libs/python/src/object/enum.cpp -+++ b/libs/python/src/object/enum.cpp -@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = { - #if PY_VERSION_HEX < 0x03000000 - | Py_TPFLAGS_CHECKTYPES - #endif -- | Py_TPFLAGS_HAVE_GC - | Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /* tp_doc */ - 0, /* tp_traverse */ diff --git a/boost-1.76.0-ptr_cont-xml.patch b/boost-1.76.0-ptr_cont-xml.patch deleted file mode 100644 index ed088bf..0000000 --- a/boost-1.76.0-ptr_cont-xml.patch +++ /dev/null @@ -1,1263 +0,0 @@ -From adc94a80adbb7b720bd149c8b805876baa77b815 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Wed, 5 Aug 2020 11:28:26 +0100 -Subject: [PATCH] Fix invalid XHTML markup in docs - -The reStructuredText files insert
    HTML elements, which are not -valid in XHTML. - -The doc/tutorial_example.html file contains unquoted attributes and -unclosed and tags (although since that file is included -into another document, it probably shouldn't have , and - elements at all). ---- - doc/associative_ptr_container.html | 2 +- - doc/associative_ptr_container.rst | 2 +- - doc/examples.html | 2 +- - doc/examples.rst | 4 +- - doc/faq.html | 2 +- - doc/faq.rst | 2 +- - doc/guidelines.html | 4 +- - doc/guidelines.rst | 4 +- - doc/headers.html | 2 +- - doc/headers.rst | 2 +- - doc/indirect_fun.html | 2 +- - doc/indirect_fun.rst | 2 +- - doc/ptr_array.html | 2 +- - doc/ptr_array.rst | 2 +- - doc/ptr_container.html | 2 +- - doc/ptr_container.rst | 2 +- - doc/ptr_deque.html | 2 +- - doc/ptr_deque.rst | 2 +- - doc/ptr_inserter.html | 2 +- - doc/ptr_inserter.rst | 2 +- - doc/ptr_list.html | 2 +- - doc/ptr_list.rst | 2 +- - doc/ptr_map.html | 2 +- - doc/ptr_map.rst | 2 +- - doc/ptr_map_adapter.html | 2 +- - doc/ptr_map_adapter.rst | 2 +- - doc/ptr_multimap_adapter.html | 2 +- - doc/ptr_multimap_adapter.rst | 2 +- - doc/ptr_multiset.html | 2 +- - doc/ptr_multiset.rst | 2 +- - doc/ptr_multiset_adapter.html | 2 +- - doc/ptr_multiset_adapter.rst | 2 +- - doc/ptr_sequence_adapter.html | 2 +- - doc/ptr_sequence_adapter.rst | 2 +- - doc/ptr_set.html | 2 +- - doc/ptr_set.rst | 2 +- - doc/ptr_set_adapter.html | 2 +- - doc/ptr_set_adapter.rst | 2 +- - doc/ptr_vector.html | 2 +- - doc/ptr_vector.rst | 2 +- - doc/reference.html | 4 +- - doc/reference.rst | 4 +- - doc/reversible_ptr_container.html | 2 +- - doc/reversible_ptr_container.rst | 2 +- - doc/tutorial.html | 4 +- - doc/tutorial.rst | 4 +- - doc/tutorial_example.html | 384 ++++++++++++++--------------- - 47 files changed, 245 insertions(+), 245 deletions(-) - -diff --git a/doc/associative_ptr_container.html b/doc/associative_ptr_container.html -index ccc4d9fa..9467864f 100644 ---- a/libs/ptr_container/doc/associative_ptr_container.html -+++ b/libs/ptr_container/doc/associative_ptr_container.html -@@ -529,7 +529,7 @@

    -+

    - - - -diff --git a/doc/associative_ptr_container.rst b/doc/associative_ptr_container.rst -index b9b8d45a..6dcd0833 100644 ---- a/libs/ptr_container/doc/associative_ptr_container.rst -+++ b/libs/ptr_container/doc/associative_ptr_container.rst -@@ -216,7 +216,7 @@ Semantics: algorithms - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/examples.html b/doc/examples.html -index 5568b323..dbc8ce2b 100644 ---- a/libs/ptr_container/doc/examples.html -+++ b/libs/ptr_container/doc/examples.html -@@ -886,7 +886,7 @@

    9. A large example

    -
  • home
  • -
  • reference
  • - --
    -+
    - - - -diff --git a/doc/examples.rst b/doc/examples.rst -index 213094bf..d82f4b85 100644 ---- a/libs/ptr_container/doc/examples.rst -+++ b/libs/ptr_container/doc/examples.rst -@@ -180,7 +180,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -189,7 +189,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/faq.html b/doc/faq.html -index f318483b..1d701131 100644 ---- a/libs/ptr_container/doc/faq.html -+++ b/libs/ptr_container/doc/faq.html -@@ -373,7 +373,7 @@

    [13] for details.

    --

    -+
    - - - -diff --git a/doc/faq.rst b/doc/faq.rst -index 40c8eb2d..e2ead8d7 100644 ---- a/libs/ptr_container/doc/faq.rst -+++ b/libs/ptr_container/doc/faq.rst -@@ -95,7 +95,7 @@ class with dummy implementations of the virtual functions. See `[13] -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/guidelines.html b/doc/guidelines.html -index 759b6259..25d1f148 100644 ---- a/libs/ptr_container/doc/guidelines.html -+++ b/libs/ptr_container/doc/guidelines.html -@@ -414,12 +414,12 @@

    container< nullable<T> >.

    --

    Navigate:

    -+

    Navigate:

    -
    --

    -+
    - - - -diff --git a/doc/guidelines.rst b/doc/guidelines.rst -index 1c39c7ba..bf69dac8 100644 ---- a/libs/ptr_container/doc/guidelines.rst -+++ b/libs/ptr_container/doc/guidelines.rst -@@ -144,7 +144,7 @@ you. That is when you truly need ``container< nullable >``. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -153,7 +153,7 @@ you. That is when you truly need ``container< nullable >``. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/headers.html b/doc/headers.html -index 4b040825..aa1609ab 100644 ---- a/libs/ptr_container/doc/headers.html -+++ b/libs/ptr_container/doc/headers.html -@@ -375,7 +375,7 @@

    Library headers

    -
  • home
  • -
  • reference
  • - --
    -+
    - - - -diff --git a/doc/headers.rst b/doc/headers.rst -index befcbb55..8c8e8ded 100644 ---- a/libs/ptr_container/doc/headers.rst -+++ b/libs/ptr_container/doc/headers.rst -@@ -75,7 +75,7 @@ Library headers - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/indirect_fun.html b/doc/indirect_fun.html -index a0446472..acc13346 100644 ---- a/libs/ptr_container/doc/indirect_fun.html -+++ b/libs/ptr_container/doc/indirect_fun.html -@@ -401,7 +401,7 @@

    Indirected functions

    - - } // namespace 'boost' - --
    -+
    - - - -diff --git a/doc/indirect_fun.rst b/doc/indirect_fun.rst -index 5fd13df2..f6583d90 100644 ---- a/libs/ptr_container/doc/indirect_fun.rst -+++ b/libs/ptr_container/doc/indirect_fun.rst -@@ -127,7 +127,7 @@ first operation is expanded inline. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_array.html b/doc/ptr_array.html -index 30da95f7..483fcfa4 100644 ---- a/libs/ptr_container/doc/ptr_array.html -+++ b/libs/ptr_container/doc/ptr_array.html -@@ -660,7 +660,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_array.rst b/doc/ptr_array.rst -index 68c2b47b..a7390236 100644 ---- a/libs/ptr_container/doc/ptr_array.rst -+++ b/libs/ptr_container/doc/ptr_array.rst -@@ -281,7 +281,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_container.html b/doc/ptr_container.html -index 5672bdfd..77a89a35 100644 ---- a/libs/ptr_container/doc/ptr_container.html -+++ b/libs/ptr_container/doc/ptr_container.html -@@ -735,7 +735,7 @@

    References

    - - -
    [13]Kevlin Henney, Null Object, 2002.
    --
    -+
    - - - -diff --git a/doc/ptr_container.rst b/doc/ptr_container.rst -index 0436cce7..257a2fda 100644 ---- a/libs/ptr_container/doc/ptr_container.rst -+++ b/libs/ptr_container/doc/ptr_container.rst -@@ -384,7 +384,7 @@ __ http://www.two-sdg.demon.co.uk/curbralan/papers/europlop/NullObject.pdf - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. - -diff --git a/doc/ptr_deque.html b/doc/ptr_deque.html -index 5216aa0e..bc996969 100644 ---- a/libs/ptr_container/doc/ptr_deque.html -+++ b/libs/ptr_container/doc/ptr_deque.html -@@ -526,7 +526,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_deque.rst b/doc/ptr_deque.rst -index 020ba362..a2a2cc99 100644 ---- a/libs/ptr_container/doc/ptr_deque.rst -+++ b/libs/ptr_container/doc/ptr_deque.rst -@@ -170,7 +170,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_inserter.html b/doc/ptr_inserter.html -index 9fb05a8a..92e4a527 100644 ---- a/libs/ptr_container/doc/ptr_inserter.html -+++ b/libs/ptr_container/doc/ptr_inserter.html -@@ -348,7 +348,7 @@

    Insert Iterators

    - } // namespace 'ptr_container' - } // namespace 'boost' - --
    -+
    - - - -diff --git a/doc/ptr_inserter.rst b/doc/ptr_inserter.rst -index 574bbdad..ef1c820b 100644 ---- a/libs/ptr_container/doc/ptr_inserter.rst -+++ b/libs/ptr_container/doc/ptr_inserter.rst -@@ -70,7 +70,7 @@ can be transfered as well. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2008. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_list.html b/doc/ptr_list.html -index 1a8e6798..c76aeaf9 100644 ---- a/libs/ptr_container/doc/ptr_list.html -+++ b/libs/ptr_container/doc/ptr_list.html -@@ -500,7 +500,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_list.rst b/doc/ptr_list.rst -index 302049d0..2eceb9d7 100644 ---- a/libs/ptr_container/doc/ptr_list.rst -+++ b/libs/ptr_container/doc/ptr_list.rst -@@ -146,7 +146,7 @@ Semantics: list operations - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_map.html b/doc/ptr_map.html -index e5fd2c9c..bc75e5cb 100644 ---- a/libs/ptr_container/doc/ptr_map.html -+++ b/libs/ptr_container/doc/ptr_map.html -@@ -342,7 +342,7 @@

    Class --

    -+
    - - - -diff --git a/doc/ptr_map.rst b/doc/ptr_map.rst -index 6b50a2ba..64113937 100644 ---- a/libs/ptr_container/doc/ptr_map.rst -+++ b/libs/ptr_container/doc/ptr_map.rst -@@ -63,7 +63,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_map_adapter.html b/doc/ptr_map_adapter.html -index 2ed30539..b451914c 100644 ---- a/libs/ptr_container/doc/ptr_map_adapter.html -+++ b/libs/ptr_container/doc/ptr_map_adapter.html -@@ -556,7 +556,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_map_adapter.rst b/doc/ptr_map_adapter.rst -index 517ea7fc..aabf5c4e 100644 ---- a/libs/ptr_container/doc/ptr_map_adapter.rst -+++ b/libs/ptr_container/doc/ptr_map_adapter.rst -@@ -194,7 +194,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multimap_adapter.html b/doc/ptr_multimap_adapter.html -index 3780ec8c..49243a16 100644 ---- a/libs/ptr_container/doc/ptr_multimap_adapter.html -+++ b/libs/ptr_container/doc/ptr_multimap_adapter.html -@@ -540,7 +540,7 @@

    Semantics: typedefs

    - - - --
    -+
    - - - -diff --git a/doc/ptr_multimap_adapter.rst b/doc/ptr_multimap_adapter.rst -index 3b9e9961..56d37f5d 100644 ---- a/libs/ptr_container/doc/ptr_multimap_adapter.rst -+++ b/libs/ptr_container/doc/ptr_multimap_adapter.rst -@@ -189,7 +189,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multiset.html b/doc/ptr_multiset.html -index a82a7995..50fa9681 100644 ---- a/libs/ptr_container/doc/ptr_multiset.html -+++ b/libs/ptr_container/doc/ptr_multiset.html -@@ -349,7 +349,7 @@

    Class -
      -
    • Using nullable<T> as Key is meaningless and is not allowed
    • -
    --

    -+
    - - - -diff --git a/doc/ptr_multiset.rst b/doc/ptr_multiset.rst -index 120891bd..3af8bef3 100644 ---- a/libs/ptr_container/doc/ptr_multiset.rst -+++ b/libs/ptr_container/doc/ptr_multiset.rst -@@ -70,7 +70,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multiset_adapter.html b/doc/ptr_multiset_adapter.html -index 6bcfebb1..96e811d1 100644 ---- a/libs/ptr_container/doc/ptr_multiset_adapter.html -+++ b/libs/ptr_container/doc/ptr_multiset_adapter.html -@@ -491,7 +491,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_multiset_adapter.rst b/doc/ptr_multiset_adapter.rst -index eb9eafe2..8c437fb1 100644 ---- a/libs/ptr_container/doc/ptr_multiset_adapter.rst -+++ b/libs/ptr_container/doc/ptr_multiset_adapter.rst -@@ -134,7 +134,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_sequence_adapter.html b/doc/ptr_sequence_adapter.html -index aa2e7a42..9c4af800 100644 ---- a/libs/ptr_container/doc/ptr_sequence_adapter.html -+++ b/libs/ptr_container/doc/ptr_sequence_adapter.html -@@ -827,7 +827,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_sequence_adapter.rst b/doc/ptr_sequence_adapter.rst -index 5640d029..d98684c1 100644 ---- a/libs/ptr_container/doc/ptr_sequence_adapter.rst -+++ b/libs/ptr_container/doc/ptr_sequence_adapter.rst -@@ -443,7 +443,7 @@ contain any nulls*. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_set.html b/doc/ptr_set.html -index 8e66779f..1a5a37b0 100644 ---- a/libs/ptr_container/doc/ptr_set.html -+++ b/libs/ptr_container/doc/ptr_set.html -@@ -350,7 +350,7 @@

    Class -
  • Using nullable<T> as Key is meaningless and is not allowed
  • - --

    -+
    - - - -diff --git a/doc/ptr_set.rst b/doc/ptr_set.rst -index 6679a8b2..5fb83d1e 100644 ---- a/libs/ptr_container/doc/ptr_set.rst -+++ b/libs/ptr_container/doc/ptr_set.rst -@@ -72,7 +72,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_set_adapter.html b/doc/ptr_set_adapter.html -index 12820d38..e32501da 100644 ---- a/libs/ptr_container/doc/ptr_set_adapter.html -+++ b/libs/ptr_container/doc/ptr_set_adapter.html -@@ -491,7 +491,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_set_adapter.rst b/doc/ptr_set_adapter.rst -index bb19e148..7b89c184 100644 ---- a/libs/ptr_container/doc/ptr_set_adapter.rst -+++ b/libs/ptr_container/doc/ptr_set_adapter.rst -@@ -136,7 +136,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_vector.html b/doc/ptr_vector.html -index def2a569..150c9a71 100644 ---- a/libs/ptr_container/doc/ptr_vector.html -+++ b/libs/ptr_container/doc/ptr_vector.html -@@ -550,7 +550,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_vector.rst b/doc/ptr_vector.rst -index 374166f2..575a5679 100644 ---- a/libs/ptr_container/doc/ptr_vector.rst -+++ b/libs/ptr_container/doc/ptr_vector.rst -@@ -185,7 +185,7 @@ Semantics: C-array support - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/reference.html b/doc/reference.html -index 1ae18479..653b4324 100644 ---- a/libs/ptr_container/doc/reference.html -+++ b/libs/ptr_container/doc/reference.html -@@ -797,11 +797,11 @@

    BOOST_NO_EXCEPTIONS is defined, then BOOST_PTR_CONTAINER_NO_EXCEPTIONS - is also defined.

    --

    Navigate:

    -+

    Navigate:

    -
    --

    -+
    - - - -diff --git a/doc/reference.rst b/doc/reference.rst -index 3dffbc68..0b827e0e 100644 ---- a/libs/ptr_container/doc/reference.rst -+++ b/libs/ptr_container/doc/reference.rst -@@ -486,7 +486,7 @@ is also defined. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -494,7 +494,7 @@ is also defined. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/reversible_ptr_container.html b/doc/reversible_ptr_container.html -index ede30c57..e45fcde8 100644 ---- a/libs/ptr_container/doc/reversible_ptr_container.html -+++ b/libs/ptr_container/doc/reversible_ptr_container.html -@@ -885,7 +885,7 @@

    Semantics

    - Boost.Serialization -
  • Exception safety: Loading gives the basic guarantee
  • - --
    -+
    - - - -diff --git a/doc/reversible_ptr_container.rst b/doc/reversible_ptr_container.rst -index 360f7d97..4fb24163 100644 ---- a/libs/ptr_container/doc/reversible_ptr_container.rst -+++ b/libs/ptr_container/doc/reversible_ptr_container.rst -@@ -506,7 +506,7 @@ All containers can be serialized by means of - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/tutorial.html b/doc/tutorial.html -index 7c93b469..05047afd 100644 ---- a/libs/ptr_container/doc/tutorial.html -+++ b/libs/ptr_container/doc/tutorial.html -@@ -773,7 +773,7 @@

    Algorithms

    - BOOST_ASSERT( another_zoo.empty() ); - -

    That is all; now you have learned all the basics!

    --

    See also

    -+

    See also

    - --
    -+
    - - - -diff --git a/doc/tutorial.rst b/doc/tutorial.rst -index a7c12e20..8b84364a 100644 ---- a/libs/ptr_container/doc/tutorial.rst -+++ b/libs/ptr_container/doc/tutorial.rst -@@ -440,7 +440,7 @@ That is all; now you have learned all the basics! - - .. raw:: html - --
    -+
    - - **See also** - -@@ -455,7 +455,7 @@ That is all; now you have learned all the basics! - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/tutorial_example.html b/doc/tutorial_example.html -index 202a17bb..9ebf4a1c 100644 ---- a/libs/ptr_container/doc/tutorial_example.html -+++ b/libs/ptr_container/doc/tutorial_example.html -@@ -1,12 +1,12 @@ - - -- -+ - -- -+ - - - --
    //
    -+    
    //
    - // Boost.Pointer Container
    - //
    - //  Copyright Thorsten Ottosen 2003-2005. Use, modification and
    -@@ -30,149 +30,149 @@
    - //
    - // First we select which container to use.
    - //
    --#include <boost/ptr_container/ptr_deque.hpp>
    -+#include <boost/ptr_container/ptr_deque.hpp>
    - 
    --//
    -+//
    - // we need these later in the example
    - //
    --#include <boost/assert.hpp>
    --#include <string>
    --#include <exception>
    -+#include <boost/assert.hpp>
    -+#include <string>
    -+#include <exception>
    - 
    - 
    --//
    -+//
    - // Then we define a small polymorphic class
    - // hierarchy.
    - // 
    - 
    --class animal : boost::noncopyable
    --{
    --    virtual std::string do_speak() const = 0;
    --    std::string name_;
    -+class animal : boost::noncopyable
    -+{
    -+    virtual std::string do_speak() const = 0;
    -+    std::string name_;
    - 
    --protected:
    --    //
    -+protected:
    -+    //
    -     // Animals cannot be copied...
    -     //
    --    animal( const animal& r ) : name_( r.name_ )           { }
    --    void operator=( const animal& );
    -+    animal( const animal& r ) : name_( r.name_ )           { }
    -+    void operator=( const animal& );
    - 
    --private:
    --    //
    -+private:
    -+    //
    -     // ...but due to advances in genetics, we can clone them!
    -     //
    - 
    --    virtual animal* do_clone() const = 0;
    -+    virtual animal* do_clone() const = 0;
    -         
    --public:
    --    animal( const std::string& name ) : name_(name)        { }
    --    virtual ~animal() throw()                              { }
    -+public:
    -+    animal( const std::string& name ) : name_(name)        { }
    -+    virtual ~animal() throw()                              { }
    -     
    --    std::string speak() const
    --    {
    --        return do_speak();
    --    }
    --
    --    std::string name() const
    --    {
    --        return name_;
    --    }
    --
    --    animal* clone() const
    --    {
    --        return do_clone();
    --    }
    --};
    --
    --//
    -+    std::string speak() const
    -+    {
    -+        return do_speak();
    -+    }
    -+
    -+    std::string name() const
    -+    {
    -+        return name_;
    -+    }
    -+
    -+    animal* clone() const
    -+    {
    -+        return do_clone();
    -+    }
    -+};
    -+
    -+//
    - // An animal is still not Clonable. We need this last hook.
    - //
    - // Notice that we pass the animal by const reference
    - // and return by pointer.
    - //
    - 
    --animal* new_clone( const animal& a )
    --{
    --    return a.clone();
    --}
    -+animal* new_clone( const animal& a )
    -+{
    -+    return a.clone();
    -+}
    - 
    --//
    -+//
    - // We do not need to define 'delete_clone()' since
    - // since the default is to call the default 'operator delete()'.
    - //
    - 
    --const std::string muuuh = "Muuuh!";
    --const std::string oiink = "Oiiink";
    --
    --class cow : public animal
    --{
    --    virtual std::string do_speak() const
    --    {
    --        return muuuh;
    --    }
    --
    --    virtual animal* do_clone() const
    --    {
    --        return new cow( *this );
    --    }
    --
    --public:
    --    cow( const std::string& name ) : animal(name)          { }
    --};
    --
    --class pig : public animal
    --{
    --    virtual std::string do_speak() const
    --    {
    --        return oiink;
    --    }
    --
    --    virtual animal* do_clone() const
    --    {
    --        return new pig( *this );
    --    }
    -+const std::string muuuh = "Muuuh!";
    -+const std::string oiink = "Oiiink";
    -+
    -+class cow : public animal
    -+{
    -+    virtual std::string do_speak() const
    -+    {
    -+        return muuuh;
    -+    }
    -+
    -+    virtual animal* do_clone() const
    -+    {
    -+        return new cow( *this );
    -+    }
    -+
    -+public:
    -+    cow( const std::string& name ) : animal(name)          { }
    -+};
    -+
    -+class pig : public animal
    -+{
    -+    virtual std::string do_speak() const
    -+    {
    -+        return oiink;
    -+    }
    -+
    -+    virtual animal* do_clone() const
    -+    {
    -+        return new pig( *this );
    -+    }
    -     
    --public:
    --    pig( const std::string& name ) : animal(name)          { }
    --};
    -+public:
    -+    pig( const std::string& name ) : animal(name)          { }
    -+};
    - 
    --//
    -+//
    - // Then we, of course, need a place to put all
    - // those animals.
    - //
    - 
    --class farm
    --{
    --    //
    -+class farm
    -+{
    -+    //
    -     // This is where the smart containers are handy
    -     //
    --    typedef boost::ptr_deque<animal> barn_type;
    --    barn_type                        barn;
    -+    typedef boost::ptr_deque<animal> barn_type;
    -+    barn_type                        barn;
    - 
    --    //
    -+    //
    -     // A convenience typedef for the compiler-appropriate
    -     // smart pointer used to manage barns
    -     //    
    --    typedef compatible-smart-ptr<barn_type> raii_ptr;
    -+    typedef compatible-smart-ptr<barn_type> raii_ptr;
    - 
    --    //
    -+    //
    -     // An error type
    -     //
    --    struct farm_trouble : public std::exception           { };
    -+    struct farm_trouble : public std::exception           { };
    - 
    --public:
    --    // 
    -+public:
    -+    // 
    -     // We would like to make it possible to
    -     // iterate over the animals in the farm
    -     //
    --    typedef barn_type::iterator  animal_iterator;
    -+    typedef barn_type::iterator  animal_iterator;
    - 
    --    //
    -+    //
    -     // We also need to count the farm's size...
    -     //
    --    typedef barn_type::size_type size_type;
    -+    typedef barn_type::size_type size_type;
    -     
    --    //
    -+    //
    -     // And we also want to transfer an animal
    -     // safely around. The easiest way to think
    -     // about '::auto_type' is to imagine a simplified
    -@@ -184,100 +184,100 @@
    -     //
    -     // but not more.
    -     //
    --    typedef barn_type::auto_type  animal_transport;
    -+    typedef barn_type::auto_type  animal_transport;
    - 
    --    // 
    -+    // 
    -     // Create an empty farm.
    -     //
    --    farm()                                                 { }
    -+    farm()                                                 { }
    -     
    --    //
    -+    //
    -     // We need a constructor that can make a new
    -     // farm by cloning a range of animals.
    -     //
    --    farm( animal_iterator begin, animal_iterator end )
    --     : 
    --        //
    -+    farm( animal_iterator begin, animal_iterator end )
    -+     : 
    -+        //
    -         // Objects are always cloned before insertion
    -         // unless we explicitly add a pointer or 
    -         // use 'release()'. Therefore we actually
    -         // clone all animals in the range
    -         //
    --        barn( begin, end )                               { }
    -+        barn( begin, end )                               { }
    -     
    --    //
    -+    //
    -     // ... so we need some other function too
    -     //
    - 
    --    animal_iterator begin()
    --    {
    --        return barn.begin();
    --    }
    -+    animal_iterator begin()
    -+    {
    -+        return barn.begin();
    -+    }
    - 
    --    animal_iterator end()
    --    {
    --        return barn.end();
    --    }
    -+    animal_iterator end()
    -+    {
    -+        return barn.end();
    -+    }
    -     
    --    //
    -+    //
    -     // Here it is quite ok to have an 'animal*' argument.
    -     // The smart container will handle all ownership
    -     // issues.
    -     //
    --    void buy_animal( animal* a )
    --    {
    --        barn.push_back( a );
    --    }
    -+    void buy_animal( animal* a )
    -+    {
    -+        barn.push_back( a );
    -+    }
    - 
    --    //
    -+    //
    -     // The farm can also be in economical trouble and
    -     // therefore be in the need to sell animals.
    -     //
    --    animal_transport sell_animal( animal_iterator to_sell )
    --    {
    --        if( to_sell == end() )
    --            throw farm_trouble();
    -+    animal_transport sell_animal( animal_iterator to_sell )
    -+    {
    -+        if( to_sell == end() )
    -+            throw farm_trouble();
    - 
    --        //
    -+        //
    -         // Here we remove the animal from the barn,
    -         // but the animal is not deleted yet...it's
    -         // up to the buyer to decide what
    -         // to do with it.
    -         //
    --        return barn.release( to_sell );
    --    }
    -+        return barn.release( to_sell );
    -+    }
    - 
    --    //
    -+    //
    -     // How big a farm do we have?
    -     //
    --    size_type size() const
    --    {
    --        return barn.size();
    --    }
    -+    size_type size() const
    -+    {
    -+        return barn.size();
    -+    }
    - 
    --    //
    -+    //
    -     // If things are bad, we might choose to sell all animals :-(
    -       //
    - 
    --    raii_ptr sell_farm()
    --    {
    --        return barn.release();
    --    }
    -+    raii_ptr sell_farm()
    -+    {
    -+        return barn.release();
    -+    }
    - 
    --    //
    -+    //
    -     // However, if things are good, we might buy somebody
    -     // else's farm :-)
    -     //
    - 
    --    void buy_farm( raii_ptr other )
    --    {
    --        //
    -+    void buy_farm( raii_ptr other )
    -+    {
    -+        //
    -         // This line inserts all the animals from 'other'
    -         // and is guaranteed either to succeed or to have no
    -         // effect
    -         //
    --        barn.transfer( barn.end(), // insert new animals at the end
    --                         *other );     // we want to transfer all animals,
    -+        barn.transfer( barn.end(), // insert new animals at the end
    -+                         *other );     // we want to transfer all animals,
    -                                        // so we use the whole container as argument
    -         //
    -         // You might think you would have to do
    -@@ -286,86 +286,86 @@
    -         //
    -         // but '*other' is empty and can go out of scope as it wants
    -         //
    --        BOOST_ASSERT( other->empty() );
    --    }
    -+        BOOST_ASSERT( other->empty() );
    -+    }
    -     
    --}; // class 'farm'.
    -+}; // class 'farm'.
    - 
    --int main()
    --{
    --    //
    -+int main()
    -+{
    -+    //
    -     // First we make a farm
    -     //
    --    farm animal_farm;
    --    BOOST_ASSERT( animal_farm.size() == 0u );
    -+    farm animal_farm;
    -+    BOOST_ASSERT( animal_farm.size() == 0u );
    -     
    --    animal_farm.buy_animal( new pig("Betty") );
    --    animal_farm.buy_animal( new pig("Benny") );
    --    animal_farm.buy_animal( new pig("Jeltzin") );
    --    animal_farm.buy_animal( new cow("Hanz") );
    --    animal_farm.buy_animal( new cow("Mary") );
    --    animal_farm.buy_animal( new cow("Frederik") );
    --    BOOST_ASSERT( animal_farm.size() == 6u );
    --
    --    //
    -+    animal_farm.buy_animal( new pig("Betty") );
    -+    animal_farm.buy_animal( new pig("Benny") );
    -+    animal_farm.buy_animal( new pig("Jeltzin") );
    -+    animal_farm.buy_animal( new cow("Hanz") );
    -+    animal_farm.buy_animal( new cow("Mary") );
    -+    animal_farm.buy_animal( new cow("Frederik") );
    -+    BOOST_ASSERT( animal_farm.size() == 6u );
    -+
    -+    //
    -     // Then we make another farm...it will actually contain
    -     // a clone of the other farm.
    -     //
    --    farm new_farm( animal_farm.begin(), animal_farm.end() );
    --    BOOST_ASSERT( new_farm.size() == 6u );
    -+    farm new_farm( animal_farm.begin(), animal_farm.end() );
    -+    BOOST_ASSERT( new_farm.size() == 6u );
    - 
    --    //
    -+    //
    -     // Is it really clones in the new farm?
    -     //
    --    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    -+    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    -     
    --    //
    -+    //
    -     // Then we search for an animal, Mary (the Crown Princess of Denmark),
    -     // because we would like to buy her ...
    -     //
    --    typedef farm::animal_iterator iterator;
    --    iterator to_sell;
    --    for( iterator i   = animal_farm.begin(),
    --                  end = animal_farm.end();
    --         i != end; ++i )
    --    {
    --        if( i->name() == "Mary" )
    --        {
    --            to_sell = i;
    --            break;
    --        }
    --    }
    --
    --    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    --
    --
    --    if( mary->speak() == muuuh )
    --        //
    -+    typedef farm::animal_iterator iterator;
    -+    iterator to_sell;
    -+    for( iterator i   = animal_farm.begin(),
    -+                  end = animal_farm.end();
    -+         i != end; ++i )
    -+    {
    -+        if( i->name() == "Mary" )
    -+        {
    -+            to_sell = i;
    -+            break;
    -+        }
    -+    }
    -+
    -+    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    -+
    -+
    -+    if( mary->speak() == muuuh )
    -+        //
    -         // Great, Mary is a cow, and she may live longer
    -         //
    --        new_farm.buy_animal( mary.release() );
    --    else
    --        //
    -+        new_farm.buy_animal( mary.release() );
    -+    else
    -+        //
    -         // Then the animal would be destroyed (!)
    -         // when we go out of scope.
    -         //
    --        ;
    -+        ;
    - 
    --    //
    -+    //
    -     // Now we can observe some changes to the two farms...
    -     //
    --    BOOST_ASSERT( animal_farm.size() == 5u );
    --    BOOST_ASSERT( new_farm.size()    == 7u );
    -+    BOOST_ASSERT( animal_farm.size() == 5u );
    -+    BOOST_ASSERT( new_farm.size()    == 7u );
    - 
    --    //
    -+    //
    -     // The new farm has however underestimated how much
    -     // it cost to feed Mary and its owner is forced to sell the farm...
    -     //
    --    animal_farm.buy_farm( new_farm.sell_farm() );
    -+    animal_farm.buy_farm( new_farm.sell_farm() );
    - 
    --    BOOST_ASSERT( new_farm.size()    == 0u );
    --    BOOST_ASSERT( animal_farm.size() == 12u );     
    --}
    -+    BOOST_ASSERT( new_farm.size()    == 0u );
    -+    BOOST_ASSERT( animal_farm.size() == 12u );     
    -+}
    - 
    - - diff --git a/boost-1.78.0-build-optflags.patch b/boost-1.81.0-build-optflags.patch similarity index 51% rename from boost-1.78.0-build-optflags.patch rename to boost-1.81.0-build-optflags.patch index 47578a6..cda74d4 100644 --- a/boost-1.78.0-build-optflags.patch +++ b/boost-1.81.0-build-optflags.patch @@ -1,17 +1,17 @@ -From 739edb2889cb63c281a3597e712988a40bc82829 Mon Sep 17 00:00:00 2001 +From aabd16d1a74a1c2be151e16bda9ff55af4f0beba Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers -Date: Mon, 28 Feb 2022 20:55:14 -0800 -Subject: [PATCH 1/3] Adjust options for Fedora package build +Date: Thu, 12 Jan 2023 11:54:59 -0800 +Subject: [PATCH] Adjust options for Fedora package build --- - src/tools/gcc.jam | 31 ++++++++++++++++--------------- - 1 file changed, 16 insertions(+), 15 deletions(-) + src/tools/gcc.jam | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) -diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index 47a11322..543cfd84 100644 +diff --git a/src/tools/gcc.jam b/src/tools/gcc.jam +index 14be886f5..9dd0ba0a6 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -510,7 +510,7 @@ rule compile.fortran ( targets * : sources * : properties * ) +@@ -511,7 +511,7 @@ rule compile.fortran ( targets * : sources * : properties * ) actions compile.c++ bind PCH_FILE { @@ -20,21 +20,24 @@ index 47a11322..543cfd84 100644 } actions compile.c bind PCH_FILE -@@ -521,6 +521,7 @@ actions compile.c bind PCH_FILE +@@ -521,7 +521,7 @@ actions compile.c bind PCH_FILE + actions compile.c++.preprocess bind PCH_FILE { - "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" -++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" } actions compile.c.preprocess bind PCH_FILE -@@ -623,20 +624,20 @@ actions compile.c.pch +@@ -624,22 +624,22 @@ actions compile.c.pch ### # Declare flags and action for compilation. -toolset.flags gcc.compile OPTIONS off : -O0 ; -toolset.flags gcc.compile OPTIONS speed : -O3 ; -toolset.flags gcc.compile OPTIONS space : -Os ; +-toolset.flags gcc.compile OPTIONS minimal : -O1 ; +-toolset.flags gcc.compile OPTIONS debug : -Og ; - -toolset.flags gcc.compile OPTIONS off : -fno-inline ; -toolset.flags gcc.compile OPTIONS on : -Wno-inline ; @@ -46,23 +49,25 @@ index 47a11322..543cfd84 100644 -toolset.flags gcc.compile OPTIONS extra : -Wall -Wextra ; -toolset.flags gcc.compile OPTIONS pedantic : -Wall -Wextra -pedantic ; -toolset.flags gcc.compile OPTIONS on : -Werror ; -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS speed : ; -+toolset.flags gcc.compile OPTIONS space : ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS speed : ; ++toolset.flags gcc.compile OPTIONS space : ; ++toolset.flags gcc.compile OPTIONS minimal : ; ++toolset.flags gcc.compile OPTIONS debug : ; + -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS full : ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS full : ; + -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS all : ; -+toolset.flags gcc.compile OPTIONS extra : ; -+toolset.flags gcc.compile OPTIONS pedantic : ; -+toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS all : ; ++toolset.flags gcc.compile OPTIONS extra : ; ++toolset.flags gcc.compile OPTIONS pedantic : ; ++toolset.flags gcc.compile OPTIONS on : ; toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; -- -2.35.1 +2.39.0 diff --git a/boost.spec b/boost.spec index 151e133..6efe8a6 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.78.0 -Release: 11%{?dist} +Version: 1.81.0 +Release: 0%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,7 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 +# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2 Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: @@ -127,16 +127,8 @@ BuildRequires: libquadmath-devel BuildRequires: bison BuildRequires: libzstd-devel -# https://bugzilla.redhat.com/show_bug.cgi?id=828856 -# https://bugzilla.redhat.com/show_bug.cgi?id=828857 -# https://svn.boost.org/trac/boost/ticket/6701 -Patch15: boost-1.58.0-pool.patch - -# https://svn.boost.org/trac/boost/ticket/9038 -Patch51: boost-1.58.0-pool-test_linking.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch105: boost-1.78.0-build-optflags.patch +Patch111: boost-1.81.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch106: boost-1.78.0-no-rpath.patch @@ -144,34 +136,16 @@ Patch106: boost-1.78.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch88: boost-1.73.0-cmakedir.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1899888 -# https://github.com/boostorg/locale/issues/52 -Patch94: boost-1.73-locale-empty-vector.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch107: boost-1.78.0-b2-build-flags.patch # https://github.com/boostorg/random/issues/82 Patch102: boost-1.76.0-random-test.patch -# PR https://github.com/boostorg/multiprecision/pull/421 -# fixes ppc64le issue https://github.com/boostorg/multiprecision/issues/419 -Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch - # PR https://github.com/boostorg/interval/pull/30 # Fixes narrowing conversions for ppc - # https://github.com/boostorg/interval/issues/29 -Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch - -# https://github.com/boostorg/ptr_container/pull/27 -Patch108: boost-1.76.0-ptr_cont-xml.patch - -# Fixes missing libboost_fiber.so -# https://github.com/boostorg/boost/issues/632 -Patch109: boost-1.78.0-fix-b2-staging.patch - -# https://github.com/boostorg/python/pull/385 -Patch110: boost-1.76.0-enum_type_object-type-python-3.11.patch +Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch %bcond_with tests %bcond_with docs_generated @@ -451,6 +425,14 @@ Requires: %{name}-system%{?_isa} = %{version}-%{release} The Boost.TypeErasure library provides runtime polymorphism in C++ that is more flexible than that provided by the core language. +%package url +Summary: Runtime component of boost URL library + +%description url + +Run-time support for the Boost.URL library, a Standards conforming +library for parsing Uniform Resource Locators. + %package wave Summary: Run-time component of boost C99/C++ preprocessing library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} @@ -675,19 +657,12 @@ a number of significant features and is now developed independently. %setup -q -n %{toplev_dirname} find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x -%patch15 -p0 -%patch51 -p1 -%patch105 -p1 +%patch111 -p1 %patch106 -p1 %patch107 -p1 %patch88 -p1 -%patch94 -p1 %patch102 -p1 -%patch103 -p2 %patch104 -p2 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 %build %set_build_flags @@ -896,6 +871,11 @@ install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install + + # Somewhere along the line the boost-build install directory became b2 + # which seems not so great for our purposes, fix that up + mv $RPM_BUILD_ROOT%{_datadir}/b2 $RPM_BUILD_ROOT%{_datadir}/boost-build + # Fix some permissions chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py # Fix shebang using unversioned python @@ -1138,6 +1118,10 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_type_erasure.so.%{sonamever} +%files url +%license LICENSE_1_0.txt +%{_libdir}/libboost_url.so.%{sonamever} + %files wave %license LICENSE_1_0.txt %{_libdir}/libboost_wave.so.%{sonamever} @@ -1202,6 +1186,7 @@ fi %{_libdir}/libboost_thread.so %{_libdir}/libboost_timer.so %{_libdir}/libboost_type_erasure.so +%{_libdir}/libboost_url.so %{_libdir}/libboost_wave.so %files static @@ -1269,7 +1254,6 @@ fi %files mpich-python3-devel %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so - %endif %files graph-mpich @@ -1293,6 +1277,21 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Feb 20 2023 Thomas Rodgers - 1.81.0-0 +- Rebase to 1.81.0 + See https://fedoraproject.org/wiki/Changes/F38Boost181 +- Drop patches: + deleted: boost-1.58.0-pool.patch + deleted: boost-1.58.0-pool-test_linking.patch + deleted: boost-1.78.0-build-optflags.patch + deleted: boost-1.73-locale-empty-vector.patch + deleted: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch + deleted: boost-1.76.0-ptr_cont-xml.patch + deleted: boost-1.78.0-fix-b2-staging.patch + deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch +- New Boost.URL runtime component +- boost_build directory is now b2 in upstream, renamte to boost_build on install + * Wed Jan 18 2023 Fedora Release Engineering - 1.78.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild @@ -1330,7 +1329,7 @@ fi - Rebase to 1.78.0 See https://fedoraproject.org/wiki/Changes/F37Boost178 - Drop patches: - deleted: boost-1.75.0-build-optflags.patch + deleted: boost-1.75.0-build-optflags.patch deleted: boost-1.75.0-no-rpath.patch deleted: boost-1.76.0-b2-build-flags.patch deleted: boost-1.76.0-fix-include-inside-boost-namespace.patch @@ -2376,7 +2375,7 @@ fi - Drop obsolete Obsoletes: boost-python and boost-doc <= 1.30.2 * Tue Jan 12 2010 Benjamin Kosnik - 1.41.0-1 -- Don't package generated debug libs, even with +- Don't package generated debug libs, even with (-DCMAKE_BUILD_TYPE=RelWithDebInfo | Release). - Update and include boost-cmake-soname.patch. - Uncomment ctest. diff --git a/sources b/sources index 84ff6c3..821b86a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_78_0.tar.bz2) = 9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf +SHA512 (boost_1_81_0.tar.bz2) = a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36 From a496150aecdc67e6b1beb0625e1b7f2b041cf2b2 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 15 Mar 2023 09:36:13 +0000 Subject: [PATCH 44/86] Fix typo in %changelog --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 6efe8a6..8729182 100644 --- a/boost.spec +++ b/boost.spec @@ -1290,7 +1290,7 @@ fi deleted: boost-1.78.0-fix-b2-staging.patch deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch - New Boost.URL runtime component -- boost_build directory is now b2 in upstream, renamte to boost_build on install +- boost_build directory is now b2 in upstream, rename to boost_build on install * Wed Jan 18 2023 Fedora Release Engineering - 1.78.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 1116a4d288c41261ab4ac14914bceae7d7207273 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 15 Mar 2023 09:36:29 +0000 Subject: [PATCH 45/86] Add patch for Boost.Phoenix bugs (#2178210) --- boost-1.81-phoenix-multiple-defn.patch | 20 ++++++++++++++++++++ boost.spec | 11 ++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 boost-1.81-phoenix-multiple-defn.patch diff --git a/boost-1.81-phoenix-multiple-defn.patch b/boost-1.81-phoenix-multiple-defn.patch new file mode 100644 index 0000000..6deaa40 --- /dev/null +++ b/boost-1.81-phoenix-multiple-defn.patch @@ -0,0 +1,20 @@ +--- boost_1_81_0/boost/phoenix/stl/tuple.hpp~ 2023-03-15 09:31:59.327721489 +0000 ++++ boost_1_81_0/boost/phoenix/stl/tuple.hpp 2023-03-15 09:32:02.787722445 +0000 +@@ -106,14 +106,16 @@ + tuple_detail::idx_wrap(), t); + } + ++#ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS + // Make unpacked argument placeholders + namespace placeholders { + #define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT) + #define BOOST_PP_LOCAL_MACRO(N) \ +- auto uarg##N = \ ++ const auto uarg##N = \ + boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1); + #include BOOST_PP_LOCAL_ITERATE() + } ++#endif + }} // namespace boost::phoenix + + #endif // C++ 14 diff --git a/boost.spec b/boost.spec index 8729182..f7dde4f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 0%{?dist} +Release: 1%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -147,6 +147,11 @@ Patch102: boost-1.76.0-random-test.patch # https://github.com/boostorg/interval/issues/29 Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2178210 +# https://github.com/boostorg/phoenix/issues/111 +# https://github.com/boostorg/phoenix/issues/115 +Patch112: boost-1.81-phoenix-multiple-defn.patch + %bcond_with tests %bcond_with docs_generated @@ -663,6 +668,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x %patch88 -p1 %patch102 -p1 %patch104 -p2 +%patch112 -p1 %build %set_build_flags @@ -1277,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Mar 15 2023 Jonathan Wakely - 1.81.0-1 +- Add patch for Boost.Phoenix bugs (#2178210) + * Mon Feb 20 2023 Thomas Rodgers - 1.81.0-0 - Rebase to 1.81.0 See https://fedoraproject.org/wiki/Changes/F38Boost181 From 131ff2b1a6029e1aa50aaf4ec17ceff4302780be Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 15 Mar 2023 12:02:09 +0000 Subject: [PATCH 46/86] Fix test plan by removing obsolete beakerlib setting --- plans/ci.fmf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plans/ci.fmf b/plans/ci.fmf index 1ad2c12..3fd3ab7 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,6 +1,5 @@ summary: CI Gating Plan discover: how: fmf - directory: tests execute: - how: beakerlib + how: tmt From 6b80e21fd9ba8eef0adbda3d1b0af1625e5884bc Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 15 Mar 2023 18:21:43 +0000 Subject: [PATCH 47/86] Change spec file to use autospec for applying patches Also renumber the patches from 0-7 since any historical significance of the numbers is already gone from the spec file. --- ....0-fix-narrowing-conversions-for-ppc.patch | 4 +-- boost.spec | 29 ++++++++----------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch index 42662dd..ce49540 100644 --- a/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +++ b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch @@ -13,8 +13,8 @@ Fixes #29 diff --git a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp index 87fe8ee..99f9986 100644 ---- a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp -+++ b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp +--- boost_1_76_0/boost/numeric/interval/detail/ppc_rounding_control.hpp ++++ boost_1_76_0/boost/numeric/interval/detail/ppc_rounding_control.hpp @@ -28,10 +28,10 @@ typedef union { double dmode; } rounding_mode_struct; diff --git a/boost.spec b/boost.spec index f7dde4f..528fa84 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -128,29 +128,29 @@ BuildRequires: bison BuildRequires: libzstd-devel # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch111: boost-1.81.0-build-optflags.patch +Patch0: boost-1.81.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch106: boost-1.78.0-no-rpath.patch +Patch1: boost-1.78.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php -Patch88: boost-1.73.0-cmakedir.patch +Patch2: boost-1.73.0-cmakedir.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch107: boost-1.78.0-b2-build-flags.patch +Patch3: boost-1.78.0-b2-build-flags.patch # https://github.com/boostorg/random/issues/82 -Patch102: boost-1.76.0-random-test.patch +Patch4: boost-1.76.0-random-test.patch # PR https://github.com/boostorg/interval/pull/30 # Fixes narrowing conversions for ppc - # https://github.com/boostorg/interval/issues/29 -Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://bugzilla.redhat.com/show_bug.cgi?id=2178210 # https://github.com/boostorg/phoenix/issues/111 # https://github.com/boostorg/phoenix/issues/115 -Patch112: boost-1.81-phoenix-multiple-defn.patch +Patch6: boost-1.81-phoenix-multiple-defn.patch %bcond_with tests %bcond_with docs_generated @@ -659,17 +659,9 @@ Historically, B2 was based on on FTJam and on Perforce Jam but has grown a number of significant features and is now developed independently. %prep -%setup -q -n %{toplev_dirname} +%autosetup -n %{toplev_dirname} -p1 find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x -%patch111 -p1 -%patch106 -p1 -%patch107 -p1 -%patch88 -p1 -%patch102 -p1 -%patch104 -p2 -%patch112 -p1 - %build %set_build_flags # Dump the versions being used into the build logs. @@ -1283,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Mar 15 2023 Jonathan Wakely - 1.81.0-2 +- Change spec file to use autospec for applying patches + * Wed Mar 15 2023 Jonathan Wakely - 1.81.0-1 - Add patch for Boost.Phoenix bugs (#2178210) From 393e648a01774fa7db8b878ce435594c4e56bbc0 Mon Sep 17 00:00:00 2001 From: Nianqing Yao Date: Fri, 5 May 2023 21:07:19 +0800 Subject: [PATCH 48/86] Fix build for riscv64 See https://github.com/fedora-riscv/boost/tree/f38-rv64. --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 528fa84..9b98ecc 100644 --- a/boost.spec +++ b/boost.spec @@ -24,7 +24,7 @@ %endif %endif -%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x +%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x riscv64 %bcond_with context %else %bcond_without context @@ -1275,6 +1275,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri May 05 2023 Nianqing Yao - 1.81.0-3 +- Fix build for riscv64 + See https://github.com/fedora-riscv/boost/tree/f38-rv64 + * Wed Mar 15 2023 Jonathan Wakely - 1.81.0-2 - Change spec file to use autospec for applying patches From 7d7a237052fc51be1cbfa04378f9f6d1c67344b3 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 13 Jun 2023 22:13:55 +0200 Subject: [PATCH 49/86] Rebuilt for Python 3.12 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 9b98ecc..062159a 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1275,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 13 2023 Python Maint - 1.81.0-3 +- Rebuilt for Python 3.12 + * Fri May 05 2023 Nianqing Yao - 1.81.0-3 - Fix build for riscv64 See https://github.com/fedora-riscv/boost/tree/f38-rv64 From a4fcef001632d1f470f39e1767165f7e5acab485 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 6 Jul 2023 00:05:50 +0100 Subject: [PATCH 50/86] Update License for SPDX migration --- boost.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 062159a..cd40d2c 100644 --- a/boost.spec +++ b/boost.spec @@ -42,8 +42,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 3%{?dist} -License: Boost and MIT and Python +Release: 4%{?dist} +License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} %global version_enc %{lua: @@ -1275,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jul 06 2023 Jonathan Wakely - 1.81.0-4 +- Update License for SPDX migration + * Tue Jun 13 2023 Python Maint - 1.81.0-3 - Rebuilt for Python 3.12 From 61dda027eb47d0e6873d69de3522c3dec54a1b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 11 Jul 2023 16:21:59 +0200 Subject: [PATCH 51/86] Rebuilt for ICU 73.2 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index cd40d2c..eb07abb 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 4%{?dist} +Release: 5%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1275,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jul 11 2023 František Zatloukal - 1.81.0-5 +- Rebuilt for ICU 73.2 + * Thu Jul 06 2023 Jonathan Wakely - 1.81.0-4 - Update License for SPDX migration From fd721ad7d34a9ea0713362c0c683313bd96dc147 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 14:50:10 +0000 Subject: [PATCH 52/86] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index eb07abb..f2c69f6 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 5%{?dist} +Release: 6%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1275,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 1.81.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jul 11 2023 František Zatloukal - 1.81.0-5 - Rebuilt for ICU 73.2 From 74826991aa4cb6069e2f449e85982bd260f20d11 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Wed, 2 Aug 2023 12:53:55 -0400 Subject: [PATCH 53/86] add symlink for b2 files --- boost.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index f2c69f6..8e0e329 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 6%{?dist} +Release: 7%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -874,6 +874,11 @@ echo ============================= install Boost.Build ================== # which seems not so great for our purposes, fix that up mv $RPM_BUILD_ROOT%{_datadir}/b2 $RPM_BUILD_ROOT%{_datadir}/boost-build + # but make a symlink so b2 knows where to look + pushd $RPM_BUILD_ROOT%{_datadir}/ + ln -s ./boost-build b2 + popd + # Fix some permissions chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py # Fix shebang using unversioned python @@ -1263,6 +1268,7 @@ fi %files build %license LICENSE_1_0.txt %{_datadir}/%{name}-build/ +%{_datadir}/b2 %files doctools %license LICENSE_1_0.txt @@ -1275,6 +1281,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Aug 2 2023 Tom Callaway - 1.81.0-7 +- add symlink for b2 files + * Wed Jul 19 2023 Fedora Release Engineering - 1.81.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 33b1e83abc65d61aa8982f5d1cabdcb2df160f7c Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 19 Aug 2023 23:51:57 +0800 Subject: [PATCH 54/86] Add patch for Boost.Accumulators bug This change silences the warning when compiling Boost.accumulators with GCC 13. as some projects using Boost.Accumulators are compiled with -Werror. Without this change, these project would have to disable -Wuninitialized warning or silence it temporarily when including the offending headers. Neither of these two solution is ideal from a developer's perspective. so let's apply the patch when packaging Boost. The patch was included by Boost 1.83. Signed-off-by: Kefu Chai --- ....0-always-initialize-member-variable.patch | 41 +++++++++++++++++++ boost.spec | 9 +++- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 boost-1.81.0-always-initialize-member-variable.patch diff --git a/boost-1.81.0-always-initialize-member-variable.patch b/boost-1.81.0-always-initialize-member-variable.patch new file mode 100644 index 0000000..14c48ae --- /dev/null +++ b/boost-1.81.0-always-initialize-member-variable.patch @@ -0,0 +1,41 @@ +From ecdc3d41be93d994cf293b6ce08cc33cb9e39e71 Mon Sep 17 00:00:00 2001 +From: Kefu Chai +Date: Thu, 27 Apr 2023 13:09:28 +0800 +Subject: [PATCH] always initialize member variable + +in this change, impl::extended_p_square_quantile_impl::probability is +zero-initialized to silence -Wuninitialized warning from GCC-13. + +despite that this variable is always initialized in +impl::extended_p_square_quantile_impl::result(), it is still referenced +by, for instance the copy constructor, which could be called before +`result()` gets called. and GCC-13 rightly warn us like: + +In copy constructor ‘constexpr boost::accumulators::impl::extended_p_square_quantile_impl::extended_p_square_quantile_impl(const boost::accumulators::impl::extended_p_square_quantile_impl&)’, + inlined from ‘boost::accumulators::detail::accumulator_wrapper::accumulator_wrapper(const boost::accumulators::detail::accumulator_wrapper&) [with Accumulator = boost::accumulators::impl::extended_p_square_quantile_impl; Feature = boost::accumulators::tag::extended_p_square_quantile_quadratic]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:320:69, + inlined from ‘constexpr boost::fusion::cons::cons(typename boost::fusion::detail::call_param::type, typename boost::fusion::detail::call_param::type) [with Car = boost::accumulators::detail::accumulator_wrapper, boost::accumulators::tag::extended_p_square_quantile_quadratic>; Cdr = boost::fusion::cons, boost::accumulators::tag::sum>, boost::fusion::cons, boost::accumulators::tag::mean>, boost::fusion::cons, boost::accumulators::tag::max>, boost::fusion::nil_> > >]’ at /usr/include/boost/fusion/container/list/cons.hpp:66:15, + inlined from ‘static boost::accumulators::detail::build_acc_list::type boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::flat_like_arg_list, void> >, std::integral_constant >, boost::parameter::aux::flat_like_arg_tuple, boost::parameter::aux::tagged_argument, std::array >, std::integral_constant > >; First = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 2> >; Last = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 6> >]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:252:86, + inlined from ‘static boost::accumulators::detail::build_acc_list::type boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::flat_like_arg_list, void> >, std::integral_constant >, boost::parameter::aux::flat_like_arg_tuple, boost::parameter::aux::tagged_argument, std::array >, std::integral_constant > >; First = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 1> >; Last = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 6> >]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:252:86: +/usr/include/boost/accumulators/statistics/extended_p_square_quantile.hpp:57:12: error: ‘.boost::accumulators::detail::accumulator_wrapper, boost::accumulators::tag::extended_p_square_quantile_quadratic>::.boost::accumulators::impl::extended_p_square_quantile_impl::probability’ is used uninitialized [-Werror=uninitialized] + 57 | struct extended_p_square_quantile_impl + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Signed-off-by: Kefu Chai +--- + boost/accumulators/statistics/extended_p_square_quantile.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/boost/accumulators/statistics/extended_p_square_quantile.hpp b/boost/accumulators/statistics/extended_p_square_quantile.hpp +index f57304c..a4ac3cd 100644 +--- a/boost/accumulators/statistics/extended_p_square_quantile.hpp ++++ b/boost/accumulators/statistics/extended_p_square_quantile.hpp +@@ -76,6 +76,7 @@ namespace impl + boost::begin(args[extended_p_square_probabilities]) + , boost::end(args[extended_p_square_probabilities]) + ) ++ , probability() + { + } + +-- +2.39.2 diff --git a/boost.spec b/boost.spec index 8e0e329..8f69652 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 7%{?dist} +Release: 8%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -152,6 +152,9 @@ Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/phoenix/issues/115 Patch6: boost-1.81-phoenix-multiple-defn.patch +# PR https://github.com/boostorg/accumulators/pull/54 +Patch7: boost-1.81.0-always-initialize-member-variable.patch + %bcond_with tests %bcond_with docs_generated @@ -1281,6 +1284,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun Aug 20 2023 Kefu Chai - 1.81.0-8 +- Add patch for Boost.Accumulators bug + See https://github.com/boostorg/accumulators/pull/54 + * Wed Aug 2 2023 Tom Callaway - 1.81.0-7 - add symlink for b2 files From 39785c3bbd768e4f90ee354c260b924e91b8ce40 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Tue, 29 Aug 2023 16:21:15 -0400 Subject: [PATCH 55/86] apply upstream fixes for failing random tests --- boost-1.81.0-random-test-fixes.patch | 28 ++++++++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 boost-1.81.0-random-test-fixes.patch diff --git a/boost-1.81.0-random-test-fixes.patch b/boost-1.81.0-random-test-fixes.patch new file mode 100644 index 0000000..0b493c6 --- /dev/null +++ b/boost-1.81.0-random-test-fixes.patch @@ -0,0 +1,28 @@ +diff -up boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_float_test.cpp +--- boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix 2023-08-29 16:07:40.127905519 -0400 ++++ boost_1_81_0/libs/random/test/multiprecision_float_test.cpp 2023-08-29 16:08:44.114856281 -0400 +@@ -77,7 +77,7 @@ typedef boost::mpl::list < + boost::random::lognormal_distribution, + boost::random::normal_distribution, + #ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +- boost::random::piecewise_constant_distribution, ++ boost::random::piecewise_constant_distribution, + boost::random::piecewise_linear_distribution, + #endif + boost::random::student_t_distribution, +diff -up boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_int_test.cpp +--- boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix 2023-08-29 16:06:58.543287627 -0400 ++++ boost_1_81_0/libs/random/test/multiprecision_int_test.cpp 2023-08-29 16:07:26.788707316 -0400 +@@ -216,7 +216,11 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(discrete_d + ss >> d2; + BOOST_CHECK(d == d2); + +- boost::random::independent_bits_engine::digits, boost::multiprecision::uint1024_t > big_random; ++ // ++ // The number of digits in the independent_bits_engine must be low enough that we don't overflow ++ // when converting to a double (see other_distributions declared above). ++ // ++ boost::random::independent_bits_engine::digits - 2, boost::multiprecision::uint1024_t > big_random; + for(unsigned i = 0; i < 200; ++i) + { + result_type r = d(big_random); diff --git a/boost.spec b/boost.spec index 8f69652..618ea03 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 8%{?dist} +Release: 9%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -155,6 +155,10 @@ Patch6: boost-1.81-phoenix-multiple-defn.patch # PR https://github.com/boostorg/accumulators/pull/54 Patch7: boost-1.81.0-always-initialize-member-variable.patch +# https://github.com/boostorg/random/commit/7561690135c67ecf88c2133bad7680ebd2665c36 +# https://github.com/boostorg/random/commit/4239d93dad32a11e4c3829050f8070d456266133 +Patch8: boost-1.81.0-random-test-fixes.patch + %bcond_with tests %bcond_with docs_generated @@ -1284,6 +1288,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Aug 29 2023 Tom Callaway - 1.81.0-9 +- apply upstream fixes for failing random tests + * Sun Aug 20 2023 Kefu Chai - 1.81.0-8 - Add patch for Boost.Accumulators bug See https://github.com/boostorg/accumulators/pull/54 From 10a5ee96ffb0aa55a2064afcca46986f53ec3690 Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Mon, 4 Sep 2023 21:36:31 +0000 Subject: [PATCH 56/86] tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91 --- tests/boost-testsuite-sanity/runtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index 98e9842..b95ae3c 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -54,7 +54,7 @@ rlJournalStart rlPhaseStartSetup "build boost" rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" rlRun "dnf builddep -y $TmpDir/SPECS/*.spec" - rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" + rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp --undefine specpartsdir $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/rpmbuild.log" rlRun "cd $TmpDir/BUILD/boost*" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" From bffabb9a2829dbc8286bd6416aecac4066ff8869 Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Thu, 7 Sep 2023 11:44:26 +0000 Subject: [PATCH 57/86] Revert "tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91" This reverts commit 10a5ee96ffb0aa55a2064afcca46986f53ec3690. --- tests/boost-testsuite-sanity/runtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index b95ae3c..98e9842 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -54,7 +54,7 @@ rlJournalStart rlPhaseStartSetup "build boost" rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" rlRun "dnf builddep -y $TmpDir/SPECS/*.spec" - rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp --undefine specpartsdir $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" + rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/rpmbuild.log" rlRun "cd $TmpDir/BUILD/boost*" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" From a9ff19d2d3645a6715cc2f99377b2b7703e0a3aa Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Thu, 7 Sep 2023 11:54:15 +0000 Subject: [PATCH 58/86] tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91, use the proper rpm macro value to determine the required path --- tests/boost-testsuite-sanity/runtest.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index 98e9842..76e3d45 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -54,9 +54,11 @@ rlJournalStart rlPhaseStartSetup "build boost" rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" rlRun "dnf builddep -y $TmpDir/SPECS/*.spec" + rlRun "sed -i -e 's/^%prep/%prep\n%dump/' $TmpDir/SPECS/*.spec" rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/rpmbuild.log" - rlRun "cd $TmpDir/BUILD/boost*" + rlRun "toplev_dirname=`awk '/toplev_dirname/{print $3; exit}' $TmpDir/rpmbuild.log`" + rlRun "cd $TmpDir/BUILD/$toplev_dirname" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/bootstrap.log" rlPhaseEnd @@ -64,7 +66,7 @@ rlJournalStart rlPhaseStartTest "run testsuite" while read test_path; do if [ -f $TmpDir/BUILD/boost*/libs/$test_path/test/Jamfile* ]; then - rlRun "cd $TmpDir/BUILD/boost*/libs/$test_path/test" + rlRun "cd $TmpDir/BUILD/$toplev_dirname/libs/$test_path/test" rlRun "su -c '/usr/bin/b2 -d1 --build-dir=$TmpDir/test-build &>>$TmpDir/testsuite.log' $BUILD_USER" rm -fr $TmpDir/test-build else From bab1cef729c56c801e543ed3c4d0bc2ea6055a67 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 12 Sep 2023 13:07:24 +0100 Subject: [PATCH 59/86] Remove dropped patches These were dropped from the spec file but not removed from git. --- ...fix_multiprecision_issue_419-ppc64le.patch | 27 ------- boost-1.78.0-fix-b2-staging.patch | 72 ------------------- 2 files changed, 99 deletions(-) delete mode 100644 boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch delete mode 100644 boost-1.78.0-fix-b2-staging.patch diff --git a/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch b/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch deleted file mode 100644 index 5cd6d40..0000000 --- a/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch +++ /dev/null @@ -1,27 +0,0 @@ -From d1343f28dcbe25b100b082b34775bd92ead4602c Mon Sep 17 00:00:00 2001 -From: jzmaddock -Date: Tue, 25 Jan 2022 09:27:40 +0000 -Subject: [PATCH] Update gcc Intel intrinsic usage config. Fixes - https://github.com/boostorg/multiprecision/issues/419. - ---- - include/boost/multiprecision/cpp_int/intel_intrinsics.hpp | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp -index eb4624bb4..37717cd51 100644 ---- a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp -+++ b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp -@@ -19,7 +19,11 @@ - // If this is GCC/clang, then check that the actual intrinsic exists: - // - #if defined(__has_builtin) && defined(__GNUC__) --#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) -+#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) \ -+ && !(defined(BOOST_GCC) && (__GNUC__ >= 9) \ -+ && (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)\ -+ || defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_AMD64) \ -+ || defined(_M_X64) || defined(__amd64__) || defined(_M_X64))) - #undef BOOST_MP_HAS_IMMINTRIN_H - #endif - #elif defined(BOOST_MP_HAS_IMMINTRIN_H) && defined(__GNUC__) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) diff --git a/boost-1.78.0-fix-b2-staging.patch b/boost-1.78.0-fix-b2-staging.patch deleted file mode 100644 index fa0e212..0000000 --- a/boost-1.78.0-fix-b2-staging.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 78fd284a42caabe8815cb0870b46e5567872e75b Mon Sep 17 00:00:00 2001 -From: Dmitry -Date: Sat, 11 Dec 2021 16:58:23 +0300 -Subject: [PATCH] Don't skip install targets if there's no in ureqs - (#113) - ---- - src/tools/stage.jam | 4 ++++ - test/install_build_no.py | 26 ++++++++++++++++++++++++++ - test/test_all.py | 1 + - 3 files changed, 31 insertions(+) - create mode 100755 test/install_build_no.py - -diff --git a/tools/build/src/tools/stage.jam b/tools/build/src/tools/stage.jam -index c5f02e3ba4..325129dc81 100644 ---- a/tools/build/src/tools/stage.jam -+++ b/tools/build/src/tools/stage.jam -@@ -478,6 +478,10 @@ class install-target-class : basic-target - return [ sequence.unique $(result2) ] ; - } - -+ rule skip-from-usage-requirements ( ) -+ { -+ } -+ - # Returns true iff 'type' is subtype of some element of 'types-to-include'. - # - local rule include-type ( type : types-to-include * ) -diff --git a/tools/build/test/install_build_no.py b/tools/build/test/install_build_no.py -new file mode 100755 -index 0000000000..0ccf3c5cc6 ---- /dev/null -+++ b/tools/build/test/install_build_no.py -@@ -0,0 +1,26 @@ -+#!/usr/bin/python -+ -+# Copyright 2021 Dmitry Arkhipov (grisumbras@gmail.com) -+# Distributed under the Boost Software License, Version 1.0. -+# (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt) -+ -+# Check that no in usage-requirements of dependencies does not affect -+# install rule, i.e. a skipped installed target does not affect insallation of -+# other targets. -+ -+import BoostBuild -+ -+t = BoostBuild.Tester() -+ -+t.write("a.cpp", "int main() {}\n") -+ -+t.write("jamroot.jam", """ -+make x : : maker : no ; -+exe a : a.cpp ; -+install install : x a ; -+""") -+ -+t.run_build_system() -+t.expect_addition("install/a.exe") -+ -+t.cleanup() -diff --git a/tools/build/test/test_all.py b/tools/build/test/test_all.py -index b7ef5ad701..9ed729d017 100644 ---- a/tools/build/test/test_all.py -+++ b/tools/build/test/test_all.py -@@ -250,6 +250,7 @@ def reorder_tests(tests, first_test): - "inherit_toolset", - "inherited_dependency", - "inline", -+ "install_build_no", - "libjpeg", - "liblzma", - "libpng", From d121d4637793486268ffe6464c4afe3c10cd8cea Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 29 Oct 2023 12:09:30 -0600 Subject: [PATCH 60/86] Rebuild for openmpi 5.0.0, drops support for i686 --- boost.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 618ea03..9b1a164 100644 --- a/boost.spec +++ b/boost.spec @@ -16,7 +16,7 @@ # All arches have mpich %bcond_without mpich -%ifarch s390 +%if 0%{?fedora} >= 40 && "%{_arch}" == "i686" # No OpenMPI support on these arches %bcond_with openmpi %else @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 9%{?dist} +Release: 10%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1288,6 +1288,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun Oct 29 2023 Orion Poplawski - 1.81.0-10 +- Rebuild for openmpi 5.0.0, drops support for i686 + * Tue Aug 29 2023 Tom Callaway - 1.81.0-9 - apply upstream fixes for failing random tests From 56ec04471d48ed4694e821f4bae37ae0e8bc3a1b Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 29 Oct 2023 12:44:09 -0600 Subject: [PATCH 61/86] Rework conditional --- boost.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/boost.spec b/boost.spec index 9b1a164..a6e5f4e 100644 --- a/boost.spec +++ b/boost.spec @@ -16,9 +16,13 @@ # All arches have mpich %bcond_without mpich -%if 0%{?fedora} >= 40 && "%{_arch}" == "i686" - # No OpenMPI support on these arches - %bcond_with openmpi +%if 0%{?fedora} >= 40 +%ifarch %{ix86} + # No OpenMPI support on these arches + %bcond_with openmpi +%else + %bcond_without openmpi +%endif %else %bcond_without openmpi %endif From 2dfe9ef974b84092f4bb6da534df9f9ef0b1354a Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 5 Dec 2023 17:54:28 -0500 Subject: [PATCH 62/86] Disable openmpi on RHEL 10+ RHEL 10 follows Fedora 40 and therefore also dropped the i686 build of openmpi. --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index a6e5f4e..b9caf1a 100644 --- a/boost.spec +++ b/boost.spec @@ -16,7 +16,7 @@ # All arches have mpich %bcond_without mpich -%if 0%{?fedora} >= 40 +%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 %ifarch %{ix86} # No OpenMPI support on these arches %bcond_with openmpi From 177b2b775d3d6bda5abe217abd6a5a5de2d7064c Mon Sep 17 00:00:00 2001 From: Patrick Palka Date: Mon, 4 Dec 2023 09:10:48 -0500 Subject: [PATCH 63/86] Rebase to 1.83.0 See https://fedoraproject.org/wiki/Changes/F40Boost183 Follow-up build fixes to dependent packages include: https://src.fedoraproject.org/fork/ppalka/rpms/aqsis/commits/rawhide https://src.fedoraproject.org/fork/ppalka/rpms/auryn/commits/rawhide https://src.fedoraproject.org/fork/ppalka/rpms/Field3D/commits/rawhide https://src.fedoraproject.org/fork/ppalka/rpms/python-graph-tool/commits/rawhide https://src.fedoraproject.org/fork/ppalka/rpms/scantailor/commits/rawhide --- boost-1.78.0-no-rpath.patch | 28 +++++----- ....0-always-initialize-member-variable.patch | 41 -------------- boost-1.81.0-build-optflags.patch | 53 +++++++++---------- boost-1.83-regex-test-fixes.patch | 37 +++++++++++++ boost.spec | 19 ++++--- sources | 2 +- 6 files changed, 89 insertions(+), 91 deletions(-) delete mode 100644 boost-1.81.0-always-initialize-member-variable.patch create mode 100644 boost-1.83-regex-test-fixes.patch diff --git a/boost-1.78.0-no-rpath.patch b/boost-1.78.0-no-rpath.patch index f5c6c47..6f0f9d1 100644 --- a/boost-1.78.0-no-rpath.patch +++ b/boost-1.78.0-no-rpath.patch @@ -1,31 +1,31 @@ -From 25e4220a4564a3f8ec22607fcdbee90c81f040d6 Mon Sep 17 00:00:00 2001 -From: Thomas W Rodgers -Date: Mon, 28 Feb 2022 21:24:07 -0800 -Subject: [PATCH 2/3] Adjust options to remove RPATH for Fedora package builds +From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001 +From: Patrick Palka +Date: Mon, 4 Dec 2023 09:27:13 -0500 +Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds --- - src/tools/gcc.jam | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) + tools/build/src/tools/gcc.jam | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index 543cfd84..fd213ccb 100644 +index c753afc23..e0b627726 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -1045,12 +1045,11 @@ actions link.dll.mingw bind LIBRARIES +@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * ) actions link bind LIBRARIES { -- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) --} -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)} +- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) ++ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) + } actions link.dll bind LIBRARIES { -- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) +- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) ++ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) } ### -- -2.35.1 +2.43.0 diff --git a/boost-1.81.0-always-initialize-member-variable.patch b/boost-1.81.0-always-initialize-member-variable.patch deleted file mode 100644 index 14c48ae..0000000 --- a/boost-1.81.0-always-initialize-member-variable.patch +++ /dev/null @@ -1,41 +0,0 @@ -From ecdc3d41be93d994cf293b6ce08cc33cb9e39e71 Mon Sep 17 00:00:00 2001 -From: Kefu Chai -Date: Thu, 27 Apr 2023 13:09:28 +0800 -Subject: [PATCH] always initialize member variable - -in this change, impl::extended_p_square_quantile_impl::probability is -zero-initialized to silence -Wuninitialized warning from GCC-13. - -despite that this variable is always initialized in -impl::extended_p_square_quantile_impl::result(), it is still referenced -by, for instance the copy constructor, which could be called before -`result()` gets called. and GCC-13 rightly warn us like: - -In copy constructor ‘constexpr boost::accumulators::impl::extended_p_square_quantile_impl::extended_p_square_quantile_impl(const boost::accumulators::impl::extended_p_square_quantile_impl&)’, - inlined from ‘boost::accumulators::detail::accumulator_wrapper::accumulator_wrapper(const boost::accumulators::detail::accumulator_wrapper&) [with Accumulator = boost::accumulators::impl::extended_p_square_quantile_impl; Feature = boost::accumulators::tag::extended_p_square_quantile_quadratic]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:320:69, - inlined from ‘constexpr boost::fusion::cons::cons(typename boost::fusion::detail::call_param::type, typename boost::fusion::detail::call_param::type) [with Car = boost::accumulators::detail::accumulator_wrapper, boost::accumulators::tag::extended_p_square_quantile_quadratic>; Cdr = boost::fusion::cons, boost::accumulators::tag::sum>, boost::fusion::cons, boost::accumulators::tag::mean>, boost::fusion::cons, boost::accumulators::tag::max>, boost::fusion::nil_> > >]’ at /usr/include/boost/fusion/container/list/cons.hpp:66:15, - inlined from ‘static boost::accumulators::detail::build_acc_list::type boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::flat_like_arg_list, void> >, std::integral_constant >, boost::parameter::aux::flat_like_arg_tuple, boost::parameter::aux::tagged_argument, std::array >, std::integral_constant > >; First = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 2> >; Last = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 6> >]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:252:86, - inlined from ‘static boost::accumulators::detail::build_acc_list::type boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::flat_like_arg_list, void> >, std::integral_constant >, boost::parameter::aux::flat_like_arg_tuple, boost::parameter::aux::tagged_argument, std::array >, std::integral_constant > >; First = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 1> >; Last = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 6> >]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:252:86: -/usr/include/boost/accumulators/statistics/extended_p_square_quantile.hpp:57:12: error: ‘.boost::accumulators::detail::accumulator_wrapper, boost::accumulators::tag::extended_p_square_quantile_quadratic>::.boost::accumulators::impl::extended_p_square_quantile_impl::probability’ is used uninitialized [-Werror=uninitialized] - 57 | struct extended_p_square_quantile_impl - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Signed-off-by: Kefu Chai ---- - boost/accumulators/statistics/extended_p_square_quantile.hpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/boost/accumulators/statistics/extended_p_square_quantile.hpp b/boost/accumulators/statistics/extended_p_square_quantile.hpp -index f57304c..a4ac3cd 100644 ---- a/boost/accumulators/statistics/extended_p_square_quantile.hpp -+++ b/boost/accumulators/statistics/extended_p_square_quantile.hpp -@@ -76,6 +76,7 @@ namespace impl - boost::begin(args[extended_p_square_probabilities]) - , boost::end(args[extended_p_square_probabilities]) - ) -+ , probability() - { - } - --- -2.39.2 diff --git a/boost-1.81.0-build-optflags.patch b/boost-1.81.0-build-optflags.patch index cda74d4..0f482c8 100644 --- a/boost-1.81.0-build-optflags.patch +++ b/boost-1.81.0-build-optflags.patch @@ -1,35 +1,35 @@ -From aabd16d1a74a1c2be151e16bda9ff55af4f0beba Mon Sep 17 00:00:00 2001 -From: Thomas W Rodgers -Date: Thu, 12 Jan 2023 11:54:59 -0800 +From ebc90bc3e372dc8e5db21f79d2a79e4f5c4d01ee Mon Sep 17 00:00:00 2001 +From: Patrick Palka +Date: Mon, 4 Dec 2023 09:24:20 -0500 Subject: [PATCH] Adjust options for Fedora package build --- - src/tools/gcc.jam | 36 ++++++++++++++++++------------------ - 1 file changed, 18 insertions(+), 18 deletions(-) + tools/build/src/tools/gcc.jam | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) -diff --git a/src/tools/gcc.jam b/src/tools/gcc.jam -index 14be886f5..9dd0ba0a6 100644 +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index 834f5e1bf..c753afc23 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -511,7 +511,7 @@ rule compile.fortran ( targets * : sources * : properties * ) +@@ -513,7 +513,7 @@ rule compile.fortran ( targets * : sources * : properties * ) actions compile.c++ bind PCH_FILE { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>:T)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>:T)" } actions compile.c bind PCH_FILE -@@ -521,7 +521,7 @@ actions compile.c bind PCH_FILE +@@ -523,7 +523,7 @@ actions compile.c bind PCH_FILE actions compile.c++.preprocess bind PCH_FILE { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" "$(>:T)" -E >"$(<)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" "$(>:T)" -E >"$(<)" } actions compile.c.preprocess bind PCH_FILE -@@ -624,22 +624,22 @@ actions compile.c.pch +@@ -627,22 +627,22 @@ actions compile.c.pch ### # Declare flags and action for compilation. @@ -37,28 +37,25 @@ index 14be886f5..9dd0ba0a6 100644 -toolset.flags gcc.compile OPTIONS speed : -O3 ; -toolset.flags gcc.compile OPTIONS space : -Os ; -toolset.flags gcc.compile OPTIONS minimal : -O1 ; --toolset.flags gcc.compile OPTIONS debug : -Og ; -- ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS speed : ; ++toolset.flags gcc.compile OPTIONS space : ; ++toolset.flags gcc.compile OPTIONS minimal : ; + toolset.flags gcc.compile OPTIONS debug : -Og ; + -toolset.flags gcc.compile OPTIONS off : -fno-inline ; -toolset.flags gcc.compile OPTIONS on : -Wno-inline ; -toolset.flags gcc.compile OPTIONS full : -finline-functions -Wno-inline ; -- ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS full : ; + -toolset.flags gcc.compile OPTIONS off : -w ; -toolset.flags gcc.compile OPTIONS on : -Wall ; -toolset.flags gcc.compile OPTIONS all : -Wall ; -toolset.flags gcc.compile OPTIONS extra : -Wall -Wextra ; -toolset.flags gcc.compile OPTIONS pedantic : -Wall -Wextra -pedantic ; -toolset.flags gcc.compile OPTIONS on : -Werror ; -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS speed : ; -+toolset.flags gcc.compile OPTIONS space : ; -+toolset.flags gcc.compile OPTIONS minimal : ; -+toolset.flags gcc.compile OPTIONS debug : ; -+ -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS full : ; -+ +toolset.flags gcc.compile OPTIONS off : ; +toolset.flags gcc.compile OPTIONS on : ; +toolset.flags gcc.compile OPTIONS all : ; @@ -69,5 +66,5 @@ index 14be886f5..9dd0ba0a6 100644 toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; -- -2.39.0 +2.43.0 diff --git a/boost-1.83-regex-test-fixes.patch b/boost-1.83-regex-test-fixes.patch new file mode 100644 index 0000000..b8745a4 --- /dev/null +++ b/boost-1.83-regex-test-fixes.patch @@ -0,0 +1,37 @@ +From 9c974cf22c53315d90a7c1bef7cea9b4f552d088 Mon Sep 17 00:00:00 2001 +From: Patrick Palka +Date: Wed, 6 Dec 2023 14:21:13 -0500 +Subject: [PATCH] Work around spurious Boost.Regex test failures + +--- + libs/regex/example/timer/regex_timer.cpp | 1 + + libs/regex/test/static_mutex/static_mutex_test.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/libs/regex/example/timer/regex_timer.cpp b/libs/regex/example/timer/regex_timer.cpp +index d121b70f1..bee544908 100644 +--- a/libs/regex/example/timer/regex_timer.cpp ++++ b/libs/regex/example/timer/regex_timer.cpp +@@ -13,6 +13,7 @@ + #pragma warning(disable: 4996 4127) + #endif + ++#define BOOST_TIMER_ENABLE_DEPRECATED + #include + #include + #include +diff --git a/libs/regex/test/static_mutex/static_mutex_test.cpp b/libs/regex/test/static_mutex/static_mutex_test.cpp +index be7500bd3..935e74525 100644 +--- a/libs/regex/test/static_mutex/static_mutex_test.cpp ++++ b/libs/regex/test/static_mutex/static_mutex_test.cpp +@@ -16,6 +16,7 @@ + * DESCRIPTION: test program for boost::static_mutex. + */ + ++#define BOOST_TIMER_ENABLE_DEPRECATED + #include + #include + #include +-- +2.43.0 + diff --git a/boost.spec b/boost.spec index b9caf1a..6e718c2 100644 --- a/boost.spec +++ b/boost.spec @@ -45,8 +45,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.81.0 -Release: 10%{?dist} +Version: 1.83.0 +Release: 0%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -58,7 +58,7 @@ License: BSL-1.0 AND MIT AND Python-2.0.1 %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2 +# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_83_0.tar.bz2 Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: @@ -156,12 +156,11 @@ Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/phoenix/issues/115 Patch6: boost-1.81-phoenix-multiple-defn.patch -# PR https://github.com/boostorg/accumulators/pull/54 -Patch7: boost-1.81.0-always-initialize-member-variable.patch - # https://github.com/boostorg/random/commit/7561690135c67ecf88c2133bad7680ebd2665c36 # https://github.com/boostorg/random/commit/4239d93dad32a11e4c3829050f8070d456266133 -Patch8: boost-1.81.0-random-test-fixes.patch +Patch7: boost-1.81.0-random-test-fixes.patch + +Patch8: boost-1.83-regex-test-fixes.patch %bcond_with tests %bcond_with docs_generated @@ -1292,6 +1291,12 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Dec 06 2023 Patrick Palka - 1.83.0-0 +- Rebase to 1.83.0 +- See https://fedoraproject.org/wiki/Changes/F40Boost183 +- Drop patch for accumulators library that has since been applied upstream. +- Fix spurious Boost.Regex test failures. + * Sun Oct 29 2023 Orion Poplawski - 1.81.0-10 - Rebuild for openmpi 5.0.0, drops support for i686 diff --git a/sources b/sources index 821b86a..651f8cd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_81_0.tar.bz2) = a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36 +SHA512 (boost_1_83_0.tar.bz2) = d133b521bd754dc35a9bd30d8032bd2fd866026d90af2179e43bfd7bd816841f7f3b84303f52c0e54aebc373f4e4edd601a8f5a5e0c47500e0e852e04198a711 From 73e87aacff5209c3154d9b650bc7dd3b7fcfc747 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 14:36:38 +0000 Subject: [PATCH 64/86] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 6e718c2..dd8ad69 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 0%{?dist} +Release: 1%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1291,6 +1291,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 1.83.0-1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Wed Dec 06 2023 Patrick Palka - 1.83.0-0 - Rebase to 1.83.0 - See https://fedoraproject.org/wiki/Changes/F40Boost183 From fe1d35be50bee32b3e42e0007b630b6519b3f034 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 23 Jan 2024 00:41:49 +0000 Subject: [PATCH 65/86] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index dd8ad69..abcd9c9 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 1%{?dist} +Release: 2%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1291,6 +1291,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jan 23 2024 Fedora Release Engineering - 1.83.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 1.83.0-1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 932a39a6871cab3dbd09aaaeba02949cbcf7290c Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Wed, 31 Jan 2024 19:14:40 +0000 Subject: [PATCH 66/86] Rebuild for ICU 74 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index abcd9c9..b61d3d9 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 2%{?dist} +Release: 3%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1291,6 +1291,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jan 31 2024 Pete Walter - 1.83.0-3 +- Rebuild for ICU 74 + * Tue Jan 23 2024 Fedora Release Engineering - 1.83.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From dce3f3406f4fde3e9896cd2b186b2e2924918ee5 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 5 May 2024 10:30:54 +0800 Subject: [PATCH 67/86] Add patch for addressing a Boost.Multiprecision bug This change addresses the issue of https://github.com/boostorg/multiprecision/issues/553, the fix prevents an application from crash due to an exception thrown in a function marked `noexcept`, when converting a `cpp_int` to a float, if the value of this `cpp_int` cannot be represented with a float. this issue is a regression in Boost 1.79, see more details at https://github.com/boostorg/multiprecision/pull/618 Signed-off-by: Kefu Chai --- ...1.83-multiprecision-convert-noexcept.patch | 78 +++++++++++++++++++ boost.spec | 9 ++- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-multiprecision-convert-noexcept.patch diff --git a/boost-1.83-multiprecision-convert-noexcept.patch b/boost-1.83-multiprecision-convert-noexcept.patch new file mode 100644 index 0000000..cdf5a09 --- /dev/null +++ b/boost-1.83-multiprecision-convert-noexcept.patch @@ -0,0 +1,78 @@ +From ea786494db78efdf178cbe36810f3326156e3347 Mon Sep 17 00:00:00 2001 +From: Kefu Chai +Date: Fri, 3 May 2024 15:08:05 +0800 +Subject: [PATCH] make sure eval_convert_to() do not terminate with super large + number + +this change is a follow-up of d51f2e9dbb. it intends to +address the exception thrown in a noexcept functon. + +a minimal reproducer looks like + +```c++ + +int main() { + std::string s = "32767456456456456456545678943512357658768763546575675"; + boost::multiprecision::cpp_int num(s); + std::cout << num.convert_to() << std::endl; +} +``` + +since boost 1.79, the code above terminates like +``` +Program returned: 139 +Program stderr +terminate called after throwing an instance of 'boost::wrapexcept' + what(): Error in function float_next(float): Argument must be finite, but got inf +Program terminated with signal: SIGSEGV +``` + +because `float_next_imp()` throws 'boost::wrapexcept' +if the number is NAN of INF. and `eval_convert_to()` is marked as +`noexcept(boost::multiprecision::detail::is_arithmetic::value && + std::numeric_limits::has_infinity)`, +but only `overflow_error` is ignored in the policy passed to +`float_next()`. + +so, in this change, `std::domain_error` is ignored as well, so that +``num.convert_to()` returns a NaN in this case. + +Refs #553 + +Signed-off-by: Kefu Chai +--- + include/boost/multiprecision/cpp_int/misc.hpp | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/include/boost/multiprecision/cpp_int/misc.hpp b/include/boost/multiprecision/cpp_int/misc.hpp +index cdae2f75..a8a76400 100644 +--- a/boost/multiprecision/cpp_int/misc.hpp ++++ b/boost/multiprecision/cpp_int/misc.hpp +@@ -184,7 +184,9 @@ eval_convert_to(R* result, const cpp_int_backend + inline BOOST_MP_CXX14_CONSTEXPR typename std::enable_if::value && !is_trivial_cpp_int >::value, void>::type +-eval_convert_to(R* result, const cpp_int_backend& backend) noexcept(boost::multiprecision::detail::is_arithmetic::value && std::numeric_limits::has_infinity) ++eval_convert_to(R* result, const cpp_int_backend& backend) noexcept(boost::multiprecision::detail::is_arithmetic::value && ++ (std::numeric_limits::has_infinity || ++ std::numeric_limits::has_quiet_NaN)) + { + BOOST_MP_FLOAT128_USING using std::ldexp; + if (eval_is_zero(backend)) +@@ -244,10 +246,11 @@ eval_convert_to(R* result, const cpp_int_backend(bits)) || eval_bit_test(backend, static_cast(bits + 1))) + { + #ifdef BOOST_MP_MATH_AVAILABLE +- BOOST_IF_CONSTEXPR(std::numeric_limits::has_infinity) ++ BOOST_IF_CONSTEXPR(std::numeric_limits::has_infinity || std::numeric_limits::has_quiet_NaN) + { + // Must NOT throw: +- *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error())); ++ *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error(), ++ boost::math::policies::domain_error())); + } + else + { +-- +2.44.0 + diff --git a/boost.spec b/boost.spec index b61d3d9..87ff47d 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 3%{?dist} +Release: 4%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -162,6 +162,9 @@ Patch7: boost-1.81.0-random-test-fixes.patch Patch8: boost-1.83-regex-test-fixes.patch +# https://github.com/boostorg/multiprecision/commit/ea786494db78efdf178cbe36810f3326156e3347 +Patch9: boost-1.83-multiprecision-convert-noexcept.patch + %bcond_with tests %bcond_with docs_generated @@ -1291,6 +1294,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun May 05 2024 Kefu Chai - 1.83.0-4 +- Add patch for Boost.Multiprecision bug + See https://github.com/boostorg/multiprecision/pull/618 + * Wed Jan 31 2024 Pete Walter - 1.83.0-3 - Rebuild for ICU 74 From e13a584ab74584d6f5a6c002fb10e11994b91f5b Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 25 May 2024 12:51:24 +0800 Subject: [PATCH 68/86] Add patch for addressing a Boost.Math bug This change addresses the issue of https://github.com/boostorg/math/issues/1132 the patch addresses the issue where float_next() and float_prior() return a domain error instead +INF or -INF. this issue is a regression in Boost 1.79. Signed-off-by: Kefu Chai --- ...t-float_next-INF-and-float_prior-INF.patch | 118 ++++++++++++++++++ boost.spec | 11 +- 2 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch diff --git a/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch b/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch new file mode 100644 index 0000000..d804a90 --- /dev/null +++ b/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch @@ -0,0 +1,118 @@ +From f3e0cde514e444c2e25a3522d05a6e244fb2f23a Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Fri, 17 May 2024 19:17:04 +0100 +Subject: [PATCH 1/2] Correct float_next(+INF) and float_prior(-INF) Fixes + https://github.com/boostorg/math/issues/1132 + +--- + include/boost/math/special_functions/next.hpp | 32 ++++++++++++++----- + test/test_next.cpp | 11 +++++-- + 2 files changed, 32 insertions(+), 11 deletions(-) + +diff --git a/include/boost/math/special_functions/next.hpp b/include/boost/math/special_functions/next.hpp +index c696b97b5..02a208e4e 100644 +--- a/boost/math/special_functions/next.hpp ++++ b/boost/math/special_functions/next.hpp +@@ -194,10 +194,14 @@ T float_next_imp(const T& val, const std::true_type&, const Policy& pol) + + int fpclass = (boost::math::fpclassify)(val); + +- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) ++ if (fpclass == (int)FP_INFINITE) + { +- if(val < 0) ++ if (val < 0) + return -tools::max_value(); ++ return val; // +INF ++ } ++ else if (fpclass == (int)FP_NAN) ++ { + return policies::raise_domain_error( + function, + "Argument must be finite, but got %1%", val, pol); +@@ -243,10 +247,14 @@ T float_next_imp(const T& val, const std::false_type&, const Policy& pol) + + int fpclass = (boost::math::fpclassify)(val); + +- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) ++ if (fpclass == (int)FP_INFINITE) + { +- if(val < 0) ++ if (val < 0) + return -tools::max_value(); ++ return val; // +INF ++ } ++ else if (fpclass == (int)FP_NAN) ++ { + return policies::raise_domain_error( + function, + "Argument must be finite, but got %1%", val, pol); +@@ -328,10 +336,14 @@ T float_prior_imp(const T& val, const std::true_type&, const Policy& pol) + + int fpclass = (boost::math::fpclassify)(val); + +- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) ++ if (fpclass == (int)FP_INFINITE) + { +- if(val > 0) ++ if (val > 0) + return tools::max_value(); ++ return val; // -INF ++ } ++ else if (fpclass == (int)FP_NAN) ++ { + return policies::raise_domain_error( + function, + "Argument must be finite, but got %1%", val, pol); +@@ -378,10 +390,14 @@ T float_prior_imp(const T& val, const std::false_type&, const Policy& pol) + + int fpclass = (boost::math::fpclassify)(val); + +- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) ++ if (fpclass == (int)FP_INFINITE) + { +- if(val > 0) ++ if (val > 0) + return tools::max_value(); ++ return val; // -INF ++ } ++ else if (fpclass == (int)FP_NAN) ++ { + return policies::raise_domain_error( + function, + "Argument must be finite, but got %1%", val, pol); +diff --git a/test/test_next.cpp b/test/test_next.cpp +index b4f05b437..8bb5f8d99 100644 +--- a/libs/math/test/test_next.cpp ++++ b/libs/math/test/test_next.cpp +@@ -171,12 +171,12 @@ void test_values(const T& val, const char* name) + BOOST_CHECK_EQUAL(boost::math::float_advance(val, primes[i]), v1); + BOOST_CHECK_EQUAL(boost::math::float_advance(val, -primes[i]), v2); + } +- if(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) ++ BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) + { + BOOST_CHECK_EQUAL(boost::math::float_prior(std::numeric_limits::infinity()), (std::numeric_limits::max)()); + BOOST_CHECK_EQUAL(boost::math::float_next(-std::numeric_limits::infinity()), -(std::numeric_limits::max)()); +- BOOST_MATH_CHECK_THROW(boost::math::float_prior(-std::numeric_limits::infinity()), std::domain_error); +- BOOST_MATH_CHECK_THROW(boost::math::float_next(std::numeric_limits::infinity()), std::domain_error); ++ BOOST_CHECK_EQUAL(boost::math::float_prior(-std::numeric_limits::infinity()), -std::numeric_limits::infinity()); ++ BOOST_CHECK_EQUAL(boost::math::float_next(std::numeric_limits::infinity()), std::numeric_limits::infinity()); + if(boost::math::policies:: BOOST_MATH_OVERFLOW_ERROR_POLICY == boost::math::policies::throw_on_error) + { + BOOST_MATH_CHECK_THROW(boost::math::float_prior(-(std::numeric_limits::max)()), std::overflow_error); +@@ -188,6 +188,11 @@ void test_values(const T& val, const char* name) + BOOST_CHECK_EQUAL(boost::math::float_next((std::numeric_limits::max)()), std::numeric_limits::infinity()); + } + } ++ BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_quiet_NaN)) ++ { ++ BOOST_MATH_CHECK_THROW(boost::math::float_prior((std::numeric_limits::quiet_NaN)()), std::domain_error); ++ BOOST_MATH_CHECK_THROW(boost::math::float_next((std::numeric_limits::quiet_NaN)()), std::domain_error); ++ } + // + // We need to test float_distance over multiple orders of magnitude, + // the only way to get an accurate true result is to count the representations +-- +2.45.1 + diff --git a/boost.spec b/boost.spec index 87ff47d..377b484 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 4%{?dist} +Release: 5%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -165,6 +165,10 @@ Patch8: boost-1.83-regex-test-fixes.patch # https://github.com/boostorg/multiprecision/commit/ea786494db78efdf178cbe36810f3326156e3347 Patch9: boost-1.83-multiprecision-convert-noexcept.patch +# https://github.com/boostorg/math/commit/f3e0cde514e444c2e25a3522d05a6e244fb2f23a +# https://github.com/boostorg/math/issues/1132 +Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch + %bcond_with tests %bcond_with docs_generated @@ -1294,6 +1298,11 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat May 25 2024 Kefu Chai - 1.83.0-5 +- Add patch to fix Boost.Math bug where float_next(+INF) and float_prior(-INF) + returns NaN, but they should return +INF and -INF respectively. + See https://github.com/boostorg/math/issues/1132 and its fix at + * Sun May 05 2024 Kefu Chai - 1.83.0-4 - Add patch for Boost.Multiprecision bug See https://github.com/boostorg/multiprecision/pull/618 From 531b5cfda3b6cfd5964ad80a3f253d77500911ad Mon Sep 17 00:00:00 2001 From: U2FsdGVkX1 Date: Thu, 6 Jun 2024 19:04:31 +0800 Subject: [PATCH 69/86] Backport patch to fix RISC-V functions missing --- ...-ABI-detection-for-empty-os-platform.patch | 37 +++++++++++++++++++ boost.spec | 8 +++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch diff --git a/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch b/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch new file mode 100644 index 0000000..c450275 --- /dev/null +++ b/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch @@ -0,0 +1,37 @@ +From 819c2d6423b4e0f55c5f69e334bf81570e82f68f Mon Sep 17 00:00:00 2001 +From: "Ivan A. Melnikov" +Date: Thu, 17 Aug 2023 14:15:03 +0400 +Subject: [PATCH] Fix ABI detection for empty 'os.platform' + +`in` operator in bjam always returns true if its first +argument has no elements[1]. This means that if `os.platform` +is empty (not detected), the construction introduced +in commit d039c8e4da79dbc76481236249e22892bfdde047 sets +ABI to `aapcs` on all platforms where `os.platform` is +empty, including, e.g. riscv64, and breaks build there. + +This commit refactors the condition to use '=' operator, +to make sure that when `os.platform` is empty we get +the default ABI value, and thus fixes build on riscv64. + +[1] https://www.boost.org/doc/libs/1_83_0/tools/build/doc/html/index.html#jam.language.flow_of_control + +Fixes: d039c8e4da79dbc76481236249e22892bfdde047 +--- + build/Jamfile.v2 | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 +index faaf892c..c07847ab 100644 +--- a/libs/context/build/Jamfile.v2 ++++ b/libs/context/build/Jamfile.v2 +@@ -79,7 +79,8 @@ local rule default_abi ( ) + local tmp = sysv ; + if [ os.name ] = "NT" { tmp = ms ; } + else if [ os.name ] = "CYGWIN" { tmp = ms ; } +- else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; } ++ else if [ os.platform ] = "ARM" { tmp = aapcs ; } ++ else if [ os.platform ] = "ARM64" { tmp = aapcs ; } + else if [ os.platform ] = "MIPS32" { tmp = o32 ; } + else if [ os.platform ] = "MIPS64" { tmp = n64 ; } + return $(tmp) ; diff --git a/boost.spec b/boost.spec index 377b484..109e42d 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 5%{?dist} +Release: 6%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -169,6 +169,9 @@ Patch9: boost-1.83-multiprecision-convert-noexcept.patch # https://github.com/boostorg/math/issues/1132 Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch +# https://github.com/boostorg/context/pull/234 +Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch + %bcond_with tests %bcond_with docs_generated @@ -1298,6 +1301,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun Jun 02 2024 Songsong Zhang - 1.83.0-6 +- Backport patch to fix RISC-V functions missing + * Sat May 25 2024 Kefu Chai - 1.83.0-5 - Add patch to fix Boost.Math bug where float_next(+INF) and float_prior(-INF) returns NaN, but they should return +INF and -INF respectively. From 74cf822853630eb9170624928fa6a1e0dbe85e2d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 6 Jun 2024 14:42:09 +0100 Subject: [PATCH 70/86] Add missing Requires for rpminspect errors --- boost.spec | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/boost.spec b/boost.spec index 109e42d..c470afa 100644 --- a/boost.spec +++ b/boost.spec @@ -236,6 +236,7 @@ provides a sort of cooperative multitasking on a single thread. %package coroutine Summary: Run-time component of boost coroutine library +Requires: %{name}-context%{?_isa} = %{version}-%{release} %description coroutine Run-time support for Boost.Coroutine, a library that provides @@ -255,6 +256,8 @@ on generic programming concepts. %if %{with context} %package fiber Summary: Run-time component of boost fiber library +Requires: %{name}-context%{?_isa} = %{version}-%{release} +Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} %description fiber @@ -264,6 +267,7 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library +Requires: %{name}-atomic%{?_isa} = %{version}-%{release} Requires: %{name}-system%{?_isa} = %{version}-%{release} %description filesystem @@ -292,6 +296,7 @@ stream buffers and i/o filters. %package json Summary: Run-time component of boost json library +Requires: %{name}-container%{?_isa} = %{version}-%{release} %description json @@ -312,6 +317,11 @@ handling tools. %package log Summary: Run-time component of boost logging library +Requires: %{name}-atomic%{?_isa} = %{version}-%{release} +Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} +Requires: %{name}-regex%{?_isa} = %{version}-%{release} +Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description log @@ -444,6 +454,7 @@ with as little as one #include and one additional line of code. Summary: Run-time component of boost type erasure library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} Requires: %{name}-system%{?_isa} = %{version}-%{release} +Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description type_erasure @@ -1301,6 +1312,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jun 06 2024 Jonathan Wakely - 1.83.0-6 +- Add missing Requires for rpminspect errors. + * Sun Jun 02 2024 Songsong Zhang - 1.83.0-6 - Backport patch to fix RISC-V functions missing From 8a9a6c507334fc2cbefc87cd75fa6ee870d9112d Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sat, 8 Jun 2024 08:07:49 +0200 Subject: [PATCH 71/86] Rebuilt for Python 3.13 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index c470afa..0365460 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 6%{?dist} +Release: 7%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1312,6 +1312,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat Jun 08 2024 Python Maint - 1.83.0-7 +- Rebuilt for Python 3.13 + * Thu Jun 06 2024 Jonathan Wakely - 1.83.0-6 - Add missing Requires for rpminspect errors. From 750fb0618c574759f416bd1808e667210a29306f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 18:30:44 +0000 Subject: [PATCH 72/86] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 0365460..641ff06 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 7%{?dist} +Release: 8%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1312,6 +1312,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 1.83.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Sat Jun 08 2024 Python Maint - 1.83.0-7 - Rebuilt for Python 3.13 From a893d9ada9fc10ebadc9b9e381bf39c1f2b5ca30 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 1 Aug 2024 09:36:55 -0700 Subject: [PATCH 73/86] Handle RPM 4.20 build directory change RPM 4.20 adds another level to the build directory path, see https://github.com/rpm-software-management/rpm/issues/3147 . This tries to handle it. Signed-off-by: Adam Williamson --- tests/boost-testsuite-sanity/runtest.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index 76e3d45..2bc6957 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -58,15 +58,22 @@ rlJournalStart rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/rpmbuild.log" rlRun "toplev_dirname=`awk '/toplev_dirname/{print $3; exit}' $TmpDir/rpmbuild.log`" - rlRun "cd $TmpDir/BUILD/$toplev_dirname" + cd $TmpDir/BUILD/$toplev_dirname + if [ $? -ne 0 ]; then + # handle rpm 4.20 build directory difference + # https://github.com/rpm-software-management/rpm/issues/3147 + rlRun "cd $TmpDir/BUILD/*-build/$toplev_dirname" + fi + # now we know the top-level build dir, keep it for later + rlRun "BuildDir=$(pwd)" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/bootstrap.log" rlPhaseEnd rlPhaseStartTest "run testsuite" while read test_path; do - if [ -f $TmpDir/BUILD/boost*/libs/$test_path/test/Jamfile* ]; then - rlRun "cd $TmpDir/BUILD/$toplev_dirname/libs/$test_path/test" + if [ -f $BuildDir/libs/$test_path/test/Jamfile* ]; then + rlRun "cd $BuildDir/libs/$test_path/test" rlRun "su -c '/usr/bin/b2 -d1 --build-dir=$TmpDir/test-build &>>$TmpDir/testsuite.log' $BUILD_USER" rm -fr $TmpDir/test-build else From 0d18786666b311b8194ef756883784cea5222933 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Fri, 6 Dec 2024 12:34:24 +0000 Subject: [PATCH 74/86] Rebuild for ICU 76 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 641ff06..3665ded 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 8%{?dist} +Release: 9%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1312,6 +1312,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Dec 06 2024 Pete Walter - 1.83.0-9 +- Rebuild for ICU 76 + * Wed Jul 17 2024 Fedora Release Engineering - 1.83.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 3cc264041a555dea7bab3bcd5b9edfa655c79808 Mon Sep 17 00:00:00 2001 From: Sandro Date: Wed, 25 Dec 2024 09:40:28 +0100 Subject: [PATCH 75/86] Backport patches for NumPy 2.x Fix build error since upgrade to NumPy 2.x. --- boost-1.83-NumPy-2.x-dtype.patch | 51 ++++++++++++++++++++++++++++++++ boost.spec | 9 +++++- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-NumPy-2.x-dtype.patch diff --git a/boost-1.83-NumPy-2.x-dtype.patch b/boost-1.83-NumPy-2.x-dtype.patch new file mode 100644 index 0000000..20fba56 --- /dev/null +++ b/boost-1.83-NumPy-2.x-dtype.patch @@ -0,0 +1,51 @@ +Submodule libs/python 47d5bc76f6..8d15ce0517: +diff --git a/libs/python/src/numpy/dtype.cpp b/libs/python/src/numpy/dtype.cpp +index 88a20a27..1ce8c6ec 100644 +--- a/libs/python/src/numpy/dtype.cpp ++++ b/libs/python/src/numpy/dtype.cpp +@@ -98,37 +98,18 @@ python::detail::new_reference dtype::convert(object const & arg, bool align) + return python::detail::new_reference(reinterpret_cast(obj)); + } + +-int dtype::get_itemsize() const { return reinterpret_cast(ptr())->elsize;} +- +-bool equivalent(dtype const & a, dtype const & b) { +- // On Windows x64, the behaviour described on +- // http://docs.scipy.org/doc/numpy/reference/c-api.array.html for +- // PyArray_EquivTypes unfortunately does not extend as expected: +- // "For example, on 32-bit platforms, NPY_LONG and NPY_INT are equivalent". +- // This should also hold for 64-bit platforms (and does on Linux), but not +- // on Windows. Implement an alternative: +-#ifdef _MSC_VER +- if (sizeof(long) == sizeof(int) && +- // Manually take care of the type equivalence. +- ((a == dtype::get_builtin() || a == dtype::get_builtin()) && +- (b == dtype::get_builtin() || b == dtype::get_builtin()) || +- (a == dtype::get_builtin() || a == dtype::get_builtin()) && +- (b == dtype::get_builtin() || b == dtype::get_builtin()))) { +- return true; +- } else { +- return PyArray_EquivTypes( +- reinterpret_cast(a.ptr()), +- reinterpret_cast(b.ptr()) +- ); +- } ++int dtype::get_itemsize() const { ++#if NPY_ABI_VERSION < 0x02000000 ++ return reinterpret_cast(ptr())->elsize; + #else +- return PyArray_EquivTypes( +- reinterpret_cast(a.ptr()), +- reinterpret_cast(b.ptr()) +- ); ++ return PyDataType_ELSIZE(reinterpret_cast(ptr())); + #endif + } + ++bool equivalent(dtype const & a, dtype const & b) { ++ return a == b; ++} ++ + namespace + { + diff --git a/boost.spec b/boost.spec index 3665ded..51abe6c 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 9%{?dist} +Release: 10%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -172,6 +172,10 @@ Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch # https://github.com/boostorg/context/pull/234 Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch +# https://github.com/boostorg/python/pull/432 +# https://github.com/boostorg/python/pull/443 +Patch12: boost-1.83-NumPy-2.x-dtype.patch + %bcond_with tests %bcond_with docs_generated @@ -1312,6 +1316,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Dec 24 2024 Sandro - 1.83.0-10 +- Backport patches for NumPy 2.x + * Fri Dec 06 2024 Pete Walter - 1.83.0-9 - Rebuild for ICU 76 From 7e04e7d896185a3401be25d98b80fe60a4dd057e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 12:45:41 +0000 Subject: [PATCH 76/86] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 51abe6c..5bee3e4 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 10%{?dist} +Release: 11%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1316,6 +1316,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 1.83.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Tue Dec 24 2024 Sandro - 1.83.0-10 - Backport patches for NumPy 2.x From bd0476d632fbe90d4bab658555498bc5d0c4f769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= Date: Sun, 26 Jan 2025 07:12:21 +0100 Subject: [PATCH 77/86] =?UTF-8?q?Fix=20no=20member=20named=20=E2=80=98that?= =?UTF-8?q?=E2=80=99=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add boost-1.83-fix-no-member-named_that_error.patch - Fixes FTBS of Poedit (#2341086) --- ...-1.83-fix-no-member-named_that_error.patch | 24 +++++++++++++++++++ boost.spec | 8 ++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-fix-no-member-named_that_error.patch diff --git a/boost-1.83-fix-no-member-named_that_error.patch b/boost-1.83-fix-no-member-named_that_error.patch new file mode 100644 index 0000000..e3efd01 --- /dev/null +++ b/boost-1.83-fix-no-member-named_that_error.patch @@ -0,0 +1,24 @@ +From 49ccf9c30a0ca556873dbf64b12b0d741d1b3e66 Mon Sep 17 00:00:00 2001 +From: Arvid Norlander +Date: Fri, 8 Nov 2024 16:48:43 +0100 +Subject: [PATCH] Fix build on clang-19 (which checks more things in + uninstantiated templates) + +Fixes issue #402 +--- + include/boost/thread/future.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/boost/thread/future.hpp b/include/boost/thread/future.hpp +index 00f504b9b..d15d7ffa5 100644 +--- a/boost/thread/future.hpp ++++ b/boost/thread/future.hpp +@@ -4668,7 +4668,7 @@ namespace detail + } + run_it& operator=(BOOST_THREAD_RV_REF(run_it) x) BOOST_NOEXCEPT { + if (this != &x) { +- that_=x.that; ++ that_=x.that_; + x.that_.reset(); + } + return *this; diff --git a/boost.spec b/boost.spec index 5bee3e4..bfe9734 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 11%{?dist} +Release: 12%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -176,6 +176,9 @@ Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch # https://github.com/boostorg/python/pull/443 Patch12: boost-1.83-NumPy-2.x-dtype.patch +# https://github.com/boostorg/thread/pull/408 +Patch13: boost-1.83-fix-no-member-named_that_error.patch + %bcond_with tests %bcond_with docs_generated @@ -1316,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun Jan 26 2025 Wolfgang Stöggl - 1.83.0-12 +- Add boost-1.83-fix-no-member-named_that_error.patch + * Thu Jan 16 2025 Fedora Release Engineering - 1.83.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 9784bfcbb73eaf9a4dd9f957bd2010132ef1bfae Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 12:29:48 +0200 Subject: [PATCH 78/86] Rebuilt for Python 3.14 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index bfe9734..bedf7fb 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 12%{?dist} +Release: 13%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 03 2025 Python Maint - 1.83.0-13 +- Rebuilt for Python 3.14 + * Sun Jan 26 2025 Wolfgang Stöggl - 1.83.0-12 - Add boost-1.83-fix-no-member-named_that_error.patch From bb27bd2d277781963b1beb3b91d97f84d1502126 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 17:49:38 +0000 Subject: [PATCH 79/86] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index bedf7fb..69e4c16 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 13%{?dist} +Release: 14%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 1.83.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Tue Jun 03 2025 Python Maint - 1.83.0-13 - Rebuilt for Python 3.14 From 2f2bd5aba365ed9654e433cfec56bb5d2061f44c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 5 Aug 2025 19:09:43 +0200 Subject: [PATCH 80/86] Rebuilt for icu 77.1 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 69e4c16..1450943 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 14%{?dist} +Release: 15%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Aug 05 2025 František Zatloukal - 1.83.0-15 +- Rebuilt for icu 77.1 + * Wed Jul 23 2025 Fedora Release Engineering - 1.83.0-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 4a984a62382c623952a7b8af920c968396e5b9fa Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 12:40:18 +0200 Subject: [PATCH 81/86] Rebuilt for Python 3.14.0rc2 bytecode --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 1450943..a0bf4ab 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 15%{?dist} +Release: 16%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Aug 15 2025 Python Maint - 1.83.0-16 +- Rebuilt for Python 3.14.0rc2 bytecode + * Tue Aug 05 2025 František Zatloukal - 1.83.0-15 - Rebuilt for icu 77.1 From 403199971d68ea1dd634043f6cc0eafcf5216bf1 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 12:09:30 +0200 Subject: [PATCH 82/86] Rebuilt for Python 3.14.0rc3 bytecode --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index a0bf4ab..66aa53d 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 16%{?dist} +Release: 17%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Sep 19 2025 Python Maint - 1.83.0-17 +- Rebuilt for Python 3.14.0rc3 bytecode + * Fri Aug 15 2025 Python Maint - 1.83.0-16 - Rebuilt for Python 3.14.0rc2 bytecode From ec7383f6bdb448f5846ef7a8f2f527c4bc3cc965 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 9 Dec 2025 12:24:09 +0000 Subject: [PATCH 83/86] Rebase to 1.90.0 See https://fedoraproject.org/wiki/Changes/F44_Boost_1_90 Drop boost-system subpackage and libboost_thread.so linker script Add new boost-charconv, boost-cobalt, and boost-process subpackages --- ...5.0-remove-deprecated-boost-iterator.patch | 114 ---------- boost-1.76.0-random-test.patch | 34 --- boost-1.78.0-no-rpath.patch | 31 --- boost-1.81-phoenix-multiple-defn.patch | 20 -- boost-1.81.0-random-test-fixes.patch | 28 --- ...-ABI-detection-for-empty-os-platform.patch | 37 --- boost-1.83-NumPy-2.x-dtype.patch | 51 ----- ...-1.83-fix-no-member-named_that_error.patch | 24 -- ...t-float_next-INF-and-float_prior-INF.patch | 118 ---------- ...1.83-multiprecision-convert-noexcept.patch | 78 ------- boost-1.83-regex-test-fixes.patch | 37 --- boost-1.90-system.patch | 42 ++++ boost-1.90.0-no-rpath.patch | 31 +++ boost.spec | 212 +++++++++++------- libboost_thread.so | 21 -- sources | 2 +- 16 files changed, 203 insertions(+), 677 deletions(-) delete mode 100644 boost-1.75.0-remove-deprecated-boost-iterator.patch delete mode 100644 boost-1.76.0-random-test.patch delete mode 100644 boost-1.78.0-no-rpath.patch delete mode 100644 boost-1.81-phoenix-multiple-defn.patch delete mode 100644 boost-1.81.0-random-test-fixes.patch delete mode 100644 boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch delete mode 100644 boost-1.83-NumPy-2.x-dtype.patch delete mode 100644 boost-1.83-fix-no-member-named_that_error.patch delete mode 100644 boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch delete mode 100644 boost-1.83-multiprecision-convert-noexcept.patch delete mode 100644 boost-1.83-regex-test-fixes.patch create mode 100644 boost-1.90-system.patch create mode 100644 boost-1.90.0-no-rpath.patch delete mode 100644 libboost_thread.so diff --git a/boost-1.75.0-remove-deprecated-boost-iterator.patch b/boost-1.75.0-remove-deprecated-boost-iterator.patch deleted file mode 100644 index 6341174..0000000 --- a/boost-1.75.0-remove-deprecated-boost-iterator.patch +++ /dev/null @@ -1,114 +0,0 @@ -From f364ee7be2bb1a44a2724d92f67490deaf19dc5e Mon Sep 17 00:00:00 2001 -From: Andrey Semashev -Date: Mon, 11 May 2020 19:59:23 +0300 -Subject: [PATCH] Removed usage of deprecated header boost/detail/iterator.hpp. - -The header was deprecated in favor of . It generates compiler -warnings and will be removed in a future release. ---- - boost/detail/algorithm.hpp | 2 +- - boost/graph/adjacency_iterator.hpp | 6 +++--- - boost/graph/detail/adjacency_list.hpp | 5 +++-- - boost/graph/incremental_components.hpp | 6 +++--- - 4 files changed, 10 insertions(+), 9 deletions(-) - -diff --git a/boost/detail/algorithm.hpp b/boost/detail/algorithm.hpp -index 7793fb357..9b3195cbf 100644 ---- a/boost/detail/algorithm.hpp -+++ b/boost/detail/algorithm.hpp -@@ -30,7 +30,7 @@ - - #ifndef BOOST_ALGORITHM_HPP - #define BOOST_ALGORITHM_HPP --#include -+ - // Algorithms on sequences - // - // The functions in this file have not yet gone through formal -diff --git a/boost/graph/adjacency_iterator.hpp b/boost/graph/adjacency_iterator.hpp -index 5325e7875..4693e3a3a 100644 ---- a/boost/graph/adjacency_iterator.hpp -+++ b/boost/graph/adjacency_iterator.hpp -@@ -10,7 +10,7 @@ - #ifndef BOOST_ADJACENCY_ITERATOR_HPP - #define BOOST_ADJACENCY_ITERATOR_HPP - --#include -+#include - #include - #include - -@@ -45,7 +45,7 @@ template < class Graph, - class adjacency_iterator_generator - { - typedef -- typename boost::detail::iterator_traits< OutEdgeIter >::difference_type -+ typename std::iterator_traits< OutEdgeIter >::difference_type - difference_type; - - public: -@@ -81,7 +81,7 @@ template < class Graph, - class inv_adjacency_iterator_generator - { - typedef -- typename boost::detail::iterator_traits< InEdgeIter >::difference_type -+ typename std::iterator_traits< InEdgeIter >::difference_type - difference_type; - - public: -diff --git a/boost/graph/detail/adjacency_list.hpp b/boost/graph/detail/adjacency_list.hpp -index 4b11fa516..c1a2ada23 100644 ---- a/boost/graph/detail/adjacency_list.hpp -+++ b/boost/graph/detail/adjacency_list.hpp -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -2370,7 +2371,7 @@ namespace detail - typedef typename OutEdgeList::size_type degree_size_type; - typedef typename OutEdgeList::iterator OutEdgeIter; - -- typedef boost::detail::iterator_traits< OutEdgeIter > -+ typedef std::iterator_traits< OutEdgeIter > - OutEdgeIterTraits; - typedef - typename OutEdgeIterTraits::iterator_category OutEdgeIterCat; -@@ -2398,7 +2399,7 @@ namespace detail - - // Edge Iterator - -- typedef boost::detail::iterator_traits< EdgeIter > EdgeIterTraits; -+ typedef std::iterator_traits< EdgeIter > EdgeIterTraits; - typedef typename EdgeIterTraits::iterator_category EdgeIterCat; - typedef typename EdgeIterTraits::difference_type EdgeIterDiff; - -diff --git a/boost/graph/incremental_components.hpp b/boost/graph/incremental_components.hpp -index 1ad8c9403..f16882e2a 100644 ---- a/boost/graph/incremental_components.hpp -+++ b/boost/graph/incremental_components.hpp -@@ -13,10 +13,10 @@ - #ifndef BOOST_INCREMENTAL_COMPONENTS_HPP - #define BOOST_INCREMENTAL_COMPONENTS_HPP - --#include -+#include - #include - #include --#include -+#include - #include - #include - -@@ -69,7 +69,7 @@ void compress_components(ParentIterator first, ParentIterator last) - } - - template < class ParentIterator > --typename boost::detail::iterator_traits< ParentIterator >::difference_type -+typename std::iterator_traits< ParentIterator >::difference_type - component_count(ParentIterator first, ParentIterator last) - { - std::ptrdiff_t count = 0; diff --git a/boost-1.76.0-random-test.patch b/boost-1.76.0-random-test.patch deleted file mode 100644 index 5ce7477..0000000 --- a/boost-1.76.0-random-test.patch +++ /dev/null @@ -1,34 +0,0 @@ -From c3ada7a1b2b54f4b27585f72308a76984f8489b4 Mon Sep 17 00:00:00 2001 -From: jzmaddock -Date: Tue, 16 Mar 2021 10:47:16 +0000 -Subject: [PATCH] Add missing #includes. - ---- - test/multiprecision_float_test.cpp | 1 + - test/multiprecision_int_test.cpp | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/test/multiprecision_float_test.cpp b/test/multiprecision_float_test.cpp -index 904c59d8f..bc2a9364d 100644 ---- boost_1_76_0/libs/random/test/multiprecision_float_test.cpp -+++ boost_1_76_0/libs/random/test/multiprecision_float_test.cpp -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - #include - - -diff --git a/test/multiprecision_int_test.cpp b/test/multiprecision_int_test.cpp -index 577e52aff..41ec229b5 100644 ---- boost_1_76_0/libs/random/test/multiprecision_int_test.cpp -+++ boost_1_76_0/libs/random/test/multiprecision_int_test.cpp -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - #include - - typedef boost::mpl::list < diff --git a/boost-1.78.0-no-rpath.patch b/boost-1.78.0-no-rpath.patch deleted file mode 100644 index 6f0f9d1..0000000 --- a/boost-1.78.0-no-rpath.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001 -From: Patrick Palka -Date: Mon, 4 Dec 2023 09:27:13 -0500 -Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds - ---- - tools/build/src/tools/gcc.jam | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index c753afc23..e0b627726 100644 ---- a/tools/build/src/tools/gcc.jam -+++ b/tools/build/src/tools/gcc.jam -@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * ) - - actions link bind LIBRARIES - { -- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) -+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) - } - - actions link.dll bind LIBRARIES - { -- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) -+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) - } - - ### --- -2.43.0 - diff --git a/boost-1.81-phoenix-multiple-defn.patch b/boost-1.81-phoenix-multiple-defn.patch deleted file mode 100644 index 6deaa40..0000000 --- a/boost-1.81-phoenix-multiple-defn.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- boost_1_81_0/boost/phoenix/stl/tuple.hpp~ 2023-03-15 09:31:59.327721489 +0000 -+++ boost_1_81_0/boost/phoenix/stl/tuple.hpp 2023-03-15 09:32:02.787722445 +0000 -@@ -106,14 +106,16 @@ - tuple_detail::idx_wrap(), t); - } - -+#ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS - // Make unpacked argument placeholders - namespace placeholders { - #define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT) - #define BOOST_PP_LOCAL_MACRO(N) \ -- auto uarg##N = \ -+ const auto uarg##N = \ - boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1); - #include BOOST_PP_LOCAL_ITERATE() - } -+#endif - }} // namespace boost::phoenix - - #endif // C++ 14 diff --git a/boost-1.81.0-random-test-fixes.patch b/boost-1.81.0-random-test-fixes.patch deleted file mode 100644 index 0b493c6..0000000 --- a/boost-1.81.0-random-test-fixes.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -up boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_float_test.cpp ---- boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix 2023-08-29 16:07:40.127905519 -0400 -+++ boost_1_81_0/libs/random/test/multiprecision_float_test.cpp 2023-08-29 16:08:44.114856281 -0400 -@@ -77,7 +77,7 @@ typedef boost::mpl::list < - boost::random::lognormal_distribution, - boost::random::normal_distribution, - #ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -- boost::random::piecewise_constant_distribution, -+ boost::random::piecewise_constant_distribution, - boost::random::piecewise_linear_distribution, - #endif - boost::random::student_t_distribution, -diff -up boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_int_test.cpp ---- boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix 2023-08-29 16:06:58.543287627 -0400 -+++ boost_1_81_0/libs/random/test/multiprecision_int_test.cpp 2023-08-29 16:07:26.788707316 -0400 -@@ -216,7 +216,11 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(discrete_d - ss >> d2; - BOOST_CHECK(d == d2); - -- boost::random::independent_bits_engine::digits, boost::multiprecision::uint1024_t > big_random; -+ // -+ // The number of digits in the independent_bits_engine must be low enough that we don't overflow -+ // when converting to a double (see other_distributions declared above). -+ // -+ boost::random::independent_bits_engine::digits - 2, boost::multiprecision::uint1024_t > big_random; - for(unsigned i = 0; i < 200; ++i) - { - result_type r = d(big_random); diff --git a/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch b/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch deleted file mode 100644 index c450275..0000000 --- a/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 819c2d6423b4e0f55c5f69e334bf81570e82f68f Mon Sep 17 00:00:00 2001 -From: "Ivan A. Melnikov" -Date: Thu, 17 Aug 2023 14:15:03 +0400 -Subject: [PATCH] Fix ABI detection for empty 'os.platform' - -`in` operator in bjam always returns true if its first -argument has no elements[1]. This means that if `os.platform` -is empty (not detected), the construction introduced -in commit d039c8e4da79dbc76481236249e22892bfdde047 sets -ABI to `aapcs` on all platforms where `os.platform` is -empty, including, e.g. riscv64, and breaks build there. - -This commit refactors the condition to use '=' operator, -to make sure that when `os.platform` is empty we get -the default ABI value, and thus fixes build on riscv64. - -[1] https://www.boost.org/doc/libs/1_83_0/tools/build/doc/html/index.html#jam.language.flow_of_control - -Fixes: d039c8e4da79dbc76481236249e22892bfdde047 ---- - build/Jamfile.v2 | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 -index faaf892c..c07847ab 100644 ---- a/libs/context/build/Jamfile.v2 -+++ b/libs/context/build/Jamfile.v2 -@@ -79,7 +79,8 @@ local rule default_abi ( ) - local tmp = sysv ; - if [ os.name ] = "NT" { tmp = ms ; } - else if [ os.name ] = "CYGWIN" { tmp = ms ; } -- else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; } -+ else if [ os.platform ] = "ARM" { tmp = aapcs ; } -+ else if [ os.platform ] = "ARM64" { tmp = aapcs ; } - else if [ os.platform ] = "MIPS32" { tmp = o32 ; } - else if [ os.platform ] = "MIPS64" { tmp = n64 ; } - return $(tmp) ; diff --git a/boost-1.83-NumPy-2.x-dtype.patch b/boost-1.83-NumPy-2.x-dtype.patch deleted file mode 100644 index 20fba56..0000000 --- a/boost-1.83-NumPy-2.x-dtype.patch +++ /dev/null @@ -1,51 +0,0 @@ -Submodule libs/python 47d5bc76f6..8d15ce0517: -diff --git a/libs/python/src/numpy/dtype.cpp b/libs/python/src/numpy/dtype.cpp -index 88a20a27..1ce8c6ec 100644 ---- a/libs/python/src/numpy/dtype.cpp -+++ b/libs/python/src/numpy/dtype.cpp -@@ -98,37 +98,18 @@ python::detail::new_reference dtype::convert(object const & arg, bool align) - return python::detail::new_reference(reinterpret_cast(obj)); - } - --int dtype::get_itemsize() const { return reinterpret_cast(ptr())->elsize;} -- --bool equivalent(dtype const & a, dtype const & b) { -- // On Windows x64, the behaviour described on -- // http://docs.scipy.org/doc/numpy/reference/c-api.array.html for -- // PyArray_EquivTypes unfortunately does not extend as expected: -- // "For example, on 32-bit platforms, NPY_LONG and NPY_INT are equivalent". -- // This should also hold for 64-bit platforms (and does on Linux), but not -- // on Windows. Implement an alternative: --#ifdef _MSC_VER -- if (sizeof(long) == sizeof(int) && -- // Manually take care of the type equivalence. -- ((a == dtype::get_builtin() || a == dtype::get_builtin()) && -- (b == dtype::get_builtin() || b == dtype::get_builtin()) || -- (a == dtype::get_builtin() || a == dtype::get_builtin()) && -- (b == dtype::get_builtin() || b == dtype::get_builtin()))) { -- return true; -- } else { -- return PyArray_EquivTypes( -- reinterpret_cast(a.ptr()), -- reinterpret_cast(b.ptr()) -- ); -- } -+int dtype::get_itemsize() const { -+#if NPY_ABI_VERSION < 0x02000000 -+ return reinterpret_cast(ptr())->elsize; - #else -- return PyArray_EquivTypes( -- reinterpret_cast(a.ptr()), -- reinterpret_cast(b.ptr()) -- ); -+ return PyDataType_ELSIZE(reinterpret_cast(ptr())); - #endif - } - -+bool equivalent(dtype const & a, dtype const & b) { -+ return a == b; -+} -+ - namespace - { - diff --git a/boost-1.83-fix-no-member-named_that_error.patch b/boost-1.83-fix-no-member-named_that_error.patch deleted file mode 100644 index e3efd01..0000000 --- a/boost-1.83-fix-no-member-named_that_error.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 49ccf9c30a0ca556873dbf64b12b0d741d1b3e66 Mon Sep 17 00:00:00 2001 -From: Arvid Norlander -Date: Fri, 8 Nov 2024 16:48:43 +0100 -Subject: [PATCH] Fix build on clang-19 (which checks more things in - uninstantiated templates) - -Fixes issue #402 ---- - include/boost/thread/future.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/boost/thread/future.hpp b/include/boost/thread/future.hpp -index 00f504b9b..d15d7ffa5 100644 ---- a/boost/thread/future.hpp -+++ b/boost/thread/future.hpp -@@ -4668,7 +4668,7 @@ namespace detail - } - run_it& operator=(BOOST_THREAD_RV_REF(run_it) x) BOOST_NOEXCEPT { - if (this != &x) { -- that_=x.that; -+ that_=x.that_; - x.that_.reset(); - } - return *this; diff --git a/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch b/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch deleted file mode 100644 index d804a90..0000000 --- a/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch +++ /dev/null @@ -1,118 +0,0 @@ -From f3e0cde514e444c2e25a3522d05a6e244fb2f23a Mon Sep 17 00:00:00 2001 -From: jzmaddock -Date: Fri, 17 May 2024 19:17:04 +0100 -Subject: [PATCH 1/2] Correct float_next(+INF) and float_prior(-INF) Fixes - https://github.com/boostorg/math/issues/1132 - ---- - include/boost/math/special_functions/next.hpp | 32 ++++++++++++++----- - test/test_next.cpp | 11 +++++-- - 2 files changed, 32 insertions(+), 11 deletions(-) - -diff --git a/include/boost/math/special_functions/next.hpp b/include/boost/math/special_functions/next.hpp -index c696b97b5..02a208e4e 100644 ---- a/boost/math/special_functions/next.hpp -+++ b/boost/math/special_functions/next.hpp -@@ -194,10 +194,14 @@ T float_next_imp(const T& val, const std::true_type&, const Policy& pol) - - int fpclass = (boost::math::fpclassify)(val); - -- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) -+ if (fpclass == (int)FP_INFINITE) - { -- if(val < 0) -+ if (val < 0) - return -tools::max_value(); -+ return val; // +INF -+ } -+ else if (fpclass == (int)FP_NAN) -+ { - return policies::raise_domain_error( - function, - "Argument must be finite, but got %1%", val, pol); -@@ -243,10 +247,14 @@ T float_next_imp(const T& val, const std::false_type&, const Policy& pol) - - int fpclass = (boost::math::fpclassify)(val); - -- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) -+ if (fpclass == (int)FP_INFINITE) - { -- if(val < 0) -+ if (val < 0) - return -tools::max_value(); -+ return val; // +INF -+ } -+ else if (fpclass == (int)FP_NAN) -+ { - return policies::raise_domain_error( - function, - "Argument must be finite, but got %1%", val, pol); -@@ -328,10 +336,14 @@ T float_prior_imp(const T& val, const std::true_type&, const Policy& pol) - - int fpclass = (boost::math::fpclassify)(val); - -- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) -+ if (fpclass == (int)FP_INFINITE) - { -- if(val > 0) -+ if (val > 0) - return tools::max_value(); -+ return val; // -INF -+ } -+ else if (fpclass == (int)FP_NAN) -+ { - return policies::raise_domain_error( - function, - "Argument must be finite, but got %1%", val, pol); -@@ -378,10 +390,14 @@ T float_prior_imp(const T& val, const std::false_type&, const Policy& pol) - - int fpclass = (boost::math::fpclassify)(val); - -- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) -+ if (fpclass == (int)FP_INFINITE) - { -- if(val > 0) -+ if (val > 0) - return tools::max_value(); -+ return val; // -INF -+ } -+ else if (fpclass == (int)FP_NAN) -+ { - return policies::raise_domain_error( - function, - "Argument must be finite, but got %1%", val, pol); -diff --git a/test/test_next.cpp b/test/test_next.cpp -index b4f05b437..8bb5f8d99 100644 ---- a/libs/math/test/test_next.cpp -+++ b/libs/math/test/test_next.cpp -@@ -171,12 +171,12 @@ void test_values(const T& val, const char* name) - BOOST_CHECK_EQUAL(boost::math::float_advance(val, primes[i]), v1); - BOOST_CHECK_EQUAL(boost::math::float_advance(val, -primes[i]), v2); - } -- if(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) -+ BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) - { - BOOST_CHECK_EQUAL(boost::math::float_prior(std::numeric_limits::infinity()), (std::numeric_limits::max)()); - BOOST_CHECK_EQUAL(boost::math::float_next(-std::numeric_limits::infinity()), -(std::numeric_limits::max)()); -- BOOST_MATH_CHECK_THROW(boost::math::float_prior(-std::numeric_limits::infinity()), std::domain_error); -- BOOST_MATH_CHECK_THROW(boost::math::float_next(std::numeric_limits::infinity()), std::domain_error); -+ BOOST_CHECK_EQUAL(boost::math::float_prior(-std::numeric_limits::infinity()), -std::numeric_limits::infinity()); -+ BOOST_CHECK_EQUAL(boost::math::float_next(std::numeric_limits::infinity()), std::numeric_limits::infinity()); - if(boost::math::policies:: BOOST_MATH_OVERFLOW_ERROR_POLICY == boost::math::policies::throw_on_error) - { - BOOST_MATH_CHECK_THROW(boost::math::float_prior(-(std::numeric_limits::max)()), std::overflow_error); -@@ -188,6 +188,11 @@ void test_values(const T& val, const char* name) - BOOST_CHECK_EQUAL(boost::math::float_next((std::numeric_limits::max)()), std::numeric_limits::infinity()); - } - } -+ BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_quiet_NaN)) -+ { -+ BOOST_MATH_CHECK_THROW(boost::math::float_prior((std::numeric_limits::quiet_NaN)()), std::domain_error); -+ BOOST_MATH_CHECK_THROW(boost::math::float_next((std::numeric_limits::quiet_NaN)()), std::domain_error); -+ } - // - // We need to test float_distance over multiple orders of magnitude, - // the only way to get an accurate true result is to count the representations --- -2.45.1 - diff --git a/boost-1.83-multiprecision-convert-noexcept.patch b/boost-1.83-multiprecision-convert-noexcept.patch deleted file mode 100644 index cdf5a09..0000000 --- a/boost-1.83-multiprecision-convert-noexcept.patch +++ /dev/null @@ -1,78 +0,0 @@ -From ea786494db78efdf178cbe36810f3326156e3347 Mon Sep 17 00:00:00 2001 -From: Kefu Chai -Date: Fri, 3 May 2024 15:08:05 +0800 -Subject: [PATCH] make sure eval_convert_to() do not terminate with super large - number - -this change is a follow-up of d51f2e9dbb. it intends to -address the exception thrown in a noexcept functon. - -a minimal reproducer looks like - -```c++ - -int main() { - std::string s = "32767456456456456456545678943512357658768763546575675"; - boost::multiprecision::cpp_int num(s); - std::cout << num.convert_to() << std::endl; -} -``` - -since boost 1.79, the code above terminates like -``` -Program returned: 139 -Program stderr -terminate called after throwing an instance of 'boost::wrapexcept' - what(): Error in function float_next(float): Argument must be finite, but got inf -Program terminated with signal: SIGSEGV -``` - -because `float_next_imp()` throws 'boost::wrapexcept' -if the number is NAN of INF. and `eval_convert_to()` is marked as -`noexcept(boost::multiprecision::detail::is_arithmetic::value && - std::numeric_limits::has_infinity)`, -but only `overflow_error` is ignored in the policy passed to -`float_next()`. - -so, in this change, `std::domain_error` is ignored as well, so that -``num.convert_to()` returns a NaN in this case. - -Refs #553 - -Signed-off-by: Kefu Chai ---- - include/boost/multiprecision/cpp_int/misc.hpp | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/include/boost/multiprecision/cpp_int/misc.hpp b/include/boost/multiprecision/cpp_int/misc.hpp -index cdae2f75..a8a76400 100644 ---- a/boost/multiprecision/cpp_int/misc.hpp -+++ b/boost/multiprecision/cpp_int/misc.hpp -@@ -184,7 +184,9 @@ eval_convert_to(R* result, const cpp_int_backend - inline BOOST_MP_CXX14_CONSTEXPR typename std::enable_if::value && !is_trivial_cpp_int >::value, void>::type --eval_convert_to(R* result, const cpp_int_backend& backend) noexcept(boost::multiprecision::detail::is_arithmetic::value && std::numeric_limits::has_infinity) -+eval_convert_to(R* result, const cpp_int_backend& backend) noexcept(boost::multiprecision::detail::is_arithmetic::value && -+ (std::numeric_limits::has_infinity || -+ std::numeric_limits::has_quiet_NaN)) - { - BOOST_MP_FLOAT128_USING using std::ldexp; - if (eval_is_zero(backend)) -@@ -244,10 +246,11 @@ eval_convert_to(R* result, const cpp_int_backend(bits)) || eval_bit_test(backend, static_cast(bits + 1))) - { - #ifdef BOOST_MP_MATH_AVAILABLE -- BOOST_IF_CONSTEXPR(std::numeric_limits::has_infinity) -+ BOOST_IF_CONSTEXPR(std::numeric_limits::has_infinity || std::numeric_limits::has_quiet_NaN) - { - // Must NOT throw: -- *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error())); -+ *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error(), -+ boost::math::policies::domain_error())); - } - else - { --- -2.44.0 - diff --git a/boost-1.83-regex-test-fixes.patch b/boost-1.83-regex-test-fixes.patch deleted file mode 100644 index b8745a4..0000000 --- a/boost-1.83-regex-test-fixes.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 9c974cf22c53315d90a7c1bef7cea9b4f552d088 Mon Sep 17 00:00:00 2001 -From: Patrick Palka -Date: Wed, 6 Dec 2023 14:21:13 -0500 -Subject: [PATCH] Work around spurious Boost.Regex test failures - ---- - libs/regex/example/timer/regex_timer.cpp | 1 + - libs/regex/test/static_mutex/static_mutex_test.cpp | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/libs/regex/example/timer/regex_timer.cpp b/libs/regex/example/timer/regex_timer.cpp -index d121b70f1..bee544908 100644 ---- a/libs/regex/example/timer/regex_timer.cpp -+++ b/libs/regex/example/timer/regex_timer.cpp -@@ -13,6 +13,7 @@ - #pragma warning(disable: 4996 4127) - #endif - -+#define BOOST_TIMER_ENABLE_DEPRECATED - #include - #include - #include -diff --git a/libs/regex/test/static_mutex/static_mutex_test.cpp b/libs/regex/test/static_mutex/static_mutex_test.cpp -index be7500bd3..935e74525 100644 ---- a/libs/regex/test/static_mutex/static_mutex_test.cpp -+++ b/libs/regex/test/static_mutex/static_mutex_test.cpp -@@ -16,6 +16,7 @@ - * DESCRIPTION: test program for boost::static_mutex. - */ - -+#define BOOST_TIMER_ENABLE_DEPRECATED - #include - #include - #include --- -2.43.0 - diff --git a/boost-1.90-system.patch b/boost-1.90-system.patch new file mode 100644 index 0000000..0cadaef --- /dev/null +++ b/boost-1.90-system.patch @@ -0,0 +1,42 @@ +From d9554db26c3dbb00a6a293ee4fd4966e4e278da8 Mon Sep 17 00:00:00 2001 +From: Peter Dimov +Date: Mon, 15 Dec 2025 21:51:45 +0200 +Subject: [PATCH] Install boost_system as header-only + +--- + boost-install.jam | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boost-install.jam b/boost-install.jam +index b87e308..5e6bfa6 100644 +--- a/tools/boost_install/boost-install.jam ++++ b/tools/boost_install/boost-install.jam +@@ -1015,7 +1015,7 @@ local rule install-cmake-config- ( install-or-stage : version : name : requireme + + local library-type = UNKNOWN ; + +- if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception ++ if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception || $(name) = boost_system + { + library-type = INTERFACE ; + } +From 9529e070ea9e9afd1da17edd48993d560fdc0d7a Mon Sep 17 00:00:00 2001 +From: Peter Dimov +Date: Mon, 15 Dec 2025 21:52:49 +0200 +Subject: [PATCH] Still install boost_system, for the CMake configuration. Refs + #132. + +--- + build.jam | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build.jam b/build.jam +index 65da5aa6..5b6545c8 100644 +--- a/libs/system//build.jam ++++ b/libs/system//build.jam +@@ -21,4 +21,5 @@ explicit + ; + + call-if : boost-library system ++ : install boost_system + ; diff --git a/boost-1.90.0-no-rpath.patch b/boost-1.90.0-no-rpath.patch new file mode 100644 index 0000000..de28890 --- /dev/null +++ b/boost-1.90.0-no-rpath.patch @@ -0,0 +1,31 @@ +From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001 +From: Patrick Palka +Date: Mon, 4 Dec 2023 09:27:13 -0500 +Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds + +--- + tools/build/src/tools/gcc.jam | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index c753afc23..e0b627726 100644 +--- a/tools/build/src/tools/gcc.jam ++++ b/tools/build/src/tools/gcc.jam +@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * ) + + actions link bind LIBRARIES + { +- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<:T)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) ++ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<:T)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) + } + + actions link.dll bind LIBRARIES + { +- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2]:T)" -o "$(<[1]:T)" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) ++ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2]:T)" -o "$(<[1]:T)" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) + } + + ### +-- +2.43.0 + diff --git a/boost.spec b/boost.spec index 66aa53d..a397c0b 100644 --- a/boost.spec +++ b/boost.spec @@ -42,11 +42,17 @@ %bcond_without quadmath %endif +%ifnarch x86_64 + %bcond_with stacktrace_from_exception +%else + %bcond_without stacktrace_from_exception +%endif + Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.83.0 -Release: 17%{?dist} +Version: 1.90.0 +Release: 1%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -58,12 +64,11 @@ License: BSL-1.0 AND MIT AND Python-2.0.1 %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_83_0.tar.bz2 -Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 -Source1: libboost_thread.so +# https://archives.boost.io/release/1.90.0/source/boost_1_90_0.tar.bz2 +Source0: https://archives.boost.io/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 # Add a manual page for b2, based on the online documentation: # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html -Source2: b2.1 +Source1: b2.1 # Since Fedora 13, the Boost libraries are delivered with sonames # equal to the Boost version (e.g., 1.41.0). @@ -103,12 +108,14 @@ Requires: %{name}-random%{?_isa} = %{version}-%{release} Requires: %{name}-regex%{?_isa} = %{version}-%{release} Requires: %{name}-serialization%{?_isa} = %{version}-%{release} Requires: %{name}-stacktrace%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} +# F44 dropped the boost-system subpackage +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %if %{with python3} Recommends: (boost-numpy3 if python3-numpy) @@ -135,7 +142,7 @@ BuildRequires: libzstd-devel Patch0: boost-1.81.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch1: boost-1.78.0-no-rpath.patch +Patch1: boost-1.90.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch2: boost-1.73.0-cmakedir.patch @@ -143,41 +150,14 @@ Patch2: boost-1.73.0-cmakedir.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch3: boost-1.78.0-b2-build-flags.patch -# https://github.com/boostorg/random/issues/82 -Patch4: boost-1.76.0-random-test.patch - # PR https://github.com/boostorg/interval/pull/30 # Fixes narrowing conversions for ppc - # https://github.com/boostorg/interval/issues/29 Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=2178210 -# https://github.com/boostorg/phoenix/issues/111 -# https://github.com/boostorg/phoenix/issues/115 -Patch6: boost-1.81-phoenix-multiple-defn.patch - -# https://github.com/boostorg/random/commit/7561690135c67ecf88c2133bad7680ebd2665c36 -# https://github.com/boostorg/random/commit/4239d93dad32a11e4c3829050f8070d456266133 -Patch7: boost-1.81.0-random-test-fixes.patch - -Patch8: boost-1.83-regex-test-fixes.patch - -# https://github.com/boostorg/multiprecision/commit/ea786494db78efdf178cbe36810f3326156e3347 -Patch9: boost-1.83-multiprecision-convert-noexcept.patch - -# https://github.com/boostorg/math/commit/f3e0cde514e444c2e25a3522d05a6e244fb2f23a -# https://github.com/boostorg/math/issues/1132 -Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch - -# https://github.com/boostorg/context/pull/234 -Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch - -# https://github.com/boostorg/python/pull/432 -# https://github.com/boostorg/python/pull/443 -Patch12: boost-1.83-NumPy-2.x-dtype.patch - -# https://github.com/boostorg/thread/pull/408 -Patch13: boost-1.83-fix-no-member-named_that_error.patch +# Install boost_system for the CMake configuration +# https://github.com/boostorg/system/issues/132 +Patch6: boost-1.90-system.patch %bcond_with tests %bcond_with docs_generated @@ -202,14 +182,33 @@ types and operations on these data types, as well as memory ordering constraints required for coordinating multiple threads through atomic variables. +%package charconv +Summary: Run-time component of boost charconv library + +%description charconv + +Run-time support for Boost.Charconv, an implementation of +in C++11. + %package chrono Summary: Run-time component of boost chrono library -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description chrono Run-time support for Boost.Chrono, a set of useful time utilities. +%package cobalt +Summary: Run-time component of boost cobalt library + +%description cobalt + +Boost.Cobalt provides a set of easy to use coroutine primitives & utilities +running on top of boost.asio. These will be of interest for applications that +perform a lot of IO that want to not block unnecessarily, yet still want to +have linear & readable code (i..e. avoid callbacks). + %package container Summary: Run-time component of boost container library @@ -218,7 +217,8 @@ Summary: Run-time component of boost container library Boost.Container library implements several well-known containers, including STL containers. The aim of the library is to offer advanced features not present in standard containers or to offer the latest -standard draft features for compilers that comply with C++03. +standard draft features for compilers that don't comply with the +latest C++ standard. %package contract Summary: Run-time component of boost contract library @@ -275,7 +275,8 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library Requires: %{name}-atomic%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description filesystem @@ -314,8 +315,9 @@ simply "JSON" %package locale Summary: Run-time component of boost locale library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description locale @@ -332,17 +334,17 @@ Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description log -Boost.Log library aims to make logging significantly easier for the -application developer. It provides a wide range of out-of-the-box -tools along with public interfaces for extending the library. +Run-time support for Boost.Log, a modular and extensible logging +library that supports both narrow-character and wide-character logging. %package math -Summary: Math functions for boost TR1 library +Summary: Run-time component of boost math toolkit %description math -Run-time support for C99 and C++ TR1 C-style Functions from the math -portion of Boost.TR1. +Run-time support for Boost.Math, including floating-point utilities, +specific width floating-point types, mathematical constants, +statistical distributions, special functions, and more. %package nowide Summary: Standard library functions with UTF-8 API on Windows @@ -368,6 +370,14 @@ support for the NumPy extension of the Boost Python Library for Python 3. %endif +%package process +Summary: Run-time component of boost process library + +%description process + +Run-time support of the Boost.Process library, for managing system +processes. + %package program-options Summary: Run-time component of boost program_options library @@ -419,14 +429,6 @@ Summary: Run-time component of boost stacktrace library Run-time component of the Boost stacktrace library. -%package system -Summary: Run-time component of boost system support library - -%description system - -Run-time component of Boost operating system support library, including -the diagnostics support that is part of the C++11 standard library. - %package test Summary: Run-time component of boost test library @@ -437,7 +439,8 @@ program execution monitoring. %package thread Summary: Run-time component of boost thread library -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description thread @@ -449,7 +452,8 @@ data specific to individual threads. %package timer Summary: Run-time component of boost timer library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description timer @@ -460,8 +464,9 @@ with as little as one #include and one additional line of code. %package type_erasure Summary: Run-time component of boost type erasure library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description type_erasure @@ -481,8 +486,9 @@ Summary: Run-time component of boost C99/C++ preprocessing library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} Requires: %{name}-date-time%{?_isa} = %{version}-%{release} Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description wave @@ -732,7 +738,7 @@ using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{pyth EOF %endif -./bootstrap.sh --with-toolset=%{toolchain} --with-icu +./bootstrap.sh --with-toolset=%{toolchain} --with-icu --prefix=$RPM_BUILD_ROOT%{_prefix} # N.B. When we build the following with PCH, parts of boost (math # library in particular) end up being built second time during @@ -749,20 +755,12 @@ echo ============================= build serial ================== variant=release threading=multi debug-symbols=on pch=off \ %if %{with python3} python=%{python3_version} \ +%endif +%if !%{with stacktrace_from_exception} + boost.stacktrace.from_exception=off \ %endif stage -# See libs/thread/build/Jamfile.v2 for where this file comes from. -if [ $(find serial -type f -name has_atomic_flag_lockfree \ - -print -quit | wc -l) -ne 0 ]; then - DEF=D -else - DEF=U -fi - -m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ - %{SOURCE1} > $(basename %{SOURCE1}) - # Build MPI parts of Boost with OpenMPI support %if %{with openmpi} || %{with mpich} @@ -804,7 +802,7 @@ export PATH=/bin${PATH:+:}$PATH echo ============================= build Boost.Build ================== (cd tools/build - ./bootstrap.sh --with-toolset=%{toolchain}) + ./bootstrap.sh --with-toolset=%{toolchain} --prefix=$RPM_BUILD_ROOT%{_prefix}) %check : @@ -895,14 +893,24 @@ echo ============================= install serial ================== variant=release threading=multi debug-symbols=on pch=off \ %if %{with python3} python=%{python3_version} \ +%endif +%if !%{with stacktrace_from_exception} + boost.stacktrace.from_exception=off \ %endif install -# Override DSO symlink with a linker script. See the linker script -# itself for details of why we need to do this. -[ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so ] # Must be present -rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so -install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ +cat > $RPM_BUILD_ROOT%{_libdir}/libboost_system.so << EOT +/* GNU ld linker script */ + +/* +There is no runtime library for Boost.System. +This empty linker script exists to support Fedora packages which use +-lboost_system when linking and so require a library with that name. + +This linker script will be remove in a future Fedora release. +*/ +EOT +chmod 644 $RPM_BUILD_ROOT%{_libdir}/libboost_system.so echo ============================= install Boost.Build ================== (cd tools/build @@ -925,7 +933,7 @@ echo ============================= install Boost.Build ================== rm $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp # Install the manual page - %{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 + %{__install} -p -m 644 %{SOURCE1} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 ) echo ============================= install Boost.QuickBook ================== @@ -1001,6 +1009,11 @@ rm -f tmp-doc-files-to-be-installed rm -f tmp-doc-directories %{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt +# The predef_check utility doesn't seem useful to package. +(cd $RPM_BUILD_ROOT/%{_datadir} + rm boost_predef/tools/check/* + rm boost_predef/build.jam +) %post doctools CATALOG=%{_sysconfdir}/xml/catalog @@ -1035,10 +1048,19 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_atomic.so.%{sonamever} +%files charconv +%license LICENSE_1_0.txt +%{_libdir}/libboost_charconv.so.%{sonamever} + %files chrono %license LICENSE_1_0.txt %{_libdir}/libboost_chrono.so.%{sonamever} +%files cobalt +%license LICENSE_1_0.txt +%{_libdir}/libboost_cobalt.so.%{sonamever} +%{_libdir}/libboost_cobalt_io.so.%{sonamever} + %files container %license LICENSE_1_0.txt %{_libdir}/libboost_container.so.%{sonamever} @@ -1109,6 +1131,10 @@ fi %{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{sonamever} %endif +%files process +%license LICENSE_1_0.txt +%{_libdir}/libboost_process.so.%{sonamever} + %files test %license LICENSE_1_0.txt %{_libdir}/libboost_prg_exec_monitor.so.%{sonamever} @@ -1142,10 +1168,9 @@ fi %{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever} %{_libdir}/libboost_stacktrace_basic.so.%{sonamever} %{_libdir}/libboost_stacktrace_noop.so.%{sonamever} - -%files system -%license LICENSE_1_0.txt -%{_libdir}/libboost_system.so.%{sonamever} +%if %{with stacktrace_from_exception} +%{_libdir}/libboost_stacktrace_from_exception.so.%{sonamever} +%endif %files thread %license LICENSE_1_0.txt @@ -1182,7 +1207,10 @@ fi %{_includedir}/%{name} %{_libdir}/cmake %{_libdir}/libboost_atomic.so +%{_libdir}/libboost_charconv.so %{_libdir}/libboost_chrono.so +%{_libdir}/libboost_cobalt.so +%{_libdir}/libboost_cobalt_io.so %{_libdir}/libboost_container.so %{_libdir}/libboost_contract.so %if %{with context} @@ -1210,6 +1238,7 @@ fi %if %{with python3} %{_libdir}/libboost_numpy%{python3_version_nodots}.so %endif +%{_libdir}/libboost_process.so %{_libdir}/libboost_prg_exec_monitor.so %{_libdir}/libboost_unit_test_framework.so %{_libdir}/libboost_program_options.so @@ -1223,6 +1252,9 @@ fi %{_libdir}/libboost_stacktrace_addr2line.so %{_libdir}/libboost_stacktrace_basic.so %{_libdir}/libboost_stacktrace_noop.so +%if %{with stacktrace_from_exception} +%{_libdir}/libboost_stacktrace_from_exception.so +%endif %{_libdir}/libboost_system.so %{_libdir}/libboost_thread.so %{_libdir}/libboost_timer.so @@ -1251,7 +1283,9 @@ fi %license LICENSE_1_0.txt %{_libdir}/openmpi/lib/cmake %{_libdir}/openmpi/lib/libboost_mpi.so +%{_libdir}/openmpi/lib/libboost_graph.so %{_libdir}/openmpi/lib/libboost_graph_parallel.so +%{_libdir}/openmpi/lib/libboost_container.so %if %{with python3} @@ -1268,7 +1302,9 @@ fi %files graph-openmpi %license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/libboost_graph.so.%{sonamever} %{_libdir}/openmpi/lib/libboost_graph_parallel.so.%{sonamever} +%{_libdir}/openmpi/lib/libboost_container.so.%{sonamever} %endif @@ -1283,7 +1319,9 @@ fi %license LICENSE_1_0.txt %{_libdir}/mpich/lib/cmake %{_libdir}/mpich/lib/libboost_mpi.so +%{_libdir}/mpich/lib/libboost_graph.so %{_libdir}/mpich/lib/libboost_graph_parallel.so +%{_libdir}/mpich/lib/libboost_container.so %if %{with python3} @@ -1299,7 +1337,9 @@ fi %files graph-mpich %license LICENSE_1_0.txt +%{_libdir}/mpich/lib/libboost_graph.so.%{sonamever} %{_libdir}/mpich/lib/libboost_graph_parallel.so.%{sonamever} +%{_libdir}/mpich/lib/libboost_container.so.%{sonamever} %endif @@ -1319,6 +1359,12 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat Jan 10 2026 Jonathan Wakely - 1.90.0-1 +- Rebase to 1.90.0 +- See https://fedoraproject.org/wiki/Changes/F44Boost189 +- Drop boost-system subpackage and libboost_thread.so linker script +- Add new boost-charconv, boost-cobalt, and boost-process subpackages + * Fri Sep 19 2025 Python Maint - 1.83.0-17 - Rebuilt for Python 3.14.0rc3 bytecode diff --git a/libboost_thread.so b/libboost_thread.so deleted file mode 100644 index db50610..0000000 --- a/libboost_thread.so +++ /dev/null @@ -1,21 +0,0 @@ -changequote(`[', `]')dnl -/* GNU ld script - - Boost.Thread header files pull in enough of Boost.System that - symbols from the latter library are referenced by a compiled object - that includes Boost.Thread headers. libboost_system-mt.so is among - libboost_thread-mt.so's DT_NEEDED, but program linker requires that - missing symbols are satisfied by direct dependency, not by a - transitive one. Hence this linker script, which brings in the - Boost.System DSO. */ - -INPUT(libboost_thread.so.VERSION) -INPUT(libboost_system.so.VERSION) -ifdef([HAS_ATOMIC_FLAG_LOCKFREE],[], -[ -/* If the given architecture doesn't have lock-free implementation of - boost::atomic_flag, the dependency on Boost.Atomic may leak from - the header files to client binaries. */ - -INPUT(libboost_atomic.so.VERSION) -])dnl diff --git a/sources b/sources index 651f8cd..17c9198 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_83_0.tar.bz2) = d133b521bd754dc35a9bd30d8032bd2fd866026d90af2179e43bfd7bd816841f7f3b84303f52c0e54aebc373f4e4edd601a8f5a5e0c47500e0e852e04198a711 +SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199 From 5379719078d021900d09cf625370b49cea1412f2 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 12 Jan 2026 12:22:41 +0000 Subject: [PATCH 84/86] Add patch for boost/range/detail/any_iterator_interface.hpp --- boost-1.90.0-range.patch | 22 ++++++++++++++++++++++ boost.spec | 8 +++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 boost-1.90.0-range.patch diff --git a/boost-1.90.0-range.patch b/boost-1.90.0-range.patch new file mode 100644 index 0000000..e4dfef3 --- /dev/null +++ b/boost-1.90.0-range.patch @@ -0,0 +1,22 @@ +From 9ac89e9936b826c13e90611cb9a81a7aa0508d20 Mon Sep 17 00:00:00 2001 +From: Michael Cho +Date: Sun, 30 Mar 2025 21:45:49 -0400 +Subject: [PATCH] Add include for add_const + +Signed-off-by: Michael Cho +--- + include/boost/range/detail/any_iterator_interface.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/boost/range/detail/any_iterator_interface.hpp b/include/boost/range/detail/any_iterator_interface.hpp +index 1103be6c..79e71dbd 100644 +--- boost_1_90_0/boost/range/detail/any_iterator_interface.hpp ++++ boost_1_90_0/boost/range/detail/any_iterator_interface.hpp +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/boost.spec b/boost.spec index a397c0b..68a318e 100644 --- a/boost.spec +++ b/boost.spec @@ -52,7 +52,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.90.0 -Release: 1%{?dist} +Release: 2%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -159,6 +159,9 @@ Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/system/issues/132 Patch6: boost-1.90-system.patch +# https://github.com/boostorg/range/pull/157 +Patch7: boost-1.90.0-range.patch + %bcond_with tests %bcond_with docs_generated @@ -1359,6 +1362,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Jan 12 2026 Jonathan Wakely - 1.90.0-2 +- Add patch for boost/range/detail/any_iterator_interface.hpp + * Sat Jan 10 2026 Jonathan Wakely - 1.90.0-1 - Rebase to 1.90.0 - See https://fedoraproject.org/wiki/Changes/F44Boost189 From 4a0779ec8c8fde3efdc05a7dac1caf3a970ff7de Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 13 Jan 2026 15:59:13 +0000 Subject: [PATCH 85/86] Fix libboost_system.so linker script to avoid ldcondig warning --- boost.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/boost.spec b/boost.spec index 68a318e..895eaa4 100644 --- a/boost.spec +++ b/boost.spec @@ -52,7 +52,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.90.0 -Release: 2%{?dist} +Release: 3%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -903,9 +903,8 @@ echo ============================= install serial ================== install cat > $RPM_BUILD_ROOT%{_libdir}/libboost_system.so << EOT -/* GNU ld linker script */ +/* GNU ld script -/* There is no runtime library for Boost.System. This empty linker script exists to support Fedora packages which use -lboost_system when linking and so require a library with that name. @@ -1362,6 +1361,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jan 13 2026 Jonathan Wakely - 1.90.0-3 +- Fix libboost_system.so linker script to avoid ldcondig warning + * Mon Jan 12 2026 Jonathan Wakely - 1.90.0-2 - Add patch for boost/range/detail/any_iterator_interface.hpp From 50fc2b0fdafde15dc4bd89d0ad03bb173a48d73c Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Wed, 14 Jan 2026 20:16:15 -0500 Subject: [PATCH 86/86] Add dependencies on new subpackages to metapackage boost-devel Requires: boost, which itself needs to Requires all library subpackages so that the libboost_*.so symlinks are resolved, and packages can safely link to them. --- boost.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 895eaa4..0ee6ede 100644 --- a/boost.spec +++ b/boost.spec @@ -52,7 +52,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.90.0 -Release: 3%{?dist} +Release: 4%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -81,7 +81,9 @@ Source1: b2.1 # The subpackages that don't install shared libraries are also not pulled in # (b2, build, doc, doctools, examples, static). Requires: %{name}-atomic%{?_isa} = %{version}-%{release} +Requires: %{name}-charconv%{?_isa} = %{version}-%{release} Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-cobalt%{?_isa} = %{version}-%{release} Requires: %{name}-container%{?_isa} = %{version}-%{release} Requires: %{name}-contract%{?_isa} = %{version}-%{release} %if %{with context} @@ -100,6 +102,7 @@ Requires: %{name}-locale%{?_isa} = %{version}-%{release} Requires: %{name}-log%{?_isa} = %{version}-%{release} Requires: %{name}-math%{?_isa} = %{version}-%{release} Requires: %{name}-nowide%{?_isa} = %{version}-%{release} +Requires: %{name}-process%{?_isa} = %{version}-%{release} Requires: %{name}-program-options%{?_isa} = %{version}-%{release} %if %{with python3} Requires: %{name}-python3%{?_isa} = %{version}-%{release} @@ -112,6 +115,7 @@ Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} +Requires: %{name}-url%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} # F44 dropped the boost-system subpackage Obsoletes: boost-system < 1.90.0 @@ -1361,6 +1365,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jan 15 2026 Yaakov Selkowitz - 1.90.0-4 +- Add dependencies on new subpackages to metapackage + * Tue Jan 13 2026 Jonathan Wakely - 1.90.0-3 - Fix libboost_system.so linker script to avoid ldcondig warning