awips2/rpms/awips2.core/Installer.java/1.7/component.spec
2016-10-13 17:53:40 -05:00

251 lines
6.2 KiB
RPMSpec

%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-java-repack-jars[[:space:]].*$!!g')
%define _java_major_version 1.7
%define _java_revision 80
%define _java_version %{_java_major_version}.0_%{_java_revision}
%define _build_arch %(uname -i)
%define _java_build_loc %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
#
# AWIPS II Java 1.7 Spec File
#
Name: awips2-java
Summary: AWIPS II Java Distribution
Version: %{_java_version}
Release: 1
Group: AWIPSII
BuildRoot: %{_build_root}
BuildArch: %{_build_arch}
URL: N/A
License: N/A
Distribution: N/A
Vendor: %{_build_vendor}
Packager: %{_build_site}
AutoReq: no
provides: awips2-java
%description
AWIPS II Java Distribution - Contains Java SE Development Kit (JDK) 1.7.0_65
plus additional libraries used by AWIPS II.
%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}
if [ $? -ne 0 ]; then
exit 1
fi
fi
if [ -d %{_java_build_loc} ]; then
rm -rf %{_java_build_loc}
fi
mkdir -p %{_java_build_loc}
%build
%install
build_arch=
arch_directory=
# determine the architecture based on the system architecture.
if [ "%{_build_arch}" = "x86_64" ]; then
build_arch="amd64"
arch_directory="x86_64"
jdk_arch="x64"
else
if [ "%{_build_arch}" = "i386" ]; then
build_arch="i586"
arch_directory="i386"
jdk_arch=${build_arch}
else
echo "ERROR: Unrecognized architecture '%{_build_arch}."
exit 1
fi
fi
JDK_BIN_var_javahome="jdk%{_java_version}"
jdk_tar="jdk-7u%{_java_revision}-linux-${jdk_arch}.tar.gz"
jai_bin="jai-1_1_3-lib-linux-${build_arch}-jdk.bin"
jai_imageio_bin="jai_imageio-1_1-lib-linux-${build_arch}-jdk.bin"
jai_bin_patch="jai.patch1"
jai_imageio_bin_patch="jai_imageio.patch1"
pydev_cert="pydev_certificate.cer"
# locate the java src.
CORE_PROJECT_DIR="%{_baseline_workspace}/rpms/awips2.core"
INSTALLER_JAVA="${CORE_PROJECT_DIR}/Installer.java"
JAVA_SRC_DIR="${INSTALLER_JAVA}/%{_java_major_version}/src"
JAVA_COMMON_DIR="${INSTALLER_JAVA}/common"
JAVA_SCRIPTS_DIR="${JAVA_COMMON_DIR}/scripts"
JAVA_COMMON_SRC_DIR="${JAVA_COMMON_DIR}/src/${arch_directory}"
JAVA_ARCH_SRC_DIR="${JAVA_SRC_DIR}/${arch_directory}"
pushd . > /dev/null
cd ${JAVA_ARCH_SRC_DIR}
/bin/tar -xvf ${jdk_tar} -C %{_java_build_loc}
if [ $? -ne 0 ]; then
exit 1
fi
popd > /dev/null
pushd . > /dev/null
cd ${JAVA_COMMON_SRC_DIR}
/usr/bin/patch -i ${jai_bin_patch} \
-o %{_java_build_loc}/${jai_bin}
if [ $? -ne 0 ]; then
exit 1
fi
/usr/bin/patch -i ${jai_imageio_bin_patch} \
-o %{_java_build_loc}/${jai_imageio_bin}
if [ $? -ne 0 ]; then
exit 1
fi
popd > /dev/null
mkdir -p %{_build_root}/awips2/java
if [ $? -ne 0 ]; then
exit 1
fi
chmod a+x %{_java_build_loc}/*.bin
pushd . > /dev/null
cd %{_build_root}/awips2/java
# Used to automatically agree to software licenses.
touch yes.txt
echo "yes" > yes.txt
/bin/mv %{_java_build_loc}/${JDK_BIN_var_javahome}/* .
if [ $? -ne 0 ]; then
exit 1
fi
%{_java_build_loc}/${jai_bin} < yes.txt
if [ $? -ne 0 ]; then
exit 1
fi
%{_java_build_loc}/${jai_imageio_bin} < yes.txt
if [ $? -ne 0 ]; then
exit 1
fi
rm -fv yes.txt
if [ $? -ne 0 ]; then
exit 1
fi
popd > /dev/null
# The pydev certificate.
cp -v ${JAVA_COMMON_DIR}/src/${pydev_cert} \
%{_build_root}/awips2/java/jre/lib/security
if [ $? -ne 0 ]; then
exit 1
fi
touch changeit.txt
echo "changeit" > changeit.txt
chmod 666 %{_build_root}/awips2/java/jre/lib/security/cacerts
if [ $? -ne 0 ]; then
exit 1
fi
%{_build_root}/awips2/java/bin/keytool -import \
-file %{_build_root}/awips2/java/jre/lib/security/pydev_certificate.cer \
-keystore %{_build_root}/awips2/java/jre/lib/security/cacerts \
-noprompt < changeit.txt
rm -fv changeit.txt
if [ $? -ne 0 ]; then
exit 1
fi
# Remove jrockit missioncontrol
rm -rf %{_build_root}/awips2/java/lib/missioncontrol
rm -f %{_build_root}/awips2/java/bin/jmc.ini
rm -f %{_build_root}/awips2/java/bin/jmc
# The licenses
mkdir -p %{_build_root}/awips2/java/licenses
LEGAL_DIR="%{_baseline_workspace}/rpms/legal"
cp -v ${LEGAL_DIR}/*.pdf \
%{_build_root}/awips2/java/licenses
if [ $? -ne 0 ]; then
exit 1
fi
%pre
if [ "${1}" = "2" ]; then
# Upgrade. Removing the existing /awips2/java/man
# directory to prevent conflicts.
if [ -d /awips2/java/man ]; then
rm -rf /awips2/java/man
if [ $? -ne 0 ]; then
echo "ERROR: The awips2-java upgrade has FAILED."
exit 1
fi
fi
fi
%post
%preun
%postun
%clean
rm -rf ${RPM_BUILD_ROOT}
rm -rf %{_java_build_loc}
%files
%defattr(644,awips,fxalpha,755)
%dir /awips2/java
%dir /awips2/java/bin
%doc /awips2/java/COPYRIGHT
%doc /awips2/java/COPYRIGHT-jai_imageio.txt
%doc /awips2/java/COPYRIGHT-jai.txt
%doc /awips2/java/DISTRIBUTIONREADME-jai_imageio.txt
%doc /awips2/java/DISTRIBUTIONREADME-jai.txt
%doc /awips2/java/ENTITLEMENT-jai_imageio.txt
%doc /awips2/java/jre/README
%doc /awips2/java/jre/THIRDPARTYLICENSEREADME.txt
%doc /awips2/java/jre/Welcome.html
%doc /awips2/java/jre/LICENSE
%doc /awips2/java/LICENSE
%doc /awips2/java/LICENSE-jai_imageio.txt
%doc /awips2/java/LICENSE-jai.txt
%docdir /awips2/java/licenses
%dir /awips2/java/licenses
/awips2/java/licenses/*
%docdir /awips2/java/man
%dir /awips2/java/man
/awips2/java/man/*
%doc /awips2/java/README.html
%doc /awips2/java/THIRDPARTYLICENSEREADME-jai_imageio.txt
%doc /awips2/java/THIRDPARTYLICENSEREADME-jai.txt
%doc /awips2/java/THIRDPARTYLICENSEREADME.txt
%doc /awips2/java/THIRDPARTYLICENSEREADME-JAVAFX.txt
%doc /awips2/java/jre/THIRDPARTYLICENSEREADME-JAVAFX.txt
%doc /awips2/java/release
%doc /awips2/java/UNINSTALL-jai
%doc /awips2/java/UNINSTALL-jai_imageio
%doc /awips2/java/jre/COPYRIGHT
%dir /awips2/java/db
/awips2/java/db/*
%dir /awips2/java/include
/awips2/java/include/*
%dir /awips2/java/jre
#/awips2/java/jre/.systemPrefs/.systemRootModFile
%dir /awips2/java/jre/bin
%dir /awips2/java/jre/lib
%dir /awips2/java/jre/plugin
/awips2/java/jre/plugin/*
%dir /awips2/java/lib
/awips2/java/src.zip
%defattr(755,awips,fxalpha,755)
/awips2/java/bin/*
/awips2/java/lib/*
/awips2/java/jre/bin/*
/awips2/java/jre/lib/*