c7fd47
# Support for documentation installation As the %%doc macro erases the
c7fd47
# target directory ($RPM_BUILD_ROOT%%{_docdir}/%%{name}), manually
c7fd47
# installed documentation must be saved into a temporary dedicated
c7fd47
# directory.
c7fd47
# XXX note that as of rpm 4.9.1, this shouldn't be necessary anymore.
c7fd47
# We should be able to install directly.
c7fd47
%global boost_docdir __tmp_docdir
c7fd47
%global boost_examplesdir __tmp_examplesdir
c7fd47
c7fd47
%if 0%{?flatpak}
c7fd47
# For bundling in Flatpak, currently build without mpich and openmpi,
c7fd47
# which aren't needed and cause prefix=/app errors.
c7fd47
%bcond_with mpich
c7fd47
%bcond_with openmpi
c7fd47
%else
c7fd47
# All arches have openmpi and mpich
c7fd47
%bcond_without mpich
c7fd47
%bcond_without openmpi
c7fd47
%endif
c7fd47
c7fd47
%ifnarch %{ix86} x86_64 ppc64le aarch64
c7fd47
  %bcond_with context
c7fd47
%else
c7fd47
  %bcond_without context
c7fd47
%endif
c7fd47
c7fd47
%ifnarch %{ix86} x86_64
c7fd47
  %bcond_with quadmath
c7fd47
%else
c7fd47
  %bcond_without quadmath
