pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/45802: meta-pkgs/boost, update to 1.48 breaks games/wesnoth and possible others



>Number:         45802
>Category:       pkg
>Synopsis:       meta-pkgs/boost, update to 1.48 breaks games/wesnoth and 
>possible others
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jan 09 04:55:00 +0000 2012
>Originator:     B.ICT A.P. deBROUWER Jr.
>Release:        5.99.59
>Organization:
-none-
>Environment:
NetBSD 10.0.2.17 5.99.59 NetBSD 5.99.59 (MONOLITHIC) #0: Tue Dec 27 01:19:12 
UTC 2011  
builds%b8.netbsd.org@localhost:/home/builds/ab/HEAD/i386/201112261820Z-obj/home/builds/ab/HEAD/src/sys/arch/i386/compile/MONOLITHIC
 i386
>Description:
the latest boost update from 1.47.0 to 1.48.0 breaks games/wesnoth.
upstream boost is aware but no release yet.
https://svn.boost.org/trac/boost/ticket/6131
https://svn.boost.org/trac/boost/changeset/75540

games/wesnoth build will break like:

if [ "" = "" ] || [ "" = "exported" ]; then echo '' >/tmp/westemp$$;  else echo 
'#define REVISION    ""' >/tmp/westemp$$; fi; if cmp -s revision.hpp 
/tmp/westemp$$ 2>/dev/null; then :; else cp /tmp/westemp$$ revision.hpp; fi;  
if [ -e /tmp/westemp$$ ]; then rm /tmp/westemp$$; fi
c++ -DHAVE_CONFIG_H -I. -I..    -I/usr/include -I/usr/pkg/include/SDL 
-I/usr/pkg/include -I/usr/pkg/include/freetype2 -I/usr/include 
-I/usr/pkg/include   -pthread -D_REENTRANT -I/usr/pkg/include/pango-1.0 
-I/usr/pkg/include/cairo -I/usr/pkg/include/glib/glib-2.0 
-I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/pixman-1 -I/usr/pkg/include 
-I/usr/pkg/include/freetype2 -I/usr/pkg/include/libpng15   -I/usr/pkg/include 
-DHAVE_REVISION -I../intl -I../intl -I/usr/pkg/include/SDL -D_GNU_SOURCE=1 
-D_REENTRANT -D_THREAD_SAFE  -DWESNOTH_PATH=\"/usr/pkg/share/wesnoth\"  
-DLOCALEDIR=\"translations\" -DHAS_RELATIVE_LOCALEDIR=1 
-DFIFODIR=\"/usr/pkg/var/run/wesnothd\"  -DWESNOTH_PREFIX=\"/usr/pkg\" 
-Wno-unused-parameter -Wno-strict-aliasing -O2 -W -Wall -ansi -O2 -pthread 
-I/usr/include -I/usr/pkg/include/SDL -I/usr/pkg/include 
-I/usr/pkg/include/freetype2 -DDISABLE_POOL_ALLOC -DOLD_FRIBIDI 
-I/usr/pkg/include/fribidi   -D_X11     -I/usr/pkg/include -c -o language.o 
language.cpp
In file included from language.cpp:18:0:
foreach.hpp:6:17: error: 'boost::BOOST_FOREACH' has not been declared
*** Error code 1

>How-To-Repeat:
cd pkgsrc/games/wesnoth && make
>Fix:
conform https://svn.boost.org/trac/boost/changeset/75540:

$NetBSD$

https://svn.boost.org/trac/boost/ticket/6131

--- boost/foreach.hpp.orig      2012-01-09 03:15:22.000000000 +0000
+++ boost/foreach.hpp   2012-01-09 03:16:51.000000000 +0000
@@ -165,7 +165,7 @@
 //   this one works on legacy compilers. Overload 
boost_foreach_is_lightweight_proxy
 //   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; }
 
 template<typename T>
@@ -190,7 +190,7 @@
 //   this one works on legacy compilers. Overload boost_foreach_is_noncopyable
 //   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; }
 
 namespace boost

$NetBSD$

--- boost/foreach_fwd.hpp.orig  2012-01-09 03:15:43.000000000 +0000
+++ boost/foreach_fwd.hpp       2012-01-09 03:25:32.000000000 +0000
@@ -14,6 +14,8 @@
 #ifndef BOOST_FOREACH_FWD_HPP
 #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
 {
@@ -25,6 +27,9 @@
 
 namespace foreach
 {
+    template<typename T>
+    std::pair<T, T> in_range(T begin, T end);
+
     
///////////////////////////////////////////////////////////////////////////////
     // boost::foreach::tag
     //
@@ -46,6 +51,24 @@
 
 } // namespace foreach
 
-} // namespace boost
+// 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
+ 
 #endif



Home | Main Index | Thread Index | Old Index