Add fixes for 756005 and 757385

This commit is contained in:
Petr Machata 2011-11-29 15:43:40 +01:00
parent 7e49cbd1ad
commit 76982ecb0f
3 changed files with 112 additions and 1 deletions

View File

@ -0,0 +1,60 @@
Index: /trunk/boost/foreach_fwd.hpp
===================================================================
--- /trunk/boost/foreach_fwd.hpp (revision 62661)
+++ /trunk/boost/foreach_fwd.hpp (revision 75540)
@@ -15,4 +15,6 @@
#define BOOST_FOREACH_FWD_HPP
+#include <utility> // for std::pair
+
// This must be at global scope, hence the uglified name
enum boost_foreach_argument_dependent_lookup_hack
@@ -26,4 +28,7 @@
namespace foreach
{
+ template<typename T>
+ std::pair<T, T> in_range(T begin, T end);
+
///////////////////////////////////////////////////////////////////////////////
// boost::foreach::tag
@@ -47,4 +52,22 @@
} // namespace foreach
+// Workaround for unfortunate https://svn.boost.org/trac/boost/ticket/6131
+namespace BOOST_FOREACH
+{
+ using foreach::in_range;
+ using foreach::tag;
+
+ template<typename T>
+ struct is_lightweight_proxy
+ : foreach::is_lightweight_proxy<T>
+ {};
+
+ template<typename T>
+ struct is_noncopyable
+ : foreach::is_noncopyable<T>
+ {};
+
+} // namespace BOOST_FOREACH
+
} // namespace boost
Index: /trunk/boost/foreach.hpp
===================================================================
--- /trunk/boost/foreach.hpp (revision 75077)
+++ /trunk/boost/foreach.hpp (revision 75540)
@@ -166,5 +166,5 @@
// at the global namespace for your type.
template<typename T>
-inline boost::foreach::is_lightweight_proxy<T> *
+inline boost::BOOST_FOREACH::is_lightweight_proxy<T> *
boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }
@@ -191,5 +191,5 @@
// at the global namespace for your type.
template<typename T>
-inline boost::foreach::is_noncopyable<T> *
+inline boost::BOOST_FOREACH::is_noncopyable<T> *
boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; }

View File

@ -0,0 +1,37 @@
diff -up boost_1_48_0/boost/lexical_cast.hpp\~ boost_1_48_0/boost/lexical_cast.hpp
--- boost_1_48_0/boost/lexical_cast.hpp~ 2011-11-08 19:12:23.000000000 +0100
+++ boost_1_48_0/boost/lexical_cast.hpp 2011-11-29 01:27:29.368064527 +0100
@@ -1599,6 +1599,18 @@ namespace boost
};
template<typename T>
+ struct is_char
+ {
+ BOOST_STATIC_CONSTANT(bool, value = false );
+ };
+
+ template<>
+ struct is_char<char>
+ {
+ BOOST_STATIC_CONSTANT(bool, value = true );
+ };
+
+ template<typename T>
struct is_char_or_wchar
{
private:
@@ -1732,11 +1744,7 @@ namespace boost
is_arithmetic<src >::value,
::boost::type_traits::ice_and<
is_pointer<src >::value,
- is_char_or_wchar<removed_ptr_t >::value,
- ::boost::type_traits::ice_eq<
- sizeof(char_type),
- sizeof(removed_ptr_t)
- >::value
+ is_char<removed_ptr_t >::value
>::value
>::value
);
Diff finished. Tue Nov 29 01:27:49 2011

View File

@ -28,7 +28,7 @@ Name: boost
Summary: The free peer-reviewed portable C++ source libraries
Version: 1.48.0
%define version_enc 1_48_0
Release: 1%{?dist}
Release: 2%{?dist}
License: Boost and MIT and Python
# The CMake build framework (set of CMakeLists.txt and module.cmake files) is
@ -102,6 +102,14 @@ Patch4: boost-1.48.0-fix-non-utf8-files.patch
# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html
Patch5: boost-1.48.0-add-bjam-man-page.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=757385
# https://svn.boost.org/trac/boost/ticket/6182
Patch6: boost-1.48.0-lexical_cast-incomplete.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=756005
# https://svn.boost.org/trac/boost/ticket/6131
Patch7: boost-1.48.0-foreach.patch
%bcond_with tests
%bcond_with docs_generated
@ -457,6 +465,8 @@ sed 's/_FEDORA_SONAME/%{sonamever}/' %{PATCH1} | %{__patch} -p0 --fuzz=0
%patch3 -p0
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p2
%build
# Support for building tests.
@ -950,6 +960,10 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/bjam.1*
%changelog
* Tue Nov 29 2011 Petr Machata <pmachata@redhat.com> - 1.48.0-2
- Add an upstream patch for BOOST_FOREACH declaration issue #756005
- Add a proposed patch for error in boost lexical_cast #757385
* Sat Nov 19 2011 Denis Arnaud <denis.arnaud_fedora@m4x.org> - 1.48.0-1
- Upgrade to Boost-1.48.0, adding two new header-only components
(Container and Move) and a new library (Locale).