Index: ../trunk-jpl/packagers/linux/package-issm-linux-binaries.sh =================================================================== --- ../trunk-jpl/packagers/linux/package-issm-linux-binaries.sh (revision 25243) +++ ../trunk-jpl/packagers/linux/package-issm-linux-binaries.sh (revision 25244) @@ -1,6 +1,11 @@ #!/bin/bash +# Script to test, package, and transfer distributable to ISSM Web site. +# Corresponds with build generated by configuration in +# $ISSM_DIR/jenkins/ross-debian_linux-binaries. +# + ## Constants # LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself @@ -11,6 +16,10 @@ TARBALL_NAME="issm-linux" TARBALL="${TARBALL_NAME}.tar.gz" +## Environment +# +export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages' + # Check if MATLAB exists if ! [ -d ${MATLAB_PATH} ]; then echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again." @@ -58,7 +67,7 @@ # Check that MATLAB did not exit in error matlabExitCode=`echo $?` -matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l` +matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l` if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then echo "----------MATLAB exited in error!----------" Index: ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh =================================================================== --- ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh (revision 25243) +++ ../trunk-jpl/packagers/linux/package-issm-linux-binaries-solid_earth.sh (revision 25244) @@ -1,6 +1,11 @@ #!/bin/bash +# Script to test, package, and transfer distributable to ISSM Web site. +# Corresponds with build generated by configuration in +# $ISSM_DIR/jenkins/ross-debian_linux-binaries-solid_earth. +# + ## Constants # LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself @@ -12,6 +17,10 @@ TARBALL_NAME="issm-linux-solid_earth" TARBALL="${TARBALL_NAME}.tar.gz" +## Environment +# +export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages' + # Check if MATLAB exists if ! [ -d ${MATLAB_PATH} ]; then echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again." @@ -87,7 +96,7 @@ # Check that MATLAB did not exit in error matlabExitCode=`echo $?` -matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l` +matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l` if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then echo "----------MATLAB exited in error!----------" Index: ../trunk-jpl/packagers/linux/package-issm-linux-binaries-with_dakota.sh =================================================================== --- ../trunk-jpl/packagers/linux/package-issm-linux-binaries-with_dakota.sh (revision 25243) +++ ../trunk-jpl/packagers/linux/package-issm-linux-binaries-with_dakota.sh (revision 25244) @@ -1,6 +1,11 @@ #!/bin/bash +# Script to test, package, and transfer distributable to ISSM Web site. +# Corresponds with build generated by configuration in +# $ISSM_DIR/jenkins/ross-debian_linux-binaries-with_dakota. +# + ## Constants # LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself @@ -12,6 +17,10 @@ TARBALL_NAME="issm-linux-with_dakota" TARBALL="${TARBALL_NAME}.tar.gz" +## Environment +# +export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages' + # Check if MATLAB exists if ! [ -d ${MATLAB_PATH} ]; then echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again." @@ -61,7 +70,7 @@ # Check that MATLAB did not exit in error matlabExitCode=`echo $?` -matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l` +matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l` if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then echo "----------MATLAB exited in error!----------" Index: ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh =================================================================== --- ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh (nonexistent) +++ ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh (revision 25244) @@ -0,0 +1,175 @@ +#!/bin/bash + + +# Script to test, package, and transfer distributable to ISSM Web site. +# Corresponds with build generated by configuration in +# $ISSM_DIR/jenkins/pine_island-mac-binaries-solid_earth. +# + +## Constants +# +MATLAB_NROPTIONS="'benchmark','slr'" +MATLAB_PATH="/Applications/MATLAB_R2018a.app" +PACKAGE="ISSM-Solid_Earth" # Name of directory to copy distributable files to +PYTHON_NROPTIONS="--benchmark slr" +TARBALL_NAME="issm-linux-solid_earth" +TARBALL="${TARBALL_NAME}.tar.gz" + +## Environment +# +export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages' + +# Check if MATLAB exists +if ! [ -d ${MATLAB_PATH} ]; then + echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again." + exit 1 +fi + +# Clean up from previous packaging +echo "Cleaning up existing assets" +cd ${ISSM_DIR} +rm -rf ${PACKAGE} +mkdir ${PACKAGE} + +# Add/modify required binaries +cd ${ISSM_DIR}/bin + +echo "Modifying generic" +cat generic_static.m | sed -e "s/generic_static/generic/g" > generic.m +cat generic_static.py | sed -e "s/generic_static/generic/g" > generic.py + +echo "Moving MPICH binaries to bin/" +if [ -f ${ISSM_DIR}/externalpackages/petsc/install/bin/mpiexec ]; then + cp ${ISSM_DIR}/externalpackages/petsc/install/bin/mpiexec . + cp ${ISSM_DIR}/externalpackages/petsc/install/bin/hydra_pmi_proxy . +elif [ -f ${ISSM_DIR}/externalpackages/mpich/install/bin/mpiexec ]; then + cp ${ISSM_DIR}/externalpackages/mpich/install/bin/mpiexec . + cp ${ISSM_DIR}/externalpackages/mpich/install/bin/hydra_pmi_proxy . +else + echo "MPICH not found" + exit 1 +fi + +echo "Moving GDAL binaries to bin/" +if [ -f ${ISSM_DIR}/externalpackages/gdal/install/bin/gdal-config ]; then + cp ${ISSM_DIR}/externalpackages/gdal/install/bin/gdalsrsinfo . + cp ${ISSM_DIR}/externalpackages/gdal/install/bin/gdaltransform . +else + echo "GDAL not found" + exit 1 +fi + +echo "Moving GMT binaries to bin/" +if [ -f ${ISSM_DIR}/externalpackages/gmt/install/bin/gmt-config ]; then + cp ${ISSM_DIR}/externalpackages/gmt/install/bin/gmt . + cp ${ISSM_DIR}/externalpackages/gmt/install/bin/gmtselect . +else + echo "GMT not found" + exit 1 +fi + +echo "Moving Gmsh binaries to bin/" +if [ -f ${ISSM_DIR}/externalpackages/gmsh/install/bin/gmsh ]; then + cp ${ISSM_DIR}/externalpackages/gmsh/install/bin/gmsh . +else + echo "Gmsh not found" + exit 1 +fi + +# Run tests +echo "Running tests" +cd ${ISSM_DIR}/test/NightlyRun + +# Check that MATLAB tests run +echo "Running MATLAB tests" + +rm matlab.log 2> /dev/null + +# Run MATLAB tests redirecting output to logfile and suppressing output to console +${MATLAB_PATH}/bin/matlab -nojvm -nosplash -r "try, addpath ${ISSM_DIR}/bin ${ISSM_DIR}/lib; runme(${MATLAB_NROPTIONS}); exit; catch me,fprintf('%s',getReport(me)); exit; end" -logfile matlab.log &> /dev/null + +# Check that MATLAB did not exit in error +matlabExitCode=`echo $?` +matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l` + +if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then + echo "----------MATLAB exited in error!----------" + cat matlab.log + echo "-----------End of matlab.log-----------" + + # Clean up execution directory + rm -rf ${ISSM_DIR}/execution/* + + exit 1 +fi + +# Check that all MATLAB tests passed +numMatlabTestsFailed=`cat matlab.log | grep -c -e "FAILED|ERROR"` + +if [[ ${numMatlabTestsFailed} -ne 0 ]]; then + echo "One or more MATLAB tests FAILED" + exit 1; +else + echo "All MATLAB tests PASSED" +fi + +# Check that Python tests run +echo "Running Python tests" + +export PATH="${PATH}:${ISSM_DIR}/bin" +export PYTHONPATH="${ISSM_DIR}/src/m/dev" +export PYTHONSTARTUP="${PYTHONPATH}/devpath.py" +export PYTHONUNBUFFERED=1 # We don't want Python to buffer output, otherwise issm.exe output is not captured + +rm python.log 2> /dev/null +./runme.py ${PYTHON_NROPTIONS} &> python.log 2>&1 + +# Check that Python did not exit in error +pythonExitCode=`echo $?` +pythonExitedInError=`grep -E "Error|Traceback|bad interpreter" python.log | wc -l` + +if [[ ${pythonExitCode} -ne 0 || ${pythonExitedInError} -ne 0 ]]; then + echo "----------Python exited in error!----------" + cat python.log + echo "-----------End of python.log-----------" + + # Clean up execution directory + rm -rf ${ISSM_DIR}/execution/* + + exit 1 +fi + +# Check that all Python tests passed +numPythonTestsFailed=`cat python.log | grep -c -e "FAILED|ERROR"` + +if [[ ${numPythonTestsFailed} -ne 0 ]]; then + echo "One or more Python tests FAILED" + exit 1 +else + echo "All Python tests PASSED" +fi + +# Create tarball +cd ${ISSM_DIR} +rm -f ${TARBALL} +svn cleanup --remove-ignored --remove-unversioned test # Clean up test directory (before copying to package) +echo "Copying assets to package: ${PACKAGE}" +cp -rf bin examples lib scripts test ${PACKAGE}/ +echo "Cleaning up unneeded/unwanted files" +python -m compileall ${PACKAGE}/bin # Precompile all Python scripts to bytecode +rm -f ${PACKAGE}/bin/*.py # Remove all Python scripts +rm -f ${PACKAGE}/bin/generic_static.* # Remove static versions of generic cluster classes +rm -f ${PACKAGE}/lib/*.a # Remove static libraries from package +rm -f ${PACKAGE}/lib/*.la # Remove libtool libraries from package +rm -f ${PACKAGE}/test/SandBox # Remove testing sandbox from package +echo "Creating tarball: ${TARBALL_NAME}" +tar -czf ${TARBALL} ${PACKAGE} +ls -lah ${ISSM_DIR}/${TARBALL} + +echo "Transferring binaries to ISSM Web site" +scp -i ~/.ssh/pine_island_to_ross ${TARBALL} jenkins@ross.ics.uci.edu:/var/www/html/${TARBALL} + +if [ $? -ne 0 ]; then + echo "FAILED: Manually check connection" + exit 1 +fi Property changes on: ../trunk-jpl/packagers/mac/package-issm-mac-binaries-solid_earth.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: ../trunk-jpl/packagers/mac/package-issm-mac-binaries-with_dakota.sh =================================================================== --- ../trunk-jpl/packagers/mac/package-issm-mac-binaries-with_dakota.sh (revision 25243) +++ ../trunk-jpl/packagers/mac/package-issm-mac-binaries-with_dakota.sh (revision 25244) @@ -1,6 +1,11 @@ #!/bin/bash +# Script to test, package, and transfer distributable to ISSM Web site. +# Corresponds with build generated by configuration in +# $ISSM_DIR/jenkins/pine_island-mac-binaries-with_dakota. +# + ## Constants # MATLAB_NROPTIONS="'id',[IdFromString('Dakota')],'exclude',[234,235,418,420,444,445]" @@ -10,6 +15,10 @@ TARBALL_NAME="issm-mac-with_dakota" TARBALL="${TARBALL_NAME}.tar.gz" +## Environment +# +export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages' + # Check if MATLAB exists if ! [ -d ${MATLAB_PATH} ]; then echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again." @@ -55,7 +64,7 @@ # Check that MATLAB did not exit in error matlabExitCode=`echo $?` -matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l` +matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l` if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then echo "----------MATLAB exited in error!----------" Index: ../trunk-jpl/packagers/mac/package-issm-mac-binaries.sh =================================================================== --- ../trunk-jpl/packagers/mac/package-issm-mac-binaries.sh (revision 25243) +++ ../trunk-jpl/packagers/mac/package-issm-mac-binaries.sh (revision 25244) @@ -1,6 +1,11 @@ #!/bin/bash +# Script to test, package, and transfer distributable to ISSM Web site. +# Corresponds with build generated by configuration in +# $ISSM_DIR/jenkins/pine_island-mac-binaries. +# + ## Constants # MATLAB_NROPTIONS="'exclude',[IdFromString('Dakota'),435,701,702,703]" @@ -9,6 +14,10 @@ TARBALL_NAME="issm-mac" TARBALL="${TARBALL_NAME}.tar.gz" +## Environment +# +export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages' + # Check if MATLAB exists if ! [ -d ${MATLAB_PATH} ]; then echo "${MATLAB_PATH} does not point to a MATLAB installation! Please modify MATLAB_PATH variable in $(basename $0) and try again." @@ -53,7 +62,7 @@ # Check that MATLAB did not exit in error matlabExitCode=`echo $?` -matlabExitedInError=`grep -E "Activation cannot proceed|license" matlab.log | wc -l` +matlabExitedInError=`grep -E "Activation cannot proceed|license|Error" matlab.log | wc -l` if [[ ${matlabExitCode} -ne 0 || ${matlabExitedInError} -ne 0 ]]; then echo "----------MATLAB exited in error!----------" Index: ../trunk-jpl/jenkins/pine_island-mac-binaries-solid_earth =================================================================== --- ../trunk-jpl/jenkins/pine_island-mac-binaries-solid_earth (nonexistent) +++ ../trunk-jpl/jenkins/pine_island-mac-binaries-solid_earth (revision 25244) @@ -0,0 +1,85 @@ +#--------------------# +# ISSM Configuration # +#--------------------# + +# MATLAB path +MATLAB_PATH="/Applications/MATLAB_R2018a.app" + +# NOTE: +# - We can disable dependency tracking in the Autotools because the binaries +# should always be a one-time build. +# + +# ISSM CONFIGURATION +ISSM_CONFIG='\ + --prefix=${ISSM_DIR} \ + --enable-standalone-executables \ + --enable-standalone-modules \ + --enable-standalone-libraries \ + --disable-dependency-tracking \ + --with-matlab-dir=${MATLAB_PATH} \ + --with-python-dir=/System/Library/Frameworks/Python.framework/Versions/2.7 \ + --with-python-numpy-dir=/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy \ + --with-fortran-lib="/usr/local/Cellar/gcc/9.3.0/lib/gcc/9/libgfortran.a /usr/local/Cellar/gcc/9.3.0/lib/gcc/9/libquadmath.a /usr/local/Cellar/gcc/9.3.0/lib/gcc/9/gcc/x86_64-apple-darwin15/9.3.0/libgcc.a" \ + --with-mpi-include=${ISSM_DIR}/externalpackages/petsc/install/include \ + --with-mpi-libflags="-L${ISSM_DIR}/externalpackages/petsc/install/lib -lmpi -lmpicxx -lmpifort" \ + --with-blas-lapack-dir=${ISSM_DIR}/externalpackages/petsc/install \ + --with-metis-dir=${ISSM_DIR}/externalpackages/petsc/install \ + --with-scalapack-dir=${ISSM_DIR}/externalpackages/petsc/install \ + --with-mumps-dir=${ISSM_DIR}/externalpackages/petsc/install \ + --with-hdf5-dir=${ISSM_DIR}/externalpackages/petsc/install \ + --with-petsc-dir=${ISSM_DIR}/externalpackages/petsc/install \ + --with-triangle-dir=${ISSM_DIR}/externalpackages/triangle/install \ + --with-boost-dir=${ISSM_DIR}/externalpackages/boost/install +' + +#-------------------# +# External Packages # +#-------------------# + +#List of external pakages to be installed and their installation scripts +EXTERNALPACKAGES=" + autotools install.sh + cmake install.sh + petsc install-3.12-mac-solid_earth-static.sh + boost install-1.7-mac-static.sh + triangle install-mac-static.sh + chaco install.sh + m1qn3 install.sh + semic install.sh + curl install-7.67-static.sh + netcdf install-4.7-mac-parallel-static.sh + proj install-6.2-static.sh + gdal install-3-python-netcdf-static.sh + gshhg install.sh + gmt install-6.0-mac-static.sh + gmsh install-4-static.sh + shell2junit install.sh +" + +#---------# +# Testing # +#---------# + +# Test suites +MATLAB_TEST=0 +PYTHON_TEST=0 +JAVASCRIPT_TEST=0 +EXAMPLES_TEST=0 + +# Number of CPUs used in ISSM compilation +# +# NOTE: One is usually safer as some packages are very sensitive to parallel +# compilation +# +NUMCPUS_INSTALL=4 + +# Number of CPUs used in the nightly runs +NUMCPUS_RUN=1 + +# Nightly run options +# +# See documentation in test/NightlyRun/runme.* for more information. +# +MATLAB_NROPTIONS="" +PYTHON_NROPTIONS="" Property changes on: ../trunk-jpl/jenkins/pine_island-mac-binaries-solid_earth ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: ../trunk-jpl/externalpackages/boost/install-1.7-mac.sh =================================================================== --- ../trunk-jpl/externalpackages/boost/install-1.7-mac.sh (revision 25243) +++ ../trunk-jpl/externalpackages/boost/install-1.7-mac.sh (revision 25244) @@ -38,7 +38,17 @@ ./b2 install link=shared runtime-link=shared # Set install_name for all shared libraries +# +# NOTE: The install_name_tool prints an error message on some installations, +# but this is not a shell error, and it does not seem to affect the +# Boost libraries called by ISSM. For now, we are simply redirecting the +# error to null. +# +# TODO: +# - Modify the source to apply absolute paths to the library ids so that +# patching it after the fact with install_name_tool is not necessary. +# cd ${BOOST_ROOT}/install/lib for name in *.dylib; do - install_name_tool -id ${BOOST_ROOT}/install/lib/${name} ${name} + install_name_tool -id ${BOOST_ROOT}/install/lib/${name} ${name} 2>/dev/null done Index: ../trunk-jpl/src/m/boundaryconditions/getlovenumbers.m =================================================================== --- ../trunk-jpl/src/m/boundaryconditions/getlovenumbers.m (revision 25243) +++ ../trunk-jpl/src/m/boundaryconditions/getlovenumbers.m (revision 25244) @@ -36,8 +36,8 @@ end love_numbers=[... - 0 0 0 0 0 0 0 - -1.28740059 -1.00000000 -0.89858519 1.28740059 0.42519882 0.89858519 0.00000000 + 0 0 0 0 0 0 0; + -1.28740059 -1.00000000 -0.89858519 1.28740059 0.42519882 0.89858519 0.00000000; -1.00025365 -0.30922675 0.02060926 1.69102690 0.46358648 0.67016399 0.61829668; -1.06243501 -0.19927948 0.06801636 1.86315553 0.55741597 0.73270416 0.56270589; -1.06779588 -0.13649834 0.05667027 1.93129754 0.63672498 0.80683140 0.51132745;