c7fd47
%endif
c7fd47
c7fd47
Name: boost
c7fd47
Summary: The free peer-reviewed portable C++ source libraries
c7fd47
Version: 1.66.0
c7fd47
%global version_enc 1_66_0
c7fd47
Release: 11%{?dist}
c7fd47
License: Boost and MIT and Python
c7fd47
c7fd47
%global toplev_dirname %{name}_%{version_enc}
c7fd47
URL: http://www.boost.org
c7fd47
c7fd47
Source0: https://sourceforge.net/projects/boost/files/boost/%{version}/%{toplev_dirname}.tar.bz2
c7fd47
Source1: libboost_thread.so
c7fd47
c7fd47
# Since Fedora 13, the Boost libraries are delivered with sonames
c7fd47
# equal to the Boost version (e.g., 1.41.0).
c7fd47
%global sonamever %{version}
c7fd47
c7fd47
# boost is an "umbrella" package that pulls in all boost shared library
c7fd47
# components, except for MPI and Python sub-packages.  Those are special
c7fd47
# in that there are alternative implementations to choose from
c7fd47
# (Open MPI and MPICH, and Python 2 and 3), and it's not a big burden
c7fd47
# to have interested parties install them explicitly.
c7fd47
# The subpackages that don't install shared libraries are also not pulled in
c7fd47
# (doc, doctools, examples, jam, static).
c7fd47
Requires: boost-atomic%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-chrono%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-container%{?_isa} = %{version}-%{release}
c7fd47
%if %{with context}
c7fd47
Requires: boost-context%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-coroutine%{?_isa} = %{version}-%{release}
c7fd47
%endif
c7fd47
Requires: boost-date-time%{?_isa} = %{version}-%{release}
c7fd47
%if %{with context}
c7fd47
Requires: boost-fiber%{?_isa} = %{version}-%{release}
c7fd47
%endif
c7fd47
Requires: boost-filesystem%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-graph%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-iostreams%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-locale%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-log%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-math%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-program-options%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-random%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-regex%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-serialization%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-signals%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-stacktrace%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-test%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-thread%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-timer%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-type_erasure%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-wave%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
BuildRequires: m4
c7fd47
BuildRequires: libstdc++-devel
c7fd47
BuildRequires: bzip2-devel
c7fd47
BuildRequires: zlib-devel
c7fd47
BuildRequires: python3-devel
c7fd47
BuildRequires: python3-numpy
c7fd47
BuildRequires: libicu-devel
c7fd47
%if %{with quadmath}
c7fd47
BuildRequires: libquadmath-devel
c7fd47
%endif
c7fd47
c7fd47
# https://svn.boost.org/trac/boost/ticket/6150
c7fd47
Patch4: boost-1.50.0-fix-non-utf8-files.patch
c7fd47
c7fd47
# Add a manual page for bjam, based on the on-line documentation:
c7fd47
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
c7fd47
Patch5: boost-1.48.0-add-bjam-man-page.patch
c7fd47
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=828856
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=828857
c7fd47
# https://svn.boost.org/trac/boost/ticket/6701
c7fd47
Patch15: boost-1.58.0-pool.patch
c7fd47
c7fd47
# https://svn.boost.org/trac/boost/ticket/5637
c7fd47
Patch25: boost-1.57.0-mpl-print.patch
c7fd47
c7fd47
# https://svn.boost.org/trac/boost/ticket/9038
c7fd47
Patch51: boost-1.58.0-pool-test_linking.patch
c7fd47
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=1102667
c7fd47
Patch61: boost-1.57.0-python-libpython_dep.patch
c7fd47
Patch62: boost-1.66.0-python-abi_letters.patch
c7fd47
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=1190039
c7fd47
Patch65: boost-1.66.0-build-optflags.patch
c7fd47
c7fd47
# Prevent gcc.jam from setting -m32 or -m64.
c7fd47
Patch68: boost-1.66.0-address-model.patch
c7fd47
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=1318383
c7fd47
Patch82: boost-1.66.0-no-rpath.patch
c7fd47
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=1541035
c7fd47
Patch83: boost-1.66.0-bjam-build-flags.patch
c7fd47
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=1545092
c7fd47
Patch84: boost-1.66.0-spirit-abs-overflow.patch
c7fd47
c7fd47
Patch85: boost-1.66.0-py3-shebang.patch
c7fd47
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=1596468
c7fd47
# https://github.com/boostorg/python/pull/218
c7fd47
Patch87: boost-1.66.0-numpy3.patch
c7fd47
c7fd47
# https://bugzilla.redhat.com/show_bug.cgi?id=1630552
c7fd47
Patch88: boost-1.66-annobin-notes.patch
c7fd47
c7fd47
# https://github.com/boostorg/build/pull/350
c7fd47
Patch89: boost-1.66-build-malloc-sizeof.patch
c7fd47
c7fd47
# https://github.com/boostorg/build/pull/351
c7fd47
Patch90: boost-1.66-build-memory-leak.patch
c7fd47
c7fd47
# https://github.com/boostorg/graph/pull/84
c7fd47
Patch91: boost-1.66-graph-return-local-addr.patch
c7fd47
c7fd47
%bcond_with tests
c7fd47
%bcond_with docs_generated
c7fd47
c7fd47
%description
c7fd47
Boost provides free peer-reviewed portable C++ source libraries.  The
c7fd47
emphasis is on libraries which work well with the C++ Standard
c7fd47
Library, in the hopes of establishing "existing practice" for
c7fd47
extensions and providing reference implementations so that the Boost
c7fd47
libraries are suitable for eventual standardization. (Some of the
c7fd47
libraries have already been included in the C++ 2011 standard and
c7fd47
others have been proposed to the C++ Standards Committee for inclusion
c7fd47
in future standards.)
c7fd47
c7fd47
%package atomic
c7fd47
Summary: Run-time component of boost atomic library
c7fd47
c7fd47
%description atomic
c7fd47
c7fd47
Run-time support for Boost.Atomic, a library that provides atomic data
c7fd47
types and operations on these data types, as well as memory ordering
c7fd47
constraints required for coordinating multiple threads through atomic
c7fd47
variables.
c7fd47
c7fd47
%package chrono
c7fd47
Summary: Run-time component of boost chrono library
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description chrono
c7fd47
c7fd47
Run-time support for Boost.Chrono, a set of useful time utilities.
c7fd47
c7fd47
%package container
c7fd47
Summary: Run-time component of boost container library
c7fd47
c7fd47
%description container
c7fd47
c7fd47
Boost.Container library implements several well-known containers,
c7fd47
including STL containers. The aim of the library is to offer advanced
c7fd47
features not present in standard containers or to offer the latest
c7fd47
standard draft features for compilers that comply with C++03.
c7fd47
c7fd47
%if %{with context}
c7fd47
%package context
c7fd47
Summary: Run-time component of boost context switching library
c7fd47
c7fd47
%description context
c7fd47
c7fd47
Run-time support for Boost.Context, a foundational library that
c7fd47
provides a sort of cooperative multitasking on a single thread.
c7fd47
c7fd47
%package coroutine
c7fd47
Summary: Run-time component of boost coroutine library
c7fd47
Requires: boost-chrono%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-context%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-thread%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description coroutine
c7fd47
Run-time support for Boost.Coroutine, a library that provides
c7fd47
generalized subroutines which allow multiple entry points for
c7fd47
suspending and resuming execution.
c7fd47
c7fd47
%endif
c7fd47
c7fd47
%package date-time
c7fd47
Summary: Run-time component of boost date-time library
c7fd47
c7fd47
%description date-time
c7fd47
c7fd47
Run-time support for Boost Date Time, a set of date-time libraries based
c7fd47
on generic programming concepts.
c7fd47
c7fd47
%if %{with context}
c7fd47
%package fiber
c7fd47
Summary: Run-time component of boost fiber library
c7fd47
Requires: boost-context%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-filesystem%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description fiber
c7fd47
c7fd47
Run-time support for the Boost Fiber library, a framework for
c7fd47
micro-/userland-threads (fibers) scheduled cooperatively.
c7fd47
%endif
c7fd47
c7fd47
%package filesystem
c7fd47
Summary: Run-time component of boost filesystem library
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description filesystem
c7fd47
c7fd47
Run-time support for the Boost Filesystem Library, which provides
c7fd47
portable facilities to query and manipulate paths, files, and
c7fd47
directories.
c7fd47
c7fd47
%package graph
c7fd47
Summary: Run-time component of boost graph library
c7fd47
Requires: boost-regex%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description graph
c7fd47
c7fd47
Run-time support for the BGL graph library.  BGL interface and graph
c7fd47
components are generic, in the same sense as the Standard Template
c7fd47
Library (STL).
c7fd47
c7fd47
%package iostreams
c7fd47
Summary: Run-time component of boost iostreams library
c7fd47
c7fd47
%description iostreams
c7fd47
c7fd47
Run-time support for Boost.Iostreams, a framework for defining streams,
c7fd47
stream buffers and i/o filters.
c7fd47
c7fd47
%package locale
c7fd47
Summary: Run-time component of boost locale library
c7fd47
Requires: boost-chrono%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-thread%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description locale
c7fd47
c7fd47
Run-time support for Boost.Locale, a set of localization and Unicode
c7fd47
handling tools.
c7fd47
c7fd47
%package log
c7fd47
Summary: Run-time component of boost logging library
c7fd47
Requires: boost-atomic%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-chrono%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-date-time%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-filesystem%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-regex%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-thread%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description log
c7fd47
c7fd47
Boost.Log library aims to make logging significantly easier for the
c7fd47
application developer.  It provides a wide range of out-of-the-box
c7fd47
tools along with public interfaces for extending the library.
c7fd47
c7fd47
%package math
c7fd47
Summary: Math functions for boost TR1 library
c7fd47
c7fd47
%description math
c7fd47
c7fd47
Run-time support for C99 and C++ TR1 C-style Functions from the math
c7fd47
portion of Boost.TR1.
c7fd47
c7fd47
%package numpy3
c7fd47
Summary: Run-time component of boost numpy library for Python 3
c7fd47
Requires: boost-python3%{?_isa} = %{version}-%{release}
c7fd47
Requires: python3-numpy
c7fd47
c7fd47
%description numpy3
c7fd47
c7fd47
The Boost Python Library is a framework for interfacing Python and
c7fd47
C++. It allows you to quickly and seamlessly expose C++ classes,
c7fd47
functions and objects to Python, and vice versa, using no special
c7fd47
tools -- just your C++ compiler.  This package contains run-time
c7fd47
support for the NumPy extension of the Boost Python Library for Python 3.
c7fd47
c7fd47
%package program-options
c7fd47
Summary:  Run-time component of boost program_options library
c7fd47
c7fd47
%description program-options
c7fd47
c7fd47
Run-time support of boost program options library, which allows program
c7fd47
developers to obtain (name, value) pairs from the user, via
c7fd47
conventional methods such as command-line and configuration file.
c7fd47
c7fd47
%package python3
c7fd47
Summary: Run-time component of boost python library for Python 3
c7fd47
c7fd47
%description python3
c7fd47
c7fd47
The Boost Python Library is a framework for interfacing Python and
c7fd47
C++. It allows you to quickly and seamlessly expose C++ classes,
c7fd47
functions and objects to Python, and vice versa, using no special
c7fd47
tools -- just your C++ compiler.  This package contains run-time
c7fd47
support for the Boost Python Library compiled for Python 3.
c7fd47
c7fd47
%package python3-devel
c7fd47
Summary: Shared object symbolic links for Boost.Python 3
c7fd47
Requires: boost-numpy3%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-python3%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-devel%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description python3-devel
c7fd47
c7fd47
Shared object symbolic links for Python 3 variant of Boost.Python.
c7fd47
c7fd47
%package random
c7fd47
Summary: Run-time component of boost random library
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description random
c7fd47
c7fd47
Run-time support for boost random library.
c7fd47
c7fd47
%package regex
c7fd47
Summary: Run-time component of boost regular expression library
c7fd47
c7fd47
%description regex
c7fd47
c7fd47
Run-time support for boost regular expression library.
c7fd47
c7fd47
%package serialization
c7fd47
Summary: Run-time component of boost serialization library
c7fd47
c7fd47
%description serialization
c7fd47
c7fd47
Run-time support for serialization for persistence and marshaling.
c7fd47
c7fd47
%package signals
c7fd47
Summary: Run-time component of boost signals and slots library
c7fd47
c7fd47
%description signals
c7fd47
c7fd47
Run-time support for managed signals & slots callback implementation.
c7fd47
c7fd47
%package stacktrace
c7fd47
Summary: Run-time component of boost stacktrace library
c7fd47
c7fd47
%description stacktrace
c7fd47
c7fd47
Run-time component of the Boost stacktrace library.
c7fd47
c7fd47
%package system
c7fd47
Summary: Run-time component of boost system support library
c7fd47
c7fd47
%description system
c7fd47
c7fd47
Run-time component of Boost operating system support library, including
c7fd47
the diagnostics support that is part of the C++11 standard library.
c7fd47
c7fd47
%package test
c7fd47
Summary: Run-time component of boost test library
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-timer%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description test
c7fd47
c7fd47
Run-time support for simple program testing, full unit testing, and for
c7fd47
program execution monitoring.
c7fd47
c7fd47
%package thread
c7fd47
Summary: Run-time component of boost thread library
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description thread
c7fd47
c7fd47
Run-time component Boost.Thread library, which provides classes and
c7fd47
functions for managing multiple threads of execution, and for
c7fd47
synchronizing data between the threads or providing separate copies of
c7fd47
data specific to individual threads.
c7fd47
c7fd47
%package timer
c7fd47
Summary: Run-time component of boost timer library
c7fd47
Requires: boost-chrono%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description timer
c7fd47
c7fd47
"How long does my C++ code take to run?"
c7fd47
The Boost Timer library answers that question and does so portably,
c7fd47
with as little as one #include and one additional line of code.
c7fd47
c7fd47
%package type_erasure
c7fd47
Summary: Run-time component of boost type erasure library
c7fd47
Requires: boost-chrono%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-thread%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description type_erasure
c7fd47
c7fd47
The Boost.TypeErasure library provides runtime polymorphism in C++
c7fd47
that is more flexible than that provided by the core language.
c7fd47
c7fd47
%package wave
c7fd47
Summary: Run-time component of boost C99/C++ preprocessing library
c7fd47
Requires: boost-chrono%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-date-time%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-filesystem%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-system%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-thread%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description wave
c7fd47
c7fd47
Run-time support for the Boost.Wave library, a Standards conforming,
c7fd47
and highly configurable implementation of the mandated C99/C++
c7fd47
preprocessor functionality.
c7fd47
c7fd47
%package devel
c7fd47
Summary: The Boost C++ headers and shared development libraries
c7fd47
Requires: boost%{?_isa} = %{version}-%{release}
c7fd47
Requires: libicu-devel%{?_isa}
c7fd47
%if %{with quadmath}
c7fd47
Requires: libquadmath-devel%{?_isa}
c7fd47
%endif
c7fd47
c7fd47
%description devel
c7fd47
Headers and shared object symbolic links for the Boost C++ libraries.
c7fd47
c7fd47
%package static
c7fd47
Summary: The Boost C++ static development libraries
c7fd47
Requires: boost-devel%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description static
c7fd47
Static Boost C++ libraries.
c7fd47
c7fd47
%package doc
c7fd47
Summary: HTML documentation for the Boost C++ libraries
c7fd47
%if 0%{?rhel} >= 6
c7fd47
BuildArch: noarch
c7fd47
%endif
c7fd47
c7fd47
%description doc
c7fd47
This package contains the documentation in the HTML format of the Boost C++
c7fd47
libraries. The documentation provides the same content as that on the Boost
c7fd47
web page (http://www.boost.org/doc/libs/%{version_enc}).
c7fd47
c7fd47
%package examples
c7fd47
Summary: Source examples for the Boost C++ libraries
c7fd47
%if 0%{?rhel} >= 6
c7fd47
BuildArch: noarch
c7fd47
%endif
c7fd47
Requires: boost-devel = %{version}-%{release}
c7fd47
c7fd47
%description examples
c7fd47
This package contains example source files distributed with boost.
c7fd47
c7fd47
c7fd47
%if %{with openmpi}
c7fd47
c7fd47
%package openmpi
c7fd47
Summary: Run-time component of Boost.MPI library
c7fd47
BuildRequires: openmpi-devel
c7fd47
Requires: boost-serialization%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description openmpi
c7fd47
c7fd47
Run-time support for Boost.MPI-OpenMPI, a library providing a clean C++
c7fd47
API over the OpenMPI implementation of MPI.
c7fd47
c7fd47
%package openmpi-devel
c7fd47
Summary: Shared library symbolic links for Boost.MPI
c7fd47
Requires: boost-devel%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-openmpi%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-graph-openmpi%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description openmpi-devel
c7fd47
c7fd47
Devel package for Boost.MPI-OpenMPI, a library providing a clean C++
c7fd47
API over the OpenMPI implementation of MPI.
c7fd47
c7fd47
%package openmpi-python3
c7fd47
Summary: Python 3 run-time component of Boost.MPI library
c7fd47
Requires: boost-openmpi%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-python3%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-serialization%{?_isa} = %{version}-%{release}
c7fd47
Requires: python3-openmpi%{?_isa}
c7fd47
c7fd47
%description openmpi-python3
c7fd47
c7fd47
Python 3 support for Boost.MPI-OpenMPI, a library providing a clean C++
c7fd47
API over the OpenMPI implementation of MPI.
c7fd47
c7fd47
%package openmpi-python3-devel
c7fd47
Summary: Shared library symbolic links for Boost.MPI Python 3 component
c7fd47
Requires: boost-devel%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-python3-devel%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-openmpi-python3%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description openmpi-python3-devel
c7fd47
c7fd47
Devel package for the Python 3 interface of Boost.MPI-OpenMPI, a library
c7fd47
providing a clean C++ API over the OpenMPI implementation of MPI.
c7fd47
c7fd47
%package graph-openmpi
c7fd47
Summary: Run-time component of parallel boost graph library
c7fd47
Requires: boost-openmpi%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-serialization%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description graph-openmpi
c7fd47
c7fd47
Run-time support for the Parallel BGL graph library.  The interface and
c7fd47
graph components are generic, in the same sense as the Standard
c7fd47
Template Library (STL).  This libraries in this package use OpenMPI
c7fd47
back-end to do the parallel work.
c7fd47
c7fd47
%endif
c7fd47
c7fd47
c7fd47
%if %{with mpich}
c7fd47
c7fd47
%package mpich
c7fd47
Summary: Run-time component of Boost.MPI library
c7fd47
BuildRequires: mpich-devel
c7fd47
Requires: boost-serialization%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description mpich
c7fd47
c7fd47
Run-time support for Boost.MPI-MPICH, a library providing a clean C++
c7fd47
API over the MPICH implementation of MPI.
c7fd47
c7fd47
%package mpich-devel
c7fd47
Summary: Shared library symbolic links for Boost.MPI
c7fd47
Requires: boost-devel%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-mpich%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-graph-mpich%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description mpich-devel
c7fd47
c7fd47
Devel package for Boost.MPI-MPICH, a library providing a clean C++
c7fd47
API over the MPICH implementation of MPI.
c7fd47
c7fd47
%package mpich-python3
c7fd47
Summary: Python 3 run-time component of Boost.MPI library
c7fd47
Requires: boost-mpich%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-python3%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-serialization%{?_isa} = %{version}-%{release}
c7fd47
Requires: python3-mpich%{?_isa}
c7fd47
c7fd47
%description mpich-python3
c7fd47
c7fd47
Python 3 support for Boost.MPI-MPICH, a library providing a clean C++
c7fd47
API over the MPICH implementation of MPI.
c7fd47
c7fd47
%package mpich-python3-devel
c7fd47
Summary: Shared library symbolic links for Boost.MPI Python 3 component
c7fd47
Requires: boost-devel%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-python3-devel%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-mpich-devel%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-mpich-python3%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description mpich-python3-devel
c7fd47
c7fd47
Devel package for the Python 3 interface of Boost.MPI-MPICH, a library
c7fd47
providing a clean C++ API over the MPICH implementation of MPI.
c7fd47
c7fd47
%package graph-mpich
c7fd47
Summary: Run-time component of parallel boost graph library
c7fd47
Requires: boost-mpich%{?_isa} = %{version}-%{release}
c7fd47
Requires: boost-serialization%{?_isa} = %{version}-%{release}
c7fd47
c7fd47
%description graph-mpich
c7fd47
c7fd47
Run-time support for the Parallel BGL graph library.  The interface and
c7fd47
graph components are generic, in the same sense as the Standard
c7fd47
Template Library (STL).  This libraries in this package use MPICH
c7fd47
back-end to do the parallel work.
c7fd47
c7fd47
%endif
c7fd47
c7fd47
%package build
c7fd47
Summary: Cross platform build system for C++ projects
c7fd47
Requires: boost-jam
c7fd47
BuildArch: noarch
c7fd47
c7fd47
%description build
c7fd47
Boost.Build is an easy way to build C++ projects, everywhere. You name
c7fd47
your pieces of executable and libraries and list their sources.  Boost.Build
c7fd47
takes care about compiling your sources with the right options,
c7fd47
creating static and shared libraries, making pieces of executable, and other
c7fd47
chores -- whether you're using GCC, MSVC, or a dozen more supported
c7fd47
C++ compilers -- on Windows, OSX, Linux and commercial UNIX systems.
c7fd47
c7fd47
%package doctools
c7fd47
Summary: Tools for working with Boost documentation
c7fd47
Requires: docbook-dtds
c7fd47
Requires: docbook-style-xsl
c7fd47
c7fd47
%description doctools
c7fd47
c7fd47
Tools for working with Boost documentation in BoostBook or QuickBook format.
c7fd47
c7fd47
%package jam
c7fd47
Summary: A low-level build tool
c7fd47
c7fd47
%description jam
c7fd47
Boost.Jam (BJam) is the low-level build engine tool for Boost.Build.
c7fd47
Historically, Boost.Jam is based on on FTJam and on Perforce Jam but has grown
c7fd47
a number of significant features and is now developed independently.
c7fd47
c7fd47
%prep
c7fd47
%setup -q -n %{toplev_dirname}
c7fd47
find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x
c7fd47
c7fd47
%patch4 -p1
c7fd47
%patch5 -p1
c7fd47
%patch15 -p0
c7fd47
%patch25 -p1
c7fd47
%patch51 -p1
c7fd47
%patch61 -p1
c7fd47
%patch62 -p1
c7fd47
%patch65 -p1
c7fd47
%patch68 -p1
c7fd47
%patch82 -p1
c7fd47
%patch83 -p1
c7fd47
%patch84 -p1
c7fd47
%patch85 -p1
c7fd47
%patch87 -p1
c7fd47
%patch88 -p1
c7fd47
%patch89 -p1
c7fd47
%patch90 -p1
c7fd47
%patch91 -p2
c7fd47
c7fd47
%build
c7fd47
PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags)
c7fd47
c7fd47
# There are many strict aliasing warnings, and it's not feasible to go
c7fd47
# through them all at this time.
c7fd47
# There are also lots of noisy but harmless unused local typedef warnings.
c7fd47
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -Wno-deprecated-declarations"
c7fd47
c7fd47
cat > ./tools/build/src/user-config.jam << "EOF"
c7fd47
import os ;
c7fd47
local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ;
c7fd47
local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ;
c7fd47
c7fd47
using gcc : : : <compileflags>$(RPM_OPT_FLAGS) <linkflags>$(RPM_LD_FLAGS) ;
c7fd47
%if %{with openmpi} || %{with mpich}
c7fd47
using mpi ;
c7fd47
%endif
c7fd47
EOF
c7fd47
c7fd47
cat >> ./tools/build/src/user-config.jam << EOF
c7fd47
using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : : ${PYTHON3_ABIFLAGS} ;
c7fd47
EOF
c7fd47
c7fd47
./bootstrap.sh --with-toolset=gcc --with-icu
c7fd47
c7fd47
# N.B. When we build the following with PCH, parts of boost (math
c7fd47
# library in particular) end up being built second time during
c7fd47
# installation.  Unsure why that is, but all sub-builds need to be
c7fd47
# built with pch=off to avoid this.
c7fd47
c7fd47
echo ============================= build serial ==================
c7fd47
./b2 -d+2 -q %{?_smp_mflags} \
c7fd47
	--without-mpi --without-graph_parallel --build-dir=serial \
