fd1ad15b68
If accepting, don't forward to factory. Some more changes pending. Plus we can see what breaks in the devel project first. - update to version 1.62.0 * new library: fiber: framework for userland-threads/fibers * new library: QVM: library for working with quaternions, vectors and matrices of static size * see http://www.boost.org/users/history/version_1_62_0.html for complete changelog - remove boost-fix_include_config.patch - upstreamed - gcc_path.patch - fix GCC search paths (bnc#996917) Boost assumes /usr/include/c++/x.y.z/ existence for GCC 4.x onward while our version of GCC only has /usr/include/c++/x.y for 4.x GCC and /usr/include/c++/x/ for 5.x onward. - migrate to using %bcond_ instead of hardcoding macros for different Boost features - better way to limit max number of compilation units than by reading /proc/meminfo and guesstimating. OBS-URL: https://build.opensuse.org/request/show/431312 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=175
906 lines
28 KiB
RPMSpec
906 lines
28 KiB
RPMSpec
#
|
|
# spec file for package boost
|
|
#
|
|
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define ver 1.62.0
|
|
%define file_version 1_62_0
|
|
%define docs_version 1.56.0
|
|
%define short_version 1_56
|
|
%define lib_appendix 1_62_0
|
|
%bcond_with build_docs
|
|
%bcond_without package_pdf
|
|
%bcond_without build_quickbook
|
|
%define build_docs 0
|
|
%define boost_l1 libboost_date_time%{lib_appendix} libboost_filesystem%{lib_appendix} libboost_graph%{lib_appendix}
|
|
%define boost_l2 libboost_iostreams%{lib_appendix} libboost_math%{lib_appendix} libboost_test%{lib_appendix}
|
|
%define boost_l3 libboost_program_options%{lib_appendix} libboost_python%{lib_appendix} libboost_python3-%{lib_appendix} libboost_serialization%{lib_appendix}
|
|
%define boost_l4 libboost_signals%{lib_appendix} libboost_system%{lib_appendix} libboost_thread%{lib_appendix}
|
|
%define boost_l5 libboost_wave%{lib_appendix} libboost_regex%{lib_appendix} libboost_regex%{lib_appendix}
|
|
%define boost_l6 libboost_random%{lib_appendix} libboost_chrono%{lib_appendix} libboost_locale%{lib_appendix}
|
|
%define boost_l7 libboost_timer%{lib_appendix} libboost_atomic%{lib_appendix} libboost_log%{lib_appendix} libboost_container%{lib_appendix}
|
|
%define most_libs %{boost_l1} %{boost_l2} %{boost_l3} %{boost_l4} %{boost_l5} %{boost_l6} %{boost_l7}
|
|
%define my_docdir %{_docdir}/boost-%{version}
|
|
# Just hardcode build_mpi to 1 as soon as openmpi builds on all
|
|
# named architectures.
|
|
%ifarch ia64 hppa
|
|
%bcond_with build_mpi
|
|
%else
|
|
%bcond_without build_mpi
|
|
%endif
|
|
# context hasn't been ported to most architectures yet
|
|
%ifarch %ix86 x86_64 %arm aarch64 mips ppc ppc64 ppc64le
|
|
%bcond_without build_context
|
|
%else
|
|
%bcond_with build_context
|
|
%endif
|
|
|
|
# needs newer GCC to compile runtime
|
|
%if %{with build_context} && 0%{?suse_version} > 1320
|
|
%bcond_without boost_fiber
|
|
%else
|
|
%bcond_with boost_fiber
|
|
%endif
|
|
|
|
%ifarch hppa
|
|
%bcond_with long_double
|
|
%else
|
|
%bcond_without long_double
|
|
%endif
|
|
%if %{with build_context}
|
|
%define context_libs libboost_context%{lib_appendix} libboost_coroutine%{lib_appendix}
|
|
%endif
|
|
%if %{with build_mpi}
|
|
%define mpi_libs libboost_graph_parallel%lib_appendix libboost_mpi%{lib_appendix}
|
|
%endif
|
|
%if %{with boost_fiber}
|
|
BuildRequires: gcc-c++ > 5
|
|
%define fiber_libs libboost_fiber%{lib_appendix}
|
|
%endif
|
|
|
|
%define all_libs %{most_libs} %{?context_libs} %{?mpi_libs} %{?fiber_libs}
|
|
|
|
Name: boost
|
|
%define package_name boost_1_62
|
|
Version: 1.62.0
|
|
Release: 0
|
|
Summary: Boost C++ Libraries
|
|
License: BSL-1.0
|
|
Group: Development/Libraries/C and C++
|
|
Url: http://www.boost.org
|
|
Source0: http://downloads.sourceforge.net/project/boost/boost/%{version}/boost_%{file_version}.tar.bz2
|
|
Source1: boost-rpmlintrc
|
|
Source3: http://downloads.sourceforge.net/project/boost/boost-docs/%{docs_version}/boost_%{short_version}_pdf.tar.bz2
|
|
Source4: existing_extra_docs
|
|
#Source5: NEWS
|
|
Source100: baselibs.conf
|
|
Patch1: boost-thread.patch
|
|
Patch2: boost-no_type_punning.patch
|
|
Patch3: boost-no_segfault_in_Regex_filter.patch
|
|
Patch4: boost-pool_check_overflow.patch
|
|
Patch5: boost-strict_aliasing.patch
|
|
Patch6: boost-use_std_xml_catalog.patch
|
|
Patch7: boost-rpmoptflags-only.patch
|
|
Patch9: boost-aarch64-flags.patch
|
|
Patch10: boost-disable-pch-on-aarch64.patch
|
|
Patch13: boost-visibility.patch
|
|
Patch14: boost-1.57.0-python-libpython_dep.patch
|
|
Patch15: boost-1.57.0-python-abi_letters.patch
|
|
Patch16: boost-1.55.0-python-test-PyImport_AppendInittab.patch
|
|
Patch100: gcc_path.patch
|
|
BuildRequires: chrpath
|
|
BuildRequires: dos2unix
|
|
BuildRequires: fdupes
|
|
BuildRequires: gcc-c++
|
|
%if 0%{?suse_version} <= 1320
|
|
# boost requires quadmath.h
|
|
BuildRequires: gcc-fortran
|
|
%endif
|
|
BuildRequires: libbz2-devel
|
|
BuildRequires: libexpat-devel
|
|
BuildRequires: libicu-devel >= 4.4
|
|
BuildRequires: python-devel
|
|
BuildRequires: python3-devel
|
|
#!BuildIgnore: python
|
|
BuildRequires: zlib-devel
|
|
Recommends: %{all_libs}
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
%if %{with build_mpi}
|
|
BuildRequires: openmpi-devel
|
|
%endif
|
|
%if %{with build_docs}
|
|
BuildRequires: docbook
|
|
BuildRequires: docbook-xsl-stylesheets
|
|
BuildRequires: doxygen
|
|
BuildRequires: libxslt-tools
|
|
BuildRequires: texlive-latex
|
|
%endif
|
|
|
|
%description
|
|
Boost provides free peer-reviewed portable C++ source libraries. The
|
|
emphasis is on libraries that work well with the C++ Standard Library.
|
|
One goal is to establish "existing practice" and provide reference
|
|
implementations so that the Boost libraries are suitable for eventual
|
|
standardization. Some of the libraries have already been proposed for
|
|
inclusion in the C++ Standards Committee's upcoming C++ Standard
|
|
Library Technical Report.
|
|
|
|
Although Boost was begun by members of the C++ Standards Committee
|
|
Library Working Group, membership has expanded to include nearly two
|
|
thousand members of the C++ community at large.
|
|
|
|
This package is mainly needed for updating from a prior version, the
|
|
dynamic libraries are found in their respective package. For development
|
|
using Boost, you also need the boost-devel package. For documentation,
|
|
see the boost-doc package.
|
|
|
|
%package -n %{package_name}-devel
|
|
Summary: Development package for Boost C++
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{all_libs}
|
|
Requires: libstdc++-devel
|
|
Provides: boost-devel = %version
|
|
Conflicts: otherproviders(boost-devel)
|
|
|
|
%description -n %{package_name}-devel
|
|
This package contains all that is needed to develop/compile
|
|
applications that use the Boost C++ libraries. For documentation see
|
|
the documentation packages (html, man or pdf).
|
|
|
|
%package -n boost-license%{lib_appendix}
|
|
Summary: Boost License
|
|
Group: Development/Libraries/C and C++
|
|
Provides: boost-license = %{version}-%{release}
|
|
%if 0%{?suse_version} >= 1120
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description -n boost-license%{lib_appendix}
|
|
This package contains the license boost is provided under.
|
|
|
|
%package -n %{package_name}-doc-html
|
|
Summary: HTML documentation for the Boost C++ Libraries
|
|
Group: Development/Libraries/C and C++
|
|
%if 0%{?suse_version} >= 1120
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description -n %{package_name}-doc-html
|
|
This package contains the documentation of the boost dynamic libraries
|
|
in HTML format.
|
|
|
|
# %%package doc-man
|
|
# Summary: Man documentation for the Boost C++ Libraries
|
|
# Group: Development/Libraries/C and C++
|
|
# %%if 0%%{?suse_version} >= 1120
|
|
# BuildArch: noarch
|
|
# %%endif
|
|
#
|
|
# %%description doc-man
|
|
# This package contains the documentation of the boost dynamic libraries
|
|
# as man pages.
|
|
|
|
%if %{with package_pdf}
|
|
%package -n %{package_name}-doc-pdf
|
|
Summary: PDF documentation for the Boost C++ Libraries
|
|
Group: Development/Libraries/C and C++
|
|
%if 0%{?suse_version} >= 1120
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description -n %{package_name}-doc-pdf
|
|
This package contains the documentation of the boost dynamic libraries
|
|
in PDF format.
|
|
%endif
|
|
|
|
%package -n libboost_atomic%{lib_appendix}
|
|
Summary: Run-Time component of boost atomic library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_atomic%{lib_appendix}
|
|
Run-Time support for Boost.Atomic, a library that provides atomic data types
|
|
and operations on these data types, as well as memory ordering constraints
|
|
required for coordinating multiple threads through atomic variables.
|
|
|
|
%package -n libboost_container%{lib_appendix}
|
|
Summary: Boost::Container Runtime libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_container%{lib_appendix}
|
|
This package contains the Boost Container runtime libraries.
|
|
|
|
%package -n libboost_context%{lib_appendix}
|
|
Summary: Run-Time component of boost context switching library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_context%{lib_appendix}
|
|
Run-Time support for Boost.Context, a foundational library that
|
|
provides a sort of cooperative multitasking on a single thread.
|
|
|
|
%package -n libboost_coroutine%{lib_appendix}
|
|
Summary: Boost::Coroutine Runtime libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_coroutine%{lib_appendix}
|
|
This package contains the Boost Coroutine runtime libraries.
|
|
|
|
%package -n libboost_date_time%{lib_appendix}
|
|
Summary: Boost::Date.Time Runtime libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_date_time%{lib_appendix}
|
|
This package contains the Boost Date.Time runtime libraries.
|
|
|
|
%package -n libboost_fiber%{lib_appendix}
|
|
Summary: Boost::Filesystem Runtime Libraries
|
|
Group: System/Localization
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_fiber%{lib_appendix}
|
|
This package contains Boost::Fiber runtime library.
|
|
|
|
%package -n libboost_filesystem%{lib_appendix}
|
|
Summary: Boost::Filesystem Runtime Libraries
|
|
Group: System/Localization
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_filesystem%{lib_appendix}
|
|
This package contains the Boost::Filesystem libraries.
|
|
|
|
%package -n libboost_graph%{lib_appendix}
|
|
Summary: Boost::Graph Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_graph%{lib_appendix}
|
|
This package contains the Boost::Graph Runtime libraries.
|
|
|
|
%package -n libboost_graph_parallel%{lib_appendix}
|
|
Summary: Boost graph::distributed runtime libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_graph_parallel%{lib_appendix}
|
|
This package contains the boost::graph::distributed runtime libraries.
|
|
|
|
%package -n libboost_iostreams%{lib_appendix}
|
|
Summary: Boost::IOStreams Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_iostreams%{lib_appendix}
|
|
This package contains the Boost::IOStreams Runtime libraries.
|
|
|
|
%package -n libboost_log%{lib_appendix}
|
|
Summary: Run-Time component of boost logging library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_log%{lib_appendix}
|
|
Boost.Log library aims to make logging significantly easier for the
|
|
application developer. It provides a wide range of out-of-the-box
|
|
tools along with public interfaces for extending the library.
|
|
|
|
%package -n libboost_math%{lib_appendix}
|
|
Summary: Boost::Math Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_math%{lib_appendix}
|
|
This package contains the Boost::Math Runtime libraries.
|
|
|
|
%if %{with build_mpi}
|
|
%package -n libboost_mpi%{lib_appendix}
|
|
Summary: Boost::MPI Runtime libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_mpi%{lib_appendix}
|
|
This package contains the Boost::MPI Runtime libraries.
|
|
%endif
|
|
|
|
%package -n libboost_test%{lib_appendix}
|
|
Summary: Boost::Test Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_test%{lib_appendix}
|
|
This package contains the Boost::Test runtime libraries.
|
|
|
|
%package -n libboost_program_options%{lib_appendix}
|
|
Summary: Boost::ProgramOptions Runtime libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_program_options%{lib_appendix}
|
|
This package contains the Boost::ProgramOptions Runtime libraries.
|
|
|
|
%package -n libboost_python%{lib_appendix}
|
|
Summary: Boost::Python Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_python%{lib_appendix}
|
|
This package contains the Boost::Python Runtime libraries.
|
|
|
|
%package -n libboost_python3-%{lib_appendix}
|
|
Summary: Boost::Python Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_python3-%{lib_appendix}
|
|
This package contains the Boost::Python3 Runtime libraries.
|
|
|
|
%package -n libboost_serialization%{lib_appendix}
|
|
Summary: Boost::Serialization Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_serialization%{lib_appendix}
|
|
This package contains the Boost::Serialization Runtime libraries.
|
|
|
|
%package -n libboost_signals%{lib_appendix}
|
|
Summary: Boost::Signals Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_signals%{lib_appendix}
|
|
This package contains the Boost::Signals Runtime libraries.
|
|
|
|
%package -n libboost_system%{lib_appendix}
|
|
Summary: Boost::System Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_system%{lib_appendix}
|
|
This package contains the Boost::System runtime libraries.
|
|
|
|
%package -n libboost_thread%{lib_appendix}
|
|
Summary: Boost::Thread Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_thread%{lib_appendix}
|
|
This package contains the Boost::Thread runtime libraries.
|
|
|
|
%package -n libboost_wave%{lib_appendix}
|
|
Summary: Boost::Wave Runtime Libraries
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_wave%{lib_appendix}
|
|
This package contains the Boost::Wave runtime libraries.
|
|
|
|
%package -n libboost_regex%{lib_appendix}
|
|
Summary: The Boost::Regex runtime library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_regex%{lib_appendix}
|
|
This package contains the Boost::Regex runtime library.
|
|
|
|
%package -n libboost_random%{lib_appendix}
|
|
Summary: The Boost::Random runtime library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_random%{lib_appendix}
|
|
This package contains the Boost::Random runtime library.
|
|
|
|
%package -n libboost_chrono%{lib_appendix}
|
|
Summary: The Boost::Chrono runtime library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_chrono%{lib_appendix}
|
|
This package contains the Boost::Chrono runtime library.
|
|
|
|
%package -n libboost_locale%{lib_appendix}
|
|
Summary: The Boost::Locale runtime library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_locale%{lib_appendix}
|
|
This package contains the Boost::Locale runtime library.
|
|
|
|
%package -n libboost_timer%{lib_appendix}
|
|
Summary: The Boost::Timer runtime library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_timer%{lib_appendix}
|
|
This package contains the Boost::Timer runtime library.
|
|
|
|
%package -n libboost_type_erasure%{lib_appendix}
|
|
Summary: The Boost::TypeErasure runtime library
|
|
Group: System/Libraries
|
|
Requires: boost-license%{lib_appendix}
|
|
|
|
%description -n libboost_type_erasure%{lib_appendix}
|
|
This package contains the Boost::TypeErasure runtime library.
|
|
|
|
%if %{with build_quickbook}
|
|
%package -n %{package_name}-quickbook
|
|
Summary: Documentation tool geared towards C++
|
|
Group: Development/Tools/Doc Generators
|
|
Requires: boost-license%{lib_appendix}
|
|
Provides: quickbook = %version
|
|
Conflicts: otherproviders(quickbook)
|
|
|
|
%description -n %{package_name}-quickbook
|
|
QuickBook is a WikiWiki style documentation tool geared towards C++
|
|
documentation using simple rules and markup for simple formatting
|
|
tasks.
|
|
%endif
|
|
|
|
%prep
|
|
%setup -q -n boost_%{lib_appendix} -b 3
|
|
#everything in the tarball has the executable flag set ...
|
|
find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} +
|
|
%patch1 -p1
|
|
%patch2
|
|
%patch3
|
|
%patch4
|
|
%patch5
|
|
%patch6 -p1
|
|
%patch7
|
|
%patch9 -p1
|
|
%patch10 -p1
|
|
%patch13
|
|
%patch14 -p1
|
|
%patch15 -p1
|
|
%patch16 -p1
|
|
%patch100 -p1
|
|
|
|
#stupid build machinery copies .orig files
|
|
find . -name \*.orig -exec rm {} +
|
|
|
|
%build
|
|
find . -type f -exec chmod u+w {} +
|
|
|
|
# Create shared build instructions
|
|
cat << \EOF >.build
|
|
%if ! %{with long_double}
|
|
export LONG_DOUBLE_FLAGS="--disable-long-double"
|
|
%endif
|
|
BJAM_CONFIG="-d2 -sICU_PATH=%{_prefix}"
|
|
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
|
|
PYTHON3_VERSION=$(python3 -c 'import sys; print (sys.version[:3])')
|
|
PYTHON3_ABIFLAGS=m
|
|
export REGEX_FLAGS="--with-icu"
|
|
export EXPAT_INCLUDE=%{_includedir} EXPAT_LIBPATH=%{_libdir}
|
|
LIBRARIES_FLAGS=--with-libraries=all
|
|
|
|
%if ! %{with build_context}
|
|
# coroutine/coroutine2 depend on context
|
|
LIBRARIES_FLAGS+=" --without-libraries=context,coroutine,coroutine2"
|
|
%endif
|
|
|
|
%if ! %{with boost_fiber}
|
|
LIBRARIES_FLAGS+=" --without-libraries=fiber"
|
|
%endif
|
|
EOF
|
|
|
|
# Read shared build instructions
|
|
. ./.build
|
|
|
|
# Set PATH, MANPATH and LD_LIBRARY_PATH for mpi
|
|
. %{_localstatedir}/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
|
|
|
|
# use supplied bootstrap.sh instead of mucking with old bjam
|
|
# see also: https://svn.boost.org/trac/boost/ticket/9304
|
|
./bootstrap.sh $LIBRARIES_FLAGS \
|
|
--prefix=%{_prefix} --exec-prefix=%{_bindir} \
|
|
--libdir=%{_libdir} --includedir=%{_includedir} \
|
|
--with-toolset=gcc
|
|
|
|
# add specific wishes in user-config.jam
|
|
cat << EOF >user-config.jam
|
|
import os ;
|
|
local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ;
|
|
|
|
using gcc : : : <compileflags>\$(RPM_OPT_FLAGS) ;
|
|
|
|
using python
|
|
: $PYTHON_VERSION
|
|
: /usr/bin/python2
|
|
: /usr/include/python$PYTHON_VERSION
|
|
:
|
|
:
|
|
:
|
|
:
|
|
;
|
|
|
|
using python
|
|
: $PYTHON3_VERSION
|
|
: /usr/bin/python$PYTHON3_VERSION
|
|
: /usr/include/python$PYTHON3_VERSION$PYTHON3_ABIFLAGS
|
|
: /usr/lib/python$PYTHON3_VERSION
|
|
:
|
|
:
|
|
:
|
|
$PYTHON3_ABIFLAGS
|
|
;
|
|
|
|
EOF
|
|
|
|
%if %{with build_docs}
|
|
cat << EOF >>user-config.jam
|
|
using xsltproc ;
|
|
|
|
using boostbook
|
|
: %{_datadir}/xml/docbook/stylesheet/nwalsh/current
|
|
: %{_datadir}/xml/docbook/schema/dtd/4.2
|
|
;
|
|
|
|
using doxygen ;
|
|
EOF
|
|
%endif
|
|
|
|
%if %{with build_mpi}
|
|
cat << EOF >>user-config.jam
|
|
using mpi ;
|
|
EOF
|
|
%endif
|
|
|
|
# perform the compilation
|
|
./b2 -d+2 -q --prefix=%{_prefix} --libdir=%{_libdir} --user-config=./user-config.jam %{?_smp_mflags}
|
|
|
|
%if %{with build_quickbook}
|
|
pushd tools/quickbook
|
|
../../b2 --user-config=../../user-config.jam --v2 dist-bin
|
|
popd
|
|
%endif
|
|
|
|
%if %{with build_docs}
|
|
cd doc
|
|
../b2 --user-config=../user-config.jam --v2 man
|
|
%endif
|
|
|
|
%install
|
|
|
|
# Read shared build instructions
|
|
. ./.build
|
|
|
|
# Set PATH, MANPATH and LD_LIBRARY_PATH for mpi
|
|
. %{_localstatedir}/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
|
|
|
|
./b2 install \
|
|
--prefix=%{buildroot}%{_prefix} --exec-prefix=%{buildroot}%{_bindir} \
|
|
--libdir=%{buildroot}%{_libdir} --includedir=%{buildroot}%{_includedir} \
|
|
--user-config=./user-config.jam
|
|
|
|
# do not install the python module - as long as noone needs it, it requires more fixes
|
|
# see https://bugzilla.redhat.com/show_bug.cgi?id=801534 for details
|
|
rm -f %{buildroot}%{_libdir}/mpi.so
|
|
|
|
mkdir -p %{buildroot}%{my_docdir}
|
|
|
|
pushd %{buildroot}%{_libdir}
|
|
blibs=$(find . -name \*.so.%{version})
|
|
echo $blibs | xargs chrpath -d
|
|
|
|
for lib in ${blibs}; do
|
|
BASE=$(basename ${lib} .so.%{version})
|
|
SONAME_MT="$BASE-mt.so"
|
|
ln -sf ${lib} $SONAME_MT
|
|
done
|
|
popd
|
|
|
|
# install the man pages
|
|
# rm -rf doc/man/man3/boost::units::operator
|
|
# mv doc/man/man3/path.3 doc/man/man3/boost::property_tree::path.3
|
|
# mv doc/man/man3/string.3 doc/man/man3/boost::container::string.3
|
|
#
|
|
# for sec in 3 7 9; do
|
|
# install -d %%buildroot/%%{_mandir}/man${sec}
|
|
# done
|
|
# pushd doc/man
|
|
# rm -f *.manifest
|
|
# tar -cf - .| tar -C %%{buildroot}/%%{_mandir} -xvf -
|
|
# popd
|
|
|
|
#install doc files
|
|
dos2unix libs/ptr_container/doc/tutorial_example.html \
|
|
libs/parameter/doc/html/reference.html \
|
|
libs/parameter/doc/html/index.html \
|
|
libs/iostreams/doc/tree/tree.js \
|
|
libs/graph/doc/lengauer_tarjan_dominator.htm
|
|
|
|
find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | \
|
|
tar --files-from=%{SOURCE4} -cf - --files-from=- | tar -C %{buildroot}%{my_docdir} -xf -
|
|
rm -rf %{buildroot}%{my_docdir}/boost
|
|
ln -s %{_includedir}/boost %{buildroot}%{my_docdir}
|
|
ln -s ../LICENSE_1_0.txt %{buildroot}%{my_docdir}/libs
|
|
find %{buildroot}%{my_docdir} -name \*.py -exec chmod -x {} +
|
|
chmod -x ../boost_%{short_version}_pdf/*.pdf
|
|
rm -f %{buildroot}%{_libdir}/*.a
|
|
#symlink dupes
|
|
%fdupes %{buildroot}
|
|
|
|
%if %{with build_quickbook}
|
|
mkdir -p %{buildroot}%{_bindir}
|
|
install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook
|
|
%endif
|
|
|
|
%post -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_container%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_context%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_coroutine%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_fiber%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_log%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_test%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_python%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_python3-%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_regex%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_signals%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_thread%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_math%{lib_appendix} -p /sbin/ldconfig
|
|
%if %{with build_mpi}
|
|
%post -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig
|
|
%endif
|
|
|
|
%post -n libboost_graph%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_system%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_wave%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_random%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_chrono%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_locale%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_timer%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%post -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_container%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_context%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_coroutine%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_fiber%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_log%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_test%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_python%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_python3-%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_regex%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_signals%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_thread%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_math%{lib_appendix} -p /sbin/ldconfig
|
|
%if %{with build_mpi}
|
|
%postun -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig
|
|
%endif
|
|
|
|
%postun -n libboost_graph%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_system%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_wave%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_random%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_chrono%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_locale%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_timer%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%postun -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig
|
|
|
|
%files -n boost-license%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%dir %{my_docdir}
|
|
%doc %{my_docdir}/LICENSE_1_0.txt
|
|
|
|
%files -n libboost_atomic%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_atomic*.so.*
|
|
|
|
%files -n libboost_container%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_container*.so.*
|
|
|
|
%if %{with build_context}
|
|
%files -n libboost_context%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_context*.so.*
|
|
|
|
%files -n libboost_coroutine%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_coroutine*.so.*
|
|
%endif
|
|
|
|
%files -n libboost_date_time%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_date_time*.so.*
|
|
|
|
%if %{with boost_fiber}
|
|
%files -n libboost_fiber%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_fiber*.so.*
|
|
%endif
|
|
|
|
%files -n libboost_filesystem%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_filesystem*.so.*
|
|
|
|
%files -n libboost_graph%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_graph.so.*
|
|
|
|
%files -n libboost_graph_parallel%{lib_appendix}
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libboost_graph_parallel.so.*
|
|
|
|
%files -n libboost_iostreams%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_iostreams*.so.*
|
|
|
|
%files -n libboost_log%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_log*.so.*
|
|
|
|
%files -n libboost_math%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_math_*.so.*
|
|
|
|
%if %{with build_mpi}
|
|
%files -n libboost_mpi%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_mpi*.so.*
|
|
%endif
|
|
|
|
%files -n libboost_test%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_prg_exec_monitor*.so.*
|
|
%{_libdir}/libboost_unit_test_framework*.so.*
|
|
|
|
%files -n libboost_program_options%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_program_options*.so.*
|
|
|
|
%files -n libboost_python%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_python.so.*
|
|
|
|
%files -n libboost_python3-%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_python3.so.*
|
|
|
|
%files -n libboost_serialization%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_*serialization*.so.*
|
|
|
|
%files -n libboost_signals%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_signals*.so.*
|
|
|
|
%files -n libboost_system%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_system*.so.*
|
|
|
|
%files -n libboost_thread%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_thread*.so.*
|
|
|
|
%files -n libboost_wave%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_wave*.so.*
|
|
|
|
%files -n libboost_regex%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_regex*.so.*
|
|
|
|
%files -n libboost_random%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_random*.so.*
|
|
|
|
%files -n libboost_chrono%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_chrono*.so.*
|
|
|
|
%files -n libboost_locale%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_locale*.so.*
|
|
|
|
%files -n libboost_timer%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_timer*.so.*
|
|
|
|
%files -n libboost_type_erasure%{lib_appendix}
|
|
%defattr(-, root, root, -)
|
|
%{_libdir}/libboost_type_erasure*.so.*
|
|
|
|
%files -n %{package_name}-devel
|
|
%defattr(-, root, root, -)
|
|
%{_includedir}/boost
|
|
%{_libdir}/*.so
|
|
#%%{_datadir}/aclocal/*.m4
|
|
|
|
%files -n %{package_name}-doc-html
|
|
%defattr(-, root, root, -)
|
|
%doc %{my_docdir}/*
|
|
%exclude %{my_docdir}/LICENSE_1_0.txt
|
|
|
|
# %%files doc-man
|
|
# %%defattr(644, root, root, -)
|
|
# %%doc %%{_mandir}/man3/*.3.gz
|
|
# %%doc %%{_mandir}/man7/*.7.gz
|
|
# %%doc %%{_mandir}/man9/*.9.gz
|
|
|
|
%if %{with package_pdf}
|
|
%files -n %{package_name}-doc-pdf
|
|
%defattr(-, root, root, -)
|
|
%doc ../boost_%{short_version}_pdf/*.pdf
|
|
%endif
|
|
|
|
%files -n %{package_name}-quickbook
|
|
%defattr(-, root, root, -)
|
|
%{_bindir}/quickbook
|
|
|
|
%changelog
|