Bug#694879: Blender still missing Collada support, one year after opencollada was packaged

2016-08-04 Thread ian_bruce
On Tue, 2 Aug 2016 14:49:26 +0200
"Matteo F. Vescovi"  wrote:

>> Is there any remaining reason why the Blender package should not be
>> linked against it? Blender is supposed to have built-in support for
>> Collada.

> Simple, it fails:

I didn't know that; it hasn't previously been mentioned in this bug
report.

> In file included from
> 
> /usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceGeometry.h:15:0,
>  from
> /usr/include/opencollada/COLLADAFramework/COLLADAFWNode.h:17,
>  from
> 
> /<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.h:30,
>  from
> 
> /<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp:43:
> 
> /usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceBindingBase.h:53:14:
> error: 'vector' in namespace 'std' does not name a template type
>  std::vector  &skeletons() { return mSkeletons; }
>   ^
> 
> /usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceBindingBase.h:65:14:
> error: 'vector' in namespace 'std' does not name a template type
>  std::vector  mSkeletons;
>   ^

That's very odd.

How is it that the official binaries from the Blender website are built
with Collada support? What's different about their build environment?
Has anybody asked them?

> Feel free to help debugging. Patches are really welcome.

One potential problem is that many of the OpenCOLLADA header files are
filled with a weird mixture of UTF-8 and Windows-1252 characters,
neither of which are actually legal in C/C++ source code, except maybe
as quoted strings. In particular, in a UTF-8 environment, the
Windows-1252 characters can be interpreted as the beginning of a
multibyte sequence, which screws up the following text. It's unlikely
that that's the entire cause of the problem, but let's try getting rid
of them:


# export LANG=C   # THIS IS IMPORTANT!!!
# 
# dpkg -s opencollada-dev | egrep "Package|Status|Version"
Package: opencollada-dev
Status: install ok installed
Version: 0.1.0~20140703.ddf8f47+dfsg1-3
# 
# pwd
/usr/include/opencollada
# 
# BADCHARS=$(echo {8,9,a,b,c,d,e,f}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f})
# PATTERN=$(for n in $BADCHARS ; do echo -ne "\x${n}" ; [ $n = ff ] || echo -n 
"|" ; done)
# BADFILES=$(egrep -l "$PATTERN" $(find . -name '*.h'))
# 
# for n in $BADCHARS ; do c=$(echo -ne "\x${n}") ; grep -q "${c}" $BADFILES && 
echo "character: \\x${n}" ; done
character: \x92
character: \x93
character: \x94
character: \x95
character: \x97
character: \xbd
character: \xbf
character: \xe9
character: \xef
# 
# grep -a -C3 --color=always $'\x95' $BADFILES | less -R
# 
# echo $'s/(\xef\xbf\xbd|\*|")?Curve Interpolation("|\*|\xef\xbf\xbd)?/*Curve 
Interpolation*/g' >~/sedscript
# echo $'s/plus (\xef\xbf)?\xbd/plus 
half/g\ns/\xef\xbf\xbds/\'s/g\ns/\xef\xbf\xbd /- /g' >>~/sedscript
# echo 
$'s/\x92/\'/g\ns/\x93/"/g\ns/\x94/"/g\ns/\x95/-/g\ns/\x97/-/g\ns/\xe9/e/g' 
>>~/sedscript
# 
# BADFILES=$(egrep -l "${PATTERN}|Curve Interpolation" $(find . -name '*.h'))
# 
# sed -r -i.badchar -f ~/sedscript $BADFILES
# 
# for n in $BADCHARS ; do c=$(echo -ne "\x${n}") ; grep -q "${c}" $BADFILES && 
echo "character: \\x${n}" ; done
# 
# cd ..
#
# find opencollada/ -name '*.badchar' | wc
 32  322061
# 
# (for f in $(find opencollada/ -name '*.badchar') ; do diff -u ${f} 
${f%.badchar} ; done) >~/opencollada-headers-badchars.diff
# 


See attached patchfile. That should also be sent upstream, wherever that
is.

Let me know if that helps. Otherwise, there must be some way of finding
out what that template instantiation error is.


-- Ian Bruce
--- opencollada/COLLADAStreamWriter/COLLADASWInputList.h.badchar	2014-07-03 09:30:54.0 -0700
+++ opencollada/COLLADAStreamWriter/COLLADASWInputList.h	2016-08-03 23:34:59.984290928 -0700
@@ -35,20 +35,20 @@
 			BINORMAL=0, /** Geometric binormal (bitangent) vector */
 			BINDMATRIX, 
 			COLOR, /** Color coordinate vector. Color inputs are RGB (float3) */
-			CONTINUITY, /** Continuity constraint at the control vertex (CV). See also "Curve Interpolation" in Chapter 4: Programming Guide. */
+			CONTINUITY, /** Continuity constraint at the control vertex (CV). See also *Curve Interpolation* in Chapter 4: Programming Guide. */
 			IMAGE, /** Raster or MIP-level input. */
