diff --git a/jb/project/tools/common.sh b/jb/project/tools/common.sh deleted file mode 100644 index 245b10956638..000000000000 --- a/jb/project/tools/common.sh +++ /dev/null @@ -1,10 +0,0 @@ -VENDOR_NAME="JetBrains s.r.o." -VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION_WITH_DOTS}.${JDK_BUILD_NUMBER}-${build_number}" -[ -z ${bundle_type} ] || VENDOR_VERSION_STRING="${VENDOR_VERSION_STRING}-${bundle_type}" - -do_reset_changes=0 -function do_exit() { - exit_code=$1 - [ $do_reset_changes -eq 1 ] && git checkout HEAD modules.list src/java.desktop/share/classes/module-info.java - exit $exit_code -} diff --git a/jb/project/tools/common/scripts/common.sh b/jb/project/tools/common/scripts/common.sh new file mode 100644 index 000000000000..fa1b3506a6f1 --- /dev/null +++ b/jb/project/tools/common/scripts/common.sh @@ -0,0 +1,49 @@ +VENDOR_NAME="JetBrains s.r.o." +VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION_WITH_DOTS}.${JDK_BUILD_NUMBER}-${build_number}" +[ -z "$bundle_type" ] || VENDOR_VERSION_STRING="${VENDOR_VERSION_STRING}-${bundle_type}" + +do_reset_changes=0 +function do_exit() { + exit_code=$1 + [ $do_reset_changes -eq 1 ] && git checkout HEAD modules.list src/java.desktop/share/classes/module-info.java + exit "$exit_code" +} + +function update_jsdk_mods() { + __jsdk=$1 + __jcef_mods=$2 + __orig_jsdk_mods=$3 + __updated_jsdk_mods=$4 + + # re-create java.desktop.jmod with updated module-info.class + tmp=.java.desktop.$$.tmp + mkdir "$tmp" || exit $? + "$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.desktop.jmod || exit $? + "$__jsdk"/bin/javac \ + --patch-module java.desktop="$__orig_jsdk_mods"/java.desktop.jmod \ + --module-path "$__jcef_mods" -d "$tmp"/classes src/java.desktop/share/classes/module-info.java || exit $? + "$__jsdk"/bin/jmod \ + create --class-path "$tmp"/classes --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \ + java.desktop.jmod || exit $? + mv java.desktop.jmod "$__updated_jsdk_mods" || exit $? + rm -rf "$tmp" + + # re-create java.base.jmod with updated hashes + tmp=.java.base.$$.tmp + mkdir "$tmp" || exit $? + hash_modules=$("$JSDK"/bin/jmod describe "$__orig_jsdk_mods"/java.base.jmod | grep hashes | awk '{print $2}' | tr '\n' '|' | sed s/\|$//) || exit $? + "$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.base.jmod || exit $? + rm "$__updated_jsdk_mods"/java.base.jmod || exit $? # temp exclude from path + "$__jsdk"/bin/jmod \ + create --module-path "$__updated_jsdk_mods" --hash-modules "$hash_modules" \ + --class-path "$tmp"/classes --cmds "$tmp"/bin --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \ + java.base.jmod || exit $? + mv java.base.jmod "$__updated_jsdk_mods" || exit $? + rm -rf "$tmp" +} + +function get_mods_list() { + __mods=$1 + + return `ls "$__mods"` | sed s/\.jmod/,/g | sed s/,$//g | sed s/' '//g +} diff --git a/jb/project/tools/linux/scripts/mkimages_aarch64.sh b/jb/project/tools/linux/scripts/mkimages_aarch64.sh index 348038f514d7..8a3353d776b8 100755 --- a/jb/project/tools/linux/scripts/mkimages_aarch64.sh +++ b/jb/project/tools/linux/scripts/mkimages_aarch64.sh @@ -20,7 +20,7 @@ build_number=$3 JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g') -source jb/project/tools/common.sh +source jb/project/tools/common/scripts/common.sh JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION} diff --git a/jb/project/tools/linux/scripts/mkimages_x64.sh b/jb/project/tools/linux/scripts/mkimages_x64.sh index afa8baeb6f11..3de7497484a1 100755 --- a/jb/project/tools/linux/scripts/mkimages_x64.sh +++ b/jb/project/tools/linux/scripts/mkimages_x64.sh @@ -18,8 +18,6 @@ # OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode) # # Environment variables: -# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located. -# By default imported modules should be located in ./modular-sdk # JCEF_PATH - specifies the path to the directory with JCEF binaries. # By default JCEF binaries should be located in ./jcef_linux_x64 @@ -28,114 +26,100 @@ JDK_BUILD_NUMBER=$2 build_number=$3 bundle_type=$4 JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g') -WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=./modular-sdk}" JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64} -source jb/project/tools/common.sh +source jb/project/tools/common/scripts/common.sh -function create_jbr { +function create_image_bundle { + __bundle_name=$1 + __arch_name=$2 + __modules_path=$3 + __modules=$4 - if [ -z "${bundle_type}" ]; then - JBR_BUNDLE=jbr - else - JBR_BUNDLE=jbr_${bundle_type} - fi - JBR_BASE_NAME=${JBR_BUNDLE}-${JBSDK_VERSION} - cat modules.list > modules_tmp.list - rm -rf ${BASE_DIR}/jbr - rm -rf ${BASE_DIR}/${JBR_BUNDLE} - - JBR=$JBR_BASE_NAME-linux-x64-b$build_number + [ "$bundle_type" == "fd" ] && fastdebug_infix="fastdebug-" + JBR=${__bundle_name}-${JBSDK_VERSION}-linux-x64-${fastdebug_infix}b${build_number} echo Running jlink.... + [ -d "$IMAGES_DIR"/"$__arch_name" ] && rm -rf "${IMAGES_DIR:?}"/"$__arch_name" $JSDK/bin/jlink \ - --module-path $JSDK/jmods --no-man-pages --compress=2 \ - --add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output $BASE_DIR/$JBR_BUNDLE + --module-path "$__modules_path" --no-man-pages --compress=2 \ + --add-modules "$__modules" --output "$IMAGES_DIR"/"$__arch_name" - if [ ! -z "${bundle_type}" ]; then - cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr - rsync -av ${JCEF_PATH}/ $BASE_DIR/$JBR_BUNDLE/lib --exclude="modular-sdk" || do_exit $? - fi - grep -v "^JAVA_VERSION" $JSDK/release | grep -v "^MODULES" >> $BASE_DIR/$JBR_BUNDLE/release + # jmod does not preserve file permissions (JDK-8173610) + [ -f "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper - echo Creating $JBR.tar.gz ... - tar -pcf $JBR.tar -C $BASE_DIR jbr || do_exit $? - [ -f "$JBR.tar.gz" ] && rm "$JBR.tar.gz" - gzip $JBR.tar || do_exit $? - rm -rf ${BASE_DIR}/${JBR_BUNDLE} + echo Creating "$JBR".tar.gz ... + tar -pcf "$JBR".tar -C "$IMAGES_DIR" "$__arch_name" || do_exit $? + [ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz" + gzip "$JBR".tar || do_exit $? + rm -rf "${IMAGES_DIR:?}"/"$__arch_name" } -JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION} WITH_DEBUG_LEVEL="--with-debug-level=release" RELEASE_NAME=linux-x86_64-server-release -JBSDK=${JBRSDK_BASE_NAME}-linux-x64-b${build_number} + case "$bundle_type" in "jcef") - git apply -p0 < jb/project/tools/patches/add_jcef_module.patch do_reset_changes=1 ;; "nomod" | "") bundle_type="" - WITH_IMPORT_MODULES="" ;; "fd") - git apply -p0 < jb/project/tools/patches/add_jcef_module.patch do_reset_changes=1 WITH_DEBUG_LEVEL="--with-debug-level=fastdebug" RELEASE_NAME=linux-x86_64-server-fastdebug - JBSDK=${JBRSDK_BASE_NAME}-linux-x64-fastdebug-b${build_number} ;; esac sh configure \ --disable-warnings-as-errors \ $WITH_DEBUG_LEVEL \ - --with-vendor-name="${VENDOR_NAME}" \ - --with-vendor-version-string="${VENDOR_VERSION_STRING}" \ + --with-vendor-name="$VENDOR_NAME" \ + --with-vendor-version-string="$VENDOR_VERSION_STRING" \ --with-version-pre= \ - --with-version-build=${JDK_BUILD_NUMBER} \ - --with-version-opt=b${build_number} \ - $WITH_IMPORT_MODULES \ - --with-boot-jdk=${BOOT_JDK} \ + --with-version-build="$JDK_BUILD_NUMBER" \ + --with-version-opt=b"$build_number" \ + --with-boot-jdk="$BOOT_JDK" \ --enable-cds=yes || do_exit $? make clean CONF=$RELEASE_NAME || exit $? make images CONF=$RELEASE_NAME || do_exit $? -JSDK=build/$RELEASE_NAME/images/jdk +IMAGES_DIR=build/$RELEASE_NAME/images +JSDK=$IMAGES_DIR/jdk +JSDK_MODS_DIR=$IMAGES_DIR/jmods +JBRSDK_BUNDLE=jbrsdk echo Fixing permissions chmod -R a+r $JSDK -BASE_DIR=build/$RELEASE_NAME/images -JBRSDK_BUNDLE=jbrsdk - -rm -rf $BASE_DIR/$JBRSDK_BUNDLE -cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || do_exit $? - if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then - rsync -av ${JCEF_PATH}/ $BASE_DIR/$JBRSDK_BUNDLE/lib --exclude="modular-sdk" || do_exit $? - echo Creating $JBSDK.tar.gz ... - sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/release > release - mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/release + git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $? + update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $? + cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed - tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \ - -C $BASE_DIR $JBRSDK_BUNDLE || do_exit $? - [ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz" - gzip $JBSDK.tar || do_exit $? + jbr_name_postfix="_${bundle_type}" fi -create_jbr || do_exit $? +# create runtime image bundle +modules=$(xargs < modules.list | sed s/" "//g) || do_exit $? +create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $? -if [ "$bundle_type" == "jcef" ]; then - make test-image CONF=$RELEASE_NAME || do_exit $? +# create sdk image bundle +modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\n//g) || do_exit $? +if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then + modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods) +fi +create_image_bundle $JBRSDK_BUNDLE $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $? - JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x64-b$build_number - - echo Creating $JBSDK_TEST.tar.gz ... - tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || do_exit $? - [ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz" - gzip $JBRSDK_TEST.tar || do_exit $? +if [ -z "$bundle_type" ]; then + JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-test-x64-b${build_number} + echo Creating "$JBRSDK_TEST" ... + make test-image CONF=$RELEASE_NAME || do_exit $? + tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $? + [ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz" + gzip "$JBRSDK_TEST".tar || do_exit $? fi do_exit 0 \ No newline at end of file diff --git a/jb/project/tools/linux/scripts/mkimages_x86.sh b/jb/project/tools/linux/scripts/mkimages_x86.sh index 3788a2515fe5..1f7d11f8153b 100755 --- a/jb/project/tools/linux/scripts/mkimages_x86.sh +++ b/jb/project/tools/linux/scripts/mkimages_x86.sh @@ -20,7 +20,7 @@ build_number=$3 JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g') -source jb/project/tools/common.sh +source jb/project/tools/common/scripts/common.sh JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION} diff --git a/jb/project/tools/mac/scripts/mkimages.sh b/jb/project/tools/mac/scripts/mkimages.sh index 55f026c8d79a..218faa1f837e 100755 --- a/jb/project/tools/mac/scripts/mkimages.sh +++ b/jb/project/tools/mac/scripts/mkimages.sh @@ -18,8 +18,6 @@ # OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode) # # Environment variables: -# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located. -# By default imported modules should be located in ./modular-sdk # JCEF_PATH - specifies the path to the directory with JCEF binaries. # By default JCEF binaries should be located in ./jcef_mac @@ -27,120 +25,102 @@ JBSDK_VERSION=$1 JDK_BUILD_NUMBER=$2 build_number=$3 bundle_type=$4 -JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g') -WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=./modular-sdk}" +JBSDK_VERSION_WITH_DOTS=$(echo "$JBSDK_VERSION" | sed 's/_/\./g') JCEF_PATH=${JCEF_PATH:=./jcef_mac} -MAJOR_JBSDK_VERSION=$(echo $JBSDK_VERSION_WITH_DOTS | awk -F "." '{print $1}') +MAJOR_JBSDK_VERSION=$(echo "$JBSDK_VERSION_WITH_DOTS" | awk -F "." '{print $1}') +BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 14)} -source jb/project/tools/common.sh +source jb/project/tools/common/scripts/common.sh -function create_jbr { +function create_image_bundle { + __bundle_name=$1 + __modules_path=$2 + __modules=$3 - if [ -z "${bundle_type}" ]; then - JBR_BUNDLE=jbr - else - JBR_BUNDLE=jbr_${bundle_type} - fi - JBR_BASE_NAME=${JBR_BUNDLE}-${JBSDK_VERSION} - cat modules.list > modules_tmp.list - rm -rf ${BASE_DIR}/jbr - rm -rf ${BASE_DIR}/${JBR_BUNDLE} + tmp=.bundle.$$.tmp + mkdir "$tmp" || do_exit $? - JRE_CONTENTS=${BASE_DIR}/${JBR_BUNDLE}/Contents - JRE_HOME=${JRE_CONTENTS}/Home - if [ -d "${JRE_CONTENTS}" ]; then - rm -rf ${JRE_CONTENTS} - fi - mkdir -p ${JRE_CONTENTS} + [ "$bundle_type" == "fd" ] && fastdebug_infix="fastdebug-" + JBR=${__bundle_name}-${JBSDK_VERSION}-osx-x64-${fastdebug_infix}b${build_number} - JBR=${JBR_BASE_NAME}-osx-x64-b${build_number} + JRE_CONTENTS=$tmp/$__bundle_name/Contents + mkdir -p "$JRE_CONTENTS" || do_exit $? - echo Running jlink.... - ${BASE_DIR}/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \ - --module-path ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/jmods --no-man-pages --compress=2 \ - --add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JRE_HOME} || do_exit $? - grep -v "^JAVA_VERSION" ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release | grep -v "^MODULES" >> ${JRE_HOME}/release - cp -R ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/MacOS ${JRE_CONTENTS} - cp ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Info.plist ${JRE_CONTENTS} + echo Running jlink... + "$JSDK"/bin/jlink \ + --module-path "$__modules_path" --no-man-pages --compress=2 \ + --add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $? - rm -rf ${JRE_CONTENTS}/Frameworks || do_exit $? - [ ! -z "${bundle_type}" ] && (cp -a ${JCEF_PATH}/Frameworks ${JRE_CONTENTS} || do_exit $?) + cp -R "$JSDK"/../MacOS "$JRE_CONTENTS" + cp "$JSDK"/../Info.plist "$JRE_CONTENTS" + [ -n "$bundle_type" ] && (cp -a $JCEF_PATH/Frameworks "$JRE_CONTENTS" || do_exit $?) - echo Creating ${JBR}.tar.gz ... - [ ! -z "${bundle_type}" ] && cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr - COPYFILE_DISABLE=1 tar -pczf ${JBR}.tar.gz --exclude='*.dSYM' --exclude='man' -C ${BASE_DIR} jbr || do_exit $? - rm -rf ${BASE_DIR}/${JBR_BUNDLE} + echo Creating "$JBR".tar.gz ... + COPYFILE_DISABLE=1 tar -pczf "$JBR".tar.gz --exclude='*.dSYM' --exclude='man' -C "$tmp" "$__bundle_name" || do_exit $? + rm -rf "$tmp" } -JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION} WITH_DEBUG_LEVEL="--with-debug-level=release" RELEASE_NAME=macosx-x86_64-server-release -JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number} + case "$bundle_type" in "jcef") - git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $? do_reset_changes=1 ;; "nomod" | "") bundle_type="" - WITH_IMPORT_MODULES="" ;; "fd") - git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $? do_reset_changes=1 WITH_DEBUG_LEVEL="--with-debug-level=fastdebug" RELEASE_NAME=macosx-x86_64-server-fastdebug - JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number} ;; esac sh configure \ --disable-warnings-as-errors \ $WITH_DEBUG_LEVEL \ - --with-vendor-name="${VENDOR_NAME}" \ - --with-vendor-version-string="${VENDOR_VERSION_STRING}" \ + --with-vendor-name="$VENDOR_NAME" \ + --with-vendor-version-string="$VENDOR_VERSION_STRING" \ --with-version-pre= \ - --with-version-build=${JDK_BUILD_NUMBER} \ - --with-version-opt=b${build_number} \ - $WITH_IMPORT_MODULES \ - --with-boot-jdk=`/usr/libexec/java_home -v 14` \ + --with-version-build="$JDK_BUILD_NUMBER" \ + --with-version-opt=b"$build_number" \ + --with-boot-jdk="$BOOT_JDK" \ --enable-cds=yes || do_exit $? make clean CONF=$RELEASE_NAME || do_exit $? make images CONF=$RELEASE_NAME || do_exit $? -JSDK=build/$RELEASE_NAME/images/jdk-bundle - -BASE_DIR=jre +IMAGES_DIR=build/$RELEASE_NAME/images +JSDK=$IMAGES_DIR/jdk-bundle/jdk-$MAJOR_JBSDK_VERSION.jdk/Contents/Home +JSDK_MODS_DIR=$IMAGES_DIR/jmods JBRSDK_BUNDLE=jbrsdk -rm -rf $BASE_DIR -mkdir $BASE_DIR || do_exit $? -cp -a $JSDK/jdk-$MAJOR_JBSDK_VERSION.jdk $BASE_DIR/$JBRSDK_BUNDLE || do_exit $? - if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then - cp -a ${JCEF_PATH}/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/ - echo Creating $JBSDK.tar.gz ... - sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release > release - mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release - [ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz" - COPYFILE_DISABLE=1 tar -pczf $JBSDK.tar.gz -C $BASE_DIR \ - --exclude='._*' --exclude='.DS_Store' --exclude='*~' \ - --exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \ - $JBRSDK_BUNDLE || do_exit $? + git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $? + update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $? + cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed + + jbr_name_postfix="_${bundle_type}" fi -create_jbr || do_exit $? +# create runtime image bundle +modules=$(xargs < modules.list | sed s/" "//g) || do_exit $? +create_image_bundle "jbr${jbr_name_postfix}" $JSDK_MODS_DIR "$modules" || do_exit $? -if [ "$bundle_type" == "jcef" ]; then - make test-image CONF=$RELEASE_NAME || do_exit $? +# create sdk image bundle +modules=$(cat "$JSDK"/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\n//g) || do_exit $? +if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then + modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods) +fi +create_image_bundle "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $? - JBRSDK_TEST=$JBRSDK_BASE_NAME-osx-test-x64-b$build_number - - echo Creating $JBRSDK_TEST.tar.gz ... - [ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz" - COPYFILE_DISABLE=1 tar -pczf $JBRSDK_TEST.tar.gz -C build/${RELEASE_NAME}/images \ - --exclude='test/jdk/demos' test || do_exit $? +if [ -z "$bundle_type" ]; then + JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-x64-b${build_number} + echo Creating "$JBRSDK_TEST" ... + make test-image CONF=$RELEASE_NAME || do_exit $? + [ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz" + COPYFILE_DISABLE=1 tar -pczf "$JBRSDK_TEST".tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $? fi do_exit 0 \ No newline at end of file diff --git a/jb/project/tools/windows/scripts/mkimages_x64.sh b/jb/project/tools/windows/scripts/mkimages_x64.sh index 928c2d0a4ac3..c7ff8355468e 100755 --- a/jb/project/tools/windows/scripts/mkimages_x64.sh +++ b/jb/project/tools/windows/scripts/mkimages_x64.sh @@ -18,8 +18,6 @@ # OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode) # # Environment variables: -# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located. -# By default imported modules should be located in ./modular-sdk # JCEF_PATH - specifies the path to the directory with JCEF binaries. # By default JCEF binaries should be located in ./jcef_win_x64 @@ -29,84 +27,81 @@ build_number=$3 bundle_type=$4 JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g') WORK_DIR=$(pwd) -WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=$WORK_DIR/modular-sdk}" JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64} -source jb/project/tools/common.sh +source jb/project/tools/common/scripts/common.sh -function create_jbr { +function create_image_bundle { + __bundle_name=$1 + __modules_path=$2 + __modules=$3 - if [ -z "${bundle_type}" ]; then - JBR_BUNDLE=jbr - else - JBR_BUNDLE=jbr_${bundle_type} - fi - cat modules.list > modules_tmp.list - rm -rf ${JBR_BUNDLE} + [ -d $__bundle_name ] && rm -rf $__bundle_name - echo Running jlink.... + echo Running jlink ... ${JSDK}/bin/jlink \ - --module-path ${JSDK}/jmods --no-man-pages --compress=2 \ - --add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JBR_BUNDLE} || do_exit $? - - [ ! -z "${bundle_type}" ] && (rsync -av ${JCEF_PATH}/ ${JBR_BUNDLE}/bin --exclude="modular-sdk" || do_exit $?) - echo Modifying release info ... - cat ${JSDK}/release | tr -d '\r' | grep -v 'JAVA_VERSION' | grep -v 'MODULES' >> ${JBR_BUNDLE}/release + --module-path $__modules_path --no-man-pages --compress=2 \ + --add-modules $__modules --output $__bundle_name || do_exit $? } -JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION} WITH_DEBUG_LEVEL="--with-debug-level=release" RELEASE_NAME=windows-x86_64-server-release -JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number} + case "$bundle_type" in "jcef") - git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $? do_reset_changes=1 ;; "nomod" | "") bundle_type="" - WITH_IMPORT_MODULES="" ;; "fd") - git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $? do_reset_changes=1 WITH_DEBUG_LEVEL="--with-debug-level=fastdebug" RELEASE_NAME=windows-x86_64-server-fastdebug - JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number} ;; esac sh ./configure \ --disable-warnings-as-errors \ $WITH_DEBUG_LEVEL \ - --with-vendor-name="${VENDOR_NAME}" \ - --with-vendor-version-string="${VENDOR_VERSION_STRING}" \ + --with-vendor-name="$VENDOR_NAME" \ + --with-vendor-version-string="$VENDOR_VERSION_STRING" \ --with-version-pre= \ - --with-version-build=${JDK_BUILD_NUMBER} \ + --with-version-build=$JDK_BUILD_NUMBER \ --with-version-opt=b${build_number} \ - $WITH_IMPORT_MODULES \ - --with-toolchain-version=${TOOLCHAIN_VERSION} \ - --with-boot-jdk=${BOOT_JDK} \ + --with-toolchain-version=$TOOLCHAIN_VERSION \ + --with-boot-jdk=$BOOT_JDK \ --disable-ccache \ --enable-cds=yes || do_exit $? -if [ "$bundle_type" == "jcef" ]; then - make LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $? +if [ -z "$bundle_type" ]; then + make LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $? else make LOG=info CONF=$RELEASE_NAME clean images || do_exit $? fi -JSDK=build/$RELEASE_NAME/images/jdk -BASE_DIR=build/$RELEASE_NAME/images +IMAGES_DIR=build/$RELEASE_NAME/images +JSDK=$IMAGES_DIR/jdk +JSDK_MODS_DIR=$IMAGES_DIR/jmods JBRSDK_BUNDLE=jbrsdk -rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || do_exit $? if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then - rsync -av ${JCEF_PATH}/ ${JBRSDK_BUNDLE}/bin --exclude='modular-sdk' || do_exit $? - sed 's/JBR/JBRSDK/g' ${JSDK}/release > release - mv release ${JBRSDK_BUNDLE}/release + git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $? + update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $? + cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged + + jbr_name_postfix="_${bundle_type}" fi -create_jbr || do_exit $? +# create runtime image bundle +modules=$(xargs < modules.list | sed s/" "//g) || do_exit $? +create_image_bundle "jbr${jbr_name_postfix}" $JSDK_MODS_DIR "$modules" || do_exit $? + +# create sdk image bundle +modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g) +if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then + modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods) +fi +create_image_bundle "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $? do_exit 0 \ No newline at end of file diff --git a/jb/project/tools/windows/scripts/mkimages_x86.sh b/jb/project/tools/windows/scripts/mkimages_x86.sh index 88929a77dea2..27ac68a46094 100755 --- a/jb/project/tools/windows/scripts/mkimages_x86.sh +++ b/jb/project/tools/windows/scripts/mkimages_x86.sh @@ -20,7 +20,7 @@ build_number=$3 JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g') -source jb/project/tools/common.sh +source jb/project/tools/common/scripts/common.sh JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION} WORK_DIR=$(pwd) diff --git a/jb/project/tools/windows/scripts/pack_x64.sh b/jb/project/tools/windows/scripts/pack_x64.sh index 92bc2dedc79a..8ea40e1aee63 100755 --- a/jb/project/tools/windows/scripts/pack_x64.sh +++ b/jb/project/tools/windows/scripts/pack_x64.sh @@ -18,6 +18,8 @@ # OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode) # +source jb/project/tools/common/scripts/common.sh + JBSDK_VERSION=$1 JDK_BUILD_NUMBER=$2 build_number=$3 @@ -68,7 +70,7 @@ fi pack_jbr $bundle_type -if [ "$bundle_type" == "jcef" ]; then +if [ -z "$bundle_type" ]; then JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x64-b$build_number echo Creating $JBRSDK_TEST.tar.gz ... /usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?