Package: openscenegraph
Version: 1.1.0-1
Severity: serious
Tags: patch

The latest version of openscenegraph fails to build on mips and mipsel
because of an ill-fated variable name:

[...]
g++  -O2 -W -Wall -fPIC -pipe -I../../../../include 
-I/build/buildd/openscenegraph-1.1.0/OpenThreads/include 
-I/build/buildd/openscenegraph-1.1.0/Producer/include  -I../. -c ../AttrData.cpp
../AttrData.h:170: error: expected unqualified-id before numeric constant
../AttrData.cpp: In constructor 'flt::AttrData::AttrData()':
../AttrData.cpp:85: error: invalid types 'int[int]' for array subscript
../AttrData.cpp:85: error: invalid types 'int[int]' for array subscript
../AttrData.cpp:85: error: invalid types 'int[int]' for array subscript
../AttrData.cpp:85: error: invalid types 'int[int]' for array subscript
../AttrData.cpp:85: error: invalid types 'int[int]' for array subscript
../AttrData.cpp:85: error: invalid types 'int[int]' for array subscript
../AttrData.cpp:85: error: invalid types 'int[int]' for array subscript
../AttrData.cpp:85: error: invalid types 'int[int]' for array subscript
make[5]: *** [AttrData.o] Error 1
make[5]: Leaving directory 
/build/buildd/openscenegraph-1.1.0/OpenSceneGraph/src/osgPlugins/OpenFlight/Linux.Opt'
make[4]: *** [osgdb_OpenFlight.so.opt] Error 2
[...]

A full build log can be found at
<http://buildd.debian.org/fetch.php?pkg=openscenegraph&arch=mips&ver=1.1.0-1&stamp=1157038114&file=log>.

I laughed when I saw line 85, because it made the reason for the failure
pretty obvious:

    
_mips[0]=_mips[1]=_mips[2]=_mips[3]=_mips[4]=_mips[5]=_mips[6]=_mips[7]=0.0f;

yeah, not a good variable name. :)  The upstream changelog mentions that at
one point in the past _mips had been renamed to _mipMapKernel, but that
seems to apply only to another plugin?  Anyway, I've made the same variable
name change to the OpenFlight plugin as well; haven't tested it on mips, but
it builds fine on amd64 and I expect it to be clean namespace-wise.  The
patch is attached.

Please fix ASAP, as this holds up the grass/gdal transition, leaving
python-gdal broken in testing following the python 2.4 transition.

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/
diff -u openscenegraph-1.1.0/debian/changelog 
openscenegraph-1.1.0/debian/changelog
--- openscenegraph-1.1.0/debian/changelog
+++ openscenegraph-1.1.0/debian/changelog
@@ -1,3 +1,12 @@
+openscenegraph (1.1.0-1.1) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * High-urgency upload for RC bugfix.
+  * Don't name your variables "_mips" if you want cross-platform
+    support. ;)
+
+ -- Steve Langasek <[EMAIL PROTECTED]>  Fri,  8 Sep 2006 17:04:56 -0700
+
 openscenegraph (1.1.0-1) unstable; urgency=low
 
   * New upstream release
only in patch2:
unchanged:
--- 
openscenegraph-1.1.0.orig/OpenSceneGraph/src/osgPlugins/OpenFlight/AttrData.h
+++ openscenegraph-1.1.0/OpenSceneGraph/src/osgPlugins/OpenFlight/AttrData.h
@@ -167,7 +167,7 @@
                                         //    1 - TX_PACK_8
                                         //    2 - TX_PACK_16
         int32   useMips;                // TRUE if using following 8 floats 
for MIPMAP kernel
-        float32 _mips[8];                // 8 floats for kernel of separable 
symmetric filter
+        float32 _mipMapKernel[8];       // 8 floats for kernel of separable 
symmetric filter
         int32   useLodScale;            // Boolean if TRUE send:
         float32 lod0;                   // LOD0 for TX_CONTROL_POINT
         float32 scale0;                 // SCALE0 for TX_CONTROL_POINT
only in patch2:
unchanged:
--- 
openscenegraph-1.1.0.orig/OpenSceneGraph/src/osgPlugins/OpenFlight/AttrData.cpp
+++ openscenegraph-1.1.0/OpenSceneGraph/src/osgPlugins/OpenFlight/AttrData.cpp
@@ -82,7 +82,7 @@
     controlPoints(0)
     // TODO:
 {
-    
_mips[0]=_mips[1]=_mips[2]=_mips[3]=_mips[4]=_mips[5]=_mips[6]=_mips[7]=0.0f;
+    
_mipMapKernel[0]=_mipMapKernel[1]=_mipMapKernel[2]=_mipMapKernel[3]=_mipMapKernel[4]=_mipMapKernel[5]=_mipMapKernel[6]=_mipMapKernel[7]=0.0f;
 }
 
 AttrData::AttrData(const AttrData& attr, const osg::CopyOp& copyop) :
only in patch2:
unchanged:
--- 
openscenegraph-1.1.0.orig/OpenSceneGraph/src/osgPlugins/OpenFlight/ReaderWriterATTR.cpp
+++ 
openscenegraph-1.1.0/OpenSceneGraph/src/osgPlugins/OpenFlight/ReaderWriterATTR.cpp
@@ -97,7 +97,7 @@
         attr->extFormat = in.readInt32();
         attr->useMips = in.readInt32();
         for (int n=0; n<8; n++)
-            attr->_mips[n] = in.readFloat32();
+            attr->_mipMapKernel[n] = in.readFloat32();
         attr->useLodScale = in.readInt32();
         attr->lod0 = in.readFloat32();
         attr->scale0 = in.readFloat32();

Reply via email to