3 # - think about building MPI.
4 # - split shared libs from core package into -iostreams/-serialization.
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
12 %define fver %(echo %{version} | tr . _)
13 Summary: The Boost C++ Libraries
14 Summary(pl.UTF-8): Biblioteki C++ "Boost"
18 License: Boost Software License and others
20 Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{fver}.tar.bz2
21 # Source0-md5: db0112a3a37a3742326471d20f1a186a
22 Patch0: %{name}-link.patch
23 Patch1: %{name}-clean-gcc-flags.patch
25 Patch201: %{name}-python-abi_letters.patch
26 # https://svn.boost.org/trac/boost/ticket/5637
27 Patch203: %{name}-1.54.0-mpl-print.patch
28 # https://svn.boost.org/trac/boost/ticket/8881
29 Patch221: %{name}-1.54.0-mpi-unused_typedef.patch
30 URL: http://www.boost.org/
31 BuildRequires: bzip2-devel
32 BuildRequires: expat-devel
33 BuildRequires: libicu-devel
34 BuildRequires: libstdc++-devel >= 6:4.7
35 BuildRequires: perl-base
37 BuildRequires: python-devel >= 2.2
38 %{?with_numpy:BuildRequires: python-numpy-devel}
41 BuildRequires: python3-devel
42 %{?with_numpy:BuildRequires: python3-numpy-devel}
43 BuildRequires: rpm-build >= 4.6
45 BuildRequires: rpm-pythonprov
46 BuildRequires: rpmbuild(macros) >= 1.734
47 BuildRequires: zlib-devel
48 Obsoletes: boost-signals
49 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
51 %define specflags -DBOOST_IOSTREAMS_USE_DEPRECATED=1
53 %define py2v %(echo %{py_ver} | tr -d .)
54 %define py3v %(echo %{py3_ver} | tr -d .)
56 %if "%{py3_ver}" >= "3.8"
57 %define py3v_suffix ""
59 %define py3v_suffix "m"
63 The Boost web site provides free peer-reviewed portable C++ source
64 libraries. The emphasis is on libraries which work well with the C++
65 Standard Library. One goal is to establish "existing practice" and
66 provide reference implementations so that the Boost libraries are
67 suitable for eventual standardization. Some of the libraries have
68 already been proposed for inclusion in the C++ Standards Committee's
69 upcoming C++ Standard Library Technical Report.
71 %description -l pl.UTF-8
72 Strona http://www.boost.org/ dostarcza darmowe biblioteki C++ wraz z
73 kodem źródłowym. Nacisk położono na biblioteki, które dobrze
74 współpracują ze standardową biblioteką C++. Celem jest ustanowienie
75 "istniejącej praktyki" i dostarczenie implementacji, tak że biblioteki
76 "Boost" nadają się do ewentualnej standaryzacji. Niektóre z bibliotek
77 już zostały zgłoszone do komitetu standaryzacyjnego C++ w nadchodzącym
78 Raporcie Technicznym Biblioteki Standardowej C++.
81 Summary: Boost C++ development headers
82 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek C++ Boost
83 Group: Development/Libraries
84 Requires: %{name} = %{version}-%{release}
85 Requires: %{name}-chrono = %{version}-%{release}
86 Requires: %{name}-context = %{version}-%{release}
87 Requires: %{name}-date_time = %{version}-%{release}
88 Requires: %{name}-fiber = %{version}-%{release}
89 Requires: %{name}-filesystem = %{version}-%{release}
90 Requires: %{name}-graph = %{version}-%{release}
91 Requires: %{name}-json = %{version}-%{release}
92 Requires: %{name}-locale = %{version}-%{release}
93 Requires: %{name}-log = %{version}-%{release}
94 Requires: %{name}-program_options = %{version}-%{release}
95 Requires: %{name}-regex = %{version}-%{release}
96 Requires: %{name}-system = %{version}-%{release}
97 Requires: %{name}-test = %{version}-%{release}
98 Requires: %{name}-thread = %{version}-%{release}
99 Requires: %{name}-timer = %{version}-%{release}
100 Requires: %{name}-wave = %{version}-%{release}
101 Requires: libstdc++-devel >= 6:4.7
102 Obsoletes: boost-any-devel
103 Obsoletes: boost-array-devel
104 Obsoletes: boost-asio
105 Obsoletes: boost-bind-devel
106 Obsoletes: boost-call_traits-devel
107 Obsoletes: boost-compatibility-devel
108 Obsoletes: boost-compose-devel
109 Obsoletes: boost-compressed_pair-devel
110 Obsoletes: boost-concept_check-devel
111 Obsoletes: boost-conversion-devel
112 Obsoletes: boost-crc-devel
113 Obsoletes: boost-date_time-devel
114 Obsoletes: boost-filesystem-devel
115 Obsoletes: boost-graph-devel
116 Obsoletes: boost-mem_fn-devel
117 Obsoletes: boost-mpl-devel
118 Obsoletes: boost-preprocessor-devel
119 Obsoletes: boost-program_options-devel
120 Obsoletes: boost-ref-devel
121 Obsoletes: boost-regex-devel
122 Obsoletes: boost-signals-devel
123 Obsoletes: boost-spirit-devel
124 Obsoletes: boost-statechart-devel
125 Obsoletes: boost-static_assert-devel
126 Obsoletes: boost-test-devel
127 Obsoletes: boost-thread-devel
128 Obsoletes: boost-tr1-devel
129 Obsoletes: boost-type_traits-devel
130 Obsoletes: boost-typeof-devel
131 Obsoletes: boost-uBLAS-devel
132 Obsoletes: boost-utility-devel
133 Obsoletes: boost-wave-devel
134 Obsoletes: boost-xpressive-devel
137 Header files for the Boost C++ libraries.
139 %description devel -l pl.UTF-8
140 Pliki nagłówkowe bibliotek C++ Boost.
143 Summary: Static version of base Boost C++ libraries
144 Summary(pl.UTF-8): Statyczne wersje podstawowych bibliotek C++ Boost
145 Group: Development/Libraries
146 Requires: %{name}-devel = %{version}-%{release}
147 Obsoletes: boost-static < 1.33
150 Static version of base Boost C++ libraries.
152 %description static -l pl.UTF-8
153 Statyczne wersje podstawowych bibliotek C++ Boost.
155 %package python-devel-common
156 Summary: Boost.Python development headers
157 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Boost.Python
158 Group: Development/Libraries
159 Requires: %{name}-devel = %{version}-%{release}
161 %description python-devel-common
162 Headers for the Boost.Python library.
164 %description python-devel-common -l pl.UTF-8
165 Pliki nagłówkowe biblioteki Boost.Python.
168 Summary: Boost.Python library for Python 2
169 Summary(pl.UTF-8): Biblioteka Boost.Python dla Pythona 2
171 Requires: python-libs
174 Use the Boost Python Library to quickly and easily export a C++
175 library to Python 2 such that the Python 2 interface is very similar
176 to the C++ interface. It is designed to be minimally intrusive on your
177 C++ design. In most cases, you should not have to alter your C++
178 classes in any way in order to use them with Boost.Python. The system
179 should simply ``reflect'' your C++ classes and functions into Python
182 %description python -l pl.UTF-8
183 Biblioteka Boost Python służy do szybkiego i prostego eksportu
184 biblioteki C++ do Pythona 2, tak że interfejs Pythona 2 jest bardzo
185 podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby
186 narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W
187 większości przypadków nie trzeba w ogóle zmieniać własnych klas C++,
188 żeby używać ich z Boost.Python. System powinien po prostu ,,odbić''
189 klasy C++ i funkcje do Pythona 3.
191 %package python-devel
192 Summary: Boost.Python development files for Python 2
193 Summary(pl.UTF-8): Pliki programistyczne biblioteki Boost.Python dla Pythona 2
194 Group: Development/Libraries
195 Requires: %{name}-devel = %{version}-%{release}
196 Requires: %{name}-python = %{version}-%{release}
197 Requires: %{name}-python-devel-common = %{version}-%{release}
199 %description python-devel
200 Boost.Python development files for Python 2.
202 %description python-devel -l pl.UTF-8
203 Pliki programistyczne biblioteki Boost.Python dla Pythona 2.
205 %package python-static
206 Summary: Static version of Boost.Python library for Python 2
207 Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python dla Pythona 2
208 Group: Development/Libraries
209 Requires: %{name}-python-devel = %{version}-%{release}
211 %description python-static
212 Static version of Boost.Python library for Python 2.
214 %description python-static -l pl.UTF-8
215 Statyczna wersja biblioteki Boost.Python dla Pythona 2.
218 Summary: Boost.Python library for Python 3
219 Summary(pl.UTF-8): biblioteka Boost.Python dla Pythona 3
221 Requires: python3-libs
224 Use the Boost Python Library to quickly and easily export a C++
225 library to Python 3 such that the Python 3 interface is very similar
226 to the C++ interface. It is designed to be minimally intrusive on your
227 C++ design. In most cases, you should not have to alter your C++
228 classes in any way in order to use them with Boost.Python. The system
229 should simply ``reflect'' your C++ classes and functions into Python
232 %description python3 -l pl.UTF-8
233 Biblioteka Boost Python służy do szybkiego i prostego eksportu
234 biblioteki C++ do Pythona 3, tak że interfejs Pythona 3 jest bardzo
235 podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby
236 narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W
237 większości przypadków nie trzeba w ogóle zmieniać własnych klas C++,
238 żeby używać ich z Boost.Python. System powinien po prostu ,,odbić''
239 klasy C++ i funkcje do Pythona 3.
241 %package python3-devel
242 Summary: Boost.Python development files for Python 3
243 Summary(pl.UTF-8): Pliki programistyczne biblioteki Boost.Python dla Pythona 3
244 Group: Development/Libraries
245 Requires: %{name}-devel = %{version}-%{release}
246 Requires: %{name}-python-devel-common = %{version}-%{release}
247 Requires: %{name}-python3 = %{version}-%{release}
249 %description python3-devel
250 Boost.Python development files for Python 3.
252 %description python3-devel -l pl.UTF-8
253 Pliki programistyczne biblioteki Boost.Python dla Pythona 3.
255 %package python3-static
256 Summary: Static version of Boost.Python library for Python 3
257 Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python dla Pythona 3
258 Group: Development/Libraries
259 Requires: %{name}-python3-devel = %{version}-%{release}
261 %description python3-static
262 Static version of Boost.Python library for Python 3.
264 %description python3-static -l pl.UTF-8
265 Statyczna wersja biblioteki Boost.Python dla Pythona 3.
268 Summary: Useful time utilities
269 Summary(pl.UTF-8): Przydatne funkcje związane z czasem
271 Obsoletes: boost < 1.33
274 Useful time utilities.
276 %description chrono -l pl.UTF-8
277 Przydatne funkcje związane z czasem.
280 Summary: Boost.Context - context switching library
281 Summary(pl.UTF-8): Boost.Context - biblioteka do zmiany kontekstu
285 Boost.Context - context switching library, providing a sort of
286 cooperative multitasking on a single thread.
288 %description context -l pl.UTF-8
289 Boost.Context - biblioteka do zmiany kontekstu, zapewniająca pewną
290 wielozadaniowość kooperatywnąw ramach pojedynczego wątku.
293 Summary: Date-Time library
294 Summary(pl.UTF-8): Biblioteka daty-czasu
296 Obsoletes: boost < 1.33
298 %description date_time
299 A set of date-time libraries.
301 %description date_time -l pl.UTF-8
302 Zbiór bibliotek daty-czasu.
305 Summary: A framework for micro-/userland-threads (fibers) scheduled cooperatively
306 Summary(pl.UTF-8): Szkielet mikrowątków przestrzeni użytkownika (fibers), szeregowanych kooperacyjnie
310 boost::fiber provides a framework for micro-/userland-threads (fibers)
311 scheduled cooperatively. The API contains classes and functions
312 to manage and synchronize fibers similiar to boost.thread.
314 %description fiber -l pl.UTF-8
315 boost::fiber to szkielt mikrowątków przestrzeni użytkownika (fibers)
316 szeregowanych kooperacyjnie. API zawiera klasy i funkcje służące do
317 zarządzania i synchronizacji wątków podobne do boost.thread.
320 Summary: Portable paths, iteration over directories, and other useful filesystem operations
321 Summary(pl.UTF-8): Przenośne ścieżki, iteracje katalogów i inne użyteczne operacje na systemie plików
323 Requires: %{name}-system = %{version}-%{release}
324 Obsoletes: boost < 1.33
326 %description filesystem
327 The boost::filesystem library provides portable facilities to query
328 and manipulate paths, files, and directories.
330 %description filesystem -l pl.UTF-8
331 Przenośna biblioteka boost::filesystem dostarcza ułatwienia w
332 operacjach na ścieżkach, plikach i katalogach.
335 Summary: General purpose, generic C++ library for graph data structures and graph algorithms
336 Summary(pl.UTF-8): Biblioteka ogólnego przeznaczenia w C++ dla struktur danych typu grafy oraz algorytmów związanych z grafami
340 The boost::graph library provides portable facilities to operate on
341 graph data structures using graph algorithms.
343 %description graph -l pl.UTF-8
344 Przenośna biblioteka boost::graph dostarcza ułatwienia w operacjach na
345 strukturach danych typu graf za pomocą algorytmów związanych z
349 Summary: Boost.JSON - a portable C++ JSON library
350 Summary(pl.UTF-8): Boost.JSON - przenośna biblioteka C++ dla formatu JSON
351 Group: Development/Libraries
354 Boost.JSON is a portable C++ library which provides containers and
355 algorithms that implement JavaScript Object Notation, or simply
356 "JSON", a lightweight data-interchange format.
358 %description json -l pl.UTF-8
359 Boost.JSON to przenośna biblioteka C++, która dostarcza kontenery oraz
360 algorytmy implementujące JavaScript Object Notation, lub po prostu
361 "JSON", lekki format wymiany danych.
364 Summary: Provide localization and Unicode handling tools for C++
365 Summary(pl.UTF-8): Narzędzia do obsługi lokalizacji i Unikodu w C++
369 Provide localization and Unicode handling tools for C++.
371 %description locale -l pl.UTF-8
372 Narzędzia do obsługi lokalizacji i Unikodu w C++.
375 Summary: Provide logging tools for C++
376 Summary(pl.UTF-8): Narzędzia do logowania w C++
380 Provide logging tools for C++.
382 %description log -l pl.UTF-8
383 Narzędzia do logowania w C++.
385 %package program_options
386 Summary: Access to program options, via conventional methods such as command line and config file
387 Summary(pl.UTF-8): Dostęp do opcji programu za pomocą typowych metod, jak linia poleceń i plik konfiguracyjny
390 %description program_options
391 The program_options library allows program developers to obtain
392 program options, that is (name, value) pairs from the user, via
393 conventional methods such as command line and config file.
395 %description program_options -l pl.UTF-8
396 Biblioteka program_options umożliwia uzyskanie od użytkownika opcji
397 programu, czyli par (nazwa, wartość), za pomocą typowych metod, takich
398 jak linia poleceń, czy plik konfiguracyjny.
401 Summary: Boost C++ regular expressions library
402 Summary(pl.UTF-8): Biblioteka wyrażeń regularnych Boost C++
406 Shared library for Boost C++ regular expressions.
408 %description regex -l pl.UTF-8
409 Biblioteka współdzielona do obsługi wyrażeń regularnych w C++.
412 Summary: Support for getting system specific error codes
413 Summary(pl.UTF-8): Wsparcie dla pobierania specyficznych dla systemu kodów błędów
417 The Boost System library provides simple, light-weight error_code
418 objects that encapsulate system-specific error code values, yet also
419 provide access to more abstract and portable error conditions objects.
421 %description system -l pl.UTF-8
422 Biblioteka Boost System udostępnia proste, lekkie obiekty error_code
423 obudowujące wartości kodów błędów specyficznych dla systemu, dając
424 jednocześnie dostęp do bardziej abstrakcyjnych i przenośnych obiektów
428 Summary: Support for program testing and execution monitoring
429 Summary(pl.UTF-8): Wsparcie dla testowania i monitorowania programu
431 Obsoletes: boost < 1.33
434 Support for simple program testing, full unit testing, and for program
435 execution monitoring.
437 %description test -l pl.UTF-8
438 Wsparcie dla prostego testowania programu, pełnego testowania i
439 monitorowania wykonania programu.
442 Summary: Portable C++ threads library
443 Summary(pl.UTF-8): Przenośna biblioteka wątków C++
445 Obsoletes: boost < 1.33
448 Portable C++ threads library - shared library.
450 %description thread -l pl.UTF-8
451 Przenośna biblioteka wątków dla C++ - biblioteka dzielona.
454 Summary: Event timer, progress timer, and progress display classes
455 Summary(pl.UTF-8): Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu
457 Obsoletes: boost < 1.33
460 Event timer, progress timer, and progress display classes.
462 %description timer -l pl.UTF-8
463 Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu.
466 Summary: Boost.Wave - a standard compliant C++ preprocessor library
467 Summary(pl.UTF-8): Boost.Wave - zgodna ze standardem biblioteka preprocesora C++
468 Group: Development/Libraries
471 Boost.Wave - a standard compliant C++ preprocessor library.
473 %description wave -l pl.UTF-8
474 Boost.Wave - zgodna ze standardem biblioteka preprocesora C++.
477 Summary: Boost C++ Library documentation
478 Summary(pl.UTF-8): Dokumentacja dla biblioteki Boost C++
483 Documentation for the Boost C++ Library.
485 %description doc -l pl.UTF-8
486 Dokumentacja dla biblioteki Boost C++.
489 %setup -q -n %{name}_%{fver}
497 %if "%{cc_version}" < "6.0"
502 cat << EOF > tools/build/src/user-config.jam
503 using gcc : %{cxx_version} : %{__cxx} : <cflags>"%{rpmcflags} -fPIC" <cxxflags>"%{rpmcxxflags} $CPPSTD -fPIC" <linkflags>"%{rpmldflags}" ;
506 # cleanup backups after patching
507 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
510 EXPAT_INCLUDE=%{_includedir} \
511 EXPAT_LIBPATH=%{_libdir} \
512 ICU_PATH=%{_prefix} \
514 --prefix=%{_prefix} \
515 -without-libraries=python
517 # x32 detection need help (it's autodetected as address-model=32 abi=sysv, while context build expects address-model=64 abi=x32)
531 echo "using python : %{py3_ver} : %{py3_prefix} : %{py3_incdir} : : : : %{py3v_suffix} ;" >> project-config.jam
533 --with-python python=%{py3_ver} \
534 -a -d2 --toolset=gcc \
543 %{__sed} -i -e '/^using python : 3/d' project-config.jam
544 echo "using python : %{py_ver} : %{py_prefix} : %{py_incdir} ;" >> project-config.jam
546 --with-python python=%{py_ver} \
547 -a -d2 --toolset=gcc \
556 rm -rf $RPM_BUILD_ROOT
557 install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}}
559 cp -rf boost $RPM_BUILD_ROOT%{_includedir}
561 install -p stage/lib/lib*.a $RPM_BUILD_ROOT%{_libdir}
562 install -p stage/lib/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}
563 cp -a stage/lib/lib*.so $RPM_BUILD_ROOT%{_libdir}
565 # workaround https://github.com/boostorg/boost/issues/594
566 cp -p bin.v2/libs/fiber/build/*/release/debug-symbols-on/inlining-on/link-static/threading-multi/visibility-hidden/libboost_fiber.a $RPM_BUILD_ROOT%{_libdir}
567 cp -p bin.v2/libs/stacktrace/build/*/release/debug-symbols-on/inlining-on/link-static/threading-multi/visibility-hidden/libboost_stacktrace*.a $RPM_BUILD_ROOT%{_libdir}
568 cp -p bin.v2/libs/fiber/build/*/release/debug-symbols-on/inlining-on/threading-multi/visibility-hidden/libboost_fiber.so.* $RPM_BUILD_ROOT%{_libdir}
569 cp -p bin.v2/libs/stacktrace/build/*/release/debug-symbols-on/inlining-on/threading-multi/visibility-hidden/libboost_stacktrace*.so.* $RPM_BUILD_ROOT%{_libdir}
570 for lib in $RPM_BUILD_ROOT%{_libdir}/*{stacktrace,fiber}*.so.*; do
571 ln -sf $(basename $lib) $RPM_BUILD_ROOT%{_libdir}/$(basename $lib .%{version})
576 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}
578 # as the documentation doesn't completely reside in a directory of its
579 # own, we need to find out ourselves... this looks for HTML files and
580 # then collects everything linked from those. this is certainly quite
581 # unoptimized wrt mkdir calls, but does it really matter?
583 for i in $(find -type f -name '*.htm*'); do
584 # bjam docu is included in the boost-jam RPM
585 if test "`echo $i | sed 's,jam_src,,'`" = "$i"; then
586 install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/${i%/*}
587 for LINKED in `%{__perl} - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT'
591 # rewrite links from boost/* to %{_includedir}/boost/* and
592 # ignore external links as well as document-internal ones.
593 # HTML files are also ignored as they get installed anyway.
594 if (!($link =~ s,^(?:../)*boost/,%{_includedir}/boost/,) && !($link =~ m,(?:^[^/]+:|^\#|\.html?(?:$|\#)),))
596 (my $file = $link) =~ s/\#.*//;
602 open OUT, ">@ARGV[1]";
606 $in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e;
607 s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig;
609 $in_link = /href|src=\s*$/;
612 TARGET=${i%/*}/$LINKED
613 # ignore non-existant linked files
614 if test -f $TARGET; then
615 install -D -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET
624 rm -rf $RPM_BUILD_ROOT
626 %post -p /sbin/ldconfig
627 %postun -p /sbin/ldconfig
629 %post chrono -p /sbin/ldconfig
630 %postun chrono -p /sbin/ldconfig
632 %post context -p /sbin/ldconfig
633 %postun context -p /sbin/ldconfig
635 %post date_time -p /sbin/ldconfig
636 %postun date_time -p /sbin/ldconfig
638 %post fiber -p /sbin/ldconfig
639 %postun fiber -p /sbin/ldconfig
641 %post filesystem -p /sbin/ldconfig
642 %postun filesystem -p /sbin/ldconfig
644 %post graph -p /sbin/ldconfig
645 %postun graph -p /sbin/ldconfig
647 %post json -p /sbin/ldconfig
648 %postun json -p /sbin/ldconfig
650 %post locale -p /sbin/ldconfig
651 %postun locale -p /sbin/ldconfig
653 %post python -p /sbin/ldconfig
654 %postun python -p /sbin/ldconfig
656 %post python3 -p /sbin/ldconfig
657 %postun python3 -p /sbin/ldconfig
659 %post program_options -p /sbin/ldconfig
660 %postun program_options -p /sbin/ldconfig
662 %post regex -p /sbin/ldconfig
663 %postun regex -p /sbin/ldconfig
665 %post system -p /sbin/ldconfig
666 %postun system -p /sbin/ldconfig
668 %post test -p /sbin/ldconfig
669 %postun test -p /sbin/ldconfig
671 %post thread -p /sbin/ldconfig
672 %postun thread -p /sbin/ldconfig
674 %post timer -p /sbin/ldconfig
675 %postun timer -p /sbin/ldconfig
677 %post wave -p /sbin/ldconfig
678 %postun wave -p /sbin/ldconfig
681 %defattr(644,root,root,755)
682 %attr(755,root,root) %{_libdir}/libboost_atomic.so.*.*.*
683 %attr(755,root,root) %{_libdir}/libboost_container.so.*.*.*
684 %attr(755,root,root) %{_libdir}/libboost_contract.so.*.*.*
685 %attr(755,root,root) %{_libdir}/libboost_coroutine.so.*.*.*
686 %attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.*
687 %attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.*
688 %attr(755,root,root) %{_libdir}/libboost_nowide.so.*.*.*
689 %attr(755,root,root) %{_libdir}/libboost_random.so.*.*.*
690 %attr(755,root,root) %{_libdir}/libboost_serialization.so.*.*.*
691 %attr(755,root,root) %{_libdir}/libboost_stacktrace_*.so.*.*.*
692 %attr(755,root,root) %{_libdir}/libboost_type_erasure.so.*.*.*
693 %attr(755,root,root) %{_libdir}/libboost_wserialization.so.*.*.*
696 %defattr(644,root,root,755)
697 %attr(755,root,root) %{_libdir}/libboost_atomic.so
698 %attr(755,root,root) %{_libdir}/libboost_chrono.so
699 %attr(755,root,root) %{_libdir}/libboost_container.so
700 %attr(755,root,root) %{_libdir}/libboost_context.so
701 %attr(755,root,root) %{_libdir}/libboost_contract.so
702 %attr(755,root,root) %{_libdir}/libboost_coroutine.so
703 %attr(755,root,root) %{_libdir}/libboost_date_time.so
704 %attr(755,root,root) %{_libdir}/libboost_fiber.so
705 %attr(755,root,root) %{_libdir}/libboost_filesystem.so
706 %attr(755,root,root) %{_libdir}/libboost_graph.so
707 %attr(755,root,root) %{_libdir}/libboost_iostreams.so
708 %attr(755,root,root) %{_libdir}/libboost_json.so
709 %attr(755,root,root) %{_libdir}/libboost_locale.so
710 %attr(755,root,root) %{_libdir}/libboost_log.so
711 %attr(755,root,root) %{_libdir}/libboost_log_setup.so
712 %attr(755,root,root) %{_libdir}/libboost_math_*.so
713 %attr(755,root,root) %{_libdir}/libboost_nowide.so
714 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so
715 %attr(755,root,root) %{_libdir}/libboost_program_options.so
716 %attr(755,root,root) %{_libdir}/libboost_regex.so
717 %attr(755,root,root) %{_libdir}/libboost_random.so
718 %attr(755,root,root) %{_libdir}/libboost_serialization.so
719 %attr(755,root,root) %{_libdir}/libboost_stacktrace_*.so
720 %attr(755,root,root) %{_libdir}/libboost_system.so
721 %attr(755,root,root) %{_libdir}/libboost_thread.so
722 %attr(755,root,root) %{_libdir}/libboost_timer.so
723 %attr(755,root,root) %{_libdir}/libboost_type_erasure.so
724 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so
725 %attr(755,root,root) %{_libdir}/libboost_wave.so
726 %attr(755,root,root) %{_libdir}/libboost_wserialization.so
728 %exclude %{_includedir}/boost/python
729 %exclude %{_includedir}/boost/python.hpp
732 %defattr(644,root,root,755)
733 %{_libdir}/libboost_atomic.a
734 %{_libdir}/libboost_chrono.a
735 %{_libdir}/libboost_container.a
736 %{_libdir}/libboost_context.a
737 %{_libdir}/libboost_contract.a
738 %{_libdir}/libboost_coroutine.a
739 %{_libdir}/libboost_date_time.a
740 %{_libdir}/libboost_exception.a
741 %{_libdir}/libboost_fiber.a
742 %{_libdir}/libboost_filesystem.a
743 %{_libdir}/libboost_graph.a
744 %{_libdir}/libboost_iostreams.a
745 %{_libdir}/libboost_json.a
746 %{_libdir}/libboost_locale.a
747 %{_libdir}/libboost_log.a
748 %{_libdir}/libboost_log_setup.a
749 %{_libdir}/libboost_math_*.a
750 %{_libdir}/libboost_nowide.a
751 %{_libdir}/libboost_prg_exec_monitor.a
752 %{_libdir}/libboost_program_options.a
753 %{_libdir}/libboost_random.a
754 %{_libdir}/libboost_regex.a
755 %{_libdir}/libboost_serialization.a
756 %{_libdir}/libboost_stacktrace_*.a
757 %{_libdir}/libboost_system.a
758 %{_libdir}/libboost_test_exec_monitor.a
759 %{_libdir}/libboost_timer.a
760 %{_libdir}/libboost_thread.a
761 %{_libdir}/libboost_type_erasure.a
762 %{_libdir}/libboost_unit_test_framework.a
763 %{_libdir}/libboost_wave.a
764 %{_libdir}/libboost_wserialization.a
766 %if %{with python2} || %{with python3}
767 %files python-devel-common
768 %defattr(644,root,root,755)
769 %{_includedir}/boost/python
770 %{_includedir}/boost/python.hpp
775 %defattr(644,root,root,755)
777 %attr(755,root,root) %{_libdir}/libboost_numpy%{py2v}.so.*.*.*
779 %attr(755,root,root) %{_libdir}/libboost_python%{py2v}.so.*.*.*
782 %defattr(644,root,root,755)
784 %attr(755,root,root) %{_libdir}/libboost_numpy%{py2v}.so
786 %attr(755,root,root) %{_libdir}/libboost_python%{py2v}.so
789 %defattr(644,root,root,755)
791 %{_libdir}/libboost_numpy%{py2v}.a
793 %{_libdir}/libboost_python%{py2v}.a
798 %defattr(644,root,root,755)
800 %attr(755,root,root) %{_libdir}/libboost_numpy%{py3v}.so.*.*.*
802 %attr(755,root,root) %{_libdir}/libboost_python%{py3v}.so.*.*.*
805 %defattr(644,root,root,755)
807 %attr(755,root,root) %{_libdir}/libboost_numpy%{py3v}.so
809 %attr(755,root,root) %{_libdir}/libboost_python%{py3v}.so
811 %files python3-static
812 %defattr(644,root,root,755)
814 %{_libdir}/libboost_numpy%{py3v}.a
816 %{_libdir}/libboost_python%{py3v}.a
820 %defattr(644,root,root,755)
821 %attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.*
824 %defattr(644,root,root,755)
825 %attr(755,root,root) %{_libdir}/libboost_context.so.*.*.*
828 %defattr(644,root,root,755)
829 %attr(755,root,root) %{_libdir}/libboost_date_time.so.*.*.*
832 %defattr(644,root,root,755)
833 %attr(755,root,root) %{_libdir}/libboost_fiber.so.*.*.*
836 %defattr(644,root,root,755)
837 %attr(755,root,root) %{_libdir}/libboost_filesystem.so.*.*.*
840 %defattr(644,root,root,755)
841 %attr(755,root,root) %{_libdir}/libboost_graph.so.*.*.*
844 %defattr(644,root,root,755)
845 %attr(755,root,root) %{_libdir}/libboost_json.so.*.*.*
848 %defattr(644,root,root,755)
849 %attr(755,root,root) %{_libdir}/libboost_locale.so.*.*.*
852 %defattr(644,root,root,755)
853 %attr(755,root,root) %{_libdir}/libboost_log.so.*.*.*
854 %attr(755,root,root) %{_libdir}/libboost_log_setup.so.*.*.*
856 %files program_options
857 %defattr(644,root,root,755)
858 %attr(755,root,root) %{_libdir}/libboost_program_options.so.*.*.*
861 %defattr(644,root,root,755)
862 %attr(755,root,root) %{_libdir}/libboost_regex.so.*.*.*
865 %defattr(644,root,root,755)
866 %attr(755,root,root) %{_libdir}/libboost_system.so.*.*.*
869 %defattr(644,root,root,755)
870 %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so.*.*.*
871 %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so.*.*.*
874 %defattr(644,root,root,755)
875 %attr(755,root,root) %{_libdir}/libboost_thread.so.*.*.*
878 %defattr(644,root,root,755)
879 %attr(755,root,root) %{_libdir}/libboost_timer.so.*.*.*
882 %defattr(644,root,root,755)
883 %attr(755,root,root) %{_libdir}/libboost_wave.so.*.*.*
887 %defattr(644,root,root,755)
888 %{_docdir}/%{name}-%{version}