Path: blob/buildjre8/repackjre.sh
861 views
#!/bin/bash1set -e23## Usage:4## ./repackjre.sh [path_to_normal_jre_tarballs] [output_path]56# set args7export in="$1"8export out="$2"910# set working dirs11work="$in/work"12work1="$in/work1"1314# make sure paths exist15mkdir -p $work16mkdir -p $work117mkdir -p "$out"1819compress_jars(){20find ./ -name '*.jar' -execdir pack200 -S-1 -g -G -E9 {}.pack {} \;21find ./ -name '*.jar' -execdir rm {} \;22}2324# here comes a not-so-complicated functions to easily make desired arch25## Usage: makearch [jre_libs_dir_name] [name_in_tarball]26makearch () {27echo "Making $2...";28cd "$work";29tar xf $(find "$in" -name jre8-$2-*release.tar.xz) > /dev/null;3031# Remove unused stuff before moving it32rm bin/rmid33rm bin/keytool34rm bin/rmiregistry35rm bin/tnameserv36rm bin/policytool37rm bin/orbd38rm bin/servertool3940mv release "$work1"/;41mv bin "$work1"/;42mkdir -p "$work1"/lib;43mv lib/$1 "$work1"/lib/;44mv lib/jexec "$work1"/lib/;454647484950XZ_OPT="-6 --threads=0" tar cJf bin-$2.tar.xz -C "$work1" . > /dev/null 2>&1;51mv bin-$2.tar.xz "$out"/;52rm -rf "$work"/*;53rm -rf "$work1"/*;54}5556# this one's static57makeuni () {58echo "Making universal...";59cd "$work";60tar xf $(find "$in" -name jre8-arm64-*release.tar.xz) > /dev/null; rm -rf bin;61rm -rf lib/aarch64;62rm lib/jexec;63rm release;6465#find ./lib/ext ! -name 'zipfs.jar' -type f -exec rm -f {} +66rm -rf lib/jfr67rm -rf man6869compress_jars70XZ_OPT="-6 --threads=0" tar cJf universal.tar.xz * > /dev/null 2>&1;71mv universal.tar.xz "$out"/;72rm -rf "$work"/*;73}74757677# now time to use them!78makeuni79makearch aarch32 arm80makearch aarch64 arm6481makearch i386 x8682makearch amd64 x86_648384# if running under GitHub Actions, write commit sha, else formatted system date85if [[ -n "$GITHUB_SHA" ]]86then87echo $GITHUB_SHA>"$out"/version88else89date +%Y%m%d>"$out"/version90fi919293