Issue #1741 - what was once two is now one

- a single awips2-common-base rpm is now built for the com.raytheon.uf.common.base.feature feature
- this rpm will install the CAVE and/or EDEX artifacts


Former-commit-id: b954bc17bf [formerly 99f92bf3c9e8c3e767ec25bc8fb370e53ec43f50]
Former-commit-id: 7fd035256d
This commit is contained in:
Bryan Kowal 2013-03-18 16:36:33 -05:00
parent 55095f0041
commit 66e2ed79ec
9 changed files with 272 additions and 41 deletions

View file

@ -155,6 +155,9 @@
<param name="omit"
value="true" />
</antcall>
<!--
we will still build this for the MSFT Windows CAVE.
-->
<antcall target="p2.build.repo">
<param name="feature"
value="com.raytheon.uf.common.base.feature" />
@ -460,20 +463,32 @@
</delete>
</then>
</if>
<!-- Remove 'com.raytheon.uf.viz.collaboration.product.feature' -->
<if>
<available
file="${basedir}/cave/p2/features/com.raytheon.uf.viz.collaboration.product.feature"
type="dir" />
<then>
<delete includeemptydirs="true">
<fileset
dir="${basedir}/cave/p2/features/com.raytheon.uf.viz.collaboration.product.feature"
/>
</delete>
</then>
</if>
<!-- Remove 'com.raytheon.uf.common.base.feature' -->
<if>
<available
file="${basedir}/cave/p2/features/com.raytheon.uf.common.base.feature"
type="dir" />
<then>
<delete includeemptydirs="true">
<fileset
dir="${basedir}/cave/p2/features/com.raytheon.uf.common.base.feature"
/>
</delete>
</then>
</if>
<!-- Remove 'com.raytheon.uf.viz.collaboration.product.feature' -->
<if>
<available
file="${basedir}/cave/p2/features/com.raytheon.uf.viz.collaboration.product.feature"
type="dir" />
<then>
<delete includeemptydirs="true">
<fileset
dir="${basedir}/cave/p2/features/com.raytheon.uf.viz.collaboration.product.feature"
/>
</delete>
</then>
</if>
</target>
<taskdef resource="net/sf/antcontrib/antlib.xml"

View file

@ -18,7 +18,6 @@
value="org.eclipse.equinox.launcher_1.1.0.v20100507.jar" />
<target name="main" depends="clean">
<antcall target="build">
<param name="feature"
value="com.raytheon.uf.common.base.feature" />
@ -135,6 +134,39 @@
</classpath>
</java>
</target>
<target name="buildHybrid" depends="clean">
<echo message="feature=com.raytheon.uf.common.base.feature" />
<java
classname="org.eclipse.core.launcher.Main"
fork="true"
failonerror="true">
<arg value="-application" />
<arg value="org.eclipse.ant.core.antRunner" />
<arg value="-buildfile" />
<arg value="${uframe.eclipse}/plugins/${pde.build.script}" />
<arg value="-DbaseLocation=${uframe.eclipse}" />
<arg value="-Dbuilder=${basedir}/edex" />
<arg value="-DbuildDirectory=${basedir}/edex/tmp" />
<arg value="-DtopLevelElementId=com.raytheon.uf.common.base.feature" />
<arg value="-Dbase=${basedir}/edex" />
<arg value="-Dconfigs=${build.os},${build.ws},${build.arch}" />
<arg value="-Dgenerate.p2.metadata=true" />
<arg value="-Dp2.metadata.repo=file:/${basedir}/edex/postBuild/awips2/cave/.repository" />
<arg value="-Dp2.artifact.repo=file:/${basedir}/edex/postBuild/awips2/cave/.repository" />
<arg value="-Dp2.publish.artifacts=true" />
<arg value="-DgenerateVersionsList=true" />
<classpath>
<pathelement
location="${uframe.eclipse}/plugins/${eclipse.launcher.jar}" />
</classpath>
</java>
<antcall target="clean" />
</target>
<target name="clean">
<if>

