3 %bcond_with python #with boost-python support (not working now)
7 Summary: The Boost C++ Libraries
8 Summary(pl): Biblioteki C++ "Boost"
11 License: Freely distributable
12 URL: http://www.boost.org/
14 Source0: http://dl.sourceforge.net/boost/%{name}-%{version}.tar.bz2
15 # Source0-md5: 4aed692a863bb4beaa0b70d6dc53bda5
16 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
17 BuildRequires: boost-jam >= 3.1.3 libstdc++-devel %{?_with_python:python-devel:}
18 BuildConflicts: gcc = 5:3.3.1
21 The Boost web site provides free peer-reviewed portable C++ source
22 libraries. The emphasis is on libraries which work well with the C++
23 Standard Library. One goal is to establish "existing practice" and
24 provide reference implementations so that the Boost libraries are
25 suitable for eventual standardization. Some of the libraries have
26 already been proposed for inclusion in the C++ Standards Committee's
27 upcoming C++ Standard Library Technical Report.
30 Strona www.boost.org dostarcza darmowe biblioteki C++ wraz z kodem
31 ¼ród³owym. Nacisk po³o¿ono na biblioteki, które dobrze wspó³pracuj± ze
32 standardow± bibliotek± C++. Celem jest ustanowienie "isniej±cej
33 praktyki" i dostarczenie implementacji, tak ¿e biblioteki "Boost"
34 nadaj± siê do ewentualnej standaryzacji. Niektóre z bibliotek ju¿
35 zosta³y zg³oszone do komitetu standaryzacyjnego C++ w nadchodz±cym
36 Raporcie Technicznym Biblioteki Standardowej C++
38 # according to ldd (and automatically generated RPM dependencies) it
39 # doesn't strictly require python, but IMHO it's cleaner to split it
42 Summary: Boost.Python library
43 Summary(pl): biblioteka Boost.Python
45 Requires: boost python
48 Use the Boost Python Library to quickly and easily export a C++
49 library to Python such that the Python interface is very similar to
50 the C++ interface. It is designed to be minimally intrusive on your
51 C++ design. In most cases, you should not have to alter your C++
52 classes in any way in order to use them with Boost.Python. The system
53 should simply ``reflect'' your C++ classes and functions into Python.
55 %description python -l pl
56 Biblioteka Boost Python s³u¿y do szybkiego i prostego eksportu
57 biblioteki C++ do Pythona, tak ¿e interfejs Pythona jest bardzo
58 podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, ¿eby
59 narzucaæ jak najmniej wymagañ dotycz±cych konstrukcjii C++. W
60 wiêkszo¶ci przypadków nie trzeba w ogóle zmieniaæ w³asnych klas C++,
61 ¿eby u¿ywaæ ich z Boost.Python. System powinien po prostu ,,odbiæ''
62 klasy C++ i funkcje do Pythona.
65 Summary: Boost.Python development headers
66 Summary(pl): Pliki nag³ówkowe dla Boost.Python
68 Requires: %{name}-devel
70 %description python-devel
71 Headers for the Boost.Python library.
73 %description python-devel -l pl
74 Pliki nag³ówkowe dla biblioteki Boost.Python.
77 Summary: Boost C++ development libraries and headers
78 Summary(pl): Pliki nag³ówkowe i biblioteki statyczne Boost C++
83 Headers and static libraries for the Boost C++ libraries.
85 %description devel -l pl
86 Pliki nag³ówkowe i biblioteki statyczne bibliotek Boost C++.
89 Summary: Boost C++ regular expressions library
90 Summary(pl): Biblioteka wyra¿eñ regularnych Boost C++
92 Requires: %{name} = %{version}
95 Shared libraries for Boost C++ regular expressions.
97 %description regex -l pl
98 Biblioteka wyra¿eñ regularnych dla C++, biblioteki dzielone.
102 Summary: Boost C++ Regex library headers and static libraries
103 Summary(pl): Pliki nag³ówkowe i biblioteki statyczne Boost C++ Regex
104 Requires: %{name}-regex = %{version}
105 Requires: %{name}-devel = %{version}
107 %description regex-devel
108 Boost C++ Regex headers and static libraries.
110 %description regex-devel -l pl
111 Pliki nag³ówkowe i biblioteki statyczne dla Boost C++ Regex.
115 Summary: Header for Boost C++ "Any" Library
116 Summary(pl): Plik nag³ówkowy dla biblioteki Boost C++ "Any"
117 Requires: %{name}-devel = %{version}
119 %description any-devel
120 The boost::any class, is a variant value type, which supports copying
121 of any value type and safe checked extraction of that value strictly
124 I.e. 5 is held strictly as an int and is not implicitly convertible
125 either to "5" or to 5.0.
127 %description any-devel -l pl
128 Klasa boost::any jest typem, który umo¿liwia kopiowanie ze zmiennej
129 dowolnego typu i bezpieczne, sprawdzone wydobycie jej warto¶ci
130 dok³adnie tego samego typu.
132 Np. 5 jest trzymane jako int i nie jest niejawnie konwertowne ani jako
137 Summary: STL compliant container wrapper for arrays of constant size
138 Summary(pl): Wrapper na STLowe kontenery dla tablic o sta³ym rozmiarze
139 Requires: %{name}-devel = %{version}
140 %description array-devel
141 As replacement for ordinary arrays, the STL provides class vector<>. However,
142 vector<> provides the semantics of dynamic arrays. Thus, it manages data to be
143 able to change the number of elements. This results in some overhead in case
144 only arrays with static size are needed. This library provides support for such
146 %description array-devel -l pl
147 STL dostarcza klasê vector<> jako zamiennik zwyk³ej tablicy. Jednak vector<>
148 dostarcza semantykê dynamicznych tablic. Zatem zarz±dza danymi tak, by by³a
149 mo¿liwa zmiana ilo¶ci elementów. To skutkuje pewnym nadmiarem w przypadku kiedy
150 tylko tablice o sta³ym rozmiarze s± potrzebne. Ta biblioteka dostarcza wsparcie
151 dla takich w³a¶nie tablic o sta³ym rozmiarze.
154 %package preprocessor-devel
156 Summary: Preprocessor metaprogramming tools including repetition and recursion.
157 Summary(pl): Narzêdzia metaprogramowania preprocesora razem z repetycj± i rekursj±.
158 %description preprocessor-devel
159 This library provides preprocessor metaprogramming tools, including repetition
161 %description preprocessor-devel -l pl
162 Biblioteka udostêpnia narzêdzia metaprogramowania preprocesora, w³±czaj±c w to
163 repetycje i rekursjê.
166 Summary: Boost C++ Library documentation
167 Summary(pl): Dokumentacja dla biblioteki Boost C++
169 Requires: %{name}-devel = %{version}
172 Documentation for the Boost C++ Library.
174 %description doc -l pl
175 Dokumentacja dla biblioteki Boost C++.
178 rm -rf $RPM_BUILD_ROOT
180 %setup -n boost-%{version} -q
183 %if %{?_with_python:1}%{!?_with_python:0}
184 PYTHON_VERSION=`python -V 2>&1 | sed 's,.* \([0-9]\.[0-9]\)\(\.[0-9]\)\?.*,\1,'`
185 PYTHON_ROOT=%{_prefix}
190 bjam -sBUILD=release -sPYTHON_ROOT=$PYTHON_ROOT -sPYTHON_VERSION=$PYTHON_VERSION
193 rm -rf $RPM_BUILD_ROOT
194 rm -f master.list regex.list regex-devel.list python.list devel.list python-devel.list doc.list any.list
196 install -d $RPM_BUILD_ROOT%{_includedir}
197 for i in `find boost -type d`; do
198 install -d $RPM_BUILD_ROOT%{_includedir}/$i
200 for i in `find boost -type f`; do
201 install -m 644 $i $RPM_BUILD_ROOT%{_includedir}/$i
202 if test "`echo $i | sed 's,python,,g'`" = "$i"; then
203 echo %{_includedir}/$i >> devel.list
205 echo %{_includedir}/$i >> python-devel.list
209 install -d $RPM_BUILD_ROOT%{_libdir}
210 for i in `find libs -type f -name '*.a' | grep gcc`; do
211 install -m 644 $i $RPM_BUILD_ROOT%{_libdir}/`basename $i`
212 if test "`echo $i | sed 's,python,,g'`" = "$i"; then
213 echo %{_libdir}/`basename $i` >> devel.list
215 echo %{_libdir}/`basename $i` >> python-devel.list
221 for i in `find libs -type f -name '*.so.%{version}' | grep gcc`; do
222 install -m 755 $i $RPM_BUILD_ROOT%{_libdir}/`basename $i`
223 #ldconfig fails to generate the symlinks for boost libs :-(
224 LINK=`basename $i | sed 's,\.so\..*,.so,'`
225 (cd $RPM_BUILD_ROOT%{_libdir} && ln -s `basename $i` $LINK)
226 if test "`echo $i | sed 's,python,,g'`" = "$i"; then
227 echo %{_libdir}/`basename $i` >> master.list
228 echo %{_libdir}/$LINK >> master.list
230 echo %{_libdir}/`basename $i` >> python.list
231 echo %{_libdir}/$LINK >> python.list
236 grep libboost_regex.so master.list > regex.list
237 grep -v libboost_regex.so master.list >_master.list
240 RFILES="%{_includedir}/boost/cregex.hpp|"
241 RFILES="$RFILES%{_includedir}/boost/regex/|"
242 RFILES="$RFILES%{_includedir}/boost/regex.h(pp){0,1}|"
243 RFILES="$RFILES%{_includedir}/boost/regex_fwd.hpp|"
244 RFILES="$RFILES%{_libdir}/libboost_regex.a"
246 egrep "$RFILES" devel.list > regex-devel.list
247 egrep -v "$RFILES" devel.list > _devel.list
251 grep any.hpp devel.list > any.list
252 grep -v any.hpp devel.list > _devel.list
256 egrep '/boost/array.hpp$' devel.list >array.list
257 egrep -v '/boost/array.hpp$' devel.list > _devel.list
261 RFILES="%{_includedir}/boost/preprocessor"
263 egrep "$RFILES" devel.list > preprocessor.list
264 egrep -v $RFILES devel.list > _devel.list
268 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
269 install README $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
271 # as the documentation doesn't completely reside in a directory of its
272 # own, we need to find out ourselves... this looks for HTML files and
273 # then collects everything linked from those. this is certainly quite
274 # unoptimized wrt mkdir calls, but does it really matter?
275 for i in `find -type f -name '*.htm*'`; do
276 # bjam docu is included in the boost-jam RPM
277 if test "`echo $i | sed 's,jam_src,,'`" = "$i"; then
278 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/`dirname $i`
279 for LINKED in `perl - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
283 # rewrite links from boost/* to %{_includedir}/boost/* and
284 # ignore external links as well as document-internal ones.
285 # HTML files are also ignored as they get installed anyway.
286 if (!($link =~ s,^(?:../)*boost/,%{_includedir}/boost/,) && !($link =~ m,(?:^[^/]+:|^\#|\.html?(?:$|\#)),))
288 (my $file = $link) =~ s/\#.*//;
294 open OUT, ">@ARGV[1]";
298 $in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e;
299 s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig;
301 $in_link = /href|src=\s*$/;
304 TARGET=`dirname $i`/$LINKED
305 # ignore non-existant linked files
306 if test -f $TARGET; then
307 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/`dirname $TARGET`
308 install -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET
315 rm -rf $RPM_BUILD_ROOT
317 %post -p /sbin/ldconfig
318 %postun -p /sbin/ldconfig
320 %if %{?_with_python:1}%{!?_with_python:0}
321 %post python -p /sbin/ldconfig
322 %postun python -p /sbin/ldconfig
325 %files -f master.list
326 %defattr(644,root,root,755)
328 %if %{?_with_python:1}%{!?_with_python:0}
329 %files python -f python.list
330 %defattr(644,root,root,755)
333 %files devel -f devel.list
334 %defattr(644,root,root,755)
335 %dir %{_includedir}/boost
336 %dir %{_includedir}/boost/bind
337 %dir %{_includedir}/boost/compatibility
338 %dir %{_includedir}/boost/compatibility/cpp_c_headers
339 %dir %{_includedir}/boost/config
340 %dir %{_includedir}/boost/config/compiler
341 %dir %{_includedir}/boost/config/platform
342 %dir %{_includedir}/boost/config/stdlib
343 %dir %{_includedir}/boost/date_time
344 %dir %{_includedir}/boost/date_time/gregorian
345 %dir %{_includedir}/boost/date_time/posix_time
346 %dir %{_includedir}/boost/detail
347 %dir %{_includedir}/boost/filesystem
348 %dir %{_includedir}/boost/format
349 %dir %{_includedir}/boost/function
350 %dir %{_includedir}/boost/function/detail
351 %dir %{_includedir}/boost/graph
352 %dir %{_includedir}/boost/graph/detail
353 %dir %{_includedir}/boost/integer
354 %dir %{_includedir}/boost/io
355 %dir %{_includedir}/boost/lambda
356 %dir %{_includedir}/boost/lambda/detail
357 %dir %{_includedir}/boost/math
358 %dir %{_includedir}/boost/math/special_functions
359 %dir %{_includedir}/boost/mpl
360 %dir %{_includedir}/boost/mpl/aux_
361 %dir %{_includedir}/boost/mpl/aux_/config
362 %dir %{_includedir}/boost/mpl/aux_/preprocessed
363 %dir %{_includedir}/boost/mpl/aux_/preprocessed/bcc
364 %dir %{_includedir}/boost/mpl/aux_/preprocessed/bcc551
365 %dir %{_includedir}/boost/mpl/aux_/preprocessed/gcc
366 %dir %{_includedir}/boost/mpl/aux_/preprocessed/msvc60
367 %dir %{_includedir}/boost/mpl/aux_/preprocessed/msvc70
368 %dir %{_includedir}/boost/mpl/aux_/preprocessed/mwcw
369 %dir %{_includedir}/boost/mpl/aux_/preprocessed/no_ctps
370 %dir %{_includedir}/boost/mpl/aux_/preprocessed/no_ttp
371 %dir %{_includedir}/boost/mpl/aux_/preprocessed/plain
372 %dir %{_includedir}/boost/mpl/aux_/preprocessor
373 %dir %{_includedir}/boost/mpl/aux_/range_c
374 %dir %{_includedir}/boost/mpl/limits
375 %dir %{_includedir}/boost/mpl/list
376 %dir %{_includedir}/boost/mpl/list/aux_
377 %dir %{_includedir}/boost/mpl/list/aux_/preprocessed
378 %dir %{_includedir}/boost/mpl/list/aux_/preprocessed/plain
379 %dir %{_includedir}/boost/mpl/math
380 %dir %{_includedir}/boost/mpl/vector
381 %dir %{_includedir}/boost/mpl/vector/aux_
382 %dir %{_includedir}/boost/mpl/vector/aux_/preprocessed
383 %dir %{_includedir}/boost/mpl/vector/aux_/preprocessed/no_ctps
384 %dir %{_includedir}/boost/mpl/vector/aux_/preprocessed/plain
385 %dir %{_includedir}/boost/mpl/vector/aux_/preprocessed/typeof_based
386 %dir %{_includedir}/boost/multi_array
387 %dir %{_includedir}/boost/numeric
388 %dir %{_includedir}/boost/numeric/interval
389 %dir %{_includedir}/boost/numeric/interval/compare
390 %dir %{_includedir}/boost/numeric/interval/detail
391 %dir %{_includedir}/boost/numeric/interval/ext
392 %dir %{_includedir}/boost/numeric/ublas
393 %dir %{_includedir}/boost/pending
394 %dir %{_includedir}/boost/pending/detail
395 %dir %{_includedir}/boost/pool
396 %dir %{_includedir}/boost/pool/detail
397 %dir %{_includedir}/boost/preprocessor
398 %dir %{_includedir}/boost/preprocessor/arithmetic
399 %dir %{_includedir}/boost/preprocessor/arithmetic/detail
400 %dir %{_includedir}/boost/preprocessor/array
401 %dir %{_includedir}/boost/preprocessor/comparison
402 %dir %{_includedir}/boost/preprocessor/config
403 %dir %{_includedir}/boost/preprocessor/control
404 %dir %{_includedir}/boost/preprocessor/control/detail
405 %dir %{_includedir}/boost/preprocessor/control/detail/edg
406 %dir %{_includedir}/boost/preprocessor/control/detail/msvc
407 %dir %{_includedir}/boost/preprocessor/debug
408 %dir %{_includedir}/boost/preprocessor/detail
409 %dir %{_includedir}/boost/preprocessor/facilities
410 %dir %{_includedir}/boost/preprocessor/iteration
411 %dir %{_includedir}/boost/preprocessor/iteration/detail
412 %dir %{_includedir}/boost/preprocessor/iteration/detail/bounds
413 %dir %{_includedir}/boost/preprocessor/iteration/detail/iter
414 %dir %{_includedir}/boost/preprocessor/list
415 %dir %{_includedir}/boost/preprocessor/list/detail
416 %dir %{_includedir}/boost/preprocessor/list/detail/edg
417 %dir %{_includedir}/boost/preprocessor/logical
418 %dir %{_includedir}/boost/preprocessor/punctuation
419 %dir %{_includedir}/boost/preprocessor/repetition
420 %dir %{_includedir}/boost/preprocessor/repetition/detail
421 %dir %{_includedir}/boost/preprocessor/repetition/detail/edg
422 %dir %{_includedir}/boost/preprocessor/repetition/detail/msvc
423 %dir %{_includedir}/boost/preprocessor/selection
424 %dir %{_includedir}/boost/preprocessor/seq
425 %dir %{_includedir}/boost/preprocessor/seq/detail
426 %dir %{_includedir}/boost/preprocessor/slot
427 %dir %{_includedir}/boost/preprocessor/slot/detail
428 %dir %{_includedir}/boost/preprocessor/tuple
429 %dir %{_includedir}/boost/random
430 %dir %{_includedir}/boost/random/detail
431 %dir %{_includedir}/boost/regex
432 %dir %{_includedir}/boost/regex/v3
433 %dir %{_includedir}/boost/signals
434 %dir %{_includedir}/boost/signals/detail
435 %dir %{_includedir}/boost/spirit
436 %dir %{_includedir}/boost/spirit/attribute
437 %dir %{_includedir}/boost/spirit/core
438 %dir %{_includedir}/boost/spirit/core/composite
439 %dir %{_includedir}/boost/spirit/core/composite/impl
440 %dir %{_includedir}/boost/spirit/core/impl
441 %dir %{_includedir}/boost/spirit/core/meta
442 %dir %{_includedir}/boost/spirit/core/meta/impl
443 %dir %{_includedir}/boost/spirit/core/non_terminal
444 %dir %{_includedir}/boost/spirit/core/non_terminal/impl
445 %dir %{_includedir}/boost/spirit/core/primitives
446 %dir %{_includedir}/boost/spirit/core/primitives/impl
447 %dir %{_includedir}/boost/spirit/core/scanner
448 %dir %{_includedir}/boost/spirit/core/scanner/impl
449 %dir %{_includedir}/boost/spirit/debug
450 %dir %{_includedir}/boost/spirit/debug/impl
451 %dir %{_includedir}/boost/spirit/dynamic
452 %dir %{_includedir}/boost/spirit/dynamic/impl
453 %dir %{_includedir}/boost/spirit/error_handling
454 %dir %{_includedir}/boost/spirit/error_handling/impl
455 %dir %{_includedir}/boost/spirit/iterator
456 %dir %{_includedir}/boost/spirit/iterator/impl
457 %dir %{_includedir}/boost/spirit/phoenix
458 %dir %{_includedir}/boost/spirit/symbols
459 %dir %{_includedir}/boost/spirit/symbols/impl
460 %dir %{_includedir}/boost/spirit/tree
461 %dir %{_includedir}/boost/spirit/tree/impl
462 %dir %{_includedir}/boost/spirit/utility
463 %dir %{_includedir}/boost/spirit/utility/impl
464 %dir %{_includedir}/boost/spirit/utility/impl/chset
465 %dir %{_includedir}/boost/test
466 %dir %{_includedir}/boost/test/detail
467 %dir %{_includedir}/boost/test/included
468 %dir %{_includedir}/boost/thread
469 %dir %{_includedir}/boost/thread/detail
470 %dir %{_includedir}/boost/tuple
471 %dir %{_includedir}/boost/tuple/detail
472 %dir %{_includedir}/boost/type_traits
473 %dir %{_includedir}/boost/type_traits/detail
474 %dir %{_includedir}/boost/utility
476 %if %{?_with_python:1}%{!?_with_python:0}
477 %files python-devel -f python-devel.list
478 %defattr(644,root,root,755)
482 %defattr(644,root,root,755)
483 %doc %{_docdir}/boost-%{version}
485 %files regex -f regex.list
486 %defattr(644,root,root,755)
488 %files regex-devel -f regex-devel.list
489 %defattr(644,root,root,755)
491 %files any-devel -f any.list
492 %defattr(644,root,root,755)
494 %files array-devel -f array.list
495 %defattr(644,root,root,755)
497 %files preprocessor-devel -f preprocessor.list
498 %defattr(644,root,root,755)