source: projects/specs/trunk/lib/libb/libboost/libboost-vl.spec @ 10405

Revision 10405, 36.2 KB checked in by Takemikaduchi, 8 years ago (diff)

gcc-5.4.0 & python3-3.5.2

Line 
1# Support for documentation installation As the %%doc macro erases the
2# target directory ($RPM_BUILD_ROOT%%{_docdir}/%%{name}), manually
3# installed documentation must be saved into a temporary dedicated
4# directory.
5# XXX note that as of rpm 4.9.1, this shouldn't be necessary anymore.
6# We should be able to install directly.
7%global boost_docdir __tmp_docdir
8%global boost_examplesdir __tmp_examplesdir
9
10%bcond_without context
11%bcond_without python3
12%bcond_with mpich
13%bcond_with openmpi
14
15%define major 1
16%define minor 60
17%define teeny 0
18%define tarname boost
19%define lnkver %{major}_%{minor}
20%define pkgver %{major}_%{minor}_%{teeny}
21
22%ifnarch %{ix86} x86_64
23  # Avoid using Boost.Context on non-x86 arches.  s390 is not
24  # supported at all and there were _syntax errors_ in PPC code.  This
25  # should be enabled on a case-by-case basis as the arches are tested
26  # and fixed.
27  %bcond_with context
28%else
29  %bcond_without context
30%endif
31
32Summary: Portable C++ source libraries
33Summary(ja): ポータブルな C++ ソースライブラリ
34Name: libboost
35Version: %{major}.%{minor}.%{teeny}
36Release: 2%{?_dist_release}
37Source0: http://downloads.sourceforge.net/%{tarname}/%{tarname}_%{pkgver}.tar.bz2
38Source1: ver.py
39Source2: libboost_thread.so
40License: distributable
41Group: System Environment/Libraries
42URL: http://www.boost.org/
43
44BuildRequires: python-devel apache2-devel bzip2-devel zlib-devel libicu-devel
45BuildRequires: libaio-devel lam
46BuildRequires: libquadmath-devel
47%if %{with python3}
48BuildRequires: python3-devel
49%endif
50BuildRoot: %{_tmppath}/%{name}-%{version}-root
51
52# https://svn.boost.org/trac/boost/ticket/6150
53Patch4: boost-1.50.0-fix-non-utf8-files.patch
54
55# Add a manual page for bjam, based on the on-line documentation:
56# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
57Patch5: boost-1.48.0-add-bjam-man-page.patch
58
59# https://bugzilla.redhat.com/show_bug.cgi?id=828856
60# https://bugzilla.redhat.com/show_bug.cgi?id=828857
61# https://svn.boost.org/trac/boost/ticket/6701
62Patch15: boost-1.58.0-pool.patch
63
64# https://svn.boost.org/trac/boost/ticket/5637
65Patch25: boost-1.57.0-mpl-print.patch
66
67# https://svn.boost.org/trac/boost/ticket/8870
68Patch36: boost-1.57.0-spirit-unused_typedef.patch
69
70# https://svn.boost.org/trac/boost/ticket/9038
71Patch51: boost-1.58.0-pool-test_linking.patch
72
73# https://bugzilla.redhat.com/show_bug.cgi?id=1102667
74Patch61: boost-1.57.0-python-libpython_dep.patch
75Patch62: boost-1.57.0-python-abi_letters.patch
76Patch63: boost-1.55.0-python-test-PyImport_AppendInittab.patch
77
78# https://bugzilla.redhat.com/show_bug.cgi?id=1190039
79Patch65: boost-1.57.0-build-optflags.patch
80
81# Prevent gcc.jam from setting -m32 or -m64.
82Patch68: boost-1.58.0-address-model.patch
83
84# https://bugzilla.redhat.com/show_bug.cgi?id=1262444
85Patch81: boost-1.59-test-fenv.patch
86
87Vendor: Project Vine
88Distribution: Vine Linux
89
90Obsoletes: %{name}-date-time-devel %{name}-filesystem-devel %{name}-graph-devel
91Obsoletes: %{name}-iostreams-devel %{name}-program-options-devel
92Obsoletes: %{name}-python-devel %{name}-regex-devel
93Obsoletes: %{name}-serialization-devel %{name}-signals-devel %{name}-test-devel
94Obsoletes: %{name}-thread-devel %{name}-wave-devel
95
96%description
97Boost provides free peer-reviewed portable C++ source libraries.  The emphasis
98is on libraries which work well with the C++ Standard Library.  The libraries
99are intended to be widely useful, and are in regular use by thousands of
100programmers across a broad spectrum of applications.
101
102A further goal is to establish "existing practice" and provide reference
103implementations so that Boost libraries are suitable for eventual
104standardization. Ten Boost libraries will be included in the C++ Standards
105Committee's upcoming C++ Standard Library Technical Report as a step toward
106becoming part of a future C++ Standard.
107
108%description -l ja
109Boost は公開レビューされたフリーのC++ライブラリ群です。 C++ の標準ライブラリに
110準拠することに重点を置いて開発されています。使いやすく、広い分野のアプリ
111ケーションにおいて日常的に多くの開発者に用いられることを目指しています。
112
113さらなる目標は、最終的な標準化に適合した「存在する実例」としてリファレンス実装
114を提供することです。10 の Boost ライブラリが、将来の C++ 標準になるための一歩
115として、C++ 標準化委員会が策定中の C++ 標準ライブラリテクニカルレポートに
116含まれる予定です。
117
118%package atomic
119Summary: Run-Time component of boost atomic library
120Group: System Environment/Libraries
121
122%description atomic
123
124Run-Time support for Boost.Atomic, a library that provides atomic data
125types and operations on these data types, as well as memory ordering
126constraints required for coordinating multiple threads through atomic
127variables.
128
129%package chrono
130Summary: Run-Time component of boost chrono library
131Group: System Environment/Libraries
132Requires: %{name}-system = %{version}-%{release}
133
134%description chrono
135
136Run-Time support for Boost.Chrono, a set of useful time utilities.
137
138%package container
139Summary: Run-Time component of boost container library
140Group: System Environment/Libraries
141Requires: %{name} = %{version}-%{release}
142
143%description container
144
145Boost.Container library implements several well-known containers,
146including STL containers. The aim of the library is to offers advanced
147features not present in standard containers or to offer the latest
148standard draft features for compilers that comply with C++03.
149
150%if %{with context}
151%package context
152Summary: Run-Time component of boost context switching library
153Group: System Environment/Libraries
154Requires: %{name} = %{version}-%{release}
155
156%description context
157
158Run-Time support for Boost.Context, a foundational library that
159provides a sort of cooperative multitasking on a single thread.
160
161%package coroutine
162Summary: Run-Time component of boost coroutine library
163Group: System Environment/Libraries
164Requires: %{name} = %{version}-%{release}
165
166%description coroutine
167Run-Time support for Boost.Coroutine, a library that provides
168generalized subroutines which allow multiple entry points for
169suspending and resuming execution.
170
171%endif
172
173%package date-time
174Summary: Set of data-time libralies in %{name}
175Group: System Environment/Libraries
176Requires: %{name} = %{version}-%{release}
177
178%description date-time
179Set of data-time libralies in %{name}
180
181%package devel
182Summary: Header files and libraries for developing apps which will use %{name}
183Summary(ja): %{name}の開発に必要なヘッダファイル及びライブラリ
184Group: Development/Libraries
185Requires: %{name} = %{version}-%{release}
186Requires: libicu-devel
187Requires: libquadmath-devel
188
189%package filesystem
190Summary: Set of filesystem operation libralies in %{name}
191Group: System Environment/Libraries
192Requires: %{name} = %{version}-%{release}
193
194%description filesystem
195Set of filesystem operation libralies in %{name}
196
197%package graph
198Summary: Set of Graphviz libralies in %{name}
199Group: System Environment/Libraries
200Requires: %{name} = %{version}-%{release}
201
202%description graph
203Set of Graphviz libralies in %{name}
204
205%package iostreams
206Summary: Set of streams and i/o filters libralies in %{name}
207Group: System Environment/Libraries
208Requires: %{name} = %{version}-%{release}
209
210%description iostreams
211Set of streams and i/o filters libralies in %{name}
212
213%package locale
214Summary: Run-Time component of boost locale library
215Group: System Environment/Libraries
216Requires: %{name}-chrono = %{version}-%{release}
217Requires: %{name}-system = %{version}-%{release}
218Requires: %{name}-thread = %{version}-%{release}
219
220%description locale
221
222Run-Time support for Boost.Locale, a set of localization and Unicode
223handling tools.
224
225%package log
226Summary: Run-Time component of boost logging library
227Group: System Environment/Libraries
228
229%description log
230
231Boost.Log library aims to make logging significantly easier for the
232application developer.  It provides a wide range of out-of-the-box
233tools along with public interfaces for extending the library.
234
235%package math
236Summary: Set of math libralies in %{name}
237Group: System Environment/Libraries
238Requires: %{name} = %{version}-%{release}
239
240%description math
241Set of math libralies in %{name}
242
243%package program-options
244Summary: Set of program options libralies in %{name}
245Group: System Environment/Libraries
246Requires: %{name} = %{version}-%{release}
247
248%description program-options
249Set of program options libralies in %{name}
250
251%package python
252Summary: Set of Python libralies in %{name}
253Group: System Environment/Libraries
254Requires: %{name} = %{version}-%{release}
255
256%description python
257Set of Python libralies in %{name}
258
259%if %{with python3}
260
261%package python3
262Summary: Run-Time component of boost python library for Python 3
263Group: System Environment/Libraries
264
265%description python3
266
267The Boost Python Library is a framework for interfacing Python and
268C++. It allows you to quickly and seamlessly expose C++ classes,
269functions and objects to Python, and vice versa, using no special
270tools -- just your C++ compiler.  This package contains run-time
271support for Boost Python Library compiled for Python 3.
272
273%package python3-devel
274Summary: Shared object symbolic links for Boost.Python 3
275Group: System Environment/Libraries
276Requires: %{name}-python3 = %{version}-%{release}
277Requires: %{name}-devel = %{version}-%{release}
278
279%description python3-devel
280
281Shared object symbolic links for Python 3 variant of Boost.Python.
282
283%endif
284
285%package random
286Summary: Set of random number generation libralies in %{name}
287Group: System Environment/Libraries
288Requires: %{name} = %{version}-%{release}
289
290%description random
291Set of random number generation libralies in %{name}
292
293%package regex
294Summary: Set of regular expression libralies in %{name}
295Group: System Environment/Libraries
296Requires: %{name} = %{version}-%{release}
297
298%description regex
299Set of regular expression libralies in %{name}
300
301%package serialization
302Summary: Set of serialization libralies in %{name}
303Group: System Environment/Libraries
304Requires: %{name} = %{version}-%{release}
305
306%description serialization
307Set of serialization libralies in %{name}
308
309%package signals
310Summary: Set of signals and slots libralies in %{name}
311Group: System Environment/Libraries
312Requires: %{name} = %{version}-%{release}
313
314%description signals
315Set of signals and slots libralies in %{name}
316
317%package system
318Summary: Operating system support
319Group: System Environment/Libraries
320Requires: %{name} = %{version}-%{release}
321
322%description system
323Operating system support, including the diagnostics support
324that will be part of the C++0x standard library
325
326%package test
327Summary: Set of libraries for writing and executing tests in %{name}
328Group: System Environment/Libraries
329Requires: %{name} = %{version}-%{release}
330
331%description test
332Set of libraries for writing and executing tests in %{name}
333
334%package thread
335Summary: Set of multi-thread libraries in %{name}
336Group: System Environment/Libraries
337Requires: %{name} = %{version}-%{release}
338
339%description thread
340Set of multi-thread libraries in %{name}
341
342%package timer
343Summary: Run-Time component of boost timer library
344Group: System Environment/Libraries
345Requires: %{name}-chrono = %{version}-%{release}
346Requires: %{name}-system = %{version}-%{release}
347
348%description timer
349
350"How long does my C++ code take to run?"
351The Boost Timer library answers that question and does so portably,
352with as little as one #include and one additional line of code.
353
354%package type_erasure
355Summary: Run-Time component of boost type erasure library
356Group: System Environment/Libraries
357Requires: %{name}-chrono = %{version}-%{release}
358Requires: %{name}-system = %{version}-%{release}
359
360%description type_erasure
361
362The Boost.TypeErasure library provides runtime polymorphism in C++
363that is more flexible than that provided by the core language.
364
365%package wave
366Summary: Set of wave libraries in %{name}
367Group: System Environment/Libraries
368Requires: %{name} = %{version}-%{release}
369
370%description wave
371Set of wave libraries in %{name}
372
373%description devel
374The %{name}-devel package contains the header files and libraries needed
375to develop programs that use the Boost library.
376
377%description devel -l ja
378%{name}-devel パッケージは Boost ライブラリを使うプログラムの開発に必要な
379ヘッダファイルやライブラリを含んでいます。
380
381%package doc
382Summary: Documents of %{name}
383Summary(ja): %{name}のドキュメント
384Group: Applications/Documentation
385Requires: %{name} = %{version}-%{release}
386
387%description doc
388The %{name}-doc package contains the documents about the boost library.
389
390%description doc -l ja
391%{name}-doc パッケージは Boost ライブラリについてのドキュメントを含んでいます。
392
393%package build
394Summary: Cross platform build system for C++ projects
395Group: Development/Tools
396Requires: %{name}-jam
397BuildArch: noarch
398
399%description build
400Boost.Build is an easy way to build C++ projects, everywhere. You name
401your pieces of executable and libraries and list their sources.  Boost.Build
402takes care about compiling your sources with the right options,
403creating static and shared libraries, making pieces of executable, and other
404chores -- whether you're using GCC, MSVC, or a dozen more supported
405C++ compilers -- on Windows, OSX, Linux and commercial UNIX systems.
406
407%package doctools
408Summary: Tools for working with Boost documentation
409Group: Applications/Publishing
410Requires: docbook-dtds
411Requires: docbook-style-xsl
412
413%description doctools
414
415Tools for working with Boost documentation in BoostBook or QuickBook format.
416
417%package jam
418Summary: A low-level build tool
419Group: Development/Tools
420
421%description jam
422Boost.Jam (BJam) is the low-level build engine tool for Boost.Build.
423Historically, Boost.Jam is based on on FTJam and on Perforce Jam but has grown
424a number of significant features and is now developed independently
425
426
427%if %{with openmpi}
428
429%package openmpi
430Summary: Run-Time component of Boost.MPI library
431Group: System Environment/Libraries
432BuildRequires: openmpi-devel
433Requires: %{name}-serialization = %{version}-%{release}
434
435%description openmpi
436
437Run-Time support for Boost.MPI-OpenMPI, a library providing a clean C++
438API over the OpenMPI implementation of MPI.
439
440%package openmpi-python
441Summary: Python run-time component of Boost.MPI library
442Group: System Environment/Libraries
443Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
444Requires: %{name}-python%{?_isa} = %{version}-%{release}
445Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
446
447%description openmpi-python
448
449Python support for Boost.MPI-OpenMPI, a library providing a clean C++
450API over the OpenMPI implementation of MPI.
451
452%package graph-openmpi
453Summary: Run-Time component of parallel boost graph library
454Group: System Environment/Libraries
455Requires: %{name}-openmpi%{?_isa} = %{version}-%{release}
456Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
457
458%description graph-openmpi
459
460Run-Time support for the Parallel BGL graph library.  The interface and
461graph components are generic, in the same sense as the the Standard
462Template Library (STL).  This libraries in this package use OpenMPI
463back-end to do the parallel work.
464
465%endif
466
467
468%if %{with mpich}
469
470%package mpich
471Summary: Run-Time component of Boost.MPI library
472Group: System Environment/Libraries
473BuildRequires: mpich-devel
474Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
475Provides: boost-mpich2 = %{version}-%{release}
476Obsoletes: boost-mpich2 < 1.53.0-9
477
478%description mpich
479
480Run-Time support for Boost.MPI-MPICH, a library providing a clean C++
481API over the MPICH implementation of MPI.
482
483%package mpich-python
484Summary: Python run-time component of Boost.MPI library
485Group: System Environment/Libraries
486Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
487Requires: %{name}-python%{?_isa} = %{version}-%{release}
488Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
489Provides: boost-mpich2-python = %{version}-%{release}
490Obsoletes: boost-mpich2-python < 1.53.0-9
491
492%description mpich-python
493
494Python support for Boost.MPI-MPICH, a library providing a clean C++
495API over the MPICH implementation of MPI.
496
497%package graph-mpich
498Summary: Run-Time component of parallel boost graph library
499Group: System Environment/Libraries
500Requires: %{name}-mpich%{?_isa} = %{version}-%{release}
501Requires: %{name}-serialization%{?_isa} = %{version}-%{release}
502Provides: boost-graph-mpich2 = %{version}-%{release}
503Obsoletes: boost-graph-mpich2 < 1.53.0-9
504
505%description graph-mpich
506
507Run-Time support for the Parallel BGL graph library.  The interface and
508graph components are generic, in the same sense as the the Standard
509Template Library (STL).  This libraries in this package use MPICH
510back-end to do the parallel work.
511
512%endif
513
514
515%prep
516%setup -q -n %{tarname}_%{pkgver}
517
518%patch4 -p1
519%patch5 -p1
520%patch15 -p0
521%patch25 -p1
522%patch36 -p1
523%patch51 -p1
524%patch61 -p1
525%patch62 -p1
526%patch63 -p1
527%patch65 -p1
528%patch68 -p1
529%patch81 -p2
530
531# At least python2_version needs to be a macro so that it's visible in
532# %%install as well.
533%global python2_version %(/usr/bin/python2 %{SOURCE1})
534%if %{with python3}
535%global python3_version %(/usr/bin/python3 %{SOURCE1})
536%global python3_abiflags %(/usr/bin/python3-config --abiflags)
537%endif
538
539%build
540: PYTHON2_VERSION=%{python2_version}
541%if %{with python3}
542: PYTHON3_VERSION=%{python3_version}
543: PYTHON3_ABIFLAGS=%{python3_abiflags}
544%endif
545
546# There are many strict aliasing warnings, and it's not feasible to go
547# through them all at this time.
548# There are also lots of noisy but harmless unused local typedef warnings.
549export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs"
550
551cat > ./tools/build/src/user-config.jam << "EOF"
552import os ;
553local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ;
554
555using gcc : : : <compileflags>$(RPM_OPT_FLAGS) ;
556%if %{with openmpi} || %{with mpich}
557using mpi ;
558%endif
559%if %{with python3}
560using python : %{python2_version} : /usr/bin/python2 : /usr/include/python%{python2_version} : : : : ;
561using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}%{python3_abiflags} : : : : %{python3_abiflags} ;
562%endif
563EOF
564
565./bootstrap.sh --with-toolset=gcc --with-icu
566
567# N.B. When we build the following with PCH, parts of boost (math
568# library in particular) end up being built second time during
569# installation.  Unsure why that is, but all sub-builds need to be
570# built with pch=off to avoid this.
571#
572# The "python=2.*" bit tells jam that we want to _also_ build 2.*, not
573# just 3.*.  When omitted, it just builds for python 3 twice, once
574# calling the library libboost_python and once libboost_python3.  I
575# assume this is for backward compatibility for apps that are used to
576# linking against -lboost_python, for when 2->3 transition is
577# eventually done.
578
579echo ============================= build serial ==================
580./b2 -d+2 -q %{?_smp_mflags} \
581        --without-mpi --without-graph_parallel --build-dir=serial \
582%if !%{with context}
583        --without-context --without-coroutine --without-coroutine2 \
584%endif
585        variant=release threading=multi debug-symbols=on pch=off \
586        python=%{python2_version} stage
587
588# See libs/thread/build/Jamfile.v2 for where this file comes from.
589if [ $(find serial -type f -name has_atomic_flag_lockfree \
590                -print -quit | wc -l) -ne 0 ]; then
591        DEF=D
592else
593        DEF=U
594fi
595
596m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \
597        %{SOURCE2} > $(basename %{SOURCE2})
598
599# Build MPI parts of Boost with OpenMPI support
600
601%if %{with openmpi} || %{with mpich}
602# First, purge all modules so that user environment doesn't conflict
603# with the build.
604module purge ||:
605%endif
606
607# N.B. python=2.* here behaves differently: it exactly selects a
608# version that we want to build against.  Boost MPI is not portable to
609# Python 3 due to API changes in Python, so this suits us.
610%if %{with openmpi}
611%{_openmpi_load}
612echo ============================= build $MPI_COMPILER ==================
613./b2 -d+2 -q %{?_smp_mflags} \
614        --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
615        variant=release threading=multi debug-symbols=on pch=off \
616        python=%{python2_version} stage
617%{_openmpi_unload}
618export PATH=/bin${PATH:+:}$PATH
619%endif
620
621# Build MPI parts of Boost with MPICH support
622%if %{with mpich}
623%{_mpich_load}
624echo ============================= build $MPI_COMPILER ==================
625./b2 -d+2 -q %{?_smp_mflags} \
626        --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
627        variant=release threading=multi debug-symbols=on pch=off \
628        python=%{python2_version} stage
629%{_mpich_unload}
630export PATH=/bin${PATH:+:}$PATH
631%endif
632
633echo ============================= build Boost.Build ==================
634(cd tools/build
635 ./bootstrap.sh --with-toolset=gcc)
636
637%check
638:
639
640%install
641rm -rf $RPM_BUILD_ROOT
642#cd %{_builddir}/%{name}_%{pkgver}
643
644%if %{with openmpi} || %{with mpich}
645# First, purge all modules so that user environment doesn't conflict
646# with the build.
647module purge ||:
648%endif
649
650%if %{with openmpi}
651%{_openmpi_load}
652# XXX We want to extract this from RPM flags
653# b2 instruction-set=i686 etc.
654echo ============================= install $MPI_COMPILER ==================
655./b2 -q %{?_smp_mflags} \
656        --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
657        --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \
658        variant=release threading=multi debug-symbols=on pch=off \
659        python=%{python2_version} stage
660
661# Remove generic parts of boost that were built for dependencies.
662rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
663
664%{_openmpi_unload}
665export PATH=/bin${PATH:+:}$PATH
666%endif
667
668%if %{with mpich}
669%{_mpich_load}
670echo ============================= install $MPI_COMPILER ==================
671./b2 -q %{?_smp_mflags} \
672        --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
673        --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \
674        variant=release threading=multi debug-symbols=on pch=off \
675        python=%{python2_version} stage
676
677# Remove generic parts of boost that were built for dependencies.
678rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
679
680%{_mpich_unload}
681export PATH=/bin${PATH:+:}$PATH
682%endif
683
684echo ============================= install serial ==================
685./b2 -d+2 -q %{?_smp_mflags} \
686        --without-mpi --without-graph_parallel --build-dir=serial \
687%if !%{with context}
688        --without-context --without-coroutine --without-coroutine2 \
689%endif
690        --prefix=$RPM_BUILD_ROOT%{_prefix} \
691        --libdir=$RPM_BUILD_ROOT%{_libdir} \
692        variant=release threading=multi debug-symbols=on pch=off \
693        python=%{python2_version} install
694
695# Override DSO symlink with a linker script.  See the linker script
696# itself for details of why we need to do this.
697[ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so ] # Must be present
698rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so
699install -p -m 644 $(basename %{SOURCE2}) $RPM_BUILD_ROOT%{_libdir}/
700
701echo ============================= install Boost.Build ==================
702(cd tools/build
703 ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
704 # Fix some permissions
705 chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/alias.py
706 chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py
707 # We don't want to distribute this
708 rm -f $RPM_BUILD_ROOT%{_bindir}/b2
709 # Not a real file
710 rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/project.ann.py
711 # Empty file
712 rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp
713 # Install the manual page
714 %{__install} -p -m 644 v2/doc/bjam.1 -D $RPM_BUILD_ROOT%{_mandir}/man1/bjam.1
715)
716
717echo ============================= install Boost.QuickBook ==================
718(cd tools/quickbook
719 ../build/b2 --prefix=$RPM_BUILD_ROOT%{_prefix}
720 %{__install} -p -m 755 ../../dist/bin/quickbook $RPM_BUILD_ROOT%{_bindir}/
721 cd ../boostbook
722 find dtd -type f -name '*.dtd' | while read tobeinstalledfiles; do
723   install -p -m 644 $tobeinstalledfiles -D $RPM_BUILD_ROOT%{_datadir}/boostbook/$tobeinstalledfiles
724 done
725 find xsl -type f | while read tobeinstalledfiles; do
726   install -p -m 644 $tobeinstalledfiles -D $RPM_BUILD_ROOT%{_datadir}/boostbook/$tobeinstalledfiles
727 done
728)
729
730# Install documentation files (HTML pages) within the temporary place
731echo ============================= install documentation ==================
732# Prepare the place to temporarily store the generated documentation
733rm -rf %{boost_docdir} && %{__mkdir_p} %{boost_docdir}/html
734DOCPATH=%{boost_docdir}
735DOCREGEX='.*\.\(html?\|css\|png\|gif\)'
736
737find libs doc more -type f -regex $DOCREGEX \
738    | sed -n '/\//{s,/[^/]*$,,;p}' \
739    | sort -u > tmp-doc-directories
740
741sed "s:^:$DOCPATH/:" tmp-doc-directories \
742    | xargs -P 0 --no-run-if-empty %{__install} -d
743
744cat tmp-doc-directories | while read tobeinstalleddocdir; do
745    find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -regex $DOCREGEX -print0 \
746    | xargs -P 0 -0 %{__install} -p -m 644 -t $DOCPATH/$tobeinstalleddocdir
747done
748rm -f tmp-doc-directories
749%{__install} -p -m 644 -t $DOCPATH LICENSE_1_0.txt index.htm index.html boost.png rst.css boost.css
750
751echo ============================= install examples ==================
752# Fix a few non-standard issues (DOS and/or non-UTF8 files)
753sed -i -e 's/\r//g' libs/geometry/example/ml02_distance_strategy.cpp
754for tmp_doc_file in flyweight/example/Jamfile.v2 \
755 format/example/sample_new_features.cpp multi_index/example/Jamfile.v2 \
756 multi_index/example/hashed.cpp serialization/example/demo_output.txt
757do
758  mv libs/${tmp_doc_file} libs/${tmp_doc_file}.iso8859
759  iconv -f ISO8859-1 -t UTF8 < libs/${tmp_doc_file}.iso8859 > libs/${tmp_doc_file}
760  touch -r libs/${tmp_doc_file}.iso8859 libs/${tmp_doc_file}
761  rm -f libs/${tmp_doc_file}.iso8859
762done
763
764# Prepare the place to temporarily store the examples
765rm -rf %{boost_examplesdir} && mkdir -p %{boost_examplesdir}/html
766EXAMPLESPATH=%{boost_examplesdir}
767find libs -type d -name example -exec find {} -type f \; \
768    | sed -n '/\//{s,/[^/]*$,,;p}' \
769    | sort -u > tmp-doc-directories
770sed "s:^:$EXAMPLESPATH/:" tmp-doc-directories \
771    | xargs -P 0 --no-run-if-empty %{__install} -d
772rm -f tmp-doc-files-to-be-installed && touch tmp-doc-files-to-be-installed
773cat tmp-doc-directories | while read tobeinstalleddocdir
774do
775  find $tobeinstalleddocdir -mindepth 1 -maxdepth 1 -type f \
776    >> tmp-doc-files-to-be-installed
777done
778cat tmp-doc-files-to-be-installed | while read tobeinstalledfiles
779do
780  if test -s $tobeinstalledfiles
781  then
782    tobeinstalleddocdir=`dirname $tobeinstalledfiles`
783    %{__install} -p -m 644 -t $EXAMPLESPATH/$tobeinstalleddocdir $tobeinstalledfiles
784  fi
785done
786rm -f tmp-doc-files-to-be-installed
787rm -f tmp-doc-directories
788%{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt
789
790ln -s ./%{tarname} ${RPM_BUILD_ROOT}/%{_includedir}/%{tarname}-%{lnkver}
791
792# remove unuse files
793rm -f ${RPM_BUILD_ROOT}/%{_libdir}/%{name}_*.a
794
795%clean
796rm -rf $RPM_BUILD_ROOT
797
798
799# MPI subpackages don't need the ldconfig magic.  They are hidden by
800# default, in MPI back-end-specific directory, and only show to the
801# user after the relevant environment module has been loaded.
802# rpmlint will report that as errors, but it is fine.
803
804%post atomic -p /sbin/ldconfig
805%post chrono -p /sbin/ldconfig
806%post container -p /sbin/ldconfig
807%if %{with context}
808%post context -p /sbin/ldconfig
809%post coroutine -p /sbin/ldconfig
810%endif
811%post date-time -p /sbin/ldconfig
812%post filesystem -p /sbin/ldconfig
813%post graph -p /sbin/ldconfig
814%post iostreams -p /sbin/ldconfig
815%post locale -p /sbin/ldconfig
816%post log -p /sbin/ldconfig
817%post math -p /sbin/ldconfig
818%post program-options -p /sbin/ldconfig
819%post python -p /sbin/ldconfig
820%post random -p /sbin/ldconfig
821%post regex -p /sbin/ldconfig
822%post serialization -p /sbin/ldconfig
823%post signals -p /sbin/ldconfig
824%post system -p /sbin/ldconfig
825%post test -p /sbin/ldconfig
826%post thread -p /sbin/ldconfig
827%post timer -p /sbin/ldconfig
828%post type_erasure -p /sbin/ldconfig
829%post wave -p /sbin/ldconfig
830
831%postun atomic -p /sbin/ldconfig
832%postun chrono -p /sbin/ldconfig
833%postun container -p /sbin/ldconfig
834%if %{with context}
835%postun context -p /sbin/ldconfig
836%postun coroutine -p /sbin/ldconfig
837%endif
838%postun date-time -p /sbin/ldconfig
839%postun filesystem -p /sbin/ldconfig
840%postun graph -p /sbin/ldconfig
841%postun iostreams -p /sbin/ldconfig
842%postun locale -p /sbin/ldconfig
843%postun log -p /sbin/ldconfig
844%postun math -p /sbin/ldconfig
845%postun program-options -p /sbin/ldconfig
846%postun python -p /sbin/ldconfig
847%postun random -p /sbin/ldconfig
848%postun regex -p /sbin/ldconfig
849%postun serialization -p /sbin/ldconfig
850%postun signals -p /sbin/ldconfig
851%postun system -p /sbin/ldconfig
852%postun test -p /sbin/ldconfig
853%postun thread -p /sbin/ldconfig
854%postun timer -p /sbin/ldconfig
855%postun type_erasure -p /sbin/ldconfig
856%postun wave -p /sbin/ldconfig
857
858%files
859%defattr(-,root,root)
860%doc LICENSE_1_0.txt
861
862%files atomic
863%defattr(-, root, root, -)
864%doc LICENSE_1_0.txt
865%{_libdir}/libboost_atomic.so.*
866
867%files chrono
868%defattr(-, root, root, -)
869%doc LICENSE_1_0.txt
870%{_libdir}/libboost_chrono.so.*
871
872%files container
873%license LICENSE_1_0.txt
874%{_libdir}/libboost_container.so.*
875
876%if %{with context}
877%files context
878%defattr(-, root, root, -)
879%doc LICENSE_1_0.txt
880%{_libdir}/libboost_context.so.*
881
882%files coroutine
883%license LICENSE_1_0.txt
884%{_libdir}/libboost_coroutine.so.*
885%endif
886
887%files date-time
888%doc LICENSE_1_0.txt
889%{_libdir}/%{name}_date_time*.so.*
890
891%files filesystem
892%doc LICENSE_1_0.txt
893%{_libdir}/%{name}_filesystem*.so.*
894
895%files graph
896%doc LICENSE_1_0.txt
897%{_libdir}/%{name}_graph*.so.*
898
899%files iostreams
900%doc LICENSE_1_0.txt
901%{_libdir}/%{name}_iostreams*.so.*
902
903%files locale
904%defattr(-, root, root, -)
905%doc LICENSE_1_0.txt
906%{_libdir}/libboost_locale.so.*
907
908%files log
909%defattr(-, root, root, -)
910%doc LICENSE_1_0.txt
911%{_libdir}/libboost_log.so.*
912%{_libdir}/libboost_log_setup.so.*
913
914%files math
915%doc LICENSE_1_0.txt
916%{_libdir}/%{name}_math_*.so.*
917
918%files program-options
919%doc LICENSE_1_0.txt
920%{_libdir}/%{name}_program_options*.so.*
921
922%files python
923%doc LICENSE_1_0.txt
924%{_libdir}/%{name}_python.so.*
925
926%if %{with python3}
927%files python3
928%license LICENSE_1_0.txt
929%{_libdir}/libboost_python3.so.*
930
931%files python3-devel
932%license LICENSE_1_0.txt
933%{_libdir}/libboost_python3.so
934%endif
935
936%files random
937%doc LICENSE_1_0.txt
938%{_libdir}/%{name}_random*.so.*
939
940%files regex
941%doc LICENSE_1_0.txt
942%{_libdir}/%{name}_regex*.so.*
943
944%files serialization
945%doc LICENSE_1_0.txt
946%{_libdir}/%{name}_serialization*.so.*
947%{_libdir}/%{name}_wserialization*.so.*
948
949%files signals
950%doc LICENSE_1_0.txt
951%{_libdir}/%{name}_signals*.so.*
952
953%files system
954%doc LICENSE_1_0.txt
955%{_libdir}/%{name}_system*.so.*
956
957%files test
958%doc LICENSE_1_0.txt
959%{_libdir}/%{name}_prg_exec_monitor*.so.*
960%{_libdir}/%{name}_unit_test_framework*.so.*
961
962%files thread
963%doc LICENSE_1_0.txt
964%{_libdir}/%{name}_thread*.so.*
965
966%files timer
967%defattr(-, root, root, -)
968%doc LICENSE_1_0.txt
969%{_libdir}/libboost_timer.so.*
970
971%files type_erasure
972%license LICENSE_1_0.txt
973%{_libdir}/libboost_type_erasure.so.*
974
975%files wave
976%doc LICENSE_1_0.txt
977%{_libdir}/%{name}_wave*.so.*
978
979%files devel
980%defattr(-,root,root)
981%{_includedir}/boost/
982%{_includedir}/boost-%{lnkver}
983%{_libdir}/%{name}_*.so
984
985%files doc
986%doc index.htm index.html boost.css boost.png rst.css doc libs more
987
988%files build
989%license LICENSE_1_0.txt
990%{_datadir}/boost-build
991
992%files doctools
993%license LICENSE_1_0.txt
994%{_bindir}/quickbook
995%{_datadir}/boostbook/
996
997%files jam
998%license LICENSE_1_0.txt
999%{_bindir}/bjam
1000%{_mandir}/man1/bjam.1*
1001
1002# OpenMPI packages
1003%if %{with openmpi}
1004
1005%files openmpi
1006%license LICENSE_1_0.txt
1007%{_libdir}/openmpi/lib/libboost_mpi.so.*
1008
1009%files openmpi-python
1010%license LICENSE_1_0.txt
1011%{_libdir}/openmpi/lib/libboost_mpi_python.so.*
1012%{_libdir}/openmpi/lib/mpi.so
1013
1014%files graph-openmpi
1015%license LICENSE_1_0.txt
1016%{_libdir}/openmpi/lib/libboost_graph_parallel.so.*
1017
1018%endif
1019
1020# MPICH packages
1021%if %{with mpich}
1022
1023%files mpich
1024%license LICENSE_1_0.txt
1025%{_libdir}/mpich/lib/libboost_mpi.so.*
1026
1027%files mpich-python
1028%license LICENSE_1_0.txt
1029%{_libdir}/mpich/lib/libboost_mpi_python.so.*
1030%{_libdir}/mpich/lib/mpi.so
1031
1032%files graph-mpich
1033%license LICENSE_1_0.txt
1034%{_libdir}/mpich/lib/libboost_graph_parallel.so.*
1035
1036%endif
1037
1038%changelog
1039* Tue Jun 28 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.60.0-2
1040- rebuild with python3-3.5.2
1041
1042* Mon Jun  6 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 1.60.0-1
1043- updated to boost_1_60_0.
1044- dropped all patches.
1045- imported patches from rawhide.
1046- moved *.so into libboost-devel.
1047
1048* Mon Nov 25 2013 IWAI, Masaharu <iwaim.sub@gmail.com> 1.54.0-1
1049- update to boost_1_54_0
1050- all package: including license file
1051- drop boost_filesystem patch (Patch0)
1052- sync Fedora boost-1.54.0-5.fc21
1053 - new packages: atomic, chrono, context, locale, log, timer
1054 - add patches
1055  - Patch4, 5, 9, 15, 18..28, 31..38, 42..55
1056
1057* Sun Feb 20 2011 Munehiro Yamamoto <munepi@vinelinux.org> 1.45.0-2
1058- fixed crashing throwing exception
1059  "std::runtime_error: locale::facet::_S_create_c_locale name not valid"
1060  on some systems (FreeBSD and some linuxes) when current locale
1061  (LANG,LC_ALL) is not "C"
1062
1063* Tue Jan 18 2011 Shu KONNO <owa@bg.wakwak.com> 1.45.0-1
1064- updated to boost_1_45_0
1065- added random sub-package
1066
1067* Wed Apr 14 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.42.0-4
1068- rebuilt again on ppc
1069
1070* Sat Apr 10 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.42.0-3
1071- rebuilt with libicu-4.4
1072
1073* Mon Feb 08 2010 Shu KONNO <owa@bg.wakwak.com> 1.42.0-2
1074- added "-licui18n" to bjam
1075- added BR: lam
1076
1077* Sun Feb 07 2010 Shu KONNO <owa@bg.wakwak.com> 1.42.0-1
1078- updated to boost_1_42_0
1079- rebuilt with new toolchain and python-2.6
1080- added user-config.jam to make libboost_mpi
1081- added BR: libaio-devel
1082- added %%{post,postun} -p /sbin/ldconfig
1083- dropt no use parameter EXPAT_INCLUDE and EXPAT_LIBPATH
1084- dropt %{_libdir}/%{name}_test_exec_monitor-*.a in %%files %{name}-test
1085- dropt %%{post,postun} devel section
1086
1087* Sun Mar 22 2009 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.36.0-2vl5
1088- rebuilt with libicu-4.0.1
1089- changed Group to System Environment/Libraries (except devel package)
1090
1091* Sat Aug 16 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.36.0-1vl5
1092- new upstream release
1093- add -math subpackage
1094
1095* Fri Aug 15 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.35.0-2vl5
1096- build with python-2.5
1097- add libboost_XXXX.so symlinks
1098
1099* Thu May 8 2008 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.35.0-1vl5
1100- upstream release
1101- applied new versioning policy
1102- add EXPAT_INCLUDE and EXPAT_LIBPATH to enable GraphML support
1103- add new package libboost-system
1104- Obsolete: *-devel packages
1105
1106* Sat Sep  8 2007 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.34.1-0vl3
1107- rebuilt with libicu-3.6
1108- changed doc Group to Applications/Documentation
1109
1110* Sat Aug 18 2007 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.34.1-0vl2
1111- upstream release
1112
1113* Thu Jun 14 2007 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.34.0-0vl3
1114- add --libdir=%%{_libdir} to cope with x86_64 environment
1115
1116* Sun Jun 10 2007 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.34.0-0vl2
1117- upstream release
1118- use Easy Build and Install process with ./configure
1119- add BuildRequires: libicu-devel
1120- remove %%{_libdir}/libboost_test_exec_monitor-*.so* from %%files -n libboost-test
1121- add new packages: libboost-graph, libboost-graph-devel, libboost-wave
1122- add files to doc package
1123
1124* Sun May 13 2007 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 1.33.1-0vl2
1125- rebuilt with new toolchain
1126
1127* Sat Feb 4 2006 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.1-0vl1
1128- upstream release
1129
1130* Mon Dec 12 2005 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.33.0-0vl3
1131- fixed typo in Groups:
1132- devel packages also moved to Development/Libraries group
1133
1134* Mon Sep 19 2005 MATSUBAYASHI Kohji <shaolin@vinelinux.org> 1.33.0-0vl2
1135- spec modified to avoid errors on non-ix86 archtecture
1136  (previously the path linuxx86 was explicitly used)
1137
1138* Sun Sep 11 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.0-0vl1
1139- initial release for Vine Linux
1140
1141* Sat Sep 10 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.0-0vl0.3
1142- link /usr/include/boost_%{lnkver}/boost to /usr/include/boost
1143
1144* Sat Sep 10 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.0-0vl0.2
1145- change package name from boost to libboost
1146- separated into sub-packages
1147
1148* Fri Jun 17 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.33.0-0vl0.1
1149- upstream release
1150- add BuildRequires: bzip2-devel zlib-devel
1151
1152* Fri Jun 17 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.7
1153- added so.* file
1154
1155* Mon Apr 25 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.6
1156- moved %post, %postun script to -devel package
1157
1158* Mon Apr 25 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.5
1159- moved doc/html to -devel package
1160- make a symbolic link on %{_includedir}/boost
1161
1162* Mon Apr 25 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.4
1163- fixed character code to euc-jp
1164
1165* Mon Apr 25 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.3
1166- add %doc files
1167
1168* Fri Apr 22 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.2
1169- remove Requires
1170- split -devel package
1171
1172* Fri Apr 22 2005 KANEKO Seiji <giraffe@m2.pbc.ne.jp> 1.32.0-0vl0.1
1173- initial build for Vine Linux
Note: See TracBrowser for help on using the repository browser.