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