summaryrefslogtreecommitdiff
path: root/boost.spec
blob: b0a98db232b953d746b82b4cde14d2d325b57ddb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
%global version_enc 1_78_0

Name:           boost
Version:        1.78.0
Release:        16
Summary:        The free peer-reviewed portable C++ source libraries
License:        Boost Software License 1.0
URL:            http://www.boost.org
Source0:        https://boostorg.jfrog.io/ui/native/main/release/%{version}/source/%{name}_%{version_enc}.tar.gz

# These following patches have been merged into boost develop branch
# Remove them at the next release
# https://github.com/boostorg/pool/pull/42
Patch0:		boost-1.78-pool-fix-integer-overflows-in-pool-ordered_malloc.patch
# https://github.com/boostorg/locale/pull/72
Patch1:		boost-1.78-locale-Fix-access-to-first-element-of-empty-vector.patch
# https://github.com/boostorg/locale/pull/38
Patch2:		boost-1.77-locale-remove-linking-with-boost-system.patch
# https://github.com/boostorg/type_erasure/pull/19
Patch3:		boost-1.77-type_erasure-remove-boost-system-linkage.patch
# https://github.com/bfgroup/b2/pull/113
Patch4:		boost-1.78-build-Don-t-skip-install-targets-if-there-s-build-no-in-ureqs.patch
# https://github.com/boostorg/filesystem/commit/41d076ace558cfae01e233f9746dc955dcf78dba
Patch5:		boost-1.78-filesystem-Added-protection-for-CVE-2022-21658.patch
# https://github.com/boostorg/filesystem/commit/dbec3baaadf7d899e66aa90843d285e749e88b2d
Patch6:		boost-1.78-filesystem-Use-O_NONBLOCK-instead-of-O_NDELAY.patch
# These patches have not been merged yet.
# https://github.com/boostorg/python/pull/373
Patch9000:	boost-1.78-python-Update-call_method-hpp.patch
Patch9001:      boost_1_78_0-sw.patch
Patch9002:      boost-1.78-graph-Skip-performance-test.patch
Patch9003:	boost-1.78-icl-Avoid-gcc-bugs.patch

Requires:       %{name}-atomic%{?_isa} = %{version}-%{release}
Requires:       %{name}-chrono%{?_isa} = %{version}-%{release}
Requires:       %{name}-container%{?_isa} = %{version}-%{release}
Requires:       %{name}-context%{?_isa} = %{version}-%{release}
Requires:       %{name}-contract%{?_isa} = %{version}-%{release}
Requires:       %{name}-coroutine%{?_isa} = %{version}-%{release}
Requires:       %{name}-date-time%{?_isa} = %{version}-%{release}
Requires:       %{name}-fiber%{?_isa} = %{version}-%{release}
Requires:       %{name}-filesystem%{?_isa} = %{version}-%{release}
Requires:       %{name}-graph%{?_isa} = %{version}-%{release}
Requires:       %{name}-iostreams%{?_isa} = %{version}-%{release}
Requires:       %{name}-json%{?_isa} = %{version}-%{release}
Requires:       %{name}-locale%{?_isa} = %{version}-%{release}
Requires:       %{name}-log%{?_isa} = %{version}-%{release}
Requires:       %{name}-math%{?_isa} = %{version}-%{release}
Requires:       %{name}-nowide%{?_isa} = %{version}-%{release}
Requires:       %{name}-program-options%{?_isa} = %{version}-%{release}
Requires:       %{name}-python3%{?_isa} = %{version}-%{release}
Requires:       %{name}-random%{?_isa} = %{version}-%{release}
Requires:       %{name}-regex%{?_isa} = %{version}-%{release}
Requires:       %{name}-serialization%{?_isa} = %{version}-%{release}
Requires:       %{name}-stacktrace%{?_isa} = %{version}-%{release}
Requires:       %{name}-system%{?_isa} = %{version}-%{release}
Requires:       %{name}-test%{?_isa} = %{version}-%{release}
Requires:       %{name}-thread%{?_isa} = %{version}-%{release}
Requires:       %{name}-timer%{?_isa} = %{version}-%{release}
Requires:       %{name}-type_erasure%{?_isa} = %{version}-%{release}
Requires:       %{name}-wave%{?_isa} = %{version}-%{release}

