X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=utils%2Fdownload_jres.sh;h=c1a5a0d24ba49a3c032cb9957fa380af2aebe773;hb=b26bea3c3421ce3e233dc18d3077b231f972c5f8;hp=26442ea8a0c904a85669a57618d749054d0dacc6;hpb=defcc28d1949572575b1ae86d29f2bbaeb683db7;p=jalview.git diff --git a/utils/download_jres.sh b/utils/download_jres.sh index 26442ea..c1a5a0d 100755 --- a/utils/download_jres.sh +++ b/utils/download_jres.sh @@ -15,6 +15,7 @@ ### Edited to use adoptium domain to gain access to Java 17 (LTS) versions. BASE=https://api.adoptium.net/v3/binary/latest +ZULU_BASE=https://cdn.azul.com/zulu/bin RELEASE_TYPE=ga JVM_IMPL=hotspot HEAP_SIZE=normal @@ -31,7 +32,7 @@ CREATE_ARCHIVES="zip tgz" RM=/bin/rm # unzip-strip from https://superuser.com/questions/518347/equivalent-to-tars-strip-components-1-in-unzip -unzip-strip() ( +unzip-strip() { local zip=$1 local dest=${2:-.} local temp=$(mktemp -d) && $UNZIP -qq -d "$temp" "$zip" && mkdir -p "$dest" && @@ -41,7 +42,36 @@ unzip-strip() ( else mv "$temp"/* "$dest" fi && rmdir "$temp"/* "$temp" -) +} + +dl_zulu() { + local OS="$1" + local ARCH="$2" + local VERSION="$3" + local TARFILE="$4" + declare -A osmap + osmap[mac]=macosx + osmap[windows]=win + osmap[linux]=linux + ZOS="${osmap[$OS]}" + echo "- Looking for download from Azul" + LATEST_DL_URL_FILE=$(wget -q -O - "${ZULU_BASE}/" | perl -n -e 'm/]*href="(([^"]*\/)?zulu[^"]*-ca-'"${IMAGE_TYPE}""${VERSION}"'\.[^"]*-'"${ZOS}"'_'"${ARCH}"'.tar.gz)"[^"]*>/ && print "$1\n";' | tail -1) + local URL="${ZULU_BASE}/${LATEST_DL_URL_FILE}" + if [ -z "${LATEST_DL_URL_FILE}" ]; then + echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}' found at Azul" + return 1 + fi + echo "- Found at Azul. Downloading '${URL}'" + wget -q -O "${TARFILE}" "${URL}" "${TARFILE}" + echo RETURN=$? + if [ "$?" != 0 ]; then + echo "- Download from Azul failed" + return 1 + fi + return 0 +} + +declare -A DOWNLOAD_SUMMARY for FEATURE_VERSION in 8 11 17; do for OS_ARCH in mac:x64 mac:aarch64 windows:x64 linux:x64 linux:arm linux:aarch64; do @@ -49,13 +79,30 @@ for FEATURE_VERSION in 8 11 17; do ARCH=${OS_ARCH#*:} NAME="${IMAGE_TYPE}-${FEATURE_VERSION}-${OS}-${ARCH}" TARFILE="${NAME}.tgz" + DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="None" + STRIP_COMPONENTS=1 + MAC_STRIP_COMPONENTS=3 echo "* Downloading ${TARFILE}" URL="${BASE}/${FEATURE_VERSION}/${RELEASE_TYPE}/${OS}/${ARCH}/${IMAGE_TYPE}/${JVM_IMPL}/${HEAP_SIZE}/${VENDOR}" wget -q -O "${TARFILE}" "${URL}" if [ "$?" != 0 ]; then - echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}'" + echo "- No ${IMAGE_TYPE}-${FEATURE_VERSION} download for ${OS}-${ARCH} '${URL}' at Adoptium" $RM -f "${TARFILE}" - continue; + + # Try Azul Zulu (not an API, a bit messier, but has Java 8 JRE for mac:aarch64 + dl_zulu "${OS}" "${ARCH}" "${FEATURE_VERSION}" "${TARFILE}" + + if [ "$?" != 0 ]; then + DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="None" + continue; + fi + STRIP_COMPONENTS=2 + MAC_STRIP_COMPONENTS=4 + DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="Azul" + echo "Set ${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}=Azul" + else + DOWNLOAD_SUMMARY["${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}"]="Adoptium" + echo "Set ${OS_ARCH}-${IMAGE_TYPE}-${FEATURE_VERSION}=Adoptium" fi echo "Unpacking ${TARFILE}" JREDIR="${NAME}/${IMAGE_TYPE}" @@ -68,10 +115,11 @@ for FEATURE_VERSION in 8 11 17; do else echo "using tar" if [ x$OS = xmac -a x$STRIP_MAC_APP_BUNDLING = xtrue ]; then - $TAR --strip-components=3 -C "${JREDIR}" -zxf "${TARFILE}" "*/Contents/Home" + echo "Running $TAR --strip-components=\"${MAC_STRIP_COMPONENTS}\" -C \"${JREDIR}\" -zxf \"${TARFILE}\" \"*/Contents/Home\"" + $TAR --strip-components="${MAC_STRIP_COMPONENTS}" -C "${JREDIR}" -zxf "${TARFILE}" "*/Contents/Home" RET=$? else - $TAR --strip-components=1 -C "${JREDIR}" -zxf "${TARFILE}" + $TAR --strip-components="${STRIP_COMPONENTS}" -C "${JREDIR}" -zxf "${TARFILE}" RET=$? fi fi @@ -115,3 +163,9 @@ for FEATURE_VERSION in 8 11 17; do done done +echo "" +echo "Download Summary" +for OA in "${!DOWNLOAD_SUMMARY[@]}"; do + echo "$OA: ${DOWNLOAD_SUMMARY[$OA]}" +done +