From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Garlick Subject: [PATCH] gnu: Add openfoam Date: Sun, 23 Jul 2017 21:11:38 +0100 Message-ID: <20170723201138.18131-1-pgarlick@tourbillion-technology.com> Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57940) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dZNFW-0000iC-38 for guix-devel@gnu.org; Sun, 23 Jul 2017 16:13:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dZNFR-0003QD-PF for guix-devel@gnu.org; Sun, 23 Jul 2017 16:13:10 -0400 Received: from smtp.hosts.co.uk ([85.233.160.19]:11504) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dZNFR-0003OZ-Dg for guix-devel@gnu.org; Sun, 23 Jul 2017 16:13:05 -0400 List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org Cc: Paul Garlick * gnu/packages/maths.scm(openfoam): Add it * gnu/packages/patches/openfoam-cleanup.patch: New file * gnu/local.mk(dist_patch_DATA): Add patch --- gnu/local.mk | 1 + gnu/packages/maths.scm | 195 ++++++++++++++++++++ gnu/packages/patches/openfoam-cleanup.patch | 267 ++++++++++++++++++++++++++++ 3 files changed, 463 insertions(+) create mode 100644 gnu/packages/patches/openfoam-cleanup.patch diff --git a/gnu/local.mk b/gnu/local.mk index 4b2bdfe37..a7c456c1d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -866,6 +866,7 @@ dist_patch_DATA = \ %D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/openscenegraph-ffmpeg3.patch \ %D%/packages/patches/openexr-missing-samples.patch \ + %D%/packages/patches/openfoam-cleanup.patch \ %D%/packages/patches/openjpeg-CVE-2016-9850-CVE-2016-9851.patch \ %D%/packages/patches/openjpeg-CVE-2016-9572-CVE-2016-9573.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \ diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 88a46f8e9..9eaa606a3 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -47,7 +47,9 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system ocaml) #:use-module (guix build-system r) + #:use-module (guix build-system trivial) #:use-module (gnu packages algebra) + #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) @@ -64,10 +66,12 @@ #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages ghostscript) + #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages less) + #:use-module (gnu packages linux) #:use-module (gnu packages lisp) #:use-module (gnu packages logging) #:use-module (gnu packages lua) @@ -79,6 +83,7 @@ #:use-module (gnu packages m4) #:use-module (gnu packages mpi) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages ncurses) #:use-module (gnu packages netpbm) #:use-module (gnu packages ocaml) #:use-module (gnu packages pcre) @@ -94,9 +99,11 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages tex) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) #:use-module (gnu packages zip) + #:use-module (ice-9 ftw) #:use-module (srfi srfi-1)) (define-public aris @@ -1174,6 +1181,194 @@ modules is done either interactively using the graphical user interface or in ASCII text files using Gmsh's own scripting language.") (license license:gpl2+))) +(define-public openfoam + (package + (name "openfoam") + (version "4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://dl.openfoam.org/source/" + (string-replace-substring version "." "-"))) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1hgh2kw7fqv4bfachhbjhw16v8j35jbv6s576fmz4ka2q4ks4wg3")) + (patches (search-patches "openfoam-cleanup.patch")) + (modules '((guix build utils))))) + (build-system trivial-build-system) + (inputs + `(("coreutils" ,(@ (gnu packages base) coreutils)) + ("diffutils" ,(@ (gnu packages base) diffutils)) + ("findutils" ,(@ (gnu packages base) findutils)) + ("git" ,git) + ("grep" ,(@ (gnu packages base) grep)) + ("ld-wrapper" ,((@ (gnu packages base) make-ld-wrapper) + "ld-wrapper" + #:binutils (@ (gnu packages base) binutils))) + ("linux-libre-headers" ,linux-libre-headers) + ("locales" ,(@ (gnu packages base) glibc-utf8-locales)) + ("patch" ,(@ (gnu packages base) patch)) + ("sed" ,(@ (gnu packages base) sed)) + ("tar" ,(@ (gnu packages base) tar)) + ("xz" ,xz))) + (native-inputs + `(("bash" ,bash) + ("bison" ,bison))) + (propagated-inputs + `(("binutils" ,(@ (gnu packages base) binutils)) + ("boost" ,boost) + ("cgal" ,cgal) + ("flex" ,flex) + ("gcc" ,gcc) + ("glibc" ,(@ (gnu packages base) glibc)) + ("gmp" ,gmp) + ("gzip" ,gzip) + ("gnuplot" ,gnuplot) + ("libxt" ,libxt) + ("make" ,(@ (gnu packages base) gnu-make)) + ("metis" ,metis) + ("mpfr" ,mpfr) + ("ncurses" ,ncurses) + ("openmpi" ,openmpi) + ("readline" ,readline) + ("pt-scotch" ,pt-scotch) + ("scotch" ,scotch) + ("zlib" ,zlib))) + (arguments + `(#:modules ((guix build utils) + (ice-9 ftw) + (ice-9 regex)) + #:builder (begin + (use-modules (guix build utils)) + (use-modules (ice-9 ftw)) + (use-modules (ice-9 regex)) + (let* ((input-path (lambda (binary path) + (string-append + (assoc-ref %build-inputs binary) + path ":"))) + (binaries '("bash" "ld-wrapper" "binutils" + "coreutils" "findutils" "flex" "git" + "gcc" "grep" "make" "openmpi" "sed" + "tar" "xz")) + (binary-directories (string-concatenate + (map-in-order (lambda (binary) + (input-path binary "/bin")) + binaries)))) + ;; set PATH environment variable for unpacking and building + (setenv "PATH" (string-drop-right binary-directories 1)) + ;; unpack source code + (system* "tar" "xvf" (assoc-ref %build-inputs "source")) + ) + (let ((unpack-dir (string-append + (getcwd) "/" + (list-ref (scandir (getcwd) (lambda (name) + (string-match "^OpenFOAM" name))) 0))) + (build-dir (string-append + (getcwd) "/OpenFOAM-" ,version))) + ;; re-name top level directory + (rename-file unpack-dir build-dir) + ;; move to top level directory + (chdir (basename build-dir)) + ;; replace interpreter paths in scripts + (patch-shebang "Allwmake") + (for-each patch-shebang + (find-files "applications" + (format #f "(~a|~a|~a|~a)$" + "Allwmake" "Allwclean" "Allrun" + "ensightFoamReaderTest"))) + (for-each patch-shebang + (find-files "bin")) + (for-each patch-shebang + (find-files "doc" + "(Allwmake|find-its)$")) + (for-each patch-shebang + (find-files "etc")) + (for-each patch-shebang + (find-files "src" + "(Allwmake|Allwclean|AllwmakeLnInclude)$")) + (for-each patch-shebang + (find-files "tutorials" + (format #f "(~a|~a|~a|~a|~a|~a|~a|~a|~a|~a|~a)$" + "Allclean" "Allmesh" "Allrun.*" "Alltest" + "makeMesh" "createGraph.*" "extractHeightData" + "patchifyObstacles" "sampleCone" + "externalSolver" "surfaceProcess.sh"))) + (for-each patch-shebang + (find-files "wmake")) + ) + (let ((install-dir (string-append + %output "/OpenFOAM-" ,version)) + (libraries '("boost" "cgal" "flex" "glibc" "gmp" + "linux-libre-headers" "metis" "mpfr" + "pt-scotch" "readline" "scotch" "zlib"))) + ;; set environment variables to define library versions + (setenv "SCOTCHVERSION" ,(package-version scotch)) + (setenv "METISVERSION" ,(package-version metis)) + ;; set environment variables to define library paths + (map (lambda (library) + (setenv (string-append + (string-upcase library) "_ROOT") + (assoc-ref %build-inputs library))) libraries) + (setenv "LIBRARY_PATH" (string-append + (getenv "GLIBC_ROOT") "/lib" ":" + (getenv "ZLIB_ROOT") "/lib")) + ;; set environment variables to define header paths + (setenv "CPATH" (string-append + (getenv "LINUX-LIBRE-HEADERS_ROOT") + "/include")) + (setenv "CPLUS_INCLUDE_PATH" (string-append + (getenv "METIS_ROOT") "/include" ":" + (getenv "FLEX_ROOT") "/include" ":" + (getenv "ZLIB_ROOT") "/include")) + ;; compile OpenFOAM libraries and applications + (system (format #f "source ./etc/bashrc && ./Allwmake -j~a" + (parallel-job-count))) + ;; update configuration files + (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" + "$CGAL_ROOT" "etc/config.sh/CGAL")) + (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" + "$BOOST_ROOT" "etc/config.sh/CGAL")) + (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" + "$METIS_ROOT" "etc/config.sh/metis")) + (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" + "$METISVERSION" "etc/config.sh/metis")) + (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" + "$SCOTCH_ROOT" "etc/config.sh/scotch")) + (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" + "$SCOTCHVERSION" "etc/config.sh/scotch")) + (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" + "$GMP_ROOT" "etc/config.sh/settings")) + (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" + "$MPFR_ROOT" "etc/config.sh/settings")) + ;; set write permission on tutorial files + (system (format #f "chmod -R u+w ~a" "tutorials")) + ;; create install directory + (mkdir-p install-dir) + ;; move contents of build directory to install directory + (copy-recursively "." install-dir) + ) + ) + ) + ) + (native-search-paths + ;; define the FOAM_INST_DIR variable + (list (search-path-specification + (variable "FOAM_INST_DIR") + (files '("."))))) + (synopsis "Framework for numerical simulation of fluid flow") + (description "OpenFOAM provides a set of solvers and methods for tackling +problems in the field of Computational Fluid Dynamics (CFD). It is written in +C++. Discrete versions of governing equations such as the Navier-Stokes +equations can be solved in integral form. OpenFOAM implements the Finite +Volume Method for discretizing the spacial dimensions. Grids are accepted that +define complex geometries in two- and three-dimensional domains. Grids may be +unstructured in layout and may contain any combination of polyhedral cells. +Large problems can be split into connected smaller problems for efficient +solution on parallel systems") + (license license:gpl3+) + (home-page "https://openfoam.org"))) + (define-public maxflow (package (name "maxflow") diff --git a/gnu/packages/patches/openfoam-cleanup.patch b/gnu/packages/patches/openfoam-cleanup.patch new file mode 100644 index 000000000..e7760b7a5 --- /dev/null +++ b/gnu/packages/patches/openfoam-cleanup.patch @@ -0,0 +1,267 @@ +# This patch removes all need for the ThirdParty files of OpenFOAM + +# Derived from easybuild patch: Ward Poelmans +# Modified for GNU Guix: Paul Garlick + +diff -ur OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Allwmake OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake +--- OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Allwmake ++++ OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Allwmake +@@ -9,7 +9,7 @@ + # + # use readline if available + # +-if [ -f /usr/include/readline/readline.h ] ++if [ -f $READLINE_ROOT/include/readline/readline.h ] + then + echo "Found -- enabling readline support." + export COMP_FLAGS="-DHAS_READLINE" +diff -ur OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Make/options OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Make/options +--- OpenFOAM-4.x-version-4.1.org/applications/utilities/mesh/manipulation/setSet/Make/options ++++ OpenFOAM-4.x-version-4.1/applications/utilities/mesh/manipulation/setSet/Make/options +@@ -1,7 +1,9 @@ + EXE_INC = \ + -I$(LIB_SRC)/meshTools/lnInclude \ ++ -I$(READLINE_ROOT)/include \ + $(COMP_FLAGS) + + EXE_LIBS = \ ++ -L$(READLINE_ROOT)/lib \ + -lmeshTools \ + $(LINK_FLAGS) +diff -ur OpenFOAM-4.x-version-4.1.org/etc/bashrc OpenFOAM-4.x-version-4.1/etc/bashrc +--- OpenFOAM-4.x-version-4.1.org/etc/bashrc ++++ OpenFOAM-4.x-version-4.1/etc/bashrc +@@ -43,8 +43,10 @@ + # Please set to the appropriate path if the default is not correct. + # + [ $BASH_SOURCE ] && \ +-export FOAM_INST_DIR=$(cd ${BASH_SOURCE%/*/*/*} && pwd -P) || \ ++export FOAM_INST_DIR=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P) || \ + export FOAM_INST_DIR=$HOME/$WM_PROJECT ++# For GNU Guix: set initially for build then re-set at runtime ++# + # export FOAM_INST_DIR=~$WM_PROJECT + # export FOAM_INST_DIR=/opt/$WM_PROJECT + # export FOAM_INST_DIR=/usr/local/$WM_PROJECT +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/CGAL OpenFOAM-4.x-version-4.1/etc/config.sh/CGAL +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/CGAL ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/CGAL +@@ -36,37 +36,7 @@ + # + #------------------------------------------------------------------------------ + +-boost_version=boost-system +-cgal_version=cgal-system +-#cgal_version=CGAL-4.8 +- +-if [ -z "$SOURCE_CGAL_VERSIONS_ONLY" ] +-then +- +- common_path=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER +- +- export BOOST_ARCH_PATH=$common_path/$boost_version +- export CGAL_ARCH_PATH=$common_path/$cgal_version +- +- if [ "$FOAM_VERBOSE" -a "$PS1" ] +- then +- echo "Using CGAL and boost" 1>&2 +- echo " $cgal_version at $CGAL_ARCH_PATH" 1>&2 +- echo " $boost_version at $BOOST_ARCH_PATH" 1>&2 +- fi +- +- if [ -d "$CGAL_ARCH_PATH" -a "$cgal_version" != "cgal-system" ] +- then +- _foamAddLib $CGAL_ARCH_PATH/lib +- fi +- +- if [ -d "$BOOST_ARCH_PATH" -a "$boost_version" != "boost-system" ] +- then +- _foamAddLib $BOOST_ARCH_PATH/lib +- fi +- +- unset boost_version cgal_version common_path +- +-fi ++export CGAL_ARCH_PATH=$CGAL_ROOT ++export BOOST_ARCH_PATH=$BOOST_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/gperftools OpenFOAM-4.x-version-4.1/etc/config.sh/gperftools +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/gperftools 2016-10-16 16:11:45.000000000 +0200 ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/gperftools 2017-04-10 14:51:01.473221230 +0200 +@@ -29,13 +29,13 @@ + # + #------------------------------------------------------------------------------ + +-version=svn +-gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER +- +-GPERFTOOLS_VERSION=gperftools-$version +-GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION +- +-export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH +-export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH ++# version=svn ++# gperftools_install=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER ++# ++# GPERFTOOLS_VERSION=gperftools-$version ++# GPERFTOOLS_ARCH_PATH=$gperftools_install/$GPERFTOOLS_VERSION ++# ++# export PATH=$GPERFTOOLS_ARCH_PATH/bin:$PATH ++# export LD_LIBRARY_PATH=$GPERFTOOLS_ARCH_PATH/lib:$LD_LIBRARY_PATH + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/metis OpenFOAM-4.x-version-4.1/etc/config.sh/metis +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/metis ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/metis +@@ -34,7 +34,7 @@ + # + #------------------------------------------------------------------------------ + +-export METIS_VERSION=metis-5.1.0 +-export METIS_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$METIS_VERSION ++export METIS_VERSION=metis-$METISVERSION ++export METIS_ARCH_PATH=$METIS_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/scotch OpenFOAM-4.x-version-4.1/etc/config.sh/scotch +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/scotch ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/scotch +@@ -37,7 +37,7 @@ + # + #------------------------------------------------------------------------------ + +-export SCOTCH_VERSION=scotch_6.0.3 +-export SCOTCH_ARCH_PATH=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRECISION_OPTION$WM_LABEL_OPTION/$SCOTCH_VERSION ++export SCOTCH_VERSION=scotch_$SCOTCHVERSION ++export SCOTCH_ARCH_PATH=$SCOTCH_ROOT + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/etc/config.sh/settings OpenFOAM-4.x-version-4.1/etc/config.sh/settings +--- OpenFOAM-4.x-version-4.1.org/etc/config.sh/settings ++++ OpenFOAM-4.x-version-4.1/etc/config.sh/settings +@@ -279,6 +279,9 @@ + ;; + system) + # Use system compiler ++ # Use system GMP and MPFR packages ++ export GMP_ARCH_PATH=$GMP_ROOT ++ export MPFR_ARCH_PATH=$MPFR_ROOT + ;; + *) + echo "Warn: WM_COMPILER_TYPE='$WM_COMPILER_TYPE' is unsupported" 1>&2 +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/ptscotchDecomp/Make/options OpenFOAM-4.x-version-4.1/src/parallel/decompose/ptscotchDecomp/Make/options +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/ptscotchDecomp/Make/options ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/ptscotchDecomp/Make/options +@@ -3,10 +3,9 @@ + + EXE_INC = \ + $(PFLAGS) $(PINC) \ +- -I$(SCOTCH_ROOT)/include \ ++ -I$(PT-SCOTCH_ROOT)/include \ + -I$(SCOTCH_ARCH_PATH)/include/$(FOAM_MPI) \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt ++ -L$(PT-SCOTCH_ROOT)/lib -L$(MPI_ARCH_PATH)/lib -lptscotch -lptscotcherrexit -lscotch ${LINK_FLAGS} -lrt +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/scotchDecomp/Make/options OpenFOAM-4.x-version-4.1/src/parallel/decompose/scotchDecomp/Make/options +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/scotchDecomp/Make/options ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/scotchDecomp/Make/options +@@ -9,8 +9,7 @@ + $(PFLAGS) $(PINC) \ + -I$(SCOTCH_ROOT)/include \ + -I$(SCOTCH_ARCH_PATH)/include \ +- -I/usr/include/scotch \ + -I../decompositionMethods/lnInclude + + LIB_LIBS = \ +- -L$(SCOTCH_ROOT)/lib -L$(FOAM_EXT_LIBBIN) -lscotch -lscotcherrexit -lrt ++ -L$(SCOTCH_ROOT)/lib -lscotch -lscotcherrexit -lrt +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/src/Makefile OpenFOAM-4.x-version-4.1/wmake/src/Makefile +--- OpenFOAM-4.x-version-4.1.org/wmake/src/Makefile ++++ OpenFOAM-4.x-version-4.1/wmake/src/Makefile +@@ -33,7 +33,7 @@ + # The Makefile use a POSIX shell + #------------------------------------------------------------------------------ + +-SHELL = /bin/sh ++# SHELL = /bin/sh + + #------------------------------------------------------------------------------ + # Unset suffices list (suffix rules are not used) +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/makefiles/general OpenFOAM-4.x-version-4.1/wmake/makefiles/general +--- OpenFOAM-4.x-version-4.1.org/wmake/makefiles/general ++++ OpenFOAM-4.x-version-4.1/wmake/makefiles/general +@@ -33,7 +33,7 @@ + # The Makefile uses a POSIX shell + #------------------------------------------------------------------------------ + +-SHELL = /bin/sh ++# SHELL = /bin/sh + + + #------------------------------------------------------------------------------ +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmake OpenFOAM-4.x-version-4.1/wmake/wmake +--- OpenFOAM-4.x-version-4.1.org/wmake/wmake ++++ OpenFOAM-4.x-version-4.1/wmake/wmake +@@ -163,7 +163,7 @@ + then + if [ "$WM_NCOMPPROCS" -gt 1 -a ! "$MAKEFLAGS" ] + then +- lockDir=$HOME/.$WM_PROJECT/.wmake ++ lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + + if [ -d $lockDir ] + then +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmakeScheduler OpenFOAM-4.x-version-4.1/wmake/wmakeScheduler +--- OpenFOAM-4.x-version-4.1.org/wmake/wmakeScheduler ++++ OpenFOAM-4.x-version-4.1/wmake/wmakeScheduler +@@ -53,7 +53,7 @@ + # csh sets HOST, bash sets HOSTNAME + : ${HOST:=$HOSTNAME} + +-lockDir=$HOME/.$WM_PROJECT/.wmake ++lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + + # Fallback - 1 core on current host + : ${WM_HOSTS:=$HOST:1} +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/wmakeSchedulerUptime OpenFOAM-4.x-version-4.1/wmake/wmakeSchedulerUptime +--- OpenFOAM-4.x-version-4.1.org/wmake/wmakeSchedulerUptime ++++ OpenFOAM-4.x-version-4.1/wmake/wmakeSchedulerUptime +@@ -53,7 +53,7 @@ + # csh sets HOST, bash sets HOSTNAME + : ${HOST:=$HOSTNAME} + +-lockDir=$HOME/.$WM_PROJECT/.wmake ++lockDir=$(cd $(dirname $BASH_SOURCE)/../.. && pwd -P)/.$WM_PROJECT/.wmake + # Fallback - 1 core on current host + : ${WM_HOSTS:=$HOST:1} + +diff -ur OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/metisDecomp/metisDecomp.C OpenFOAM-4.x-version-4.1/src/parallel/decompose/metisDecomp/metisDecomp.C +--- OpenFOAM-4.x-version-4.1.org/src/parallel/decompose/metisDecomp/metisDecomp.C ++++ OpenFOAM-4.x-version-4.1/src/parallel/decompose/metisDecomp/metisDecomp.C +@@ -67,7 +67,7 @@ + + // Processor weights initialised with no size, only used if specified in + // a file +- Field processorWeights; ++ Field processorWeights; + + // Cell weights (so on the vertices of the dual) + List