BuildRequires:  gcc-c++
# required by python3
BuildRequires:  python3-devel python3-unversioned-command
# optional library for asio
BuildRequires:  openssl-devel
# optional libraries for iostreams
BuildRequires:  bzip2-devel libzstd-devel xz-devel zlib-devel
# optional library for python3
BuildRequires:  python3-numpy
# optional library for regex
BuildRequires:  libicu-devel

Obsoletes: boost-signals < 1.69.0

%description
Boost provides free peer-reviewed portable C++ source libraries.

We emphasize libraries that work well with the C++ Standard Library.
Boost libraries are intended to be widely useful, and usable across
a broad spectrum of applications. The Boost license encourages
the use of Boost libraries for all users with minimal restrictions.

%package atomic
Summary: Run-time component for boost atomic.

%description atomic
C++11-style atomic<>.

%package chrono
Summary: Run-time component for boost chrono.

%description chrono
Useful time utilities.

%package container
Summary: Run-time component for boost container.

%description container
Standard library containers and extensions.

%package context
Summary: Run-time component for boost context.

%description context
(C++11) Context switching library.

%package contract
Summary: Run-time component for boost contract.

%description contract
Contract programming for C++.

%package coroutine
Summary: Run-time component for boost coroutine.

%description coroutine
(deprecated) Coroutine library.

%package date-time
Summary: Run-time component for boost date-time.

%description date-time
A set of date-time libraries based on generic programming concepts.

%package fiber
Summary: Run-time component for boost fiber.

%description fiber
(C++11) Userland threads library.

%package filesystem
Summary: Run-time component for boost filesystem.

%description filesystem
Portable facilities to query and manipulate paths, files, and directories.

%package graph
Summary: Run-time component for boost graph.
Requires: boost-regex%{?_isa} = %{version}-%{release}

%description graph
The BGL graph interface and graph components are generic.

%package iostreams
Summary: Run-time component for boost iostreams.

%description iostreams
A framework for defining streams, stream buffers and i/o filters.

%package json
Summary: Run-time component for boost json.

%description json
JSON parsing, serialization, and DOM in C++11

%package locale
Summary: Run-time component for boost locale.
Requires: boost-chrono%{?_isa} = %{version}-%{release}
Requires: boost-thread%{?_isa} = %{version}-%{release}

%description locale
Provide localization and Unicode handling tools for C++.

%package log
Summary: Run-time component for boost log.

%description log
Logging library.

%package math
Summary: Run-time component for boost math.

%description math
Boost.Math includes several contributions in the domain of mathematics.

%package nowide
Summary: Run-time component for boost nowide.

%description nowide
Standard library functions with UTF-8 API on Windows.

%package program-options
Summary: Run-time component for boost program-options.

%description program-options
The program_options library allows program developers to obtain program options.

%package python3
Summary: Run-time component for boost python.

%description python3
A framework for interfacing Python and C++.

%package random
Summary: Run-time component for boost random.

%description random
A complete system for random number generation.

%package regex
Summary: Run-time component for boost regex.

%description regex
Regular expression library.

%package serialization
Summary: Run-time component for boost serialization.

%description serialization
Serialization for persistence and marshalling.

%package stacktrace
Summary: Run-time component for boost stacktrace.

%description stacktrace
Gather, store, copy and print backtraces.

%package system
Summary: Run-time component for boost system.

%description system
Extensible error reporting.

%package test
Summary: Run-time component for boost test.

%description test
Support for simple program testing, full unit testing, and for program execution monitoring.

%package thread
Summary: Run-time component for boost thread.

%description thread
Portable C++ multi-threading.

%package timer
Summary: Run-time component for boost timer.
Requires: boost-chrono%{?_isa} = %{version}-%{release}

%description timer
Event timer, progress timer, and progress display classes.

%package type_erasure
Summary: Run-time component for boost type-erasure.
Requires: boost-chrono%{?_isa} = %{version}-%{release}

