]> git.pld-linux.org Git - packages/boost.git/blob - boost.spec
up to 1.81.0
[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  python2         # boost-python[2] support
8 %bcond_without  python3         # boost-python3 support
9 %bcond_without  numpy           # boost-numpy support
10 %bcond_without  doc             # don't package documentation
11
12 %define         fver    %(echo %{version} | tr . _)
13 Summary:        The Boost C++ Libraries
14 Summary(pl.UTF-8):      Biblioteki C++ "Boost"
15 Name:           boost
16 Version:        1.81.0
17 Release:        1
18 License:        Boost Software License and others
19 Group:          Libraries
20 Source0:        https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{fver}.tar.bz2
21 # Source0-md5:  3276c0637d1be8687740c550237ef999
22 Patch0:         %{name}-link.patch
23 Patch1:         %{name}-clean-gcc-flags.patch
24 Patch2:         %{name}-fallthrough.patch
25 # FC Patches:
26 Patch201:       %{name}-python-abi_letters.patch
27 # https://svn.boost.org/trac/boost/ticket/5637
28 Patch203:       %{name}-1.54.0-mpl-print.patch
29 # https://svn.boost.org/trac/boost/ticket/8881
30 Patch221:       %{name}-1.54.0-mpi-unused_typedef.patch
31 URL:            http://www.boost.org/
32 BuildRequires:  bzip2-devel
33 BuildRequires:  expat-devel
34 BuildRequires:  libicu-devel
35 BuildRequires:  libstdc++-devel >= 6:4.7
36 BuildRequires:  perl-base
37 %if %{with python2}
38 BuildRequires:  python-devel >= 2.2
39 %{?with_numpy:BuildRequires:    python-numpy-devel}
40 %endif
41 %if %{with python3}
42 BuildRequires:  python3-devel
43 %{?with_numpy:BuildRequires:    python3-numpy-devel}
44 %endif
45 BuildRequires:  rpm-build >= 4.6
46 BuildRequires:  rpm-pythonprov
47 BuildRequires:  rpmbuild(macros) >= 1.750
48 BuildRequires:  zlib-devel
49 Obsoletes:      boost-signals < 1.69
50 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51
52 %define         specflags       -DBOOST_IOSTREAMS_USE_DEPRECATED=1
53
54 %define         py2v %(echo %{py_ver} | tr -d .)
55 %define         py3v %(echo %{py3_ver} | tr -d .)
56
57 %if %{_ver_ge "%{py3_ver}" "3.8"}
58 %define         py3v_suffix ""
59 %else
60 %define         py3v_suffix "m"
61 %endif
62
63 %description
64 The Boost web site provides free peer-reviewed portable C++ source
65 libraries. The emphasis is on libraries which work well with the C++
66 Standard Library. One goal is to establish "existing practice" and
67 provide reference implementations so that the Boost libraries are
68 suitable for eventual standardization. Some of the libraries have
69 already been proposed for inclusion in the C++ Standards Committee's
70 upcoming C++ Standard Library Technical Report.
71
72 %description -l pl.UTF-8
73 Strona http://www.boost.org/ dostarcza darmowe biblioteki C++ wraz z
74 kodem źródłowym. Nacisk położono na biblioteki, które dobrze
75 współpracują ze standardową biblioteką C++. Celem jest ustanowienie
76 "istniejącej praktyki" i dostarczenie implementacji, tak że biblioteki
77 "Boost" nadają się do ewentualnej standaryzacji. Niektóre z bibliotek
78 już zostały zgłoszone do komitetu standaryzacyjnego C++ w nadchodzącym
79 Raporcie Technicznym Biblioteki Standardowej C++.
80
81 %package devel
82 Summary:        Boost C++ development headers
83 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek C++ Boost
84 Group:          Development/Libraries
85 Requires:       %{name} = %{version}-%{release}
86 Requires:       %{name}-chrono = %{version}-%{release}
87 Requires:       %{name}-context = %{version}-%{release}
88 Requires:       %{name}-date_time = %{version}-%{release}
89 Requires:       %{name}-fiber = %{version}-%{release}
90 Requires:       %{name}-filesystem = %{version}-%{release}
91 Requires:       %{name}-graph = %{version}-%{release}
92 Requires:       %{name}-json = %{version}-%{release}
93 Requires:       %{name}-locale = %{version}-%{release}
94 Requires:       %{name}-log = %{version}-%{release}
95 Requires:       %{name}-program_options = %{version}-%{release}
96 Requires:       %{name}-regex = %{version}-%{release}
97 Requires:       %{name}-system = %{version}-%{release}
98 Requires:       %{name}-test = %{version}-%{release}
99 Requires:       %{name}-thread = %{version}-%{release}
100 Requires:       %{name}-timer = %{version}-%{release}
101 Requires:       %{name}-url = %{version}-%{release}
102 Requires:       %{name}-wave = %{version}-%{release}
103 Requires:       libstdc++-devel >= 6:4.7
104 Obsoletes:      boost-any-devel < 1.35
105 Obsoletes:      boost-array-devel < 1.35
106 Obsoletes:      boost-asio < 1.3.0
107 Obsoletes:      boost-bind-devel < 1.35
108 Obsoletes:      boost-call_traits-devel < 1.34.1-2
109 Obsoletes:      boost-compatibility-devel < 1.35
110 Obsoletes:      boost-compose-devel < 1.31
111 Obsoletes:      boost-compressed_pair-devel < 1.35
112 Obsoletes:      boost-concept_check-devel < 1.33.1-1
113 Obsoletes:      boost-conversion-devel < 1.33.1-1
114 Obsoletes:      boost-crc-devel < 1.35
115 Obsoletes:      boost-date_time-devel < 1.35
116 Obsoletes:      boost-filesystem-devel < 1.35
117 Obsoletes:      boost-graph-devel < 1.35
118 Obsoletes:      boost-mem_fn-devel < 1.33.1-1
119 Obsoletes:      boost-mpl-devel < 1.33.1-1
120 Obsoletes:      boost-preprocessor-devel < 1.33.1-1
121 Obsoletes:      boost-program_options-devel < 1.35
122 Obsoletes:      boost-ref-devel < 1.34.1-2
123 Obsoletes:      boost-regex-devel < 1.35
124 Obsoletes:      boost-signals-devel < 1.35
125 Obsoletes:      boost-spirit-devel < 1.35
126 Obsoletes:      boost-statechart-devel < 1.35
127 Obsoletes:      boost-static_assert-devel < 1.33.1-1
128 Obsoletes:      boost-test-devel < 1.35
129 Obsoletes:      boost-thread-devel < 1.35
130 Obsoletes:      boost-tr1-devel < 1.35
131 Obsoletes:      boost-type_traits-devel < 1.33.1-1
132 Obsoletes:      boost-typeof-devel < 1.35
133 Obsoletes:      boost-uBLAS-devel < 1.35
134 Obsoletes:      boost-utility-devel < 1.33.1-1
135 Obsoletes:      boost-wave-devel < 1.35
136 Obsoletes:      boost-xpressive-devel < 1.35
137
138 %description devel
139 Header files for the Boost C++ libraries.
140
141 %description devel -l pl.UTF-8
142 Pliki nagłówkowe bibliotek C++ Boost.
143
144 %package static
145 Summary:        Static version of base Boost C++ libraries
146 Summary(pl.UTF-8):      Statyczne wersje podstawowych bibliotek C++ Boost
147 Group:          Development/Libraries
148 Requires:       %{name}-devel = %{version}-%{release}
149 Obsoletes:      boost-date_time-static < 1.35
150 Obsoletes:      boost-filesystem-static < 1.35
151 Obsoletes:      boost-graph-static < 1.35
152 Obsoletes:      boost-program_options-static < 1.35
153 Obsoletes:      boost-regex-static < 1.35
154 Obsoletes:      boost-signals-static < 1.35
155 Obsoletes:      boost-test-static < 1.35
156 Obsoletes:      boost-thread-static < 1.35
157 Obsoletes:      boost-wave-static < 1.35
158
159 %description static
160 Static version of base Boost C++ libraries.
161
162 %description static -l pl.UTF-8
163 Statyczne wersje podstawowych bibliotek C++ Boost.
164
165 %package python-devel-common
166 Summary:        Boost.Python development headers
167 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki Boost.Python
168 Group:          Development/Libraries
169 Requires:       %{name}-devel = %{version}-%{release}
170
171 %description python-devel-common
172 Headers for the Boost.Python library.
173
174 %description python-devel-common -l pl.UTF-8
175 Pliki nagłówkowe biblioteki Boost.Python.
176
177 %package python
178 Summary:        Boost.Python library for Python 2
179 Summary(pl.UTF-8):      Biblioteka Boost.Python dla Pythona 2
180 Group:          Libraries
181 Requires:       python-libs
182
183 %description python
184 Use the Boost Python Library to quickly and easily export a C++
185 library to Python 2 such that the Python 2 interface is very similar
186 to the C++ interface. It is designed to be minimally intrusive on your
187 C++ design. In most cases, you should not have to alter your C++
188 classes in any way in order to use them with Boost.Python. The system
189 should simply ``reflect'' your C++ classes and functions into Python
190 3.
191
192 %description python -l pl.UTF-8
193 Biblioteka Boost Python służy do szybkiego i prostego eksportu
194 biblioteki C++ do Pythona 2, tak że interfejs Pythona 2 jest bardzo
195 podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby
196 narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W
197 większości przypadków nie trzeba w ogóle zmieniać własnych klas C++,
198 żeby używać ich z Boost.Python. System powinien po prostu ,,odbić''
199 klasy C++ i funkcje do Pythona 3.
200
201 %package python-devel
202 Summary:        Boost.Python development files for Python 2
203 Summary(pl.UTF-8):      Pliki programistyczne biblioteki Boost.Python dla Pythona 2
204 Group:          Development/Libraries
205 Requires:       %{name}-devel = %{version}-%{release}
206 Requires:       %{name}-python = %{version}-%{release}
207 Requires:       %{name}-python-devel-common = %{version}-%{release}
208
209 %description python-devel
210 Boost.Python development files for Python 2.
211
212 %description python-devel -l pl.UTF-8
213 Pliki programistyczne biblioteki Boost.Python dla Pythona 2.
214
215 %package python-static
216 Summary:        Static version of Boost.Python library for Python 2
217 Summary(pl.UTF-8):      Statyczna wersja biblioteki Boost.Python dla Pythona 2
218 Group:          Development/Libraries
219 Requires:       %{name}-python-devel = %{version}-%{release}
220
221 %description python-static
222 Static version of Boost.Python library for Python 2.
223
224 %description python-static -l pl.UTF-8
225 Statyczna wersja biblioteki Boost.Python dla Pythona 2.
226
227 %package python3
228 Summary:        Boost.Python library for Python 3
229 Summary(pl.UTF-8):      biblioteka Boost.Python dla Pythona 3
230 Group:          Libraries
231 Requires:       python3-libs
232
233 %description python3
234 Use the Boost Python Library to quickly and easily export a C++
235 library to Python 3 such that the Python 3 interface is very similar
236 to the C++ interface. It is designed to be minimally intrusive on your
237 C++ design. In most cases, you should not have to alter your C++
238 classes in any way in order to use them with Boost.Python. The system
239 should simply ``reflect'' your C++ classes and functions into Python
240 3.
241
242 %description python3 -l pl.UTF-8
243 Biblioteka Boost Python służy do szybkiego i prostego eksportu
244 biblioteki C++ do Pythona 3, tak że interfejs Pythona 3 jest bardzo
245 podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby
246 narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W
247 większości przypadków nie trzeba w ogóle zmieniać własnych klas C++,
248 żeby używać ich z Boost.Python. System powinien po prostu ,,odbić''
249 klasy C++ i funkcje do Pythona 3.
250
251 %package python3-devel
252 Summary:        Boost.Python development files for Python 3
253 Summary(pl.UTF-8):      Pliki programistyczne biblioteki Boost.Python dla Pythona 3
254 Group:          Development/Libraries
255 Requires:       %{name}-devel = %{version}-%{release}
256 Requires:       %{name}-python-devel-common = %{version}-%{release}
257 Requires:       %{name}-python3 = %{version}-%{release}
258
259 %description python3-devel
260 Boost.Python development files for Python 3.
261
262 %description python3-devel -l pl.UTF-8
263 Pliki programistyczne biblioteki Boost.Python dla Pythona 3.
264
265 %package python3-static
266 Summary:        Static version of Boost.Python library for Python 3
267 Summary(pl.UTF-8):      Statyczna wersja biblioteki Boost.Python dla Pythona 3
268 Group:          Development/Libraries
269 Requires:       %{name}-python3-devel = %{version}-%{release}
270
271 %description python3-static
272 Static version of Boost.Python library for Python 3.
273
274 %description python3-static -l pl.UTF-8
275 Statyczna wersja biblioteki Boost.Python dla Pythona 3.
276
277 %package chrono
278 Summary:        Useful time utilities
279 Summary(pl.UTF-8):      Przydatne funkcje związane z czasem
280 Group:          Libraries
281 Obsoletes:      boost < 1.33
282
283 %description chrono
284 Useful time utilities.
285
286 %description chrono -l pl.UTF-8
287 Przydatne funkcje związane z czasem.
288
289 %package context
290 Summary:        Boost.Context - context switching library
291 Summary(pl.UTF-8):      Boost.Context - biblioteka do zmiany kontekstu
292 Group:          Libraries
293
294 %description context
295 Boost.Context - context switching library, providing a sort of
296 cooperative multitasking on a single thread.
297
298 %description context -l pl.UTF-8
299 Boost.Context - biblioteka do zmiany kontekstu, zapewniająca pewną
300 wielozadaniowość kooperatywnąw ramach pojedynczego wątku.
301
302 %package date_time
303 Summary:        Date-Time library
304 Summary(pl.UTF-8):      Biblioteka daty-czasu
305 Group:          Libraries
306 Obsoletes:      boost < 1.33
307
308 %description date_time
309 A set of date-time libraries.
310
311 %description date_time -l pl.UTF-8
312 Zbiór bibliotek daty-czasu.
313
314 %package fiber
315 Summary:        A framework for micro-/userland-threads (fibers) scheduled cooperatively
316 Summary(pl.UTF-8):      Szkielet mikrowątków przestrzeni użytkownika (fibers), szeregowanych kooperacyjnie
317 Group:          Libraries
318
319 %description fiber
320 boost::fiber provides a framework for micro-/userland-threads (fibers)
321 scheduled cooperatively. The API contains classes and functions
322 to manage and synchronize fibers similiar to boost.thread.
323
324 %description fiber -l pl.UTF-8
325 boost::fiber to szkielt mikrowątków przestrzeni użytkownika (fibers)
326 szeregowanych kooperacyjnie. API zawiera klasy i funkcje służące do
327 zarządzania i synchronizacji wątków podobne do boost.thread.
328
329 %package filesystem
330 Summary:        Portable paths, iteration over directories, and other useful filesystem operations
331 Summary(pl.UTF-8):      Przenośne ścieżki, iteracje katalogów i inne użyteczne operacje na systemie plików
332 Group:          Libraries
333 Requires:       %{name}-system = %{version}-%{release}
334 Obsoletes:      boost < 1.33
335
336 %description filesystem
337 The boost::filesystem library provides portable facilities to query
338 and manipulate paths, files, and directories.
339
340 %description filesystem -l pl.UTF-8
341 Przenośna biblioteka boost::filesystem dostarcza ułatwienia w
342 operacjach na ścieżkach, plikach i katalogach.
343
344 %package graph
345 Summary:        General purpose, generic C++ library for graph data structures and graph algorithms
346 Summary(pl.UTF-8):      Biblioteka ogólnego przeznaczenia w C++ dla struktur danych typu grafy oraz algorytmów związanych z grafami
347 Group:          Libraries
348
349 %description graph
350 The boost::graph library provides portable facilities to operate on
351 graph data structures using graph algorithms.
352
353 %description graph -l pl.UTF-8
354 Przenośna biblioteka boost::graph dostarcza ułatwienia w operacjach na
355 strukturach danych typu graf za pomocą algorytmów związanych z
356 grafami.
357
358 %package json
359 Summary:        Boost.JSON - a portable C++ JSON library
360 Summary(pl.UTF-8):      Boost.JSON - przenośna biblioteka C++ dla formatu JSON
361 Group:          Development/Libraries
362
363 %description json
364 Boost.JSON is a portable C++ library which provides containers and
365 algorithms that implement JavaScript Object Notation, or simply
366 "JSON", a lightweight data-interchange format.
367
368 %description json -l pl.UTF-8
369 Boost.JSON to przenośna biblioteka C++, która dostarcza kontenery oraz
370 algorytmy implementujące JavaScript Object Notation, lub po prostu
371 "JSON", lekki format wymiany danych.
372
373 %package locale
374 Summary:        Provide localization and Unicode handling tools for C++
375 Summary(pl.UTF-8):      Narzędzia do obsługi lokalizacji i Unikodu w C++
376 Group:          Libraries
377
378 %description locale
379 Provide localization and Unicode handling tools for C++.
380
381 %description locale -l pl.UTF-8
382 Narzędzia do obsługi lokalizacji i Unikodu w C++.
383
384 %package log
385 Summary:        Provide logging tools for C++
386 Summary(pl.UTF-8):      Narzędzia do logowania w C++
387 Group:          Libraries
388
389 %description log
390 Provide logging tools for C++.
391
392 %description log -l pl.UTF-8
393 Narzędzia do logowania w C++.
394
395 %package program_options
396 Summary:        Access to program options, via conventional methods such as command line and config file
397 Summary(pl.UTF-8):      Dostęp do opcji programu za pomocą typowych metod, jak linia poleceń i plik konfiguracyjny
398 Group:          Libraries
399
400 %description program_options
401 The program_options library allows program developers to obtain
402 program options, that is (name, value) pairs from the user, via
403 conventional methods such as command line and config file.
404
405 %description program_options -l pl.UTF-8
406 Biblioteka program_options umożliwia uzyskanie od użytkownika opcji
407 programu, czyli par (nazwa, wartość), za pomocą typowych metod, takich
408 jak linia poleceń, czy plik konfiguracyjny.
409
410 %package regex
411 Summary:        Boost C++ regular expressions library
412 Summary(pl.UTF-8):      Biblioteka wyrażeń regularnych Boost C++
413 Group:          Libraries
414
415 %description regex
416 Shared library for Boost C++ regular expressions.
417
418 %description regex -l pl.UTF-8
419 Biblioteka współdzielona do obsługi wyrażeń regularnych w C++.
420
421 %package system
422 Summary:        Support for getting system specific error codes
423 Summary(pl.UTF-8):      Wsparcie dla pobierania specyficznych dla systemu kodów błędów
424 Group:          Libraries
425
426 %description system
427 The Boost System library provides simple, light-weight error_code
428 objects that encapsulate system-specific error code values, yet also
429 provide access to more abstract and portable error conditions objects.
430
431 %description system -l pl.UTF-8
432 Biblioteka Boost System udostępnia proste, lekkie obiekty error_code
433 obudowujące wartości kodów błędów specyficznych dla systemu, dając
434 jednocześnie dostęp do bardziej abstrakcyjnych i przenośnych obiektów
435 błędów.
436
437 %package test
438 Summary:        Support for program testing and execution monitoring
439 Summary(pl.UTF-8):      Wsparcie dla testowania i monitorowania programu
440 Group:          Libraries
441 Obsoletes:      boost < 1.33
442
443 %description test
444 Support for simple program testing, full unit testing, and for program
445 execution monitoring.
446
447 %description test -l pl.UTF-8
448 Wsparcie dla prostego testowania programu, pełnego testowania i
449 monitorowania wykonania programu.
450
451 %package thread
452 Summary:        Portable C++ threads library
453 Summary(pl.UTF-8):      Przenośna biblioteka wątków C++
454 Group:          Libraries
455 Obsoletes:      boost < 1.33
456
457 %description thread
458 Portable C++ threads library - shared library.
459
460 %description thread -l pl.UTF-8
461 Przenośna biblioteka wątków dla C++ - biblioteka dzielona.
462
463 %package timer
464 Summary:        Event timer, progress timer, and progress display classes
465 Summary(pl.UTF-8):      Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu
466 Group:          Libraries
467 Obsoletes:      boost < 1.33
468
469 %description timer
470 Event timer, progress timer, and progress display classes.
471
472 %description timer -l pl.UTF-8
473 Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu.
474
475 %package url
476 Summary:        Library for manipulating Uniform Resource Identifiers and Locators
477 Summary(pl.UTF-8):      Biblioteka do manipulacji Unfiform Resource Identifier i Locator
478 Group:          Libraries
479
480 %description url
481 Library for manipulating Uniform Resource Identifiers and Locators.
482
483 %description url -l pl.UTF-8
484 Biblioteka do manipulacji Unfiform Resource Identifier i Locator.
485
486 %package wave
487 Summary:        Boost.Wave - a standard compliant C++ preprocessor library
488 Summary(pl.UTF-8):      Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
489 Group:          Development/Libraries
490
491 %description wave
492 Boost.Wave - a standard compliant C++ preprocessor library.
493
494 %description wave -l pl.UTF-8
495 Boost.Wave - zgodna ze standardem biblioteka preprocesora C++.
496
497 %package doc
498 Summary:        Boost C++ Library documentation
499 Summary(pl.UTF-8):      Dokumentacja dla biblioteki Boost C++
500 Group:          Documentation
501 BuildArch:      noarch
502
503 %description doc
504 Documentation for the Boost C++ Library.
505
506 %description doc -l pl.UTF-8
507 Dokumentacja dla biblioteki Boost C++.
508
509 %prep
510 %setup -q -n %{name}_%{fver}
511 %patch0 -p1
512 %patch1 -p1
513 %patch2 -p1
514
515 %patch201 -p1
516 %patch203 -p0
517 %patch221 -p1
518
519 %if "%{cc_version}" < "6.0"
520 CPPSTD="-std=c++11"
521 %else
522 CPPSTD=
523 %endif
524 cat << EOF > tools/build/src/user-config.jam
525 using gcc : %{cxx_version} : %{__cxx} : <cflags>"%{rpmcflags} -fPIC" <cxxflags>"%{rpmcxxflags} $CPPSTD -fPIC" <linkflags>"%{rpmldflags}" ;
526 EOF
527
528 # cleanup backups after patching
529 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
530
531 %build
532 EXPAT_INCLUDE=%{_includedir} \
533 EXPAT_LIBPATH=%{_libdir} \
534 ICU_PATH=%{_prefix} \
535 ./bootstrap.sh \
536         --prefix=%{_prefix} \
537         -without-libraries=python
538
539 # x32 detection need help (it's autodetected as address-model=32 abi=sysv, while context build expects address-model=64 abi=x32)
540 ./b2 \
541         %{?__jobs:-j %{__jobs}} \
542         -d2 --toolset=gcc \
543 %ifarch x32
544         abi=x32 \
545         address-model=64 \
546 %endif
547         debug-symbols=on \
548         inlining=on \
549         link=static,shared \
550         threading=multi \
551         variant=release
552
553 %if %{with python3}
554 echo "using python : %{py3_ver} : %{py3_prefix} : %{py3_incdir} : : : : %{py3v_suffix} ;" >> project-config.jam
555 ./b2 \
556         %{?__jobs:-j %{__jobs}} \
557         --with-python python=%{py3_ver} \
558         -a -d2 --toolset=gcc \
559         debug-symbols=on \
560         inlining=on \
561         link=static,shared \
562         threading=multi \
563         variant=release
564 %endif
565
566 %if %{with python2}
567 %{__sed} -i -e '/^using python : 3/d' project-config.jam
568 echo "using python : %{py_ver} : %{py_prefix} : %{py_incdir} ;" >> project-config.jam
569 ./b2 \
570         %{?__jobs:-j %{__jobs}} \
571         --with-python python=%{py_ver} \
572         -a -d2 --toolset=gcc \
573         debug-symbols=on \
574         inlining=on \
575         link=static,shared \
576         threading=multi \
577         variant=release
578 %endif
579
580 %install
581 rm -rf $RPM_BUILD_ROOT
582 install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
583
584 cp -rf boost $RPM_BUILD_ROOT%{_includedir}
585
586 install -p stage/lib/lib*.a $RPM_BUILD_ROOT%{_libdir}
587 install -p stage/lib/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
588 cp -a stage/lib/lib*.so $RPM_BUILD_ROOT%{_libdir}
589
590 %if %{with doc}
591 # documentation
592 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
593
594 # as the documentation doesn't completely reside in a directory of its
595 # own, we need to find out ourselves... this looks for HTML files and
596 # then collects everything linked from those.  this is certainly quite
597 # unoptimized wrt mkdir calls, but does it really matter?
598 installdocs() {
599 for i in $(find -type f -name '*.htm*'); do
600         # bjam docu is included in the boost-jam RPM
601         if test "`echo $i | sed 's,jam_src,,'`" = "$i"; then
602                 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/${i%/*}
603                 for LINKED in `%{__perl} - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
604                         sub rewrite_link
605                         {
606                                 my $link = shift;
607                                 # rewrite links from boost/* to %{_includedir}/boost/* and
608                                 # ignore external links as well as document-internal ones.
609                                 # HTML files are also ignored as they get installed anyway.
610                                 if (!($link =~ s,^(?:../)*boost/,%{_includedir}/boost/,) && !($link =~ m,(?:^[^/]+:|^\#|\.html?(?:$|\#)),))
611                                 {
612                                         (my $file = $link) =~ s/\#.*//;
613                                         print "$file\n";
614                                 }
615                                 $link;
616                         }
617                         open IN, @ARGV[0];
618                         open OUT, ">@ARGV[1]";
619                         my $in_link;
620                         while (<IN>)
621                         {
622                                 $in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e;
623                                 s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig;
624                                 print OUT;
625                                 $in_link = /href|src=\s*$/;
626                         }
627 EOT`; do
628                         TARGET=${i%/*}/$LINKED
629                         # ignore non-existant linked files
630                         if test -f $TARGET; then
631                                 install -D -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET
632                         fi
633                 done
634         fi
635 done
636 }; installdocs
637 %endif
638
639 %clean
640 rm -rf $RPM_BUILD_ROOT
641
642 %post   -p /sbin/ldconfig
643 %postun -p /sbin/ldconfig
644
645 %post   chrono -p /sbin/ldconfig
646 %postun chrono -p /sbin/ldconfig
647
648 %post   context -p /sbin/ldconfig
649 %postun context -p /sbin/ldconfig
650
651 %post   date_time -p /sbin/ldconfig
652 %postun date_time -p /sbin/ldconfig
653
654 %post   fiber -p /sbin/ldconfig
655 %postun fiber -p /sbin/ldconfig
656
657 %post   filesystem -p /sbin/ldconfig
658 %postun filesystem -p /sbin/ldconfig
659
660 %post   graph -p /sbin/ldconfig
661 %postun graph -p /sbin/ldconfig
662
663 %post   json -p /sbin/ldconfig
664 %postun json -p /sbin/ldconfig
665
666 %post   locale -p /sbin/ldconfig
667 %postun locale -p /sbin/ldconfig
668
669 %post   python -p /sbin/ldconfig
670 %postun python -p /sbin/ldconfig
671
672 %post   python3 -p /sbin/ldconfig
673 %postun python3 -p /sbin/ldconfig
674
675 %post   program_options -p /sbin/ldconfig
676 %postun program_options -p /sbin/ldconfig
677
678 %post   regex -p /sbin/ldconfig
679 %postun regex -p /sbin/ldconfig
680
681 %post   system -p /sbin/ldconfig
682 %postun system -p /sbin/ldconfig
683
684 %post   test -p /sbin/ldconfig
685 %postun test -p /sbin/ldconfig
686
687 %post   thread -p /sbin/ldconfig
688 %postun thread -p /sbin/ldconfig
689
690 %post   timer -p /sbin/ldconfig
691 %postun timer -p /sbin/ldconfig
692
693 %post   url -p /sbin/ldconfig
694 %postun url -p /sbin/ldconfig
695
696 %post   wave -p /sbin/ldconfig
697 %postun wave -p /sbin/ldconfig
698
699 %files
700 %defattr(644,root,root,755)
701 %attr(755,root,root) %{_libdir}/libboost_atomic.so.*.*.*
702 %attr(755,root,root) %{_libdir}/libboost_container.so.*.*.*
703 %attr(755,root,root) %{_libdir}/libboost_contract.so.*.*.*
704 %attr(755,root,root) %{_libdir}/libboost_coroutine.so.*.*.*
705 %attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.*
706 %attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.*
707 %attr(755,root,root) %{_libdir}/libboost_nowide.so.*.*.*
708 %attr(755,root,root) %{_libdir}/libboost_random.so.*.*.*
709 %attr(755,root,root) %{_libdir}/libboost_serialization.so.*.*.*
710 %attr(755,root,root) %{_libdir}/libboost_stacktrace_*.so.*.*.*
711 %attr(755,root,root) %{_libdir}/libboost_type_erasure.so.*.*.*
712 %attr(755,root,root) %{_libdir}/libboost_wserialization.so.*.*.*
713
714 %files devel
715 %defattr(644,root,root,755)
716 %attr(755,root,root) %{_libdir}/libboost_atomic.so
717 %attr(755,root,root) %{_libdir}/libboost_chrono.so
718 %attr(755,root,root) %{_libdir}/libboost_container.so
719 %attr(755,root,root) %{_libdir}/libboost_context.so
720 %attr(755,root,root) %{_libdir}/libboost_contract.so
721 %attr(755,root,root) %{_libdir}/libboost_coroutine.so
722 %attr(755,root,root) %{_libdir}/libboost_date_time.so
723 %attr(755,root,root) %{_libdir}/libboost_fiber.so
724 %attr(755,root,root) %{_libdir}/libboost_filesystem.so
725 %attr(755,root,root) %{_libdir}/libboost_graph.so
726 %attr(755,root,root) %{_libdir}/libboost_iostreams.so
727 %attr(755,root,root) %{_libdir}/libboost_json.so
728 %attr(755,root,root) %{_libdir}/libboost_locale.so
729 %attr(755,root,root) %{_libdir}/libboost_log.so
730 %attr(755,root,root) %{_libdir}/libboost_log_setup.so
731 %attr(755,root,root) %{_libdir}/libboost_math_*.so
732 %attr(755,root,root) %{_libdir}/libboost_nowide.so
733 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so
734 %attr(755,root,root) %{_libdir}/libboost_program_options.so
735 %attr(755,root,root) %{_libdir}/libboost_regex.so
736 %attr(755,root,root) %{_libdir}/libboost_random.so
737 %attr(755,root,root) %{_libdir}/libboost_serialization.so
738 %attr(755,root,root) %{_libdir}/libboost_stacktrace_*.so
739 %attr(755,root,root) %{_libdir}/libboost_system.so
740 %attr(755,root,root) %{_libdir}/libboost_thread.so
741 %attr(755,root,root) %{_libdir}/libboost_timer.so
742 %attr(755,root,root) %{_libdir}/libboost_type_erasure.so
743 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so
744 %attr(755,root,root) %{_libdir}/libboost_url.so
745 %attr(755,root,root) %{_libdir}/libboost_wave.so
746 %attr(755,root,root) %{_libdir}/libboost_wserialization.so
747 %{_includedir}/boost
748 %exclude %{_includedir}/boost/python
749 %exclude %{_includedir}/boost/python.hpp
750
751 %files static
752 %defattr(644,root,root,755)
753 %{_libdir}/libboost_atomic.a
754 %{_libdir}/libboost_chrono.a
755 %{_libdir}/libboost_container.a
756 %{_libdir}/libboost_context.a
757 %{_libdir}/libboost_contract.a
758 %{_libdir}/libboost_coroutine.a
759 %{_libdir}/libboost_date_time.a
760 %{_libdir}/libboost_exception.a
761 %{_libdir}/libboost_fiber.a
762 %{_libdir}/libboost_filesystem.a
763 %{_libdir}/libboost_graph.a
764 %{_libdir}/libboost_iostreams.a
765 %{_libdir}/libboost_json.a
766 %{_libdir}/libboost_locale.a
767 %{_libdir}/libboost_log.a
768 %{_libdir}/libboost_log_setup.a
769 %{_libdir}/libboost_math_*.a
770 %{_libdir}/libboost_nowide.a
771 %{_libdir}/libboost_prg_exec_monitor.a
772 %{_libdir}/libboost_program_options.a
773 %{_libdir}/libboost_random.a
774 %{_libdir}/libboost_regex.a
775 %{_libdir}/libboost_serialization.a
776 %{_libdir}/libboost_stacktrace_*.a
777 %{_libdir}/libboost_system.a
778 %{_libdir}/libboost_test_exec_monitor.a
779 %{_libdir}/libboost_timer.a
780 %{_libdir}/libboost_url.a
781 %{_libdir}/libboost_thread.a
782 %{_libdir}/libboost_type_erasure.a
783 %{_libdir}/libboost_unit_test_framework.a
784 %{_libdir}/libboost_wave.a
785 %{_libdir}/libboost_wserialization.a
786
787 %if %{with python2} || %{with python3}
788 %files python-devel-common
789 %defattr(644,root,root,755)
790 %{_includedir}/boost/python
791 %{_includedir}/boost/python.hpp
792 %endif
793
794 %if %{with python2}
795 %files python
796 %defattr(644,root,root,755)
797 %if %{with numpy}
798 %attr(755,root,root) %{_libdir}/libboost_numpy%{py2v}.so.*.*.*
799 %endif
800 %attr(755,root,root) %{_libdir}/libboost_python%{py2v}.so.*.*.*
801
802 %files python-devel
803 %defattr(644,root,root,755)
804 %if %{with numpy}
805 %attr(755,root,root) %{_libdir}/libboost_numpy%{py2v}.so
806 %endif
807 %attr(755,root,root) %{_libdir}/libboost_python%{py2v}.so
808
809 %files python-static
810 %defattr(644,root,root,755)
811 %if %{with numpy}
812 %{_libdir}/libboost_numpy%{py2v}.a
813 %endif
814 %{_libdir}/libboost_python%{py2v}.a
815 %endif
816
817 %if %{with python3}
818 %files python3
819 %defattr(644,root,root,755)
820 %if %{with numpy}
821 %attr(755,root,root) %{_libdir}/libboost_numpy%{py3v}.so.*.*.*
822 %endif
823 %attr(755,root,root) %{_libdir}/libboost_python%{py3v}.so.*.*.*
824
825 %files python3-devel
826 %defattr(644,root,root,755)
827 %if %{with numpy}
828 %attr(755,root,root) %{_libdir}/libboost_numpy%{py3v}.so
829 %endif
830 %attr(755,root,root) %{_libdir}/libboost_python%{py3v}.so
831
832 %files python3-static
833 %defattr(644,root,root,755)
834 %if %{with numpy}
835 %{_libdir}/libboost_numpy%{py3v}.a
836 %endif
837 %{_libdir}/libboost_python%{py3v}.a
838 %endif
839
840 %files chrono
841 %defattr(644,root,root,755)
842 %attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.*
843
844 %files context
845 %defattr(644,root,root,755)
846 %attr(755,root,root) %{_libdir}/libboost_context.so.*.*.*
847
848 %files date_time
849 %defattr(644,root,root,755)
850 %attr(755,root,root) %{_libdir}/libboost_date_time.so.*.*.*
851
852 %files fiber
853 %defattr(644,root,root,755)
854 %attr(755,root,root) %{_libdir}/libboost_fiber.so.*.*.*
855
856 %files filesystem
857 %defattr(644,root,root,755)
858 %attr(755,root,root) %{_libdir}/libboost_filesystem.so.*.*.*
859
860 %files graph
861 %defattr(644,root,root,755)
862 %attr(755,root,root) %{_libdir}/libboost_graph.so.*.*.*
863
864 %files json
865 %defattr(644,root,root,755)
866 %attr(755,root,root) %{_libdir}/libboost_json.so.*.*.*
867
868 %files locale
869 %defattr(644,root,root,755)
870 %attr(755,root,root) %{_libdir}/libboost_locale.so.*.*.*
871
872 %files log
873 %defattr(644,root,root,755)
874 %attr(755,root,root) %{_libdir}/libboost_log.so.*.*.*
875 %attr(755,root,root) %{_libdir}/libboost_log_setup.so.*.*.*
876
877 %files program_options
878 %defattr(644,root,root,755)
879 %attr(755,root,root) %{_libdir}/libboost_program_options.so.*.*.*
880
881 %files regex
882 %defattr(644,root,root,755)
883 %attr(755,root,root) %{_libdir}/libboost_regex.so.*.*.*
884
885 %files system
886 %defattr(644,root,root,755)
887 %attr(755,root,root) %{_libdir}/libboost_system.so.*.*.*
888
889 %files test
890 %defattr(644,root,root,755)
891 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so.*.*.*
892 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so.*.*.*
893
894 %files thread
895 %defattr(644,root,root,755)
896 %attr(755,root,root) %{_libdir}/libboost_thread.so.*.*.*
897
898 %files timer
899 %defattr(644,root,root,755)
900 %attr(755,root,root) %{_libdir}/libboost_timer.so.*.*.*
901
902 %files url
903 %defattr(644,root,root,755)
904 %attr(755,root,root) %{_libdir}/libboost_url.so.*.*.*
905
906 %files wave
907 %defattr(644,root,root,755)
908 %attr(755,root,root) %{_libdir}/libboost_wave.so.*.*.*
909
910 %if %{with doc}
911 %files doc
912 %defattr(644,root,root,755)
913 %{_docdir}/%{name}-%{version}
914 %endif
This page took 0.888574 seconds and 4 git commands to generate.