conda-forge / vtk-feedstock

A conda-smithy repository for vtk.
BSD 3-Clause "New" or "Revised" License
13 stars 64 forks source link

OpenGL display modules not available on linux 64bit #7

Closed gdevenyi closed 7 years ago

gdevenyi commented 8 years ago

Trying to build a package against vtk-7.0.0 from conda-forge:

 CMake Error at /opt/quarantine/anaconda/4.1.1/build/lib/cmake/vtk-7.0/vtkModuleAPI.cmake:120 (message):
   Requested modules not available:

     vtkRenderingOpenGL2
     vtkRenderingVolumeOpenGL2
 Call Stack (most recent call first):
   /opt/quarantine/anaconda/4.1.1/build/lib/cmake/vtk-7.0/VTKConfig.cmake:88 (vtk_module_config)
   CMakeLists.txt:8 (find_package)
grlee77 commented 8 years ago

I believe the following CMAKE flag is the culprit: -DVTK_RENDERING_BACKEND=OpenGL

VTK 7.0 changed to a new OpenGL2 backend by default, but it looks like the conda-forge build here has specified the older OPENGL backend. I am not sure if that was an oversight or intentional. @Korijn?

Korijn commented 8 years ago

That was intentional, as suggested by one of the VTK devs. The idea was that more people would be able to run on the old backend than on the new one.

grlee77 commented 8 years ago

I also ran into a possibly related problem while trying to package mayavi: conda-forge/staged-recipes#1581

Is there perhaps there a way to provide packages for both options (e.g. via a separate vtk-opengl2 package?)

gdevenyi commented 8 years ago

There's a way via build features in conda to have an alternate version http://conda.pydata.org/docs/building/meta-yaml.html#id1

Korijn commented 8 years ago

Feel free to open a PR, or explain your proposed solution in more detail so someone else can pick it up.

I recently chimed in at https://github.com/conda/conda/issues/3299 to mention our use case.

dfroger commented 7 years ago

Maybe the libglu conda package can be used here?

edit: As discussed in pyopengl recipe, quoting @almarklein : "I don't think that makes a lot of sense for opengl drivers. E.g. In this case its Mesa, but someone with an nvidea card may have other drivers."