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 URL: http://www.boost.org/
21 BuildRequires: bzip2-devel
22 BuildRequires: expat-devel
23 BuildRequires: libicu-devel
24 BuildRequires: libstdc++-devel
25 BuildRequires: perl-base
26 %{?with_python:BuildRequires: python-devel >= 2.2}
27 BuildRequires: rpm-pythonprov
28 BuildRequires: zlib-devel
29 BuildConflicts: gcc = 5:3.3.1
30 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
33 The Boost web site provides free peer-reviewed portable C++ source
34 libraries. The emphasis is on libraries which work well with the C++
35 Standard Library. One goal is to establish "existing practice" and
36 provide reference implementations so that the Boost libraries are
37 suitable for eventual standardization. Some of the libraries have
38 already been proposed for inclusion in the C++ Standards Committee's
39 upcoming C++ Standard Library Technical Report.
41 %description -l pl.UTF-8
42 Strona http://www.boost.org/ dostarcza darmowe biblioteki C++ wraz z
43 kodem źródłowym. Nacisk położono na biblioteki, które dobrze
44 współpracują ze standardową biblioteką C++. Celem jest ustanowienie
45 "istniejącej praktyki" i dostarczenie implementacji, tak że biblioteki
46 "Boost" nadają się do ewentualnej standaryzacji. Niektóre z bibliotek
47 już zostały zgłoszone do komitetu standaryzacyjnego C++ w nadchodzącym
48 Raporcie Technicznym Biblioteki Standardowej C++.
51 Summary: Boost C++ development headers
52 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek C++ Boost
53 Group: Development/Libraries
54 Requires: %{name} = %{version}-%{release}
55 Requires: %{name}-chrono = %{version}-%{release}
56 Requires: %{name}-context = %{version}-%{release}
57 Requires: %{name}-date_time = %{version}-%{release}
58 Requires: %{name}-filesystem = %{version}-%{release}
59 Requires: %{name}-graph = %{version}-%{release}
60 Requires: %{name}-locale = %{version}-%{release}
61 Requires: %{name}-program_options = %{version}-%{release}
62 Requires: %{name}-regex = %{version}-%{release}
63 Requires: %{name}-signals = %{version}-%{release}
64 Requires: %{name}-system = %{version}-%{release}
65 Requires: %{name}-test = %{version}-%{release}
66 Requires: %{name}-thread = %{version}-%{release}
67 Requires: %{name}-timer = %{version}-%{release}
68 Requires: %{name}-wave = %{version}-%{release}
69 Requires: libstdc++-devel
70 Obsoletes: boost-any-devel
71 Obsoletes: boost-array-devel
73 Obsoletes: boost-bind-devel
74 Obsoletes: boost-call_traits-devel
75 Obsoletes: boost-compatibility-devel
76 Obsoletes: boost-compose-devel
77 Obsoletes: boost-compressed_pair-devel
78 Obsoletes: boost-concept_check-devel
79 Obsoletes: boost-conversion-devel
80 Obsoletes: boost-crc-devel
81 Obsoletes: boost-date_time-devel
82 Obsoletes: boost-filesystem-devel
83 Obsoletes: boost-graph-devel
84 Obsoletes: boost-mem_fn-devel
85 Obsoletes: boost-mpl-devel
86 Obsoletes: boost-preprocessor-devel
87 Obsoletes: boost-program_options-devel
88 Obsoletes: boost-ref-devel
89 Obsoletes: boost-regex-devel
90 Obsoletes: boost-signals-devel
91 Obsoletes: boost-spirit-devel
92 Obsoletes: boost-statechart-devel
93 Obsoletes: boost-static_assert-devel
94 Obsoletes: boost-test-devel
95 Obsoletes: boost-thread-devel
96 Obsoletes: boost-tr1-devel
97 Obsoletes: boost-type_traits-devel
98 Obsoletes: boost-typeof-devel
99 Obsoletes: boost-uBLAS-devel
100 Obsoletes: boost-utility-devel
101 Obsoletes: boost-wave-devel
102 Obsoletes: boost-xpressive-devel
105 Header files for the Boost C++ libraries.
107 %description devel -l pl.UTF-8
108 Pliki nagłówkowe bibliotek C++ Boost.
111 Summary: Static version of base Boost C++ libraries
112 Summary(pl.UTF-8): Statyczne wersje podstawowych bibliotek C++ Boost
113 Group: Development/Libraries
114 Requires: %{name}-devel = %{version}-%{release}
115 Obsoletes: boost-static < 1.33
118 Static version of base Boost C++ libraries.
120 %description static -l pl.UTF-8
121 Statyczne wersje podstawowych bibliotek C++ Boost.
124 Summary: Boost.Python library
125 Summary(pl.UTF-8): biblioteka Boost.Python
127 %pyrequires_eq python
130 Use the Boost Python Library to quickly and easily export a C++
131 library to Python such that the Python interface is very similar to
132 the C++ interface. It is designed to be minimally intrusive on your
133 C++ design. In most cases, you should not have to alter your C++
134 classes in any way in order to use them with Boost.Python. The system
135 should simply ``reflect'' your C++ classes and functions into Python.
137 %description python -l pl.UTF-8
138 Biblioteka Boost Python służy do szybkiego i prostego eksportu
139 biblioteki C++ do Pythona, tak że interfejs Pythona jest bardzo
140 podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby
141 narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W
142 większości przypadków nie trzeba w ogóle zmieniać własnych klas C++,
143 żeby używać ich z Boost.Python. System powinien po prostu ,,odbić''
144 klasy C++ i funkcje do Pythona.
146 %package python-devel
147 Summary: Boost.Python development headers
148 Summary(pl.UTF-8): Pliki nagłówkowe dla Boost.Python
149 Group: Development/Libraries
150 Requires: %{name}-devel = %{version}-%{release}
151 Requires: %{name}-python = %{version}-%{release}
153 %description python-devel
154 Headers for the Boost.Python library.
156 %description python-devel -l pl.UTF-8
157 Pliki nagłówkowe dla biblioteki Boost.Python.
159 %package python-static
160 Summary: Static version of Boost.Python library
161 Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python
162 Group: Development/Libraries
163 Requires: %{name}-python-devel = %{version}-%{release}
165 %description python-static
166 Static version of Boost.Python library.
168 %description python-static -l pl.UTF-8
169 Statyczna wersja biblioteki Boost.Python.
172 Summary: Useful time utilities
173 Summary(pl.UTF-8): Przydatne funkcje związane z czasem
175 Obsoletes: boost < 1.33
178 Useful time utilities.
180 %description chrono -l pl.UTF-8
181 Przydatne funkcje związane z czasem.
184 Summary: Boost.Context - context switching library
185 Summary(pl.UTF-8): Boost.Context - biblioteka do zmiany kontekstu
189 Boost.Context - context switching library, providing a sort of
190 cooperative multitasking on a single thread.
192 %description context -l pl.UTF-8
193 Boost.Context - biblioteka do zmiany kontekstu, zapewniająca pewną
194 wielozadaniowość kooperatywnąw ramach pojedynczego wątku.
197 Summary: Date-Time library
198 Summary(pl.UTF-8): Biblioteka daty-czasu
200 Obsoletes: boost < 1.33
202 %description date_time
203 A set of date-time libraries.
205 %description date_time -l pl.UTF-8
206 Zbiór bibliotek daty-czasu.
209 Summary: Portable paths, iteration over directories, and other useful filesystem operations
210 Summary(pl.UTF-8): Przenośne ścieżki, iteracje katalogów i inne użyteczne operacje na systemie plików
212 Requires: %{name}-system = %{version}-%{release}
213 Obsoletes: boost < 1.33
215 %description filesystem
216 The boost::filesystem library provides portable facilities to query
217 and manipulate paths, files, and directories.
219 %description filesystem -l pl.UTF-8
220 Przenośna biblioteka boost::filesystem dostarcza ułatwienia w
221 operacjach na ścieżkach, plikach i katalogach.
224 Summary: General purpose, generic C++ library for graph data structures and graph algorithms
225 Summary(pl.UTF-8): Biblioteka ogólnego przeznaczenia w C++ dla struktur danych typu grafy oraz algorytmów związanych z grafami
229 The boost::graph library provides portable facilities to operate on
230 graph data structures using graph algorithms.
232 %description graph -l pl.UTF-8
233 Przenośna biblioteka boost::graph dostarcza ułatwienia w operacjach na
234 strukturach danych typu graf za pomocą algorytmów związanych z
238 Summary: Provide localization and Unicode handling tools for C++
239 Summary(pl.UTF-8): Narzędzia do obsługi lokalizacji i Unikodu w C++
243 Provide localization and Unicode handling tools for C++.
245 %description locale -l pl.UTF-8
246 Narzędzia do obsługi lokalizacji i Unikodu w C++.
249 Summary: Provide logging tools for C++
250 Summary(pl.UTF-8): Narzędzia do logowania w C++
254 Provide logging tools for C++.
256 %description log -l pl.UTF-8
257 Narzędzia do logowania w C++.
259 %package program_options
260 Summary: Access to program options, via conventional methods such as command line and config file
261 Summary(pl.UTF-8): Dostęp do opcji programu za pomocą typowych metod, jak linia poleceń i plik konfiguracyjny
264 %description program_options
265 The program_options library allows program developers to obtain
266 program options, that is (name, value) pairs from the user, via
267 conventional methods such as command line and config file.
269 %description program_options -l pl.UTF-8
270 Biblioteka program_options umożliwia uzyskanie od użytkownika opcji
271 programu, czyli par (nazwa, wartość), za pomocą typowych metod, takich
272 jak linia poleceń, czy plik konfiguracyjny.
275 Summary: Boost C++ regular expressions library
276 Summary(pl.UTF-8): Biblioteka wyrażeń regularnych Boost C++
280 Shared library for Boost C++ regular expressions.
282 %description regex -l pl.UTF-8
283 Biblioteka współdzielona do obsługi wyrażeń regularnych w C++.
286 Summary: Signals & slots callback implementation
287 Summary(pl.UTF-8): Implementacja sygnałów i slotów
289 Obsoletes: boost < 1.33
292 The boost::signals library is an implementation of a signals and slots
295 %description signals -l pl.UTF-8
296 Biblioteka boost::signals jest implementacją systemu sygnałów i
300 Summary: Support for getting system specific error codes
301 Summary(pl.UTF-8): Wsparcie dla pobierania specyficznych dla systemu kodów błędów
305 The Boost System library provides simple, light-weight error_code
306 objects that encapsulate system-specific error code values, yet also
307 provide access to more abstract and portable error conditions objects.
309 %description system -l pl.UTF-8
310 Biblioteka Boost System udostępnia proste, lekkie obiekty error_code
311 obudowujące wartości kodów błędów specyficznych dla systemu, dając
312 jednocześnie dostęp do bardziej abstrakcyjnych i przenośnych obiektów
316 Summary: Support for program testing and execution monitoring
317 Summary(pl.UTF-8): Wsparcie dla testowania i monitorowania programu
319 Obsoletes: boost < 1.33
322 Support for simple program testing, full unit testing, and for program
323 execution monitoring.
325 %description test -l pl.UTF-8
326 Wsparcie dla prostego testowania programu, pełnego testowania i
327 monitorowania wykonania programu.
330 Summary: Portable C++ threads library
331 Summary(pl.UTF-8): Przenośna biblioteka wątków C++
333 Obsoletes: boost < 1.33
336 Portable C++ threads library - shared library.
338 %description thread -l pl.UTF-8
339 Przenośna biblioteka wątków dla C++ - biblioteka dzielona.
342 Summary: Event timer, progress timer, and progress display classes
343 Summary(pl.UTF-8): Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu
345 Obsoletes: boost < 1.33
348 Event timer, progress timer, and progress display classes.
350 %description timer -l pl.UTF-8
351 Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu.
354 Summary: Boost.Wave - a standard compliant C++ preprocessor library
355 Summary(pl.UTF-8): Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
356 Group: Development/Libraries
359 Boost.Wave - a standard compliant C++ preprocessor library.
361 %description wave -l pl.UTF-8
362 Boost.Wave - zgodna ze standardem biblioteka preprocesora C++.
365 Summary: Boost C++ Library documentation
366 Summary(pl.UTF-8): Dokumentacja dla biblioteki Boost C++
368 Requires: %{name}-devel = %{version}-%{release}
371 Documentation for the Boost C++ Library.
373 %description doc -l pl.UTF-8
374 Dokumentacja dla biblioteki Boost C++.
377 %setup -q -n %{name}_%{fver}
380 # - don't know how to pass it through (b)jam -s (no way?)
381 # due to oversophisticated build flags system.
382 # - pass -fPIC due to <shared-linkable> removal.
383 %{__sed} -i "s/<optimization>speed : -O3/<optimization>speed : ${CXXFLAGS:-%rpmcxxflags} -fPIC/" tools/build/v2/tools/gcc.jam
385 # cleanup -g switch to avoid override debuginfocflags.
386 %{__sed} -i 's/<debug-symbols>on : -g/<debug-symbols>on :/' tools/build/v2/tools/gcc.jam
387 # link against shared expat library.
388 %{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2
390 cat << EOF > tools/build/v2/user-config.jam
391 using gcc : %(%{__cxx} -dumpversion) : %{__cxx} ;
396 PYTHON_VERSION=$(%{__python} -c 'import sys; print sys.version[0:3]')
397 PYTHON_ROOT=%{_prefix}
402 EXPAT_INCLUDE=%{_includedir} \
403 EXPAT_LIBPATH=%{_libdir} \
404 ICU_PATH=%{_prefix} \
405 ./bootstrap.sh --prefix=%{_prefix}
408 variant=release debug-symbols=on inlining=on link=static,shared threading=multi
411 rm -rf $RPM_BUILD_ROOT
412 install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
414 cp -rf boost $RPM_BUILD_ROOT%{_includedir}
416 install -p stage/lib/lib*.a $RPM_BUILD_ROOT%{_libdir}
417 install -p stage/lib/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
418 cp -a stage/lib/lib*.so $RPM_BUILD_ROOT%{_libdir}
421 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
423 # as the documentation doesn't completely reside in a directory of its
424 # own, we need to find out ourselves... this looks for HTML files and
425 # then collects everything linked from those. this is certainly quite
426 # unoptimized wrt mkdir calls, but does it really matter?
428 for i in $(find -type f -name '*.htm*'); do
429 # bjam docu is included in the boost-jam RPM
430 if test "`echo $i | sed 's,jam_src,,'`" = "$i"; then
431 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/${i%/*}
432 for LINKED in `%{__perl} - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
436 # rewrite links from boost/* to %{_includedir}/boost/* and
437 # ignore external links as well as document-internal ones.
438 # HTML files are also ignored as they get installed anyway.
439 if (!($link =~ s,^(?:../)*boost/,%{_includedir}/boost/,) && !($link =~ m,(?:^[^/]+:|^\#|\.html?(?:$|\#)),))
441 (my $file = $link) =~ s/\#.*//;
447 open OUT, ">@ARGV[1]";
451 $in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e;
452 s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig;
454 $in_link = /href|src=\s*$/;
457 TARGET=${i%/*}/$LINKED
458 # ignore non-existant linked files
459 if test -f $TARGET; then
460 install -D -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET
468 rm -rf $RPM_BUILD_ROOT
470 %post -p /sbin/ldconfig
471 %postun -p /sbin/ldconfig
473 %post chrono -p /sbin/ldconfig
474 %postun chrono -p /sbin/ldconfig
476 %post context -p /sbin/ldconfig
477 %postun context -p /sbin/ldconfig
479 %post date_time -p /sbin/ldconfig
480 %postun date_time -p /sbin/ldconfig
482 %post filesystem -p /sbin/ldconfig
483 %postun filesystem -p /sbin/ldconfig
485 %post graph -p /sbin/ldconfig
486 %postun graph -p /sbin/ldconfig
488 %post locale -p /sbin/ldconfig
489 %postun locale -p /sbin/ldconfig
491 %post python -p /sbin/ldconfig
492 %postun python -p /sbin/ldconfig
494 %post program_options -p /sbin/ldconfig
495 %postun program_options -p /sbin/ldconfig
497 %post regex -p /sbin/ldconfig
498 %postun regex -p /sbin/ldconfig
500 %post signals -p /sbin/ldconfig
501 %postun signals -p /sbin/ldconfig
503 %post system -p /sbin/ldconfig
504 %postun system -p /sbin/ldconfig
506 %post test -p /sbin/ldconfig
507 %postun test -p /sbin/ldconfig
509 %post thread -p /sbin/ldconfig
510 %postun thread -p /sbin/ldconfig
512 %post timer -p /sbin/ldconfig
513 %postun timer -p /sbin/ldconfig
515 %post wave -p /sbin/ldconfig
516 %postun wave -p /sbin/ldconfig
519 %defattr(644,root,root,755)
520 %attr(755,root,root) %{_libdir}/libboost_atomic.so.*.*.*
521 %attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.*
522 %attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.*
523 %attr(755,root,root) %{_libdir}/libboost_random.so.*.*.*
524 %attr(755,root,root) %{_libdir}/libboost_serialization.so.*.*.*
525 %attr(755,root,root) %{_libdir}/libboost_wserialization.so.*.*.*
528 %defattr(644,root,root,755)
529 %attr(755,root,root) %{_libdir}/libboost_atomic.so
530 %attr(755,root,root) %{_libdir}/libboost_chrono.so
531 %attr(755,root,root) %{_libdir}/libboost_context.so
532 %attr(755,root,root) %{_libdir}/libboost_date_time.so
533 %attr(755,root,root) %{_libdir}/libboost_filesystem.so
534 %attr(755,root,root) %{_libdir}/libboost_graph.so
535 %attr(755,root,root) %{_libdir}/libboost_iostreams.so
536 %attr(755,root,root) %{_libdir}/libboost_locale.so
537 %attr(755,root,root) %{_libdir}/libboost_log.so
538 %attr(755,root,root) %{_libdir}/libboost_log_setup.so
539 %attr(755,root,root) %{_libdir}/libboost_math_*.so
540 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so
541 %attr(755,root,root) %{_libdir}/libboost_program_options.so
542 %attr(755,root,root) %{_libdir}/libboost_regex.so
543 %attr(755,root,root) %{_libdir}/libboost_random.so
544 %attr(755,root,root) %{_libdir}/libboost_serialization.so
545 %attr(755,root,root) %{_libdir}/libboost_signals.so
546 %attr(755,root,root) %{_libdir}/libboost_system.so
547 %attr(755,root,root) %{_libdir}/libboost_thread.so
548 %attr(755,root,root) %{_libdir}/libboost_timer.so
549 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so
550 %attr(755,root,root) %{_libdir}/libboost_wave.so
551 %attr(755,root,root) %{_libdir}/libboost_wserialization.so
553 %exclude %{_includedir}/boost/python
554 %exclude %{_includedir}/boost/python.hpp
557 %defattr(644,root,root,755)
558 %{_libdir}/libboost_atomic.a
559 %{_libdir}/libboost_chrono.a
560 %{_libdir}/libboost_context.a
561 %{_libdir}/libboost_coroutine.a
562 %{_libdir}/libboost_date_time.a
563 %{_libdir}/libboost_exception.a
564 %{_libdir}/libboost_filesystem.a
565 %{_libdir}/libboost_graph.a
566 %{_libdir}/libboost_iostreams.a
567 %{_libdir}/libboost_locale.a
568 %{_libdir}/libboost_log.a
569 %{_libdir}/libboost_log_setup.a
570 %{_libdir}/libboost_math_*.a
571 %{_libdir}/libboost_prg_exec_monitor.a
572 %{_libdir}/libboost_program_options.a
573 %{_libdir}/libboost_random.a
574 %{_libdir}/libboost_regex.a
575 %{_libdir}/libboost_serialization.a
576 %{_libdir}/libboost_signals.a
577 %{_libdir}/libboost_system.a
578 %{_libdir}/libboost_test_exec_monitor.a
579 %{_libdir}/libboost_timer.a
580 %{_libdir}/libboost_thread.a
581 %{_libdir}/libboost_unit_test_framework.a
582 %{_libdir}/libboost_wave.a
583 %{_libdir}/libboost_wserialization.a
587 %defattr(644,root,root,755)
588 %attr(755,root,root) %{_libdir}/libboost_python.so.*.*.*
591 %defattr(644,root,root,755)
592 %attr(755,root,root) %{_libdir}/libboost_python.so
593 %{_includedir}/boost/python
594 %{_includedir}/boost/python.hpp
597 %defattr(644,root,root,755)
598 %{_libdir}/libboost_python.a
602 %defattr(644,root,root,755)
603 %attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.*
606 %defattr(644,root,root,755)
607 %attr(755,root,root) %{_libdir}/libboost_context.so.*.*.*
610 %defattr(644,root,root,755)
611 %attr(755,root,root) %{_libdir}/libboost_date_time.so.*.*.*
614 %defattr(644,root,root,755)
615 %attr(755,root,root) %{_libdir}/libboost_filesystem.so.*.*.*
618 %defattr(644,root,root,755)
619 %attr(755,root,root) %{_libdir}/libboost_graph.so.*.*.*
622 %defattr(644,root,root,755)
623 %attr(755,root,root) %{_libdir}/libboost_locale.so.*.*.*
626 %defattr(644,root,root,755)
627 %attr(755,root,root) %{_libdir}/libboost_log.so.*.*.*
628 %attr(755,root,root) %{_libdir}/libboost_log_setup.so.*.*.*
630 %files program_options
631 %defattr(644,root,root,755)
632 %attr(755,root,root) %{_libdir}/libboost_program_options.so.*.*.*
635 %defattr(644,root,root,755)
636 %attr(755,root,root) %{_libdir}/libboost_regex.so.*.*.*
639 %defattr(644,root,root,755)
640 %attr(755,root,root) %{_libdir}/libboost_signals.so.*.*.*
643 %defattr(644,root,root,755)
644 %attr(755,root,root) %{_libdir}/libboost_system.so.*.*.*
647 %defattr(644,root,root,755)
648 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so.*.*.*
649 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so.*.*.*
652 %defattr(644,root,root,755)
653 %attr(755,root,root) %{_libdir}/libboost_thread.so.*.*.*
656 %defattr(644,root,root,755)
657 %attr(755,root,root) %{_libdir}/libboost_timer.so.*.*.*
660 %defattr(644,root,root,755)
661 %attr(755,root,root) %{_libdir}/libboost_wave.so.*.*.*
664 %defattr(644,root,root,755)
665 %{_docdir}/%{name}-%{version}