From 70b7784b89871a8b3d12a134b3ae2fb6f2a3a9e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Tomkiel?= Date: Tue, 25 Feb 2025 13:19:29 +0100 Subject: [PATCH 1/8] Add arm64 target --- .../docker/images/base/chip-build/version | 2 +- .../stage-2/chip-build-tizen/Dockerfile | 5 + .../tizen-sdk-installer/install.sh | 214 ++++++++++++++++-- 3 files changed, 201 insertions(+), 20 deletions(-) diff --git a/integrations/docker/images/base/chip-build/version b/integrations/docker/images/base/chip-build/version index e52ac5a54f37c8..4a98867ca2435b 100644 --- a/integrations/docker/images/base/chip-build/version +++ b/integrations/docker/images/base/chip-build/version @@ -1 +1 @@ -117 : [TI] Update java version for chip-build-vscode +118 : [Tizen] Add arm64 target - Docker part diff --git a/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile b/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile index e08e821c5c24d9..fff10e197ed090 100644 --- a/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile @@ -26,6 +26,7 @@ ENV TIZEN_SDK_ROOT /opt/tizen-sdk COPY tizen-sdk-installer $TIZEN_SDK_ROOT/files/installer RUN set -x \ && bash $TIZEN_SDK_ROOT/files/installer/install.sh \ + --cpu arm,arm64 \ --tizen-sdk-path $TIZEN_SDK_ROOT \ --tizen-sdk-data-path /home/ubuntu/tizen-sdk-data \ --tizen-version $TIZEN_VERSION \ @@ -38,6 +39,10 @@ ENV TIZEN_SDK_TOOLCHAIN $TIZEN_SDK_ROOT/tools/arm-linux-gnueabi-gcc-9.2 ENV TIZEN_SDK_SYSROOT $TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device.core ENV PATH="$TIZEN_SDK_TOOLCHAIN/bin:$TIZEN_SDK_ROOT/tools/ide/bin:$TIZEN_SDK_ROOT/tools:$PATH" +ENV TIZEN_SDK_TOOLCHAIN_ARM64 $TIZEN_SDK_ROOT/tools/aarch64-linux-gnu-gcc-9.2 +ENV TIZEN_SDK_SYSROOT_ARM64 $TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core +ENV PATH="$TIZEN_SDK_TOOLCHAIN_ARM64/bin:$PATH" + # ------------------------------------------------------------------------------ # Switch to the non-root user USER ubuntu diff --git a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh index bdb0b1914951a7..cf4a6cd9dc746d 100755 --- a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh +++ b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh @@ -45,6 +45,7 @@ function show_help() { echo echo "Options:" echo " -h, --help Display this information" + echo " --cpu Comma separated list of CPUs. Like `arm` or `arm64`" echo " --tizen-sdk-path Set directory for Tizen SDK installation. Default is $TIZEN_SDK_ROOT" echo " --tizen-sdk-data-path Set directory for Tizen SDK runtime data. Default is $TIZEN_SDK_DATA_PATH" echo " --install-dependencies This option installs all required dependencies" @@ -141,8 +142,8 @@ function cleanup() { } # ------------------------------------------------------------------------------ -# Function for installing Tizen SDK. -function install_tizen_sdk() { +# Function for installing Tizen SDK (arm). +function install_tizen_sdk_arm() { mkdir -p "$TIZEN_SDK_ROOT" || return @@ -209,17 +210,9 @@ function install_tizen_sdk() { 'app-core-common-*.rpm' 'aul-0*.armv7l.rpm' 'aul-devel-*.armv7l.rpm' - 'bluetooth-frwk-0*.armv7l.rpm' 'bundle-0*.armv7l.rpm' 'bundle-devel-*.armv7l.rpm' 'buxton2-*.armv7l.rpm' - 'capi-network-bluetooth-0*.armv7l.rpm' - 'capi-network-bluetooth-devel-*.armv7l.rpm' - 'capi-network-nsd-*.armv7l.rpm' - 'capi-network-thread-*.armv7l.rpm' - 'capi-system-peripheral-io-*.armv7l.rpm' - 'capi-system-peripheral-io-devel-*.armv7l.rpm' - 'capi-system-resource-1*.armv7l.rpm' 'cynara-devel-*.armv7l.rpm' 'dbus-1*.armv7l.rpm' 'dbus-devel-*.armv7l.rpm' @@ -232,23 +225,26 @@ function install_tizen_sdk() { 'libcynara-commons-*.armv7l.rpm' 'libdns_sd-*.armv7l.rpm' 'libjson-glib-*.armv7l.rpm' - 'libnsd-dns-sd-*.armv7l.rpm' 'libsessiond-0*.armv7l.rpm' 'libsystemd-*.armv7l.rpm' 'libtzplatform-config-*.armv7l.rpm' 'parcel-0*.armv7l.rpm' 'parcel-devel-*.armv7l.rpm' 'pkgmgr-info-*.armv7l.rpm' - 'sensord-*.armv7l.rpm' 'sensord-devel-*.armv7l.rpm' 'sensord-dummy-*.armv7l.rpm' 'vconf-compat-*.armv7l.rpm' - 'vconf-internal-keys-devel-*.armv7l.rpm') - download "$URL" "${PKG_ARR[@]}" - - # Unified packages (snapshots) - URL="http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/latest/repos/standard/packages/armv7l/" - PKG_ARR=() + 'vconf-internal-keys-devel-*.armv7l.rpm' + 'bluetooth-frwk-0*.armv7l.rpm' + 'capi-network-bluetooth-0*.armv7l.rpm' + 'capi-network-bluetooth-devel-*.armv7l.rpm' + 'capi-network-nsd-*.armv7l.rpm' + 'capi-network-thread-*.armv7l.rpm' + 'capi-system-peripheral-io-*.armv7l.rpm' + 'capi-system-peripheral-io-devel-*.armv7l.rpm' + 'capi-system-resource-1*.armv7l.rpm' + 'libnsd-dns-sd-*.armv7l.rpm' + 'sensord-*.armv7l.rpm') download "$URL" "${PKG_ARR[@]}" # Tizen Developer Platform Certificate @@ -304,12 +300,185 @@ function install_tizen_sdk() { echo -n "$COLOR_NONE" } +# Function for installing Tizen SDK (arm64). +function install_tizen_sdk_arm64() { + + mkdir -p "$TIZEN_SDK_ROOT" || return + + info "Tizen SDK installation directory: $TIZEN_SDK_ROOT" + + TIZEN_SDK_SYSROOT="$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core" + + cd "$TMP_DIR" || return + + # Get Tizen Studio CLI + info "Downloading Tizen Studio CLI..." + + # Download + URL="http://download.tizen.org/sdk/tizenstudio/official/binary/" + PKG_ARR=( + 'certificate-encryptor_1.0.10_ubuntu-64.zip' + 'certificate-generator_0.1.4_ubuntu-64.zip' + 'new-common-cli_2.5.64_ubuntu-64.zip' + 'new-native-cli_2.5.64_ubuntu-64.zip' + 'sdb_4.2.23_ubuntu-64.zip') + download "$URL" "${PKG_ARR[@]}" + + # Get toolchain + info "Downloading Tizen toolchain..." + + # Download + URL="http://download.tizen.org/sdk/tizenstudio/official/binary/" + PKG_ARR=( + "cross-aarch64-gcc-9.2_0.1.9_ubuntu-64.zip" + "sbi-toolchain-gcc-9.2.cpp.app_2.2.16_ubuntu-64.zip") + download "$URL" "${PKG_ARR[@]}" + + # Get Tizen sysroot + info "Downloading Tizen sysroot..." + + # Base sysroot + # Different versions of Tizen have different rootstrap versions + URL="http://download.tizen.org/sdk/tizenstudio/official/binary/" + PKG_ARR=( + "tizen-$TIZEN_VERSION-core-add-ons_*_ubuntu-64.zip" + "tizen-$TIZEN_VERSION-rs-device64.core_*_ubuntu-64.zip") + download "$URL" "${PKG_ARR[@]}" + + # Base packages + URL="http://download.tizen.org/releases/milestone/TIZEN/Tizen-$TIZEN_VERSION/Tizen-$TIZEN_VERSION-Base/latest/repos/standard/packages/aarch64/" + PKG_ARR=( + 'iniparser-*.aarch64.rpm' + 'libblkid-devel-*.aarch64.rpm' + 'libcap-*.aarch64.rpm' + 'libffi-devel-*.aarch64.rpm' + 'liblzma-*.aarch64.rpm' + 'libmount-devel-*.aarch64.rpm' + 'libncurses6-*.aarch64.rpm' + 'libreadline-*.aarch64.rpm' + 'libuuid-*.aarch64.rpm' + 'pcre-devel-*.aarch64.rpm' + 'readline-devel-*.aarch64.rpm' + 'xdgmime-*.aarch64.rpm') + download "$URL" "${PKG_ARR[@]}" + + # Unified packages + URL="http://download.tizen.org/releases/milestone/TIZEN/Tizen-$TIZEN_VERSION/Tizen-$TIZEN_VERSION-Unified/latest/repos/standard/packages/aarch64/" + PKG_ARR=( + 'app-core-common-*.rpm' + 'aul-0*.aarch64.rpm' + 'aul-devel-*.aarch64.rpm' + 'bundle-0*.aarch64.rpm' + 'bundle-devel-*.aarch64.rpm' + 'buxton2-*.aarch64.rpm' + 'cynara-devel-*.aarch64.rpm' + 'dbus-1*.aarch64.rpm' + 'dbus-devel-*.aarch64.rpm' + 'dbus-libs-1*.aarch64.rpm' + 'glib2-devel-2*.aarch64.rpm' + 'hal-api-common-*.aarch64.rpm' + 'hal-api-sensor-*.aarch64.rpm' + 'json-glib-devel-*.aarch64.rpm' + 'libcynara-client-*.aarch64.rpm' + 'libcynara-commons-*.aarch64.rpm' + 'libdns_sd-*.aarch64.rpm' + 'libjson-glib-*.aarch64.rpm' + 'libsessiond-0*.aarch64.rpm' + 'libsystemd-*.aarch64.rpm' + 'libtzplatform-config-*.aarch64.rpm' + 'parcel-0*.aarch64.rpm' + 'parcel-devel-*.aarch64.rpm' + 'pkgmgr-info-*.aarch64.rpm' + 'sensord-devel-*.aarch64.rpm' + 'sensord-dummy-*.aarch64.rpm' + 'vconf-compat-*.aarch64.rpm' + 'vconf-internal-keys-devel-*.aarch64.rpm' + 'bluetooth-frwk-0*.aarch64.rpm' + 'capi-network-bluetooth-0*.aarch64.rpm' + 'capi-network-bluetooth-devel-*.aarch64.rpm' + 'capi-network-nsd-*.aarch64.rpm' + 'capi-network-thread-*.aarch64.rpm' + 'capi-system-peripheral-io-*.aarch64.rpm' + 'capi-system-peripheral-io-devel-*.aarch64.rpm' + 'capi-system-resource-1*.aarch64.rpm' + 'libnsd-dns-sd-*.aarch64.rpm' + 'sensord-*.aarch64.rpm') + download "$URL" "${PKG_ARR[@]}" + + # Tizen Developer Platform Certificate + URL="http://download.tizen.org/sdk/extensions/Tizen_IoT_Headless/binary/" + # Tizen site does not have this package available in version 8.0. + # Certificates are the same for 7.0 and 8.0, though. + PKG_ARR=( + "7.0-iot-things-add-ons_*_ubuntu-64.zip") + download "$URL" "${PKG_ARR[@]}" + + # Install all + info "Installing Tizen SDK..." + + unzip -o '*.zip' + cp -rf data/* "$TIZEN_SDK_ROOT" + + unrpm *.rpm + cp -rf lib64 usr "$TIZEN_SDK_SYSROOT" + + # Install secret tool or not + if ("$SECRET_TOOL"); then + info "Overriding secret tool..." + install "$SCRIPT_DIR/secret-tool.py" "$TIZEN_SDK_ROOT/tools/certificate-encryptor/secret-tool" + fi + + # Configure Tizen CLI + echo "TIZEN_SDK_INSTALLED_PATH=$TIZEN_SDK_ROOT" >"$TIZEN_SDK_ROOT/sdk.info" + echo "TIZEN_SDK_DATA_PATH=$TIZEN_SDK_DATA_PATH" >>"$TIZEN_SDK_ROOT/sdk.info" + ln -sf "$TIZEN_SDK_DATA_PATH/.tizen-cli-config" "$TIZEN_SDK_ROOT/tools/.tizen-cli-config" + + # Use Tizen developer platform certificate as defaultls + cp "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/sdk-platform/* \ + "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/ + + # Make symbolic links relative + find "$TIZEN_SDK_SYSROOT/usr/lib64" -maxdepth 1 -type l | while IFS= read -r LNK; do + ln -sf "$(basename "$(readlink "$LNK")")" "$LNK" + done + + ln -sf ../../lib64/libcap.so.2 "$TIZEN_SDK_SYSROOT/usr/lib64/libcap.so" + ln -sf openssl3.pc "$TIZEN_SDK_SYSROOT/usr/lib64/pkgconfig/openssl.pc" + + info "Done." + echo + + # Information on necessary environment variables + warning "Before proceeding with Matter export environment variables as follows:" + echo -n "$COLOR_YELLOW" + echo "export TIZEN_VERSION=\"$TIZEN_VERSION\"" + echo "export TIZEN_SDK_ROOT=\"$(realpath "$TIZEN_SDK_ROOT")\"" + echo "export TIZEN_SDK_TOOLCHAIN_ARM64=\"\$TIZEN_SDK_ROOT/tools/aarch64-linux-gnu-gcc-9.2\"" + echo "export TIZEN_SDK_SYSROOT_ARM64=\"\$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core\"" + echo "export PATH=\"\$TIZEN_SDK_TOOLCHAIN_ARM64/bin:\$TIZEN_SDK_ROOT/tools/ide/bin:\$TIZEN_SDK_ROOT/tools:\$PATH\"" + echo -n "$COLOR_NONE" +} + while (($#)); do case $1 in -h | --help) show_help exit 0 ;; + --cpu) + IFS=',' read -r -a array <<< "$2" + for CPU in "${array[@]}"; do + if [ "$CPU" == "arm" ]; then + INSTALL_ARM=true + elif [ "$CPU" == "arm64" ]; then + INSTALL_ARM64=true + else + error "Invalid CPU: $CPU. Use --help" + exit 1 + fi + done + shift + ;; --tizen-sdk-path) TIZEN_SDK_ROOT="$2" shift @@ -368,4 +537,11 @@ fi # ------------------------------------------------------------------------------ # Installation Tizen SDK -install_tizen_sdk + +if [ "$INSTALL_ARM" = true ]; then + install_tizen_sdk_arm +fi + +if [ "$INSTALL_ARM64" = true ]; then + install_tizen_sdk_arm64 +fi \ No newline at end of file From 74a46cd4cf1566d2ce0c437a2a5e6fcd8b87ffeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Tomkiel?= Date: Thu, 27 Feb 2025 10:39:02 +0100 Subject: [PATCH 2/8] Refactor install.sh --- .../tizen-sdk-installer/install.sh | 95 ++++++++++--------- 1 file changed, 49 insertions(+), 46 deletions(-) diff --git a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh index cf4a6cd9dc746d..5c4278b88d6040 100755 --- a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh +++ b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh @@ -142,15 +142,12 @@ function cleanup() { } # ------------------------------------------------------------------------------ -# Function for installing Tizen SDK (arm). -function install_tizen_sdk_arm() { - +# Function for installing common packages for Tizen SDK. +function install_tizen_sdk_common() { mkdir -p "$TIZEN_SDK_ROOT" || return info "Tizen SDK installation directory: $TIZEN_SDK_ROOT" - TIZEN_SDK_SYSROOT="$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device.core" - cd "$TMP_DIR" || return # Get Tizen Studio CLI @@ -165,6 +162,12 @@ function install_tizen_sdk_arm() { 'new-native-cli_2.5.64_ubuntu-64.zip' 'sdb_4.2.23_ubuntu-64.zip') download "$URL" "${PKG_ARR[@]}" +} + +# Function for installing Tizen SDK (arm). +function install_tizen_sdk_arm() { + + TIZEN_SDK_SYSROOT="$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device.core" # Get toolchain info "Downloading Tizen toolchain..." @@ -210,9 +213,17 @@ function install_tizen_sdk_arm() { 'app-core-common-*.rpm' 'aul-0*.armv7l.rpm' 'aul-devel-*.armv7l.rpm' + 'bluetooth-frwk-0*.armv7l.rpm' 'bundle-0*.armv7l.rpm' 'bundle-devel-*.armv7l.rpm' 'buxton2-*.armv7l.rpm' + 'capi-network-bluetooth-0*.armv7l.rpm' + 'capi-network-bluetooth-devel-*.armv7l.rpm' + 'capi-network-nsd-*.armv7l.rpm' + 'capi-network-thread-*.armv7l.rpm' + 'capi-system-peripheral-io-*.armv7l.rpm' + 'capi-system-peripheral-io-devel-*.armv7l.rpm' + 'capi-system-resource-1*.armv7l.rpm' 'cynara-devel-*.armv7l.rpm' 'dbus-1*.armv7l.rpm' 'dbus-devel-*.armv7l.rpm' @@ -225,26 +236,23 @@ function install_tizen_sdk_arm() { 'libcynara-commons-*.armv7l.rpm' 'libdns_sd-*.armv7l.rpm' 'libjson-glib-*.armv7l.rpm' + 'libnsd-dns-sd-*.armv7l.rpm' 'libsessiond-0*.armv7l.rpm' 'libsystemd-*.armv7l.rpm' 'libtzplatform-config-*.armv7l.rpm' 'parcel-0*.armv7l.rpm' 'parcel-devel-*.armv7l.rpm' 'pkgmgr-info-*.armv7l.rpm' + 'sensord-*.armv7l.rpm' 'sensord-devel-*.armv7l.rpm' 'sensord-dummy-*.armv7l.rpm' 'vconf-compat-*.armv7l.rpm' - 'vconf-internal-keys-devel-*.armv7l.rpm' - 'bluetooth-frwk-0*.armv7l.rpm' - 'capi-network-bluetooth-0*.armv7l.rpm' - 'capi-network-bluetooth-devel-*.armv7l.rpm' - 'capi-network-nsd-*.armv7l.rpm' - 'capi-network-thread-*.armv7l.rpm' - 'capi-system-peripheral-io-*.armv7l.rpm' - 'capi-system-peripheral-io-devel-*.armv7l.rpm' - 'capi-system-resource-1*.armv7l.rpm' - 'libnsd-dns-sd-*.armv7l.rpm' - 'sensord-*.armv7l.rpm') + 'vconf-internal-keys-devel-*.armv7l.rpm') + download "$URL" "${PKG_ARR[@]}" + + # Unified packages (snapshots) + URL="http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/latest/repos/standard/packages/armv7l/" + PKG_ARR=() download "$URL" "${PKG_ARR[@]}" # Tizen Developer Platform Certificate @@ -303,27 +311,8 @@ function install_tizen_sdk_arm() { # Function for installing Tizen SDK (arm64). function install_tizen_sdk_arm64() { - mkdir -p "$TIZEN_SDK_ROOT" || return - - info "Tizen SDK installation directory: $TIZEN_SDK_ROOT" - TIZEN_SDK_SYSROOT="$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core" - cd "$TMP_DIR" || return - - # Get Tizen Studio CLI - info "Downloading Tizen Studio CLI..." - - # Download - URL="http://download.tizen.org/sdk/tizenstudio/official/binary/" - PKG_ARR=( - 'certificate-encryptor_1.0.10_ubuntu-64.zip' - 'certificate-generator_0.1.4_ubuntu-64.zip' - 'new-common-cli_2.5.64_ubuntu-64.zip' - 'new-native-cli_2.5.64_ubuntu-64.zip' - 'sdb_4.2.23_ubuntu-64.zip') - download "$URL" "${PKG_ARR[@]}" - # Get toolchain info "Downloading Tizen toolchain..." @@ -368,9 +357,17 @@ function install_tizen_sdk_arm64() { 'app-core-common-*.rpm' 'aul-0*.aarch64.rpm' 'aul-devel-*.aarch64.rpm' + 'bluetooth-frwk-0*.aarch64.rpm' 'bundle-0*.aarch64.rpm' 'bundle-devel-*.aarch64.rpm' 'buxton2-*.aarch64.rpm' + 'capi-network-bluetooth-0*.aarch64.rpm' + 'capi-network-bluetooth-devel-*.aarch64.rpm' + 'capi-network-nsd-*.aarch64.rpm' + 'capi-network-thread-*.aarch64.rpm' + 'capi-system-peripheral-io-*.aarch64.rpm' + 'capi-system-peripheral-io-devel-*.aarch64.rpm' + 'capi-system-resource-1*.aarch64.rpm' 'cynara-devel-*.aarch64.rpm' 'dbus-1*.aarch64.rpm' 'dbus-devel-*.aarch64.rpm' @@ -383,26 +380,24 @@ function install_tizen_sdk_arm64() { 'libcynara-commons-*.aarch64.rpm' 'libdns_sd-*.aarch64.rpm' 'libjson-glib-*.aarch64.rpm' + 'libnsd-dns-sd-*.aarch64.rpm' 'libsessiond-0*.aarch64.rpm' 'libsystemd-*.aarch64.rpm' 'libtzplatform-config-*.aarch64.rpm' 'parcel-0*.aarch64.rpm' 'parcel-devel-*.aarch64.rpm' 'pkgmgr-info-*.aarch64.rpm' + 'sensord-*.aarch64.rpm' 'sensord-devel-*.aarch64.rpm' 'sensord-dummy-*.aarch64.rpm' 'vconf-compat-*.aarch64.rpm' 'vconf-internal-keys-devel-*.aarch64.rpm' - 'bluetooth-frwk-0*.aarch64.rpm' - 'capi-network-bluetooth-0*.aarch64.rpm' - 'capi-network-bluetooth-devel-*.aarch64.rpm' - 'capi-network-nsd-*.aarch64.rpm' - 'capi-network-thread-*.aarch64.rpm' - 'capi-system-peripheral-io-*.aarch64.rpm' - 'capi-system-peripheral-io-devel-*.aarch64.rpm' - 'capi-system-resource-1*.aarch64.rpm' - 'libnsd-dns-sd-*.aarch64.rpm' - 'sensord-*.aarch64.rpm') + ) + download "$URL" "${PKG_ARR[@]}" + + # Unified packages (snapshots) + URL="http://download.tizen.org/snapshots/TIZEN/Tizen/Tizen-Unified/latest/repos/standard/packages/aarch64/" + PKG_ARR=() download "$URL" "${PKG_ARR[@]}" # Tizen Developer Platform Certificate @@ -505,6 +500,13 @@ while (($#)); do shift done +# ------------------------------------------------------------------------------ +# Verify passed arguments and flags +if [ -z "$INSTALL_ARM" ] && [ -z "$INSTALL_ARM64" ]; then + echo "No CPU architecture provided. Use --help." + exit 1 +fi + # ------------------------------------------------------------------------------ # Prepare a temporary directory and cleanup trap cleanup EXIT @@ -537,6 +539,7 @@ fi # ------------------------------------------------------------------------------ # Installation Tizen SDK +install_tizen_sdk_common if [ "$INSTALL_ARM" = true ]; then install_tizen_sdk_arm @@ -544,4 +547,4 @@ fi if [ "$INSTALL_ARM64" = true ]; then install_tizen_sdk_arm64 -fi \ No newline at end of file +fi From 9e5cebe8dde51db083e4e23c3a7cb0b49c28a09d Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Thu, 27 Feb 2025 12:51:35 +0000 Subject: [PATCH 3/8] Restyled by shellharden --- .../stage-2/chip-build-tizen/tizen-sdk-installer/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh index 5c4278b88d6040..f984bfa110f16a 100755 --- a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh +++ b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh @@ -45,7 +45,7 @@ function show_help() { echo echo "Options:" echo " -h, --help Display this information" - echo " --cpu Comma separated list of CPUs. Like `arm` or `arm64`" + echo " --cpu Comma separated list of CPUs. Like $(arm) or $(arm64)" echo " --tizen-sdk-path Set directory for Tizen SDK installation. Default is $TIZEN_SDK_ROOT" echo " --tizen-sdk-data-path Set directory for Tizen SDK runtime data. Default is $TIZEN_SDK_DATA_PATH" echo " --install-dependencies This option installs all required dependencies" From 8e818346d13490b4263eea41cb4312fcd344b1d2 Mon Sep 17 00:00:00 2001 From: "Restyled.io" Date: Thu, 27 Feb 2025 12:51:36 +0000 Subject: [PATCH 4/8] Restyled by shfmt --- .../stage-2/chip-build-tizen/tizen-sdk-installer/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh index f984bfa110f16a..84badc4c9dab21 100755 --- a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh +++ b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh @@ -392,7 +392,7 @@ function install_tizen_sdk_arm64() { 'sensord-dummy-*.aarch64.rpm' 'vconf-compat-*.aarch64.rpm' 'vconf-internal-keys-devel-*.aarch64.rpm' - ) + ) download "$URL" "${PKG_ARR[@]}" # Unified packages (snapshots) @@ -461,7 +461,7 @@ while (($#)); do exit 0 ;; --cpu) - IFS=',' read -r -a array <<< "$2" + IFS=',' read -r -a array <<<"$2" for CPU in "${array[@]}"; do if [ "$CPU" == "arm" ]; then INSTALL_ARM=true From dfac79557a147bc24eec547f24604da673b06122 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Tomkiel?= Date: Fri, 28 Feb 2025 13:04:11 +0100 Subject: [PATCH 5/8] Refactor files --- .../stage-2/chip-build-tizen/Dockerfile | 7 +- .../tizen-sdk-installer/install.sh | 70 ++++++++----------- 2 files changed, 34 insertions(+), 43 deletions(-) diff --git a/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile b/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile index fff10e197ed090..b1037c8928e55d 100644 --- a/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile +++ b/integrations/docker/images/stage-2/chip-build-tizen/Dockerfile @@ -35,10 +35,15 @@ RUN set -x \ # ------------------------------------------------------------------------------ # Set environment +# Tools +ENV PATH="$TIZEN_SDK_ROOT/tools/ide/bin:$TIZEN_SDK_ROOT/tools:$PATH" + +# ARM ENV TIZEN_SDK_TOOLCHAIN $TIZEN_SDK_ROOT/tools/arm-linux-gnueabi-gcc-9.2 ENV TIZEN_SDK_SYSROOT $TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device.core -ENV PATH="$TIZEN_SDK_TOOLCHAIN/bin:$TIZEN_SDK_ROOT/tools/ide/bin:$TIZEN_SDK_ROOT/tools:$PATH" +ENV PATH="$TIZEN_SDK_TOOLCHAIN/bin:$PATH" +# ARM64 ENV TIZEN_SDK_TOOLCHAIN_ARM64 $TIZEN_SDK_ROOT/tools/aarch64-linux-gnu-gcc-9.2 ENV TIZEN_SDK_SYSROOT_ARM64 $TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core ENV PATH="$TIZEN_SDK_TOOLCHAIN_ARM64/bin:$PATH" diff --git a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh index 84badc4c9dab21..d2a31a7f864afa 100755 --- a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh +++ b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh @@ -45,7 +45,7 @@ function show_help() { echo echo "Options:" echo " -h, --help Display this information" - echo " --cpu Comma separated list of CPUs. Like $(arm) or $(arm64)" + echo " --cpu Comma separated list of CPU architectures. Like arm or arm64" echo " --tizen-sdk-path Set directory for Tizen SDK installation. Default is $TIZEN_SDK_ROOT" echo " --tizen-sdk-data-path Set directory for Tizen SDK runtime data. Default is $TIZEN_SDK_DATA_PATH" echo " --install-dependencies This option installs all required dependencies" @@ -272,40 +272,13 @@ function install_tizen_sdk_arm() { unrpm *.rpm cp -rf lib usr "$TIZEN_SDK_SYSROOT" - # Install secret tool or not - if ("$SECRET_TOOL"); then - info "Overriding secret tool..." - install "$SCRIPT_DIR/secret-tool.py" "$TIZEN_SDK_ROOT/tools/certificate-encryptor/secret-tool" - fi - - # Configure Tizen CLI - echo "TIZEN_SDK_INSTALLED_PATH=$TIZEN_SDK_ROOT" >"$TIZEN_SDK_ROOT/sdk.info" - echo "TIZEN_SDK_DATA_PATH=$TIZEN_SDK_DATA_PATH" >>"$TIZEN_SDK_ROOT/sdk.info" - ln -sf "$TIZEN_SDK_DATA_PATH/.tizen-cli-config" "$TIZEN_SDK_ROOT/tools/.tizen-cli-config" - - # Use Tizen developer platform certificate as default - cp "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/sdk-platform/* \ - "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/ - # Make symbolic links relative find "$TIZEN_SDK_SYSROOT/usr/lib" -maxdepth 1 -type l | while IFS= read -r LNK; do ln -sf "$(basename "$(readlink "$LNK")")" "$LNK" done + ln -sf ../../lib/libcap.so.2 "$TIZEN_SDK_SYSROOT/usr/lib/libcap.so" ln -sf openssl3.pc "$TIZEN_SDK_SYSROOT/usr/lib/pkgconfig/openssl.pc" - - info "Done." - echo - - # Information on necessary environment variables - warning "Before proceeding with Matter export environment variables as follows:" - echo -n "$COLOR_YELLOW" - echo "export TIZEN_VERSION=\"$TIZEN_VERSION\"" - echo "export TIZEN_SDK_ROOT=\"$(realpath "$TIZEN_SDK_ROOT")\"" - echo "export TIZEN_SDK_TOOLCHAIN=\"\$TIZEN_SDK_ROOT/tools/arm-linux-gnueabi-gcc-9.2\"" - echo "export TIZEN_SDK_SYSROOT=\"\$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device.core\"" - echo "export PATH=\"\$TIZEN_SDK_TOOLCHAIN/bin:\$TIZEN_SDK_ROOT/tools/ide/bin:\$TIZEN_SDK_ROOT/tools:\$PATH\"" - echo -n "$COLOR_NONE" } # Function for installing Tizen SDK (arm64). @@ -417,6 +390,16 @@ function install_tizen_sdk_arm64() { unrpm *.rpm cp -rf lib64 usr "$TIZEN_SDK_SYSROOT" + # Make symbolic links relative + find "$TIZEN_SDK_SYSROOT/usr/lib64" -maxdepth 1 -type l | while IFS= read -r LNK; do + ln -sf "$(basename "$(readlink "$LNK")")" "$LNK" + done + + ln -sf ../../lib64/libcap.so.2 "$TIZEN_SDK_SYSROOT/usr/lib64/libcap.so" + ln -sf openssl3.pc "$TIZEN_SDK_SYSROOT/usr/lib64/pkgconfig/openssl.pc" +} + +function install_tizen_sdk_finalize() { # Install secret tool or not if ("$SECRET_TOOL"); then info "Overriding secret tool..." @@ -432,25 +415,26 @@ function install_tizen_sdk_arm64() { cp "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/sdk-platform/* \ "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/ - # Make symbolic links relative - find "$TIZEN_SDK_SYSROOT/usr/lib64" -maxdepth 1 -type l | while IFS= read -r LNK; do - ln -sf "$(basename "$(readlink "$LNK")")" "$LNK" - done - - ln -sf ../../lib64/libcap.so.2 "$TIZEN_SDK_SYSROOT/usr/lib64/libcap.so" - ln -sf openssl3.pc "$TIZEN_SDK_SYSROOT/usr/lib64/pkgconfig/openssl.pc" - info "Done." echo - # Information on necessary environment variables warning "Before proceeding with Matter export environment variables as follows:" echo -n "$COLOR_YELLOW" echo "export TIZEN_VERSION=\"$TIZEN_VERSION\"" echo "export TIZEN_SDK_ROOT=\"$(realpath "$TIZEN_SDK_ROOT")\"" - echo "export TIZEN_SDK_TOOLCHAIN_ARM64=\"\$TIZEN_SDK_ROOT/tools/aarch64-linux-gnu-gcc-9.2\"" - echo "export TIZEN_SDK_SYSROOT_ARM64=\"\$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core\"" - echo "export PATH=\"\$TIZEN_SDK_TOOLCHAIN_ARM64/bin:\$TIZEN_SDK_ROOT/tools/ide/bin:\$TIZEN_SDK_ROOT/tools:\$PATH\"" + + if [ "$INSTALL_ARM" = true ]; then + echo "export TIZEN_SDK_TOOLCHAIN=\"\$TIZEN_SDK_ROOT/tools/arm-linux-gnueabi-gcc-9.2\"" + echo "export TIZEN_SDK_SYSROOT=\"\$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device.core\"" + echo "export PATH=\"\$TIZEN_SDK_TOOLCHAIN/bin:\$TIZEN_SDK_ROOT/tools/ide/bin:\$TIZEN_SDK_ROOT/tools:\$PATH\"" + fi + + if [ "$INSTALL_ARM64" = true ]; then + echo "export TIZEN_SDK_TOOLCHAIN_ARM64=\"\$TIZEN_SDK_ROOT/tools/aarch64-linux-gnu-gcc-9.2\"" + echo "export TIZEN_SDK_SYSROOT_ARM64=\"\$TIZEN_SDK_ROOT/platforms/tizen-$TIZEN_VERSION/tizen/rootstraps/tizen-$TIZEN_VERSION-device64.core\"" + echo "export PATH=\"\$TIZEN_SDK_TOOLCHAIN_ARM64/bin:\$TIZEN_SDK_ROOT/tools/ide/bin:\$TIZEN_SDK_ROOT/tools:\$PATH\"" + fi + echo -n "$COLOR_NONE" } @@ -503,7 +487,7 @@ done # ------------------------------------------------------------------------------ # Verify passed arguments and flags if [ -z "$INSTALL_ARM" ] && [ -z "$INSTALL_ARM64" ]; then - echo "No CPU architecture provided. Use --help." + error "No CPU architecture provided. Use --help." exit 1 fi @@ -548,3 +532,5 @@ fi if [ "$INSTALL_ARM64" = true ]; then install_tizen_sdk_arm64 fi + +install_tizen_sdk_finalize From d7e1d8c08ff183fae3680ff96b6e445aee201d33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Tomkiel?= Date: Fri, 28 Feb 2025 14:37:18 +0100 Subject: [PATCH 6/8] Dedup downloads --- .../docker/images/base/chip-build/version | 2 +- .../tizen-sdk-installer/install.sh | 33 +++++++++---------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/integrations/docker/images/base/chip-build/version b/integrations/docker/images/base/chip-build/version index 4a98867ca2435b..0276abc52ef8e7 100644 --- a/integrations/docker/images/base/chip-build/version +++ b/integrations/docker/images/base/chip-build/version @@ -1 +1 @@ -118 : [Tizen] Add arm64 target - Docker part +120 : [Tizen] Add arm64 target - Docker part diff --git a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh index d2a31a7f864afa..0c0ba4514fba9b 100755 --- a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh +++ b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh @@ -162,6 +162,21 @@ function install_tizen_sdk_common() { 'new-native-cli_2.5.64_ubuntu-64.zip' 'sdb_4.2.23_ubuntu-64.zip') download "$URL" "${PKG_ARR[@]}" + + # Base sysroot + # Different versions of Tizen have different rootstrap versions + URL="http://download.tizen.org/sdk/tizenstudio/official/binary/" + PKG_ARR=( + "tizen-$TIZEN_VERSION-core-add-ons_*_ubuntu-64.zip") + download "$URL" "${PKG_ARR[@]}" + + # Tizen Developer Platform Certificate + URL="http://download.tizen.org/sdk/extensions/Tizen_IoT_Headless/binary/" + # Tizen site does not have this package available in version 8.0. + # Certificates are the same for 7.0 and 8.0, though. + PKG_ARR=( + "7.0-iot-things-add-ons_*_ubuntu-64.zip") + download "$URL" "${PKG_ARR[@]}" } # Function for installing Tizen SDK (arm). @@ -186,7 +201,6 @@ function install_tizen_sdk_arm() { # Different versions of Tizen have different rootstrap versions URL="http://download.tizen.org/sdk/tizenstudio/official/binary/" PKG_ARR=( - "tizen-$TIZEN_VERSION-core-add-ons_*_ubuntu-64.zip" "tizen-$TIZEN_VERSION-rs-device.core_*_ubuntu-64.zip") download "$URL" "${PKG_ARR[@]}" @@ -255,14 +269,6 @@ function install_tizen_sdk_arm() { PKG_ARR=() download "$URL" "${PKG_ARR[@]}" - # Tizen Developer Platform Certificate - URL="http://download.tizen.org/sdk/extensions/Tizen_IoT_Headless/binary/" - # Tizen site does not have this package available in version 8.0. - # Certificates are the same for 7.0 and 8.0, though. - PKG_ARR=( - "7.0-iot-things-add-ons_*_ubuntu-64.zip") - download "$URL" "${PKG_ARR[@]}" - # Install all info "Installing Tizen SDK..." @@ -303,7 +309,6 @@ function install_tizen_sdk_arm64() { # Different versions of Tizen have different rootstrap versions URL="http://download.tizen.org/sdk/tizenstudio/official/binary/" PKG_ARR=( - "tizen-$TIZEN_VERSION-core-add-ons_*_ubuntu-64.zip" "tizen-$TIZEN_VERSION-rs-device64.core_*_ubuntu-64.zip") download "$URL" "${PKG_ARR[@]}" @@ -373,14 +378,6 @@ function install_tizen_sdk_arm64() { PKG_ARR=() download "$URL" "${PKG_ARR[@]}" - # Tizen Developer Platform Certificate - URL="http://download.tizen.org/sdk/extensions/Tizen_IoT_Headless/binary/" - # Tizen site does not have this package available in version 8.0. - # Certificates are the same for 7.0 and 8.0, though. - PKG_ARR=( - "7.0-iot-things-add-ons_*_ubuntu-64.zip") - download "$URL" "${PKG_ARR[@]}" - # Install all info "Installing Tizen SDK..." From 4e8b9097d7c29837d5aaa6061e7273ac79e95c4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Tomkiel?= Date: Mon, 3 Mar 2025 17:51:39 +0100 Subject: [PATCH 7/8] Update integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh Co-authored-by: Arkadiusz Bokowy --- .../stage-2/chip-build-tizen/tizen-sdk-installer/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh index 0c0ba4514fba9b..bbe2d1cf816ab9 100755 --- a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh +++ b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh @@ -408,7 +408,7 @@ function install_tizen_sdk_finalize() { echo "TIZEN_SDK_DATA_PATH=$TIZEN_SDK_DATA_PATH" >>"$TIZEN_SDK_ROOT/sdk.info" ln -sf "$TIZEN_SDK_DATA_PATH/.tizen-cli-config" "$TIZEN_SDK_ROOT/tools/.tizen-cli-config" - # Use Tizen developer platform certificate as defaultls + # Use Tizen developer platform certificate as defaults cp "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/sdk-platform/* \ "$TIZEN_SDK_ROOT"/tools/certificate-generator/certificates/distributor/ From f8d28acaf58afc822325f4e090693ac66b7311bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Tomkiel?= Date: Thu, 6 Mar 2025 10:49:48 +0100 Subject: [PATCH 8/8] Merge download sections --- .../chip-build-tizen/tizen-sdk-installer/install.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh index bbe2d1cf816ab9..59119bba2e9f6b 100755 --- a/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh +++ b/integrations/docker/images/stage-2/chip-build-tizen/tizen-sdk-installer/install.sh @@ -160,13 +160,7 @@ function install_tizen_sdk_common() { 'certificate-generator_0.1.4_ubuntu-64.zip' 'new-common-cli_2.5.64_ubuntu-64.zip' 'new-native-cli_2.5.64_ubuntu-64.zip' - 'sdb_4.2.23_ubuntu-64.zip') - download "$URL" "${PKG_ARR[@]}" - - # Base sysroot - # Different versions of Tizen have different rootstrap versions - URL="http://download.tizen.org/sdk/tizenstudio/official/binary/" - PKG_ARR=( + 'sdb_4.2.23_ubuntu-64.zip' "tizen-$TIZEN_VERSION-core-add-ons_*_ubuntu-64.zip") download "$URL" "${PKG_ARR[@]}"