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