ENH: relocate WM_PROJECT_SITE default (issue #1050)

- was PREFIX/site, now PROJECT/site

  This avoids several issues when installing OpenFOAM in clusters
  without an intermediate OpenFOAM-specific installation prefix.

  The 'site' directory may have a reserved meaning in these situations
  and it is undesirable to 'leak' upwards into the parent directory to
  look for configuration files.

  Placing the default within the project directory avoids this.
  Alternative locations can be given via the WM_PROJECT_SITE variable.
This commit is contained in:
Mark Olesen 2018-11-29 18:04:44 +01:00
parent be46f96862
commit 9e094f1f07
11 changed files with 23 additions and 25 deletions

View File

@ -31,7 +31,7 @@
#------------------------------------------------------------------------------
Script=${0##*/}
toolsDir=${0%/*}/tools
siteDir=${WM_PROJECT_SITE:-${WM_PROJECT_INST_DIR:-<unknown>}/site}
siteDir="${WM_PROJECT_SITE:-${WM_PROJECT_DIR:-<unknown>}/site}"
userDir=$HOME/.OpenFOAM
usage() {

View File

@ -30,9 +30,10 @@
# - requires rsync
#
#------------------------------------------------------------------------------
siteDir=${WM_PROJECT_SITE:-${WM_PROJECT_INST_DIR:-<unknown>}/site}
userDir=$HOME/.OpenFOAM
version=${WM_PROJECT_VERSION:-unknown}
siteDir="${WM_PROJECT_SITE:-${WM_PROJECT_DIR:-<unknown>}/site}"
userDir="$HOME/.OpenFOAM"
version="${WM_PROJECT_VERSION:-unknown}"
templateDir="appTemplates"
#------------------------------------------------------------------------------

View File

@ -42,11 +42,11 @@
# The suffix value should normally include "platforms/$WM_OPTIONS"
#
# Example
# . /path/change-sitedir.sh -prefix -platforms
# . /path/change-sitedir.sh -project -platforms
#
# corresponds to the standard site location:
#
# $WM_PROJECT_INST_DIR/site{/$WM_PROJECT_VERSION/platforms/$WM_OPTIONS}
# $WM_PROJECT_DIR/site{/$WM_PROJECT_VERSION/platforms/$WM_OPTIONS}
#
#------------------------------------------------------------------------------

View File

@ -115,9 +115,9 @@
// - ~/.OpenFOAM/
// <em>for version-independent files</em>
// -# group settings
// - $WM_PROJECT_INST_DIR/site/\<VERSION\>
// - $WM_PROJECT_DIR/site/\<VERSION\>
// <em>for version-specific files</em>
// - $WM_PROJECT_INST_DIR/site/
// - $WM_PROJECT_DIR/site/
// <em>for version-independent files</em>
// -# other (shipped) settings
// - $WM_PROJECT_DIR/etc/

View File

@ -134,7 +134,9 @@ export WM_THIRD_PARTY_DIR=$WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION
export WM_PROJECT_USER_DIR=$HOME/$WM_PROJECT/$USER-$WM_PROJECT_VERSION
# [WM_PROJECT_SITE] - Location of site-specific (group) files
# default (unset) implies WM_PROJECT_INST_DIR/site
# Default (unset) implies WM_PROJECT_DIR/site
# Normally defined in calling environment
if [ -d "$WM_PROJECT_SITE" ]
then
export WM_PROJECT_SITE

View File

@ -154,7 +154,7 @@ setenv FOAM_EXT_LIBBIN $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER$WM_PRE
if ( $?WM_PROJECT_SITE ) then
set siteDir=$WM_PROJECT_SITE
else
set siteDir=$WM_PROJECT_INST_DIR/site
set siteDir=$WM_PROJECT_DIR/site
endif
# Shared site (group) executables/libraries
@ -177,7 +177,6 @@ endif
if ( -d "$siteDir/$WM_PROJECT_VERSION/bin" ) then # Version-specific
_foamAddPath "$siteDir/$WM_PROJECT_VERSION/bin"
endif
unset siteDir
_foamAddPath ${FOAM_USER_APPBIN}:${FOAM_SITE_APPBIN}:${FOAM_APPBIN}
_foamAddLib $FOAM_LIBBIN/dummy # Dummy versions of external libraries last
@ -333,7 +332,7 @@ endsw
# Cleanup
# ~~~~~~~
unset archDir
unset archDir siteDir
unset gcc_version gccDir
unset gmp_version gmpDir mpfr_version mpfrDir mpc_version mpcDir
unset clang_version clangDir

View File

@ -148,7 +148,7 @@ if [ -n "$WM_PROJECT_SITE" ]
then
siteDir=$WM_PROJECT_SITE
else
siteDir=$WM_PROJECT_INST_DIR/site
siteDir=$WM_PROJECT_DIR/site
fi
# Shared site (group) executables/libraries
@ -173,7 +173,6 @@ if [ -d "$siteDir/$WM_PROJECT_VERSION/bin" ] # Version-specific
then
_foamAddPath "$siteDir/$WM_PROJECT_VERSION/bin"
fi
unset siteDir
_foamAddPath $FOAM_USER_APPBIN:$FOAM_SITE_APPBIN:$FOAM_APPBIN
_foamAddLib $FOAM_LIBBIN/dummy # Dummy versions of external libraries last
@ -321,7 +320,7 @@ esac
# Cleanup
# ~~~~~~~
unset archDir
unset archDir siteDir
unset gcc_version gccDir
unset gmp_version gmpDir mpfr_version mpfrDir mpc_version mpcDir
unset clang_version clangDir

View File

@ -145,7 +145,9 @@ setenv WM_THIRD_PARTY_DIR $WM_PROJECT_INST_DIR/ThirdParty-$WM_PROJECT_VERSION
setenv WM_PROJECT_USER_DIR "$HOME/$WM_PROJECT/$LOGNAME-$WM_PROJECT_VERSION"
# [WM_PROJECT_SITE] - Location of site-specific (group) files
# default (unset) implies WM_PROJECT_INST_DIR/site
# Default (unset) implies WM_PROJECT_DIR/site
# Normally defined in calling environment
if ( $?WM_PROJECT_SITE ) then
set foamOldDirs="$WM_PROJECT_SITE $foamOldDirs"
if ( ! -d "$WM_PROJECT_SITE" ) unsetenv WM_PROJECT_SITE

View File

@ -68,7 +68,7 @@ static inline bool userResourceDir(Foam::fileName& queried)
// Corresponds to foamEtcFile -mode=g
// Looks for
// - $WM_PROJECT_SITE
// - $WM_PROJECT_INST_DIR/site
// - $WM_PROJECT_DIR/site
static inline bool groupResourceDir(Foam::fileName& queried)
{
#ifdef FOAM_RESOURCE_SITE_ENVNAME

View File

@ -71,7 +71,7 @@ fileNameList findEtcDirs
//
// \note Treatment of empty or undefined variables
// - \b \$WM_PROJECT_VERSION : Use compile-time value of OPENFOAM
// - \b \$WM_PROJECT_SITE : Use $WM_PROJECT_INST_DIR/site
// - \b \$WM_PROJECT_SITE : Use $WM_PROJECT_DIR/site
//
// \return The list of full paths of all the matching files or
// an empty list if the name cannot be found.

View File

@ -66,14 +66,9 @@ SourceFiles
//- when the directory corresponding to FOAM_RESOURCE_SITE_ENVNAME is empty.
// The fallback search appends "/site" to the directory.
//
// Default: "WM_PROJECT_INST_DIR"
//
// \note If packaging OpenFOAM into a single directory (eg, spack, EasyBuild),
// this should be changed to "WM_PROJECT_DIR" to avoid searching within
// the prefix (parent) directory.
//
// Default: "WM_PROJECT_DIR"
// Used by foamEtcFiles() and stringOps::expand()
#define FOAM_RESOURCE_SITE_FALLBACK_ENVNAME "WM_PROJECT_INST_DIR"
#define FOAM_RESOURCE_SITE_FALLBACK_ENVNAME "WM_PROJECT_DIR"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //