Compare commits

...
Sign in to create a new pull request.

3 commits

Author SHA1 Message Date
Deji Akingunola
92a8829062 Rename mpich2 sub-packages to mpich and rebuild for mpich-3.0 2013-07-25 01:15:40 -04:00
Petr Machata
c8d5eede58 Add symlinks for /usr/lib/libboost_{thread,locale}.so -> *-mt.so 2013-06-27 20:47:56 +02:00
Petr Machata
6605c4a402 Fix classifying incomplete UTF-8 sequences in Boost.Locale 2013-02-13 13:18:54 +01:00
2 changed files with 126 additions and 47 deletions

View file

@ -0,0 +1,52 @@
Index: boost/locale/utf.hpp
===================================================================
--- boost/locale/utf.hpp (revision 81589)
+++ boost/locale/utf.hpp (revision 81590)
@@ -219,16 +219,22 @@
if(BOOST_LOCALE_UNLIKELY(p==e))
return incomplete;
tmp = *p++;
+ if (!is_trail(tmp))
+ return illegal;
c = (c << 6) | ( tmp & 0x3F);
case 2:
if(BOOST_LOCALE_UNLIKELY(p==e))
return incomplete;
tmp = *p++;
+ if (!is_trail(tmp))
+ return illegal;
c = (c << 6) | ( tmp & 0x3F);
case 1:
if(BOOST_LOCALE_UNLIKELY(p==e))
return incomplete;
tmp = *p++;
+ if (!is_trail(tmp))
+ return illegal;
c = (c << 6) | ( tmp & 0x3F);
}
Index: libs/locale/test/test_codepage_converter.cpp
===================================================================
--- libs/locale/test/test_codepage_converter.cpp (revision 81589)
+++ libs/locale/test/test_codepage_converter.cpp (revision 81590)
@@ -140,6 +140,20 @@
TEST_TO("\xf8\x90\x80\x80\x80",illegal); // 400 0000
TEST_TO("\xfd\xbf\xbf\xbf\xbf\xbf",illegal); // 7fff ffff
+ std::cout << "-- Invalid trail" << std::endl;
+ TEST_TO("\xC2\x7F",illegal);
+ TEST_TO("\xdf\x7F",illegal);
+ TEST_TO("\xe0\x7F\x80",illegal);
+ TEST_TO("\xef\xbf\x7F",illegal);
+ TEST_TO("\xe0\x7F\x80",illegal);
+ TEST_TO("\xef\xbf\x7F",illegal);
+ TEST_TO("\xf0\x7F\x80\x80",illegal);
+ TEST_TO("\xf4\x7f\xbf\xbf",illegal);
+ TEST_TO("\xf0\x90\x7F\x80",illegal);
+ TEST_TO("\xf4\x8f\x7F\xbf",illegal);
+ TEST_TO("\xf0\x90\x80\x7F",illegal);
+ TEST_TO("\xf4\x8f\xbf\x7F",illegal);
+
std::cout << "-- Invalid length" << std::endl;
/// Test that this actually works

View file

