Package: libboost-dev
Version: 1.34.1-15ubuntu3
Severity: important
Tags: patch

This is very similar to bug 505962 for boost1.36.  Some headers installed by 
boost do not compile with gcc 4.4.  The debian packaging includes the patch 
0001-boost.mpl-gcc-4.4-fixes.patch to fix the problem, but for the 'boost' 
source package, the patch is out of date.

It uses the initial patch from the upstream bug 
https://svn.boost.org/trac/boost/ticket/2069 but not the final committed 
version (https://svn.boost.org/trac/boost/changeset/49257) that includes more 
patched headers.

On top of the missing patched headers (boost/mpl/aux_/advance_forward.hpp, 
boost/mpl/aux_/advance_backward.hpp, and boost/mpl/unpack_args.hpp), the final 
patch used doesn't have all the unnecessary whitespace changes and adds nice 
comments about why the change was made.

I'm attaching a drop-in replacement for the current 
0001-boost.mpl-gcc-4.4-fixes.patch.  This new patch is from 
https://svn.boost.org/trac/boost/changeset/49257.

Strangely, the boost1.35 source package has a version of the patch that does 
fix the missing headers (though it still has the ugly whitespace changes, etc). 
 So boost1.35 appears safe for the moment.  And boost1.37 and up have the fix 
included in the upstream source.  Thus, this is only for the boost (1.34) 
source package.

-- System Information:
Debian Release: 5.0
  APT prefers karmic-updates
  APT policy: (500, 'karmic-updates'), (500, 'karmic-security'), (500, 
'karmic-backports'), (500, 'karmic')
Architecture: i386 (i686)

Kernel: Linux 2.6.28-11-generic (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libboost-dev depends on:
ii  libboost-serialization- 1.34.1-15ubuntu3 serialization library for C++
ii  libstdc++6-4.2-dev [lib 4.2.4-5ubuntu1   The GNU Standard C++ Library v3 (d
ii  libstdc++6-4.3-dev [lib 4.3.3-5ubuntu4   The GNU Standard C++ Library v3 (d

Versions of packages libboost-dev recommends:
ii  libboost-date-time-dev  1.34.1-15ubuntu3 set of date-time libraries based o
pn  libboost-doc            <none>           (no description available)
ii  libboost-filesystem-dev 1.34.1-15ubuntu3 filesystem operations (portable pa
pn  libboost-graph-dev      <none>           (no description available)
pn  libboost-iostreams-dev  <none>           (no description available)
pn  libboost-program-option <none>           (no description available)
ii  libboost-python-dev     1.34.1-15ubuntu3 Boost.Python Library development f
pn  libboost-regex-dev      <none>           (no description available)
pn  libboost-signals-dev    <none>           (no description available)
pn  libboost-test-dev       <none>           (no description available)
ii  libboost-thread-dev     1.34.1-15ubuntu3 portable C++ multi-threading
pn  libboost-wave-dev       <none>           (no description available)

libboost-dev suggests no packages.

-- no debconf information
Fix for #505597 (upstream https://svn.boost.org/trac/boost/ticket/2069)
Upstream patch https://svn.boost.org/trac/boost/changeset/49257?format=diff


Index: boost-1.34.1-16ubuntu1/boost/mpl/apply.hpp
===================================================================
--- boost-1.34.1-16ubuntu1.orig/boost/mpl/apply.hpp     2009-05-11 
14:26:14.000000000 -0400
+++ boost-1.34.1-16ubuntu1/boost/mpl/apply.hpp  2009-05-11 14:26:49.000000000 
-0400
@@ -135,7 +135,10 @@
 
 ///// iteration, depth == 1
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 
 #   define i_ BOOST_PP_FRAME_ITERATION(1)
 
@@ -222,4 +225,5 @@
 
 #   undef i_
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif // BOOST_PP_IS_ITERATING
Index: boost-1.34.1-16ubuntu1/boost/mpl/apply_wrap.hpp
===================================================================
--- boost-1.34.1-16ubuntu1.orig/boost/mpl/apply_wrap.hpp        2009-05-11 
14:26:14.000000000 -0400
+++ boost-1.34.1-16ubuntu1/boost/mpl/apply_wrap.hpp     2009-05-11 
14:26:49.000000000 -0400
@@ -78,7 +78,10 @@
 
 ///// iteration, depth == 1
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 
 #   define i_ BOOST_PP_FRAME_ITERATION(1)
 
@@ -197,4 +200,5 @@
 
 #   undef j_
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif // BOOST_PP_IS_ITERATING
Index: boost-1.34.1-16ubuntu1/boost/mpl/aux_/advance_backward.hpp
===================================================================
--- boost-1.34.1-16ubuntu1.orig/boost/mpl/aux_/advance_backward.hpp     
2009-05-11 14:26:14.000000000 -0400
+++ boost-1.34.1-16ubuntu1/boost/mpl/aux_/advance_backward.hpp  2009-05-11 
14:26:49.000000000 -0400
@@ -79,7 +79,10 @@
 
 ///// iteration, depth == 1
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 #define i_ BOOST_PP_FRAME_ITERATION(1)
 
 template<>
@@ -121,4 +124,5 @@
 #   undef AUX778076_ITER_1
 #   undef AUX778076_ITER_0
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif // BOOST_PP_IS_ITERATING
Index: boost-1.34.1-16ubuntu1/boost/mpl/aux_/advance_forward.hpp
===================================================================
--- boost-1.34.1-16ubuntu1.orig/boost/mpl/aux_/advance_forward.hpp      
2009-05-11 14:26:14.000000000 -0400
+++ boost-1.34.1-16ubuntu1/boost/mpl/aux_/advance_forward.hpp   2009-05-11 
14:26:49.000000000 -0400
@@ -79,7 +79,10 @@
 
 ///// iteration, depth == 1
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 #define i_ BOOST_PP_FRAME_ITERATION(1)
 
 template<>
@@ -120,4 +123,5 @@
 #   undef AUX778076_ITER_1
 #   undef AUX778076_ITER_0
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif // BOOST_PP_IS_ITERATING
Index: boost-1.34.1-16ubuntu1/boost/mpl/aux_/full_lambda.hpp
===================================================================
--- boost-1.34.1-16ubuntu1.orig/boost/mpl/aux_/full_lambda.hpp  2009-05-11 
14:25:22.000000000 -0400
+++ boost-1.34.1-16ubuntu1/boost/mpl/aux_/full_lambda.hpp       2009-05-11 
14:26:49.000000000 -0400
@@ -227,7 +227,10 @@
 
 ///// iteration, depth == 1
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 #define i_ BOOST_PP_FRAME_ITERATION(1)
 
 #if i_ > 0
@@ -347,4 +350,5 @@
 };
 
 #undef i_
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif // BOOST_PP_IS_ITERATING
Index: boost-1.34.1-16ubuntu1/boost/mpl/aux_/numeric_op.hpp
===================================================================
--- boost-1.34.1-16ubuntu1.orig/boost/mpl/aux_/numeric_op.hpp   2009-05-11 
14:26:14.000000000 -0400
+++ boost-1.34.1-16ubuntu1/boost/mpl/aux_/numeric_op.hpp        2009-05-11 
14:26:49.000000000 -0400
@@ -287,7 +287,10 @@
 
 ///// iteration, depth == 1
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 
 #   define i_ BOOST_PP_FRAME_ITERATION(1)
 
@@ -308,4 +311,5 @@
 
 #   undef i_
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif // BOOST_PP_IS_ITERATING
Index: boost-1.34.1-16ubuntu1/boost/mpl/bind.hpp
===================================================================
--- boost-1.34.1-16ubuntu1.orig/boost/mpl/bind.hpp      2009-05-11 
14:26:14.000000000 -0400
+++ boost-1.34.1-16ubuntu1/boost/mpl/bind.hpp   2009-05-11 14:26:49.000000000 
-0400
@@ -361,7 +361,10 @@
 
 ///// iteration, depth == 1
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 
 #   define i_ BOOST_PP_FRAME_ITERATION(1)
 
@@ -544,4 +547,5 @@
 #   endif
 #   undef j_
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif // BOOST_PP_IS_ITERATING
Index: boost-1.34.1-16ubuntu1/boost/mpl/unpack_args.hpp
===================================================================
--- boost-1.34.1-16ubuntu1.orig/boost/mpl/unpack_args.hpp       2009-05-11 
14:26:14.000000000 -0400
+++ boost-1.34.1-16ubuntu1/boost/mpl/unpack_args.hpp    2009-05-11 
14:26:49.000000000 -0400
@@ -111,7 +111,10 @@
 
 ///// iteration, depth == 1
 
-#elif BOOST_PP_ITERATION_DEPTH() == 1
+// For gcc 4.4 compatability, we must include the
+// BOOST_PP_ITERATION_DEPTH test inside an #else clause.
+#else // BOOST_PP_IS_ITERATING
+#if BOOST_PP_ITERATION_DEPTH() == 1
 
 #   define i_ BOOST_PP_FRAME_ITERATION(1)
 
@@ -143,4 +146,5 @@
 
 #   undef i_
 
+#endif // BOOST_PP_ITERATION_DEPTH()
 #endif // BOOST_PP_IS_ITERATING

Reply via email to