]> git.pld-linux.org Git - packages/boost.git/blob - boost.spec
- rel.3
[packages/boost.git] / boost.spec
1 #
2 # TODO:
3 #       - think about building MPI.
4 #       - split shared libs from core package into -iostreams/-serialization.
5 #
6 # Conditional build:
7 %bcond_without  python  # without boost-python support
8 #
9 %define         _fver   %(echo %{version} | tr . _)
10 Summary:        The Boost C++ Libraries
11 Summary(pl.UTF-8):      Biblioteki C++ "Boost"
12 Name:           boost
13 Version:        1.35.0
14 Release:        3
15 License:        Boost Software License and others
16 Group:          Libraries
17 Source0:        http://dl.sourceforge.net/boost/%{name}_%{_fver}.tar.bz2
18 # Source0-md5:  dce952a7214e72d6597516bcac84048b
19 Patch0:         %{name}-climits.patch
20 URL:            http://www.boost.org/
21 BuildRequires:  boost-jam >= 3.1.12
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)
32
33 %description
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.
41
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++
50
51 %package devel
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}-date_time = %{version}-%{release}
57 Requires:       %{name}-filesystem = %{version}-%{release}
58 Requires:       %{name}-graph = %{version}-%{release}
59 Requires:       %{name}-program_options = %{version}-%{release}
60 Requires:       %{name}-regex = %{version}-%{release}
61 Requires:       %{name}-signals = %{version}-%{release}
62 Requires:       %{name}-system = %{version}-%{release}
63 Requires:       %{name}-test = %{version}-%{release}
64 Requires:       %{name}-thread = %{version}-%{release}
65 Requires:       %{name}-wave = %{version}-%{release}
66 Requires:       libstdc++-devel
67 Obsoletes:      boost-any-devel
68 Obsoletes:      boost-array-devel
69 Obsoletes:      boost-bind-devel
70 Obsoletes:      boost-call_traits-devel
71 Obsoletes:      boost-compatibility-devel
72 Obsoletes:      boost-compose-devel
73 Obsoletes:      boost-compressed_pair-devel
74 Obsoletes:      boost-concept_check-devel
75 Obsoletes:      boost-conversion-devel
76 Obsoletes:      boost-crc-devel
77 Obsoletes:      boost-date_time-devel
78 Obsoletes:      boost-filesystem-devel
79 Obsoletes:      boost-graph-devel
80 Obsoletes:      boost-mem_fn-devel
81 Obsoletes:      boost-mpl-devel
82 Obsoletes:      boost-preprocessor-devel
83 Obsoletes:      boost-program_options-devel
84 Obsoletes:      boost-ref-devel
85 Obsoletes:      boost-regex-devel
86 Obsoletes:      boost-signals-devel
87 Obsoletes:      boost-spirit-devel
88 Obsoletes:      boost-statechart-devel
89 Obsoletes:      boost-static_assert-devel
90 Obsoletes:      boost-test-devel
91 Obsoletes:      boost-thread-devel
92 Obsoletes:      boost-tr1-devel
93 Obsoletes:      boost-type_traits-devel
94 Obsoletes:      boost-typeof-devel
95 Obsoletes:      boost-uBLAS-devel
96 Obsoletes:      boost-utility-devel
97 Obsoletes:      boost-wave-devel
98 Obsoletes:      boost-xpressive-devel
99
100 %description devel
101 Header files for the Boost C++ libraries.
102
103 %description devel -l pl.UTF-8
104 Pliki nagłówkowe bibliotek C++ Boost.
105
106 %package static
107 Summary:        Static version of base Boost C++ libraries
108 Summary(pl.UTF-8):      Statyczne wersje podstawowych bibliotek C++ Boost
109 Group:          Development/Libraries
110 Requires:       %{name}-devel = %{version}-%{release}
111 Obsoletes:      boost-static < 1.33
112
113 %description static
114 Static version of base Boost C++ libraries.
115
116 %description static -l pl.UTF-8
117 Statyczne wersje podstawowych bibliotek C++ Boost.
118
119 %package python
120 Summary:        Boost.Python library
121 Summary(pl.UTF-8):      biblioteka Boost.Python
122 Group:          Libraries
123 %pyrequires_eq  python
124
125 %description python
126 Use the Boost Python Library to quickly and easily export a C++
127 library to Python such that the Python interface is very similar to
128 the C++ interface. It is designed to be minimally intrusive on your
129 C++ design. In most cases, you should not have to alter your C++
130 classes in any way in order to use them with Boost.Python. The system
131 should simply ``reflect'' your C++ classes and functions into Python.
132
133 %description python -l pl.UTF-8
134 Biblioteka Boost Python służy do szybkiego i prostego eksportu
135 biblioteki C++ do Pythona, tak że interfejs Pythona jest bardzo
136 podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby
137 narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W
138 większości przypadków nie trzeba w ogóle zmieniać własnych klas C++,
139 żeby używać ich z Boost.Python. System powinien po prostu ,,odbić''
140 klasy C++ i funkcje do Pythona.
141
142 %package python-devel
143 Summary:        Boost.Python development headers
144 Summary(pl.UTF-8):      Pliki nagłówkowe dla Boost.Python
145 Group:          Development/Libraries
146 Requires:       %{name}-devel = %{version}-%{release}
147 Requires:       %{name}-python = %{version}-%{release}
148
149 %description python-devel
150 Headers for the Boost.Python library.
151
152 %description python-devel -l pl.UTF-8
153 Pliki nagłówkowe dla biblioteki Boost.Python.
154
155 %package python-static
156 Summary:        Static version of Boost.Python library
157 Summary(pl.UTF-8):      Statyczna wersja biblioteki Boost.Python
158 Group:          Development/Libraries
159 Requires:       %{name}-python-devel = %{version}-%{release}
160
161 %description python-static
162 Static version of Boost.Python library.
163
164 %description python-static -l pl.UTF-8
165 Statyczna wersja biblioteki Boost.Python.
166
167 %package date_time
168 Summary:        Date-Time library
169 Summary(pl.UTF-8):      Biblioteka daty-czasu
170 Group:          Libraries
171 Obsoletes:      boost < 1.33
172
173 %description date_time
174 A set of date-time libraries.
175
176 %description date_time -l pl.UTF-8
177 Zbiór bibliotek daty-czasu.
178
179 %package filesystem
180 Summary:        Portable paths, iteration over directories, and other useful filesystem operations
181 Summary(pl.UTF-8):      Przenośne ścieżki, iteracje katalogów i inne użyteczne operacje na systemie plików
182 Group:          Libraries
183 Requires:       %{name}-system = %{version}-%{release}
184 Obsoletes:      boost < 1.33
185
186 %description filesystem
187 The boost::filesystem library provides portable facilities to query
188 and manipulate paths, files, and directories.
189
190 %description filesystem -l pl.UTF-8
191 Przenośna biblioteka boost::filesystem dostarcza ułatwienia w
192 operacjach na ścieżkach, plikach i katalogach.
193
194 %package graph
195 Summary:        General purpose, generic C++ library for graph data structures and graph algorithms
196 Summary(pl.UTF-8):      Biblioteka ogólnego przeznaczenia w C++ dla struktur danych typu grafy oraz algorytmów związanych z grafami
197 Group:          Libraries
198
199 %description graph
200 The boost::graph library provides portable facilities to operate on
201 graph data structures using graph algorithms.
202
203 %description graph -l pl.UTF-8
204 Przenośna biblioteka boost::graph dostarcza ułatwienia w operacjach na
205 strukturach danych typu graf za pomocą algorytmów związanych z
206 grafami.
207
208 %package program_options
209 Summary:        Access to program options, via conventional methods such as command line and config file
210 Summary(pl.UTF-8):      Dostęp do opcji programu za pomocą typowych metod, jak linia poleceń i plik konfiguracyjny
211 Group:          Libraries
212
213 %description program_options
214 The program_options library allows program developers to obtain
215 program options, that is (name, value) pairs from the user, via
216 conventional methods such as command line and config file.
217
218 %description program_options -l pl.UTF-8
219 Biblioteka program_options umożliwia uzyskanie od użytkownika opcji
220 programu, czyli par (nazwa, wartość), za pomocą typowych metod, takich
221 jak linia poleceń, czy plik konfiguracyjny.
222
223 %package regex
224 Summary:        Boost C++ regular expressions library
225 Summary(pl.UTF-8):      Biblioteka wyrażeń regularnych Boost C++
226 Group:          Libraries
227
228 %description regex
229 Shared library for Boost C++ regular expressions.
230
231 %description regex -l pl.UTF-8
232 Biblioteka wyrażeń regularnych dla C++, biblioteki dzielone.
233
234 %package signals
235 Summary:        Signals & slots callback implementation
236 Summary(pl.UTF-8):      Implementacja sygnałów i slotów
237 Group:          Libraries
238 Obsoletes:      boost < 1.33
239
240 %description signals
241 The boost::signals library is an implementation of a signals and slots
242 system.
243
244 %description signals -l pl.UTF-8
245 Biblioteka boost::signals jest implementacją systemu sygnałów i
246 slotów.
247
248 %package system
249 Summary:        Support for getting system specific error codes
250 Summary(pl.UTF-8):      Wsparcie dla pobierania specyficznych dla systemu kodów błędów
251 Group:          Libraries
252
253 %description system
254 The Boost System library provides simple, light-weight error_code
255 objects that encapsulate system-specific error code values, yet also
256 provide access to more abstract and portable error conditions objects.
257
258 %package test
259 Summary:        Support for program testing and execution monitoring
260 Summary(pl.UTF-8):      Wsparcie dla testowania i monitorowania programu
261 Group:          Libraries
262 Obsoletes:      boost < 1.33
263
264 %description test
265 Support for simple program testing, full unit testing, and for program
266 execution monitoring.
267
268 %description test -l pl.UTF-8
269 Wsparcie dla prostego testowania programu, pełnego testowania i
270 monitorowania wykonania programu.
271
272 %package thread
273 Summary:        Portable C++ threads library
274 Summary(pl.UTF-8):      Przenośna biblioteka wątków C++
275 Group:          Libraries
276 Obsoletes:      boost < 1.33
277
278 %description thread
279 Portable C++ threads library - shared library.
280
281 %description thread -l pl.UTF-8
282 Przenośna biblioteka wątków dla C++ - biblioteka dzielona.
283
284 %package wave
285 Summary:        Boost.Wave - a standard compliant C++ preprocessor library
286 Summary(pl.UTF-8):      Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
287 Group:          Development/Libraries
288
289 %description wave
290 Boost.Wave - a standard compliant C++ preprocessor library.
291
292 %description wave -l pl.UTF-8
293 Boost.Wave - zgodna ze standardem biblioteka preprocesora C++.
294
295 %package doc
296 Summary:        Boost C++ Library documentation
297 Summary(pl.UTF-8):      Dokumentacja dla biblioteki Boost C++
298 Group:          Documentation
299 Requires:       %{name}-devel = %{version}-%{release}
300
301 %description doc
302 Documentation for the Boost C++ Library.
303
304 %description doc -l pl.UTF-8
305 Dokumentacja dla biblioteki Boost C++.
306
307 %prep
308 %setup -q -n %{name}_%{_fver}
309 %patch0 -p1
310
311 # - don't know how to pass it through (b)jam -s (no way?)
312 #   due to oversophisticated build flags system.
313 # - pass -fPIC due to <shared-linkable> removal.
314 %{__sed} -i 's/<optimization>speed : -O3/<optimization>speed : %{rpmcxxflags} -fPIC/' tools/build/v2/tools/gcc.jam
315
316 # cleanup -g switch to avoid override debuginfocflags.
317 %{__sed} -i 's/<debug-symbols>on : -g/<debug-symbols>on :/' tools/build/v2/tools/gcc.jam
318 # link against shared expat library.
319 %{__sed} -i 's:find-static:find-shared:' libs/graph/build/Jamfile.v2
320
321 %ifarch alpha
322 # -pthread gcc parameter doesn't add _REENTRANT to cpp macros on alpha (only)
323 # don't know, is it gcc bug or intentional omission?
324 # anyway, boost check of -D_REENTRANT in its headers, so it's needed here
325 %{__perl} -pi -e 's/(CFLAGS.*-pthread)/$1 -D_REENTRANT/' tools/build/v1/gcc-tools.jam
326 %endif
327
328 cat << EOF > tools/build/v2/user-config.jam
329 using gcc : %(%{__cxx} -dumpversion) : %{__cxx} ;
330 EOF
331
332 %build
333 %if %{with python}
334 PYTHON_VERSION=$(%{__python} -c 'import sys; print sys.version[0:3]')
335 PYTHON_ROOT=%{_prefix}
336 %else
337 PYTHON_ROOT=
338 PYTHON_VERSION=
339 %endif
340 EXPAT_INCLUDE=%{_includedir} \
341 EXPAT_LIBPATH=%{_libdir} \
342 ICU_PATH=%{_prefix} \
343 bjam \
344         -d2 --toolset=gcc \
345         variant=release debug-symbols=on inlining=on link=static,shared threading=multi
346
347 %install
348 rm -rf $RPM_BUILD_ROOT
349 install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
350
351 cp -rf boost $RPM_BUILD_ROOT%{_includedir}
352
353 install bin.v2/libs/*/build/gcc-*/release/debug-symbols-on/inlining-on/link-static/threading-multi/lib*.a $RPM_BUILD_ROOT%{_libdir}
354 install bin.v2/libs/*/build/gcc-*/release/debug-symbols-on/inlining-on/threading-multi/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
355
356 # create symlinks without -gccXX-mt-* things in names
357 for f in $RPM_BUILD_ROOT%{_libdir}/*.so.*.*.*; do
358         [ -f "$f" ] || continue
359         f=$(basename "$f")
360         soname=$(basename "$f" | sed -e 's#-gcc..-mt-.*#.so#g')
361         ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/$soname"
362 done
363 for f in $RPM_BUILD_ROOT%{_libdir}/*.a; do
364         [ -f "$f" ] || continue
365         f=$(basename "$f")
366         soname=$(basename "$f" | sed -e 's#-gcc..-mt-.*#.a#g')
367         ln -s "$f" "$RPM_BUILD_ROOT%{_libdir}/$soname"
368 done
369
370 # documentation
371 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
372
373 # as the documentation doesn't completely reside in a directory of its
374 # own, we need to find out ourselves... this looks for HTML files and
375 # then collects everything linked from those.  this is certainly quite
376 # unoptimized wrt mkdir calls, but does it really matter?
377 installdocs() {
378 for i in $(find -type f -name '*.htm*'); do
379         # bjam docu is included in the boost-jam RPM
380         if test "`echo $i | sed 's,jam_src,,'`" = "$i"; then
381                 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/${i%/*}
382                 for LINKED in `%{__perl} - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
383                         sub rewrite_link
384                         {
385                                 my $link = shift;
386                                 # rewrite links from boost/* to %{_includedir}/boost/* and
387                                 # ignore external links as well as document-internal ones.
388                                 # HTML files are also ignored as they get installed anyway.
389                                 if (!($link =~ s,^(?:../)*boost/,%{_includedir}/boost/,) && !($link =~ m,(?:^[^/]+:|^\#|\.html?(?:$|\#)),))
390                                 {
391                                         (my $file = $link) =~ s/\#.*//;
392                                         print "$file\n";
393                                 }
394                                 $link;
395                         }
396                         open IN, @ARGV[0];
397                         open OUT, ">@ARGV[1]";
398                         my $in_link;
399                         while (<IN>)
400                         {
401                                 $in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e;
402                                 s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig;
403                                 print OUT;
404                                 $in_link = /href|src=\s*$/;
405                         }
406 EOT`; do
407                         TARGET=${i%/*}/$LINKED
408                         # ignore non-existant linked files
409                         if test -f $TARGET; then
410                                 install -D -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET
411                         fi
412                 done
413         fi
414 done
415 }; installdocs
416
417 %clean
418 rm -rf $RPM_BUILD_ROOT
419
420 %post   -p /sbin/ldconfig
421 %postun -p /sbin/ldconfig
422
423 %post   date_time -p /sbin/ldconfig
424 %postun date_time -p /sbin/ldconfig
425
426 %post   filesystem -p /sbin/ldconfig
427 %postun filesystem -p /sbin/ldconfig
428
429 %post   graph -p /sbin/ldconfig
430 %postun graph -p /sbin/ldconfig
431
432 %post   python -p /sbin/ldconfig
433 %postun python -p /sbin/ldconfig
434
435 %post   program_options -p /sbin/ldconfig
436 %postun program_options -p /sbin/ldconfig
437
438 %post   regex -p /sbin/ldconfig
439 %postun regex -p /sbin/ldconfig
440
441 %post   signals -p /sbin/ldconfig
442 %postun signals -p /sbin/ldconfig
443
444 %post   system -p /sbin/ldconfig
445 %postun system -p /sbin/ldconfig
446
447 %post   test -p /sbin/ldconfig
448 %postun test -p /sbin/ldconfig
449
450 %post   wave -p /sbin/ldconfig
451 %postun wave -p /sbin/ldconfig
452
453 %post   thread -p /sbin/ldconfig
454 %postun thread -p /sbin/ldconfig
455
456 %files
457 %defattr(644,root,root,755)
458 %attr(755,root,root) %{_libdir}/libboost_iostreams*.so.*.*.*
459 %attr(755,root,root) %{_libdir}/libboost_serialization*.so.*.*.*
460 %attr(755,root,root) %{_libdir}/libboost_wserialization*.so.*.*.*
461
462 %files devel
463 %defattr(644,root,root,755)
464 %{_includedir}/boost
465 %attr(755,root,root) %{_libdir}/libboost_date_time*.so
466 %attr(755,root,root) %{_libdir}/libboost_filesystem*.so
467 %attr(755,root,root) %{_libdir}/libboost_graph*.so
468 %attr(755,root,root) %{_libdir}/libboost_iostreams*.so
469 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor*.so
470 %attr(755,root,root) %{_libdir}/libboost_program_options*.so
471 %attr(755,root,root) %{_libdir}/libboost_regex*.so
472 %attr(755,root,root) %{_libdir}/libboost_serialization*.so
473 %attr(755,root,root) %{_libdir}/libboost_signals*.so
474 %attr(755,root,root) %{_libdir}/libboost_system*.so
475 %attr(755,root,root) %{_libdir}/libboost_thread*.so
476 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework*.so
477 %attr(755,root,root) %{_libdir}/libboost_wave*.so
478 %attr(755,root,root) %{_libdir}/libboost_wserialization*.so
479
480 %files static
481 %defattr(644,root,root,755)
482 %{_libdir}/libboost_date_time*.a
483 %{_libdir}/libboost_filesystem*.a
484 %{_libdir}/libboost_grap*.a
485 %{_libdir}/libboost_iostreams*.a
486 %{_libdir}/libboost_prg_exec_monitor*.a
487 %{_libdir}/libboost_program_options*.a
488 %{_libdir}/libboost_regex*.a
489 %{_libdir}/libboost_serialization*.a
490 %{_libdir}/libboost_signals*.a
491 %{_libdir}/libboost_system*.a
492 %{_libdir}/libboost_test_exec_monitor*.a
493 %{_libdir}/libboost_thread*.a
494 %{_libdir}/libboost_unit_test_framework*.a
495 %{_libdir}/libboost_wave*.a
496 %{_libdir}/libboost_wserialization*.a
497
498 %if %{with python}
499 %files python
500 %defattr(644,root,root,755)
501 %attr(755,root,root) %{_libdir}/libboost_python*.so.*.*.*
502
503 %files python-devel
504 %defattr(644,root,root,755)
505 %attr(755,root,root) %{_libdir}/libboost_python*.so
506 %{_includedir}/boost/python
507 %{_includedir}/boost/python.hpp
508
509 %files python-static
510 %defattr(644,root,root,755)
511 %{_libdir}/libboost_python*.a
512 %endif
513
514 %files date_time
515 %defattr(644,root,root,755)
516 %attr(755,root,root) %{_libdir}/libboost_date_time*.so.*.*.*
517
518 %files filesystem
519 %defattr(644,root,root,755)
520 %attr(755,root,root) %{_libdir}/libboost_filesystem*.so.*.*.*
521
522 %files graph
523 %defattr(644,root,root,755)
524 %attr(755,root,root) %{_libdir}/libboost_graph*.so.*.*.*
525
526 %files program_options
527 %defattr(644,root,root,755)
528 %attr(755,root,root) %{_libdir}/libboost_program_options*.so.*.*.*
529
530 %files regex
531 %defattr(644,root,root,755)
532 %attr(755,root,root) %{_libdir}/libboost_regex*.so.*.*.*
533
534 %files signals
535 %defattr(644,root,root,755)
536 %attr(755,root,root) %{_libdir}/libboost_signals*.so.*.*.*
537
538 %files system
539 %defattr(644,root,root,755)
540 %attr(755,root,root) %{_libdir}/libboost_system*.so.*.*.*
541
542 %files test
543 %defattr(644,root,root,755)
544 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor*.so.*.*.*
545 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework*.so.*.*.*
546
547 %files thread
548 %defattr(644,root,root,755)
549 %attr(755,root,root) %{_libdir}/libboost_thread*.so.*.*.*
550
551 %files wave
552 %defattr(644,root,root,755)
553 %attr(755,root,root) %{_libdir}/libboost_wave*.so.*.*.*
554
555 %files doc
556 %defattr(644,root,root,755)
557 %{_docdir}/%{name}-%{version}
This page took 0.068351 seconds and 3 git commands to generate.