diff options
author | George Eleftheriou | 2015-07-16 11:10:23 +0200 |
---|---|---|
committer | George Eleftheriou | 2015-07-16 11:10:23 +0200 |
commit | e667a7260a317df2c8079263808cafbf5177656a (patch) | |
tree | 9365c3889d3d76fd0bc531665444274bb6c2ff76 | |
download | aur-e667a7260a317df2c8079263808cafbf5177656a.tar.gz |
Initial import
-rw-r--r-- | .SRCINFO | 31 | ||||
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | PKGBUILD | 92 | ||||
-rw-r--r-- | decomp-options.patch | 12 | ||||
-rw-r--r-- | openfoam.install | 17 | ||||
-rw-r--r-- | paraFoam.patch | 49 | ||||
-rw-r--r-- | scotch-options.patch | 25 | ||||
-rw-r--r-- | settings.patch | 16 |
8 files changed, 249 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..b4db4d35508c --- /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 000000000000..3b8b1893fb74 --- /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 000000000000..2b096bea588c --- /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 000000000000..34777a67d123 --- /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 000000000000..b37ae23a2c4d --- /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 000000000000..cad4755e499e --- /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 000000000000..382e9df4aef7 --- /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 000000000000..1c829ef662b1 --- /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 + ;; + |