c7fd47
%if !%{with context}
c7fd47
	--without-context --without-coroutine \
c7fd47
	--without-fiber \
c7fd47
%endif
c7fd47
	variant=release threading=multi debug-symbols=on pch=off \
c7fd47
	python=%{python3_version} stage
c7fd47
c7fd47
# See libs/thread/build/Jamfile.v2 for where this file comes from.
c7fd47
if [ $(find serial -type f -name has_atomic_flag_lockfree \
c7fd47
		-print -quit | wc -l) -ne 0 ]; then
c7fd47
	DEF=D
c7fd47
else
c7fd47
	DEF=U
c7fd47
fi
c7fd47
c7fd47
m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \
c7fd47
	%{SOURCE1} > $(basename %{SOURCE1})
c7fd47
c7fd47
# Build MPI parts of Boost with OpenMPI support
c7fd47
c7fd47
%if %{with openmpi} || %{with mpich}
c7fd47
# First, purge all modules so that user environment doesn't conflict
c7fd47
# with the build.
c7fd47
module purge ||:
c7fd47
%endif
c7fd47
c7fd47
%if %{with openmpi}
c7fd47
%{_openmpi_load}
c7fd47
echo ============================= build $MPI_COMPILER ==================
c7fd47
./b2 -d+2 -q %{?_smp_mflags} \
c7fd47
	--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
