123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173 |
- # Support for documentation installation As the %%doc macro erases the
- # target directory ($RPM_BUILD_ROOT%%{_docdir}/%%{name}), manually
- # installed documentation must be saved into a temporary dedicated
- # directory.
- # XXX note that as of rpm 4.9.1, this shouldn't be necessary anymore.
- # We should be able to install directly.
- %global boost_docdir __tmp_docdir
- %global boost_examplesdir __tmp_examplesdir
- %bcond_without context
- %bcond_without python3
- %bcond_with mpich
- %bcond_with openmpi
- %define major 1
- %define minor 60
- %define teeny 0
- %define tarname boost
- %define lnkver %{major}_%{minor}
- %define pkgver %{major}_%{minor}_%{teeny}
- %ifnarch %{ix86} x86_64
- # Avoid using Boost.Context on non-x86 arches. s390 is not
- # supported at all and there were _syntax errors_ in PPC code. This
- # should be enabled on a case-by-case basis as the arches are tested
- # and fixed.
- %bcond_with context
- %else
- %bcond_without context
- %endif
- Summary: Portable C++ source libraries
- Summary(ja): ポータブルな C++ ソースライブラリ
- Name: libboost
- Version: %{major}.%{minor}.%{teeny}
- Release: 2%{?_dist_release}
- Source0: http://downloads.sourceforge.net/%{tarname}/%{tarname}_%{pkgver}.tar.bz2
- Source1: ver.py
- Source2: libboost_thread.so
- License: distributable
- Group: System Environment/Libraries
- URL: http://www.boost.org/
- BuildRequires: python-devel apache2-devel bzip2-devel zlib-devel libicu-devel
- BuildRequires: libaio-devel lam
- BuildRequires: libquadmath-devel
- %if %{with python3}
- BuildRequires: python3-devel
- %endif
- BuildRoot: %{_tmppath}/%{name}-%{version}-root
- # https://svn.boost.org/trac/boost/ticket/6150
- Patch4: boost-1.50.0-fix-non-utf8-files.patch
- # Add a manual page for bjam, based on the on-line documentation:
- # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
- Patch5: boost-1.48.0-add-bjam-man-page.patch
- # https://bugzilla.redhat.com/show_bug.cgi?id=828856
- # https://bugzilla.redhat.com/show_bug.cgi?id=828857
- # https://svn.boost.org/trac/boost/ticket/6701
- Patch15: boost-1.58.0-pool.patch
- # https://svn.boost.org/trac/boost/ticket/5637
- Patch25: boost-1.57.0-mpl-print.patch
- # https://svn.boost.org/trac/boost/ticket/8870
- Patch36: boost-1.57.0-spirit-unused_typedef.patch
- # https://svn.boost.org/trac/boost/ticket/9038
- Patch51: boost-1.58.0-pool-test_linking.patch
- # https://bugzilla.redhat.com/show_bug.cgi?id=1102667
- Patch61: boost-1.57.0-python-libpython_dep.patch
- Patch62: boost-1.57.0-python-abi_letters.patch
- Patch63: boost-1.55.0-python-test-PyImport_AppendInittab.patch
- # https://bugzilla.redhat.com/show_bug.cgi?id=1190039
- Patch65: boost-1.57.0-build-optflags.patch
- # Prevent gcc.jam from setting -m32 or -m64.
- Patch68: boost-1.58.0-address-model.patch
- # https://bugzilla.redhat.com/show_bug.cgi?id=1262444
- Patch81: boost-1.59-test-fenv.patch
- Vendor: Project Vine
- Distribution: Vine Linux
- Obsoletes: %{name}-date-time-devel %{name}-filesystem-devel %{name}-graph-devel
- Obsoletes: %{name}-iostreams-devel %{name}-program-options-devel
- Obsoletes: %{name}-python-devel %{name}-regex-devel
- Obsoletes: %{name}-serialization-devel %{name}-signals-devel %{name}-test-devel
- Obsoletes: %{name}-thread-devel %{name}-wave-devel
- %description
- Boost provides free peer-reviewed portable C++ source libraries. The emphasis
- is on libraries which work well with the C++ Standard Library. The libraries
- are intended to be widely useful, and are in regular use by thousands of
- programmers across a broad spectrum of applications.
- A further goal is to establish "existing practice" and provide reference
- implementations so that Boost libraries are suitable for eventual
- standardization. Ten Boost libraries will be included in the C++ Standards
- Committee's upcoming C++ Standard Library Technical Report as a step toward
- becoming part of a future C++ Standard.
- %description -l ja
- Boost は公開レビューされたフリーのC++ライブラリ群です。 C++ の標準ライブラリに
- 準拠することに重点を置いて開発されています。使いやすく、広い分野のアプリ
- ケーションにおいて日常的に多くの開発者に用いられることを目指しています。
- さらなる目標は、最終的な標準化に適合した「存在する実例」としてリファレンス実装
- を提供することです。10 の Boost ライブラリが、将来の C++ 標準になるための一歩
- として、C++ 標準化委員会が策定中の C++ 標準ライブラリテクニカルレポートに
- 含まれる予定です。
- %package atomic
- Summary: Run-Time component of boost atomic library
- Group: System Environment/Libraries
- %description atomic
- 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 chrono
- Summary: Run-Time component of boost chrono library
- Group: System Environment/Libraries
- Requires: %{name}-system = %{version}-%{release}
- %description chrono
- Run-Time support for Boost.Chrono, a set of useful time utilities.
- %package container
- Summary: Run-Time component of boost container library
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description container
- Boost.Container library implements several well-known containers,
- including STL containers. The aim of the library is to offers advanced
- features not present in standard containers or to offer the latest
- standard draft features for compilers that comply with C++03.
- %if %{with context}
- %package context
- Summary: Run-Time component of boost context switching library
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description context
- Run-Time support for Boost.Context, a foundational library that
- provides a sort of cooperative multitasking on a single thread.
- %package coroutine
- Summary: Run-Time component of boost coroutine library
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description coroutine
- Run-Time support for Boost.Coroutine, a library that provides
- generalized subroutines which allow multiple entry points for
- suspending and resuming execution.
- %endif
- %package date-time
- Summary: Set of data-time libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description date-time
- Set of data-time libralies in %{name}
- %package devel
- Summary: Header files and libraries for developing apps which will use %{name}
- Summary(ja): %{name}の開発に必要なヘッダファイル及びライブラリ
- Group: Development/Libraries
- Requires: %{name} = %{version}-%{release}
- Requires: libicu-devel
- Requires: libquadmath-devel
- %package filesystem
- Summary: Set of filesystem operation libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description filesystem
- Set of filesystem operation libralies in %{name}
- %package graph
- Summary: Set of Graphviz libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description graph
- Set of Graphviz libralies in %{name}
- %package iostreams
- Summary: Set of streams and i/o filters libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description iostreams
- Set of streams and i/o filters libralies in %{name}
- %package locale
- Summary: Run-Time component of boost locale library
- Group: System Environment/Libraries
- Requires: %{name}-chrono = %{version}-%{release}
- Requires: %{name}-system = %{version}-%{release}
- Requires: %{name}-thread = %{version}-%{release}
- %description locale
- Run-Time support for Boost.Locale, a set of localization and Unicode
- handling tools.
- %package log
- Summary: Run-Time component of boost logging library
- Group: System Environment/Libraries
- %description log
- 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 math
- Summary: Set of math libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description math
- Set of math libralies in %{name}
- %package program-options
- Summary: Set of program options libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description program-options
- Set of program options libralies in %{name}
- %package python
- Summary: Set of Python libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description python
- Set of Python libralies in %{name}
- %if %{with python3}
- %package python3
- Summary: Run-Time component of boost python library for Python 3
- Group: System Environment/Libraries
- %description python3
- The Boost Python Library is a framework for interfacing Python and
- C++. It allows you to quickly and seamlessly expose C++ classes,
- functions and objects to Python, and vice versa, using no special
- tools -- just your C++ compiler. This package contains run-time
- support for Boost Python Library compiled for Python 3.
- %package python3-devel
- Summary: Shared object symbolic links for Boost.Python 3
- Group: System Environment/Libraries
- Requires: %{name}-python3 = %{version}-%{release}
- Requires: %{name}-devel = %{version}-%{release}
- %description python3-devel
- Shared object symbolic links for Python 3 variant of Boost.Python.
- %endif
- %package random
- Summary: Set of random number generation libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description random
- Set of random number generation libralies in %{name}
- %package regex
- Summary: Set of regular expression libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description regex
- Set of regular expression libralies in %{name}
- %package serialization
- Summary: Set of serialization libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description serialization
- Set of serialization libralies in %{name}
- %package signals
- Summary: Set of signals and slots libralies in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description signals
- Set of signals and slots libralies in %{name}
- %package system
- Summary: Operating system support
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description system
- Operating system support, including the diagnostics support
- that will be part of the C++0x standard library
- %package test
- Summary: Set of libraries for writing and executing tests in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description test
- Set of libraries for writing and executing tests in %{name}
- %package thread
- Summary: Set of multi-thread libraries in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description thread
- Set of multi-thread libraries in %{name}
- %package timer
- Summary: Run-Time component of boost timer library
- Group: System Environment/Libraries
- Requires: %{name}-chrono = %{version}-%{release}
- Requires: %{name}-system = %{version}-%{release}
- %description timer
- "How long does my C++ code take to run?"
- The Boost Timer library answers that question and does so portably,
- with as little as one #include and one additional line of code.
- %package type_erasure
- Summary: Run-Time component of boost type erasure library
- Group: System Environment/Libraries
- Requires: %{name}-chrono = %{version}-%{release}
- Requires: %{name}-system = %{version}-%{release}
- %description type_erasure
- The Boost.TypeErasure library provides runtime polymorphism in C++
- that is more flexible than that provided by the core language.
- %package wave
- Summary: Set of wave libraries in %{name}
- Group: System Environment/Libraries
- Requires: %{name} = %{version}-%{release}
- %description wave
- Set of wave libraries in %{name}
- %description devel
- The %{name}-devel package contains the header files and libraries needed
- to develop programs that use the Boost library.
- %description devel -l ja
- %{name}-devel パッケージは Boost ライブラリを使うプログラムの開発に必要な
- ヘッダファイルやライブラリを含んでいます。
- %package doc
- Summary: Documents of %{name}
- Summary(ja): %{name}のドキュメント
- Group: Applications/Documentation
- Requires: %{name} = %{version}-%{release}
- %description doc
- The %{name}-doc package contains the documents about the boost library.
- %description doc -l ja
- %{name}-doc パッケージは Boost ライブラリについてのドキュメントを含んでいます。
- %package build
- Summary: Cross platform build system for C++ projects
- Group: Development/Tools
- Requires: %{name}-jam
- BuildArch: noarch
- %description build
- Boost.Build is an easy way to build C++ projects, everywhere. You name
- your pieces of executable and libraries and list their sources. Boost.Build
- takes care about compiling your sources with the right options,
- creating static and shared libraries, making pieces of executable, and other
- chores -- whether you're using GCC, MSVC, or a dozen more supported
- C++ compilers -- on Windows, OSX, Linux and commercial UNIX systems.
- %package doctools
- Summary: Tools for working with Boost documentation
- Group: Applications/Publishing
- Requires: docbook-dtds
- Requires: docbook-style-xsl
- %description doctools
- Tools for working with Boost documentation in BoostBook or QuickBook format.
- %package jam
- Summary: A low-level build tool
- Group: Development/Tools
- %description jam
- Boost.Jam (BJam) is the low-level build engine tool for Boost.Build.
- Historically, Boost.Jam is based on on FTJam and on Perforce Jam but has grown
- a number of significant features and is now developed independently
- %if %{with openmpi}
- %package openmpi
- Summary: Run-Time component of Boost.MPI library
- Group: System Environment/Libraries
- BuildRequires: openmpi-devel
- Requires: %{name}-serialization = %{version}-%{release}
- %description openmpi
- Run-Time support for Boost.MPI-OpenMPI, a library providing a clean C++
- API over the OpenMPI implementation of MPI.
- %package openmpi-python
- Summary: Python run-time component of Boost.MPI library
- Group: System Environment/Libraries
- Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
- Requires: %{name}-python%{?_isa} = %{version}-%{release}
- Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
- %description openmpi-python
- Python support for Boost.MPI-OpenMPI, a library providing a clean C++
- API over the OpenMPI implementation of MPI.
- %package graph-openmpi
- Summary: Run-Time component of parallel boost graph library
- Group: System Environment/Libraries
- Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
- Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
- %description graph-openmpi
- Run-Time support for the Parallel BGL graph library. The interface and
- graph components are generic, in the same sense as the the Standard
- Template Library (STL). This libraries in this package use OpenMPI
- back-end to do the parallel work.
- %endif
- %if %{with mpich}
- %package mpich
- Summary: Run-Time component of Boost.MPI library
- Group: System Environment/Libraries
- BuildRequires: mpich-devel
- Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
- Provides: boost-mpich2 = %{version}-%{release}
- Obsoletes: boost-mpich2 < 1.53.0-9
- %description mpich
- Run-Time support for Boost.MPI-MPICH, a library providing a clean C++
- API over the MPICH implementation of MPI.
- %package mpich-python
- Summary: Python run-time component of Boost.MPI library
- Group: System Environment/Libraries
- Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
- Requires: %{name}-python%{?_isa} = %{version}-%{release}
- Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
- Provides: boost-mpich2-python = %{version}-%{release}
- Obsoletes: boost-mpich2-python < 1.53.0-9
- %description mpich-python
- Python support for Boost.MPI-MPICH, a library providing a clean C++
- API over the MPICH implementation of MPI.
- %package graph-mpich
- Summary: Run-Time component of parallel boost graph library
- Group: System Environment/Libraries
- Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
- Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
- Provides: boost-graph-mpich2 = %{version}-%{release}
- Obsoletes: boost-graph-mpich2 < 1.53.0-9
- %description graph-mpich
- Run-Time support for the Parallel BGL graph library. The interface and
- graph components are generic, in the same sense as the the Standard
- Template Library (STL). This libraries in this package use MPICH
- back-end to do the parallel work.
- %endif
- %prep
- %setup -q -n %{tarname}_%{pkgver}
- %patch4 -p1
- %patch5 -p1
- %patch15 -p0
- %patch25 -p1
- %patch36 -p1
- %patch51 -p1
- %patch61 -p1
- %patch62 -p1
- %patch63 -p1
- %patch65 -p1
- %patch68 -p1
- %patch81 -p2
- # At least python2_version needs to be a macro so that it's visible in
- # %%install as well.
- %global python2_version %(/usr/bin/python2 %{SOURCE1})
- %if %{with python3}
- %global python3_version %(/usr/bin/python3 %{SOURCE1})
- %global python3_abiflags %(/usr/bin/python3-config --abiflags)
- %endif
- %build
- : PYTHON2_VERSION=%{python2_version}
- %if %{with python3}
- : PYTHON3_VERSION=%{python3_version}
- : PYTHON3_ABIFLAGS=%{python3_abiflags}
- %endif
- # There are many strict aliasing warnings, and it's not feasible to go
- # through them all at this time.
- # There are also lots of noisy but harmless unused local typedef warnings.
- export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs"
- cat > ./tools/build/src/user-config.jam << "EOF"
- import os ;
- local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ;
- using gcc : : : <compileflags>$(RPM_OPT_FLAGS) ;
- %if %{with openmpi} || %{with mpich}
- using mpi ;
- %endif
- %if %{with python3}
- using python : %{python2_version} : /usr/bin/python2 : /usr/include/python%{python2_version} : : : : ;
- using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}%{python3_abiflags} : : : : %{python3_abiflags} ;
- %endif
- EOF
- ./bootstrap.sh --with-toolset=gcc --with-icu
- # N.B. When we build the following with PCH, parts of boost (math
- # library in particular) end up being built second time during
- # installation. Unsure why that is, but all sub-builds need to be
- # built with pch=off to avoid this.
- #
- # The "python=2.*" bit tells jam that we want to _also_ build 2.*, not
- # just 3.*. When omitted, it just builds for python 3 twice, once
- # calling the library libboost_python and once libboost_python3. I
- # assume this is for backward compatibility for apps that are used to
- # linking against -lboost_python, for when 2->3 transition is
- # eventually done.
- echo ============================= build serial ==================
- ./b2 -d+2 -q %{?_smp_mflags} \
- --without-mpi --without-graph_parallel --build-dir=serial \
- %if !%{with context}
- --without-context --without-coroutine --without-coroutine2 \
- %endif
- variant=release threading=multi debug-symbols=on pch=off \
- python=%{python2_version} stage
- # See libs/thread/build/Jamfile.v2 for where this file comes from.
- if [ $(find serial -type f -name has_atomic_flag_lockfree \
- -print -quit | wc -l) -ne 0 ]; then
- DEF=D
- else
- DEF=U
- fi
- m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \
- %{SOURCE2} > $(basename %{SOURCE2})
- # Build MPI parts of Boost with OpenMPI support
- %if %{with openmpi} || %{with mpich}
- # First, purge all modules so that user environment doesn't conflict
- # with the build.
- module purge ||:
- %endif
- # N.B. python=2.* here behaves differently: it exactly selects a
- # version that we want to build against. Boost MPI is not portable to
- # Python 3 due to API changes in Python, so this suits us.
- %if %{with openmpi}
- %{_openmpi_load}
- echo ============================= build $MPI_COMPILER ==================
- ./b2 -d+2 -q %{?_smp_mflags} \
- --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
- variant=release threading=multi debug-symbols=on pch=off \
- python=%{python2_version} stage
- %{_openmpi_unload}
- export PATH=/bin${PATH:+:}$PATH
- %endif
- # Build MPI parts of Boost with MPICH support
- %if %{with mpich}
- %{_mpich_load}
- echo ============================= build $MPI_COMPILER ==================
- ./b2 -d+2 -q %{?_smp_mflags} \
- --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
- variant=release threading=multi debug-symbols=on pch=off \
- python=%{python2_version} stage
- %{_mpich_unload}
- export PATH=/bin${PATH:+:}$PATH
- %endif
- echo ============================= build Boost.Build ==================
- (cd tools/build
- ./bootstrap.sh --with-toolset=gcc)
- %check
- :
- %install
- rm -rf $RPM_BUILD_ROOT
- #cd %{_builddir}/%{name}_%{pkgver}
- %if %{with openmpi} || %{with mpich}
- # First, purge all modules so that user environment doesn't conflict
- # with the build.
- module purge ||:
- %endif
- %if %{with openmpi}
- %{_openmpi_load}
- # XXX We want to extract this from RPM flags
- # b2 instruction-set=i686 etc.
- echo ============================= install $MPI_COMPILER ==================
- ./b2 -q %{?_smp_mflags} \
- --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
- --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \
- variant=release threading=multi debug-symbols=on pch=off \
- python=%{python2_version} stage
- # Remove generic parts of boost that were built for dependencies.
- rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
- %{_openmpi_unload}
- export PATH=/bin${PATH:+:}$PATH
- %endif
- %if %{with mpich}
- %{_mpich_load}
- echo ============================= install $MPI_COMPILER ==================
- ./b2 -q %{?_smp_mflags} \
- --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
- --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \
- variant=release threading=multi debug-symbols=on pch=off \
- python=%{python2_version} stage
- # Remove generic parts of boost that were built for dependencies.
- rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
- %{_mpich_unload}
- export PATH=/bin${PATH:+:}$PATH
- %endif
- echo ============================= install serial ==================
- ./b2 -d+2 -q %{?_smp_mflags} \
- --without-mpi --without-graph_parallel --build-dir=serial \
- %if !%{with context}
- --without-context --without-coroutine --without-coroutine2 \
- %endif
- --prefix=$RPM_BUILD_ROOT%{_prefix} \
- --libdir=$RPM_BUILD_ROOT%{_libdir} \
- variant=release threading=multi debug-symbols=on pch=off \
- python=%{python2_version} install
- # Override DSO symlink with a linker script. See the linker script
- # itself for details of why we need to do this.
- [ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so ] # Must be present
- rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so
- install -p -m 644 $(basename %{SOURCE2}) $RPM_BUILD_ROOT%{_libdir}/
- echo ============================= install Boost.Build ==================
- (cd tools/build
- ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
- # Fix some permissions
- chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/alias.py
- chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py
- # We don't want to distribute this
- rm -f $RPM_BUILD_ROOT%{_bindir}/b2
- # Not a real file
- rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/project.ann.py
- # Empty file
- rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp
- # Install the manual page
- %{__install} -p -m 644 v2/doc/bjam.1 -D $RPM_BUILD_ROOT%{_mandir}/man1/bjam.1
- )
- echo ============================= install Boost.QuickBook ==================
- (cd tools/quickbook
- ../build/b2 --prefix=$RPM_BUILD_ROOT%{_prefix}
- %{__install} -p -m 755 ../../dist/bin/quickbook $RPM_BUILD_ROOT%{_bindir}/
- cd ../boostbook
- find dtd -type f -name '*.dtd' | while read tobeinstalledfiles; do
- install -p -m 644 $tobeinstalledfiles -D $RPM_BUILD_ROOT%{_datadir}/boostbook/$tobeinstalledfiles
- done
- find xsl -type f | while read tobeinstalledfiles; do
- install -p -m 644 $tobeinstalledfiles -D $RPM_BUILD_ROOT%{_datadir}/boostbook/$tobeinstalledfiles
- done
- )
- # Install documentation files (HTML pages) within the temporary place
- echo ============================= install documentation ==================
- # Prepare the place to temporarily store the generated documentation
- rm -rf %{boost_docdir} && %{__mkdir_p} %{boost_docdir}/html
- DOCPATH=%{boost_docdir}
- DOCREGEX='.*\.\(html?\|css\|png\|gif\)'
- find libs doc more -type f -regex $DOCREGEX \
- | sed -n '/\//{s,/[^/]*$,,;p}' \
- | sort -u > tmp-doc-directories
- sed "s:^:$DOCPATH/:" tmp-doc-directories \
- | xargs -P 0 --no-run-if-empty %{__install} -d
- cat tmp-doc-directories | while read tobeinstalleddocdir; do
- find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -regex $DOCREGEX -print0 \
- | xargs -P 0 -0 %{__install} -p -m 644 -t $DOCPATH/$tobeinstalleddocdir
- done
- rm -f tmp-doc-directories
- %{__install} -p -m 644 -t $DOCPATH LICENSE_1_0.txt index.htm index.html boost.png rst.css boost.css
- echo ============================= install examples ==================
- # Fix a few non-standard issues (DOS and/or non-UTF8 files)
- sed -i -e 's/\r//g' libs/geometry/example/ml02_distance_strategy.cpp
- for tmp_doc_file in flyweight/example/Jamfile.v2 \
- format/example/sample_new_features.cpp multi_index/example/Jamfile.v2 \
- multi_index/example/hashed.cpp serialization/example/demo_output.txt
- do
- mv libs/${tmp_doc_file} libs/${tmp_doc_file}.iso8859
- iconv -f ISO8859-1 -t UTF8 < libs/${tmp_doc_file}.iso8859 > libs/${tmp_doc_file}
- touch -r libs/${tmp_doc_file}.iso8859 libs/${tmp_doc_file}
- rm -f libs/${tmp_doc_file}.iso8859
- done
- # Prepare the place to temporarily store the examples
- rm -rf %{boost_examplesdir} && mkdir -p %{boost_examplesdir}/html
- EXAMPLESPATH=%{boost_examplesdir}
- find libs -type d -name example -exec find {} -type f \; \
- | sed -n '/\//{s,/[^/]*$,,;p}' \
- | sort -u > tmp-doc-directories
- sed "s:^:$EXAMPLESPATH/:" tmp-doc-directories \
- | xargs -P 0 --no-run-if-empty %{__install} -d
- rm -f tmp-doc-files-to-be-installed && touch tmp-doc-files-to-be-installed
- cat tmp-doc-directories | while read tobeinstalleddocdir
- do
- find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -type f \
- >> tmp-doc-files-to-be-installed
- done
- cat tmp-doc-files-to-be-installed | while read tobeinstalledfiles
- do
- if test -s $tobeinstalledfiles
- then
- tobeinstalleddocdir=`dirname $tobeinstalledfiles`
- %{__install} -p -m 644 -t $EXAMPLESPATH/$tobeinstalleddocdir $tobeinstalledfiles
- fi
- done
- rm -f tmp-doc-files-to-be-installed
- rm -f tmp-doc-directories
- %{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt
- ln -s ./%{tarname} ${RPM_BUILD_ROOT}/%{_includedir}/%{tarname}-%{lnkver}
- # remove unuse files
- rm -f ${RPM_BUILD_ROOT}/%{_libdir}/%{name}_*.a
- %clean
- rm -rf $RPM_BUILD_ROOT
- # MPI subpackages don't need the ldconfig magic. They are hidden by
- # default, in MPI back-end-specific directory, and only show to the
- # user after the relevant environment module has been loaded.
- # rpmlint will report that as errors, but it is fine.
- %post atomic -p /sbin/ldconfig
- %post chrono -p /sbin/ldconfig
- %post container -p /sbin/ldconfig
- %if %{with context}
- %post context -p /sbin/ldconfig
- %post coroutine -p /sbin/ldconfig
- %endif
- %post date-time -p /sbin/ldconfig
- %post filesystem -p /sbin/ldconfig
- %post graph -p /sbin/ldconfig
- %post iostreams -p /sbin/ldconfig
- %post locale -p /sbin/ldconfig
- %post log -p /sbin/ldconfig
- %post math -p /sbin/ldconfig
- %post program-options -p /sbin/ldconfig
- %post python -p /sbin/ldconfig
- %post random -p /sbin/ldconfig
- %post regex -p /sbin/ldconfig
- %post serialization -p /sbin/ldconfig
- %post signals -p /sbin/ldconfig
- %post system -p /sbin/ldconfig
- %post test -p /sbin/ldconfig
- %post thread -p /sbin/ldconfig
- %post timer -p /sbin/ldconfig
- %post type_erasure -p /sbin/ldconfig
- %post wave -p /sbin/ldconfig
- %postun atomic -p /sbin/ldconfig
- %postun chrono -p /sbin/ldconfig
- %postun container -p /sbin/ldconfig
- %if %{with context}
- %postun context -p /sbin/ldconfig
- %postun coroutine -p /sbin/ldconfig
- %endif
- %postun date-time -p /sbin/ldconfig
- %postun filesystem -p /sbin/ldconfig
- %postun graph -p /sbin/ldconfig
- %postun iostreams -p /sbin/ldconfig
- %postun locale -p /sbin/ldconfig
- %postun log -p /sbin/ldconfig
- %postun math -p /sbin/ldconfig
- %postun program-options -p /sbin/ldconfig
- %postun python -p /sbin/ldconfig
- %postun random -p /sbin/ldconfig
- %postun regex -p /sbin/ldconfig
- %postun serialization -p /sbin/ldconfig
- %postun signals -p /sbin/ldconfig
- %postun system -p /sbin/ldconfig
- %postun test -p /sbin/ldconfig
- %postun thread -p /sbin/ldconfig
- %postun timer -p /sbin/ldconfig
- %postun type_erasure -p /sbin/ldconfig
- %postun wave -p /sbin/ldconfig
- %files
- %defattr(-,root,root)
- %doc LICENSE_1_0.txt
- %files atomic
- %defattr(-, root, root, -)
- %doc LICENSE_1_0.txt
- %{_libdir}/libboost_atomic.so.*
- %files chrono
- %defattr(-, root, root, -)
- %doc LICENSE_1_0.txt
- %{_libdir}/libboost_chrono.so.*
- %files container
- %license LICENSE_1_0.txt
- %{_libdir}/libboost_container.so.*
- %if %{with context}
- %files context
- %defattr(-, root, root, -)
- %doc LICENSE_1_0.txt
- %{_libdir}/libboost_context.so.*
- %files coroutine
- %license LICENSE_1_0.txt
- %{_libdir}/libboost_coroutine.so.*
- %endif
- %files date-time
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_date_time*.so.*
- %files filesystem
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_filesystem*.so.*
- %files graph
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_graph*.so.*
- %files iostreams
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_iostreams*.so.*
- %files locale
- %defattr(-, root, root, -)
- %doc LICENSE_1_0.txt
- %{_libdir}/libboost_locale.so.*
- %files log
- %defattr(-, root, root, -)
- %doc LICENSE_1_0.txt
- %{_libdir}/libboost_log.so.*
- %{_libdir}/libboost_log_setup.so.*
- %files math
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_math_*.so.*
- %files program-options
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_program_options*.so.*
- %files python
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_python.so.*
- %if %{with python3}
- %files python3
- %license LICENSE_1_0.txt
- %{_libdir}/libboost_python3.so.*
- %files python3-devel
- %license LICENSE_1_0.txt
- %{_libdir}/libboost_python3.so
- %endif
- %files random
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_random*.so.*
- %files regex
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_regex*.so.*
- %files serialization
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_serialization*.so.*
- %{_libdir}/%{name}_wserialization*.so.*
- %files signals
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_signals*.so.*
- %files system
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_system*.so.*
- %files test
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_prg_exec_monitor*.so.*
- %{_libdir}/%{name}_unit_test_framework*.so.*
- %files thread
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_thread*.so.*
- %files timer
- %defattr(-, root, root, -)
- %doc LICENSE_1_0.txt
- %{_libdir}/libboost_timer.so.*
- %files type_erasure
- %license LICENSE_1_0.txt
- %{_libdir}/libboost_type_erasure.so.*
- %files wave
- %doc LICENSE_1_0.txt
- %{_libdir}/%{name}_wave*.so.*
- %files devel
- %defattr(-,root,root)
- %{_includedir}/boost/
- %{_includedir}/boost-%{lnkver}
- %{_libdir}/%{name}_*.so
- %files doc
- %doc index.htm index.html boost.css boost.png rst.css doc libs more
- %files build
- %license LICENSE_1_0.txt
- %{_datadir}/boost-build
- %files doctools
- %license LICENSE_1_0.txt
- %{_bindir}/quickbook
- %{_datadir}/boostbook/
- %files jam
- %license LICENSE_1_0.txt
- %{_bindir}/bjam
- %{_mandir}/man1/bjam.1*
- # OpenMPI packages
- %if %{with openmpi}
- %files openmpi
- %license LICENSE_1_0.txt
- %{_libdir}/openmpi/lib/libboost_mpi.so.*
- %files openmpi-python
- %license LICENSE_1_0.txt
- %{_libdir}/openmpi/lib/libboost_mpi_python.so.*
- %{_libdir}/openmpi/lib/mpi.so
- %files graph-openmpi
- %license LICENSE_1_0.txt
- %{_libdir}/openmpi/lib/libboost_graph_parallel.so.*
- %endif
- # MPICH packages
- %if %{with mpich}
- %files mpich
- %license LICENSE_1_0.txt
- %{_libdir}/mpich/lib/libboost_mpi.so.*
- %files mpich-python
- %license LICENSE_1_0.txt
- %{_libdir}/mpich/lib/libboost_mpi_python.so.*
- %{_libdir}/mpich/lib/mpi.so
- %files graph-mpich
- %license LICENSE_1_0.txt
- %{_libdir}/mpich/lib/libboost_graph_parallel.so.*
- %endif
- %changelog
- * Tue Jun 28 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.60.0-2
- - rebuild with python3-3.5.2
- * Mon Jun 6 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.60.0-1
- - updated to boost_1_60_0.
- - dropped all patches.
- - imported patches from rawhide.
- - moved *.so into libboost-devel.
- * Mon Nov 25 2013 IWAI, Masaharu <iwaim.sub@gmail.com> 1.54.0-1
- - update to boost_1_54_0
- - all package: including license file
- - drop boost_filesystem patch (Patch0)
- - sync Fedora boost-1.54.0-5.fc21
- - new packages: atomic, chrono, context, locale, log, timer
- - add patches
- - Patch4, 5, 9, 15, 18..28, 31..38, 42..55
- * Sun Feb 20 2011 Munehiro Yamamoto <munepi@vinelinux.org> 1.45.0-2
- - fixed crashing throwing exception
- "std::runtime_error: locale::facet::_S_create_c_locale name not valid"
- on some systems (FreeBSD and some linuxes) when current locale
- (LANG,LC_ALL) is not "C"
- * Tue Jan 18 2011 Shu KONNO <owa@bg.wakwak.com> 1.45.0-1
- - updated to boost_1_45_0
- - added random sub-package
- * Wed Apr 14 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.42.0-4
- - rebuilt again on ppc
- * Sat Apr 10 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.42.0-3
- - rebuilt with libicu-4.4
- * Mon Feb 08 2010 Shu KONNO <owa@bg.wakwak.com> 1.42.0-2
- - added "-licui18n" to bjam
- - added BR: lam
- * Sun Feb 07 2010 Shu KONNO <owa@bg.wakwak.com> 1.42.0-1
- - updated to boost_1_42_0
- - rebuilt with new toolchain and python-2.6
- - added user-config.jam to make libboost_mpi
- - added BR: libaio-devel
- - added %%{post,postun} -p /sbin/ldconfig
- - dropt no use parameter EXPAT_INCLUDE and EXPAT_LIBPATH
- - dropt %{_libdir}/%{name}_test_exec_monitor-*.a in %%files %{name}-test
- - dropt %%{post,postun} devel section
- * Sun Mar 22 2009 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.36.0-2vl5
- - rebuilt with libicu-4.0.1
- - changed Group to System Environment/Libraries (except devel package)
- * Sat Aug 16 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.36.0-1vl5
- - new upstream release
- - add -math subpackage
- * Fri Aug 15 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.35.0-2vl5
- - build with python-2.5
- - add libboost_XXXX.so symlinks
- * Thu May 8 2008 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.35.0-1vl5
- - upstream release
- - applied new versioning policy
- - add EXPAT_INCLUDE and EXPAT_LIBPATH to enable GraphML support
- - add new package libboost-system
- - Obsolete: *-devel packages
- * Sat Sep 8 2007 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.34.1-0vl3
- - rebuilt with libicu-3.6
- - changed doc Group to Applications/Documentation
- * Sat Aug 18 2007 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.34.1-0vl2
- - upstream release
- * Thu Jun 14 2007 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.34.0-0vl3
- - add --libdir=%%{_libdir} to cope with x86_64 environment
- * Sun Jun 10 2007 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.34.0-0vl2
- - upstream release
- - use Easy Build and Install process with ./configure
- - add BuildRequires: libicu-devel
- - remove %%{_libdir}/libboost_test_exec_monitor-*.so* from %%files -n libboost-test
- - add new packages: libboost-graph, libboost-graph-devel, libboost-wave
- - add files to doc package
- * Sun May 13 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 1.33.1-0vl2
- - rebuilt with new toolchain
- * Sat Feb 4 2006 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.1-0vl1
- - upstream release
- * Mon Dec 12 2005 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.33.0-0vl3
- - fixed typo in Groups:
- - devel packages also moved to Development/Libraries group
- * Mon Sep 19 2005 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 1.33.0-0vl2
- - spec modified to avoid errors on non-ix86 archtecture
- (previously the path linuxx86 was explicitly used)
- * Sun Sep 11 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.0-0vl1
- - initial release for Vine Linux
- * Sat Sep 10 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.0-0vl0.3
- - link /usr/include/boost_%{lnkver}/boost to /usr/include/boost
- * Sat Sep 10 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.0-0vl0.2
- - change package name from boost to libboost
- - separated into sub-packages
- * Fri Jun 17 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.0-0vl0.1
- - upstream release
- - add BuildRequires: bzip2-devel zlib-devel
- * Fri Jun 17 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.7
- - added so.* file
- * Mon Apr 25 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.6
- - moved %post, %postun script to -devel package
- * Mon Apr 25 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.5
- - moved doc/html to -devel package
- - make a symbolic link on %{_includedir}/boost
- * Mon Apr 25 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.4
- - fixed character code to euc-jp
- * Mon Apr 25 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.3
- - add %doc files
- * Fri Apr 22 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.2
- - remove Requires
- - split -devel package
- * Fri Apr 22 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.1
- - initial build for Vine Linux
|