From f7165ee6b33a1dacd382aa0753f857a504af36df Mon Sep 17 00:00:00 2001 From: Andrea Cavalli Date: Sat, 19 Feb 2022 01:25:17 +0100 Subject: [PATCH] Bugfix --- .../docker/build-natives.sh | 151 +++++++++--------- 1 file changed, 74 insertions(+), 77 deletions(-) diff --git a/scripts/continuous-integration/docker/build-natives.sh b/scripts/continuous-integration/docker/build-natives.sh index 8eaa0e6..003a1ec 100644 --- a/scripts/continuous-integration/docker/build-natives.sh +++ b/scripts/continuous-integration/docker/build-natives.sh @@ -8,93 +8,90 @@ if [ -z "${CPU_ARCH_DPKG}" ]; then echo "Missing parameter: CPU_ARCH_DPKG" exit 1 fi -if [ -z "${CROSS_BUILD_DEPS_DIR}" ]; then - echo "Missing parameter: CROSS_BUILD_DEPS_DIR" - exit 1 -fi +if [ -n "${CROSS_BUILD_DEPS_DIR}" ]; then + CROSS_OPENJDK_PATH="" + fix_jdk_path() { + # Setup OpenJDK path + CROSS_OPENJDK_PATH=$(find "$CROSS_BUILD_DEPS_DIR/usr/lib/jvm/" -maxdepth 1 -type d -iname "java*jdk*" | head -n 1) + } -CROSS_OPENJDK_PATH="" -fix_jdk_path() { - # Setup OpenJDK path - CROSS_OPENJDK_PATH=$(find "$CROSS_BUILD_DEPS_DIR/usr/lib/jvm/" -maxdepth 1 -type d -iname "java*jdk*" | head -n 1) -} + check_jdk_existance() { + if [[ ! -d "$CROSS_OPENJDK_PATH" ]]; then + echo "Can't find cross OpenJDK at location $CROSS_OPENJDK_PATH" + exit 1 + fi + } -check_jdk_existance() { - if [[ ! -d "$CROSS_OPENJDK_PATH" ]]; then - echo "Can't find cross OpenJDK at location $CROSS_OPENJDK_PATH" - exit 1 - fi -} + PWD_BEFORE_CROSS_DEPS=$(pwd) + if [[ ! -f "$CROSS_BUILD_DEPS_DIR/ok-012" ]]; then + rm -rf "$CROSS_BUILD_DEPS_DIR" || true + mkdir -p "$CROSS_BUILD_DEPS_DIR" + cd "$CROSS_BUILD_DEPS_DIR" -PWD_BEFORE_CROSS_DEPS=$(pwd) -if [[ ! -f "$CROSS_BUILD_DEPS_DIR/ok-012" ]]; then - rm -rf "$CROSS_BUILD_DEPS_DIR" || true - mkdir -p "$CROSS_BUILD_DEPS_DIR" - cd "$CROSS_BUILD_DEPS_DIR" + dpkg --add-architecture "${CPU_ARCH_DPKG}" + apt-get update - dpkg --add-architecture "${CPU_ARCH_DPKG}" - apt-get update + # LibZ-Dev + apt-get download "zlib1g-dev:${CPU_ARCH_DPKG}" + ZLIB1G_DEV_DEB=$(find . -name "zlib1g-dev_*.deb") + dpkg -x "$ZLIB1G_DEV_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$ZLIB1G_DEV_DEB" + # LibZ + apt-get download "zlib1g:${CPU_ARCH_DPKG}" + ZLIB1G_DEB=$(find . -name "zlib1g_*.deb") + dpkg -x "$ZLIB1G_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$ZLIB1G_DEB" + # LibSSL-Dev + apt-get download "libssl-dev:${CPU_ARCH_DPKG}" + LIBSSL_DEV_DEB=$(find . -name "libssl-dev_*.deb") + dpkg -x "$LIBSSL_DEV_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$LIBSSL_DEV_DEB" + # LibSSL + apt-get download "libssl1.1:${CPU_ARCH_DPKG}" + LIBSSL_DEB=$(find . -name "libssl1.1_*.deb") + dpkg -x "$LIBSSL_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$LIBSSL_DEB" + # Java Common + apt-get download "java-common" + JC_DEB=$(find . -name "java-common_*.deb") + dpkg -x "$JC_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$JC_DEB" + # OpenJDK-JRE-Headless + apt-get download "openjdk-11-jre-headless:${CPU_ARCH_DPKG}" + OJDKRH_DEB=$(find . -name "openjdk-11-jre-headless_*.deb") + dpkg -x "$OJDKRH_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$OJDKRH_DEB" + # OpenJDK-JRE + apt-get download "openjdk-11-jre:${CPU_ARCH_DPKG}" + OJDKR_DEB=$(find . -name "openjdk-11-jre_*.deb") + dpkg -x "$OJDKR_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$OJDKR_DEB" + # OpenJDK-JDK + apt-get download "openjdk-11-jdk-headless:${CPU_ARCH_DPKG}" + OJDKJ_DEB=$(find . -name "openjdk-11-jdk-headless_*.deb") + dpkg -x "$OJDKJ_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$OJDKJ_DEB" + # OpenJDK-GUI + apt-get download "openjdk-11-jdk:${CPU_ARCH_DPKG}" + OJDKG_DEB=$(find . -name "openjdk-11-jdk_*.deb") + dpkg -x "$OJDKG_DEB" "$CROSS_BUILD_DEPS_DIR" + rm "$OJDKG_DEB" - # LibZ-Dev - apt-get download "zlib1g-dev:${CPU_ARCH_DPKG}" - ZLIB1G_DEV_DEB=$(find . -name "zlib1g-dev_*.deb") - dpkg -x "$ZLIB1G_DEV_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$ZLIB1G_DEV_DEB" - # LibZ - apt-get download "zlib1g:${CPU_ARCH_DPKG}" - ZLIB1G_DEB=$(find . -name "zlib1g_*.deb") - dpkg -x "$ZLIB1G_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$ZLIB1G_DEB" - # LibSSL-Dev - apt-get download "libssl-dev:${CPU_ARCH_DPKG}" - LIBSSL_DEV_DEB=$(find . -name "libssl-dev_*.deb") - dpkg -x "$LIBSSL_DEV_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$LIBSSL_DEV_DEB" - # LibSSL - apt-get download "libssl1.1:${CPU_ARCH_DPKG}" - LIBSSL_DEB=$(find . -name "libssl1.1_*.deb") - dpkg -x "$LIBSSL_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$LIBSSL_DEB" - # Java Common - apt-get download "java-common" - JC_DEB=$(find . -name "java-common_*.deb") - dpkg -x "$JC_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$JC_DEB" - # OpenJDK-JRE-Headless - apt-get download "openjdk-11-jre-headless:${CPU_ARCH_DPKG}" - OJDKRH_DEB=$(find . -name "openjdk-11-jre-headless_*.deb") - dpkg -x "$OJDKRH_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$OJDKRH_DEB" - # OpenJDK-JRE - apt-get download "openjdk-11-jre:${CPU_ARCH_DPKG}" - OJDKR_DEB=$(find . -name "openjdk-11-jre_*.deb") - dpkg -x "$OJDKR_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$OJDKR_DEB" - # OpenJDK-JDK - apt-get download "openjdk-11-jdk-headless:${CPU_ARCH_DPKG}" - OJDKJ_DEB=$(find . -name "openjdk-11-jdk-headless_*.deb") - dpkg -x "$OJDKJ_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$OJDKJ_DEB" - # OpenJDK-GUI - apt-get download "openjdk-11-jdk:${CPU_ARCH_DPKG}" - OJDKG_DEB=$(find . -name "openjdk-11-jdk_*.deb") - dpkg -x "$OJDKG_DEB" "$CROSS_BUILD_DEPS_DIR" - rm "$OJDKG_DEB" + # Fix symlinks + find "$CROSS_BUILD_DEPS_DIR" -lname "/*" \ + -exec sh -c "ln -sf \"\`echo \"$CROSS_BUILD_DEPS_DIR\$(readlink \$0)\"\`\" \"\$0\"" {} \; - # Fix symlinks - find "$CROSS_BUILD_DEPS_DIR" -lname "/*" \ - -exec sh -c "ln -sf \"\`echo \"$CROSS_BUILD_DEPS_DIR\$(readlink \$0)\"\`\" \"\$0\"" {} \; + # Check if openjdk is found + fix_jdk_path + check_jdk_existance - # Check if openjdk is found + touch "$CROSS_BUILD_DEPS_DIR/ok-012" + fi fix_jdk_path check_jdk_existance - - touch "$CROSS_BUILD_DEPS_DIR/ok-012" + cd "${PWD_BEFORE_CROSS_DEPS}" + apt install -y "crossbuild-essential-${CPU_ARCH_DPKG}" fi -fix_jdk_path -check_jdk_existance -cd "${PWD_BEFORE_CROSS_DEPS}" source ./scripts/continuous-integration/github-workflows/install-dependencies.sh -sudo apt install -y "crossbuild-essential-${CPU_ARCH_DPKG}" source ./scripts/continuous-integration/github-workflows/build-natives.sh