View file

@ -52,7 +52,8 @@ collectingFolder=${archivePrefix}
#The format of the archive. By default a zip is created using antZip.
#The list can only contain the configuration for which the desired format is different than zip.
archivesFormat=linux, gtk, x86 - folder
archivesFormat=linux, gtk, x86 - folder &\
linux, gtk, x86_64 - folder
#archivesFormat=win32, win32, x86 - antZip& \
# linux, gtk, ppc - antZip &\
# linux, gtk, x86 - antZip& \

View file

@ -183,36 +183,28 @@ function buildFeatureRPMs()
for feature in `cat ${CONST_FEATURES_TXT}`;
do
echo "feature = ${feature}"
if [ "${feature}" = "com.raytheon.uf.common.base.feature" ]; then
echo 'export COMPONENT_NAME="awips2-cave-common-base"' > \
continue
fi
echo "feature = ${feature}"
if [ "${feature}" = "com.raytheon.uf.viz.cots.feature" ]; then
echo 'export COMPONENT_NAME="awips2-cave-viz-cots"' > \
${CONST_SETUP_DIR}/feature.setup
echo 'export COMPONENT_FEATURE="${feature}"' >> \
${CONST_SETUP_DIR}/feature.setup
echo 'export COMPONENT_DESC="awips2-cave-common-base"' >> \
echo 'export COMPONENT_DESC="awips2-cave-viz-cots"' >> \
${CONST_SETUP_DIR}/feature.setup
echo 'export DOWNSTREAM_REQUIRES="awips2-cave"' >> \
${CONST_SETUP_DIR}/feature.setup
echo 'export DOWNSTREAM_REQUIRES="awips2-common-base"' >> \
${CONST_SETUP_DIR}/feature.setup
else
if [ "${feature}" = "com.raytheon.uf.viz.cots.feature" ]; then
echo 'export COMPONENT_NAME="awips2-cave-viz-cots"' > \
${CONST_SETUP_DIR}/feature.setup
echo 'export COMPONENT_FEATURE="${feature}"' >> \
${CONST_SETUP_DIR}/feature.setup
echo 'export COMPONENT_DESC="awips2-cave-viz-cots"' >> \
${CONST_SETUP_DIR}/feature.setup
echo 'export DOWNSTREAM_REQUIRES="awips2-cave-common-base"' >> \
${CONST_SETUP_DIR}/feature.setup
else
java -jar ${PROCESS_FEATURE_JAR} \
-p \
${CONST_FEATURE_DIR}/${feature} \
${CONST_SETUP_DIR_FULL}
RC=$?
if [ ${RC} -ne 0 ]; then
echo "ERROR: ${PROCESS_FEATURE_JAR} Failed."
exit 1
fi
java -jar ${PROCESS_FEATURE_JAR} \
-p \
${CONST_FEATURE_DIR}/${feature} \
${CONST_SETUP_DIR_FULL}
if [ $? -ne 0 ]; then
echo "ERROR: ${PROCESS_FEATURE_JAR} Failed."
exit 1
fi
fi

View file

