[Neurodebian-devel] RE : RE : RE : RE : Packaging of anatomist (was: Latest and greatest in visualization of MRI data?)

RIVIERE Denis denis.riviere at cea.fr
Thu Feb 3 08:01:00 UTC 2011


Hi Michael,

- bv_maker and its $HOME config can be avoided: in such a case you need to perform a 2 stage compilation:
1. cmake/make/make install the brainvisa-cmake project
then make your PATH point to its installation
2. cmake the other projects (aims, anatomist, soma...), which will be using brainvisa-cmake. The entry point CMakeLists.txt is (as far as I remember) in the brainvisa-cmake project, brainvisa-cmake/trunk/CMakeLists.txt, you can pass it directly to cmake or ccmake from an empty build directory.
There used to be a wiki page on this, but I guess Yann has removed it since he did the bv_maker tool.

- We cannot avoid this layer on top of cmake, because we have a whole set of projects that we want to compile together, and be able to choose which projects we want to compile (ie just aims, or aims+anatomist, or aims+anatomist+brainvisa, etc), handle optional components, etc.

- There are some Find* modules, yes, we use them to find system libraries when installed at non-standard locations on systems that do not provide them, and to solve the cross-platform issues. However they do not harm, they do work on Ubuntu, and if ther is any issue on Debian, we can probably fix them. Normally I think most of them use the underlying system FindPackage, and if the library is not found, they do something else. Maybe also a few of them were not part of earlier cmake releases and are not needed any longer (?).

- The embedded libraries (mainly nifti, gifti, rply) have been embedded to avoid the pain of an external installation / findPacklage (especially on Windows and MacOS) when they are small enough. We have checked in every case that their licensing allows it. What's the problem with them ? We did not make a system to allow bypassing them, it would require a bit more infrastructure.

- the warning about packaging external components is not a problem: it is about something used when making "global" packages that include system libraries to make a self-contained binary package, allowing to run on different linux distribution, or on windows/mac. Here this is not what you want to do.

- the error, though, is a problem. But if you didn't take the right CmakeList from the beginning, maybe it explains.

Denis


-------- Message d'origine--------
De: Michael Hanke [mailto:michael.hanke at gmail.com]
Date: jeu. 03/02/2011 03:34
À: RIVIERE Denis
Cc: Yann Cointepas; neurodebian-devel at lists.alioth.debian.org
Objet : Re: RE : RE : [Neurodebian-devel] RE :  Packaging of anatomist (was: Latest and greatest in visualization of MRI data?)
 
On Mon, Jan 31, 2011 at 10:48:23PM +0100, RIVIERE Denis wrote:
> 
> OK here is a little script to make the source tarballs.
> It does the following:
> - checkout or update a local svn client (you have to run it from a clean new directory the first time)
> - tar the necessary projects sources useful for anatomist

Thanks for the script. I changed it slightly, so it produces something
that qualifies as a multi-tarball source package.

> The brainvisa-cmake tarball is the build environment project (based on
> cmake), so is only needed to compile, not for runtime.  It's a shell
> script with variables in it to select the branch you want to work on
> (set to "trunk" right now).  With that and the help of:
> https://brainvisa:Soma2009@bioproj.extra.cea.fr/redmine/projects/brainvisa-devel/wiki/How_to_compile_BrainVISA_projects
> it should be quite easy to build.

Unfortunately not that easy. The documentation says:

 You must create this file in the following directory:
 $HOME/.brainvisa/bv_maker.cfg.

Debian's buildds do not necessarily have a $HOME at all, so this is not
an option. Moreover the configuration seems to require knowledge of the
absolute location of the sources. That again depends on the build
environment and is hard to guess. Now bv_maker seems to be out of luck
and me too.

I really wonder whether it would be possible to get it to build without
this overhead. I tried running cmake the usual way, but it is extremely
unhappy. For example

  WARNING: Impossible to package third party component aims-free because file
  "../brainvisa-cmake/share/brainvisa-cmake-1.0/cmake//brainvisa-packaging-aims-free.cmake"
  does not exist.

or

  CMake Error at CMakeLists.txt:8 (math):
  math cannot parse the expression: "+1": syntax error, unexpected exp_PLUS,
  expecting exp_OPENPARENT or exp_NUMBER (1)

Furthermore, brainvisa-cmake comes with many many cmake modules that
find standard system libraries. Obviously, Debian's cmake also comes with
those, but they are tuned to Debian and consequently I'd prefer those
when building packages.

Another issue I have noticed are the included code copies of external
libraries, e.g. NIfTI. Is there a reliable way to prevent brainvisa to
use them? The Debian packaging needs to use the libraries provided by
corresponding Debian packages and not these internal copies. I need to
be able to pull them out, without breaking anything.

Thanks in advance,

Michael

-- 
Michael Hanke
http://mih.voxindeserto.de




More information about the Neurodebian-devel mailing list