c7fd47
	variant=release threading=multi debug-symbols=on pch=off \
c7fd47
	python=%{python3_version} stage
c7fd47
c7fd47
%{_openmpi_unload}
c7fd47
export PATH=/bin${PATH:+:}$PATH
c7fd47
%endif
c7fd47
c7fd47
# Build MPI parts of Boost with MPICH support
c7fd47
%if %{with mpich}
c7fd47
%{_mpich_load}
c7fd47
echo ============================= build $MPI_COMPILER ==================
c7fd47
./b2 -d+2 -q %{?_smp_mflags} \
c7fd47
	--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
c7fd47
	variant=release threading=multi debug-symbols=on pch=off \
c7fd47
	python=%{python3_version} stage
c7fd47
c7fd47
%{_mpich_unload}
c7fd47
export PATH=/bin${PATH:+:}$PATH
c7fd47
%endif
c7fd47
c7fd47
echo ============================= build Boost.Build ==================
c7fd47
(cd tools/build
c7fd47
 ./bootstrap.sh --with-toolset=gcc)
c7fd47
c7fd47
%check
c7fd47
:
c7fd47
c7fd47
c7fd47
%install
c7fd47
cd %{_builddir}/%{toplev_dirname}
c7fd47
c7fd47
%if %{with openmpi} || %{with mpich}
c7fd47
# First, purge all modules so that user environment doesn't conflict
c7fd47
# with the build.
c7fd47
module purge ||:
c7fd47
%endif
c7fd47
c7fd47
%if %{with openmpi}
c7fd47
%{_openmpi_load}
c7fd47
# XXX We want to extract this from RPM flags
c7fd47
# b2 instruction-set=i686 etc.
c7fd47
echo ============================= install $MPI_COMPILER ==================
c7fd47
./b2 -q %{?_smp_mflags} \
c7fd47
	--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
