Package: guix-patches;
Reported by: Paul Garlick <pgarlick <at> tourbillion-technology.com>
Date: Fri, 11 Aug 2017 11:08:01 UTC
Severity: normal
Tags: moreinfo, patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
Message #11 received at 28045 <at> debbugs.gnu.org (full text, mbox):
From: Eric Bavier <ericbavier <at> centurylink.net> To: Paul Garlick <pgarlick <at> tourbillion-technology.com> Cc: 28045 <at> debbugs.gnu.org Subject: Re: [bug#28045] [PATCH] gnu: Add openfoam Date: Mon, 14 Aug 2017 21:49:25 -0500
Hello Paul, Thank you for the patch! I started this response before Marius's reply. I hope the two do not overlap too much: On Fri, 11 Aug 2017 12:06:36 +0100 Paul Garlick <pgarlick <at> tourbillion-technology.com> wrote: > * gnu/packages/simulation.scm: New file Would this package not fit nicely in gnu/packages/engineering.scm? > * gnu/packages/patches/openfoam-cleanup.patch: New file See comments below. > * gnu/local.mk(GNU_SYSTEM_MODULES): Add module > (dist_patch_DATA): Add patch ^ ChangeLog conventions would have this opening paren in column 0. > --- > gnu/local.mk | 2 + > gnu/packages/patches/openfoam-cleanup.patch | 251 ++++++++++++++++++++++++++++ > gnu/packages/simulation.scm | 197 ++++++++++++++++++++++ > 3 files changed, 450 insertions(+) > create mode 100644 gnu/packages/patches/openfoam-cleanup.patch > create mode 100644 gnu/packages/simulation.scm > > diff --git a/gnu/local.mk b/gnu/local.mk > index 4b2bdfe37..b00ec1ac7 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -357,6 +357,7 @@ GNU_SYSTEM_MODULES = \ > %D%/packages/shells.scm \ > %D%/packages/shellutils.scm \ > %D%/packages/simh.scm \ > + %D%/packages/simulation.scm \ > %D%/packages/skarnet.scm \ > %D%/packages/skribilo.scm \ > %D%/packages/slang.scm \ > @@ -866,6 +867,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/patches/openfoam-cleanup.patch b/gnu/packages/patches/openfoam-cleanup.patch > new file mode 100644 > index 000000000..b2c0ddcd1 > --- /dev/null > +++ b/gnu/packages/patches/openfoam-cleanup.patch > @@ -0,0 +1,251 @@ > +# This patch removes all need for the ThirdParty files of OpenFOAM > + > +# Derived from easybuild patch: Ward Poelmans <wpoely86 <at> gmail.com> > +# Modified for GNU Guix: Paul Garlick <pgarlick <at> tourbillion-technology.com> > + > +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 true > + then > + echo "Found <readline/readline.h> -- enabling readline support." > + export COMP_FLAGS="-DHAS_READLINE" > +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 > +@@ -5,8 +5,7 @@ > + $(PFLAGS) $(PINC) \ > + -I$(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$(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<scalar> processorWeights; > ++ Field<floatScalar> processorWeights; > + > + // Cell weights (so on the vertices of the dual) > + List<label> cellWeights; > +diff -ur OpenFOAM-4.x-version-4.1.org/wmake/rules/General/CGAL OpenFOAM-4.x-version-4.1/wmake/rules/General/CGAL > +--- OpenFOAM-4.x-version-4.1.org/wmake/rules/General/CGAL > ++++ OpenFOAM-4.x-version-4.1/wmake/rules/General/CGAL > +@@ -6,8 +6,8 @@ > + -I/usr/include > + > + CGAL_LIBS = \ > +- -L$(MPFR_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \ > +- -L$(GMP_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \ > ++ -L$(MPFR_ARCH_PATH)/lib \ > ++ -L$(GMP_ARCH_PATH)/lib \ > + -L$(BOOST_ARCH_PATH)/lib \ > + -L$(CGAL_ARCH_PATH)/lib \ > + -lCGAL \ > diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm > new file mode 100644 > index 000000000..5aa5f8f03 > --- /dev/null > +++ b/gnu/packages/simulation.scm > @@ -0,0 +1,197 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright © 2017 Paul Garlick <pgarlick <at> tourbillion-technology.com> > +;;; > +;;; This file is part of GNU Guix. > +;;; > +;;; GNU Guix is free software; you can redistribute it and/or modify it > +;;; under the terms of the GNU General Public License as published by > +;;; the Free Software Foundation; either version 3 of the License, or (at > +;;; your option) any later version. > +;;; > +;;; GNU Guix is distributed in the hope that it will be useful, but > +;;; WITHOUT ANY WARRANTY; without even the implied warranty of > +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +;;; GNU General Public License for more details. > +;;; > +;;; You should have received a copy of the GNU General Public License > +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. > + > +(define-module (gnu packages simulation) > + #:use-module (gnu packages) > + #:use-module (gnu packages base) > + #:use-module (gnu packages bash) > + #:use-module (gnu packages bison) > + #:use-module (gnu packages boost) > + #:use-module (gnu packages compression) > + #:use-module (gnu packages flex) > + #:use-module (gnu packages gettext) > + #:use-module (gnu packages gcc) > + #:use-module (gnu packages gl) > + #:use-module (gnu packages graphics) > + #:use-module (gnu packages gtk) > + #:use-module (gnu packages linux) > + #:use-module (gnu packages m4) > + #:use-module (gnu packages maths) > + #:use-module (gnu packages mpi) > + #:use-module (gnu packages multiprecision) > + #:use-module (gnu packages ncurses) > + #:use-module (gnu packages readline) > + #:use-module (gnu packages tls) > + #:use-module (gnu packages version-control) > + #:use-module (gnu packages xml) > + #:use-module (gnu packages xorg) > + #:use-module (guix download) > + #:use-module (guix build utils) > + #:use-module (guix build-system gnu) > + #:use-module ((guix licenses) #:prefix license:) > + #:use-module (guix packages) > + #:use-module (guix utils) > + #:use-module (ice-9 ftw) > + #:use-module (ice-9 regex) > + #:use-module (srfi srfi-1)) > + > +(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 "." "-"))) We have a couple other packages that use string-replace-substring, but I personally think it's overkill for single-character replacements like this. FWIW: scheme@(guile-user)> ,time (let loop ((i 10000000)) (when (> i 0) (string-replace-substring version "." "-") (loop (- i 1))))) ;; 12.317051s real time, 16.041830s run time. 5.452976s spent in GC. scheme@(guile-user)> ,time (let loop ((i 10000000)) (when (> i 0) (string-map (lambda (x) (if (eq? x #\.) #\- x)) version) (loop (- i 1))))) ;; 3.586351s real time, 4.464542s run time. 1.285729s spent in GC. > + (file-name (string-append name "-" version ".tar.gz")) > + (sha256 > + (base32 "1hgh2kw7fqv4bfachhbjhw16v8j35jbv6s576fmz4ka2q4ks4wg3")) > + (patches (search-patches "openfoam-cleanup.patch")) > + (modules '((guix build utils))))) The modules field is not needed AFAICT. Usually only when a 'snippet' is used. > + (build-system gnu-build-system) > + (native-inputs > + `(("bison" ,bison))) > + (propagated-inputs > + `(("boost" ,boost) > + ("cgal" ,cgal) > + ("flex" ,flex) > + ("git" ,git) > + ("gmp" ,gmp) > + ("gzip" ,gzip) > + ("gnuplot" ,gnuplot) > + ("libxt" ,libxt) > + ("metis" ,metis) > + ("mpfr" ,mpfr) > + ("ncurses" ,ncurses) > + ("openmpi" ,openmpi) > + ("readline" ,readline) > + ("scotch" ,pt-scotch) > + ("zlib" ,zlib))) > + (arguments > + `(;; executable files and shared libraries are located in the 'platforms' > + ;; subdirectory > + #:strip-directories (list (string-append > + "OpenFOAM-" ,version > + "/platforms/linux64GccDPInt32Opt/bin") > + (string-append > + "OpenFOAM-" ,version > + "/platforms/linux64GccDPInt32Opt/lib")) > + ;; '#:elf-directories' is not recognised here so skip validation phase > + #:validate-runpath? #f > + #:phases (modify-phases %standard-phases > + (add-after 'unpack 'rename-build-directory > + (lambda _ > + (use-modules (ice-9 ftw)) > + (use-modules (ice-9 regex)) > + (chdir "..") > + ;; use 'OpenFOAM-version' convention to match path name > + ;; expectations in the build phase > + (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 build directory > + (rename-file unpack-dir build-dir) > + ;; move to build directory > + (chdir (basename build-dir))))) > + (add-after 'patch-source-shebangs 'set-environment-variables > + (lambda _ > + (let ((libraries '("boost" "cgal" "gmp" "metis" "mpfr" "scotch"))) > + ;; set variables to define store paths > + (for-each (lambda (library) > + (setenv (string-append > + (string-upcase library) "_ROOT") > + (assoc-ref %build-inputs library))) libraries)) > + ;; set variables to define package versions > + (setenv "SCOTCHVERSION" ,(package-version scotch)) > + (setenv "METISVERSION" ,(package-version metis)))) > + (delete 'configure) ; no configure phase > + (delete 'patch-generated-file-shebangs) ; no generated files > + (replace 'build > + (lambda _ > + ;; compile OpenFOAM libraries and applications > + (zero? (system (format #f > + "source ./etc/bashrc && ./Allwmake -j~a" > + (parallel-job-count)))))) > + (add-after 'build 'update-configuration-files > + (lambda _ > + ;; record store paths and package versions in configuration files > + (zero? (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" > + "$CGAL_ROOT" "etc/config.sh/CGAL"))) > + (zero? (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" > + "$BOOST_ROOT" "etc/config.sh/CGAL"))) > + (zero? (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" > + "$METIS_ROOT" "etc/config.sh/metis"))) > + (zero? (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" > + "$METISVERSION" "etc/config.sh/metis"))) > + (zero? (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" > + "$SCOTCH_ROOT" "etc/config.sh/scotch"))) > + (zero? (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" > + "$SCOTCHVERSION" "etc/config.sh/scotch"))) > + (zero? (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" > + "$GMP_ROOT" "etc/config.sh/settings"))) > + (zero? (system (format #f "sed -i 's|~a|'~:*~s'|' ~a" > + "$MPFR_ROOT" "etc/config.sh/settings"))))) Prefer "substitute*" here instead of calling 'sed'. > + (delete 'check) ; no tests to run > + (replace 'install > + (lambda _ > + ;; use 'OpenFOAM-version' convention > + (let ((install-dir (string-append > + %output "/OpenFOAM-" ,version))) > + ;; create install directory > + (mkdir-p install-dir) > + ;; move contents of build directory to install directory > + (copy-recursively "." install-dir))))))) > + ;; Note: tutorial files are installed read-only in /gnu/store. > + ;; To allow write permissions on files copied from the store a > + ;; 'chmod' step is needed before running the applications. For > + ;; example, from a user's login: > + ;; $ source $GUIX_PROFILE/OpenFOAM-4.1/etc/bashrc > + ;; $ mkdir -p $FOAM_RUN > + ;; $ cd $FOAM_RUN > + ;; $ cp -r $FOAM_TUTORIALS/incompressible/simpleFoam/pitzdaily . > + ;; $ cd pitzdaily > + ;; $ chmod -R u+w . > + ;; $ blockMesh > + (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++. Complex governing equations such as the Navier-Stokes equations can be > +solved in integral form. Physical processes such as phase change, droplet > +transport and chemical reaction can be modelled. Numerical methods are > +included to deal with sharp gradients, such as those encountered in flows with > +shock waves and flows with gas/liquid interfaces. > + > +OpenFOAM implements the Finite Volume Method for discretizing the spacial > +dimensions. Computational grids defining geometries in two- and > +three-dimensional domains may be generated by the included blockMesh and > +snappyHexMesh routines or imported from external grid-generation packages. > +Grids may be unstructured in layout and may contain any combination of > +polyhedral cells. Large problems may be split into smaller, connected > +problems for efficient solution on parallel systems") This description is a bit long. Could it be condensed? E.g. I think the second paragraph is not necessary here. > + (license license:gpl3+) > + (home-page "https://openfoam.org"))) Could you send an updated patch addressing these and Marius's concerns? Thanks, `~Eric
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.