-			INPUT, /** Sampler input. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
-			IN_TANGENT, /** Tangent vector for preceding control point. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
-			INTERPOLATION, /** Sampler interpolation type. See also "Curve Interpolation" in Chapter 4: Programming Guide. */
+			INPUT, /** Sampler input. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+			IN_TANGENT, /** Tangent vector for preceding control point. See also *Curve Interpolation* in Chapter 4: Programming Guide. */
+			INTERPOLATION, /** Sampler inte

Bug#694879: Blender still missing Collada support, one year after opencollada was packaged

2016-08-02 Thread Matteo F. Vescovi
Hi!

On Sat, Jul 30, 2016 at 8:50 AM,   wrote:
> It has now been over a year since the opencollada-dev package became
> available in the Debian archive.
>
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694932
>
> https://packages.debian.org/stretch/opencollada-dev
>
> Is there any remaining reason why the Blender package should not be
> linked against it? Blender is supposed to have built-in support for
> Collada.
>
> https://wiki.blender.org/index.php/Doc%3A2.6/Manual/Data_System/Files/Import/COLLADA
>
> Is it not expected that anybody will actually want to use this software?
> If so, why was the effort made to package either OpenCOLLADA or Blender?

Simple, it fails:

[ 80%] Building CXX object
source/blender/collada/CMakeFiles/bf_collada.dir/ArmatureImporter.cpp.o
cd 
/<>/blender-2.77.a+dfsg0/obj-x86_64-linux-gnu/source/blender/collada
&& /usr/bin/c++   -DWITH_BUILDINFO -DWITH_INTERNATIONAL
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE
-D__LITTLE_ENDIAN__ -D__MMX__ -D__SSE2__ -D__SSE__
-I/<>/blender-2.77.a+dfsg0/source/blender/collada
-I/<>/blender-2.77.a+dfsg0/source/blender/blenkernel
-I/<>/blender-2.77.a+dfsg0/source/blender/blenlib
-I/<>/blender-2.77.a+dfsg0/source/blender/blentranslation
-I/<>/blender-2.77.a+dfsg0/source/blender/editors/include
-I/<>/blender-2.77.a+dfsg0/source/blender/makesdna
-I/<>/blender-2.77.a+dfsg0/source/blender/makesrna
-I/<>/blender-2.77.a+dfsg0/source/blender/windowmanager
-I/<>/blender-2.77.a+dfsg0/source/blender/imbuf
-I/<>/blender-2.77.a+dfsg0/intern/guardedalloc
-I/<>/blender-2.77.a+dfsg0/source/blender/ikplugin
-I/<>/blender-2.77.a+dfsg0/intern/iksolver/extern
-I/<>/blender-2.77.a+dfsg0/source/blender/bmesh -isystem
/usr/include/opencollada/COLLADAStreamWriter -isystem
/usr/include/opencollada/COLLADABaseUtils -isystem
/usr/include/opencollada/COLLADAFramework -isystem
/usr/include/opencollada/COLLADASaxFrameworkLoader -isystem
/usr/include/opencollada/GeneratedSaxParser  -Wall
-Wno-invalid-offsetof -Wno-sign-compare -Wlogical-op -Winit-self
-Wmissing-include-dirs -Wno-div-by-zero -Wtype-limits
-Wno-char-subscripts -Wno-unknown-pragmas -Wpointer-arith
-Wformat-signedness -Wuninitialized  -Wmissing-declarations -g -O2
-fdebug-prefix-map=/<>/blender-2.77.a+dfsg0=.
-fstack-protector-strong -Wformat  -Wdate-time -D_FORTIFY_SOURCE=2
-fuse-ld=gold -fopenmp  -msse2  -msse -pipe -fPIC -funsigned-char
-fno-strict-aliasing  -Wno-deprecated-declarations
-Wno-unused-parameter -Wno-error=unused-but-set-variable -fpermissive
 -o CMakeFiles/bf_collada.dir/ArmatureImporter.cpp.o -c
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp
In file included from
/usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceGeometry.h:15:0,
 from
/usr/include/opencollada/COLLADAFramework/COLLADAFWNode.h:17,
 from
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.h:30,
 from
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp:43:
/usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceBindingBase.h:53:14:
error: 'vector' in namespace 'std' does not name a template type
 std::vector  &skeletons() { return mSkeletons; }
  ^
/usr/include/opencollada/COLLADAFramework/COLLADAFWInstanceBindingBase.h:65:14:
error: 'vector' in namespace 'std' does not name a template type
 std::vector  mSkeletons;
  ^
In file included from
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp:43:0:
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.h:
In constructor 'ArmatureImporter::ArmatureImporter(UnitConverter*,
MeshImporterBase*, Scene*, const ImportSettings*)':
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.h:86:24:
warning: 'ArmatureImporter::import_settings' will be initialized after
[-Wreorder]
  const ImportSettings *import_settings;
^
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.h:85:17:
warning:   'UnitConverter* ArmatureImporter::unit_converter'
[-Wreorder]
  UnitConverter *unit_converter;
 ^
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp:67:1:
warning:   when initialized here [-Wreorder]
 ArmatureImporter::ArmatureImporter(UnitConverter *conv,
MeshImporterBase *mesh, Scene *sce, const ImportSettings
*import_settings) :
 ^
In file included from
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp:43:0:
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.h:85:17:
warning: 'ArmatureImporter::unit_converter' will be initialized after
[-Wreorder]
  UnitConverter *unit_converter;
 ^
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp:73:20:
warning:   base 'TransformReader' [-Wreorder]
  mesh_importer(mesh) {
^
/<>/blender-2.77.a+dfsg0/source/blender/collada/ArmatureImporter.cpp:67:1:
warning:   when initialized here [-Wreorder]
 ArmatureImpor

Bug#694879: Blender still missing Collada support, one year after opencollada was packaged

2016-07-30 Thread ian_bruce
It has now been over a year since the opencollada-dev package became
available in the Debian archive.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694932

https://packages.debian.org/stretch/opencollada-dev

Is there any remaining reason why the Blender package should not be
linked against it? Blender is supposed to have built-in support for
Collada.

https://wiki.blender.org/index.php/Doc%3A2.6/Manual/Data_System/Files/Import/COLLADA

Is it not expected that anybody will actually want to use this software?
If so, why was the effort made to package either OpenCOLLADA or Blender?