c7fd47
	--stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \
c7fd47
	variant=release threading=multi debug-symbols=on pch=off \
c7fd47
	python=%{python3_version} stage
c7fd47
c7fd47
# Move Python module to proper location for automatic loading
c7fd47
mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost
c7fd47
touch ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/__init__.py
c7fd47
mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \
c7fd47
   ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/
c7fd47
c7fd47
# Remove generic parts of boost that were built for dependencies.
c7fd47
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
c7fd47
c7fd47
%{_openmpi_unload}
c7fd47
export PATH=/bin${PATH:+:}$PATH
c7fd47
%endif
c7fd47
c7fd47
%if %{with mpich}
c7fd47
%{_mpich_load}
c7fd47
echo ============================= install $MPI_COMPILER ==================
c7fd47
./b2 -q %{?_smp_mflags} \
c7fd47
	--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
c7fd47
	--stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \
c7fd47
	variant=release threading=multi debug-symbols=on pch=off \
c7fd47
	python=%{python3_version} stage
c7fd47
c7fd47
# Move Python module to proper location for automatic loading
c7fd47
mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost
c7fd47
touch ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/__init__.py
c7fd47
mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \
c7fd47
   ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/
c7fd47
c7fd47
# Remove generic parts of boost that were built for dependencies.
c7fd47
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
c7fd47
c7fd47
%{_mpich_unload}
c7fd47
export PATH=/bin${PATH:+:}$PATH
c7fd47
%endif
c7fd47
c7fd47
echo ============================= install serial ==================
c7fd47
./b2 -d+2 -q %{?_smp_mflags} \
c7fd47
	--without-mpi --without-graph_parallel --build-dir=serial \
c7fd47
%if !%{with context}
c7fd47
	--without-context --without-coroutine \
c7fd47
	--without-fiber \
c7fd47
%endif
c7fd47
	--prefix=$RPM_BUILD_ROOT%{_prefix} \
c7fd47
	--libdir=$RPM_BUILD_ROOT%{_libdir} \
c7fd47
	variant=release threading=multi debug-symbols=on pch=off \
c7fd47
	python=%{python3_version} install
c7fd47
c7fd47
# Override DSO symlink with a linker script.  See the linker script
c7fd47
# itself for details of why we need to do this.
c7fd47
[ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so ] # Must be present
c7fd47
rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so
c7fd47
install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/
c7fd47
c7fd47
echo ============================= install Boost.Build ==================
c7fd47
(cd tools/build
c7fd47
 ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
c7fd47
 # Fix some permissions
c7fd47
 chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/alias.py
c7fd47
 chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py
c7fd47
 # We don't want to distribute this
c7fd47
 rm -f $RPM_BUILD_ROOT%{_bindir}/b2
c7fd47
 # Not a real file
c7fd47
 rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/project.ann.py
c7fd47
 # Empty file
c7fd47
 rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp
c7fd47
 # Install the manual page
c7fd47
 %{__install} -p -m 644 v2/doc/bjam.1 -D $RPM_BUILD_ROOT%{_mandir}/man1/bjam.1
c7fd47
)
c7fd47
c7fd47
echo ============================= install Boost.QuickBook ==================
c7fd47
(cd tools/quickbook
c7fd47
 ../build/b2 --prefix=$RPM_BUILD_ROOT%{_prefix}
c7fd47
 %{__install} -p -m 755 ../../dist/bin/quickbook $RPM_BUILD_ROOT%{_bindir}/
c7fd47
 cd ../boostbook
c7fd47
 find dtd -type f -name '*.dtd' | while read tobeinstalledfiles; do
c7fd47
   install -p -m 644 $tobeinstalledfiles -D $RPM_BUILD_ROOT%{_datadir}/boostbook/$tobeinstalledfiles
c7fd47
 done
c7fd47
 find xsl -type f | while read tobeinstalledfiles; do
c7fd47
   install -p -m 644 $tobeinstalledfiles -D $RPM_BUILD_ROOT%{_datadir}/boostbook/$tobeinstalledfiles
c7fd47
 done
c7fd47
)
c7fd47
c7fd47
# Install documentation files (HTML pages) within the temporary place
c7fd47
echo ============================= install documentation ==================
c7fd47
# Prepare the place to temporarily store the generated documentation
c7fd47
rm -rf %{boost_docdir} && %{__mkdir_p} %{boost_docdir}/html
c7fd47
DOCPATH=%{boost_docdir}
c7fd47
DOCREGEX='.*\.\(html?\|css\|png\|gif\)'
c7fd47
c7fd47
find libs doc more -type f -regex $DOCREGEX \
c7fd47
    | sed -n '/\//{s,/[^/]*$,,;p}' \
