summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packaging/boost.spec123
1 files changed, 85 insertions, 38 deletions
diff --git a/packaging/boost.spec b/packaging/boost.spec
index 030f3b3..9e95342 100644
--- a/packaging/boost.spec
+++ b/packaging/boost.spec
@@ -16,9 +16,8 @@
# Just hardcode build_mpi to 1 as soon as openmpi builds on all
# named architectures.
-
%define build_mpi 0
-%define build_coroutine 0
+
%define disable_long_double 0
%define boost_libs1 boost-date-time boost-filesystem boost-graph
@@ -30,7 +29,30 @@
%define boost_libs7 boost-timer boost-atomic boost-log boost-container
%define most_libs %boost_libs1 %boost_libs2 %boost_libs3 %boost_libs4 %boost_libs5 %boost_libs6 %boost_libs7
-%define all_libs %{most_libs} boost-context
+
+# context hasn't been ported to most architectures yet
+%ifarch x86_64 aarch64
+%define build_context 0
+%else
+%define build_context 1
+%endif
+
+# needs newer GCC to compile runtime
+%if %{build_context}
+%define build_fiber 1
+%else
+%define build_fiber 0
+%endif
+
+%if %{build_context}
+%define context_libs boost-context boost-coroutine
+%endif
+
+%if %{build_fiber}
+%define fiber_libs boost-fiber
+%endif
+
+%define all_libs %{most_libs} %{?context_libs} %{?fiber_libs}
Name: boost
BuildRequires: boost-jam
@@ -54,7 +76,7 @@ Release: 0
Source0: %{name}_%{file_version}.tar.bz2
Source1: boost-rpmlintrc
Source4: existing_extra_docs
-Source1001: boost.manifest
+Source1001: boost.manifest
Source1002: boost.pc
%define _docdir %{_datadir}/doc/packages/boost-%{version}
@@ -124,6 +146,7 @@ Requires: boost-license
%description -n boost-container
This package contains the Boost Container runtime libraries.
+%if %{build_context}
%package -n boost-context
Summary: Run-Time component of boost context switching library
Group: System/Libraries
@@ -133,6 +156,16 @@ Requires: boost-license
Run-Time support for Boost.Context, a foundational library that
provides a sort of cooperative multitasking on a single thread.
+%package -n boost-coroutine
+Summary: Boost::Coroutine Runtime libraries
+Group: System/Libraries
+Requires: boost-license
+
+%description -n boost-coroutine
+This package contains the Boost Coroutine runtime libraries.
+%endif
+
+%if %{build_fiber}
%package -n boost-fiber
Summary: Run-Time component of boost fiber
Group: System/Libraries
@@ -140,14 +173,8 @@ Requires: boost-license
%description -n boost-fiber
Run-Time support for Boost.fiber
+%endif
-%package -n boost-coroutine
-Summary: Boost::Coroutine Runtime libraries
-Group: System/Libraries
-Requires: boost-license
-
-%description -n boost-coroutine
-This package contains the Boost Coroutine runtime libraries.
%package -n boost-date-time
Summary: Boost::Date.Time Runtime libraries
@@ -162,7 +189,7 @@ This package contains the Boost Date.Time runtime libraries.
Summary: Boost::Filesystem Runtime Libraries
Group: System/Localization
Requires: boost-license
-Provides: boost-filesystem
+Provides: boost-filesystem
%description -n boost-filesystem
This package contains the Boost::Filesystem libraries.
@@ -171,7 +198,7 @@ This package contains the Boost::Filesystem libraries.
Summary: Boost::Graph Runtime Libraries
Group: System/Libraries
Requires: boost-license
-Provides: boost-graph
+Provides: boost-graph
%description -n boost-graph
This package contains the Boost::Graph Runtime libraries.
@@ -190,7 +217,7 @@ This package contains the boost::graph::distributed runtime libraries.
Summary: Boost::IOStreams Runtime Libraries
Group: System/Libraries
Requires: boost-license
-Provides: boost-iostreams
+Provides: boost-iostreams
%description -n boost-iostreams
This package contains the Boost::IOStreams Runtime libraries.
@@ -199,7 +226,7 @@ This package contains the Boost::IOStreams Runtime libraries.
Summary: Run-Time component of boost logging library
Group: System/Libraries
Requires: boost-license
-Provides: boost-log
+Provides: boost-log
%description -n boost-log
Boost.Log library aims to make logging significantly easier for the
@@ -210,7 +237,7 @@ tools along with public interfaces for extending the library.
Summary: Boost::Math Runtime Libraries
Group: System/Libraries
Requires: boost-license
-Provides: boost-math
+Provides: boost-math
%description -n boost-math
This package contains the Boost::Math Runtime libraries.
@@ -220,7 +247,7 @@ This package contains the Boost::Math Runtime libraries.
Summary: Boost::MPI Runtime libraries
Group: System/Libraries
Requires: boost-license
-Provides: boost-mpi
+Provides: boost-mpi
%description -n boost-mpi
This package contains the Boost::MPI Runtime libraries.
@@ -230,7 +257,7 @@ This package contains the Boost::MPI Runtime libraries.
Summary: Boost::Test Runtime Libraries
Group: System/Libraries
Requires: boost-license
-Provides: boost-test
+Provides: boost-test
%description -n boost-test
This package contains the Boost::Test runtime libraries.
@@ -267,7 +294,7 @@ This package contains the Boost::Serialization Runtime libraries.
Summary: Boost::Signals Runtime Libraries
Group: System/Libraries
Requires: boost-license
-Provides: boost-signals
+Provides: boost-signals
%description -n boost-signals
This package contains the Boost::Signals Runtime libraries.
@@ -354,7 +381,7 @@ This package contains the Boost::TypeErasure runtime library.
%prep
-%setup -q -n %{name}_%{file_version}
+%setup -q -n %{name}_%{version}
cp %{SOURCE1001} .
cp %{SOURCE1002} .
#everything in the tarball has the executable flag set ...
@@ -391,10 +418,15 @@ export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir}
export PYTHON_FLAGS
LIBRARIES_FLAGS=--with-libraries=all
-%if !%build_coroutine
-# coroutine depends on context
-LIBRARIES_FLAGS+=" --without-libraries=coroutine,fiber"
+%if !%{build_context}
+# coroutine/coroutine2 depend on context
+LIBRARIES_FLAGS+=" --without-libraries=context,coroutine,coroutine2"
+%endif
+
+%if !%{build_fiber}
+LIBRARIES_FLAGS+=" --without-libraries=fiber"
%endif
+
EOF
touch user-config.jam
@@ -435,7 +467,7 @@ EOF
# perform the compilation
./b2 %{?_smp_mflags} --prefix=%{_prefix} --libdir=%{_libdir} \
- --user-config=./user-config.jam ${CFLAGS:+cflags="$CFLAGS"} \
+ --user-config=./user-config.jam ${CFLAGS:+cflags="$CFLAGS"} \
${CXXFLAGS:+cxxflags="$CXXFLAGS"} ${LDFLAGS:+linkflags="$LDFLAGS"}
@@ -503,15 +535,15 @@ install -D -m 644 %{SOURCE1002} $RPM_BUILD_ROOT%{_libdir}/pkgconfig
#install doc files
#dos2unix libs/ptr_container/doc/tutorial_example.html \
-# libs/parameter/doc/html/reference.html \
-# libs/parameter/doc/html/index.html \
-# libs/iostreams/doc/tree/tree.js \
-# libs/graph/doc/lengauer_tarjan_dominator.htm \
-# libs/test/test/test_files/errors_handling_test.pattern \
-# libs/test/test/test_files/result_report_test.pattern
+# libs/parameter/doc/html/reference.html \
+# libs/parameter/doc/html/index.html \
+# libs/iostreams/doc/tree/tree.js \
+# libs/graph/doc/lengauer_tarjan_dominator.htm \
+# libs/test/test/test_files/errors_handling_test.pattern \
+# libs/test/test/test_files/result_report_test.pattern
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 -
+ 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
@@ -534,9 +566,15 @@ cp -af LICENSE_1_0.txt %{buildroot}/usr/share/license/%{name}
%post -n boost-atomic -p /sbin/ldconfig
%post -n boost-container -p /sbin/ldconfig
+
+%if %{build_context}
%post -n boost-context -p /sbin/ldconfig
-%post -n boost-fiber -p /sbin/ldconfig
%post -n boost-coroutine -p /sbin/ldconfig
+%endif
+
+%if %{build_fiber}
+%post -n boost-fiber -p /sbin/ldconfig
+%endif
%post -n boost-date-time -p /sbin/ldconfig
%post -n boost-filesystem -p /sbin/ldconfig
%post -n boost-iostreams -p /sbin/ldconfig
@@ -566,9 +604,16 @@ cp -af LICENSE_1_0.txt %{buildroot}/usr/share/license/%{name}
%postun -n boost-atomic -p /sbin/ldconfig
%postun -n boost-container -p /sbin/ldconfig
+
+%if %{build_context}
%postun -n boost-context -p /sbin/ldconfig
-%postun -n boost-fiber -p /sbin/ldconfig
%postun -n boost-coroutine -p /sbin/ldconfig
+%endif
+
+%if %{build_fiber}
+%postun -n boost-fiber -p /sbin/ldconfig
+%endif
+
%postun -n boost-date-time -p /sbin/ldconfig
%postun -n boost-filesystem -p /sbin/ldconfig
%postun -n boost-iostreams -p /sbin/ldconfig
@@ -619,27 +664,29 @@ cp -af LICENSE_1_0.txt %{buildroot}/usr/share/license/%{name}
%{_libdir}/libboost_container*.so.*
-%manifest %{name}.manifest
+%if %{build_context}
%files -n boost-context
+%manifest %{name}.manifest
%defattr(-, root, root, -)
%license LICENSE_1_0.txt
%{_libdir}/libboost_context*.so.*
-%if %build_coroutine
-
%files -n boost-coroutine
+%manifest %{name}.manifest
%defattr(-, root, root, -)
%license LICENSE_1_0.txt
%{_libdir}/libboost_coroutine*.so.*
+%endif
-
+%if %{build_fiber}
%files -n boost-fiber
+%manifest %{name}.manifest
%defattr(-, root, root, -)
%license LICENSE_1_0.txt
%{_libdir}/libboost_fiber*.so.*
-
%endif
+
%files -n boost-date-time
%manifest %{name}.manifest
%defattr(-, root, root, -)