diff --git a/sbin/build.sh b/sbin/build.sh old mode 100755 new mode 100644 index 33190ee38..7867da206 --- a/sbin/build.sh +++ b/sbin/build.sh @@ -704,20 +704,6 @@ setupAntEnv() { echo "${javaHome}" } -# Build the CycloneDX Java library and app used for SBoM generation -buildCyclonedxLib() { - local javaHome="${1}" - - # Make Ant aware of cygwin path - if [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]]; then - ANTBUILDFILE=$(cygpath -m "${CYCLONEDB_DIR}/build.xml") - else - ANTBUILDFILE="${CYCLONEDB_DIR}/build.xml" - fi - JAVA_HOME=${javaHome} ant -f "${ANTBUILDFILE}" clean - JAVA_HOME=${javaHome} ant -f "${ANTBUILDFILE}" build -} - # Generate the SBoM generateSBoM() { local javaHome="${1}" @@ -793,7 +779,7 @@ generateSBoM() { addSBOMMetadataTools "${javaHome}" "${classpath}" "${sbomJson}" "FreeType" "$(cat ${BUILD_CONFIG[WORKSPACE_DIR]}/${BUILD_CONFIG[TARGET_DIR]}/metadata/dependency_version_freetype.txt)" # Add FreeMarker 3rd party (openj9) addSBOMMetadataTools "${javaHome}" "${classpath}" "${sbomJson}" "FreeMarker" "$(cat ${BUILD_CONFIG[WORKSPACE_DIR]}/${BUILD_CONFIG[TARGET_DIR]}/metadata/dependency_version_freemarker.txt)" - + # Add Build Docker image SHA1 buildimagesha=$(cat ${BUILD_CONFIG[WORKSPACE_DIR]}/${BUILD_CONFIG[TARGET_DIR]}/metadata/docker.txt) # ${BUILD_CONFIG[USE_DOCKER]^} always set to false cannot rely on it. diff --git a/sbin/common/sbom.sh b/sbin/common/sbom.sh index fe5b5cafb..a89d087dc 100644 --- a/sbin/common/sbom.sh +++ b/sbin/common/sbom.sh @@ -1,4 +1,32 @@ #!/bin/bash +# Build the CycloneDX Java library and app used for SBoM generation +buildCyclonedxLib() { + local javaHome="${1}" + + # Check if JDK-17 is available, download it if it isn't + if [ ! -d "${javaHome}" ]; then + # Download JDK-17 + apiUrlTemplate="https://api.adoptium.net/v3/binary/latest/\${JDK_BOOT_VERSION}/\${releaseType}/linux/\${downloadArch}/jdk/hotspot/normal/\${vendor}" + apiURL=$(eval echo ${apiUrlTemplate}) + JDK_BOOT_VERSION="17" + releaseType="ga" + downloadArch="x64" + vendor="adoptium" + apiURL="https://api.adoptium.net/v3/binary/latest/${JDK_BOOT_VERSION}/${releaseType}/linux/${downloadArch}/jdk/hotspot/normal/${vendor}" + echo "Downloading GA release of boot JDK version ${JDK_BOOT_VERSION} from ${apiURL}" + fi + + # Make Ant aware of cygwin path + if [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "msys" ]]; then + ANTBUILDFILE=$(cygpath -m "${CYCLONEDB_DIR}/build.xml") + else + ANTBUILDFILE="${CYCLONEDB_DIR}/build.xml" + fi + + JAVA_HOME="${javaHome}" ant -f "${ANTBUILDFILE}" clean + JAVA_HOME="${javaHome}" ant -f "${ANTBUILDFILE}" build +} + # Create a default SBOM json file: sbomJson createSBOMFile() { local javaHome="${1}"