3 # - think about building MPI.
4 # - split shared libs from core package into -iostreams/-serialization.
7 %bcond_without python # without boost-python support
9 %define fver %(echo %{version} | tr . _)
10 Summary: The Boost C++ Libraries
11 Summary(pl.UTF-8): Biblioteki C++ "Boost"
15 License: Boost Software License and others
17 Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2
18 # Source0-md5: 15cb8c0803064faef0c4ddf5bc5ca279
19 Patch0: %{name}-link.patch
20 Patch1: %{name}-stdint.patch
21 URL: http://www.boost.org/
22 BuildRequires: bzip2-devel
23 BuildRequires: expat-devel
24 BuildRequires: libicu-devel
25 BuildRequires: libstdc++-devel
26 BuildRequires: perl-base
27 %{?with_python:BuildRequires: python-devel >= 2.2}
28 BuildRequires: rpm-pythonprov
29 BuildRequires: zlib-devel
30 BuildConflicts: gcc = 5:3.3.1
31 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
34 The Boost web site provides free peer-reviewed portable C++ source
35 libraries. The emphasis is on libraries which work well with the C++
36 Standard Library. One goal is to establish "existing practice" and
37 provide reference implementations so that the Boost libraries are
38 suitable for eventual standardization. Some of the libraries have
39 already been proposed for inclusion in the C++ Standards Committee's
40 upcoming C++ Standard Library Technical Report.
42 %description -l pl.UTF-8
43 Strona http://www.boost.org/ dostarcza darmowe biblioteki C++ wraz z
44 kodem źródłowym. Nacisk położono na biblioteki, które dobrze
45 współpracują ze standardową biblioteką C++. Celem jest ustanowienie
46 "istniejącej praktyki" i dostarczenie implementacji, tak że biblioteki
47 "Boost" nadają się do ewentualnej standaryzacji. Niektóre z bibliotek
48 już zostały zgłoszone do komitetu standaryzacyjnego C++ w nadchodzącym
49 Raporcie Technicznym Biblioteki Standardowej C++.
52 Summary: Boost C++ development headers
53 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek C++ Boost
54 Group: Development/Libraries
55 Requires: %{name} = %{version}-%{release}
56 Requires: %{name}-chrono = %{version}-%{release}
57 Requires: %{name}-context = %{version}-%{release}
58 Requires: %{name}-date_time = %{version}-%{release}
59 Requires: %{name}-filesystem = %{version}-%{release}
60 Requires: %{name}-graph = %{version}-%{release}
61 Requires: %{name}-locale = %{version}-%{release}
62 Requires: %{name}-program_options = %{version}-%{release}
63 Requires: %{name}-regex = %{version}-%{release}
64 Requires: %{name}-signals = %{version}-%{release}
65 Requires: %{name}-system = %{version}-%{release}
66 Requires: %{name}-test = %{version}-%{release}
67 Requires: %{name}-thread = %{version}-%{release}
68 Requires: %{name}-timer = %{version}-%{release}
69 Requires: %{name}-wave = %{version}-%{release}
70 Requires: libstdc++-devel
71 Obsoletes: boost-any-devel
72 Obsoletes: boost-array-devel
74 Obsoletes: boost-bind-devel
75 Obsoletes: boost-call_traits-devel
76 Obsoletes: boost-compatibility-devel
77 Obsoletes: boost-compose-devel
78 Obsoletes: boost-compressed_pair-devel
79 Obsoletes: boost-concept_check-devel
80 Obsoletes: boost-conversion-devel
81 Obsoletes: boost-crc-devel
82 Obsoletes: boost-date_time-devel
83 Obsoletes: boost-filesystem-devel
84 Obsoletes: boost-graph-devel
85 Obsoletes: boost-mem_fn-devel
86 Obsoletes: boost-mpl-devel
87 Obsoletes: boost-preprocessor-devel
88 Obsoletes: boost-program_options-devel
89 Obsoletes: boost-ref-devel
90 Obsoletes: boost-regex-devel
91 Obsoletes: boost-signals-devel
92 Obsoletes: boost-spirit-devel
93 Obsoletes: boost-statechart-devel
94 Obsoletes: boost-static_assert-devel
95 Obsoletes: boost-test-devel
96 Obsoletes: boost-thread-devel
97 Obsoletes: boost-tr1-devel
98 Obsoletes: boost-type_traits-devel
99 Obsoletes: boost-typeof-devel
100 Obsoletes: boost-uBLAS-devel
101 Obsoletes: boost-utility-devel
102 Obsoletes: boost-wave-devel
103 Obsoletes: boost-xpressive-devel
106 Header files for the Boost C++ libraries.
108 %description devel -l pl.UTF-8
109 Pliki nagłówkowe bibliotek C++ Boost.
112 Summary: Static version of base Boost C++ libraries
113 Summary(pl.UTF-8): Statyczne wersje podstawowych bibliotek C++ Boost
114 Group: Development/Libraries
115 Requires: %{name}-devel = %{version}-%{release}
116 Obsoletes: boost-static < 1.33
119 Static version of base Boost C++ libraries.
121 %description static -l pl.UTF-8
122 Statyczne wersje podstawowych bibliotek C++ Boost.
125 Summary: Boost.Python library
126 Summary(pl.UTF-8): biblioteka Boost.Python
128 %pyrequires_eq python
131 Use the Boost Python Library to quickly and easily export a C++
132 library to Python such that the Python interface is very similar to
133 the C++ interface. It is designed to be minimally intrusive on your
134 C++ design. In most cases, you should not have to alter your C++
135 classes in any way in order to use them with Boost.Python. The system
136 should simply ``reflect'' your C++ classes and functions into Python.
138 %description python -l pl.UTF-8
139 Biblioteka Boost Python służy do szybkiego i prostego eksportu
140 biblioteki C++ do Pythona, tak że interfejs Pythona jest bardzo
141 podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby
142 narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W
143 większości przypadków nie trzeba w ogóle zmieniać własnych klas C++,
144 żeby używać ich z Boost.Python. System powinien po prostu ,,odbić''
145 klasy C++ i funkcje do Pythona.
147 %package python-devel
148 Summary: Boost.Python development headers
149 Summary(pl.UTF-8): Pliki nagłówkowe dla Boost.Python
150 Group: Development/Libraries
151 Requires: %{name}-devel = %{version}-%{release}
152 Requires: %{name}-python = %{version}-%{release}
154 %description python-devel
155 Headers for the Boost.Python library.
157 %description python-devel -l pl.UTF-8
158 Pliki nagłówkowe dla biblioteki Boost.Python.
160 %package python-static
161 Summary: Static version of Boost.Python library
162 Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python
163 Group: Development/Libraries
164 Requires: %{name}-python-devel = %{version}-%{release}
166 %description python-static
167 Static version of Boost.Python library.
169 %description python-static -l pl.UTF-8
170 Statyczna wersja biblioteki Boost.Python.
173 Summary: Useful time utilities
174 Summary(pl.UTF-8): Przydatne funkcje związane z czasem
176 Obsoletes: boost < 1.33
179 Useful time utilities.
181 %description chrono -l pl.UTF-8
182 Przydatne funkcje związane z czasem.
185 Summary: Boost.Context - context switching library
186 Summary(pl.UTF-8): Boost.Context - biblioteka do zmiany kontekstu
190 Boost.Context - context switching library, providing a sort of
191 cooperative multitasking on a single thread.
193 %description context -l pl.UTF-8
194 Boost.Context - biblioteka do zmiany kontekstu, zapewniająca pewną
195 wielozadaniowość kooperatywnąw ramach pojedynczego wątku.
198 Summary: Date-Time library
199 Summary(pl.UTF-8): Biblioteka daty-czasu
201 Obsoletes: boost < 1.33
203 %description date_time
204 A set of date-time libraries.
206 %description date_time -l pl.UTF-8
207 Zbiór bibliotek daty-czasu.
210 Summary: Portable paths, iteration over directories, and other useful filesystem operations
211 Summary(pl.UTF-8): Przenośne ścieżki, iteracje katalogów i inne użyteczne operacje na systemie plików
213 Requires: %{name}-system = %{version}-%{release}
214 Obsoletes: boost < 1.33
216 %description filesystem
217 The boost::filesystem library provides portable facilities to query
218 and manipulate paths, files, and directories.
220 %description filesystem -l pl.UTF-8
221 Przenośna biblioteka boost::filesystem dostarcza ułatwienia w
222 operacjach na ścieżkach, plikach i katalogach.
225 Summary: General purpose, generic C++ library for graph data structures and graph algorithms
226 Summary(pl.UTF-8): Biblioteka ogólnego przeznaczenia w C++ dla struktur danych typu grafy oraz algorytmów związanych z grafami
230 The boost::graph library provides portable facilities to operate on
231 graph data structures using graph algorithms.
233 %description graph -l pl.UTF-8
234 Przenośna biblioteka boost::graph dostarcza ułatwienia w operacjach na
235 strukturach danych typu graf za pomocą algorytmów związanych z
239 Summary: Provide localization and Unicode handling tools for C++
240 Summary(pl.UTF-8): Narzędzia do obsługi lokalizacji i Unikodu w C++
244 Provide localization and Unicode handling tools for C++.
246 %description locale -l pl.UTF-8
247 Narzędzia do obsługi lokalizacji i Unikodu w C++.
250 Summary: Provide logging tools for C++
251 Summary(pl.UTF-8): Narzędzia do logowania w C++
255 Provide logging tools for C++.
257 %description log -l pl.UTF-8
258 Narzędzia do logowania w C++.
260 %package program_options
261 Summary: Access to program options, via conventional methods such as command line and config file
262 Summary(pl.UTF-8): Dostęp do opcji programu za pomocą typowych metod, jak linia poleceń i plik konfiguracyjny
265 %description program_options
266 The program_options library allows program developers to obtain
267 program options, that is (name, value) pairs from the user, via
268 conventional methods such as command line and config file.
270 %description program_options -l pl.UTF-8
271 Biblioteka program_options umożliwia uzyskanie od użytkownika opcji
272 programu, czyli par (nazwa, wartość), za pomocą typowych metod, takich
273 jak linia poleceń, czy plik konfiguracyjny.
276 Summary: Boost C++ regular expressions library
277 Summary(pl.UTF-8): Biblioteka wyrażeń regularnych Boost C++
281 Shared library for Boost C++ regular expressions.
283 %description regex -l pl.UTF-8
284 Biblioteka współdzielona do obsługi wyrażeń regularnych w C++.
287 Summary: Signals & slots callback implementation
288 Summary(pl.UTF-8): Implementacja sygnałów i slotów
290 Obsoletes: boost < 1.33
293 The boost::signals library is an implementation of a signals and slots
296 %description signals -l pl.UTF-8
297 Biblioteka boost::signals jest implementacją systemu sygnałów i
301 Summary: Support for getting system specific error codes
302 Summary(pl.UTF-8): Wsparcie dla pobierania specyficznych dla systemu kodów błędów
306 The Boost System library provides simple, light-weight error_code
307 objects that encapsulate system-specific error code values, yet also
308 provide access to more abstract and portable error conditions objects.
310 %description system -l pl.UTF-8
311 Biblioteka Boost System udostępnia proste, lekkie obiekty error_code
312 obudowujące wartości kodów błędów specyficznych dla systemu, dając
313 jednocześnie dostęp do bardziej abstrakcyjnych i przenośnych obiektów
317 Summary: Support for program testing and execution monitoring
318 Summary(pl.UTF-8): Wsparcie dla testowania i monitorowania programu
320 Obsoletes: boost < 1.33
323 Support for simple program testing, full unit testing, and for program
324 execution monitoring.
326 %description test -l pl.UTF-8
327 Wsparcie dla prostego testowania programu, pełnego testowania i
328 monitorowania wykonania programu.
331 Summary: Portable C++ threads library
332 Summary(pl.UTF-8): Przenośna biblioteka wątków C++
334 Obsoletes: boost < 1.33
337 Portable C++ threads library - shared library.
339 %description thread -l pl.UTF-8
340 Przenośna biblioteka wątków dla C++ - biblioteka dzielona.
343 Summary: Event timer, progress timer, and progress display classes
344 Summary(pl.UTF-8): Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu
346 Obsoletes: boost < 1.33
349 Event timer, progress timer, and progress display classes.
351 %description timer -l pl.UTF-8
352 Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu.
355 Summary: Boost.Wave - a standard compliant C++ preprocessor library
356 Summary(pl.UTF-8): Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
357 Group: Development/Libraries
360 Boost.Wave - a standard compliant C++ preprocessor library.
362 %description wave -l pl.UTF-8
363 Boost.Wave - zgodna ze standardem biblioteka preprocesora C++.
366 Summary: Boost C++ Library documentation
367 Summary(pl.UTF-8): Dokumentacja dla biblioteki Boost C++
369 Requires: %{name}-devel = %{version}-%{release}
372 Documentation for the Boost C++ Library.
374 %description doc -l pl.UTF-8
375 Dokumentacja dla biblioteki Boost C++.
378 %setup -q -n %{name}_%{fver}
382 # - don't know how to pass it through (b)jam -s (no way?)
383 # due to oversophisticated build flags system.
384 # - pass -fPIC due to <shared-linkable> removal.
385 %{__sed} -i "s/<optimization>speed : -O3/<optimization>speed : ${CXXFLAGS:-%rpmcxxflags} -fPIC/" tools/build/v2/tools/gcc.jam
387 # cleanup -g switch to avoid override debuginfocflags.
388 %{__sed} -i 's/<debug-symbols>on : -g/<debug-symbols>on :/' tools/build/v2/tools/gcc.jam
389 # link against shared expat library.
390 %{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2
392 cat << EOF > tools/build/v2/user-config.jam
393 using gcc : %(%{__cxx} -dumpversion) : %{__cxx} ;
398 PYTHON_VERSION=$(%{__python} -c 'import sys; print sys.version[0:3]')
399 PYTHON_ROOT=%{_prefix}
404 EXPAT_INCLUDE=%{_includedir} \
405 EXPAT_LIBPATH=%{_libdir} \
406 ICU_PATH=%{_prefix} \
407 ./bootstrap.sh --prefix=%{_prefix}
410 variant=release debug-symbols=on inlining=on link=static,shared threading=multi
413 rm -rf $RPM_BUILD_ROOT
414 install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
416 cp -rf boost $RPM_BUILD_ROOT%{_includedir}
418 install -p stage/lib/lib*.a $RPM_BUILD_ROOT%{_libdir}
419 install -p stage/lib/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
420 cp -a stage/lib/lib*.so $RPM_BUILD_ROOT%{_libdir}
423 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
425 # as the documentation doesn't completely reside in a directory of its
426 # own, we need to find out ourselves... this looks for HTML files and
427 # then collects everything linked from those. this is certainly quite
428 # unoptimized wrt mkdir calls, but does it really matter?
430 for i in $(find -type f -name '*.htm*'); do
431 # bjam docu is included in the boost-jam RPM
432 if test "`echo $i | sed 's,jam_src,,'`" = "$i"; then
433 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/${i%/*}
434 for LINKED in `%{__perl} - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
438 # rewrite links from boost/* to %{_includedir}/boost/* and
439 # ignore external links as well as document-internal ones.
440 # HTML files are also ignored as they get installed anyway.
441 if (!($link =~ s,^(?:../)*boost/,%{_includedir}/boost/,) && !($link =~ m,(?:^[^/]+:|^\#|\.html?(?:$|\#)),))
443 (my $file = $link) =~ s/\#.*//;
449 open OUT, ">@ARGV[1]";
453 $in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e;
454 s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig;
456 $in_link = /href|src=\s*$/;
459 TARGET=${i%/*}/$LINKED
460 # ignore non-existant linked files
461 if test -f $TARGET; then
462 install -D -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET
470 rm -rf $RPM_BUILD_ROOT
472 %post -p /sbin/ldconfig
473 %postun -p /sbin/ldconfig
475 %post chrono -p /sbin/ldconfig
476 %postun chrono -p /sbin/ldconfig
478 %post context -p /sbin/ldconfig
479 %postun context -p /sbin/ldconfig
481 %post date_time -p /sbin/ldconfig
482 %postun date_time -p /sbin/ldconfig
484 %post filesystem -p /sbin/ldconfig
485 %postun filesystem -p /sbin/ldconfig
487 %post graph -p /sbin/ldconfig
488 %postun graph -p /sbin/ldconfig
490 %post locale -p /sbin/ldconfig
491 %postun locale -p /sbin/ldconfig
493 %post python -p /sbin/ldconfig
494 %postun python -p /sbin/ldconfig
496 %post program_options -p /sbin/ldconfig
497 %postun program_options -p /sbin/ldconfig
499 %post regex -p /sbin/ldconfig
500 %postun regex -p /sbin/ldconfig
502 %post signals -p /sbin/ldconfig
503 %postun signals -p /sbin/ldconfig
505 %post system -p /sbin/ldconfig
506 %postun system -p /sbin/ldconfig
508 %post test -p /sbin/ldconfig
509 %postun test -p /sbin/ldconfig
511 %post thread -p /sbin/ldconfig
512 %postun thread -p /sbin/ldconfig
514 %post timer -p /sbin/ldconfig
515 %postun timer -p /sbin/ldconfig
517 %post wave -p /sbin/ldconfig
518 %postun wave -p /sbin/ldconfig
521 %defattr(644,root,root,755)
522 %attr(755,root,root) %{_libdir}/libboost_atomic.so.*.*.*
523 %attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.*
524 %attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.*
525 %attr(755,root,root) %{_libdir}/libboost_random.so.*.*.*
526 %attr(755,root,root) %{_libdir}/libboost_serialization.so.*.*.*
527 %attr(755,root,root) %{_libdir}/libboost_wserialization.so.*.*.*
530 %defattr(644,root,root,755)
531 %attr(755,root,root) %{_libdir}/libboost_atomic.so
532 %attr(755,root,root) %{_libdir}/libboost_chrono.so
533 %attr(755,root,root) %{_libdir}/libboost_context.so
534 %attr(755,root,root) %{_libdir}/libboost_date_time.so
535 %attr(755,root,root) %{_libdir}/libboost_filesystem.so
536 %attr(755,root,root) %{_libdir}/libboost_graph.so
537 %attr(755,root,root) %{_libdir}/libboost_iostreams.so
538 %attr(755,root,root) %{_libdir}/libboost_locale.so
539 %attr(755,root,root) %{_libdir}/libboost_log.so
540 %attr(755,root,root) %{_libdir}/libboost_log_setup.so
541 %attr(755,root,root) %{_libdir}/libboost_math_*.so
542 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so
543 %attr(755,root,root) %{_libdir}/libboost_program_options.so
544 %attr(755,root,root) %{_libdir}/libboost_regex.so
545 %attr(755,root,root) %{_libdir}/libboost_random.so
546 %attr(755,root,root) %{_libdir}/libboost_serialization.so
547 %attr(755,root,root) %{_libdir}/libboost_signals.so
548 %attr(755,root,root) %{_libdir}/libboost_system.so
549 %attr(755,root,root) %{_libdir}/libboost_thread.so
550 %attr(755,root,root) %{_libdir}/libboost_timer.so
551 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so
552 %attr(755,root,root) %{_libdir}/libboost_wave.so
553 %attr(755,root,root) %{_libdir}/libboost_wserialization.so
555 %exclude %{_includedir}/boost/python
556 %exclude %{_includedir}/boost/python.hpp
559 %defattr(644,root,root,755)
560 %{_libdir}/libboost_atomic.a
561 %{_libdir}/libboost_chrono.a
562 %{_libdir}/libboost_context.a
563 %{_libdir}/libboost_coroutine.a
564 %{_libdir}/libboost_date_time.a
565 %{_libdir}/libboost_exception.a
566 %{_libdir}/libboost_filesystem.a
567 %{_libdir}/libboost_graph.a
568 %{_libdir}/libboost_iostreams.a
569 %{_libdir}/libboost_locale.a
570 %{_libdir}/libboost_log.a
571 %{_libdir}/libboost_log_setup.a
572 %{_libdir}/libboost_math_*.a
573 %{_libdir}/libboost_prg_exec_monitor.a
574 %{_libdir}/libboost_program_options.a
575 %{_libdir}/libboost_random.a
576 %{_libdir}/libboost_regex.a
577 %{_libdir}/libboost_serialization.a
578 %{_libdir}/libboost_signals.a
579 %{_libdir}/libboost_system.a
580 %{_libdir}/libboost_test_exec_monitor.a
581 %{_libdir}/libboost_timer.a
582 %{_libdir}/libboost_thread.a
583 %{_libdir}/libboost_unit_test_framework.a
584 %{_libdir}/libboost_wave.a
585 %{_libdir}/libboost_wserialization.a
589 %defattr(644,root,root,755)
590 %attr(755,root,root) %{_libdir}/libboost_python.so.*.*.*
593 %defattr(644,root,root,755)
594 %attr(755,root,root) %{_libdir}/libboost_python.so
595 %{_includedir}/boost/python
596 %{_includedir}/boost/python.hpp
599 %defattr(644,root,root,755)
600 %{_libdir}/libboost_python.a
604 %defattr(644,root,root,755)
605 %attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.*
608 %defattr(644,root,root,755)
609 %attr(755,root,root) %{_libdir}/libboost_context.so.*.*.*
612 %defattr(644,root,root,755)
613 %attr(755,root,root) %{_libdir}/libboost_date_time.so.*.*.*
616 %defattr(644,root,root,755)
617 %attr(755,root,root) %{_libdir}/libboost_filesystem.so.*.*.*
620 %defattr(644,root,root,755)
621 %attr(755,root,root) %{_libdir}/libboost_graph.so.*.*.*
624 %defattr(644,root,root,755)
625 %attr(755,root,root) %{_libdir}/libboost_locale.so.*.*.*
628 %defattr(644,root,root,755)
629 %attr(755,root,root) %{_libdir}/libboost_log.so.*.*.*
630 %attr(755,root,root) %{_libdir}/libboost_log_setup.so.*.*.*
632 %files program_options
633 %defattr(644,root,root,755)
634 %attr(755,root,root) %{_libdir}/libboost_program_options.so.*.*.*
637 %defattr(644,root,root,755)
638 %attr(755,root,root) %{_libdir}/libboost_regex.so.*.*.*
641 %defattr(644,root,root,755)
642 %attr(755,root,root) %{_libdir}/libboost_signals.so.*.*.*
645 %defattr(644,root,root,755)
646 %attr(755,root,root) %{_libdir}/libboost_system.so.*.*.*
649 %defattr(644,root,root,755)
650 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so.*.*.*
651 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so.*.*.*
654 %defattr(644,root,root,755)
655 %attr(755,root,root) %{_libdir}/libboost_thread.so.*.*.*
658 %defattr(644,root,root,755)
659 %attr(755,root,root) %{_libdir}/libboost_timer.so.*.*.*
662 %defattr(644,root,root,755)
663 %attr(755,root,root) %{_libdir}/libboost_wave.so.*.*.*
666 %defattr(644,root,root,755)
667 %{_docdir}/%{name}-%{version}