c7fd47
    | sort -u > tmp-doc-directories
c7fd47
c7fd47
sed "s:^:$DOCPATH/:" tmp-doc-directories \
c7fd47
    | xargs -P 0 --no-run-if-empty %{__install} -d
c7fd47
c7fd47
cat tmp-doc-directories | while read tobeinstalleddocdir; do
c7fd47
    find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -regex $DOCREGEX -print0 \
c7fd47
    | xargs -P 0 -0 %{__install} -p -m 644 -t $DOCPATH/$tobeinstalleddocdir
c7fd47
done
c7fd47
rm -f tmp-doc-directories
c7fd47
%{__install} -p -m 644 -t $DOCPATH LICENSE_1_0.txt index.htm index.html boost.png rst.css boost.css
c7fd47
c7fd47
echo ============================= install examples ==================
c7fd47
# Fix a few non-standard issues (DOS and/or non-UTF8 files)
c7fd47
sed -i -e 's/\r//g' libs/geometry/example/ml02_distance_strategy.cpp
c7fd47
for tmp_doc_file in flyweight/example/Jamfile.v2 \
c7fd47
 format/example/sample_new_features.cpp multi_index/example/Jamfile.v2 \
c7fd47
 multi_index/example/hashed.cpp serialization/example/demo_output.txt
c7fd47
do
c7fd47
  mv libs/${tmp_doc_file} libs/${tmp_doc_file}.iso8859
c7fd47
  iconv -f ISO8859-1 -t UTF8 < libs/${tmp_doc_file}.iso8859 > libs/${tmp_doc_file}
c7fd47
  touch -r libs/${tmp_doc_file}.iso8859 libs/${tmp_doc_file}
c7fd47
  rm -f libs/${tmp_doc_file}.iso8859
c7fd47
done
c7fd47
c7fd47
# Prepare the place to temporarily store the examples
c7fd47
rm -rf %{boost_examplesdir} && mkdir -p %{boost_examplesdir}/html
c7fd47
EXAMPLESPATH=%{boost_examplesdir}
c7fd47
find libs -type d -name example -exec find {} -type f \; \
c7fd47
    | sed -n '/\//{s,/[^/]*$,,;p}' \
c7fd47
    | sort -u > tmp-doc-directories
c7fd47
sed "s:^:$EXAMPLESPATH/:" tmp-doc-directories \
c7fd47
    | xargs -P 0 --no-run-if-empty %{__install} -d
c7fd47
rm -f tmp-doc-files-to-be-installed && touch tmp-doc-files-to-be-installed
c7fd47
cat tmp-doc-directories | while read tobeinstalleddocdir
c7fd47
do
c7fd47
  find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -type f \
c7fd47
    >> tmp-doc-files-to-be-installed
c7fd47
done
c7fd47
cat tmp-doc-files-to-be-installed | while read tobeinstalledfiles
c7fd47
do
c7fd47
  if test -s $tobeinstalledfiles
c7fd47
  then
c7fd47
    tobeinstalleddocdir=`dirname $tobeinstalledfiles`
c7fd47
    %{__install} -p -m 644 -t $EXAMPLESPATH/$tobeinstalleddocdir $tobeinstalledfiles
c7fd47
  fi
