Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 733500 - media-gfx/blender-2.79b-r2[collada] with media-libs/opencollada-1.6.68: source/blender/collada/collada.cpp:64:19: error: cannot declare variable ‘imp’ to be of abstract type ‘DocumentImporter’
Summary: media-gfx/blender-2.79b-r2[collada] with media-libs/opencollada-1.6.68: sourc...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Adrian
URL:
Whiteboard:
Keywords:
Depends on: 689740
Blocks:
  Show dependency tree
 
Reported: 2020-07-22 12:23 UTC by Kobboi
Modified: 2020-08-24 13:42 UTC (History)
5 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kobboi 2020-07-22 12:23:28 UTC
[ 75%] Building CXX object extern/ceres/CMakeFiles/extern_ceres.dir/internal/ceres/schur_jacobi_preconditioner.cc.o
cd /var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b_build/extern/ceres && /usr/bin/x86_64-pc-linux-gnu-g++ -DCERES_HAVE_PTHREAD -DCERES_HAVE_RWLOCK -DCERES_NO_CXSPARSE -DCERES_NO_LAPACK -DCERES_NO_SUITESPARSE -DCERES_RESTRICT_SCHUR_SPECIALIZATION -DCERES_STD_UNORDERED_MAP -DCERES_USE_OPENMP -DGFLAGS_DLL_DECL="" -DGFLAGS_DLL_DECLARE_FLAG="" -DGFLAGS_DLL_DEFINE_FLAG="" -DGOOGLE_GLOG_DLL_DECL="" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -D__LITTLE_ENDIAN__ -D__MMX__ -D__SSE2__ -D__SSE__ -I/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/extern/ceres -I/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/extern/ceres/include -I/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/extern/ceres/internal -I/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/extern/ceres/config -I/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/extern/gflags/src -I/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/extern/glog/src -isystem /usr/include/eigen3   -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DOPENVDB_ABI_VERSION_NUMBER=4 -DNDEBUG -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   -Wimplicit-fallthrough=5 -O2 -march=x86-64 -pipe -fomit-frame-pointer -g -ggdb -funsigned-char -fuse-ld=gold -fopenmp -std=c++11   -msse -pipe -fPIC -funsigned-char -fno-strict-aliasing -msse2  -Wno-deprecated-declarations -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-error=unused-but-set-variable   -o CMakeFiles/extern_ceres.dir/internal/ceres/schur_jacobi_preconditioner.cc.o -c /var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/extern/ceres/internal/ceres/schur_jacobi_preconditioner.cc
/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/source/blender/collada/collada.cpp: In function ‘int collada_import(bContext*, const char*, int, int, int, int, int, int)’:
/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/source/blender/collada/collada.cpp:64:19: error: cannot declare variable ‘imp’ to be of abstract type ‘DocumentImporter’
   64 |  DocumentImporter imp(C, &import_settings);
      |                   ^~~
In file included from /var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/source/blender/collada/collada.cpp:32:
/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/source/blender/collada/DocumentImporter.h:57:7: note:   because the following virtual functions are pure within ‘DocumentImporter’:
   57 | class DocumentImporter : COLLADAFW::IWriter
      |       ^~~~~~~~~~~~~~~~
In file included from /var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/source/blender/collada/DocumentImporter.h:30,
                 from /var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b/source/blender/collada/collada.cpp:32:
/usr/include/opencollada/COLLADAFramework/COLLADAFWIWriter.h:115:16: note:     ‘virtual bool COLLADAFW::IWriter::writeAnimationClip(const COLLADAFW::AnimationClip*)’
  115 |   virtual bool writeAnimationClip( const AnimationClip* animationClip ) = 0;
      |                ^~~~~~~~~~~~~~~~~~
make[2]: *** [source/blender/collada/CMakeFiles/bf_collada.dir/build.make:395: source/blender/collada/CMakeFiles/bf_collada.dir/collada.cpp.o] Error 1
make[2]: Leaving directory '/var/tmp/portage/media-gfx/blender-2.79b-r2/work/blender-2.79b_build'
make[1]: *** [CMakeFiles/Makefile2:6064: source/blender/collada/CMakeFiles/bf_collada.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....


Reproducible: Always
Comment 1 Kobboi 2020-07-22 12:24:23 UTC
Downgrading to media-libs/opencollada-1.6.63-r1 is currently an acceptable workaround for me.
Comment 2 Dennis Schridde 2020-07-23 13:44:14 UTC
The issue was fixed for 2.80-rc1:

* https://developer.blender.org/rB10c50d7dbf7578b35b3bf19a1948f556f9eb203b
* https://developer.blender.org/rB3552731551ef1845b493ffebf78be5a42527e9f2

Thus I propose adding following relations to this bug:

Depends-on: bug #733642
Comment 3 Dennis Schridde 2020-07-23 21:35:13 UTC
(In reply to Dennis Schridde from comment #2)
> The issue was fixed for 2.80-rc1:
> 
> * https://developer.blender.org/rB10c50d7dbf7578b35b3bf19a1948f556f9eb203b
> * https://developer.blender.org/rB3552731551ef1845b493ffebf78be5a42527e9f2

I created patches from that, which fix the build for me: https://github.com/devurandom/gentoo-patches/commit/3da06962b25017e5fb0c5fb9ba8f60444c688cca

Manual testing of the COLLADA support needs to be done before shipping this to users, to exclude the possibility of this code depending on other changes that I did not include.
Comment 4 Andrew 2020-07-27 14:24:13 UTC
I confirm that this patch solves the problem
Comment 5 Attila Tóth 2020-07-28 16:16:19 UTC
(In reply to Dennis Schridde from comment #3)
> (In reply to Dennis Schridde from comment #2)
> > The issue was fixed for 2.80-rc1:
> > 
> > * https://developer.blender.org/rB10c50d7dbf7578b35b3bf19a1948f556f9eb203b
> > * https://developer.blender.org/rB3552731551ef1845b493ffebf78be5a42527e9f2
> 
> I created patches from that, which fix the build for me:
> https://github.com/devurandom/gentoo-patches/commit/
> 3da06962b25017e5fb0c5fb9ba8f60444c688cca
> 
> Manual testing of the COLLADA support needs to be done before shipping this
> to users, to exclude the possibility of this code depending on other changes
> that I did not include.

Works for me, thanks!
Comment 6 Larry the Git Cow gentoo-dev 2020-08-24 13:42:31 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ac89d92c599585bf639ab0512237bc005ba8c2ba

commit ac89d92c599585bf639ab0512237bc005ba8c2ba
Author:     Adrian Grigo <agrigo2001@yahoo.com.au>
AuthorDate: 2020-08-22 01:00:36 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2020-08-24 13:41:55 +0000

    media-gfx/blender: Patch for opencollada > 1.65
    
    Opencollada 1.65 added a pure virtual function to writeAnimationClip
    which prevents blender from creating an implementation of
    DocumentImporter in the usual manner.
    
    These patches are backported from blender 2.80-rc1 which add
    definitions for writeAnimationClip to DoucmentImporter resolving the
    issue.
    
    Thanks to Dennis Schridde for finding them.
    
    Signed-off-by: Adrian Grigo <agrigo2001@yahoo.com.au>
    Closes: https://bugs.gentoo.org/733500
    Package-Manager: Portage-2.3.103, Repoman-2.3.23
    Signed-off-by: Sam James <sam@gentoo.org>

 media-gfx/blender/blender-2.79b-r2.ebuild          |   1 +
 .../files/blender-2.79b-fix-opencollada.patch      | 112 +++++++++++++++++++++
 2 files changed, 113 insertions(+)