SHA256
1
0
forked from pool/boost

Accepting request 348088 from home:psmt:branches:devel:libraries:c_c++

Make needed class members of basic_xml_grammar<char> visible

OBS-URL: https://build.opensuse.org/request/show/348088
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=153
This commit is contained in:
Philipp Thomas 2015-12-09 12:41:37 +00:00 committed by Git OBS Bridge
parent 347c049e99
commit 5ef6455e7d
3 changed files with 231 additions and 84 deletions

110
boost-visibility.patch Normal file
View File

@ -0,0 +1,110 @@
---
boost/archive/impl/basic_xml_grammar.hpp | 16 ++++++++--------
libs/serialization/src/basic_xml_grammar.ipp | 14 +++++++-------
2 files changed, 15 insertions(+), 15 deletions(-)
Index: boost/archive/impl/basic_xml_grammar.hpp
===================================================================
--- boost/archive/impl/basic_xml_grammar.hpp.orig 2015-05-23 20:51:06.000000000 +0200
+++ boost/archive/impl/basic_xml_grammar.hpp 2015-12-08 15:47:11.506885556 +0100
@@ -135,7 +135,7 @@ private:
Sch,
NameChar;
- void init_chset();
+ BOOST_SYMBOL_VISIBLE void init_chset();
bool my_parse(
IStream & is,
@@ -143,7 +143,7 @@ private:
const CharType delimiter = L'>'
) const ;
public:
- struct return_values {
+ BOOST_SYMBOL_VISIBLE struct return_values {
StringType object_name;
StringType contents;
//class_id_type class_id;
@@ -159,12 +159,12 @@ public:
tracking_level(false)
{}
} rv;
- bool parse_start_tag(IStream & is) /*const*/;
- bool parse_end_tag(IStream & is) const;
- bool parse_string(IStream & is, StringType & s) /*const*/;
- void init(IStream & is);
- void windup(IStream & is);
- basic_xml_grammar();
+ BOOST_SYMBOL_VISIBLE bool parse_start_tag(IStream & is) /*const*/;
+ BOOST_SYMBOL_VISIBLE bool parse_end_tag(IStream & is) const;
+ BOOST_SYMBOL_VISIBLE bool parse_string(IStream & is, StringType & s) /*const*/;
+ BOOST_SYMBOL_VISIBLE void init(IStream & is);
+ BOOST_SYMBOL_VISIBLE void windup(IStream & is);
+ BOOST_SYMBOL_VISIBLE basic_xml_grammar();
};
} // namespace archive
Index: libs/serialization/src/basic_xml_grammar.ipp
===================================================================
--- libs/serialization/src/basic_xml_grammar.ipp.orig 2015-05-23 20:51:06.000000000 +0200
+++ libs/serialization/src/basic_xml_grammar.ipp 2015-12-08 15:41:23.620854565 +0100
@@ -173,7 +173,7 @@ struct append_lit {
} // namespace anonymous
template<class CharType>
-bool basic_xml_grammar<CharType>::my_parse(
+BOOST_SYMBOL_VISIBLE bool basic_xml_grammar<CharType>::my_parse(
typename basic_xml_grammar<CharType>::IStream & is,
const rule_t & rule_,
CharType delimiter
@@ -211,7 +211,7 @@ bool basic_xml_grammar<CharType>::my_par
}
template<class CharType>
-bool basic_xml_grammar<CharType>::parse_start_tag(
+BOOST_SYMBOL_VISIBLE bool basic_xml_grammar<CharType>::parse_start_tag(
typename basic_xml_grammar<CharType>::IStream & is
){
rv.class_name.resize(0);
@@ -219,12 +219,12 @@ bool basic_xml_grammar<CharType>::parse_
}
template<class CharType>
-bool basic_xml_grammar<CharType>::parse_end_tag(IStream & is) const {
+BOOST_SYMBOL_VISIBLE bool basic_xml_grammar<CharType>::parse_end_tag(IStream & is) const {
return my_parse(is, ETag);
}
template<class CharType>
-bool basic_xml_grammar<CharType>::parse_string(IStream & is, StringType & s){
+BOOST_SYMBOL_VISIBLE bool basic_xml_grammar<CharType>::parse_string(IStream & is, StringType & s){
rv.contents.resize(0);
bool result = my_parse(is, content, '<');
// note: unget caused a problem with dinkumware. replace with
@@ -237,7 +237,7 @@ bool basic_xml_grammar<CharType>::parse_
}
template<class CharType>
-basic_xml_grammar<CharType>::basic_xml_grammar(){
+BOOST_SYMBOL_VISIBLE basic_xml_grammar<CharType>::basic_xml_grammar(){
init_chset();
S =
@@ -434,7 +434,7 @@ basic_xml_grammar<CharType>::basic_xml_g
}
template<class CharType>
-void basic_xml_grammar<CharType>::init(IStream & is){
+BOOST_SYMBOL_VISIBLE void basic_xml_grammar<CharType>::init(IStream & is){
init_chset();
if(! my_parse(is, XMLDecl))
boost::serialization::throw_exception(
@@ -455,7 +455,7 @@ void basic_xml_grammar<CharType>::init(I
}
template<class CharType>
-void basic_xml_grammar<CharType>::windup(IStream & is){
+BOOST_SYMBOL_VISIBLE void basic_xml_grammar<CharType>::windup(IStream & is){
if(is.fail() || is.eof())
return;
// uh-oh - don't throw exception from code called by a destructor !

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Tue Dec 8 15:52:49 CET 2015 - pth@suse.de
- Make members of basic_xml_grammar visible (boo#958150).
- Fix redefinition of _docdir.
-------------------------------------------------------------------
Thu Nov 26 10:57:32 UTC 2015 - schwab@suse.de

View File

@ -21,37 +21,11 @@
%define docs_version 1.56.0
%define short_version 1_56
%define lib_appendix 1_59_0
#Only define to 1 to generate the man pages
%define build_docs 0
#Define to 0 to not package the pdf documentation
%define package_pdf 1
%define build_quickbook 1
# Just hardcode build_mpi to 1 as soon as openmpi builds on all
# named architectures.
%ifarch ia64 hppa
%define build_mpi 0
%else
%define build_mpi 1
%endif
# context hasn't been ported to most architectures yet
%ifarch %ix86 x86_64 %arm aarch64 mips ppc ppc64 ppc64le
%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_l1 libboost_date_time%{lib_appendix} libboost_filesystem%{lib_appendix} libboost_graph%{lib_appendix}
%define boost_l2 libboost_iostreams%{lib_appendix} libboost_math%{lib_appendix} libboost_test%{lib_appendix}
%define boost_l3 libboost_program_options%{lib_appendix} libboost_python%{lib_appendix} libboost_serialization%{lib_appendix}
@ -59,18 +33,34 @@
%define boost_l5 libboost_wave%{lib_appendix} libboost_regex%{lib_appendix} libboost_regex%{lib_appendix}
%define boost_l6 libboost_random%{lib_appendix} libboost_chrono%{lib_appendix} libboost_locale%{lib_appendix}
%define boost_l7 libboost_timer%{lib_appendix} libboost_atomic%{lib_appendix} libboost_log%{lib_appendix} libboost_container%{lib_appendix}
%if %build_context
%define most_libs %{boost_l1} %{boost_l2} %{boost_l3} %{boost_l4} %{boost_l5} %{boost_l6} %{boost_l7} %{?boost_libs_context}
%define my_docdir %{_docdir}/boost-%{version}
# Just hardcode build_mpi to 1 as soon as openmpi builds on all
# named architectures.
%ifarch ia64 hppa
%define build_mpi 0
%else
%define build_mpi 1
%endif
# context hasn't been ported to most architectures yet
%ifarch %ix86 x86_64 %arm aarch64 mips ppc ppc64 ppc64le
%define build_context 1
%else
%define build_context 0
%endif
%ifarch hppa
%define disable_long_double 1
%else
%define disable_long_double 0
%endif
%if %{build_context}
%define boost_libs_context libboost_context%{lib_appendix} libboost_coroutine%{lib_appendix}
%endif
%define most_libs %boost_l1 %boost_l2 %boost_l3 %boost_l4 %boost_l5 %boost_l6 %boost_l7 %{?boost_libs_context}
%if %build_mpi
%define all_libs %{most_libs} libboost_graph_parallel%lib_appendix libboost_mpi%{lib_appendix}
%if %{build_mpi}
%define all_libs %{most_libs} libboost_graph_parallel%{lib_appendix} libboost_mpi%{lib_appendix}
%else
%define all_libs %{most_libs}
%endif
Name: boost
Version: 1.59.0
Release: 0
@ -95,6 +85,7 @@ Patch9: boost-aarch64-flags.patch
Patch10: boost-disable-pch-on-aarch64.patch
Patch11: boost-1.59-python-make_setter.patch
Patch12: boost-1.59-test-fenv.patch
Patch13: boost-visibility.patch
BuildRequires: chrpath
BuildRequires: dos2unix
BuildRequires: fdupes
@ -105,20 +96,18 @@ BuildRequires: libicu-devel >= 4.4
BuildRequires: python-devel
#!BuildIgnore: python
BuildRequires: zlib-devel
%if %build_mpi
Recommends: %{all_libs}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{build_mpi}
BuildRequires: openmpi-devel
%endif
%if %build_docs
%if %{build_docs}
BuildRequires: docbook
BuildRequires: docbook-xsl-stylesheets
BuildRequires: doxygen
BuildRequires: libxslt-tools
BuildRequires: texlive-latex
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Recommends: %{all_libs}
%define _docdir %{_datadir}/doc/packages/boost-%{version}
%description
Boost provides free peer-reviewed portable C++ source libraries. The
@ -182,7 +171,7 @@ in HTML format.
# This package contains the documentation of the boost dynamic libraries
# as man pages.
%if %package_pdf
%if %{package_pdf}
%package doc-pdf
Summary: PDF documentation for the Boost C++ Libraries
Group: Development/Libraries/C and C++
@ -254,12 +243,12 @@ Requires: boost-license%{lib_appendix}
%description -n libboost_graph%{lib_appendix}
This package contains the Boost::Graph Runtime libraries.
%package -n libboost_graph_parallel%lib_appendix
%package -n libboost_graph_parallel%{lib_appendix}
Summary: Boost graph::distributed runtime libraries
Group: System/Libraries
Requires: boost-license%lib_appendix
Requires: boost-license%{lib_appendix}
%description -n libboost_graph_parallel%lib_appendix
%description -n libboost_graph_parallel%{lib_appendix}
This package contains the boost::graph::distributed runtime libraries.
%package -n libboost_iostreams%{lib_appendix}
@ -288,7 +277,7 @@ Requires: boost-license%{lib_appendix}
%description -n libboost_math%{lib_appendix}
This package contains the Boost::Math Runtime libraries.
%if %build_mpi
%if %{build_mpi}
%package -n libboost_mpi%{lib_appendix}
Summary: Boost::MPI Runtime libraries
Group: System/Libraries
@ -314,7 +303,6 @@ 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
@ -403,7 +391,7 @@ Requires: boost-license%{lib_appendix}
%description -n libboost_timer%{lib_appendix}
This package contains the Boost::Timer runtime library.
%if %build_quickbook
%if %{build_quickbook}
%package -n quickbook
Summary: Documentation tool geared towards C++
Group: Development/Tools/Doc Generators
@ -431,6 +419,7 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {}
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13
#stupid build machinery copies .orig files
find . -name \*.orig -exec rm {} +
@ -469,12 +458,12 @@ export LONG_DOUBLE_FLAGS="--disable-long-double"
%endif
BJAM_CONFIG="-d2 -j$JOBS -sICU_PATH=%{_prefix}"
PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]')
PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION"
PYTHON_FLAGS="--with-python-root=%{_prefix} --with-python-version=$PYTHON_VERSION"
export REGEX_FLAGS="--with-icu"
export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir}
export EXPAT_INCLUDE=%{_includedir} EXPAT_LIBPATH=%{_libdir}
export PYTHON_FLAGS
LIBRARIES_FLAGS=--with-libraries=all
%if !%build_context
%if !%{build_context}
# coroutine/coroutine2 depend on context
LIBRARIES_FLAGS+=" --without-libraries=context,coroutine,coroutine2"
%endif
@ -484,7 +473,7 @@ EOF
. ./.build
# Set PATH, MANPATH and LD_LIBRARY_PATH for mpi
. /var/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
. %{_localstatedir}/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
# use supplied bootstrap.sh instead of mucking with old bjam
# see also: https://svn.boost.org/trac/boost/ticket/9304
@ -501,20 +490,20 @@ local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ;
using gcc : : : <compileflags>\$(RPM_OPT_FLAGS) ;
EOF
%if %build_docs
%if %{build_docs}
cat << EOF >>user-config.jam
using xsltproc ;
using boostbook
: /usr/share/xml/docbook/stylesheet/nwalsh/current
: /usr/share/xml/docbook/schema/dtd/4.2
: %{_datadir}/xml/docbook/stylesheet/nwalsh/current
: %{_datadir}/xml/docbook/schema/dtd/4.2
;
using doxygen ;
EOF
%endif
%if %build_mpi
%if %{build_mpi}
cat << EOF >>user-config.jam
using mpi ;
EOF
@ -523,13 +512,13 @@ EOF
# perform the compilation
./b2 -d+2 -q --prefix=%{_prefix} --libdir=%{_libdir} --user-config=./user-config.jam
%if %build_quickbook
%if %{build_quickbook}
pushd tools/quickbook
../../b2 --user-config=../../user-config.jam --v2 dist-bin
popd
%endif
%if %build_docs
%if %{build_docs}
cd doc
../b2 --user-config=../user-config.jam --v2 man
%endif
@ -540,7 +529,7 @@ cd doc
. ./.build
# Set PATH, MANPATH and LD_LIBRARY_PATH for mpi
. /var/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
. %{_localstatedir}/mpi-selector/data/$(rpm --qf "%{NAME}-%{VERSION}" -q openmpi).sh
./b2 install \
--prefix=%{buildroot}%{_prefix} --exec-prefix=%{buildroot}%{_bindir} \
@ -551,7 +540,7 @@ cd doc
# see https://bugzilla.redhat.com/show_bug.cgi?id=801534 for details
rm -f %{buildroot}%{_libdir}/mpi.so
mkdir -p %{buildroot}%{_docdir}
mkdir -p %{buildroot}%{my_docdir}
pushd %{buildroot}%{_libdir}
blibs=$(find . -name \*.so.%{version})
@ -585,85 +574,127 @@ dos2unix libs/ptr_container/doc/tutorial_example.html \
libs/graph/doc/lengauer_tarjan_dominator.htm
find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | \
tar --files-from=%{S:4} -cf - --files-from=- | tar -C %{buildroot}%{_docdir} -xf -
rm -rf %{buildroot}%{_docdir}/boost
ln -s /usr/include/boost %{buildroot}%{_docdir}
ln -s ../LICENSE_1_0.txt %{buildroot}%{_docdir}/libs
#Copy the news file.
#cp %%{S:5} %%{buildroot}%%{_docdir}
#only for documentation, doesn't need to be executable
find %{buildroot}%{_docdir} -name \*.py -exec chmod -x {} +
tar --files-from=%{SOURCE4} -cf - --files-from=- | tar -C %{buildroot}%{my_docdir} -xf -
rm -rf %{buildroot}%{my_docdir}/boost
ln -s %{_includedir}/boost %{buildroot}%{my_docdir}
ln -s ../LICENSE_1_0.txt %{buildroot}%{my_docdir}/libs
find %{buildroot}%{my_docdir} -name \*.py -exec chmod -x {} +
chmod -x ../%{name}_%{short_version}_pdf/*.pdf
rm -f %{buildroot}%{_libdir}/*.a
#symlink dupes
%fdupes %buildroot
%fdupes %{buildroot}
%if %build_quickbook
%if %{build_quickbook}
mkdir -p %{buildroot}%{_bindir}
install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook
%endif
%post -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_container%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_context%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_coroutine%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_log%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_test%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_python%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_regex%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_signals%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_thread%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_math%{lib_appendix} -p /sbin/ldconfig
%if %build_mpi
%if %{build_mpi}
%post -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig
%endif
%post -n libboost_graph%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_system%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_wave%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_random%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_chrono%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_locale%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_timer%{lib_appendix} -p /sbin/ldconfig
%post -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_container%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_context%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_coroutine%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_log%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_test%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_python%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_regex%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_signals%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_thread%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_math%{lib_appendix} -p /sbin/ldconfig
%if %build_mpi
%if %{build_mpi}
%postun -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig
%endif
%postun -n libboost_graph%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_system%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_wave%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_random%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_chrono%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_locale%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_timer%{lib_appendix} -p /sbin/ldconfig
%postun -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig
%files -n boost-license%{lib_appendix}
%defattr(-, root, root, -)
%dir %{_docdir}
#%%doc %%{_docdir}/NEWS
%doc %{_docdir}/LICENSE_1_0.txt
%dir %{my_docdir}
%doc %{my_docdir}/LICENSE_1_0.txt
%files -n libboost_atomic%{lib_appendix}
%defattr(-, root, root, -)
@ -673,7 +704,7 @@ install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook
%defattr(-, root, root, -)
%{_libdir}/libboost_container*.so.*
%if %build_context
%if %{build_context}
%files -n libboost_context%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_context*.so.*
@ -695,9 +726,9 @@ install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook
%defattr(-, root, root, -)
%{_libdir}/libboost_graph.so.*
%files -n libboost_graph_parallel%lib_appendix
%files -n libboost_graph_parallel%{lib_appendix}
%defattr(-,root,root)
%_libdir/libboost_graph_parallel.so.*
%{_libdir}/libboost_graph_parallel.so.*
%files -n libboost_iostreams%{lib_appendix}
%defattr(-, root, root, -)
@ -711,7 +742,7 @@ install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook
%defattr(-, root, root, -)
%{_libdir}/libboost_math_*.so.*
%if %build_mpi
%if %{build_mpi}
%files -n libboost_mpi%{lib_appendix}
%defattr(-, root, root, -)
%{_libdir}/libboost_mpi*.so.*
@ -778,8 +809,8 @@ install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook
%files doc-html
%defattr(-, root, root, -)
%doc %{_docdir}/*
%exclude %{_docdir}/LICENSE_1_0.txt
%doc %{my_docdir}/*
%exclude %{my_docdir}/LICENSE_1_0.txt
# %%files doc-man
# %%defattr(644, root, root, -)
@ -787,7 +818,7 @@ install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook
# %%doc %%{_mandir}/man7/*.7.gz
# %%doc %%{_mandir}/man9/*.9.gz
%if %package_pdf
%if %{package_pdf}
%files doc-pdf
%defattr(-, root, root, -)
%doc ../%{name}_%{short_version}_pdf/*.pdf