Closed Korijn closed 8 years ago
Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe
) and found it was in an excellent condition.
Looks like the build fails on missing system libraries now, which is actually quite nice: we can fill them in one by one until the build passes to determine the minimum set.
NETCDF requires some files that aren't in our package, not sure who's fault that is. Leaving it out of the recipe for now. See here: https://github.com/Kitware/VTK/blob/v7.0.0/CMake/FindNetCDF.cmake#L105
Sorry for my confusion here, but when you say "system libraries" - you seem to mean libraries provided by Conda? I only mention this because it seems like adding dependencies to particular versions of low-level libraries tied to the OS is more fragile than depending on Conda's libraries, which we have more control over. It seems from your conda recipe that you are using Conda's versions, not arbitrary system versions, but I just wanted to make sure.
It also looks like GLUT is only used in a test once, so I'm not too sure if that's really a requirement here... https://github.com/Kitware/VTK/search?utf8=%E2%9C%93&q=glut
@msarahan Yeah I meant using conda packages. VTK refers to third party libs as system libraries, so I was using their terminology here. Sorry for the confusion.
NETCDF requires some files that aren't in our package, not sure who's fault that is. Leaving it out of the recipe for now. See here: https://github.com/Kitware/VTK/blob/v7.0.0/CMake/FindNetCDF.cmake#L105
It seems that VTK is looking for netcdfcpp.h netcdf_c++
, netcdf.inc
, and netcdf.mod
. I believe you will get those from the netcdf-cxx4
and netcdf-fortran
packages (both in conda-forge
)
@ocefpaf Right, they're Linux only packages, which explains why I couldn't install them on my Windows system. :) I'll add them under a conditional. Thanks!
I couldn't install them on my Windows system.
Right. We are already using cmake
to build both libraries there, so Windows should be possible. I will take a look at that soon.
I just remembered that we have mesa-libGLU-devel
in the yum_requirements.txt
here... does that mean we can try building against mesa for offscreen rendering?
@ocefpaf Unfortunately the file and directory names don't match, and there are no options to tell CMake where to look.
@ocefpaf Unfortunately the file and directory names don't match, and there are no options to tell CMake where to look.
That is a bummer :unamused:
Maybe you'll have to patch the cmake files to make it work. However, I would not do that now and leave netcdf out for a bit to reduce the scope of your PR. You can always try that later.
Offscreen rendering is pretty important when you want to do rendering on headless servers (or CI, for testing!), and VTK requires that you link to mesa for this. However, if I understand correctly, this means you can no longer do _on_screen rendering, unless you produce a "mangled Mesa" library and link to that. I don't think that is available here though, is it...? I'll see what I can do on the mesa recipe, unless anyone else has a brilliant suggestion. :)
Snags hit so far:
jsoncpp
is not available on Windowshdf5
package cannot be detected by VTK's CMake on Windowsnetcdf
package cannot be detected by VTK's CMake on all platformssqlite
package cannot be replaced since there is no VTK_USE_SYSTEM_SQLITE
option@jakirkham Looks like the system libraries are working now, but still hitting the build timeouts here...
@Korijn, great job!! Could you remove Python 3.4 on Linux? I think it's better to have two builds for it instead of none :-)
@ccordoba12 Sure, I'll also disable OS X again. Too bad...
@jakirkham I have a couple of questions before merging this:
Regarding onscreen+offscreen via mesa, this was fixed for the first time since the mangled mesa days (~10 years ago) in VTK Yesterday (https://gitlab.kitware.com/vtk/vtk/merge_requests/1642 For hardware based OpenGL, it looks like we have to wait for EGL to mature a bit for this to work. Until those are ready for prime time the two build option is your best terrible option in my opinion.
@demarle Thanks for elaborating on that! Me and @Maxyme are trying to get a build of VTK put together that'll do offline rendering, but I must admit, it's tough! Both of us are new to the field, and most of the documentation appears to be outdated. Getting a conda package together is a real challenge so far. :( If you could point out any up-to-date documentation out to us, that would be a real help!
I've used this article (http://www.paraview.org/Wiki/ParaView_And_Mesa_3D) for hints for years on years on supercomputers without X to get offscreen VTK through OpenGL1 back end. Both mesa classic and mesa llvmpipe have worked as recently as 7.0.0.
Maybe @ocefpaf can answer some of my questions before we merge this?
Maybe @ocefpaf can answer some of my questions before we merge this?
I can try :smile:
- What is your policy on pinning the versions of the dependencies added here?
Not sure if you know about our guide here. Try to pin to those versions and let's see if that works.
- I would like to have a second version of the VTK package that is suitable for offscreen rendering on headless servers (e.g. without X server), but it entails different CMake parameters, effectively producing a different build. Can I make a recipe that "depends" on this one, so that they can evolve together?
I cannot see why not, but I am not sure what exactly that means. Is the "offscreen" version just a component/part of VTK that would depend on this? Or is it a full new version with a different flag for example? If the former your plan sounds fine, if the latter maybe we can try a metapackage instead.
The metapackage can install both, but would still allow people to install them separately if they want to.
Not sure I was helpful...
This used to be an entirely different build. However, @demarle pointed out that it could be within the same build from 7.1 so I think it would be worthwhile to wait for that release.
Thanks for the version numbers! Might be a nice feature to add a check to the linter?
Thanks for the version numbers! Might be a nice feature to add a check to the linter?
Feel free to raise an issue at the conda-smithy repo. 😄
Sounds like @ocefpaf has answered the first point quite nicely. Also it sounds like the second point does not need to be addressed as the next version of VTK will solve the problem, correct?
This PR can facilitate the work for https://github.com/conda-forge/vtk-feedstock/issues/2
I dropped the old branch because it had merge problems.