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/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.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.75.0-build-optflags.patch b/boost-1.75.0-build-optflags.patch deleted file mode 100644 index d9c6dd4..0000000 --- a/boost-1.75.0-build-optflags.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index ff3209f7b..1d8e7cbfe 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 * ) - - 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)" - } - - actions compile.c bind PCH_FILE -@@ -587,7 +587,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)" - } - - actions compile.c.preprocess bind PCH_FILE -@@ -704,20 +704,20 @@ 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 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 : -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 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 on : -g ; - toolset.flags gcc.compile OPTIONS on : -pg ; --- -2.26.2 - diff --git a/boost-1.75.0-no-rpath.patch b/boost-1.75.0-no-rpath.patch deleted file mode 100644 index a025241..0000000 --- a/boost-1.75.0-no-rpath.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index 02dc154cf..c076f70f4 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) - } - - 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) - } - - 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) - } - - ### 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..ce49540 --- /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 +--- 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; + +-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-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.81.0-build-optflags.patch b/boost-1.81.0-build-optflags.patch new file mode 100644 index 0000000..0f482c8 --- /dev/null +++ b/boost-1.81.0-build-optflags.patch @@ -0,0 +1,70 @@ +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 + +--- + tools/build/src/tools/gcc.jam | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +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 +@@ -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-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 +@@ -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-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 +@@ -627,22 +627,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 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 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.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-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.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.*") diff --git a/boost.spec b/boost.spec index 68f4160..0ee6ede 100644 --- a/boost.spec +++ b/boost.spec @@ -16,15 +16,19 @@ # All arches have mpich %bcond_without mpich -%ifarch s390 - # No OpenMPI support on these arches - %bcond_with openmpi +%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 +%ifarch %{ix86} + # No OpenMPI support on these arches + %bcond_with openmpi +%else + %bcond_without openmpi +%endif %else %bcond_without openmpi %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 @@ -38,12 +42,18 @@ %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.75.0 -Release: 3%{?dist} -License: Boost and MIT and Python +Version: 1.90.0 +Release: 4%{?dist} +License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} %global version_enc %{lua: @@ -54,11 +64,11 @@ 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 -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). @@ -71,7 +81,9 @@ Source2: 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} @@ -85,10 +97,12 @@ 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} 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} @@ -97,12 +111,15 @@ 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}-url%{?_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) @@ -123,38 +140,31 @@ BuildRequires: libicu-devel BuildRequires: libquadmath-devel %endif BuildRequires: bison - -# 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 +BuildRequires: libzstd-devel # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch96: boost-1.75.0-build-optflags.patch +Patch0: boost-1.81.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 +Patch1: boost-1.90.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=1896382 -# https://github.com/boostorg/python/issues/325 -Patch93: boost-1.73-python3.10.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1541035 +Patch3: boost-1.78.0-b2-build-flags.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 +# 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=1923740 -# https://github.com/boostorg/build/issues/696 -Patch95: boost-1.75.0-boost-build-fix.patch +# Install boost_system for the CMake configuration +# 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 @@ -179,14 +189,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 @@ -195,7 +224,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 @@ -220,6 +250,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 @@ -239,6 +270,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 @@ -248,7 +281,9 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Requires: %{name}-atomic%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description filesystem @@ -276,6 +311,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 @@ -286,8 +322,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 @@ -296,25 +333,28 @@ 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 -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 -# Added for F33, remove for F35: -Obsoletes: boost-nowide <= 0.20190814 %description nowide @@ -337,6 +377,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 @@ -349,6 +397,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 @@ -387,14 +436,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 @@ -405,7 +446,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 @@ -417,7 +459,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 @@ -428,20 +471,31 @@ 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 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} 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 @@ -459,15 +513,10 @@ 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 +# Old Provides: for compatibility with packages that still require it. 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. @@ -654,10 +703,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. @@ -665,18 +710,8 @@ 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} -find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x - -%patch15 -p0 -%patch51 -p1 -%patch96 -p1 -%patch97 -p1 -%patch83 -p1 -%patch88 -p1 -%patch93 -p1 -%patch94 -p1 -%patch95 -p1 +%autosetup -n %{toplev_dirname} -p1 +find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x %build %set_build_flags @@ -710,7 +745,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 @@ -727,20 +762,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} @@ -782,7 +809,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 : @@ -817,12 +844,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* - -# Remove cmake files (some of these are duplicates of the generic bits anyway). -rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake +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 @@ -846,12 +875,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* - -# Remove cmake files (some of these are duplicates of the generic bits anyway). -rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake +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 @@ -869,21 +900,37 @@ 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 script -# Remove cmake files until we know somebody wants them. -rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake +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 ./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 + + # 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 @@ -892,7 +939,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 ================== @@ -968,6 +1015,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 @@ -1002,10 +1054,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} @@ -1076,6 +1137,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} @@ -1109,10 +1174,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 @@ -1126,6 +1190,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} @@ -1143,8 +1211,12 @@ fi %files devel %license LICENSE_1_0.txt %{_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} @@ -1172,6 +1244,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 @@ -1185,10 +1258,14 @@ 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 %{_libdir}/libboost_type_erasure.so +%{_libdir}/libboost_url.so %{_libdir}/libboost_wave.so %files static @@ -1210,8 +1287,11 @@ fi %files openmpi-devel %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} @@ -1228,7 +1308,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 @@ -1241,8 +1323,11 @@ fi %files mpich-devel %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} @@ -1254,18 +1339,20 @@ fi %files mpich-python3-devel %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so - %endif %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 %files build %license LICENSE_1_0.txt %{_datadir}/%{name}-build/ +%{_datadir}/b2 %files doctools %license LICENSE_1_0.txt @@ -1278,8 +1365,253 @@ 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 + +* 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 +- 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 +- 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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) + +* 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, 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* 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 + +* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-12 +- Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) + +* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 +- 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 + +* 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 +- 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 + +* 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) + +* 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 +- 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 + +* 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 + +* 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) + +* 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 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 @@ -2244,7 +2576,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/gating.yaml b/gating.yaml new file mode 100644 index 0000000..4581d72 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !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} +--- !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/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/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..3fd3ab7 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,5 @@ +summary: CI Gating Plan +discover: + how: fmf +execute: + how: tmt diff --git a/sources b/sources index 784d5b3..17c9198 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_75_0.tar.bz2) = d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a +SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199 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..2bc6957 --- /dev/null +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -0,0 +1,99 @@ +#!/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 "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 "toplev_dirname=`awk '/toplev_dirname/{print $3; exit}' $TmpDir/rpmbuild.log`" + 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 $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 + 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