Subject: Re: [PATCH] gnu: Add openfoam]

From: Paul Garlick <[email-masked]>
Date: Thu, 07 Sep 2017 23:41:35 +0100

Hi Ludo,
Thank you for your comments on the OpenFOAM layout.
> 
> Would it be possible to follow a layout closer to what we usually do:
There are some advantages of keeping the standard OpenFOAM layout,
different though it is.  Firstly, if it the layout remains upstream's
responsibility it makes the Guix maintenance task simpler.  Secondly,
OpenFOAM users will immediately recognise the standard structure.
> 
> Or perhaps there’s a middle ground we could find?  
Possibly but we would need to think of a way to avoid version clashes.
 
One objective in packaging OpenFOAM for Guix is to allow users to have
multiple versions of OpenFOAM installed at once.  This is a common
requirement in the OpenFOAM world since user development and upstream
development are independent.  However, it can be difficult to achieve,
especially in a multi-user environment.  Guix can offer an advantage
over alternative methods of installation in this respect.
To explain, imagine two OpenFOAM versions, A and B.  If we use the
OpenFOAM standard layout and install both with Guix we have:
$GUIX_PROFILE/OpenFOAM-A
                                  /OpenFOAM-B
A user might set up an alias to initialize the OpenFOAM environment
variables for version A:
$ alias startOFA='foamDotFile=$FOAM_INST_DIR/OpenFOAM-A/etc/bashrc; [
-f $foamDotFile ] && . $foamDotFile'
Similarly, a 'startOFB' alias could be defined.  The user could then
choose the version for the particular task, or even use both versions
simultaneously in separate shells.
Could we achieve this versatility using a Guix-like layout?  A possible
problem might be executable files in version B clashing with executable
files of the same name in version A, if they both share the
$GUIX_PROFILE/bin directory.
WDYT?
Paul.