c7fd47
done
c7fd47
rm -f tmp-doc-files-to-be-installed
c7fd47
rm -f tmp-doc-directories
c7fd47
%{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt
c7fd47
c7fd47
c7fd47
# MPI subpackages don't need the ldconfig magic.  They are hidden by
c7fd47
# default, in MPI back-end-specific directory, and only show to the
c7fd47
# user after the relevant environment module has been loaded.
c7fd47
# rpmlint will report that as errors, but it is fine.
c7fd47
c7fd47
%post atomic -p /sbin/ldconfig
c7fd47
c7fd47
%postun atomic -p /sbin/ldconfig
c7fd47
c7fd47
%post chrono -p /sbin/ldconfig
c7fd47
c7fd47
%postun chrono -p /sbin/ldconfig
c7fd47
c7fd47
%post container -p /sbin/ldconfig
c7fd47
c7fd47
%postun container -p /sbin/ldconfig
c7fd47
c7fd47
%if %{with context}
c7fd47
%post context -p /sbin/ldconfig
c7fd47
c7fd47
%postun context -p /sbin/ldconfig
c7fd47
c7fd47
%post coroutine -p /sbin/ldconfig
c7fd47
c7fd47
%postun coroutine -p /sbin/ldconfig
c7fd47
%endif
c7fd47
c7fd47
%post date-time -p /sbin/ldconfig
c7fd47
c7fd47
%postun date-time -p /sbin/ldconfig
c7fd47
c7fd47
%if %{with context}
c7fd47
%post fiber -p /sbin/ldconfig
c7fd47
c7fd47
%postun fiber -p /sbin/ldconfig
c7fd47
%endif
c7fd47
c7fd47
%post filesystem -p /sbin/ldconfig
c7fd47
c7fd47
%postun filesystem -p /sbin/ldconfig
c7fd47
c7fd47
%post graph -p /sbin/ldconfig
c7fd47
c7fd47
%postun graph -p /sbin/ldconfig
c7fd47
c7fd47
%post iostreams -p /sbin/ldconfig
c7fd47
c7fd47
%postun iostreams -p /sbin/ldconfig
c7fd47
c7fd47
%post locale -p /sbin/ldconfig
c7fd47
c7fd47
%postun locale -p /sbin/ldconfig
c7fd47
c7fd47
%post log -p /sbin/ldconfig
c7fd47
c7fd47
%postun log -p /sbin/ldconfig
c7fd47
c7fd47
%post math -p /sbin/ldconfig
c7fd47
c7fd47
%postun math -p /sbin/ldconfig
c7fd47
c7fd47
%post numpy3 -p /sbin/ldconfig
c7fd47
c7fd47
%postun numpy3 -p /sbin/ldconfig
c7fd47
c7fd47
%post program-options -p /sbin/ldconfig
c7fd47
c7fd47
%postun program-options -p /sbin/ldconfig
c7fd47
c7fd47
%post python3 -p /sbin/ldconfig
c7fd47
c7fd47
%postun python3 -p /sbin/ldconfig
c7fd47
c7fd47
%post random -p /sbin/ldconfig
c7fd47
c7fd47
%postun random -p /sbin/ldconfig
c7fd47
c7fd47
%post regex -p /sbin/ldconfig
c7fd47
c7fd47
%postun regex -p /sbin/ldconfig
c7fd47
c7fd47
%post serialization -p /sbin/ldconfig
c7fd47
c7fd47
%postun serialization -p /sbin/ldconfig
c7fd47
c7fd47
%post signals -p /sbin/ldconfig
c7fd47
c7fd47
%postun signals -p /sbin/ldconfig
c7fd47
c7fd47
%post stacktrace -p /sbin/ldconfig
c7fd47
c7fd47
%postun stacktrace -p /sbin/ldconfig
c7fd47
c7fd47
%post system -p /sbin/ldconfig
c7fd47
c7fd47
%postun system -p /sbin/ldconfig
c7fd47
c7fd47
%post test -p /sbin/ldconfig
c7fd47
c7fd47
%postun test -p /sbin/ldconfig
c7fd47
c7fd47
%post thread -p /sbin/ldconfig
c7fd47
c7fd47
%postun thread -p /sbin/ldconfig
c7fd47
c7fd47
%post timer -p /sbin/ldconfig
c7fd47
c7fd47
%postun timer -p /sbin/ldconfig
c7fd47
c7fd47
%post type_erasure -p /sbin/ldconfig
c7fd47
c7fd47
%postun type_erasure -p /sbin/ldconfig
c7fd47
c7fd47
%post wave -p /sbin/ldconfig
c7fd47
c7fd47
%postun wave -p /sbin/ldconfig
c7fd47
c7fd47
%post doctools
c7fd47
CATALOG=%{_sysconfdir}/xml/catalog
c7fd47
%{_bindir}/xmlcatalog --noout --add "rewriteSystem" \
c7fd47
 "http://www.boost.org/tools/boostbook/dtd" \
c7fd47
 "file://%{_datadir}/boostbook/dtd" $CATALOG
c7fd47
%{_bindir}/xmlcatalog --noout --add "rewriteURI" \
c7fd47
 "http://www.boost.org/tools/boostbook/dtd" \
c7fd47
 "file://%{_datadir}/boostbook/dtd" $CATALOG
c7fd47
%{_bindir}/xmlcatalog --noout --add "rewriteSystem" \
c7fd47
 "http://www.boost.org/tools/boostbook/xsl" \
c7fd47
 "file://%{_datadir}/boostbook/xsl" $CATALOG
c7fd47
%{_bindir}/xmlcatalog --noout --add "rewriteURI" \
c7fd47
 "http://www.boost.org/tools/boostbook/xsl" \
c7fd47
 "file://%{_datadir}/boostbook/xsl" $CATALOG
c7fd47
c7fd47
%postun doctools
c7fd47
# remove entries only on removal of package
c7fd47
if [ "$1" = 0 ]; then
c7fd47
  CATALOG=%{_sysconfdir}/xml/catalog
c7fd47
  %{_bindir}/xmlcatalog --noout --del \
c7fd47
    "file://%{_datadir}/boostbook/dtd" $CATALOG
c7fd47
  %{_bindir}/xmlcatalog --noout --del \
c7fd47
    "file://%{_datadir}/boostbook/xsl" $CATALOG
c7fd47
fi
c7fd47
c7fd47
c7fd47
%files
c7fd47
%license LICENSE_1_0.txt
c7fd47
c7fd47
%files atomic
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_atomic.so.%{sonamever}
c7fd47
c7fd47
%files chrono
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_chrono.so.%{sonamever}
c7fd47
c7fd47
%files container
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_container.so.%{sonamever}
c7fd47
c7fd47
%if %{with context}
c7fd47
c7fd47
%files context
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_context.so.%{sonamever}
c7fd47
c7fd47
%files coroutine
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_coroutine.so.%{sonamever}
c7fd47
c7fd47
%endif
c7fd47
c7fd47
%files date-time
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_date_time.so.%{sonamever}
c7fd47
c7fd47
%if %{with context}
c7fd47
%files fiber
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_fiber.so.%{sonamever}
c7fd47
%endif
c7fd47
c7fd47
%files filesystem
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_filesystem.so.%{sonamever}
c7fd47
c7fd47
%files graph
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_graph.so.%{sonamever}
c7fd47
c7fd47
%files iostreams
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_iostreams.so.%{sonamever}
c7fd47
c7fd47
%files locale
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_locale.so.%{sonamever}
c7fd47
c7fd47
%files log
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_log.so.%{sonamever}
c7fd47
%{_libdir}/libboost_log_setup.so.%{sonamever}
c7fd47
c7fd47
%files math
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_math_c99.so.%{sonamever}
c7fd47
%{_libdir}/libboost_math_c99f.so.%{sonamever}
c7fd47
%{_libdir}/libboost_math_c99l.so.%{sonamever}
c7fd47
%{_libdir}/libboost_math_tr1.so.%{sonamever}
c7fd47
%{_libdir}/libboost_math_tr1f.so.%{sonamever}
c7fd47
%{_libdir}/libboost_math_tr1l.so.%{sonamever}
c7fd47
c7fd47
%files numpy3
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_numpy3.so.%{sonamever}
c7fd47
c7fd47
%files test
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_prg_exec_monitor.so.%{sonamever}
c7fd47
%{_libdir}/libboost_unit_test_framework.so.%{sonamever}
c7fd47
c7fd47
%files program-options
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_program_options.so.%{sonamever}
c7fd47
c7fd47
%files python3
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_python3.so.%{sonamever}
c7fd47
c7fd47
%files python3-devel
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_numpy3.so
c7fd47
%{_libdir}/libboost_python3.so
c7fd47
c7fd47
%files random
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_random.so.%{sonamever}
c7fd47
c7fd47
%files regex
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_regex.so.%{sonamever}
c7fd47
c7fd47
%files serialization
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_serialization.so.%{sonamever}
c7fd47
%{_libdir}/libboost_wserialization.so.%{sonamever}
c7fd47
c7fd47
%files signals
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_signals.so.%{sonamever}
c7fd47
c7fd47
%files stacktrace
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever}
c7fd47
%{_libdir}/libboost_stacktrace_basic.so.%{sonamever}
c7fd47
%{_libdir}/libboost_stacktrace_noop.so.%{sonamever}
c7fd47
c7fd47
%files system
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_system.so.%{sonamever}
c7fd47
c7fd47
%files thread
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_thread.so.%{sonamever}
c7fd47
c7fd47
%files timer
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_timer.so.%{sonamever}
c7fd47
c7fd47
%files type_erasure
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_type_erasure.so.%{sonamever}
c7fd47
c7fd47
%files wave
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/libboost_wave.so.%{sonamever}
c7fd47
c7fd47
%files doc
c7fd47
%doc %{boost_docdir}/*
c7fd47
c7fd47
%files examples
c7fd47
%doc %{boost_examplesdir}/*
c7fd47
c7fd47
%files devel
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_includedir}/%{name}
c7fd47
%{_libdir}/libboost_atomic.so
c7fd47
%{_libdir}/libboost_chrono.so
c7fd47
%{_libdir}/libboost_container.so
c7fd47
%if %{with context}
c7fd47
%{_libdir}/libboost_context.so
c7fd47
%{_libdir}/libboost_coroutine.so
c7fd47
%endif
c7fd47
%{_libdir}/libboost_date_time.so
c7fd47
%if %{with context}
c7fd47
%{_libdir}/libboost_fiber.so
c7fd47
%endif
c7fd47
%{_libdir}/libboost_filesystem.so
c7fd47
%{_libdir}/libboost_graph.so
c7fd47
%{_libdir}/libboost_iostreams.so
c7fd47
%{_libdir}/libboost_locale.so
c7fd47
%{_libdir}/libboost_log.so
c7fd47
%{_libdir}/libboost_log_setup.so
c7fd47
%{_libdir}/libboost_math_tr1.so
c7fd47
%{_libdir}/libboost_math_tr1f.so
c7fd47
%{_libdir}/libboost_math_tr1l.so
c7fd47
%{_libdir}/libboost_math_c99.so
c7fd47
%{_libdir}/libboost_math_c99f.so
c7fd47
%{_libdir}/libboost_math_c99l.so
c7fd47
%{_libdir}/libboost_prg_exec_monitor.so
c7fd47
%{_libdir}/libboost_unit_test_framework.so
c7fd47
%{_libdir}/libboost_program_options.so
c7fd47
%{_libdir}/libboost_random.so
c7fd47
%{_libdir}/libboost_regex.so
c7fd47
%{_libdir}/libboost_serialization.so
c7fd47
%{_libdir}/libboost_wserialization.so
c7fd47
%{_libdir}/libboost_signals.so
c7fd47
%{_libdir}/libboost_stacktrace_addr2line.so
c7fd47
%{_libdir}/libboost_stacktrace_basic.so
c7fd47
%{_libdir}/libboost_stacktrace_noop.so
c7fd47
%{_libdir}/libboost_system.so
c7fd47
%{_libdir}/libboost_thread.so
c7fd47
%{_libdir}/libboost_timer.so
c7fd47
%{_libdir}/libboost_type_erasure.so
c7fd47
%{_libdir}/libboost_wave.so
c7fd47
c7fd47
%files static
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/*.a
c7fd47
%if %{with mpich}
c7fd47
%{_libdir}/mpich/lib/*.a
c7fd47
%endif
c7fd47
%if %{with openmpi}
c7fd47
%{_libdir}/openmpi/lib/*.a
c7fd47
%endif
c7fd47
c7fd47
# OpenMPI packages
c7fd47
%if %{with openmpi}
c7fd47
c7fd47
%files openmpi
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/openmpi/lib/libboost_mpi.so.%{sonamever}
c7fd47
c7fd47
%files openmpi-devel
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/openmpi/lib/libboost_mpi.so
c7fd47
%{_libdir}/openmpi/lib/libboost_graph_parallel.so
c7fd47
c7fd47
%files openmpi-python3
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/openmpi/lib/libboost_mpi_python3.so.%{sonamever}
c7fd47
%{python3_sitearch}/openmpi/boost/
c7fd47
c7fd47
%files openmpi-python3-devel
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/openmpi/lib/libboost_mpi_python3.so
c7fd47
c7fd47
%files graph-openmpi
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/openmpi/lib/libboost_graph_parallel.so.%{sonamever}
c7fd47
c7fd47
%endif
c7fd47
c7fd47
# MPICH packages
c7fd47
%if %{with mpich}
c7fd47
c7fd47
%files mpich
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/mpich/lib/libboost_mpi.so.%{sonamever}
c7fd47
c7fd47
%files mpich-devel
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/mpich/lib/libboost_mpi.so
c7fd47
%{_libdir}/mpich/lib/libboost_graph_parallel.so
c7fd47
c7fd47
%files mpich-python3
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/mpich/lib/libboost_mpi_python3.so.%{sonamever}
c7fd47
%{python3_sitearch}/mpich/boost/
c7fd47
c7fd47
%files mpich-python3-devel
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/mpich/lib/libboost_mpi_python3.so
c7fd47
c7fd47
%files graph-mpich
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_libdir}/mpich/lib/libboost_graph_parallel.so.%{sonamever}
c7fd47
c7fd47
%endif
c7fd47
c7fd47
%files build
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_datadir}/boost-build/
c7fd47
c7fd47
%files doctools
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_bindir}/quickbook
c7fd47
%{_datadir}/boostbook/
c7fd47
c7fd47
%files jam
c7fd47
%license LICENSE_1_0.txt
c7fd47
%{_bindir}/bjam
c7fd47
%{_mandir}/man1/bjam.1*
c7fd47
c7fd47
%changelog
c7fd47
* Wed Jan 20 2021 Stephan Bergmann <sbergman@redhat.com> - 1.66.0-11
c7fd47
- Disable openmpi and mpich for Flatpak-bundled builds (#1895928)
c7fd47
c7fd47
* Tue Aug 04 2020 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-10
c7fd47
- Revert changes for s390x support in Boost.Context
c7fd47
c7fd47
* Fri May 29 2020 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-9
c7fd47
- Actually apply the patches added to the spec in 1.66.0-8
c7fd47
c7fd47
* Fri May 01 2020 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-8
c7fd47
- Add patches from IBM for s390x support in Boost.Context (#1782292)
c7fd47
c7fd47
* Fri Jan 31 2020 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-8
c7fd47
- Add patches to fix covscan defects (#1638070)
c7fd47
c7fd47
* Tue Nov 19 2019 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-7
c7fd47
- Add patch to annotate objects built from assembly code (#1630552)
c7fd47
c7fd47
* Tue Oct 09 2018 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-6
c7fd47
- Add explicit Requires to subpackages that depend on other parts of boost
c7fd47
c7fd47
* Thu Sep 20 2018 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-5
c7fd47
- Add RPM_LD_FLAGS to user-config.jam (#1630552)
c7fd47
c7fd47
* Thu Sep 06 2018 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-4
c7fd47
- Remove libboost_python3.so and libboost_numpy3.so from boost-devel
c7fd47
c7fd47
* Wed Aug 15 2018 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-3
c7fd47
- Remove boost-python3 and boost-numpy3 from boost metapackage (#1616244)
c7fd47
c7fd47
* Wed Jul 18 2018 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-2
c7fd47
- Patch numpy for Python 3 (#1596468)
c7fd47
c7fd47
* Thu May 10 2018 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-1
c7fd47
- Add patch to change shebang to python3
c7fd47
c7fd47
* Fri Apr 27 2018 Jonathan Wakely <jwakely@redhat.com> - 1.66.0-1
c7fd47
- Rebase to Boost 1.66.0