From 4e1ddcb741ecb74814657e5ace1bcf34664be71c Mon Sep 17 00:00:00 2001 From: Ivan Davidov Date: Fri, 15 Jun 2018 22:24:17 +0300 Subject: [PATCH] Added 'Zulu JDK' as overlay bundle. --- src/.config | 2 + src/README | 5 +++ src/minimal_overlay/bundles/zulujdk/.config | 5 +++ src/minimal_overlay/bundles/zulujdk/01_get.sh | 38 +++++++++++++++++++ .../bundles/zulujdk/02_install.sh | 28 ++++++++++++++ src/minimal_overlay/bundles/zulujdk/bundle.sh | 10 +++++ .../bundles/zulujdk/bundle_deps | 2 + 7 files changed, 90 insertions(+) create mode 100644 src/minimal_overlay/bundles/zulujdk/.config create mode 100755 src/minimal_overlay/bundles/zulujdk/01_get.sh create mode 100755 src/minimal_overlay/bundles/zulujdk/02_install.sh create mode 100755 src/minimal_overlay/bundles/zulujdk/bundle.sh create mode 100644 src/minimal_overlay/bundles/zulujdk/bundle_deps diff --git a/src/.config b/src/.config index 58cd0324d..e54431a3e 100644 --- a/src/.config +++ b/src/.config @@ -156,6 +156,8 @@ OVERLAY_TYPE=folder # util_linux - executable utilities distributed by the Linux Kernel org. # vim - advanced text editor. # zlib - DEFLATE compression/decompression library. +# zulujdk - Zulu is certified build of OpenJDK with better support. + # # Refer to the README file for more information. # diff --git a/src/README b/src/README index 8d595a36e..7243c33ae 100644 --- a/src/README +++ b/src/README @@ -133,6 +133,11 @@ Currently available overlay bundles: ZLIB - software library used for data compression. + Zulu JDK - Zulu is an enterprise quality, certified build of OpenJDK + that can be deployed on multiple platforms. Zulu is free to + download, use and redistribute. This overlay bundle requires + GLIBC and ZLIB. + The overlay bundles can be found in this directory: minimal_overlay/bundles diff --git a/src/minimal_overlay/bundles/zulujdk/.config b/src/minimal_overlay/bundles/zulujdk/.config new file mode 100644 index 000000000..29e2f47c3 --- /dev/null +++ b/src/minimal_overlay/bundles/zulujdk/.config @@ -0,0 +1,5 @@ +# You can find the latest Open JDK archives here: +# +# http://jdk.java.net/9 +# +ZULUJDK_URL=http://cdn.azul.com/zulu/bin/zulu10.2+3-jdk10.0.1-linux_x64.tar.gz diff --git a/src/minimal_overlay/bundles/zulujdk/01_get.sh b/src/minimal_overlay/bundles/zulujdk/01_get.sh new file mode 100755 index 000000000..bb3c6422f --- /dev/null +++ b/src/minimal_overlay/bundles/zulujdk/01_get.sh @@ -0,0 +1,38 @@ +#!/bin/sh + +set -e + +. ../../common.sh + +# Read the common configuration properties. +DOWNLOAD_URL=`read_property ZULUJDK_URL` +USE_LOCAL_SOURCE=`read_property USE_LOCAL_SOURCE` + +# Grab everything after the last '/' character. +ARCHIVE_FILE=${DOWNLOAD_URL##*/} + +if [ "$USE_LOCAL_SOURCE" = "true" -a ! -f $MAIN_SRC_DIR/source/overlay/$ARCHIVE_FILE ] ; then + echo "Bundle $MAIN_SRC_DIR/source/overlay/$ARCHIVE_FILE is missing and will be downloaded." + USE_LOCAL_SOURCE="false" +fi + +cd $MAIN_SRC_DIR/source/overlay + +if [ ! "$USE_LOCAL_SOURCE" = "true" ] ; then + # Downloading Zulu JDK bundle file. The '-c' option allows the download to resume. + echo "Downloading Zulu JDK bundle from $DOWNLOAD_URL" + wget -c $DOWNLOAD_URL +else + echo "Using local Zulu JDK bundle $MAIN_SRC_DIR/source/overlay/$ARCHIVE_FILE" +fi + +# Delete folder with previously extracted Felix. +echo "Removing Zulu JDK work area. This may take a while." +rm -rf $WORK_DIR/overlay/$BUNDLE_NAME +mkdir $WORK_DIR/overlay/$BUNDLE_NAME + +# Extract Zulu JDK to folder 'work/overlay/zulujdk'. +# Full path will be something like 'work/overlay/zulujdk/jdk-9'. +tar -xvf $ARCHIVE_FILE -C $WORK_DIR/overlay/$BUNDLE_NAME + +cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/zulujdk/02_install.sh b/src/minimal_overlay/bundles/zulujdk/02_install.sh new file mode 100755 index 000000000..951aafcdc --- /dev/null +++ b/src/minimal_overlay/bundles/zulujdk/02_install.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +set -e + +. ../../common.sh + +cd $WORK_DIR/overlay/$BUNDLE_NAME +mv `ls -d *` $BUNDLE_NAME + +mkdir opt +mv zulujdk opt + +mkdir $WORK_DIR/overlay/$BUNDLE_NAME/bin +cd $WORK_DIR/overlay/$BUNDLE_NAME/bin + +for FILE in $(ls ../opt/$BUNDLE_NAME/bin) +do + ln -s ../opt/$BUNDLE_NAME/bin/$FILE $FILE +done + +# With '--remove-destination' all possibly existing soft links in +# '$OVERLAY_ROOTFS' will be overwritten correctly. +cp -r --remove-destination $WORK_DIR/overlay/$BUNDLE_NAME/* \ + $OVERLAY_ROOTFS + +echo "Zulu JDK has been installed." + +cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/zulujdk/bundle.sh b/src/minimal_overlay/bundles/zulujdk/bundle.sh new file mode 100755 index 000000000..0be2a10d3 --- /dev/null +++ b/src/minimal_overlay/bundles/zulujdk/bundle.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +. ../../common.sh + +./01_get.sh +./02_install.sh + +cd $SRC_DIR diff --git a/src/minimal_overlay/bundles/zulujdk/bundle_deps b/src/minimal_overlay/bundles/zulujdk/bundle_deps new file mode 100644 index 000000000..61861db9e --- /dev/null +++ b/src/minimal_overlay/bundles/zulujdk/bundle_deps @@ -0,0 +1,2 @@ +glibc_full +zlib