astrojuanlu / fenics-recipes

This repository contains conda recipes for the FEniCS libraries
The Unlicense
13 stars 15 forks source link

Try building packages on anaconda.org #20

Open astrojuanlu opened 9 years ago

astrojuanlu commented 9 years ago

This might ease the process once the recipes are proven to work. Perhaps try for next FEniCS release.

astrojuanlu commented 9 years ago

Now binstar.org is anaconda.org.

astrojuanlu commented 9 years ago

The problem with FEniCS comes when adding VTK support, since it requires an OpenGL implementation. Apparently it is not possible to install new system packages in anaconda.org builds because it requires root access, see for instance:

https://binstar.org/jf/opencascade_community_edition/builds/9/0

cc @gmarkall

gmarkall commented 9 years ago

One possible workaround for this is to run your own build worker that you have control of on a local machine - some documentation for how to do this is at: http://docs.binstar.org/build-config.html#BuildWorkers - the docker image for the build worker that you could use as a starting point is at: https://registry.hub.docker.com/u/continuumio/binstar-build-linux64/ - perhaps a setup with this could be used to build a VTK package that you could then conda install on normal anaconda.org build workers?

Another possible workaround is to build a conda package containing an OpenGL implementation, but I guess this is less trivial than it sounds (I don't really know anything about OpenGL)?

astrojuanlu commented 9 years ago

The thing is that OpenGL is not a build requirement, but a runtime one. In fact, I could build FEniCS properly configured with VTK without any OpenGL implementation available - but I would not be able to test it, even though the only test I'm running for DOLFIN is import dolfin. Apparently many shared libraries are loaded at import time, and if DOLFIN was configured with VTK support it will call libGL.so.

I don't know how difficult it would be either, but I agree with you that it can be nontrivial.

el-oso commented 8 years ago

Hi, I just recently installed your conda packages and they were great! Thanks, for building them. However, I would like to visualize the data but I have no idea without VTK support. Any followup on this topic recently?

astrojuanlu commented 8 years ago

Hi @el-oso, thanks for your interest. The problem is that the latest VTK package from Anaconda still hadn't solved all the portability issues last time I checked (see https://github.com/ContinuumIO/anaconda-issues/issues/483#issuecomment-149463270). RealLife™ caught me these months so I haven't been able to work on this issue, and actually I have other pending ones. I suggest you to try building your own packages - the recipes should be ready to compile in any Linux distribution, and while not achieving portability you can make them work on your computer.

astrojuanlu commented 8 years ago

Removed Qt and VTK to make this possible in fc47a2d85675cbbedba770c5abc964b54edb56a7 and testing in https://anaconda.org/juanlu001/fenics_all/builds/1/0. Still, conda build swig fails because zlib is not found.

astrojuanlu commented 8 years ago

After almost 50 minutes, the process has failed in the exact last step: https://anaconda.org/Juanlu001/fenics_all/builds/5/0 I will call it "progress".

astrojuanlu commented 8 years ago

By the way @el-oso you can still export the results and view them in Paraview or mayavi2, see for instance http://fenicsproject.org/documentation/dolfin/1.6.0/python/demo/documented/poisson/python/documentation.html:

file = File("poisson.pvd")
file << u
el-oso commented 8 years ago

Hi,

I was disconnected for several days and I just saw your reply. I haven't tried the recipes and rebuild the conda packages, but I have been using Fenics + Paraview on my leisure time :) and found it to be a good combination.

@Juanlu001 I will try to rebuild the packages as you previously suggested and see how that works out.

Small question then ... If you can visualize with Paraview or Mayavi2, what is the purpose of the Dolphin viewer? To visualize the results in real time?

On Tue, Jan 5, 2016 at 9:30 AM Juan Luis Cano Rodríguez < notifications@github.com> wrote:

By the way @el-oso https://github.com/el-oso you can still export the results and view them in Paraview or mayavi2, see for instance http://fenicsproject.org/documentation/dolfin/1.6.0/python/demo/documented/poisson/python/documentation.html :

file = File("poisson.pvd")file << u

— Reply to this email directly or view it on GitHub https://github.com/Juanlu001/fenics-recipes/issues/20#issuecomment-168933833 .

astrojuanlu commented 8 years ago

Good to know FEniCS + Paraview is working well! I cannot speak on behalf of fenics-dev but I guess it's handy to have a simple plot command in DOLFIN to quickly visualize things.

astrojuanlu commented 8 years ago

Current status: Anaconda-Server Badge

astrojuanlu commented 8 years ago

I still get this unhelpful error on import that I am unable to reproduce locally:

===== testing package: dolfin-1.6.0-np19py27_6 =====
import: u'dolfin'
TESTS FAILED: dolfin-1.6.0-np19py27_6
command exited with status 1
discarding /home/anaconda/env/bin from PATH
Exit BINSTAR_BUILD_RESULT=failure

(see https://anaconda.org/juanlu001/fenics_all/builds/16/0#L29630)

@gmarkall do you have an idea why this can happen? I already added debugging flags to the compilation, so it's unclear to me what's happening there...

gmarkall commented 8 years ago

I'm not quite sure why that happened - it's unfortunate that no message appears to have been printed. To try to debug this, I'd try commenting out https://github.com/Juanlu001/fenics-recipes/blob/master/dolfin/meta.yaml#L47-L49 and adding a new file, dolfin/run_test.py that contains the statement import dolfin to see if that succeeds - if it fails, hopefully some output would be captured and end up in the log. (This shouldn't change what the test is doing, importing dolfin, but is just another way to do it).

gmarkall commented 8 years ago

Also, you may want to add the -q flag to your conda build invocations so that the progress bars don't get printed out into the log.

astrojuanlu commented 8 years ago

Thanks for your suggestions @gmarkall. I did as you say but unfortunately the error is equally cryptic:

===== testing package: dolfin-1.6.0-np19py27_6 =====
running run_test.py
TESTS FAILED: dolfin-1.6.0-np19py27_6
command exited with status 1

https://anaconda.org/juanlu001/fenics_all/builds/19/0#L13720

I fear I am out of ideas here :(