summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Eleftheriou2015-07-16 11:10:23 +0200
committerGeorge Eleftheriou2015-07-16 11:10:23 +0200
commite667a7260a317df2c8079263808cafbf5177656a (patch)
tree9365c3889d3d76fd0bc531665444274bb6c2ff76
downloadaur-e667a7260a317df2c8079263808cafbf5177656a.tar.gz
Initial import
-rw-r--r--.SRCINFO31
-rw-r--r--.gitignore7
-rw-r--r--PKGBUILD92
-rw-r--r--decomp-options.patch12
-rw-r--r--openfoam.install17
-rw-r--r--paraFoam.patch49
-rw-r--r--scotch-options.patch25
-rw-r--r--settings.patch16
8 files changed, 249 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 00000000000..b4db4d35508
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,31 @@
+pkgbase = openfoam
+ pkgdesc = The open source CFD toolbox
+ pkgver = 2.4.0
+ pkgrel = 1
+ url = http://www.openfoam.com
+ install = openfoam.install
+ arch = i686
+ arch = x86_64
+ license = GPL
+ depends = bzip2
+ depends = paraview
+ depends = parmetis
+ depends = scotch
+ depends = boost
+ depends = flex
+ depends = cgal
+ source = http://downloads.sourceforge.net/foam/OpenFOAM-2.4.0.tgz
+ source = decomp-options.patch
+ source = openfoam.install
+ source = paraFoam.patch
+ source = scotch-options.patch
+ source = settings.patch
+ sha256sums = aac4c9e2cc1b54724292add3e182ebf923a0929978e3b5ba524c97ce75477706
+ sha256sums = 3faef066228df77bad5b329bf251fc057dc5dac3b749d5bcd292438f89a546b7
+ sha256sums = 5490b770952a853532955c5da6c37de4ba13e9a29dc06b11d3dbeba292300f85
+ sha256sums = cdd8c599f34cc967e6fb75b7da5f337aa7b56b19cf0871ebf608af6507abe07c
+ sha256sums = bbf370e411dc7fd95c3d823dac3534d4312fe90c0365b596aa2a3ed016463819
+ sha256sums = 9f36415505d71d86a7f18624f8ed9888f8fa7af09833b0dd215477ddca57302f
+
+pkgname = openfoam
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000000..3b8b1893fb7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+pkg/
+src/
+*.pkg.tar
+*.log
+*.tar.gz
+*.tgz
+*.sh
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 00000000000..2b096bea588
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,92 @@
+# Contributor: Andrew Fischer <andrew_at_apastron.co>
+# Maintainer: George Eleftheriou <eleftg>
+
+pkgname=openfoam
+
+# The distributors package name
+_distpkgname=OpenFOAM
+
+pkgver=2.4.0
+pkgrel=1
+pkgdesc="The open source CFD toolbox"
+arch=('i686' 'x86_64')
+url="http://www.openfoam.com"
+license=('GPL')
+depends=('bzip2' 'paraview' 'parmetis' 'scotch' 'boost' 'flex' 'cgal')
+source=("http://downloads.sourceforge.net/foam/${_distpkgname}-${pkgver}.tgz"
+ "decomp-options.patch"
+ "openfoam.install"
+ "paraFoam.patch"
+ "scotch-options.patch"
+ "settings.patch")
+install=openfoam.install
+sha256sums=('aac4c9e2cc1b54724292add3e182ebf923a0929978e3b5ba524c97ce75477706'
+ '3faef066228df77bad5b329bf251fc057dc5dac3b749d5bcd292438f89a546b7'
+ '5490b770952a853532955c5da6c37de4ba13e9a29dc06b11d3dbeba292300f85'
+ 'cdd8c599f34cc967e6fb75b7da5f337aa7b56b19cf0871ebf608af6507abe07c'
+ 'bbf370e411dc7fd95c3d823dac3534d4312fe90c0365b596aa2a3ed016463819'
+ '9f36415505d71d86a7f18624f8ed9888f8fa7af09833b0dd215477ddca57302f')
+
+prepare() {
+ # Extract the current version and major of paraview and of scotch for use in the system preferences
+ _pversion=`pacman -Q paraview | sed -e 's/.* //; s/-.*//g'`
+ _pmajor=`echo $_pversion | cut -d '.' -f1`
+ _sversion=`pacman -Q scotch | sed -e 's/.* //; s/-.*//g'`
+
+ # Generate and install the system preferences file
+ echo "compilerInstall=system" > ${startdir}/prefs.sh
+ echo "export WM_MPLIB=SYSTEMOPENMPI" >> ${startdir}/prefs.sh
+ echo "export ParaView_VERSION=${_pversion}" >> ${startdir}/prefs.sh
+ echo "export ParaView_MAJOR=${_pmajor}" >> ${startdir}/prefs.sh
+ cp ${startdir}/prefs.sh ${srcdir}/${_distpkgname}-${pkgver}/etc || return 1
+
+ # Generate the scotch.sh file for arch
+ echo "export SCOTCH_VERSION=scotch_${_sversion}" > ${startdir}/scotch.sh
+ echo "export SCOTCH_ARCH_PATH=/usr" >> ${startdir}/scotch.sh
+ cp ${startdir}/scotch.sh ${srcdir}/${_distpkgname}-${pkgver}/etc/config || return 1
+
+ # Patch for archlinux parmetis, paraview and openmpi paths, and scotch link lines
+ patch -p1 < ${startdir}/decomp-options.patch
+ patch -p1 < ${startdir}/paraFoam.patch
+ patch -p1 < ${startdir}/scotch-options.patch
+}
+
+build() {
+ # Setup the build environment
+ export FOAM_INST_DIR=${srcdir}
+ foamDotFile=${srcdir}/${_distpkgname}-${pkgver}/etc/bashrc
+ [ -f ${foamDotFile} ] && . ${foamDotFile} || return 1
+
+ # Enter build directory
+ cd ${srcdir}/${_distpkgname}-${pkgver} || return 1
+
+ # Build and clean up OpenFOAM
+ ./Allwmake || return 1
+ wclean all || return 1
+}
+
+package() {
+ cd ${startdir}
+
+ # Create destination directories
+ install -d ${pkgdir}/opt/${_distpkgname} ${pkgdir}/etc/profile.d || return 1
+
+ # Move package to pkgdir
+ mv ${srcdir}/${_distpkgname}-${pkgver} ${pkgdir}/opt/${_distpkgname} || return 1
+
+ # Add source file
+ echo "export FOAM_INST_DIR=/opt/${_distpkgname}" > ${pkgdir}/etc/profile.d/openfoam.sh || return 1
+ echo "source \${FOAM_INST_DIR}/${_distpkgname}-${pkgver}/etc/bashrc" >> ${pkgdir}/etc/profile.d/openfoam.sh || return 1
+
+ # Add stub thirdparty directory to keep openfoam happy
+ install -d ${pkgdir}/opt/${_distpkgname}/ThirdParty-${pkgver} || return 1
+
+ # Permission fixes - for system-wide install and use
+ chmod -R go+r ${pkgdir}/opt
+ chmod -R 755 ${pkgdir}/opt/${_distpkgname}/${_distpkgname}-${pkgver}/bin
+ chmod -R 755 ${pkgdir}/opt/${_distpkgname}/${_distpkgname}-${pkgver}/etc
+}
+
+# vim:set ts=2 sw=2 et:
+
+
diff --git a/decomp-options.patch b/decomp-options.patch
new file mode 100644
index 00000000000..34777a67d12
--- /dev/null
+++ b/decomp-options.patch
@@ -0,0 +1,12 @@
+--- src/OpenFOAM-2.4.0/src/parallel/decompose/metisDecomp/Make/options
++++ src/OpenFOAM-2.4.0/src/parallel/decompose/metisDecomp/Make/options
+@@ -1,7 +1,7 @@
+ EXE_INC = \
+ /* -DFULLDEBUG -g -O0 */ \
+- -I$(METIS_ARCH_PATH)/include \
++ -I/usr/include \
+ -I../decompositionMethods/lnInclude
+
+ LIB_LIBS = \
+- -L$(METIS_ARCH_PATH)/lib -lmetis
++ -L$(FOAM_EXT_LIBBIN) -lparmetis
diff --git a/openfoam.install b/openfoam.install
new file mode 100644
index 00000000000..b37ae23a2c4
--- /dev/null
+++ b/openfoam.install
@@ -0,0 +1,17 @@
+post_install() {
+ echo "NOTE:"
+ echo "This install of OpenFOAM does NOT include the"
+ echo "ThirdParty libraries from openfoam's website."
+ echo "It simply creates a stub OpenFOAM/ThirdParty"
+ echo "directory to keep the OpenFOAM bashrc happy."
+ echo ""
+ echo "The most common use of ThirdParty is to get Paraview."
+ echo "Modern versions of Paraview include an OpenFOAM"
+ echo "case file viewer. Instead of installing the ThirdParty"
+ echo "build of Paraview, using the AUR paraview package is"
+ echo "advised. https://aur.archlinux.org/packages/paraview"
+ echo ""
+ echo "If you need other components of the ThirdParty bundle"
+ echo "it will have to be installed manually."
+ echo "See http://www.openfoam.com/download/source.php for details."
+}
diff --git a/paraFoam.patch b/paraFoam.patch
new file mode 100644
index 00000000000..cad4755e499
--- /dev/null
+++ b/paraFoam.patch
@@ -0,0 +1,49 @@
+--- src/OpenFOAM-2.4.0/bin/paraFoam
++++ src/OpenFOAM-2.4.0/bin/paraFoam
+@@ -68,7 +68,7 @@
+ export LC_ALL=C
+
+ # reader extension
+-extension=OpenFOAM
++extension=foam
+
+ requirePV=1
+
+@@ -124,21 +124,22 @@
+ # Get the ParaView major version to select the appropriate readers
+ version=`echo $ParaView_VERSION | sed -e 's/^\([0-9][0-9]*\).*$/\1/'`
+
+-# check that reader module has been built
+-if [ $requirePV -eq 1 -a ! -f $PV_PLUGIN_PATH/libPV${version}FoamReader_SM.so ]
+-then
+- cat<< BUILDREADER
+-
+-FATAL ERROR: ParaView reader module libraries do not exist
+-
+-Please build the reader module before continuing:
+-cd \$FOAM_UTILITIES/postProcessing/graphics/PV${version}Readers
+-./Allwclean
+-./Allwmake
+-
+-BUILDREADER
+- exit 1
+-fi
++# NOTE: For OpenFOAM built from AUR, paraview will already be installed
++# with the required readers. No need to perform this check.
++#if [ $requirePV -eq 1 -a ! -f $PV_PLUGIN_PATH/libPV${version}FoamReader_SM.so ]
++#then
++# cat<< BUILDREADER
++#
++#FATAL ERROR: ParaView reader module libraries do not exist
++#
++#Please build the reader module before continuing:
++#cd \$FOAM_UTILITIES/postProcessing/graphics/PV${version}Readers
++#./Allwclean
++#./Allwmake
++#
++#BUILDREADER
++# exit 1
++#fi
+
+ # check for --data=... argument
+ hasDataArg()
diff --git a/scotch-options.patch b/scotch-options.patch
new file mode 100644
index 00000000000..382e9df4aef
--- /dev/null
+++ b/scotch-options.patch
@@ -0,0 +1,25 @@
+--- src/OpenFOAM-2.4.0/src/parallel/decompose/ptscotchDecomp/Make/options
++++ src/OpenFOAM-2.4.0/src/parallel/decompose/ptscotchDecomp/Make/options
+@@ -9,4 +9,4 @@
+ -I../decompositionMethods/lnInclude
+
+ LIB_LIBS = \
+- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt
++ -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lbz2 -lscotch -lptscotcherrexit -lscotcherrexit ${LINK_FLAGS} -lrt
+--- src/OpenFOAM-2.4.0/applications/utilities/parallelProcessing/decomposePar/Make/options
++++ src/OpenFOAM-2.4.0/applications/utilities/parallelProcessing/decomposePar/Make/options
+@@ -13,4 +13,5 @@ EXE_LIBS = \
+ -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp \
+ -llagrangian \
+ -lmeshTools \
++ -lbz2 \
+ -lregionModels
+--- src/OpenFOAM-2.4.0/applications/utilities/mesh/manipulation/renumberMesh/Make/options
++++ src/OpenFOAM-2.4.0/applications/utilities/mesh/manipulation/renumberMesh/Make/options
+@@ -14,5 +14,6 @@ EXE_LIBS = \
+ -lfiniteVolume \
+ -lgenericPatchFields \
+ -lrenumberMethods \
++ -lbz2 \
+ $(LINK_FLAGS) \
+ -ldecompositionMethods -L$(FOAM_LIBBIN)/dummy -lmetisDecomp -lscotchDecomp
diff --git a/settings.patch b/settings.patch
new file mode 100644
index 00000000000..1c829ef662b
--- /dev/null
+++ b/settings.patch
@@ -0,0 +1,16 @@
+--- src/OpenFOAM-2.3.1/etc/config/settings.sh
++++ src/OpenFOAM-2.3.1/etc/config/settings.sh
+@@ -406,9 +406,12 @@
+
+ # Bit of a hack: strip off 'lib' and hope this is the path to openmpi
+ # include files and libraries.
+- export MPI_ARCH_PATH="${libDir%/*}"
++ # More of a hack: On arch we need to strip off the openmpi library subdir first, so do it twice
++ tmplibDir="${libDir%/*}"
++ export MPI_ARCH_PATH="${tmplibDir%/*}"
+
+ _foamAddLib $libDir
++ unset tmplibDir
+ unset libDir
+ ;;
+