522 lines
13 KiB
Bash
522 lines
13 KiB
Bash
#!/bin/bash
|
|
|
|
function buildRPM()
|
|
{
|
|
# Arguments:
|
|
# ${1} == the name of the rpm.
|
|
lookupRPM "${1}"
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: '${1}' is not a recognized AWIPS II RPM."
|
|
exit 1
|
|
fi
|
|
|
|
/usr/bin/rpmbuild -ba \
|
|
--define '_topdir %(echo ${AWIPSII_TOP_DIR})' \
|
|
--define '_baseline_workspace %(echo ${WORKSPACE})' \
|
|
--define '_uframe_eclipse %(echo ${UFRAME_ECLIPSE})' \
|
|
--define '_awipscm_share %(echo ${AWIPSCM_SHARE})' \
|
|
--define '_build_root %(echo ${AWIPSII_BUILD_ROOT})' \
|
|
--define '_component_version %(echo ${AWIPSII_VERSION})' \
|
|
--define '_component_release %(echo ${AWIPSII_RELEASE})' \
|
|
--define '_component_build_date %(echo ${COMPONENT_BUILD_DATE})' \
|
|
--define '_component_build_time %(echo ${COMPONENT_BUILD_TIME})' \
|
|
--define '_component_build_system %(echo ${COMPONENT_BUILD_SYSTEM})' \
|
|
--buildroot ${AWIPSII_BUILD_ROOT} \
|
|
${RPM_SPECIFICATION}/component.spec
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Failed to build RPM ${1}."
|
|
exit 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
# This script will build all of the 64-bit rpms.
|
|
# Ensure that we are on a machine with the correct architecture.
|
|
|
|
architecture=`uname -i`
|
|
if [ ! "${architecture}" = "x86_64" ]; then
|
|
echo "ERROR: This build can only be performed on a 64-bit Operating System."
|
|
exit 1
|
|
fi
|
|
|
|
# Determine which directory we are running from.
|
|
path_to_script=`readlink -f $0`
|
|
dir=$(dirname $path_to_script)
|
|
|
|
common_dir=`cd ${dir}/../common; pwd;`
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Unable to find the common functions directory."
|
|
exit 1
|
|
fi
|
|
# source the common functions.
|
|
source ${common_dir}/lookupRPM.sh
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Unable to source the common functions."
|
|
exit 1
|
|
fi
|
|
source ${common_dir}/usage.sh
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Unable to source the common functions."
|
|
exit 1
|
|
fi
|
|
source ${common_dir}/rpms.sh
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Unable to source the common functions."
|
|
exit 1
|
|
fi
|
|
source ${common_dir}/systemInfo.sh
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Unable to retrieve the system information."
|
|
exit 1
|
|
fi
|
|
|
|
# prepare the build environment.
|
|
source ${dir}/buildEnvironment.sh
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: Unable to prepare the build environment."
|
|
exit 1
|
|
fi
|
|
|
|
export LIGHTNING=true
|
|
# Determine if the optional '-nobinlightning' argument has been specified.
|
|
if [ "${2}" = "-nobinlightning" ]; then
|
|
LIGHTNING=false
|
|
fi
|
|
|
|
if [ "${1}" = "-64bit" ]; then
|
|
buildCAVE
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-alertviz"
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-python"
|
|
buildRPM "awips2-python-cherrypy"
|
|
buildRPM "awips2-python-dynamicserialize"
|
|
buildRPM "awips2-python-h5py"
|
|
buildRPM "awips2-python-jimporter"
|
|
buildRPM "awips2-python-matplotlib"
|
|
buildRPM "awips2-python-nose"
|
|
buildRPM "awips2-python-numpy"
|
|
buildRPM "awips2-python-pil"
|
|
buildRPM "awips2-python-pmw"
|
|
buildRPM "awips2-python-pupynere"
|
|
buildRPM "awips2-python-qpid"
|
|
buildRPM "awips2-python-scientific"
|
|
buildRPM "awips2-python-scipy"
|
|
buildRPM "awips2-python-tables"
|
|
buildRPM "awips2-python-thrift"
|
|
buildRPM "awips2-python-tpg"
|
|
buildRPM "awips2-python-ufpy"
|
|
buildRPM "awips2-python-werkzeug"
|
|
buildRPM "awips2-python-pygtk"
|
|
buildRPM "awips2-python-pycairo"
|
|
buildJava
|
|
buildRPM "awips2"
|
|
buildRPM "awips2-python-shapely"
|
|
buildRPM "awips2-notification"
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-rh6" ]; then
|
|
buildRPM "awips2-common-base"
|
|
buildRPM "awips2-notification"
|
|
buildEDEX
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-hydroapps-shared"
|
|
buildJava
|
|
buildRPM "awips2-python"
|
|
buildRPM "awips2-python-cherrypy"
|
|
buildRPM "awips2-python-nose"
|
|
buildRPM "awips2-python-pil"
|
|
buildRPM "awips2-python-jimporter"
|
|
buildRPM "awips2-python-qpid"
|
|
buildRPM "awips2-python-thrift"
|
|
buildRPM "awips2-python-werkzeug"
|
|
buildRPM "awips2-python-numpy"
|
|
buildRPM "awips2-python-pupynere"
|
|
buildRPM "awips2-python-h5py"
|
|
buildRPM "awips2-python-matplotlib"
|
|
buildRPM "awips2-python-scientific"
|
|
buildRPM "awips2-python-scipy"
|
|
buildRPM "awips2-python-tables"
|
|
buildRPM "awips2-python-pmw"
|
|
buildRPM "awips2-python-tpg"
|
|
buildRPM "awips2-python-ufpy"
|
|
buildRPM "awips2-python-dynamicserialize"
|
|
buildRPM "awips2-python-pycairo"
|
|
buildRPM "awips2-python-pygtk"
|
|
buildRPM "awips2-python-shapely"
|
|
buildRPM "awips2-ant"
|
|
buildRPM "awips2-tools"
|
|
buildRPM "awips2-postgres"
|
|
buildRPM "awips2-pgadmin3"
|
|
unpackHttpdPypies
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-httpd-pypies"
|
|
buildRPM "awips2-httpd-collaboration"
|
|
buildQPID
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-ldm"
|
|
buildCAVE
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-alertviz"
|
|
buildRPM "awips2-database-server-configuration"
|
|
buildRPM "awips2-database-standalone-configuration"
|
|
buildRPM "awips2-database"
|
|
buildRPM "awips2-maps-database"
|
|
buildRPM "awips2-ncep-database"
|
|
buildRPM "awips2-adapt-native"
|
|
buildRPM "awips2-aviation-shared"
|
|
buildRPM "awips2-cli"
|
|
buildRPM "awips2-edex-environment"
|
|
buildRPM "awips2-data.gfe"
|
|
buildRPM "awips2-data.hdf5-gfe.climo"
|
|
buildRPM "awips2-gfesuite-client"
|
|
buildRPM "awips2-gfesuite-server"
|
|
buildRPM "awips2-groovy"
|
|
buildRPM "awips2-localapps-environment"
|
|
buildLocalizationRPMs
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-pypies"
|
|
buildRPM "awips2-rcm"
|
|
buildRPM "awips2-data.hdf5-topo"
|
|
buildRPM "awips2"
|
|
buildOpenfire
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-postgres" ]; then
|
|
buildRPM "awips2-postgres"
|
|
buildRPM "awips2-database-server-configuration"
|
|
buildRPM "awips2-database-standalone-configuration"
|
|
buildRPM "awips2-database"
|
|
buildRPM "awips2-maps-database"
|
|
buildRPM "awips2-ncep-database"
|
|
buildRPM "awips2-pgadmin3"
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-delta" ]; then
|
|
buildRPM "awips2"
|
|
buildRPM "awips2-common-base"
|
|
buildCAVE
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-alertviz"
|
|
buildEDEX
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
buildRPM "awips2-ncep-database"
|
|
buildRPM "awips2-gfesuite-client"
|
|
buildRPM "awips2-gfesuite-server"
|
|
buildRPM "awips2-python-dynamicserialize"
|
|
buildRPM "awips2-python-ufpy"
|
|
|
|
buildRPM "awips2-aviation-shared"
|
|
buildRPM "awips2-cli"
|
|
buildRPM "awips2-database"
|
|
buildRPM "awips2-database-server-configuration"
|
|
buildRPM "awips2-database-standalone-configuration"
|
|
buildRPM "awips2-data.hdf5-gfe.climo"
|
|
buildRPM "awips2-gfesuite-client"
|
|
buildRPM "awips2-gfesuite-server"
|
|
buildRPM "awips2-localapps-environment"
|
|
buildRPM "awips2-maps-database"
|
|
buildRPM "awips2-notification"
|
|
buildRPM "awips2-pypies"
|
|
buildRPM "awips2-data.hdf5-topo"
|
|
buildRPM "awips2-data.gfe"
|
|
buildRPM "awips2-rcm"
|
|
buildLocalizationRPMs
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-full" ]; then
|
|
buildRPM "awips2-common-base"
|
|
buildCAVE
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-alertviz"
|
|
buildEDEX
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-python"
|
|
buildRPM "awips2-python-cherrypy"
|
|
buildRPM "awips2-python-dynamicserialize"
|
|
buildRPM "awips2-python-h5py"
|
|
buildRPM "awips2-python-jimporter"
|
|
buildRPM "awips2-python-matplotlib"
|
|
buildRPM "awips2-python-nose"
|
|
buildRPM "awips2-python-numpy"
|
|
buildRPM "awips2-python-pil"
|
|
buildRPM "awips2-python-pmw"
|
|
buildRPM "awips2-python-pupynere"
|
|
buildRPM "awips2-python-qpid"
|
|
buildRPM "awips2-python-scientific"
|
|
buildRPM "awips2-python-scipy"
|
|
buildRPM "awips2-python-tables"
|
|
buildRPM "awips2-python-thrift"
|
|
buildRPM "awips2-python-tpg"
|
|
buildRPM "awips2-python-ufpy"
|
|
buildRPM "awips2-python-werkzeug"
|
|
buildRPM "awips2-python-pygtk"
|
|
buildRPM "awips2-python-pycairo"
|
|
buildRPM "awips2-cli"
|
|
buildRPM "awips2-data.hdf5-gfe.climo"
|
|
buildRPM "awips2-gfesuite-client"
|
|
buildRPM "awips2-gfesuite-server"
|
|
buildRPM "awips2-localapps-environment"
|
|
buildRPM "awips2-data.hdf5-topo"
|
|
buildRPM "awips2-data.gfe"
|
|
buildRPM "awips2"
|
|
unpackHttpdPypies
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-httpd-pypies"
|
|
buildJava
|
|
buildRPM "awips2-groovy"
|
|
buildLocalizationRPMs
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-edex-environment"
|
|
buildRPM "awips2-notification"
|
|
buildRPM "awips2-python-shapely"
|
|
buildRPM "awips2-postgres"
|
|
buildRPM "awips2-database"
|
|
buildRPM "awips2-maps-database"
|
|
buildRPM "awips2-ncep-database"
|
|
buildRPM "awips2-pgadmin3"
|
|
buildRPM "awips2-ldm"
|
|
exit 0
|
|
fi
|
|
|
|
#if [ "${1}" = "-ade" ]; then
|
|
# echo "INFO: AWIPS II currently does not support a 64-bit version of the ADE."
|
|
# exit 0
|
|
# buildRPM "awips2-eclipse"
|
|
#
|
|
# exit 0
|
|
#fi
|
|
|
|
if [ "${1}" = "-ade" ]; then
|
|
buildRPM "awips2-eclipse"
|
|
buildJava
|
|
buildRPM "awips2-ant"
|
|
buildRPM "awips2-python"
|
|
buildRPM "awips2-python-cherrypy"
|
|
buildRPM "awips2-python-dynamicserialize"
|
|
buildRPM "awips2-python-h5py"
|
|
buildRPM "awips2-python-jimporter"
|
|
buildRPM "awips2-python-matplotlib"
|
|
buildRPM "awips2-python-nose"
|
|
buildRPM "awips2-python-numpy"
|
|
buildRPM "awips2-python-pil"
|
|
buildRPM "awips2-python-pmw"
|
|
buildRPM "awips2-python-pupynere"
|
|
buildRPM "awips2-python-qpid"
|
|
buildRPM "awips2-python-scientific"
|
|
buildRPM "awips2-python-scipy"
|
|
buildRPM "awips2-python-tables"
|
|
buildRPM "awips2-python-thrift"
|
|
buildRPM "awips2-python-tpg"
|
|
buildRPM "awips2-python-ufpy"
|
|
buildRPM "awips2-python-werkzeug"
|
|
buildRPM "awips2-python-pygtk"
|
|
buildRPM "awips2-python-pycairo"
|
|
buildRPM "awips2-python-shapely"
|
|
buildQPID -ade
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
# Package the ade.
|
|
# Create the containing directory.
|
|
ade_directory="awips2-ade-${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
|
|
if [ -d ${WORKSPACE}/${ade_directory} ]; then
|
|
rm -rf ${WORKSPACE}/${ade_directory}
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
fi
|
|
mkdir -p ${WORKSPACE}/${ade_directory}
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
# Copy the rpms to the directory.
|
|
cp -v ${AWIPSII_TOP_DIR}/RPMS/x86_64/* \
|
|
${AWIPSII_TOP_DIR}/RPMS/noarch/* \
|
|
${WORKSPACE}/${ade_directory}
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
awips2_ade_directory="${WORKSPACE}/rpms/awips2.ade"
|
|
# Copy the install and uninstall script to the directory.
|
|
cp -v ${awips2_ade_directory}/tar.ade/scripts/*.sh \
|
|
${WORKSPACE}/${ade_directory}
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
# Build the source jar file
|
|
#ade_work_dir="/home/dmsys/Dim12/build/AWIPS2/AWIPS2-ADE-OB14.1.1-CM"
|
|
#cd $ade_work_dir
|
|
#./build_source_jar.sh
|
|
#cp -v /tmp/awips-component/tmp/awips2-ade-baseline-SOURCES.jar ${WORKSPACE}/${ade_directory}
|
|
|
|
# Tar the directory.
|
|
pushd . > /dev/null 2>&1
|
|
cd ${WORKSPACE}
|
|
tar -cvf ${ade_directory}.tar ${ade_directory}
|
|
popd > /dev/null 2>&1
|
|
RC=$?
|
|
if [ ${RC} -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
exit 0
|
|
fi
|
|
|
|
|
|
if [ "${1}" = "-viz" ]; then
|
|
buildRPM "awips2"
|
|
buildRPM "awips2-common-base"
|
|
#buildRPM "awips2-python-numpy"
|
|
#buildRPM "awips2-ant"
|
|
#buildRPM "awips2-python-dynamicserialize"
|
|
#buildRPM "awips2-python"
|
|
#buildRPM "awips2-adapt-native"
|
|
#unpackHttpdPypies
|
|
#if [ $? -ne 0 ]; then
|
|
# exit 1
|
|
#fi
|
|
#buildRPM "awips2-httpd-pypies"
|
|
#buildRPM "awips2-hydroapps-shared"
|
|
#buildRPM "awips2-rcm"
|
|
#buildRPM "awips2-gfesuite-client"
|
|
#buildRPM "awips2-gfesuite-server"
|
|
#buildRPM "awips2-tools"
|
|
#buildRPM "awips2-cli"
|
|
buildCAVE
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
buildRPM "awips2-alertviz"
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-edex" ]; then
|
|
##buildRPM "awips2-common-base"
|
|
buildRPM "awips2"
|
|
buildEDEX
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
#buildRPM "awips2-python-dynamicserialize"
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-custom" ]; then
|
|
#buildQPID
|
|
#if [ $? -ne 0 ]; then
|
|
# exit 1
|
|
#fi
|
|
#buildRPM "awips2-adapt-native"
|
|
#buildRPM "awips2-hydroapps-shared"
|
|
#buildRPM "awips2-alertviz"
|
|
#buildRPM "awips2-python"
|
|
#buildRPM "awips2-alertviz"
|
|
buildRPM "awips2-ant"
|
|
#buildRPM "awips2-eclipse"
|
|
#buildRPM "awips2-python"
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-qpid" ]; then
|
|
buildRPM "awips2-python-qpid"
|
|
buildQPID
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-ldm" ]; then
|
|
buildRPM "awips2-ldm"
|
|
|
|
exit 0
|
|
fi
|
|
|
|
if [ "${1}" = "-package" ]; then
|
|
repository_directory="awips2-repository-${AWIPSII_VERSION}-${AWIPSII_RELEASE}"
|
|
if [ -d ${WORKSPACE}/${repository_directory} ]; then
|
|
rm -rf ${WORKSPACE}/${repository_directory}
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
fi
|
|
mkdir -p ${WORKSPACE}/${repository_directory}/${AWIPSII_VERSION}-${AWIPSII_RELEASE}
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
cp -r ${AWIPSII_TOP_DIR}/RPMS/* \
|
|
${WORKSPACE}/${repository_directory}/${AWIPSII_VERSION}-${AWIPSII_RELEASE}
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
rpms_directory="${WORKSPACE}/rpms"
|
|
comps_xml="${rpms_directory}/common/yum/arch.x86_64/comps.xml"
|
|
cp -v ${comps_xml} ${WORKSPACE}/${repository_directory}
|
|
if [ $? -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
pushd . > /dev/null
|
|
cd ${WORKSPACE}
|
|
tar -cvf ${repository_directory}.tar ${repository_directory}
|
|
RC=$?
|
|
popd > /dev/null
|
|
if [ ${RC} -ne 0 ]; then
|
|
exit 1
|
|
fi
|
|
|
|
exit 0
|
|
fi
|
|
|
|
usage
|
|
exit 0
|