]> git.pld-linux.org Git - packages/boost.git/blob - boost.spec
- boost-preprocessor moved to separate package (boost-preprocessor-devel)
[packages/boost.git] / boost.spec
1 #
2 # Conditional build:
3 %bcond_with     python          #with boost-python support (not working now)
4 #
5
6 Name:           boost
7 Summary:        The Boost C++ Libraries
8 Summary(pl):    Biblioteki C++ "Boost"
9 Version:        1.30.2
10 Release:        0.1
11 License:        Freely distributable
12 URL:            http://www.boost.org/
13 Group:          Libraries
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
19
20 %description
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.
28
29 %description -l pl
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++
37
38 # according to ldd (and automatically generated RPM dependencies) it
39 # doesn't strictly require python, but IMHO it's cleaner to split it
40 # this way
41 %package python
42 Summary:        Boost.Python library
43 Summary(pl):    biblioteka Boost.Python
44 Group:          Libraries
45 Requires:       boost python
46
47 %description 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.
54
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.
63
64 %package python-devel
65 Summary:        Boost.Python development headers
66 Summary(pl):    Pliki nag³ówkowe dla Boost.Python
67 Group:          Libraries
68 Requires:       %{name}-devel
69
70 %description python-devel
71 Headers for the Boost.Python library.
72
73 %description python-devel -l pl
74 Pliki nag³ówkowe dla biblioteki Boost.Python.
75
76 %package devel
77 Summary:        Boost C++ development libraries and headers
78 Summary(pl):    Pliki nag³ówkowe i biblioteki statyczne Boost C++
79 Group:          Libraries
80 Requires:       boost
81
82 %description devel
83 Headers and static libraries for the Boost C++ libraries.
84
85 %description devel -l pl
86 Pliki nag³ówkowe i biblioteki statyczne bibliotek Boost C++.
87
88 %package regex
89 Summary:        Boost C++ regular expressions library
90 Summary(pl):    Biblioteka wyra¿eñ regularnych Boost C++
91 Group:          Libraries
92 Requires:       %{name} = %{version}
93
94 %description regex
95 Shared libraries for Boost C++ regular expressions.
96
97 %description regex -l pl
98 Biblioteka wyra¿eñ regularnych dla C++, biblioteki dzielone.
99
100 %package regex-devel
101 Group:          Libraries
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}
106
107 %description regex-devel
108 Boost C++ Regex headers and static libraries.
109
110 %description regex-devel -l pl
111 Pliki nag³ówkowe i biblioteki statyczne dla Boost C++ Regex.
112
113 %package any-devel
114 Group:          Libraries
115 Summary:        Header for Boost C++ "Any" Library
116 Summary(pl):    Plik nag³ówkowy dla biblioteki Boost C++ "Any"
117 Requires:       %{name}-devel = %{version}
118
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
122 against that type.
123
124 I.e. 5 is held strictly as an int and is not implicitly convertible
125 either to "5" or to 5.0.
126
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.
131
132 Np. 5 jest trzymane jako int i nie jest niejawnie konwertowne ani jako
133 "5" ani jako 5.0.
134
135 %package array-devel
136 Group:          Libraries
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
145 static size arrays. 
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.
152
153
154 %package preprocessor-devel
155 Group:          Libraries
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
160 and recursion. 
161 %description preprocessor-devel -l pl
162 Biblioteka udostêpnia narzêdzia metaprogramowania preprocesora, w³±czaj±c w to
163 repetycje i rekursjê.  
164
165 %package doc
166 Summary:        Boost C++ Library documentation
167 Summary(pl):    Dokumentacja dla biblioteki Boost C++
168 Group:          Libraries
169 Requires:       %{name}-devel = %{version}
170
171 %description doc
172 Documentation for the Boost C++ Library.
173
174 %description doc -l pl
175 Dokumentacja dla biblioteki Boost C++.
176
177 %prep
178 rm -rf $RPM_BUILD_ROOT
179
180 %setup -n boost-%{version} -q
181
182 %build
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}
186 %else
187 PYTHON_ROOT=
188 PYTHON_VERSION=
189 %endif
190 bjam -sBUILD=release -sPYTHON_ROOT=$PYTHON_ROOT -sPYTHON_VERSION=$PYTHON_VERSION
191
192 %install
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
195 # include files
196 install -d $RPM_BUILD_ROOT%{_includedir}
197 for i in `find boost -type d`; do
198         install -d $RPM_BUILD_ROOT%{_includedir}/$i
199 done
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
204         else
205                 echo %{_includedir}/$i >> python-devel.list
206         fi
207 done
208 # static libraries
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
214         else
215                 echo %{_libdir}/`basename $i` >> python-devel.list
216         fi
217 done
218
219
220 # dynamic libraries
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
229         else
230                 echo %{_libdir}/`basename $i` >> python.list
231                 echo %{_libdir}/$LINK >> python.list
232         fi
233 done
234
235 #regex library
236 grep libboost_regex.so master.list > regex.list
237 grep -v libboost_regex.so master.list >_master.list
238 mv {_,}master.list
239 #regex-devel
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"
245
246 egrep "$RFILES" devel.list > regex-devel.list
247 egrep -v "$RFILES" devel.list > _devel.list
248 mv {_,}devel.list
249
250 #any-devel library
251 grep any.hpp devel.list > any.list
252 grep -v any.hpp devel.list > _devel.list
253 mv {_,}devel.list
254
255 #array-devel library
256 egrep '/boost/array.hpp$' devel.list >array.list
257 egrep -v '/boost/array.hpp$' devel.list > _devel.list
258 mv {_,}devel.list
259
260 #preprocessor-devel
261 RFILES="%{_includedir}/boost/preprocessor"
262
263 egrep "$RFILES" devel.list > preprocessor.list
264 egrep -v $RFILES devel.list > _devel.list
265 mv {_,}devel.list
266
267 # documentation
268 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
269 install README $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
270
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'
280                         sub rewrite_link
281                         {
282                                 my $link = shift;
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?(?:$|\#)),))
287                                 {
288                                         (my $file = $link) =~ s/\#.*//;
289                                         print "$file\n";
290                                 }
291                                 $link;
292                         }
293                         open IN, @ARGV[0];
294                         open OUT, ">@ARGV[1]";
295                         my $in_link;
296                         while (<IN>)
297                         {
298                                 $in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e;
299                                 s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig;
300                                 print OUT;
301                                 $in_link = /href|src=\s*$/;
302                         }
303 EOT`; do
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
309                         fi
310                 done
311         fi
312 done
313
314 %clean
315 rm -rf $RPM_BUILD_ROOT
316
317 %post   -p /sbin/ldconfig
318 %postun -p /sbin/ldconfig
319
320 %if %{?_with_python:1}%{!?_with_python:0}
321 %post python    -p /sbin/ldconfig
322 %postun python  -p /sbin/ldconfig
323 %endif
324
325 %files -f master.list
326 %defattr(644,root,root,755)
327
328 %if %{?_with_python:1}%{!?_with_python:0}
329 %files python -f python.list
330 %defattr(644,root,root,755)
331 %endif
332
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
475
476 %if %{?_with_python:1}%{!?_with_python:0}
477 %files python-devel -f python-devel.list
478 %defattr(644,root,root,755)
479 %endif
480
481 %files doc
482 %defattr(644,root,root,755)
483 %doc %{_docdir}/boost-%{version}
484
485 %files regex -f regex.list
486 %defattr(644,root,root,755)
487
488 %files regex-devel -f regex-devel.list
489 %defattr(644,root,root,755)
490
491 %files any-devel -f any.list
492 %defattr(644,root,root,755)
493
494 %files array-devel -f array.list
495 %defattr(644,root,root,755)
496
497 %files preprocessor-devel -f preprocessor.list
498 %defattr(644,root,root,755)
This page took 0.095461 seconds and 4 git commands to generate.