boost/boost.spec
sdlzx 80c893fd44 Update package info
(cherry picked from commit a69b55ad86e15a1e6750bc1a256dcbdb616b1138)
2021-12-27 08:43:19 +08:00

931 lines
28 KiB
RPMSpec

%global boost_docdir __tmp_docdir
%global boost_examplesdir __tmp_examplesdir
%global version_enc 1_78_0
%bcond_with mpich
%bcond_with openmpi
%bcond_with tests
%bcond_with docs_generated
Name: boost
Version: 1.78.0
Release: 4
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/ui/native/main/release/%{version}/source/%{name}_%{version_enc}.tar.gz
Source1: bjam
# All of the 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
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}-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}-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
# optional library for asio
BuildRequires: openssl-devel
# optional libraries for iostreams
BuildRequires: bzip2-devel libzstd-devel xz-devel zlib-devel
# optional library for multiprecision
BuildRequires: libquadmath-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 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 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}
Requires: libquadmath-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 for the Boost C++ libraries
BuildArch: noarch
%description help
This package contains the documentation in the HTML format 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}).
%package examples
Summary: Source examples for the Boost C++ libraries
BuildArch: noarch
Requires: boost-devel = %{version}-%{release}
%description examples
This package contains example source files distributed with boost.
%if 0%{with openmpi}
%package openmpi
Summary: Run-time component of Boost.MPI library
BuildRequires: openmpi-devel
Requires: boost-serialization%{?_isa} = %{version}-%{release}
%description openmpi
Run-time support for Boost.MPI-OpenMPI, a library providing a clean C++
API over the OpenMPI implementation of MPI.
%package openmpi-devel
Summary: Shared library symbolic links for Boost.MPI
Requires: boost-devel%{?_isa} = %{version}-%{release}
Requires: boost-openmpi%{?_isa} = %{version}-%{release}
Requires: boost-graph-openmpi%{?_isa} = %{version}-%{release}
%description openmpi-devel
Devel package for Boost.MPI-OpenMPI, a library providing a clean C++
API over the OpenMPI implementation of MPI.
%package openmpi-python3
Summary: Python 3 run-time component of Boost.MPI library
Requires: boost-openmpi%{?_isa} = %{version}-%{release}
Requires: boost-python3%{?_isa} = %{version}-%{release}
Requires: boost-serialization%{?_isa} = %{version}-%{release}
Requires: python3-openmpi%{?_isa}
%description openmpi-python3
Python 3 support for Boost.MPI-OpenMPI, a library providing a clean C++
API over the OpenMPI implementation of MPI.
%package openmpi-python3-devel
Summary: Shared library symbolic links for Boost.MPI Python 3 component
Requires: boost-devel%{?_isa} = %{version}-%{release}
Requires: boost-python3-devel%{?_isa} = %{version}-%{release}
Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release}
Requires: boost-openmpi-python3%{?_isa} = %{version}-%{release}
%description openmpi-python3-devel
Devel package for the Python 3 interface of Boost.MPI-OpenMPI, a library
providing a clean C++ API over the OpenMPI implementation of MPI.
%package graph-openmpi
Summary: Run-time component of parallel boost graph library
Requires: boost-openmpi%{?_isa} = %{version}-%{release}
Requires: boost-serialization%{?_isa} = %{version}-%{release}
%description graph-openmpi
Run-time support for the Parallel BGL graph library. The interface and
graph components are generic, in the same sense as the Standard
Template Library (STL). This libraries in this package use OpenMPI
back-end to do the parallel work.
%endif
%if 0%{with mpich}
%package mpich
Summary: Run-time component of Boost.MPI library
BuildRequires: mpich-devel
Requires: boost-serialization%{?_isa} = %{version}-%{release}
%description mpich
Run-time support for Boost.MPI-MPICH, a library providing a clean C++
API over the MPICH implementation of MPI.
%package mpich-devel
Summary: Shared library symbolic links for Boost.MPI
Requires: boost-devel%{?_isa} = %{version}-%{release}
Requires: boost-mpich%{?_isa} = %{version}-%{release}
Requires: boost-graph-mpich%{?_isa} = %{version}-%{release}
%description mpich-devel
Devel package for Boost.MPI-MPICH, a library providing a clean C++
API over the MPICH implementation of MPI.
%package mpich-python3
Summary: Python 3 run-time component of Boost.MPI library
Requires: boost-mpich%{?_isa} = %{version}-%{release}
Requires: boost-python3%{?_isa} = %{version}-%{release}
Requires: boost-serialization%{?_isa} = %{version}-%{release}
Requires: python3-mpich%{?_isa}
%description mpich-python3
Python 3 support for Boost.MPI-MPICH, a library providing a clean C++
API over the MPICH implementation of MPI.
%package mpich-python3-devel
Summary: Shared library symbolic links for Boost.MPI Python 3 component
Requires: boost-devel%{?_isa} = %{version}-%{release}
Requires: boost-python3-devel%{?_isa} = %{version}-%{release}
Requires: boost-mpich-devel%{?_isa} = %{version}-%{release}
Requires: boost-mpich-python3%{?_isa} = %{version}-%{release}
%description mpich-python3-devel
Devel package for the Python 3 interface of Boost.MPI-MPICH, a library
providing a clean C++ API over the MPICH implementation of MPI.
%package graph-mpich
Summary: Run-time component of parallel boost graph library
Requires: boost-mpich%{?_isa} = %{version}-%{release}
Requires: boost-serialization%{?_isa} = %{version}-%{release}
%description graph-mpich
Run-time support for the Parallel BGL graph library. The interface and
graph components are generic, in the same sense as the Standard
Template Library (STL). This libraries in this package use MPICH
back-end to do the parallel work.
%endif
%package build
Summary: Cross platform build system for C++ projects
Requires: boost-jam
BuildArch: noarch
%description build
Boost.Build is an easy way to build C++ projects, everywhere. You name
your pieces of executable and libraries and list their sources. Boost.Build
takes care about compiling your sources with the right options,
creating static and shared libraries, making pieces of executable, and other
chores -- whether you're using GCC, MSVC, or a dozen more supported
C++ compilers -- on Windows, OSX, Linux and commercial UNIX systems.
%package doctools
Summary: Tools for working with Boost documentation
Requires: docbook-dtds
Requires: docbook-style-xsl
%description doctools
Tools for working with Boost documentation in BoostBook or QuickBook format.
%package jam
Summary: A low-level build tool
%description jam
Boost.Jam (BJam) is the low-level build engine tool for Boost.Build.
Historically, Boost.Jam is based on on FTJam and on Perforce Jam but has grown
a number of significant features and is now developed independently.
%prep
%autosetup -p1 -n %{name}_%{version_enc}
%build
PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags)
: PYTHON3_VERSION=%{python3_version}
: PYTHON3_ABIFLAGS=${PYTHON3_ABIFLAGS}
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -Wno-deprecated-declarations"
export RPM_LD_FLAGS
cat > ./tools/build/src/user-config.jam << "EOF"
import os ;
local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ;
local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ;
using gcc : : : <compileflags>$(RPM_OPT_FLAGS) <linkflags>$(RPM_LD_FLAGS) ;
%if 0%{with openmpi} || 0%{with mpich}
using mpi ;
%endif
EOF
cat >> ./tools/build/src/user-config.jam << EOF
using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : ;
EOF
./bootstrap.sh --with-toolset=gcc --with-icu
%define opt_build -d+2 -q %{?_smp_mflags} --no-cmake-config
%define opt_feature variant=release threading=multi debug-symbols=on pch=off
%define opt_python python=%{python3_version}
%define b2_options %{opt_build} %{opt_feature} %{opt_python}
echo ============================= build serial ==================
./b2 %{b2_options} \
--without-mpi --without-graph_parallel --build-dir=serial \
stage
%if %{with openmpi} || %{with mpich}
module purge ||:
%endif
%if %{with openmpi}
%{_openmpi_load}
echo ============================= build $MPI_COMPILER ==================
./b2 %{b2_options} \
--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
stage
%{_openmpi_unload}
export PATH=/bin${PATH:+:}$PATH
%endif
%if %{with mpich}
%{_mpich_load}
echo ============================= build $MPI_COMPILER ==================
./b2 %{b2_options} \
--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
stage
%{_mpich_unload}
export PATH=/bin${PATH:+:}$PATH
%endif
echo ============================= build Boost.Build ==================
(cd tools/build
./bootstrap.sh --with-toolset=gcc)
%check
:
%install
%if 0%{with openmpi} || 0%{with mpich}
module purge ||:
%endif
%if 0%{with openmpi}
%{_openmpi_load}
echo ============================= install $MPI_COMPILER ==================
./b2 %{b2_options} \
--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
--stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \
install
mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost
touch ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/__init__.py
mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \
${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy*
%{_openmpi_unload}
export PATH=/bin${PATH:+:}$PATH
%endif
%if 0%{with mpich}
%{_mpich_load}
echo ============================= install $MPI_COMPILER ==================
./b2 %{b2_options} \
--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
--stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \
install
mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost
touch ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/__init__.py
mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \
${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy*
%{_mpich_unload}
export PATH=/bin${PATH:+:}$PATH
%endif
echo ============================= install serial ==================
./b2 %{b2_options} \
--without-mpi --without-graph_parallel --build-dir=serial \
--prefix=$RPM_BUILD_ROOT%{_prefix} \
--libdir=$RPM_BUILD_ROOT%{_libdir} \
install
version=%{version}
echo ============================= install Boost.Build ==================
(cd tools/build
./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py
sed -i '1s@^#!/usr/bin.python$@&3@' $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py
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
rm -f $RPM_BUILD_ROOT%{_bindir}/b2
install -m 755 %{_builddir}/%{name}_%{version_enc}/tools/build/b2 $RPM_BUILD_ROOT%{_bindir}/bjam
%{__install} -p -m 644 %{SOURCE1} -D $RPM_BUILD_ROOT%{_mandir}/man1/bjam.1
)
echo ============================= install Boost.QuickBook ==================
(cd tools/quickbook
../build/b2 --prefix=$RPM_BUILD_ROOT%{_prefix}
%{__install} -p -m 755 ../../dist/bin/quickbook $RPM_BUILD_ROOT%{_bindir}/
cd ../boostbook
find dtd -type f -name '*.dtd' | while read tobeinstalledfiles; do
install -p -m 644 $tobeinstalledfiles -D $RPM_BUILD_ROOT%{_datadir}/boostbook/$tobeinstalledfiles
done
find xsl -type f | while read tobeinstalledfiles; do
install -p -m 644 $tobeinstalledfiles -D $RPM_BUILD_ROOT%{_datadir}/boostbook/$tobeinstalledfiles
done
)
echo ============================= install documentation ==================
rm -rf %{boost_docdir} && %{__mkdir_p} %{boost_docdir}/html
DOCPATH=%{boost_docdir}
DOCREGEX='.*\.\(html?\|css\|png\|gif\)'
find libs doc more -type f -regex $DOCREGEX | sed -n '/\//{s,/[^/]*$,,;p}' | sort -u > tmp-doc-directories
sed "s:^:$DOCPATH/:" tmp-doc-directories | xargs -P 0 --no-run-if-empty %{__install} -d
cat tmp-doc-directories | while read tobeinstalleddocdir; do
find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -regex $DOCREGEX -print0 \
| xargs -P 0 -0 %{__install} -p -m 644 -t $DOCPATH/$tobeinstalleddocdir
done
rm -f tmp-doc-directories
%{__install} -p -m 644 -t $DOCPATH LICENSE_1_0.txt index.htm index.html boost.png rst.css boost.css
echo ============================= install examples ==================
sed -i -e 's/\r//g' libs/geometry/example/ml02_distance_strategy.cpp
for tmp_doc_file in flyweight/example/Jamfile.v2 \
format/example/sample_new_features.cpp multi_index/example/Jamfile.v2 \
multi_index/example/hashed.cpp serialization/example/demo_output.txt
do
mv libs/${tmp_doc_file} libs/${tmp_doc_file}.iso8859
iconv -f ISO8859-1 -t UTF8 < libs/${tmp_doc_file}.iso8859 > libs/${tmp_doc_file}
touch -r libs/${tmp_doc_file}.iso8859 libs/${tmp_doc_file}
rm -f libs/${tmp_doc_file}.iso8859
done
rm -rf %{boost_examplesdir} && mkdir -p %{boost_examplesdir}/html
EXAMPLESPATH=%{boost_examplesdir}
find libs -type d -name example -exec find {} -type f \; | sed -n '/\//{s,/[^/]*$,,;p}' | sort -u > tmp-doc-directories
sed "s:^:$EXAMPLESPATH/:" tmp-doc-directories | xargs -P 0 --no-run-if-empty %{__install} -d
rm -f tmp-doc-files-to-be-installed && touch tmp-doc-files-to-be-installed
cat tmp-doc-directories | while read tobeinstalleddocdir
do
find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -type f >> tmp-doc-files-to-be-installed
done
cat tmp-doc-files-to-be-installed | while read tobeinstalledfiles
do
if test -s $tobeinstalledfiles; then
tobeinstalleddocdir=`dirname $tobeinstalledfiles`
%{__install} -p -m 644 -t $EXAMPLESPATH/$tobeinstalleddocdir $tobeinstalledfiles
fi
done
rm -f tmp-doc-files-to-be-installed
rm -f tmp-doc-directories
%{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt
%post doctools
CATALOG=%{_sysconfdir}/xml/catalog
%{_bindir}/xmlcatalog --noout --add "rewriteSystem" \
"http://www.boost.org/tools/boostbook/dtd" \
"file://%{_datadir}/boostbook/dtd" $CATALOG
%{_bindir}/xmlcatalog --noout --add "rewriteURI" \
"http://www.boost.org/tools/boostbook/dtd" \
"file://%{_datadir}/boostbook/dtd" $CATALOG
%{_bindir}/xmlcatalog --noout --add "rewriteSystem" \
"http://www.boost.org/tools/boostbook/xsl" \
"file://%{_datadir}/boostbook/xsl" $CATALOG
%{_bindir}/xmlcatalog --noout --add "rewriteURI" \
"http://www.boost.org/tools/boostbook/xsl" \
"file://%{_datadir}/boostbook/xsl" $CATALOG
%postun doctools
if [ "$1" = 0 ]; then
CATALOG=%{_sysconfdir}/xml/catalog
%{_bindir}/xmlcatalog --noout --del "file://%{_datadir}/boostbook/dtd" $CATALOG
%{_bindir}/xmlcatalog --noout --del "file://%{_datadir}/boostbook/xsl" $CATALOG
fi
%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 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 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
%doc %{boost_docdir}/*
%files devel
%license LICENSE_1_0.txt
%{_includedir}/%{name}
%{_libdir}/*.so
%{_libdir}/*.a
%if 0%{with mpich}
%{_libdir}/mpich/lib/*.a
%endif
%if 0%{with openmpi}
%{_libdir}/openmpi/lib/*.a
%endif
%files examples
%doc %{boost_examplesdir}/*
%if 0%{with openmpi}
%files openmpi
%license LICENSE_1_0.txt
%{_libdir}/openmpi/lib/libboost_mpi.so.%{version}
%files openmpi-devel
%license LICENSE_1_0.txt
%{_libdir}/openmpi/lib/libboost_mpi.so
%{_libdir}/openmpi/lib/libboost_graph_parallel.so
%files openmpi-python3
%license LICENSE_1_0.txt
%{_libdir}/openmpi/lib/libboost_mpi_python%{python3_version_nodots}.so.%{version}
%{python3_sitearch}/openmpi/boost/
%files openmpi-python3-devel
%license LICENSE_1_0.txt
%{_libdir}/openmpi/lib/libboost_mpi_python%{python3_version_nodots}.so
%files graph-openmpi
%license LICENSE_1_0.txt
%{_libdir}/openmpi/lib/libboost_graph_parallel.so.%{version}
%endif
%if 0%{with mpich}
%files mpich
%license LICENSE_1_0.txt
%{_libdir}/mpich/lib/libboost_mpi.so.%{version}
%files mpich-devel
%license LICENSE_1_0.txt
%{_libdir}/mpich/lib/libboost_mpi.so
%{_libdir}/mpich/lib/libboost_graph_parallel.so
%files mpich-python3
%license LICENSE_1_0.txt
%{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so.%{version}
%{python3_sitearch}/mpich/boost/
%files mpich-python3-devel
%license LICENSE_1_0.txt
%{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so
%files graph-mpich
%license LICENSE_1_0.txt
%{_libdir}/mpich/lib/libboost_graph_parallel.so.%{version}
%endif
%files build
%license LICENSE_1_0.txt
%{_datadir}/boost-build/
%files doctools
%license LICENSE_1_0.txt
%{_bindir}/quickbook
%{_datadir}/boostbook/
%files jam
%license LICENSE_1_0.txt
%{_bindir}/bjam
%{_mandir}/man1/bjam.1*
%changelog
* Fri Dec 24 2021 sdlzx <sdlzx@163.com> - 1.78.0-4
- Update package info
- Reference: https://www.boost.org/doc/libs/1_78_0/
* Sun Dec 19 2021 sdlzx <sdlzx@163.com> - 1.78.0-3
- Simplify spec: extract common b2 configs into b2_config
* Fri Dec 10 2021 sdlzx <sdlzx@163.com> - 1.78.0-2
- Simplify spec: remove useless bcond
* Fri Dec 10 2021 sdlzx <sdlzx@163.com> - 1.78.0-1
- update to 1.78.0
* Wed Oct 06 2021 Liu Zixian <liuzixian4@huawei.com> - 1.77.0-4
- Remove dependencies on header-only libraries
* Sun Sep 26 2021 Liu Zixian <liuzixian4@huawei.com> - 1.77.0-3
- Remove linking script which is fixed in upstream PR266
* Wed Sep 22 2021 Liu Zixian <liuzixian4@huawei.com> - 1.77.0-2
- Correct license name for ci.
* Wed Sep 15 2021 Liu Zixian <liuzixian4@huawei.com> - 1.77.0-1
- update to 1.77.0
* Sat Jul 24 2021 Liu Zixian <liuzixian4@huawei.com> - 1.76.0-1
- update to 1.76.0
* Sat Jul 24 2021 Liu Zixian <liuzixian4@huawei.com> - 1.75.0-6
- remove needless BuildRequires
* Fri Jul 23 2021 zhouwenpei <zhouwenpei1@huawei.com> - 1.75.0-5
- remove useless buildrequires
* Wed Jun 23 2021 Xu Huijie <xuhuijie2@huawei.com> - 1.75.0-4
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix dead loop in parse_repeat()
* Fri Feb 5 2021 xinghe <xinghe1@huawei.com> - 1.75.0-3
- fix the conflict between the devel package file and the other subpackage file
* Thu Feb 4 2021 xinghe <xinghe1@huawei.com> - 1.75.0-2
- fix master build
* Wed Feb 3 2021 xinghe <xinghe1@huawei.com> - 1.75.0-1
- update version to 1.75.0
* Wed Dec 16 2020 xinghe <xinghe1@huawei.com> - 1.73.0-2
- correct license
* Fri Jul 24 2020 Wang Shuo<wangshuo47@huawei.com> - 1.73.0-1
- Type:requirement
- ID:NA
- SUG:NA
- DESC:update boost to 1.73.0
* Mon Apr 20 2020 Wang Shuo<wangshuo47@huawei.com> - 1.72.0-1
- Type:requirement
- ID:NA
- SUG:NA
- DESC:update boost to 1.72.0
* Thu Mar 19 2020 Yu Xiangyang<yuxiangyang4@huawei.com> - 1.66.0-18
- Type:bugfix
- ID:NA
- SUG:NA
- DESC: fix build src.rpm error
* Tue Mar 10 2020 Wang Shuo<wangshuo47@huawei.com> - 1.66.0-17
- Type:enhancement
- ID:NA
- SUG:NA
- DESC: move examples files to examples package
* Mon Oct 28 2019 caomeng <caomeng5@huawei.com> - 1.66.0-16
- Type:NA
- ID:NA
- SUG:NA
- DESC:add bcondwith openmpi and mpich
* Wed Aug 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.66.0-15
- Package init