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