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