This is something I haven't figured out. It would be good to have a discussion on this.
One option might be to just keep all of FEniCS with dependencies in HashDist (using the fenics-install.sh script). Then for all FEniCS Python components, one sets up a separate directory for installation during development, in combination with a config file that can be sourced to put that directory first in the path. For DOLFIN development, one would source the hashdist config and work with cmake.local. But there are likely better ways to handle this using suitable hashdist commands. Even if the install script does not install hashdist, I assume it will be a good thing for developers to actually install hashdist so that they may talk to hashdist outside of running the install script. -- Anders Wed Dec 10 2014 at 8:47:50 AM skrev Martin Sandve Alnæs <[email protected] >: > Do you have a suggestion for a work flow while developing? I.e. building > intermediate uncommitted work repeatedly on top of a hashdist stack without > storing every version in hashdist? Maybe best to have a hashdist stack with > all dependencies only and just work with fenics components outside hashdist? > > Martin > 10. des. 2014 08:06 skrev "Anders Logg" <[email protected]>: > > Yes, it is quite fantastic isn't it... :-) >> >> The problem you noted with the name of the config file has been fixed. >> >> The idea is that one can build many different configurations/versions >> of FEniCS and keep the config files around for switching between them. >> >> Note that each config file contains info about which versions of FEniCS >> were used to build so it's easy to go back later and check which build one >> has. >> >> -- >> Anders >> >> >> Wed Dec 10 2014 at 6:41:59 AM skrev Simon Funke <[email protected] >> >: >> >>> This is fantastic! The installation of the dev version with hasdist >>> works fine on my Ubuntu 14.10 laptop. >>> >>> My only comment is that the script tells me at the end: >>> >>> """ >>> For your convenience, a configuration file named fenics.dev has been >>> created in the current directory. For setting up your environment, you >>> should issue the following command: >>> >>> source fenics.master >>> """ >>> >>> The last line should be "source fenics.dev" >>> >>> >>> >>> 2014-12-09 22:46 GMT+01:00 Lizao Li <[email protected]>: >>> >>>> @Johannes, the SLEPc patched worked. Thanks~ On Archlinux, these two >>>> lines builds FEniCS successfully: >>>> >>>> TMP=/tmp/test; mkdir $TMP; cd $TMP; ln -s `which python2` python >>>> >>> >>>> wget -O - http://fenicsproject.org/fenics-install.sh | bash >>>> >>>> Since python is included in the package, it is probably a good >>>> idea to include ipython as well. The default repl is a pain to use. >>>> >>>> @Jan, I tried GCC4.8.2 on the same CentOS and it still fails with the >>>> same error. Upon digging further into the build log, it seems dolfin did >>>> something funny: >>>> >>>> 2014/12/09 14:50:53 - INFO: [package:run_job] -- The C compiler >>>> identification is GNU 4.4.7 >>>> 2014/12/09 14:50:53 - INFO: [package:run_job] -- The CXX compiler >>>> identification is GNU 4.4.7 >>>> 2014/12/09 14:50:53 - INFO: [package:run_job] -- Check for working C >>>> compiler: * /usr/bin/cc* >>>> 2014/12/09 14:50:54 - INFO: [package:run_job] -- Check for working C >>>> compiler: * /usr/bin/cc* -- works >>>> 2014/12/09 14:50:54 - INFO: [package:run_job] -- Detecting C compiler >>>> ABI info >>>> 2014/12/09 14:50:54 - INFO: [package:run_job] -- Detecting C compiler >>>> ABI info - done >>>> 2014/12/09 14:50:54 - INFO: [package:run_job] -- Check for working CXX >>>> compiler: /usr/bin/c++ >>>> 2014/12/09 14:50:54 - INFO: [package:run_job] -- Check for working CXX >>>> compiler: /usr/bin/c++ -- works >>>> >>>> Note that in the above cc and c++ (wrong version), not gcc and g++ >>>> (correct version), were used. I think symlink gcc probably won't work here >>>> because libc and includes are also going to be wrong, unlike the python >>>> case where the symlinked python is only used to run the hashdist script. >>>> Shouldn't dolfin cmake choose the compiler following some priority like >>>> mpic++>g++>c++ ? >>>> >>> >>>> On Tue, Dec 9, 2014 at 11:16 AM, Jan Blechta < >>>> [email protected]> wrote: >>>> >>>>> Building mpi4py fails on Ubuntu 12.04 because of some problem with >>>>> system Cython (see below for full log) >>>>> >>>>> ImportError: /usr/lib/pymodules/python2.7/Cython/Compiler/Code.so: >>>>> undefined symbol: PyUnicodeUCS4_DecodeUTF8 >>>>> >>>>> Shouldn't be Cython built also? >>>>> >>>>> Jan >>>>> >>>>> >>>>> 2014/12/09 18:02:56 - INFO: [package:run_job] running install >>>>> 2014/12/09 18:02:56 - INFO: [package:run_job] running build >>>>> 2014/12/09 18:02:56 - INFO: [package:run_job] running build_src >>>>> 2014/12/09 18:02:56 - INFO: [package:run_job] cythonizing >>>>> 'mpi4py.MPI.pyx' -> 'mpi4py.MPI.c' 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] Traceback (most recent call last): 2014/12/09 >>>>> 18:02:56 - INFO: [package:run_job] File "setup.py", line 624, in >>>>> <module> 2014/12/09 18:02:56 - INFO: [package:run_job] main() >>>>> 2014/12/09 18:02:56 - INFO: [package:run_job] File "setup.py", line >>>>> 621, in main 2014/12/09 18:02:56 - INFO: [package:run_job] >>>>> run_setup() 2014/12/09 18:02:56 - INFO: [package:run_job] File >>>>> "setup.py", line 493, in run_setup 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] **metadata) 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/tmp/mpi4py-dps5vsljzl7g-1/conf/mpidistutils.py", >>>>> line 441, in setup 2014/12/09 18:02:56 - INFO: [package:run_job] >>>>> return fcn_setup(**attrs) 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/core.py", >>>>> line 151, in setup 2014/12/09 18:02:56 - INFO: [package:run_job] >>>>> dist.run_commands() 2014/12/09 18:02:56 - INFO: [package:run_job] >>>>> File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/dist.py", >>>>> line 953, in run_commands 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] self.run_command(cmd) 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/dist.py", >>>>> line 972, in run_command 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] cmd_obj.run() 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/command/install.py", >>>>> line 563, in run 2014/12/09 18:02:56 - INFO: [package:run_job] >>>>> self.run_command('build') 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/cmd.py", >>>>> line 326, in run_command 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] self.distribution.run_command(command) 2014/12/09 >>>>> 18:02:56 - INFO: [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/dist.py", >>>>> line 972, in run_command 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] cmd_obj.run() 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/command/build.py", >>>>> line 127, in run 2014/12/09 18:02:56 - INFO: [package:run_job] >>>>> self.run_command(cmd_name) 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/cmd.py", >>>>> line 326, in run_command 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] self.distribution.run_command(command) 2014/12/09 >>>>> 18:02:56 - INFO: [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/bld/python/ctzx2dm36c6d/lib/python2.7/distutils/dist.py", >>>>> line 972, in run_command 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] cmd_obj.run() 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File "setup.py", line 594, in build_sources >>>>> 2014/12/09 18:02:56 - INFO: [package:run_job] wdir='src', >>>>> force=cmd.force, VERSION=CYTHON) 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File "setup.py", line 573, in run_cython 2014/12/09 >>>>> 18:02:56 - INFO: [package:run_job] wdir=wdir) 2014/12/09 18:02:56 - >>>>> INFO: [package:run_job] File >>>>> >>>>> "/srv/groot/blechta/.hashdist/tmp/mpi4py-dps5vsljzl7g-1/conf/cythonize.py", >>>>> line 9, in cythonize 2014/12/09 18:02:56 - INFO: [package:run_job] >>>>> from Cython.Compiler.Main import \ 2014/12/09 18:02:56 - INFO: >>>>> [package:run_job] File >>>>> "/usr/lib/pymodules/python2.7/Cython/Compiler/Main.py", line 18, in >>>>> <module> 2014/12/09 18:02:56 - INFO: [package:run_job] import Code >>>>> 2014/12/09 18:02:56 - INFO: [package:run_job] >>>>> ImportError: /usr/lib/pymodules/python2.7/Cython/Compiler/Code.so: >>>>> undefined symbol: PyUnicodeUCS4_DecodeUTF8 2014/12/09 18:02:56 - ERROR: >>>>> [package:run_job] Command '[u'/bin/bash', '_hashdist/build.sh']' >>>>> returned non-zero exit status 1 2014/12/09 18:02:56 - ERROR: >>>>> [package:run_job] command failed (code=1); raising >>>>> _______________________________________________ >>>>> fenics mailing list >>>>> [email protected] >>>>> http://fenicsproject.org/mailman/listinfo/fenics >>>>> >>>> >>>> >>>> >>>> -- >>>> Lizao (Larry) Li >>>> Univeristy of Minnesota >>>> >>>> _______________________________________________ >>>> fenics mailing list >>>> [email protected] >>>> http://fenicsproject.org/mailman/listinfo/fenics >>>> >>>> >>> >>> >>> -- >>> Simon Funke >>> >>> Imperial College London >>> Applied Modelling and Computation Group >>> Office: 3.56R Royal School of Mines Building >>> Tel: +44 (0)20 759 41363 >>> Email: [email protected] >>> >> >> _______________________________________________ >> fenics mailing list >> [email protected] >> http://fenicsproject.org/mailman/listinfo/fenics >> >>
_______________________________________________ fenics mailing list [email protected] http://fenicsproject.org/mailman/listinfo/fenics
