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