@ -7,9 +7,9 @@
# Configuration of MPI back-ends # Configuration of MPI back-ends
%ifarch %{arm} %ifarch %{arm}
%bcond_with mpich2 %bcond_with mpich
%else %else
%bcond_without mpich2 %bcond_without mpich
%endif %endif
%ifarch s390 s390x %{arm} %ifarch s390 s390x %{arm}
# No OpenMPI support on these arches # No OpenMPI support on these arches
@ -25,7 +25,7 @@ Name: boost
Summary: The free peer-reviewed portable C++ source libraries Summary: The free peer-reviewed portable C++ source libraries
Version: 1.50.0 Version: 1.50.0
%define version_enc 1_50_0 %define version_enc 1_50_0
Release: 4%{?dist} Release: 7%{?dist}
License: Boost and MIT and Python License: Boost and MIT and Python
%define toplev_dirname %{name}_%{version_enc} %define toplev_dirname %{name}_%{version_enc}
@ -108,6 +108,9 @@ Patch12: boost-1.50.0-polygon.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=828857 # https://bugzilla.redhat.com/show_bug.cgi?id=828857
Patch15: boost-1.50.0-pool.patch Patch15: boost-1.50.0-pool.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=907481
Patch17: boost-1.50.0-invalid-utf8.patch
%bcond_with tests %bcond_with tests
%bcond_with docs_generated %bcond_with docs_generated
@ -400,52 +403,60 @@ back-end to do the parallel work.
%endif %endif
%if %{with mpich2} %if %{with mpich}
%package mpich2 %package mpich
Summary: Run-Time component of Boost.MPI library Summary: Run-Time component of Boost.MPI library
Group: System Environment/Libraries Group: System Environment/Libraries
Requires: mpich2 Requires: mpich
BuildRequires: mpich2-devel BuildRequires: mpich-devel
Provides: %{name}-mpich2 = %{version}-%{release}
Obsoletes: %{name}-mpich2 < 1.50.0-7
%description mpich2 %description mpich
Run-Time support for Boost.MPI-MPICH2, a library providing a clean C++ Run-Time support for Boost.MPI-MPICH, a library providing a clean C++
API over the MPICH2 implementation of MPI. API over the MPICH implementation of MPI.
%package mpich2-devel %package mpich-devel
Summary: Shared library symbolic links for Boost.MPI Summary: Shared library symbolic links for Boost.MPI
Group: System Environment/Libraries Group: System Environment/Libraries
Requires: boost-devel = %{version}-%{release} Requires: boost-devel = %{version}-%{release}
Requires: boost-mpich2 = %{version}-%{release} Requires: boost-mpich = %{version}-%{release}
Requires: boost-mpich2-python = %{version}-%{release} Requires: boost-mpich-python = %{version}-%{release}
Requires: boost-graph-mpich2 = %{version}-%{release} Requires: boost-graph-mpich = %{version}-%{release}
Provides: %{name}-mpich2-devel = %{version}-%{release}
Obsoletes: %{name}-mpich2-devel < 1.50.0-7
%description mpich2-devel %description mpich-devel
Devel package for Boost.MPI-MPICH2, a library providing a clean C++ Devel package for Boost.MPI-MPICH, a library providing a clean C++
API over the MPICH2 implementation of MPI. API over the MPICH implementation of MPI.
%package mpich2-python %package mpich-python
Summary: Python run-time component of Boost.MPI library Summary: Python run-time component of Boost.MPI library
Group: System Environment/Libraries Group: System Environment/Libraries
Requires: boost-mpich2 = %{version}-%{release} Requires: boost-mpich = %{version}-%{release}
Provides: %{name}-mpich2-python = %{version}-%{release}
Obsoletes: %{name}-mpich2-python < 1.50.0-7
%description mpich2-python %description mpich-python
Python support for Boost.MPI-MPICH2, a library providing a clean C++ Python support for Boost.MPI-MPICH, a library providing a clean C++
API over the MPICH2 implementation of MPI. API over the MPICH implementation of MPI.
%package graph-mpich2 %package graph-mpich
Summary: Run-Time component of parallel boost graph library Summary: Run-Time component of parallel boost graph library
Group: System Environment/Libraries Group: System Environment/Libraries
Requires: boost-mpich2 = %{version}-%{release} Requires: boost-mpich = %{version}-%{release}
Provides: %{name}-graph-mpich2 = %{version}-%{release}
Obsoletes: %{name}-graph-mpich2 < 1.50.0-7
%description graph-mpich2 %description graph-mpich
Run-Time support for the Parallel BGL graph library. The interface and Run-Time support for the Parallel BGL graph library. The interface and
graph components are generic, in the same sense as the the Standard graph components are generic, in the same sense as the the Standard
Template Library (STL). This libraries in this package use MPICH2 Template Library (STL). This libraries in this package use MPICH
back-end to do the parallel work. back-end to do the parallel work.
%endif %endif
@ -485,6 +496,7 @@ a number of significant features and is now developed independently
%patch10 -p1 %patch10 -p1
%patch12 -p3 %patch12 -p3
%patch15 -p0 %patch15 -p0
%patch17 -p0
# At least python2_version needs to be a macro so that it's visible in # At least python2_version needs to be a macro so that it's visible in
# %%install as well. # %%install as well.
@ -547,15 +559,15 @@ echo ============================= build $MPI_COMPILER ==================
export PATH=/bin${PATH:+:}$PATH export PATH=/bin${PATH:+:}$PATH
%endif %endif
# Build MPI parts of Boost with MPICH2 support # Build MPI parts of Boost with MPICH support
%if %{with mpich2} %if %{with mpich}
%{_mpich2_load} %{_mpich_load}
echo ============================= build $MPI_COMPILER ================== echo ============================= build $MPI_COMPILER ==================
./b2 -d+2 -q %{?_smp_mflags} --layout=tagged \ ./b2 -d+2 -q %{?_smp_mflags} --layout=tagged \
--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
variant=release threading=multi debug-symbols=on pch=off \ variant=release threading=multi debug-symbols=on pch=off \
python=%{python2_version} stage python=%{python2_version} stage
%{_mpich2_unload} %{_mpich_unload}
export PATH=/bin${PATH:+:}$PATH export PATH=/bin${PATH:+:}$PATH
%endif %endif
@ -588,8 +600,8 @@ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
export PATH=/bin${PATH:+:}$PATH export PATH=/bin${PATH:+:}$PATH
%endif %endif
%if %{with mpich2} %if %{with mpich}
%{_mpich2_load} %{_mpich_load}
echo ============================= install $MPI_COMPILER ================== echo ============================= install $MPI_COMPILER ==================
./b2 -q %{?_smp_mflags} --layout=tagged \ ./b2 -q %{?_smp_mflags} --layout=tagged \
--with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \
@ -600,7 +612,7 @@ echo ============================= install $MPI_COMPILER ==================
# Remove generic parts of boost that were built for dependencies. # Remove generic parts of boost that were built for dependencies.
rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}*
%{_mpich2_unload} %{_mpich_unload}
export PATH=/bin${PATH:+:}$PATH export PATH=/bin${PATH:+:}$PATH
%endif %endif
@ -618,6 +630,14 @@ echo ============================= install serial ==================
rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread-mt.so rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread-mt.so
install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/ install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_libdir}/
# Add symlinks libboost_{thread,locale}.so -> *-mt.so
# https://bugzilla.redhat.com/show_bug.cgi?id=971956
ln -s libboost_thread-mt.so $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so
ln -s libboost_locale-mt.so $RPM_BUILD_ROOT%{_libdir}/libboost_locale.so
# Check that we didn't forget about anything.
find $RPM_BUILD_ROOT%{_libdir} -maxdepth 1 -name libboost_\*-mt.so \
| while read a; do test -e ${a/-mt/} || exit 1; done
echo ============================= install Boost.Build ================== echo ============================= install Boost.Build ==================
(cd tools/build/v2 (cd tools/build/v2
./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install
@ -898,8 +918,8 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-, root, root, -) %defattr(-, root, root, -)
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/*.a %{_libdir}/*.a
%if %{with mpich2} %if %{with mpich}
%{_libdir}/mpich2/lib/*.a %{_libdir}/mpich/lib/*.a
%endif %endif
%if %{with openmpi} %if %{with openmpi}
%{_libdir}/openmpi/lib/*.a %{_libdir}/openmpi/lib/*.a
@ -931,29 +951,29 @@ rm -rf $RPM_BUILD_ROOT
%endif %endif
# MPICH2 packages # MPICH packages
%if %{with mpich2} %if %{with mpich}
%files mpich2 %files mpich
%defattr(-, root, root, -) %defattr(-, root, root, -)
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/mpich2/lib/libboost_mpi-mt.so.%{sonamever} %{_libdir}/mpich/lib/libboost_mpi-mt.so.%{sonamever}
%files mpich2-devel %files mpich-devel
%defattr(-, root, root, -) %defattr(-, root, root, -)
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/mpich2/lib/libboost_*.so %{_libdir}/mpich/lib/libboost_*.so
%files mpich2-python %files mpich-python
%defattr(-, root, root, -) %defattr(-, root, root, -)
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/mpich2/lib/libboost_mpi_python*.so.%{sonamever} %{_libdir}/mpich/lib/libboost_mpi_python*.so.%{sonamever}
%{_libdir}/mpich2/lib/mpi.so %{_libdir}/mpich/lib/mpi.so
%files graph-mpich2 %files graph-mpich
%defattr(-, root, root, -) %defattr(-, root, root, -)
%doc LICENSE_1_0.txt %doc LICENSE_1_0.txt
%{_libdir}/mpich2/lib/libboost_graph_parallel-mt.so.%{sonamever} %{_libdir}/mpich/lib/libboost_graph_parallel-mt.so.%{sonamever}
%endif %endif
@ -969,9 +989,16 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/bjam.1* %{_mandir}/man1/bjam.1*
%changelog %changelog
* Thu Aug 16 2012 Petr Machata <pmachata@redhat.com> - 1.50.0-5 * Thu Jul 25 2013 Deji Akingunola <dakingun@gmail.com> - 1.50.0-7
- Rename mpich2 sub-packages to mpich and rebuild for mpich-3.0
* Thu Jun 27 2013 Petr Machata <pmachata@redhat.com> - 1.50.0-6
- Add symlinks for /usr/lib/libboost_{thread,locale}.so -> *-mt.so
* Wed Feb 13 2013 Petr Machata <pmachata@redhat.com> - 1.50.0-5
- Update %%description to reflect current state of C++ - Update %%description to reflect current state of C++
standardization. Courtesy of Jonathan Wakely. (#837813) standardization. Courtesy of Jonathan Wakely. (#837813)
- Fix classifying incomplete UTF-8 sequences in Boost.Locale (#907481)
* Wed Aug 15 2012 Petr Machata <pmachata@redhat.com> - 1.50.0-4 * Wed Aug 15 2012 Petr Machata <pmachata@redhat.com> - 1.50.0-4
- Override boost_thread-mt.so with a linker script that brings in - Override boost_thread-mt.so with a linker script that brings in