Commit ff8061c0 authored by Markus Frosch's avatar Markus Frosch 📣

git import

parents
From: Oliver Kowalke <olli@boost.org>
Date: 2013-04-03 14:12:25+02:00
Subject: Fix ppc64 assembler code in context
Upstream: boost#8374
Compiling libs/context/src/asm/make_ppc64_sysv_elf_gas.S failed with:
libs/context/src/asm/make_ppc64_sysv_elf_gas.S: Assembler messages:
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:102: Error: operand out of range (59 is not between 0 and 31)
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:108: Error: operand out of range (64 is not between 0 and 31)
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:131: Error: syntax error; found @', expected ,'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:131: Error: junk at end of line: `@plt'
---
libs/context/src/asm/make_ppc64_sysv_elf_gas.S | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
Index: libs/context/src/asm/make_ppc64_sysv_elf_gas.S
===================================================================
--- libs/context/src/asm/make_ppc64_sysv_elf_gas.S.orig 2012-11-30 08:38:52.000000000 +0100
+++ libs/context/src/asm/make_ppc64_sysv_elf_gas.S 2013-04-03 14:10:43.651126381 +0200
@@ -99,13 +99,13 @@ make_fcontext:
# call align_stack, R3 contains address at 16 byte boundary after return
# == pointer to fcontext_t and address of context stack
- rlwinm %r3, %r3, 0, 0, 59
+ clrrdi %r3, %r3, 4
std %r0, 184(%r3) # save address of context stack (base) in fcontext_t
std %r4, 192(%r3) # save context stack size in fcontext_t
std %r5, 176(%r3) # save address of context function in fcontext_t
- subf %r0, %r3, 64 # 64 bytes on stack for parameter area (== 8 registers)
+ subi %r0, %r3, 64 # 64 bytes on stack for parameter area (== 8 registers)
std %r0, 152(%r3) # save the stack base
mflr %r0 # load LR
@@ -128,5 +128,6 @@ finish:
stwu %r1, -32(%r1) # allocate stack space, SP % 16 == 0
li %r3, 0 # set return value to zero
- bl _exit@plt # exit application
+ bl _exit # exit application
+ nop
.size .make_fcontext, .-.make_fcontext
diff -urN boost_1_53_0/boost/cstdint.hpp boost_1_53_0.new/boost/cstdint.hpp
--- boost_1_53_0/boost/cstdint.hpp 2012-12-11 15:42:26.000000000 +0100
+++ boost_1_53_0.new/boost/cstdint.hpp 2013-08-18 21:52:30.861956037 +0200
@@ -41,7 +41,10 @@
// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
//
-#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
+#if defined(BOOST_HAS_STDINT_H) \
+ && (!defined(__GLIBC__) \
+ || defined(__GLIBC_HAVE_LONG_LONG) \
+ || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
// The following #include is an implementation artifact; not part of interface.
# ifdef __hpux
--- boost/iostreams/filter/regex.hpp
+++ boost/iostreams/filter/regex.hpp
@@ -58,7 +58,7 @@
return;
iterator first(&src[0], &src[0] + src.size(), re_, flags_);
iterator last;
- const Ch* suffix = 0;
+ const Ch* suffix = &src[0];
for (; first != last; ++first) {
dest.insert( dest.end(),
first->prefix().first,
Index: libs/python/src/dict.cpp
===================================================================
--- libs/python/src/dict.cpp.orig 2009-10-14 00:37:59.000000000 +0200
+++ libs/python/src/dict.cpp 2012-03-13 17:20:34.286172759 +0100
@@ -28,9 +28,9 @@ namespace
detail::new_reference dict_base::call(object const& arg_)
{
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyDict_Type };
return (detail::new_reference)PyObject_CallFunction(
- (PyObject*)&PyDict_Type, const_cast<char*>("(O)"),
- arg_.ptr());
+ pun.pop, const_cast<char*>("(O)"), arg_.ptr());
}
dict_base::dict_base()
Index: libs/python/src/list.cpp
===================================================================
--- libs/python/src/list.cpp.orig 2009-10-14 00:37:59.000000000 +0200
+++ libs/python/src/list.cpp 2012-03-13 17:20:34.286172759 +0100
@@ -10,11 +10,11 @@ namespace boost { namespace python { nam
detail::new_non_null_reference list_base::call(object const& arg_)
{
+ union{ PyTypeObject *ptop; PyObject *pop; }pun = { &PyList_Type };
return (detail::new_non_null_reference)
(expect_non_null)(
PyObject_CallFunction(
- (PyObject*)&PyList_Type, const_cast<char*>("(O)"),
- arg_.ptr()));
+ pun.pop, const_cast<char*>("(O)"), arg_.ptr()));
}
list_base::list_base()
Index: libs/python/src/long.cpp
===================================================================
--- libs/python/src/long.cpp.orig 2009-08-17 23:01:18.000000000 +0200
+++ libs/python/src/long.cpp 2012-03-13 17:20:34.287172735 +0100
@@ -8,16 +8,16 @@ namespace boost { namespace python { nam
new_non_null_reference long_base::call(object const& arg_)
{
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyLong_Type };
return (detail::new_non_null_reference)PyObject_CallFunction(
- (PyObject*)&PyLong_Type, const_cast<char*>("(O)"),
- arg_.ptr());
+ pun.pop, const_cast<char*>("(O)"), arg_.ptr());
}
new_non_null_reference long_base::call(object const& arg_, object const& base)
{
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyLong_Type };
return (detail::new_non_null_reference)PyObject_CallFunction(
- (PyObject*)&PyLong_Type, const_cast<char*>("(OO)"),
- arg_.ptr(), base.ptr());
+ pun.pop, const_cast<char*>("(OO)"), arg_.ptr(), base.ptr());
}
long_base::long_base()
@@ -25,7 +25,12 @@ long_base::long_base()
detail::new_reference(
PyObject_CallFunction((PyObject*)&PyLong_Type, const_cast<char*>("()")))
)
-{}
+{
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyLong_Type };
+ object(detail::new_reference(
+ PyObject_CallFunction(pun.pop, const_cast<char*>("()"))));
+}
+
long_base::long_base(object_cref arg)
: object(long_base::call(arg))
Index: libs/python/src/object/class.cpp
===================================================================
--- libs/python/src/object/class.cpp.orig 2011-06-07 06:15:33.000000000 +0200
+++ libs/python/src/object/class.cpp 2012-03-13 17:20:34.287172735 +0100
@@ -616,9 +616,11 @@ namespace objects
void class_base::add_property(
char const* name, object const& fget, char const* docstr)
{
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyProperty_Type };
+
object property(
(python::detail::new_reference)
- PyObject_CallFunction((PyObject*)&PyProperty_Type, const_cast<char*>("Osss"), fget.ptr(), 0, 0, docstr));
+ PyObject_CallFunction(pun.pop, const_cast<char*>("Osss"), fget.ptr(), 0, 0, docstr));
this->setattr(name, property);
}
@@ -626,9 +628,11 @@ namespace objects
void class_base::add_property(
char const* name, object const& fget, object const& fset, char const* docstr)
{
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyProperty_Type };
+
object property(
(python::detail::new_reference)
- PyObject_CallFunction((PyObject*)&PyProperty_Type, const_cast<char*>("OOss"), fget.ptr(), fset.ptr(), 0, docstr));
+ PyObject_CallFunction(pun.pop, const_cast<char*>("OOss"), fget.ptr(), fset.ptr(), 0, docstr));
this->setattr(name, property);
}
Index: libs/python/src/str.cpp
===================================================================
--- libs/python/src/str.cpp.orig 2009-10-14 00:37:59.000000000 +0200
+++ libs/python/src/str.cpp 2012-03-13 17:20:34.287172735 +0100
@@ -9,14 +9,14 @@ namespace boost { namespace python { nam
detail::new_reference str_base::call(object const& arg_)
{
- return (detail::new_reference)PyObject_CallFunction(
#if PY_VERSION_HEX >= 0x03000000
- (PyObject*)&PyUnicode_Type,
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyUnicode_Type };
#else
- (PyObject*)&PyString_Type,
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyString_Type };
#endif
- const_cast<char*>("(O)"),
- arg_.ptr());
+
+ return (detail::new_reference)PyObject_CallFunction(
+ pun.pop, const_cast<char*>("(O)"), arg_.ptr());
}
str_base::str_base()
Index: libs/python/src/tuple.cpp
===================================================================
--- libs/python/src/tuple.cpp.orig 2009-08-17 23:01:18.000000000 +0200
+++ libs/python/src/tuple.cpp 2012-03-13 17:20:34.287172735 +0100
@@ -8,9 +8,10 @@ namespace boost { namespace python { nam
detail::new_reference tuple_base::call(object const& arg_)
{
+ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyTuple_Type };
+
return (detail::new_reference)PyObject_CallFunction(
- (PyObject*)&PyTuple_Type, const_cast<char*>("(O)"),
- arg_.ptr());
+ pun.pop, const_cast<char*>("(O)"), arg_.ptr());
}
tuple_base::tuple_base()
# This line is mandatory to access the configuration functions
from Config import *
addFilter("boost.* shlib-policy-nonversioned-dir")
addFilter("boost.* shlib-policy-missing-suffix")
addFilter("boost-doc.* devel-dependency")
addFilter("boost.* rpm-buildroot-usage")
addFilter("boost.* explicit-lib-dependency")
addFilter("boost.* filename-too-long-for-joliet")
addFilter("boost.* no-binary")
addFilter("boost.* static-library-without-debuginfo")
addFilter("boost.* obsolete-suse-version-check")
addFilter("boost.* shlib-unversioned-lib")
addFilter("boost.* no-dependency-on")
Index: libs/python/build/Jamfile.v2
===================================================================
--- libs/python/build/Jamfile.v2.orig 2010-07-13 00:29:41.000000000 +0200
+++ libs/python/build/Jamfile.v2 2010-08-24 12:51:20.939878260 +0200
@@ -51,6 +51,7 @@ project boost/python
: requirements
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
<tag>@$(__name__).tag
+ <cxxflags>-fno-strict-aliasing
;
rule tag ( name : type ? : property-set )
Index: boost/config/compiler/gcc.hpp
===================================================================
--- boost/config/compiler/gcc.hpp.orig 2010-07-01 13:59:21.000000000 +0200
+++ boost/config/compiler/gcc.hpp 2010-08-24 14:01:18.000000000 +0200
@@ -93,7 +93,7 @@
// those platforms where we can know for sure). It will get turned off again
// later if no threading API is detected.
//
-#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
+#if !defined(__MINGW32__)
# define BOOST_HAS_THREADS
#endif
Index: tools/build/v2/tools/boostbook.jam
===================================================================
--- tools/build/v2/tools/boostbook.jam.orig 2011-06-06 22:36:21.000000000 +0200
+++ tools/build/v2/tools/boostbook.jam 2012-03-13 17:20:34.311172162 +0100
@@ -491,40 +491,7 @@ rule generate-xml-catalog ( target : sou
" <rewriteURI uriStartString=\"http://www.boost.org/tools/boostbook/dtd/\" rewritePrefix=\"file://$(boostbook-dtd-dir)/\"/>"
: true ;
- local docbook-xsl-dir = [ boostbook.docbook-xsl-dir ] ;
- if ! $(docbook-xsl-dir)
- {
- ECHO "BoostBook warning: no DocBook XSL directory specified." ;
- ECHO " If you have the DocBook XSL stylesheets installed, please " ;
- ECHO " set DOCBOOK_XSL_DIR to the stylesheet directory on either " ;
- ECHO " the command line (via -sDOCBOOK_XSL_DIR=...) or in a " ;
- ECHO " Boost.Jam configuration file. The DocBook XSL stylesheets " ;
- ECHO " are available here: http://docbook.sourceforge.net/ " ;
- ECHO " Stylesheets will be downloaded on-the-fly (very slow!) " ;
- }
- else
- {
- docbook-xsl-dir = [ format-catalog-path $(docbook-xsl-dir) ] ;
- print.text " <rewriteURI uriStartString=\"http://docbook.sourceforge.net/release/xsl/current/\" rewritePrefix=\"file://$(docbook-xsl-dir)/\"/>" ;
- }
-
- local docbook-dtd-dir = [ boostbook.docbook-dtd-dir ] ;
- if ! $(docbook-dtd-dir)
- {
- ECHO "BoostBook warning: no DocBook DTD directory specified." ;
- ECHO " If you have the DocBook DTD installed, please set " ;
- ECHO " DOCBOOK_DTD_DIR to the DTD directory on either " ;
- ECHO " the command line (via -sDOCBOOK_DTD_DIR=...) or in a " ;
- ECHO " Boost.Jam configuration file. The DocBook DTD is available " ;
- ECHO " here: http://www.oasis-open.org/docbook/xml/4.2/index.shtml" ;
- ECHO " The DTD will be downloaded on-the-fly (very slow!) " ;
- }
- else
- {
- docbook-dtd-dir = [ format-catalog-path $(docbook-dtd-dir) ] ;
- print.text " <rewriteURI uriStartString=\"http://www.oasis-open.org/docbook/xml/4.2/\" rewritePrefix=\"file://$(docbook-dtd-dir)/\"/>" ;
- }
-
+ print.text " <nextCatalog catalog=\"file:///etc/xml/catalog\"/> " ;
print.text "</catalog>" ;
}
#
# spec file for package boost
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define ver 1.53.0
%define file_version 1_53_0
%define short_version 1_53
%define lib_appendix 1_53_0
%define pkg_short_version 153
#Only define to 1 to generate the man pages
%define build_docs 0
#Define to 0 to not generate the pdf documentation
%define build_pdf 0
%define package_pdf 1
# Just hardcode build_mpi to 1 as soon as openmpi builds on all
# named architectures.
%ifarch s390 s390x ia64 hppa
%define build_mpi 0
%else
%define build_mpi 0
%endif
# context hasn't been ported to most architectures yet
%ifarch %ix86 x86_64 %arm mips ppc ppc64
%define build_context 1
%else
%define build_context 0
%endif
%ifarch hppa
%define disable_long_double 1
%else
%define disable_long_double 0
%endif
%define boost_libs1 libboost_date_time%{lib_appendix} libboost_filesystem%{lib_appendix} libboost_graph%{lib_appendix}
%define boost_libs2 libboost_iostreams%{lib_appendix} libboost_math%{lib_appendix} libboost_test%{lib_appendix}
%define boost_libs3 libboost_program_options%{lib_appendix} libboost_python%{lib_appendix} libboost_serialization%{lib_appendix}
%define boost_libs4 libboost_signals%{lib_appendix} libboost_system%{lib_appendix} libboost_thread%{lib_appendix}
%define boost_libs5 libboost_wave%{lib_appendix} libboost_regex%{lib_appendix} libboost_regex%{lib_appendix}
%define boost_libs6 libboost_random%{lib_appendix} libboost_chrono%{lib_appendix} libboost_locale%{lib_appendix}
%define boost_libs7 libboost_timer%{lib_appendix}
%define most_libs %boost_libs1 %boost_libs2 %boost_libs3 %boost_libs4 %boost_libs5 %boost_libs6 %boost_libs7
%if %build_mpi
%define all_libs %{most_libs} libboost_mpi%{lib_appendix}
%else
%define all_libs %{most_libs}
%endif
%define debug_package_requires %{all_libs}
Name: boost%{?pkg_short_version}
BuildRequires: chrpath
BuildRequires: dos2unix
BuildRequires: gcc-c++
%if 0%{?suse_version}
BuildRequires: libbz2-devel
BuildRequires: libexpat-devel
BuildRequires: xorg-x11-devel
%else
BuildRequires: bzip2-devel
BuildRequires: zlib-devel
BuildRequires: expat-devel
BuildRequires: xorg-x11-proto-devel
%endif
BuildRequires: libicu-devel
BuildRequires: python-devel
%if %build_mpi
BuildRequires: openmpi-devel
%endif
%if %build_docs
BuildRequires: docbook
BuildRequires: docbook-xsl-stylesheets
BuildRequires: doxygen
BuildRequires: libxslt-tools
BuildRequires: python-devel
BuildRequires: texlive-latex
%endif
%if 0%{?suse_version} > 1020
BuildRequires: fdupes
%endif
Url: http://www.boost.org
Summary: Boost C++ Libraries
License: BSL-1.0
Group: Development/Libraries/C and C++
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Version: 1.53.0
Release: 0
Source0: https://downloads.sourceforge.net/project/boost/boost/1.53.0/boost_%{file_version}.tar.bz2
Source1: boost-rpmlintrc
Source2: boost_%{short_version}_man.tar.bz2
Source3: boost_%{short_version}_pdf.tar.bz2
Source4: existing_extra_docs
#Source5: NEWS
Patch1: boost-thread.patch
Patch2: boost-no_type_punning.patch
Patch8: boost-no_segfault_in_Regex_filter.patch
Patch20: boost-strict_aliasing.patch
Patch50: boost-use_std_xml_catalog.patch
#PATCH-FIX-UPSTREAM Fix erroneous assembler code for ppc64 [boost#8374]
Patch51: boost-fix_ppc64_asm.patch
Patch60: boost-glibc-2.18.patch
%if 0%{?suse_version}
Recommends: %{all_libs}
%endif
%define _docdir %{_datadir}/doc/packages/boost-%{version}
%description
Boost provides free peer-reviewed portable C++ source libraries. The
emphasis is on libraries that work well with the C++ Standard Library.
One goal is to establish "existing practice" and provide reference
implementations so that the Boost libraries are suitable for eventual
standardization. Some of the libraries have already been proposed for
inclusion in the C++ Standards Committee's upcoming C++ Standard
Library Technical Report.
Although Boost was begun by members of the C++ Standards Committee
Library Working Group, membership has expanded to include nearly two
thousand members of the C++ community at large.
This package is mainly needed for updating from a prior version, the
dynamic libraries are found in their respective package. For development
using Boost, you also need the boost-devel package. For documentation,
see the boost-doc package.
%package devel
Summary: Development package for Boost C++
Group: Development/Libraries/C and C++
Requires: %{all_libs}
Requires: libstdc++-devel
%description devel
This package contains all that is needed to develop/compile
applications that use the Boost C++ libraries. For documentation see
the documentation packages (html, man or pdf).
%package -n boost-license%{lib_appendix}
Summary: Boost License
Group: Development/Libraries/C and C++
Provides: boost-license = %{version}-%{release}
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description -n boost-license%{lib_appendix}
This package contains the license boost is provided under.
%package doc-html
Summary: HTML documentation for the Boost C++ Libraries
Group: Development/Libraries/C and C++
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description doc-html
This package contains the documentation of the boost dynamic libraries
in HTML format.
%package doc-man
Summary: Man documentation for the Boost C++ Libraries
Group: Development/Libraries/C and C++
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description doc-man
This package contains the documentation of the boost dynamic libraries
as man pages.
%if %package_pdf
%package doc-pdf
Summary: PDF documentation for the Boost C++ Libraries
Group: Development/Libraries/C and C++
%if 0%{?suse_version} >= 1120
BuildArch: noarch
%endif
%description doc-pdf
This package contains the documentation of the boost dynamic libraries
in PDF format.
%endif
%package -n libboost_atomic%{lib_appendix}
Summary: Run-Time component of boost atomic library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_atomic%{lib_appendix}
Run-Time support for Boost.Atomic, a library that provides atomic data types
and operations on these data types, as well as memory ordering constraints
required for coordinating multiple threads through atomic variables.
%package -n libboost_context%{lib_appendix}
Summary: Run-Time component of boost context switching library
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_context%{lib_appendix}
Run-Time support for Boost.Context, a foundational library that
provides a sort of cooperative multitasking on a single thread.
%package -n libboost_date_time%{lib_appendix}
Summary: Boost::Date.Time Runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_date_time%{lib_appendix}
This package contains the Boost Date.Time runtime libraries.
%package -n libboost_filesystem%{lib_appendix}
Summary: Boost::Filesystem Runtime Libraries
Group: System/Localization
Requires: boost-license%{lib_appendix}
%description -n libboost_filesystem%{lib_appendix}
This package contains the Boost::Filesystem libraries.
%package -n libboost_graph%{lib_appendix}
Summary: Boost::Graph Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_graph%{lib_appendix}
This package contains the Boost::Graph Runtime libraries.
%package -n libboost_iostreams%{lib_appendix}
Summary: Boost::IOStreams Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_iostreams%{lib_appendix}
This package contains the Boost::IOStreams Runtime libraries.
%package -n libboost_math%{lib_appendix}
Summary: Boost::Math Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_math%{lib_appendix}
This package contains the Boost::Math Runtime libraries.
%if %build_mpi
%package -n libboost_mpi%{lib_appendix}
Summary: Boost::MPI Runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_mpi%{lib_appendix}
This package contains the Boost::MPI Runtime libraries.
%endif
%package -n libboost_test%{lib_appendix}
Summary: Boost::Test Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_test%{lib_appendix}
This package contains the Boost::Test runtime libraries.
%package -n libboost_program_options%{lib_appendix}
Summary: Boost::ProgramOptions Runtime libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_program_options%{lib_appendix}
This package contains the Boost::ProgramOptions Runtime libraries.
%package -n libboost_python%{lib_appendix}
Summary: Boost::Python Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_python%{lib_appendix}
This package contains the Boost::Python Runtime libraries.
%package -n libboost_serialization%{lib_appendix}
Summary: Boost::Serialization Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_serialization%{lib_appendix}
This package contains the Boost::Serialization Runtime libraries.
%package -n libboost_signals%{lib_appendix}
Summary: Boost::Signals Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_signals%{lib_appendix}
This package contains the Boost::Signals Runtime libraries.
%package -n libboost_system%{lib_appendix}
Summary: Boost::System Runtime Libraries
Group: System/Libraries
Requires: boost-license%{lib_appendix}
%description -n libboost_system%{lib_appendix}