Blame SPECS/boost.spec

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