%description type_erasure
Runtime polymorphism based on concepts.

%package wave
Summary: Run-time component for boost wave.
Requires: boost-chrono%{?_isa} = %{version}-%{release}
Requires: boost-filesystem%{?_isa} = %{version}-%{release}
Requires: boost-thread%{?_isa} = %{version}-%{release}

%description wave
An implementation of the mandated C99/C++ preprocessor functionality.

%package devel
Summary: The Boost C++ headers, shared and static development libraries
Requires: boost%{?_isa} = %{version}-%{release}
Requires: libicu-devel%{?_isa}
Provides: boost-static
Obsoletes: boost-static < %{version}

%description devel
Headers shared object symbolic links for the Boost C++ libraries and static
Boost C++ libraries distributed with boost.

%package help
Summary: HTML documentation and source code example for the Boost C++ libraries
BuildArch: noarch
Requires: boost-devel = %{version}-%{release}

%description help
This package contains the documentation in the HTML format and source code examples
of the Boost C++ libraries. The documentation provides the same content
as that on the Boost web page (http://www.boost.org/doc/libs/%{version_enc}).

%prep
%autosetup -p1 -n %{name}_%{version_enc}

%build
./bootstrap.sh
%define opt_build -d+2 -q %{?_smp_mflags} --no-cmake-config
%define opt_feature release debug-symbols=on pch=off
%define opt_libs --without-mpi --without-graph_parallel
%define b2_options %{opt_build} %{opt_feature} %{opt_libs}
%define boost_macros define=BOOST_NO_AUTO_PTR define=BOOST_STATECHART_USE_NATIVE_RTTI
./b2 %{b2_options} cxxflags="$RPM_OPT_FLAGS" %{boost_macros}

%check
cd status
../b2 %{?_smp_mflags} --check-libs-only
../b2 %{?_smp_mflags} %{opt_feature} cxxflags="$RPM_OPT_FLAGS" %{boost_macros} \
  --include-tests=algorithm,graph,intrusive,dynamic_bitset,property_map,crc,lexical_cast,range \
  --exclude-tests=mpi,graph_parallel
../b2 %{?_smp_mflags} %{opt_feature} cxxflags="$RPM_OPT_FLAGS" %{boost_macros} \
  --include-tests=bimap,circular_buffer,container,heap,icl,lockfree,logic,multi_array,multi_index,poly_collection,property_tree,ptr_container,sort \
  --exclude-tests=container_hash

%install
./b2 %{b2_options} \
  --prefix=$RPM_BUILD_ROOT%{_prefix} \
  --libdir=$RPM_BUILD_ROOT%{_libdir} \
  install

mkdir boost-doc boost-example
find libs doc more -regex '.*\.\(html?\|css\|png\|gif\)' -exec cp {} boost-doc --parents \;
cp index.html boost.png rst.css boost.css boost-doc
find libs -name example -exec cp {} boost-example --parents -r \;

%files
%license LICENSE_1_0.txt

%files atomic
%license LICENSE_1_0.txt
%{_libdir}/libboost_atomic.so.%{version}

%files chrono
%license LICENSE_1_0.txt
%{_libdir}/libboost_chrono.so.%{version}

%files container
%license LICENSE_1_0.txt
%{_libdir}/libboost_container.so.%{version}

%files context
%license LICENSE_1_0.txt
%{_libdir}/libboost_context.so.%{version}

%files contract
%license LICENSE_1_0.txt
%{_libdir}/libboost_contract.so.%{version}

%files coroutine
%license LICENSE_1_0.txt
%{_libdir}/libboost_coroutine.so.%{version}

%files date-time
%license LICENSE_1_0.txt
%{_libdir}/libboost_date_time.so.%{version}

%files fiber
%license LICENSE_1_0.txt
%{_libdir}/libboost_fiber.so.%{version}

%files filesystem
%license LICENSE_1_0.txt
%{_libdir}/libboost_filesystem.so.%{version}

%files graph
%license LICENSE_1_0.txt
%{_libdir}/libboost_graph.so.%{version}

%files iostreams
%license LICENSE_1_0.txt
%{_libdir}/libboost_iostreams.so.%{version}

%files json
%license LICENSE_1_0.txt
%{_libdir}/libboost_json.so.%{version}

%files locale
%license LICENSE_1_0.txt
%{_libdir}/libboost_locale.so.%{version}

%files log
%license LICENSE_1_0.txt
%{_libdir}/libboost_log.so.%{version}
%{_libdir}/libboost_log_setup.so.%{version}

%files math
%license LICENSE_1_0.txt
%{_libdir}/libboost_math_c99.so.%{version}
%{_libdir}/libboost_math_c99f.so.%{version}
%{_libdir}/libboost_math_c99l.so.%{version}
%{_libdir}/libboost_math_tr1.so.%{version}
%{_libdir}/libboost_math_tr1f.so.%{version}
%{_libdir}/libboost_math_tr1l.so.%{version}

%files nowide
%license LICENSE_1_0.txt
%{_libdir}/libboost_nowide.so.%{version}

%files program-options
%license LICENSE_1_0.txt
%{_libdir}/libboost_program_options.so.%{version}

%files python3
%license LICENSE_1_0.txt
%{_libdir}/libboost_python%{python3_version_nodots}.so.%{version}
%{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{version}

%files random
%license LICENSE_1_0.txt
%{_libdir}/libboost_random.so.%{version}

%files regex
%license LICENSE_1_0.txt
%{_libdir}/libboost_regex.so.%{version}

%files serialization
%license LICENSE_1_0.txt
%{_libdir}/libboost_serialization.so.%{version}
%{_libdir}/libboost_wserialization.so.%{version}

%files stacktrace
%license LICENSE_1_0.txt
%{_libdir}/libboost_stacktrace_addr2line.so.%{version}
%{_libdir}/libboost_stacktrace_basic.so.%{version}
%{_libdir}/libboost_stacktrace_noop.so.%{version}

%files system
%license LICENSE_1_0.txt
%{_libdir}/libboost_system.so.%{version}

%files test
%license LICENSE_1_0.txt
%{_libdir}/libboost_prg_exec_monitor.so.%{version}
%{_libdir}/libboost_unit_test_framework.so.%{version}

%files thread
%license LICENSE_1_0.txt
%{_libdir}/libboost_thread.so.%{version}

%files timer
%license LICENSE_1_0.txt
%{_libdir}/libboost_timer.so.%{version}

%files type_erasure
%license LICENSE_1_0.txt
%{_libdir}/libboost_type_erasure.so.%{version}

%files wave
%license LICENSE_1_0.txt
%{_libdir}/libboost_wave.so.%{version}

%files help
%license LICENSE_1_0.txt
%doc boost-doc boost-example

%files devel
%license LICENSE_1_0.txt
%{_includedir}/%{name}
%{_libdir}/*.so
%{_libdir}/*.a

%changelog
* Mon Apr 24 2023 wangxiyuan <wangxiyuan1007@gmail.com> - 1.78.0-16
Remove libquadmath require

* Mon Dec 12 2022 Liu Zixian <liuzixian4@huawei.com> - 1.78.0-15
- enable more regression tests to covers commonly used container libraries

* Mon Dec 12 2022 Liu Zixian <liuzixian4@huawei.com> - 1.78.0-14
- backport master build commands and enable some regression test

* Wed Oct 19 2022 wuzx<wuzx1226@qq.com> - 1.78.0-13
- add sw64 patch

* Sun Mar 20 2022 Liu Zixian <liuzixian4@huawei.com> - 1.78.0-12
- backport upstream filesystem patches to fix a possible security issue

* Wed Mar 02 2022 Liu Zixian <liuzixian4@huawei.com> - 1.78.0-11
- fix boost-example, only libs/*/example should go into boost-example.

* Thu Feb 03 2022 Liu Zixian <liuzixian4@huawei.com> - 1.78.0-10
- disable auto_ptr which is warned by -Wdeprecated-declarations
- Replaced deprecated python API

* Sat Jan 29 2022 Liu Zixian <liuzixian4@huawei.com> - 1.78.0-9
- simplify building scripts

* Fri Jan 28 2022 Liu Zixian <liuzixian4@huawei.com> - 1.78.0-8
- backport bugfix for boost 1.78.0 known issues
- https://www.boost.org/users/history/version_1_78_0.html

* Sun Jan 23 2022 Liu Zixian <liuzixian4@huawei.com> - 1.78.0-7
- refactor boost-help

* Fri Dec 31 2021 sdlzx <sdlzx@163.com> - 1.78.0-6
- Don't package boost build tools

* Mon Dec 27 2021 sdlzx <sdlzx@163.com> - 1.78.0-5
- Remove mpi related scripts

* Fri Dec 24 2021 sdlzx <sdlzx@163.com> - 1.78.0-4
- Update package info
- Reference: https://www.boost.org/doc/libs/1_78_0/

* Sun Dec 19 2021 sdlzx <sdlzx@163.com> - 1.78.0-3
- Simplify spec: extract common b2 configs into b2_config

* Fri Dec 10 2021 sdlzx <sdlzx@163.com> - 1.78.0-2
- Simplify spec: remove useless bcond

* Fri Dec 10 2021 sdlzx <sdlzx@163.com> - 1.78.0-1
- update to 1.78.0

* Wed Oct 06 2021 Liu Zixian <liuzixian4@huawei.com> - 1.77.0-4
- Remove dependencies on header-only libraries

* Sun Sep 26 2021 Liu Zixian <liuzixian4@huawei.com> - 1.77.0-3
- Remove linking script which is fixed in upstream PR266

* Wed Sep 22 2021 Liu Zixian <liuzixian4@huawei.com> - 1.77.0-2
- Correct license name for ci.

* Wed Sep 15 2021 Liu Zixian <liuzixian4@huawei.com> - 1.77.0-1
- update to 1.77.0

* Sat Jul 24 2021 Liu Zixian <liuzixian4@huawei.com> - 1.76.0-1
- update to 1.76.0

* Sat Jul 24 2021 Liu Zixian <liuzixian4@huawei.com> - 1.75.0-6
- remove needless BuildRequires

* Fri Jul 23 2021 zhouwenpei <zhouwenpei1@huawei.com> - 1.75.0-5
- remove useless buildrequires

* Wed Jun 23 2021 Xu Huijie <xuhuijie2@huawei.com> - 1.75.0-4
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix dead loop in parse_repeat()

* Fri Feb 5 2021 xinghe <xinghe1@huawei.com> - 1.75.0-3
- fix the conflict between the devel package file and the other subpackage file

* Thu Feb 4 2021 xinghe <xinghe1@huawei.com> - 1.75.0-2
- fix master build

* Wed Feb 3 2021 xinghe <xinghe1@huawei.com> - 1.75.0-1
- update version to 1.75.0

* Wed Dec 16 2020 xinghe <xinghe1@huawei.com> - 1.73.0-2
- correct license

* Fri Jul 24 2020 Wang Shuo<wangshuo47@huawei.com> - 1.73.0-1
- Type:requirement
- ID:NA
- SUG:NA
- DESC:update boost to 1.73.0

* Mon Apr 20 2020 Wang Shuo<wangshuo47@huawei.com> - 1.72.0-1
- Type:requirement
- ID:NA
- SUG:NA
- DESC:update boost to 1.72.0

* Thu Mar 19 2020 Yu Xiangyang<yuxiangyang4@huawei.com> - 1.66.0-18
- Type:bugfix
- ID:NA
- SUG:NA
- DESC: fix build src.rpm error

* Tue Mar 10 2020 Wang Shuo<wangshuo47@huawei.com> - 1.66.0-17
- Type:enhancement
- ID:NA
- SUG:NA
- DESC: move examples files to examples package

* Mon Oct 28 2019 caomeng <caomeng5@huawei.com> - 1.66.0-16
- Type:NA
- ID:NA
- SUG:NA
- DESC:add bcondwith openmpi and mpich

* Wed Aug 28 2019 openEuler Buildteam <buildteam@openeuler.org> - 1.66.0-15
- Package init