%global version_enc 1_78_0 Name: boost Version: 1.78.0 Release: 16 Summary: The free peer-reviewed portable C++ source libraries License: Boost Software License 1.0 URL: http://www.boost.org Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.gz # These following patches have been merged into boost develop branch # Remove them at the next release # https://github.com/boostorg/pool/pull/42 Patch0: boost-1.78-pool-fix-integer-overflows-in-pool-ordered_malloc.patch # https://github.com/boostorg/locale/pull/72 Patch1: boost-1.78-locale-Fix-access-to-first-element-of-empty-vector.patch # https://github.com/boostorg/locale/pull/38 Patch2: boost-1.77-locale-remove-linking-with-boost-system.patch # https://github.com/boostorg/type_erasure/pull/19 Patch3: boost-1.77-type_erasure-remove-boost-system-linkage.patch # https://github.com/bfgroup/b2/pull/113 Patch4: boost-1.78-build-Don-t-skip-install-targets-if-there-s-build-no-in-ureqs.patch # https://github.com/boostorg/filesystem/commit/41d076ace558cfae01e233f9746dc955dcf78dba Patch5: boost-1.78-filesystem-Added-protection-for-CVE-2022-21658.patch # https://github.com/boostorg/filesystem/commit/dbec3baaadf7d899e66aa90843d285e749e88b2d Patch6: boost-1.78-filesystem-Use-O_NONBLOCK-instead-of-O_NDELAY.patch # These patches have not been merged yet. # https://github.com/boostorg/python/pull/373 Patch9000: boost-1.78-python-Update-call_method-hpp.patch Patch9001: boost_1_78_0-sw.patch Patch9002: boost-1.78-graph-Skip-performance-test.patch Patch9003: boost-1.78-icl-Avoid-gcc-bugs.patch Requires: %{name}-atomic%{?_isa} = %{version}-%{release} Requires: %{name}-chrono%{?_isa} = %{version}-%{release} Requires: %{name}-container%{?_isa} = %{version}-%{release} Requires: %{name}-context%{?_isa} = %{version}-%{release} Requires: %{name}-contract%{?_isa} = %{version}-%{release} Requires: %{name}-coroutine%{?_isa} = %{version}-%{release} Requires: %{name}-date-time%{?_isa} = %{version}-%{release} 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}-program-options%{?_isa} = %{version}-%{release} Requires: %{name}-python3%{?_isa} = %{version}-%{release} 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} BuildRequires: gcc-c++ # required by python3 BuildRequires: python3-devel python3-unversioned-command # optional library for asio BuildRequires: openssl-devel # optional libraries for iostreams BuildRequires: bzip2-devel libzstd-devel xz-devel zlib-devel # optional library for python3 BuildRequires: python3-numpy # optional library for regex BuildRequires: libicu-devel Obsoletes: boost-signals < 1.69.0 %description Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages the use of Boost libraries for all users with minimal restrictions. %package atomic Summary: Run-time component for boost atomic. %description atomic C++11-style atomic<>. %package chrono Summary: Run-time component for boost chrono. %description chrono Useful time utilities. %package container Summary: Run-time component for boost container. %description container Standard library containers and extensions. %package context Summary: Run-time component for boost context. %description context (C++11) Context switching library. %package contract Summary: Run-time component for boost contract. %description contract Contract programming for C++. %package coroutine Summary: Run-time component for boost coroutine. %description coroutine (deprecated) Coroutine library. %package date-time Summary: Run-time component for boost date-time. %description date-time A set of date-time libraries based on generic programming concepts. %package fiber Summary: Run-time component for boost fiber. %description fiber (C++11) Userland threads library. %package filesystem Summary: Run-time component for boost filesystem. %description filesystem Portable facilities to query and manipulate paths, files, and directories. %package graph Summary: Run-time component for boost graph. Requires: boost-regex%{?_isa} = %{version}-%{release} %description graph The BGL graph interface and graph components are generic. %package iostreams Summary: Run-time component for boost iostreams. %description iostreams A framework for defining streams, stream buffers and i/o filters. %package json Summary: Run-time component for boost json. %description json JSON parsing, serialization, and DOM in C++11 %package locale Summary: Run-time component for boost locale. Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-thread%{?_isa} = %{version}-%{release} %description locale Provide localization and Unicode handling tools for C++. %package log Summary: Run-time component for boost log. %description log Logging library. %package math Summary: Run-time component for boost math. %description math Boost.Math includes several contributions in the domain of mathematics. %package nowide Summary: Run-time component for boost nowide. %description nowide Standard library functions with UTF-8 API on Windows. %package program-options Summary: Run-time component for boost program-options. %description program-options The program_options library allows program developers to obtain program options. %package python3 Summary: Run-time component for boost python. %description python3 A framework for interfacing Python and C++. %package random Summary: Run-time component for boost random. %description random A complete system for random number generation. %package regex Summary: Run-time component for boost regex. %description regex Regular expression library. %package serialization Summary: Run-time component for boost serialization. %description serialization Serialization for persistence and marshalling. %package stacktrace Summary: Run-time component for boost stacktrace. %description stacktrace Gather, store, copy and print backtraces. %package system Summary: Run-time component for boost system. %description system Extensible error reporting. %package test Summary: Run-time component for boost test. %description test Support for simple program testing, full unit testing, and for program execution monitoring. %package thread Summary: Run-time component for boost thread. %description thread Portable C++ multi-threading. %package timer Summary: Run-time component for boost timer. Requires: boost-chrono%{?_isa} = %{version}-%{release} %description timer Event timer, progress timer, and progress display classes. %package type_erasure Summary: Run-time component for boost type-erasure. Requires: boost-chrono%{?_isa} = %{version}-%{release} %description type_erasure Runtime polymorphism based on concepts. %package wave Summary: Run-time component for boost wave. Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-filesystem%{?_isa} = %{version}-%{release} Requires: boost-thread%{?_isa} = %{version}-%{release} %description wave An implementation of the mandated C99/C++ preprocessor functionality. %package devel Summary: The Boost C++ headers, shared and static development libraries Requires: boost%{?_isa} = %{version}-%{release} Requires: libicu-devel%{?_isa} Provides: boost-static Obsoletes: boost-static < %{version} %description devel Headers shared object symbolic links for the Boost C++ libraries and static Boost C++ libraries distributed with boost. %package help Summary: HTML documentation and source code example for the Boost C++ libraries BuildArch: noarch Requires: boost-devel = %{version}-%{release} %description help This package contains the documentation in the HTML format and source code examples of the Boost C++ libraries. The documentation provides the same content as that on the Boost web page (http://www.boost.org/doc/libs/%{version_enc}). %prep %autosetup -p1 -n %{name}_%{version_enc} %build ./bootstrap.sh %define opt_build -d+2 -q %{?_smp_mflags} --no-cmake-config %define opt_feature release debug-symbols=on pch=off %define opt_libs --without-mpi --without-graph_parallel %define b2_options %{opt_build} %{opt_feature} %{opt_libs} %define boost_macros define=BOOST_NO_AUTO_PTR define=BOOST_STATECHART_USE_NATIVE_RTTI ./b2 %{b2_options} cxxflags="$RPM_OPT_FLAGS" %{boost_macros} %check cd status ../b2 %{?_smp_mflags} --check-libs-only ../b2 %{?_smp_mflags} %{opt_feature} cxxflags="$RPM_OPT_FLAGS" %{boost_macros} \ --include-tests=algorithm,graph,intrusive,dynamic_bitset,property_map,crc,lexical_cast,range \ --exclude-tests=mpi,graph_parallel ../b2 %{?_smp_mflags} %{opt_feature} cxxflags="$RPM_OPT_FLAGS" %{boost_macros} \ --include-tests=bimap,circular_buffer,container,heap,icl,lockfree,logic,multi_array,multi_index,poly_collection,property_tree,ptr_container,sort \ --exclude-tests=container_hash %install ./b2 %{b2_options} \ --prefix=$RPM_BUILD_ROOT%{_prefix} \ --libdir=$RPM_BUILD_ROOT%{_libdir} \ install mkdir boost-doc boost-example find libs doc more -regex '.*\.\(html?\|css\|png\|gif\)' -exec cp {} boost-doc --parents \; cp index.html boost.png rst.css boost.css boost-doc find libs -name example -exec cp {} boost-example --parents -r \; %files %license LICENSE_1_0.txt %files atomic %license LICENSE_1_0.txt %{_libdir}/libboost_atomic.so.%{version} %files chrono %license LICENSE_1_0.txt %{_libdir}/libboost_chrono.so.%{version} %files container %license LICENSE_1_0.txt %{_libdir}/libboost_container.so.%{version} %files context %license LICENSE_1_0.txt %{_libdir}/libboost_context.so.%{version} %files contract %license LICENSE_1_0.txt %{_libdir}/libboost_contract.so.%{version} %files coroutine %license LICENSE_1_0.txt %{_libdir}/libboost_coroutine.so.%{version} %files date-time %license LICENSE_1_0.txt %{_libdir}/libboost_date_time.so.%{version} %files fiber %license LICENSE_1_0.txt %{_libdir}/libboost_fiber.so.%{version} %files filesystem %license LICENSE_1_0.txt %{_libdir}/libboost_filesystem.so.%{version} %files graph %license LICENSE_1_0.txt %{_libdir}/libboost_graph.so.%{version} %files iostreams %license LICENSE_1_0.txt %{_libdir}/libboost_iostreams.so.%{version} %files json %license LICENSE_1_0.txt %{_libdir}/libboost_json.so.%{version} %files locale %license LICENSE_1_0.txt %{_libdir}/libboost_locale.so.%{version} %files log %license LICENSE_1_0.txt %{_libdir}/libboost_log.so.%{version} %{_libdir}/libboost_log_setup.so.%{version} %files math %license LICENSE_1_0.txt %{_libdir}/libboost_math_c99.so.%{version} %{_libdir}/libboost_math_c99f.so.%{version} %{_libdir}/libboost_math_c99l.so.%{version} %{_libdir}/libboost_math_tr1.so.%{version} %{_libdir}/libboost_math_tr1f.so.%{version} %{_libdir}/libboost_math_tr1l.so.%{version} %files nowide %license LICENSE_1_0.txt %{_libdir}/libboost_nowide.so.%{version} %files program-options %license LICENSE_1_0.txt %{_libdir}/libboost_program_options.so.%{version} %files python3 %license LICENSE_1_0.txt %{_libdir}/libboost_python%{python3_version_nodots}.so.%{version} %{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{version} %files random %license LICENSE_1_0.txt %{_libdir}/libboost_random.so.%{version} %files regex %license LICENSE_1_0.txt %{_libdir}/libboost_regex.so.%{version} %files serialization %license LICENSE_1_0.txt %{_libdir}/libboost_serialization.so.%{version} %{_libdir}/libboost_wserialization.so.%{version} %files stacktrace %license LICENSE_1_0.txt %{_libdir}/libboost_stacktrace_addr2line.so.%{version} %{_libdir}/libboost_stacktrace_basic.so.%{version} %{_libdir}/libboost_stacktrace_noop.so.%{version} %files system %license LICENSE_1_0.txt %{_libdir}/libboost_system.so.%{version} %files test %license LICENSE_1_0.txt %{_libdir}/libboost_prg_exec_monitor.so.%{version} %{_libdir}/libboost_unit_test_framework.so.%{version} %files thread %license LICENSE_1_0.txt %{_libdir}/libboost_thread.so.%{version} %files timer %license LICENSE_1_0.txt %{_libdir}/libboost_timer.so.%{version} %files type_erasure %license LICENSE_1_0.txt %{_libdir}/libboost_type_erasure.so.%{version} %files wave %license LICENSE_1_0.txt %{_libdir}/libboost_wave.so.%{version} %files help %license LICENSE_1_0.txt %doc boost-doc boost-example %files devel %license LICENSE_1_0.txt %{_includedir}/%{name} %{_libdir}/*.so %{_libdir}/*.a %changelog * Mon Apr 24 2023 wangxiyuan - 1.78.0-16 Remove libquadmath require * Mon Dec 12 2022 Liu Zixian - 1.78.0-15 - enable more regression tests to covers commonly used container libraries * Mon Dec 12 2022 Liu Zixian - 1.78.0-14 - backport master build commands and enable some regression test * Wed Oct 19 2022 wuzx - 1.78.0-13 - add sw64 patch * Sun Mar 20 2022 Liu Zixian - 1.78.0-12 - backport upstream filesystem patches to fix a possible security issue * Wed Mar 02 2022 Liu Zixian - 1.78.0-11 - fix boost-example, only libs/*/example should go into boost-example. * Thu Feb 03 2022 Liu Zixian - 1.78.0-10 - disable auto_ptr which is warned by -Wdeprecated-declarations - Replaced deprecated python API * Sat Jan 29 2022 Liu Zixian - 1.78.0-9 - simplify building scripts * Fri Jan 28 2022 Liu Zixian - 1.78.0-8 - backport bugfix for boost 1.78.0 known issues - https://www.boost.org/users/history/version_1_78_0.html * Sun Jan 23 2022 Liu Zixian - 1.78.0-7 - refactor boost-help * Fri Dec 31 2021 sdlzx - 1.78.0-6 - Don't package boost build tools * Mon Dec 27 2021 sdlzx - 1.78.0-5 - Remove mpi related scripts * Fri Dec 24 2021 sdlzx - 1.78.0-4 - Update package info - Reference: https://www.boost.org/doc/libs/1_78_0/ * Sun Dec 19 2021 sdlzx - 1.78.0-3 - Simplify spec: extract common b2 configs into b2_config * Fri Dec 10 2021 sdlzx - 1.78.0-2 - Simplify spec: remove useless bcond * Fri Dec 10 2021 sdlzx - 1.78.0-1 - update to 1.78.0 * Wed Oct 06 2021 Liu Zixian - 1.77.0-4 - Remove dependencies on header-only libraries * Sun Sep 26 2021 Liu Zixian - 1.77.0-3 - Remove linking script which is fixed in upstream PR266 * Wed Sep 22 2021 Liu Zixian - 1.77.0-2 - Correct license name for ci. * Wed Sep 15 2021 Liu Zixian - 1.77.0-1 - update to 1.77.0 * Sat Jul 24 2021 Liu Zixian - 1.76.0-1 - update to 1.76.0 * Sat Jul 24 2021 Liu Zixian - 1.75.0-6 - remove needless BuildRequires * Fri Jul 23 2021 zhouwenpei - 1.75.0-5 - remove useless buildrequires * Wed Jun 23 2021 Xu Huijie - 1.75.0-4 - Type:bugfix - ID:NA - SUG:NA - DESC:fix dead loop in parse_repeat() * Fri Feb 5 2021 xinghe - 1.75.0-3 - fix the conflict between the devel package file and the other subpackage file * Thu Feb 4 2021 xinghe - 1.75.0-2 - fix master build * Wed Feb 3 2021 xinghe - 1.75.0-1 - update version to 1.75.0 * Wed Dec 16 2020 xinghe - 1.73.0-2 - correct license * Fri Jul 24 2020 Wang Shuo - 1.73.0-1 - Type:requirement - ID:NA - SUG:NA - DESC:update boost to 1.73.0 * Mon Apr 20 2020 Wang Shuo - 1.72.0-1 - Type:requirement - ID:NA - SUG:NA - DESC:update boost to 1.72.0 * Thu Mar 19 2020 Yu Xiangyang - 1.66.0-18 - Type:bugfix - ID:NA - SUG:NA - DESC: fix build src.rpm error * Tue Mar 10 2020 Wang Shuo - 1.66.0-17 - Type:enhancement - ID:NA - SUG:NA - DESC: move examples files to examples package * Mon Oct 28 2019 caomeng - 1.66.0-16 - Type:NA - ID:NA - SUG:NA - DESC:add bcondwith openmpi and mpich * Wed Aug 28 2019 openEuler Buildteam - 1.66.0-15 - Package init