@ -0,0 +1,178 @@
%define _build_arch %(uname -i)
%define _zip_file common-base.zip
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g')
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g')
#
# AWIPS II CAVE/EDEX common base Spec File
#
Name: awips2-common-base
Summary: AWIPS II Edex
Version: %{_component_version}
Release: %{_component_release}
Group: AWIPSII
BuildRoot: %{_build_root}
BuildArch: %{_build_arch}
URL: N/A
License: N/A
Distribution: N/A
Vendor: Raytheon
Packager: Bryan Kowal
AutoReq: no
provides: awips2-common-base
requires: awips2-base-component
%description
AWIPS II Common Base - Contains common plugins utilized by both EDEX and CAVE.
%prep
# Ensure that a "buildroot" has been specified.
if [ "%{_build_root}" = "" ]; then
echo "ERROR: A BuildRoot has not been specified."
echo "FATAL: Unable to Continue ... Terminating."
exit 1
fi
if [ -d %{_build_root} ]; then
rm -rf %{_build_root}
fi
/bin/mkdir %{_build_root}
if [ $? -ne 0 ]; then
exit 1
fi
%build
_hybrid_target=buildHybrid
_build_xml=build.xml
BUILD_EDEX=%{_baseline_workspace}/build.edex
EDEX_DIST=${BUILD_EDEX}/edex/dist
_pde_build_arch=x86
if [ "%{_build_arch}" = "x86_64" ]; then
_pde_build_arch=%{_build_arch}
fi
cd ${BUILD_EDEX}
/awips2/ant/bin/ant -f ${_build_xml} \
-Dbuild.arch=${_pde_build_arch} ${_hybrid_target}
if [ $? -ne 0 ]; then
exit 1
fi
%install
BUILD_EDEX=%{_baseline_workspace}/build.edex
EDEX_DIST=${BUILD_EDEX}/edex/dist
/usr/bin/unzip ${EDEX_DIST}/common-base.zip -d %{_build_root}
if [ $? -ne 0 ]; then
exit 1
fi
%pre
%post
# Set all paths required by CAVE before installing.
export LD_LIBRARY_PATH=/awips2/java/lib:/awips2/python/lib:$LD_LIBRARY_PATH
export LD_PRELOAD=libpython.so
if [ -d /awips2/cave/lib ]; then
export LD_LIBRARY_PATH=/awips2/cave/lib/lib_illusion:$LD_LIBRARY_PATH
fi
if [ -d /awips2/cave/lib64 ]; then
export LD_LIBRARY_PATH=/awips2/cave/lib64/lib_illusion:$LD_LIBRARY_PATH
fi
# Need to use awips2-java to do this.
export PATH=/awips2/java/bin:/awips2/python/bin:${PATH}
export JAVA_HOME="/awips2/java/jre"
# Set the CAVE logfile location.
export LOGFILE_CAVE=/dev/null
# Use the eclipse p2 manager.
CAVE_EXE="/awips2/cave/cave"
NOSPLASH_ARG="-nosplash"
DIRECTOR_APP="-application org.eclipse.equinox.p2.director"
DESTINATION_ARG="-destination /awips2/cave"
INSTALL_ARG="-i com.raytheon.uf.common.base.feature.feature.group"
UNINSTALL_ARG="-u com.raytheon.uf.common.base.feature.feature.group"
REPO="-repository file:/awips2/cave/.repository/"
COMMON_CMD="${CAVE_EXE} ${NOSPLASH_ARG} ${DIRECTOR_APP} ${DESTINATION_ARG}"
INSTALL_CMD="${COMMON_CMD} ${INSTALL_ARG} ${REPO}"
UNINSTALL_CMD="${COMMON_CMD} ${UNINSTALL_ARG}"
# EDEX installed?
# when the plugins are for EDEX, we just leave
# them on the filesystem; no action required.
rpm -q awips2-edex > /dev/null 2>&1
if [ $? -ne 0 ]; then
# remove the edex plugins
rm -rf /awips2/edex
fi
# CAVE installed?
# when the plugins are for CAVE, we need to
# use the p2 director to install from a repository.
rpm -q awips2-cave > /dev/null 2>&1
if [ $? -eq 0 ]; then
# Uninstall any existing components since the p2 director does not
# support updating.
# If the feature is not installed, this does not fail quietly.
# Determine if the feature needs to be uninstalled.
${UNINSTALL_CMD} -verifyOnly > /dev/null 2>&1
if [ $? -eq 0 ]; then
LOG_TIMESTAMP=`date`
echo "uninstall previous STARTED: ${LOG_TIMESTAMP}"
${UNINSTALL_CMD}
LOG_TIMESTAMP=`date`
echo "uninstall previous COMPLETE: ${LOG_TIMESTAMP}"
fi
# complete the install
LOG_TIMESTAMP=`date`
echo "installation STARTED: ${LOG_TIMESTAMP}"
${INSTALL_CMD}
if [ $? -ne 0 ]; then
exit 1
fi
LOG_TIMESTAMP=`date`
echo "installation COMPLETE: ${LOG_TIMESTAMP}"
# remove the repository
if [ -f /awips2/cave/.repository/artifacts.xml ]; then
rm -f /awips2/cave/.repository/artifacts.xml
fi
if [ -f /awips2/cave/.repository/content.xml ]; then
rm -f /awips2/cave/.repository/content.xml
fi
if [ -d /awips2/cave/.repository/features ]; then
rm -rf /awips2/cave/.repository/features
fi
if [ -d /awips2/cave/.repository/plugins ]; then
rm -rf /awips2/cave/.repository/plugins
fi
else
# remove the cave repository
rm -rf /awips2/cave
fi
%preun
%postun
%clean
rm -rf ${RPM_BUILD_ROOT}
%files
%defattr(644,awips,fxalpha,755)
%dir /awips2
%dir /awips2/edex
/awips2/edex/*
%dir /awips2/cave/.repository
/awips2/cave/.repository/*

View file

@ -172,7 +172,8 @@ do
# do not build edex-datadelivery since it is now built differently from the other edex feature rpms
# since this is currently the only case, the exclusion will be hard-coded
if [ ! "${edex_component}" = "edex-datadelivery" ]; then
if [ ! "${edex_component}" = "edex-datadelivery" ] &&
[ ! "${edex_component}" = "common-base" ]; then
export COMPONENT_NAME="${edex_component}"
buildRPM "Installer.edex-component"
fi

View file

@ -200,6 +200,10 @@ function lookupRPM()
export RPM_SPECIFICATION="${awips2_core_dir}/Installer.version"
return 0
fi
if [ "${1}" = "awips2-common-base" ]; then
export RPM_SPECIFICATION="${awips2_core_dir}/Installer.common-base"
return 0
fi
# foss rpms.
if [ "${1}" = "-qpid" ]; then

View file

@ -142,6 +142,7 @@ if [ "${1}" = "-postgres" ]; then
fi
if [ "${1}" = "-delta" ]; then
buildRPM "awips2-common-base"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
@ -185,6 +186,7 @@ if [ "${1}" = "-delta" ]; then
fi
if [ "${1}" = "-full" ]; then
buildRPM "awips2-common-base"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
@ -340,6 +342,7 @@ fi
if [ "${1}" = "-viz" ]; then
buildRPM "awips2"
buildRPM "awips2-common-base"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
@ -351,6 +354,7 @@ fi
if [ "${1}" = "-edex" ]; then
buildRPM "awips2"
buildRPM "awips2-common-base"
buildRPM "awips2-cli"
buildRPM "awips2-gfesuite-client"
buildRPM "awips2-gfesuite-server"

View file

@ -134,6 +134,7 @@ if [ "${1}" = "-postgres" ]; then
fi
if [ "${1}" = "-delta" ]; then
buildRPM "awips2-common-base"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
@ -164,6 +165,7 @@ if [ "${1}" = "-delta" ]; then
fi
if [ "${1}" = "-full" ]; then
buildRPM "awips2-common-base"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
@ -229,6 +231,7 @@ if [ "${1}" = "-ade" ]; then
fi
if [ "${1}" = "-viz" ]; then
buildRPM "awips2-common-base"
buildCAVE
if [ $? -ne 0 ]; then
exit 1
@ -239,6 +242,7 @@ if [ "${1}" = "-viz" ]; then
fi
if [ "${1}" = "-edex" ]; then
buildRPM "awips2-common-base"
buildEDEX
if [ $? -ne 0 ]; then
exit 1