CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Installation (http://www.cfd-online.com/Forums/openfoam-installation/)
-   -   OpenFOAM Debian packaging current status problems and TODOs (http://www.cfd-online.com/Forums/openfoam-installation/57502-openfoam-debian-packaging-current-status-problems-todos.html)

oseen December 10, 2006 08:50

Hi, everyonehttp://www.cfd-onl
 
Hi, everyonehttp://www.cfd-online.com/OpenFOAM_D...part/happy.gif
I am a Ph.D. candidate of fluid dynamics from China, I'd been using OpenFOAM for more than half a year. The OpenFOAM libraries and solvers, developed and made public by Hrvoje Jasak and other staffs, are very helpful to my research, I really appreciate it.

The installation of OpenFOAM-1.3 is almost distribution-independent in various Linux distributions, people download the source codes and binary files for sf.net or other places, then put these files in the right place in $HOME and finally set the necessary environmental variables. Easy as the installation is, it's more convenient to manage the OpenFOAM package by the system-wide package management mechanism, like apt in Debian, portage in Gentoo, or rpm in Fedora. The benefits are: easy upgrading to new versions, bug tracking support and etc.

There is already a Debian OpenFOAM packaging project in http://alioth.debian.org/projects/pkg-openfoam/, but not active, no file releases, no bug reports and no forum posts, seems dead. I tried packaging OpenFOAM and ParaView in recent a few weeks. ParaView packaging is easy but OpenFOAM is not. I'd like to share my experiences and ideas here http://www.cfd-online.com/OpenFOAM_D...part/happy.gif.

1. We need to split the OpenFOAM tarballs into several packages.
openfoam - solvers, utilities, and scripts.
libopenfoam13 - libraries
libopenfoam13-dev - development headers.
libopenfoam13-doc - Class references generated by Doxygen
openfoam-doc - General documents such as UserGuide.pdf, ProgammingGuide.pdf
openfoam-data - thermal data (Is this package necessary?)

2. We need to arrange the file locations to satisfy both Debian's packaging policy and OpenFOAM.
In Debian, arch-dependent files like libraries must be put into /usr/lib, arch-independent files, like docs and data, are put into usr/share, so we need some symbol links, such as:
WM_PROJECT_INST_DIR=/usr/share/$WM_PROJECT
WM_PROJECT_DIR=$WM_PROJECT_INST_DIR/$WM_PROJECT-$WM_PROJECT_VERSION
link $WM_PROJECT_INST_DIR/linux/j2sdk1.4.2_05 -> /usr/lib/jvm/java-1.5.0-sun
link $WM_PROJECT_INST_DIR/jobControl -> /var/run/openfoam/jobControl
link $WM_PROJECT_DIR/lib -> /usr/lib/openfoam/lib
link $WM_PROJECT_DIR/applications -> /usr/lib/openfoam/applications
link $WM_PROJECT_DIR/.OpenFOAM-1.3 -> /etc/OpenFOAM

3. We need to patch some files to compile the source correctly.
A. Several patches that replace 'gmake' with 'make'.
B. Add the missing demangle.h header file.
C. A patch to use the system-wide zlib and mpi library provided by Debian.
D. Add '-source 1.4' option to compile FoamX with java 1.5
E. Compiling libPVFoamReader need additional files (vtkWrapClientServer.cxx.in) from ParaView's source tree, however, could we drop the PVFoamReader since there is a native reader in the ParaView CVS?
F. ...

4. Miscellaneous
A. The solvers and utilities are put into /usr/lib/openfoam/, only two simple scripts should be put in /usr/bin, one is /usr/bin/openfoam, the other is /usr/bin/FoamX. /usr/bin/openfoam invokes bash with --rcfile argument: 'bash --rcfile /etc/OpenFOAM/bashrc', when /usr/bin/FoamX is a symbol link to the real FoamX binary in /usr/lib, just like the /usr/bin/firefox is a symbol link to /usr/lib/firefox/firefox.
B. Two desktop entries in /usr/share/applications/: openfoam.desktop and FoamX.desktop

Finally I built the following packages, not all of the issues mentioned above were done, however most of solvers and utilities work well with the except of FoamX.
ls -l
-rw-r--r-- 1 oseen oseen 12M 2006-11-22 10:04 libopenfoam13_1.3-1_i386.deb
-rw-r--r-- 1 oseen oseen 560K 2006-11-22 10:05 libopenfoam13-dev_1.3-1_all.deb
-rw-r--r-- 1 oseen oseen 19M 2006-11-22 10:05 libopenfoam13-doc_1.3-1_i386.deb
-rw-r--r-- 1 oseen oseen 18M 2006-11-22 10:04 openfoam_1.3-1_i386.deb
-rw-r--r-- 1 oseen oseen 79M 2006-11-18 10:13 openfoam_1.3.orig.tar.gz
-rw-r--r-- 1 oseen oseen 258K 2006-11-22 10:04 openfoam-data_1.3-1_i386.deb
-rw-r--r-- 1 oseen oseen 21M 2006-11-22 10:05 openfoam-doc_1.3-1_all.deb
-rw-r--r-- 1 oseen oseen 5.1M 2006-11-22 10:05 openfoam-tutorial_1.3-1_all.deb

I am not sure whether you are interested in Debian packaging of OpenFOAM, could you help me? or should I create a Wiki page first?

Some refs.
[1] 'How to compile OpenFOAM' wiki page
[2] Gentoo openfoam-bin ebuild: http://bugs.gentoo.org/show_bug.cgi?id=104257
[3] FreeBSD OpenFOAM ports: http://www.freshports.org/science/openfoam
[4] OpenFOAM RPM package: various sources, just google "OpenFOAM rpm" and you will find them.

7islands December 16, 2006 08:50

Hi, for now no one have replie
 
Hi, for now no one have replied but I think this is a valuable and well thought out project. OpenFOAM users will be able to get great benefits once a unified packaging standard is established across main distributions (not only Debian but also Gentoo, openSUSE and Fedora etc.), especially considering system-wide installation of OpenFOAM is a frequently discussed issue.

As I still am not an OpenFOAM expert, all what I can do is cheering for you http://www.cfd-online.com/OpenFOAM_D...part/happy.gif but as for file locations I hope you just take what I noticed with a grain of salt:
a. Usually it would be OK with just setting the JAVA_HOME variable to the system JDK directory instead of linking $WM_PROJECT_INST_DIR/linux/j2sdk1.4.2_05 to the JDK directory.
b. It might be better to put the jobControl directory under user home directory as each user might want to control their own jobs.
c. The FoamX, runFoamX, killFoamX scripts should be modified to make ns.ref put under user home directory (~/.OpenFOAM-1.3 or somewhere, rather than /etc/OpenFOAM) so that each user can run
FoamX.
d. What's the problem in running FoamX? I'm not sure but might be able to offer some help.

hemph December 18, 2006 12:19

Hi Liu, I for one would be v
 
Hi Liu,
I for one would be very happy to see OpenFOAM as a debian package! I'd be glad to do some trial installs, once you get a working set of debs. I have not run FoamX in a long while, so I can not help you there. I suggest that it should be an optional part of the OF-installation. I am not sure that the OFreader in Paraview CVS is mature enough to rely on at the moment, but hopefully soon. At least with the latest CVS I get crashes using the reader.

oseen January 7, 2007 11:54

This is the .diff.gz file for
 
This is the .diff.gz file for paraview 2.4.4 & openfoam 1.3, experienced Debian users can create paraview & openfoam packages following the very brief (probably incomplete for a Debian beginner) steps below:




tar -zxf paraview-2.4.4.tar.gz
gzip -d paraview_2.4.4-1.diff.gz
cd paraview-2.4.4 && patch -p1 < ../paraview_2.4.4-1.diff
dpkg-buildpackage -rfakeroot


Once the paraview packages are generated and installed, we can make the openfoam packages:

tar -zxf OpenFOAM-1.3.General.gtgz
gzip -d openfoam_1.3-2.diff.gz
cd OpenFOAM-1.3 && patch -p1 < ../openfoam_1.3-2.diff
dpkg-buildpackage -rfakeroot

Maybe a more detailed wiki page would be better, but I do not have much time now... http://www.cfd-online.com/OpenFOAM_D...lipart/sad.gif

oseen January 7, 2007 12:29

Sorry, the upload box did not
 
Sorry, the upload box did not appear.

for paraview
http://blog.newsmth.net/pc/pcdownload.php?fid=37964

for openfoam
http://blog.newsmth.net/pc/pcdownload.php?fid=37963

hemph February 9, 2007 05:18

Hi Liu, The download links y
 
Hi Liu,
The download links you provided does not work for me. I just come to a page with chinese text and no way to proceed further. (on Firefox v2.0)

Best
Rasmus H

rwilfer February 9, 2007 16:22

Hi Liu, At the end of your
 
Hi Liu,

At the end of your posting you ask if somebody is interessted in packaging OpenFOAM in a debian package. Well, yes, I am pretty much interessted since I am new in both areas, CFD and Debian (in the flavor of ubuntu) I would really appreciate it to have an easier start.

Can I help? As far as I see just testing ... but isnt it the basics of good stuff? ... ;-)

Kind regards,
Roland

oseen February 27, 2007 22:11

Hi Roland Wilfer & Rasmus Hem
 
Hi Roland Wilfer & Rasmus Hemph

I examined the download links, the server changed its setting and the hostname "blog.newsmth.net" should be wrote as "www.newsmth.net" now, the new urls are:

http://www.newsmth.net/pc/pcdownload.php?fid=37964

http://www.newsmth.net/pc/pcdownload.php?fid=37963

Another issue that I forgot to mention in the previous post is that, the
paraview_2.4.4-1.orig.tar.gz is not the same as the one from Kitware's
website, it was created by the following steps:

1. Downloads the one from kitware, say paraview-kit.tar.gz
2. tar -xf paraview-from-kitware.tar.gz
3. mkdir paraview-2.4.4-new && mv paraview-2.4.4 paraview-2.4.4-new
4. mv paraview-2.4.4-new paraview-2.4.4
5. copy a-image.png paraview-2.4.4/paraview_22x22.png
6. tar -zcf paraview_2.4.4-1.orig.tar.gz paraview-2.4.4

I'll create a detailed wiki page as soon as I can. http://www.cfd-online.com/OpenFOAM_D...part/happy.gif

Best wishes
Liu XB

benofm August 26, 2007 12:46

Hi, I would like to encourage
 
Hi, I would like to encourage the Debain OpenFOAM package project because for some of us getting OpenFOAM compiled on Debian remains elusive. I pretty much seem to be stuck in a loop of repeatedly compiling and trying to fix the errors I get.

First round I did not have the OPENGL stuff installed so it complained about gl.h and glut.h not being found.

Then I had to install lex++ after finally figuring out what it was.

Then I had to install the X windows development headers.

Then I had to install the SSL development package.

And now libFoamX.so is complaining about an undefined reference to std::basic_ostream.... Havent figured that one out yet. sigh.

And I am using the latest stable Debian release.

But it seems to me that there is a whole list of packages and unclear dependencies that you need which is not mentioned anywhere or which some version of linux have and some dont. Am I missing something obvious?

Given that Ubuntu/Debian are far more common than SUSE I am not sure why they so poorly support other ports? And would it hurt to include a few more runtime files in their binary package so you dont have to compile it on Debian?

Maybe this is deliberate to get support funds. Id take em up but I would like to tinker with this at home and this point it is looking doubtful.

So, yes, it would be wonderful if I could go "aptitude install OpenFOAM". I would gladly help test or even set it up but I at this stage I have yet to get it compiled... <g>

msrinath80 August 26, 2007 13:50

First round I did not have the
 
First round I did not have the OPENGL stuff installed so it complained about gl.h and glut.h not being found.

Then I had to install lex++ after finally figuring out what it was.

Then I had to install the X windows development headers.

Then I had to install the SSL development package.

This is commonplace in the GNU/Linux world as you must be well aware. Not everything can be handed in a plate. We all live with it. Granted, some of us on stable enterprise-class distros such as Suse/OpenSuse and RHEL clones (Scientifc Linux, CentOS et al.) have a better experience.

But it seems to me that there is a whole list of packages and unclear dependencies that you need which is not mentioned anywhere or which some version of linux have and some dont.

You are absolutely correct. OpenFOAM is not at the stage where one can say, yes, all done. It never will be. Neither is Fluent, neither is CFX. So as long as it is under constant development, breaking compatiblity with older releases, unclear dependencies etc. will exist. This is for the greater good. With time however, such issues will tend to die out.

Given that Ubuntu/Debian are far more common than SUSE I am not sure why they so poorly support other ports? And would it hurt to include a few more runtime files in their binary package so you dont have to compile it on Debian?

I'm sure the OpenCFD developers are doing the best given the circumstances. Perhaps, if you wait for a bit someone will come up with a Debian specific install/compile tutorial.

"Maybe this is deliberate to get support funds."

I'd be very very careful before making any such statement. Given the commitment these folks have shown, it would be wrong to accuse them for such trivial problems.

Firstly I would like many folks to understand why OpenFOAM isn't installed globally (e.g. /usr/local/OpenFOAM). With the increasing number of bug-fixes and new functionality that comes every 3-6 months it is impractical for a developing code like OpenFOAM to be installed system-wide. Add to this the fact that almost just about every end user has his/her very own modified solver for their use. There are ways to separate the basic libraries from the user-defined ones just as one can build their own solvers wherever they want. However, what is the incentive? Many of us have got used to the home directory installation and find it a very convenient model. Not surprising. It gives us better control and more freedom, esp. when working in university clusters where you simply cannot bug sysadmins every other day telling them that CrankNicolson.C has a bug fix, so you need him to run some commands as root user. Not practical.

Last but not the least, I quite frankly don't see any problems using OpenFOAM on Ubuntu. I use Feisty Fawn 64 bit on my laptop and I have all solvers working just from the binaries provided in the OpenFOAM web page. All I had to compile were my own solvers, Bernhard's utilities et al. Needless to say, it went without any problems. In fact, if I remember correctly, I remember someone posting a good OpenFOAM HOWTO on the scientific ubuntu forum.

Debian is notorious for having its own religion just as Slackware. Since the 90s neither have changed. Ubuntu on the other hand is more friendly and as much as I love Debian, I will still recommend Ubuntu.



All times are GMT -4. The time now is 20:28.