Mypal/taskcluster/scripts/misc/repackage-jdk-centos.sh

46 lines
1.6 KiB
Bash

#! /bin/bash
set -e -x
mkdir -p artifacts
pushd build
rm -rf root && mkdir root && cd root
# change these variables when updating java version
mirror_url_base="http://mirror.centos.org/centos/6.7/updates/x86_64/Packages"
openjdk=java-1.7.0-openjdk-1.7.0.85-2.6.1.3.el6_7.x86_64.rpm
openjdk_devel=java-1.7.0-openjdk-devel-1.7.0.85-2.6.1.3.el6_7.x86_64.rpm
jvm_openjdk_dir=java-1.7.0-openjdk-1.7.0.85.x86_64
# grab the rpm and unpack it
wget ${mirror_url_base}/${openjdk}
wget ${mirror_url_base}/${openjdk_devel}
rpm2cpio $openjdk | cpio -ivd
rpm2cpio $openjdk_devel | cpio -ivd
cd usr/lib/jvm
mv $jvm_openjdk_dir java_home
# cacerts is a relative symlink, which doesn't work when we repackage. Make it
# absolute. We could use tar's --dereference option, but there's a subtle
# difference between making the symlink absolute and using --dereference.
# Making the symlink absolute lets the consuming system set the cacerts; using
# --dereference takes the producing system's cacerts and sets them in stone. We
# prefer the flexibility of the former.
rm java_home/jre/lib/security/cacerts
ln -s /etc/pki/java/cacerts java_home/jre/lib/security/cacerts
# document version this is based on
echo "Built from ${mirror_url_Base}
${openjdk}
${openjdk_devel}
Run through rpm2cpio | cpio, and /usr/lib/jvm/${jvm_openjdk_dir} renamed to 'java_home'." > java_home/VERSION
# tarball the unpacked rpm and put it in the taskcluster upload artifacts dir
tar -Jvcf java_home-${jvm_openjdk_dir}.tar.xz java_home
popd
mv build/root/usr/lib/jvm/java_home-${jvm_openjdk_dir}.tar.xz artifacts