From 1323a1be8cdd92f62e546c0dfed872fb5ae51193 Mon Sep 17 00:00:00 2001 From: ucar-tmeyer Date: Thu, 5 May 2022 12:57:24 -0500 Subject: [PATCH] Add in Unidata's awips-ade directory -Updated Dockerfile filenames to include -20.3.2 -added/removed a few dependencies -added a yum update to the devel -updated version -Had to locally add the RPM's to the ade docker since they aren't publically on a server -Had to update the el7-dev.repo to point to the local RPMs directory -Updated version in buildEnvironment.sh -Added a few new paths to rsync.dirs: -awips2-core/ignite/* -awips2-nws/common/* -awips2-nws/features/* -awips2-nws/viz/* -Removed *pdf from rsync.dirs -rpms/build/x86_86/build.sh - updated this file to use the groups to install the rpms -removed umlauts from schrodinger in GridUpdater.java To Do/Change before initial public push: -Change the dockerhub organization from tiffanym13 to unidata -Change the el7-dev.repo file to point to our repo on nexus -Remove the RPM's directory -Change imgvers in setup.sh to not have the -1 -Change the Dockerfile names back to the original without the version (and just tag it with the version) -Need to add back in awips2-unidata repo to rsync.dirs, build_rpms.sh, and build/repos -Figure out how to merge in the awips-ade directory and Unidata build scripts so we can keep the history -Uncomment the #TM# comments in setup.sh to copy files to fserv -Take out propriety data (specific to warnings and binlightning) ------------------------------------------------------------------------------ SUMMARY: new file: build/awips-ade/Dockerfile.awips-ade-20.3.2-1.el7 new file: build/awips-ade/Dockerfile.awips-devel-20.3.2-1.el7 new file: build/awips-ade/awips-ade.sh new file: build/awips-ade/awips-devel.sh new file: build/awips-ade/el7-dev.repo new file: build/build.sh new file: build/buildEnvironment.sh new file: build/build_rpms.sh new file: build/cibuild.sh new file: build/excludes new file: build/repos new file: build/rsync.cave new file: build/rsync.dirs new file: build/setup.sh modified: cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java modified: rpms/build/x86_64/build.sh --- .gitignore | 2 + .../Dockerfile.awips-ade-20.3.2-1.el7 | 23 ++ .../Dockerfile.awips-devel-20.3.2-1.el7 | 22 ++ build/awips-ade/awips-ade.sh | 25 +++ build/awips-ade/awips-devel.sh | 23 ++ build/awips-ade/el7-dev.repo | 8 + build/build.sh | 93 ++++++++ build/buildEnvironment.sh | 24 +++ build/build_rpms.sh | 87 ++++++++ build/cibuild.sh | 75 +++++++ build/excludes | 5 + build/repos | 15 ++ build/rsync.cave | 33 +++ build/rsync.dirs | 41 ++++ build/setup.sh | 84 ++++++++ .../raytheon/viz/grid/inv/GridUpdater.java | 24 +-- rpms/build/x86_64/build.sh | 201 ++++++++++-------- 17 files changed, 682 insertions(+), 103 deletions(-) create mode 100644 build/awips-ade/Dockerfile.awips-ade-20.3.2-1.el7 create mode 100644 build/awips-ade/Dockerfile.awips-devel-20.3.2-1.el7 create mode 100755 build/awips-ade/awips-ade.sh create mode 100755 build/awips-ade/awips-devel.sh create mode 100644 build/awips-ade/el7-dev.repo create mode 100755 build/build.sh create mode 100755 build/buildEnvironment.sh create mode 100755 build/build_rpms.sh create mode 100755 build/cibuild.sh create mode 100644 build/excludes create mode 100644 build/repos create mode 100644 build/rsync.cave create mode 100644 build/rsync.dirs create mode 100755 build/setup.sh diff --git a/.gitignore b/.gitignore index 3b6ba23154..1907b8a816 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,5 @@ bin-test/ *.o *.orig __pycache__ +build/awips-ade/RPMS/ +build/logs/ diff --git a/build/awips-ade/Dockerfile.awips-ade-20.3.2-1.el7 b/build/awips-ade/Dockerfile.awips-ade-20.3.2-1.el7 new file mode 100644 index 0000000000..f2a2fb08ed --- /dev/null +++ b/build/awips-ade/Dockerfile.awips-ade-20.3.2-1.el7 @@ -0,0 +1,23 @@ +FROM tiffanym13/awips-devel-20.3.2-1:el7 +ENV VERSION 20.3.2 +ENV RELEASE 1 +MAINTAINER Tiffany Meyer + +USER root + +COPY el7-dev.repo /etc/yum.repos.d/awips2.repo + +RUN groupadd fxalpha && useradd -G fxalpha awips + +RUN mkdir -p /home/awips/dev/build/rpmbuild/RPMS/ +ADD RPMS /home/awips/dev/build/rpmbuild/RPMS + +RUN yum -y clean all + +RUN yum install awips2-ant awips2-eclipse awips2-hdf5-devel awips2-maven awips2-python-cheroot awips2-python-contextlib2 awips2-python-cython awips2-python-jaraco.functools awips2-python-more-itertools awips2-python-pkgconfig awips2-python-portend awips2-python-pycairo awips2-python-pygobject awips2-python-setuptools_scm_git_archive awips2-python-setuptools_scm awips2-python-tempora awips2-python-zc.lockfile awips2-python-numpy awips2-python-dateutil awips2-python-pyparsing awips2-python-pbr awips2-python-mock awips2-python-numexpr awips2-python-thrift awips2-python-setuptools awips2-hdf5 awips2-python-six awips2-python-pytz awips2-netcdf-devel awips2-qpid-proton -y + +RUN mkdir -p /awips2/jenkins/buildspace/workspace/AWIPS2-UPC_build/baseline && mkdir -p /awips2/jenkins/buildspace/workspace/tmp +RUN mkdir -p /awips2/jenkins/build/rpms/awips2_latest/{x86_64,noarch}/ +RUN chown -R awips:fxalpha /awips2/jenkins/ + +ENTRYPOINT ["/bin/bash"] diff --git a/build/awips-ade/Dockerfile.awips-devel-20.3.2-1.el7 b/build/awips-ade/Dockerfile.awips-devel-20.3.2-1.el7 new file mode 100644 index 0000000000..7d848a3485 --- /dev/null +++ b/build/awips-ade/Dockerfile.awips-devel-20.3.2-1.el7 @@ -0,0 +1,22 @@ +FROM centos:7 +ENV VERSION 20.3.2-1 +ENV RELEASE 1 +MAINTAINER Tiffany Meyer + +USER root + +RUN yum update yum -y + +RUN yum groupinstall "Development tools" -y +RUN yum install epel-release -y +RUN yum clean all -y + +ENV systemDeps="wget rsync git net-tools gzip libtool" +ENV rpmDeps="gcc-c++ gcc-gfortran rpm-build createrepo expat-devel lua-devel cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-md5 nss-devel nspr-devel libxml2-devel openldap-devel cmake" +ENV pythonDeps="tk-devel tcl-devel readline-devel bzip2-devel openssl-devel compat-libf2c-34" +ENV awipsDeps="netcdf netcdf-devel" + +RUN yum install $systemDeps $rpmDeps $pythonDeps $awipsDeps -y +RUN yum update -y + +ENTRYPOINT ["/bin/bash"] diff --git a/build/awips-ade/awips-ade.sh b/build/awips-ade/awips-ade.sh new file mode 100755 index 0000000000..009178b213 --- /dev/null +++ b/build/awips-ade/awips-ade.sh @@ -0,0 +1,25 @@ +#!/bin/bash +dir="$( cd "$(dirname "$0")" ; pwd -P )" +pushd $dir +. ../buildEnvironment.sh + + +if [ -z "$1" ]; then + echo "supply type (el7)" + exit +fi +os_version=$1 + +existing=$(sudo docker images |grep awips-ade | grep $1 | awk '{ print $3 }') +if [ ! -z "$existing" ]; then + sudo docker rmi $existing +fi +img="20.3.2-1" + +pushd /awips2/repo/awips2-builds/build/awips-ade +sudo docker build -t tiffanym13/awips-ade-${img} -f Dockerfile.awips-ade-${img}.${os_version} . +dockerID=$(sudo docker images | grep awips-ade | grep latest | awk '{print $3}' | head -1 ) +#sudo docker tag $dockerID unidata/awips-ade:${AWIPSII_VERSION}-${os_version} +sudo docker tag $dockerID tiffanym13/awips-ade-${img}:${AWIPSII_VERSION}-${os_version} +sudo docker rmi tiffanym13/awips-ade-${img}:latest +sudo docker push tiffanym13/awips-ade-${img}:${AWIPSII_VERSION}-${os_version} diff --git a/build/awips-ade/awips-devel.sh b/build/awips-ade/awips-devel.sh new file mode 100755 index 0000000000..f81be87dc8 --- /dev/null +++ b/build/awips-ade/awips-devel.sh @@ -0,0 +1,23 @@ +#!/bin/bash +dir="$( cd "$(dirname "$0")" ; pwd -P )" +pushd $dir +. ../buildEnvironment.sh +img="awips-devel-20.3.2-1" + + +if [ -z "$1" ]; then + echo "supply type (el7)" + exit +fi +os_version=$1 + +existing=$(sudo docker images |grep ${img} | grep $1 | awk '{ print $3 }') +if [ ! -z "$existing" ]; then + sudo docker rmi $existing +fi +pushd /awips2/repo/awips2-builds/build/awips-ade +sudo docker build -t tiffanym13/${img} -f Dockerfile.${img}.${os_version} . +dockerID=$(sudo docker images | grep ${img} | grep latest | awk '{print $3}' | head -1 ) +sudo docker tag $dockerID tiffanym13/${img}:${os_version} +sudo docker rmi tiffanym13/${img}:latest +sudo docker push tiffanym13/${img}:${os_version} diff --git a/build/awips-ade/el7-dev.repo b/build/awips-ade/el7-dev.repo new file mode 100644 index 0000000000..3ece922a4c --- /dev/null +++ b/build/awips-ade/el7-dev.repo @@ -0,0 +1,8 @@ +[awips2repo] +name=AWIPS II Repository +#baseurl=http://www.unidata.ucar.edu/repos/yum/18.2.1-ade +baseurl=file:///home/awips/dev/build/rpmbuild/RPMS +enabled=1 +protect=0 +gpgcheck=0 +proxy=_none_ diff --git a/build/build.sh b/build/build.sh new file mode 100755 index 0000000000..2bb99e7253 --- /dev/null +++ b/build/build.sh @@ -0,0 +1,93 @@ +#!/bin/bash -v +set -xe + +# Determine where we are +path_to_script=`readlink -f $0` +dir=$(dirname $path_to_script) +source ${dir}/buildEnvironment.sh + +export _script_dir=${dir} +echo "Running build.sh from ${_script_dir}" +echo " JENKINS_WORKSPACE = ${JENKINS_WORKSPACE}" +cd ${dir} +logdir=${dir}/logs + +if [ ! -d $logdir ]; then + mkdir -p $logdir +fi + +START_TIME=`date "+%s"` +timestamp=`date +%Y_%m_%d_%H:%M:%S` + +# Cleanup before building CAVE rpms +if [[ ${2} = "buildCAVE" ]]; then + rm -rf ${JENKINS_HOME}/buildspace/workspace/AWIPS2-UPC_build/baseline/ + rm -rf ${JENKINS_HOME}/buildspace/workspace/tmp/${USER}/ +fi + +echo "BUILD_DIR = $BUILD_DIR" +echo "BUILD_WORKSPACE = $BUILD_WORKSPACE" +echo "BASELINE = $BASELINE" +echo "WORKSPACE = $WORKSPACE" +echo "AWIPSII_VERSION = $AWIPSII_VERSION" +echo "AWIPSII_RELEASE = $AWIPSII_RELEASE" +echo "AWIPSII_TOP_DIR = $AWIPSII_TOP_DIR" +echo "UFRAME_ECLIPSE = $UFRAME_ECLIPSE" +echo "AWIPSII_STATIC_FILES = $AWIPSII_STATIC_FILES" +echo "AWIPSII_BUILD_ROOT = $AWIPSII_BUILD_ROOT" + +# Prepare the rpm build directory structure +mkdir -p ${AWIPSII_TOP_DIR}/{BUILD,RPMS,SOURCES,SPECS,SRPMS} + +pushd . > /dev/null 2>&1 +cd ${BASELINE} +mkdir -p ${WORKSPACE} +if [[ ${2} = "buildCAVE" ]]; then + RSYNC_DIRS=`cat $dir/rsync.dirs |grep -v nativelib | grep -v awips2-rpm` +else + RSYNC_DIRS=`cat $dir/rsync.dirs` +fi +rsync -ruql --delete --exclude-from=${dir}/excludes ${RSYNC_DIRS} ${WORKSPACE} + +popd > /dev/null 2>&1 + +# execute the build for the appropriate architecture +_rpms_build_directory=${WORKSPACE}/rpms/build +_architecture=`uname -i` +_build_sh_directory=${_rpms_build_directory}/${_architecture} +pushd . > /dev/null 2>&1 + +cd ${_build_sh_directory} +cp -v ${dir}/buildEnvironment.sh . + +# check rpms/build/x86_64/build.sh for build groups + +build_log=${logdir}/build${1}-${timestamp}.log +if [ "${1}" = "-b" -a -n "${2}" ]; then + build_log=${logdir}/build-${2}-${timestamp}.log +fi + +/bin/bash ${_build_sh_directory}/build.sh ${1} ${2} > ${build_log} + +popd > /dev/null 2>&1 + +export rpm_end_dir="${AWIPSII_VERSION}-${AWIPSII_RELEASE}" + +mkdir -p ${AWIPSII_TOP_DIR}/RPMS/x86_64/ + +if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/x86_64/)" ]; then + mv ${AWIPSII_TOP_DIR}/RPMS/x86_64/* ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/ +fi +if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/noarch/)" ]; then + mv ${AWIPSII_TOP_DIR}/RPMS/noarch/* ${JENKINS_HOME}/build/rpms/awips2_latest/noarch/ +fi + +END_TIME=`date "+%s"` +TIME_SPENT=$((END_TIME - START_TIME)) +TTI_HOURS=$((TIME_SPENT/3600)) +TTI_SECS=$((TIME_SPENT %3600)) #Remaining seconds +TTI_MINS=$((TTI_SECS/60)) +TTI_SECS=$((TTI_SECS%60)) +echo "Total-time-Spent-In-The-Build-For $0 = $TTI_HOURS hours, $TTI_MINS minutes, $TTI_SECS seconds" + +exit diff --git a/build/buildEnvironment.sh b/build/buildEnvironment.sh new file mode 100755 index 0000000000..6e31732dc0 --- /dev/null +++ b/build/buildEnvironment.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# Version +export AWIPSII_VERSION="20.3.2" +export AWIPSII_RELEASE="1" +# Author +export AWIPSII_BUILD_VENDOR="UCAR" +export AWIPSII_BUILD_SITE="Unidata" +export AWIPSII_AUTHOR="Tiffany Meyer " +# Directories +export UFRAME_ECLIPSE=/awips2/eclipse +export JAVA_HOME=/awips2/java +export ANT_HOME=/awips2/ant +export REPO=/awips2/repo +export JENKINS_HOME=/awips2/jenkins +export JENKINS_WORKSPACE=${REPO}/awips2-builds +export BUILD_DIR=${JENKINS_HOME}/buildspace/ +export AWIPSII_STATIC_FILES=${REPO}/awips2-static +# More env vars +export BUILD_WORKSPACE=${BUILD_DIR}/workspace +export BASELINE=${JENKINS_WORKSPACE} +export AWIPSII_TOP_DIR=${BUILD_WORKSPACE}/tmp/rpms_built_dir +export WORKSPACE=${BUILD_WORKSPACE}/AWIPS2-UPC_build/baseline +export AWIPSII_BUILD_ROOT=${BUILD_WORKSPACE}/tmp/${USER}/awips-component +export REPO_DEST=${BUILD_WORKSPACE}/tmp/${USER}/repo diff --git a/build/build_rpms.sh b/build/build_rpms.sh new file mode 100755 index 0000000000..83ae330320 --- /dev/null +++ b/build/build_rpms.sh @@ -0,0 +1,87 @@ +#!/bin/sh -xe +# +# Build Unidata AWIPS RPMs from source +# author: Michael James +# maintainer: +# + +# +# Require el6 or el7 be specified +# RPM name is optional (see below) +# +os_version=$1 +rpmname=$2 + +if [ -z "$os_version" ]; then + echo "supply os_version (el7)" + exit +fi + +# +# Set up AWIPS environment +# +. /awips2/repo/awips2-builds/build/buildEnvironment.sh +buildsh=$REPO/awips2-builds/build/build.sh +pushd $REPO + +# +# If local source directories, exist, mount them to the +# container, otherwise clone the repo from github +# +if [ ! -d awips2-core-foss ]; then git clone https://github.com/Unidata/awips2-core-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi +if [ ! -d awips2-core ]; then git clone https://github.com/Unidata/awips2-core.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi +if [ ! -d awips2-foss ]; then git clone https://github.com/Unidata/awips2-foss.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi +if [ ! -d awips2-goesr ]; then git clone https://github.com/Unidata/awips2-goesr.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi +if [ ! -d awips2-ncep ]; then git clone https://github.com/Unidata/awips2-ncep.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi +if [ ! -d awips2-nws ]; then git clone https://github.com/Unidata/awips2-nws.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi +#if [ ! -d awips2-unidata ]; then git clone https://github.com/Unidata/awips2-unidata.git --branch unidata_${AWIPSII_VERSION} --single-branch ;fi + +# +# AWIPS Static files are too large to host on github +# +if [ ! -d awips2-static && ! $rpmname = "buildCAVE" ]; then + mkdir awips2-static + cd awips2-static + wget https://www.unidata.ucar.edu/downloads/awips2/static.tar + tar -xvf static.tar + rm -rf static.tar +fi +# +# If RPM name is given +# +if [ ! -z "$rpmname" ]; then + + frst="$(echo $rpmname | head -c 1)" + if [[ "$frst" = "-" ]]; then + # If first character is a dash, then a build group alias was given + su - awips -c "/bin/bash $buildsh $rpmname" + else + su - awips -c "/bin/bash $buildsh -b $rpmname" + fi + +else + + # If RPM name is not given build all groups in this order +# yum localinstall /awips2/repo/awips2-builds/dist/18.2.1-ade/x86_64/awips2-hdf5* -y +# yum localinstall /awips2/repo/awips2-builds/dist/18.2.1-ade/x86_64/awips2-netcdf* -y + su - awips -c "/bin/bash $buildsh -ade" + su - awips -c "/bin/bash $buildsh -python" + su - awips -c "/bin/bash $buildsh -qpid" + su - awips -c "/bin/bash $buildsh -server" + su - awips -c "/bin/bash $buildsh -database" + su - awips -c "/bin/bash $buildsh -edex" + su - awips -c "/bin/bash $buildsh -httpd" + su - awips -c "/bin/bash $buildsh -cave" + +fi + +# Move RPMs to awips2-builds/dist +if [ "$(ls -A ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/)" ]; then + mkdir -p /awips2/repo/awips2-builds/dist/${os_version}-dev/x86_64/ + mv ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/* /awips2/repo/awips2-builds/dist/${os_version}-dev/x86_64/ +fi +if [ "$(ls -A ${JENKINS_HOME}/build/rpms/awips2_latest/noarch/)" ]; then + mkdir -p /awips2/repo/awips2-builds/dist/${os_version}-dev/noarch/ + mv ${JENKINS_HOME}/build/rpms/awips2_latest/noarch/* /awips2/repo/awips2-builds/dist/${os_version}-dev/noarch/ +fi + diff --git a/build/cibuild.sh b/build/cibuild.sh new file mode 100755 index 0000000000..5b18d918ed --- /dev/null +++ b/build/cibuild.sh @@ -0,0 +1,75 @@ +#!/bin/bash -v +set -xe + +# Determine where we are +path_to_script=`readlink -f $0` +dir=$(dirname $path_to_script) +source ${dir}/buildEnvironment.sh + +export _script_dir=${dir} +echo "Running build.sh from ${_script_dir}" +echo " JENKINS_WORKSPACE = ${JENKINS_WORKSPACE}" +cd ${dir} + +START_TIME=`date "+%s"` +timestamp=`date +%Y_%m_%d_%H:%M:%S` + +# Cleanup before building CAVE rpms +if [[ ${2} = "buildCAVE" ]]; then + rm -rf ${JENKINS_HOME}/buildspace/workspace/AWIPS2-UPC_build/baseline/ + rm -rf ${JENKINS_HOME}/buildspace/workspace/tmp/${USER}/ +fi + +echo "BUILD_DIR = $BUILD_DIR" +echo "BUILD_WORKSPACE = $BUILD_WORKSPACE" +echo "BASELINE = $BASELINE" +echo "WORKSPACE = $WORKSPACE" +echo "AWIPSII_VERSION = $AWIPSII_VERSION" +echo "AWIPSII_RELEASE = $AWIPSII_RELEASE" +echo "AWIPSII_TOP_DIR = $AWIPSII_TOP_DIR" +echo "UFRAME_ECLIPSE = $UFRAME_ECLIPSE" +echo "AWIPSII_STATIC_FILES = $AWIPSII_STATIC_FILES" +echo "AWIPSII_BUILD_ROOT = $AWIPSII_BUILD_ROOT" + +# Prepare the rpm build directory structure +mkdir -p ${AWIPSII_TOP_DIR}/{BUILD,RPMS,SOURCES,SPECS,SRPMS} + +pushd . > /dev/null 2>&1 +cd ${BASELINE} +mkdir -p ${WORKSPACE} +RSYNC_DIRS=`cat $dir/rsync.dirs` +rsync -ruql --delete --exclude-from=${dir}/excludes ${RSYNC_DIRS} ${WORKSPACE} + +popd > /dev/null 2>&1 + +# execute the build for the appropriate architecture +_rpms_build_directory=${WORKSPACE}/rpms/build +_architecture=`uname -i` +_build_sh_directory=${_rpms_build_directory}/${_architecture} +pushd . > /dev/null 2>&1 + +cd ${_build_sh_directory} +cp -v ${dir}/buildEnvironment.sh . + +/bin/bash ${_build_sh_directory}/build.sh ${1} ${2} + +popd > /dev/null 2>&1 + +export rpm_end_dir="${AWIPSII_VERSION}-${AWIPSII_RELEASE}" + +if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/x86_64/)" ]; then + mv ${AWIPSII_TOP_DIR}/RPMS/x86_64/* ${JENKINS_HOME}/build/rpms/awips2_latest/x86_64/ +fi +if [ "$(ls -A ${AWIPSII_TOP_DIR}/RPMS/noarch/)" ]; then + mv ${AWIPSII_TOP_DIR}/RPMS/noarch/* ${JENKINS_HOME}/build/rpms/awips2_latest/noarch/ +fi + +END_TIME=`date "+%s"` +TIME_SPENT=$((END_TIME - START_TIME)) +TTI_HOURS=$((TIME_SPENT/3600)) +TTI_SECS=$((TIME_SPENT %3600)) #Remaining seconds +TTI_MINS=$((TTI_SECS/60)) +TTI_SECS=$((TTI_SECS%60)) +echo "Total-time-Spent-In-The-Build-For $0 = $TTI_HOURS hours, $TTI_MINS minutes, $TTI_SECS seconds" + +exit diff --git a/build/excludes b/build/excludes new file mode 100644 index 0000000000..59209de894 --- /dev/null +++ b/build/excludes @@ -0,0 +1,5 @@ +.git +.metadata +.svn +eclipse-rcp-mars-1-linux-gtk-x86_64.tar.gz +java.tar diff --git a/build/repos b/build/repos new file mode 100644 index 0000000000..5ef813f3ba --- /dev/null +++ b/build/repos @@ -0,0 +1,15 @@ +awips2-cimss +awips2-core-foss +awips2-core +awips2-data-delivery +awips2-drawing +awips2-foss +awips2-goesr +awips2-gsd +awips2-nativelib +awips2-ncep +awips2-nws +awips2-ogc +awips2-rpm +awips2-static +python-awips diff --git a/build/rsync.cave b/build/rsync.cave new file mode 100644 index 0000000000..54e7066a15 --- /dev/null +++ b/build/rsync.cave @@ -0,0 +1,33 @@ +edexOsgi/* cave/* localization/* +javaUtilities/* rpms pythonPackages +*.pdf +../awips2-nativelib/* +../awips2-cimss/common/* +../awips2-cimss/edex/* +../awips2-cimss/features/* +../awips2-cimss/viz/* +../awips2-core/common/* +../awips2-core/edex/* +../awips2-core/features/* +../awips2-core/viz/* +../awips2-core-foss/lib/* +../awips2-foss/lib/* +../awips2-ncep/common/* +../awips2-ncep/viz/* +../awips2-ncep/features/* +../awips2-ncep/edex/* +../awips2-goesr/edexOsgi/* +../awips2-goesr/cave/* +../awips2-unidata/* +../python-awips +../awips2-data-delivery/common/* +../awips2-data-delivery/edex/* +../awips2-data-delivery/features/* +../awips2-data-delivery/viz/* +../awips2-drawing/viz/* +../awips2-drawing/features/* +../awips2-gsd/viz/* +../awips2-gsd/features/* +../awips2-ogc/foss/* +../awips2-ogc/edex/* +../awips2-ogc/features/* diff --git a/build/rsync.dirs b/build/rsync.dirs new file mode 100644 index 0000000000..387b12b59a --- /dev/null +++ b/build/rsync.dirs @@ -0,0 +1,41 @@ +edexOsgi/* cave/* localization +javaUtilities/* rpms pythonPackages +deploy.edex +deploy.edex.awips2 +deploy.ignite.awips2 +../awips2-nativelib/* +../awips2-cimss/edex/* +../awips2-cimss/features/* +../awips2-cimss/viz/* +../awips2-cimss/common/* +../awips2-core/common/* +../awips2-core/edex/* +../awips2-core/features/* +../awips2-core/ignite/* +../awips2-core/viz/* +../awips2-core-foss/lib/* +../awips2-foss/lib/* +../awips2-rpm/foss +../awips2-rpm/installers +../awips2-ncep/common/* +../awips2-ncep/viz/* +../awips2-ncep/features/* +../awips2-ncep/edex/* +../awips2-nws/edex/* +../awips2-nws/common/* +../awips2-nws/features/* +../awips2-nws/viz/* +../awips2-goesr/edexOsgi/* +../awips2-goesr/cave/* +../python-awips +../awips2-data-delivery/common/* +../awips2-data-delivery/edex/* +../awips2-data-delivery/features/* +../awips2-data-delivery/viz/* +../awips2-drawing/viz/* +../awips2-drawing/features/* +../awips2-gsd/viz/* +../awips2-gsd/features/* +../awips2-ogc/foss/* +../awips2-ogc/edex/* +../awips2-ogc/features/* diff --git a/build/setup.sh b/build/setup.sh new file mode 100755 index 0000000000..f42d396b84 --- /dev/null +++ b/build/setup.sh @@ -0,0 +1,84 @@ +#!/bin/sh -xe +# +# Unidata AWIPS Build Setup Script +# author: Michael James +# maintainer: +# + +# +# Require el6 or el7 be specified +# +if [ -z "$1" ]; then + echo "supply type (el7)" + exit +fi +os_version=$1 +rpmname=$2 +dirs=" -v `pwd`:/awips2/repo/awips2-builds:rw " +. /awips2/repo/awips2-builds/build/buildEnvironment.sh + +version=${AWIPSII_VERSION}-${AWIPSII_RELEASE} +java -jar /awips2/repo/awips-unidata-builds/all/awips_splashscreen_updater.jar "$version" +splashLoc=$(find /awips2/repo/awips2/cave -name "splash.bmp") +mv splash.bmp $splashLoc +echo "replacing splash.bmp" + +# If local source directories, exist, mount them to the container +if [ $rpmname = "buildCAVE" ]; then + for dn in `cat build/repos| grep -v static| grep -v nativelib |grep -v awips2-rpm` + do + echo $dn + if [ -d /awips2/repo/$dn ]; then + dirs+=" -v /awips2/repo/${dn}:/awips2/repo/${dn} " + fi + done +else + for dn in `cat build/repos` + do + echo $dn + if [ -d /awips2/repo/$dn ]; then + dirs+=" -v /awips2/repo/${dn}:/awips2/repo/${dn} " + fi + done +fi + +# +# Run Docker AWIPS ADE Image +# +imgname=tiffanym13/awips-ade +imgvers=20.3.2 +sudo docker run --entrypoint=/bin/bash --privileged -d -ti -e "container=docker" $dirs $imgname-$imgvers-1:$imgvers-$os_version +dockerID=$(sudo docker ps | grep awips-ade | awk '{print $1}' | head -1 ) +sudo docker logs $dockerID +sudo docker exec -ti $dockerID /bin/bash -xec "/awips2/repo/awips2-builds/build/build_rpms.sh $os_version $rpmname"; +#sudo docker stop $dockerID +#sudo docker rm -v $dockerID + +# +# Update/Recreate YUM Repository +# + +date=$(date +%Y%m%d) + +if [[ $(whoami) == "awips" ]]; then # local build + #copy awips_install-YYYYMMDD.sh to robin + #TM#cp awips_install.sh awips_install-${date}.sh + #TM#echo "rsync -aP awips_install-${date}.sh tiffanym@fserv:/share/awips2/${AWIPSII_VERSION}/linux/" + #TM#rsync -aP awips_install-${date}.sh tiffanym@fserv:/share/awips2/${AWIPSII_VERSION}/linux/ + + #For testing, copy el7-test.repo to robin with updated path + #sed -i 's/el7-dev-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/el7-dev-${date}/' dist/el7-test.repo + + sudo mv dist/${os_version}-dev dist/${os_version}-dev-${date} + sudo su - -c "createrepo -g /awips2/repo/awips2/dist/comps.xml /awips2/repo/awips2/dist/${os_version}-dev-${date}/" + sudo chown -R awips:fxalpha dist/${os_version}-dev-${date} +# rsync -aP dist/${os_version}- + #TM#echo "rsync -aP dist/${os_version}-dev-${date} tiffanym@fserv:/share/awips2/${AWIPSII_VERSION}/linux/" + #TM#rsync -aP dist/${os_version}-dev-${date} tiffanym@fserv:/share/awips2/${AWIPSII_VERSION}/linux/ + #rsync -aP dist/${os_version}-dev-${date} awips@hardy:~/ + #repomanage -k1 --old dist/${os_version}-dev | xargs rm -f + # + # Push to web server + # + #rsync --archive --delete dist/${os_version}-dev tomcat@www:/web/content/repos/yum/ +fi diff --git a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java index 1052861180..c3960e8de1 100644 --- a/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java +++ b/cave/com.raytheon.viz.grid/src/com/raytheon/viz/grid/inv/GridUpdater.java @@ -65,7 +65,7 @@ import com.raytheon.viz.grid.GridExtensionManager; * Aug 15, 2017 6332 bsteffen Move radar specific logic to extension * Aug 23, 2017 6125 bsteffen Split common updating code to GridInventoryUpdater. * Nov 30, 2018 7673 bsteffen Prevent full queue from blocking. - * + * Apr 29, 2022 tiffanym@ucar.edu Remove the umlauts from schrodingers variables * * * @author bsteffen @@ -203,31 +203,31 @@ public class GridUpdater extends GridInventoryUpdater { * real state of the record here and it is left to the receiver of * updates to figure it out. */ - GridRecord schrödingersRecord = new GridRecord(); + GridRecord schrodingersRecord = new GridRecord(); DataTime time = record.getDataTime(); - schrödingersRecord.setDataTime(new DataTime(time.getRefTime(), + schrodingersRecord.setDataTime(new DataTime(time.getRefTime(), time.getFcstTime() - value.timeOffset)); - schrödingersRecord.setDatasetId(value.node.getModelName()); + schrodingersRecord.setDatasetId(value.node.getModelName()); Parameter param = new Parameter( value.node.getDesc().getAbbreviation(), value.node.getDesc().getName(), value.node.getDesc().getUnit()); - schrödingersRecord.setParameter(param); - schrödingersRecord.setLevel(value.node.getLevel()); + schrodingersRecord.setParameter(param); + schrodingersRecord.setLevel(value.node.getLevel()); if (value.node instanceof GatherLevelNode) { - schrödingersRecord.setEnsembleId(null); + schrodingersRecord.setEnsembleId(null); } else { - schrödingersRecord.setEnsembleId(record.getEnsembleId()); + schrodingersRecord.setEnsembleId(record.getEnsembleId()); } - schrödingersRecord.setSecondaryId(record.getSecondaryId()); - schrödingersRecord.setLocation(record.getLocation()); + schrodingersRecord.setSecondaryId(record.getSecondaryId()); + schrodingersRecord.setLocation(record.getLocation()); try { - uriUpdateQueue.put(schrödingersRecord.getDataURI()); + uriUpdateQueue.put(schrodingersRecord.getDataURI()); } catch (InterruptedException e) { statusHandler.handle(Priority.PROBLEM, "Failed to send derived update for " - + schrödingersRecord.getDataURI(), + + schrodingersRecord.getDataURI(), e); } } diff --git a/rpms/build/x86_64/build.sh b/rpms/build/x86_64/build.sh index 205a0ddc6b..5fa5be233f 100644 --- a/rpms/build/x86_64/build.sh +++ b/rpms/build/x86_64/build.sh @@ -2,7 +2,7 @@ function usage() { - echo "Usage: $0 OPTION [-nobinlightning]" + echo "Usage: $0 OPTION" echo " -buildRPM preform a build of an rpm." echo " -WA perform a build of all work assignments." echo " -rh6 perform a full build of all the rpms." @@ -75,12 +75,6 @@ if [ $RTN -ne 0 ]; then exit 1 fi -export LIGHTNING=true -# Determine if the optional '-nobinlightning' argument has been specified. -if [ "${2}" = "-nobinlightning" ]; then - LIGHTNING=false -fi - if [ "${1}" = "-buildRPM" -a -n "${2}" ]; then echo "Building RPM: ${2}" # also allow buildCAVE, buildEDEX, buildRPM args @@ -96,114 +90,139 @@ if [ "${1}" = "-buildRPM" -a -n "${2}" ]; then exit 0 fi -if [ "${1}" = "-WA" ]; then - WA_rpm_build - exit 0 -fi - -if [ "${1}" = "-rh6" ]; then - buildCAVE - buildRPM "awips2-alertviz" - buildEDEX - buildRPM "awips2-common-base" +#BUILD GROUPS +function build_ade(){ + buildRPM "awips2" + buildRPM "awips2-ant" + buildRPM "awips2-eclipse" + buildRPM "awips2-hdf5" buildRPM "awips2-java" + buildRPM "awips2-maven" + buildRPM "awips2-netcdf" + buildRPM "awips2-postgresql" + buildRPM "awips2-groovy" #not sure about this one + buildRPM "awips2-yajsw" buildRPM "awips2-python" + buildRPM "awips2-python-backports-lru_cache" + buildRPM "awips2-python-cftime" buildRPM "awips2-python-cheroot" buildRPM "awips2-python-contextlib2" - buildRPM "awips2-python-jaraco.functools" - buildRPM "awips2-python-more-itertools" - buildRPM "awips2-python-portend" - buildRPM "awips2-python-setuptools_scm_git_archive" - buildRPM "awips2-python-tempora" - buildRPM "awips2-python-zc.lockfile" - buildRPM "awips2-python-cherrypy" - buildRPM "awips2-python-thrift" - buildRPM "awips2-python-werkzeug" - buildRPM "awips2-python-numpy" - buildRPM "awips2-python-h5py" - buildRPM "awips2-python-matplotlib" - buildRPM "awips2-python-scipy" + buildRPM "awips2-python-cycler" + buildRPM "awips2-python-cython" + buildRPM "awips2-python-dateutil" + buildRPM "awips2-python-jep" # do we need this? buildRPM "awips2-python-funcsigs" + buildRPM "awips2-python-h5py" + buildRPM "awips2-python-jaraco.functools" + buildRPM "awips2-python-kiwisolver" + buildRPM "awips2-python-matplotlib" buildRPM "awips2-python-mock" + buildRPM "awips2-python-more-itertools" buildRPM "awips2-python-numexpr" + buildRPM "awips2-python-numpy" buildRPM "awips2-python-pbr" + buildRPM "awips2-python-pkgconfig" + buildRPM "awips2-python-portend" +#missing python-cairo and python-pygobject, but these might be in a diff package + buildRPM "awips2-python-pyparsing" + buildRPM "awips2-python-pytz" + buildRPM "awips2-python-setuptools" + buildRPM "awips2-python-setuptools_scm" + buildRPM "awips2-python-setuptools_scm_git_archive" + buildRPM "awips2-python-shapely" + buildRPM "awips2-python-six" + buildRPM "awips2-python-tempora" + buildRPM "awips2-python-thrift" + buildRPM "awips2-python-zc.lockfile" + buildRPM "awips2-qpid-proton" +#PREV awips2-qpid-lib + +} +function build_python(){ + buildRPM "awips2-python-cherrypy" + buildRPM "awips2-python-dynamicserialize" + buildRPM "awips2-python-netcdf4" + buildRPM "awips2-python-pyshp" + buildRPM "awips2-python-scipy" + buildRPM "awips2-python-stomp.py" buildRPM "awips2-python-tables" buildRPM "awips2-python-tpg" buildRPM "awips2-python-ufpy" - buildRPM "awips2-python-dynamicserialize" - buildRPM "awips2-python-shapely" - buildRPM "awips2-python-jep" - buildRPM "awips2-python-dateutil" - buildRPM "awips2-python-pytz" - buildRPM "awips2-python-six" - buildRPM "awips2-python-pyparsing" - buildRPM "awips2-python-setuptools" - buildRPM "awips2-python-setuptools_scm" - buildRPM "awips2-python-stomp.py" - buildRPM "awips2-python-pkgconfig" - buildRPM "awips2-python-pyshp" - buildRPM "awips2-python-cython" - buildRPM "awips2-python-cycler" - buildRPM "awips2-python-kiwisolver" - buildRPM "awips2-python-backports-lru_cache" - buildRPM "awips2-python-netcdf4" - buildRPM "awips2-python-cftime" - buildRPM "awips2-ant" - buildRPM "awips2-maven" - buildRPM "awips2-hdf5" - buildRPM "awips2-netcdf" - buildRPM "awips2-eclipse" - buildRPM "awips2-postgresql" - buildRPM "awips2-httpd-pypies" + buildRPM "awips2-python-werkzeug" +} +function build_qpid(){ buildRPM "awips2-qpid-proton" - buildRPM "awips2-qpid-proton/i386" + #buildRPM "awips2-qpid-proton/i386" buildRPM "awips2-qpid-proton-python" buildRPM "awips2-qpid-broker-j" - buildRPM "awips2-database-server-configuration" - buildRPM "awips2-database-standalone-configuration" - buildRPM "awips2-database" - buildRPM "awips2-maps-database" - buildRPM "awips2-ncep-database" +} +function build_server(){ + buildRPM "awips2" +# NEED TO ADD: +# buildRPM "awips2-ldm" +# buildRPM "awips2-tools + buildRPM "awips2-gfesuite" + build_pypies + buildLocalization + + buildRPM "awips2-alertviz" buildRPM "awips2-aviation-shared" buildRPM "awips2-cli" + buildRPM "awips2-common-base" + buildRPM "awips2-devel" buildRPM "awips2-edex-environment" + buildRPM "awips2-ffmpeg" + buildRPM "awips2-ignite" + buildRPM "awips2-localapps-environment" + buildRPM "awips2-scripts" + buildRPM "awips2-version" + buildRPM "awips2-watchdog" + +} +function build_database(){ + buildRPM "awips2-database" + buildRPM "awips2-database-server-configuration" + buildRPM "awips2-database-standalone-configuration" + buildRPM "awips2-postgresql" + buildRPM "awips2-maps-database" + buildRPM "awips2-ncep-database" buildRPM "awips2-edex-shapefiles" buildRPM "awips2-data.gfe" - buildRPM "awips2-gfesuite" - buildRPM "awips2-groovy" - buildRPM "awips2-localapps-environment" - buildRPM "awips2-rehost-support-postgresql" - buildRPM "awips2-scripts" - buildLocalizationRPMs - if [ $? -ne 0 ]; then - exit 1 - fi - buildRPM "awips2-ignite" - buildRPM "awips2-pypies" buildRPM "awips2-data.hdf5-topo" - buildRPM "awips2" - buildRPM "awips2-devel" - buildRPM "awips2-version" - buildRPM "awips2-yajsw" - buildRPM "awips2-watchdog" - buildRPM "awips2-ffmpeg" + buildRPM "awips2-rehost-support-postgresql" +} +function build_pypies(){ + buildRPM "awips2-pypies" + buildRPM "awips2-httpd-pypies" +} + + +if [ "${1}" = "-rh6" ]; then + + exit 0 fi -if [ "${1}" = "-dev" ]; then +if [ "${1}" = "-ade" ]; then build_ade && exit 0; fi +if [ "${1}" = "-python" ]; then build_python && exit 0; fi +if [ "${1}" = "-qpid" ]; then build_qpid && exit 0; fi +if [ "${1}" = "-server" ]; then build_server && exit 0; fi +if [ "${1}" = "-pypies" ]; then build_pypies && exit 0; fi +if [ "${1}" = "-localization" ]; then buildLocalizationRPMS && exit 0; fi +if [ "${1}" = "-database" ]; then build_database && exit 0; fi +if [ "${1}" = "-edex" ]; then buildEDEX && exit 0; fi +if [ "${1}" = "-cave" ]; then buildCAVE && exit 0; fi +if [ "${1}" = "-WA" ]; then WA_rpm_build && exit 0; fi - if [ ! $# -eq 2 ]; then - usage - exit 1; - fi - - echo -e "\n*** Executing $2 ***" - $2 - if [ $? -ne 0 ]; then - exit 1 - fi - echo -e "*** $2 Complete ***\n" - exit 0 +if [ "${1}" = "-all" ]; then + build_ade + build_python + build_qpid + build_server + build_database + buildEDEX + buildCAVE + exit 0 fi usage