From 756cf92c7f37f98395838bd1deceaaa5da477564 Mon Sep 17 00:00:00 2001 From: Fabio Belavenuto Date: Thu, 23 Feb 2023 15:39:31 -0300 Subject: [PATCH] Added toolchain/toolkit for 7.2 version --- docker/syno-compiler/Dockerfile.template | 7 +- docker/syno-compiler/PLATFORMS | 9 -- docker/syno-compiler/build.sh | 127 +++++++++++++---------- 3 files changed, 74 insertions(+), 69 deletions(-) delete mode 100644 docker/syno-compiler/PLATFORMS diff --git a/docker/syno-compiler/Dockerfile.template b/docker/syno-compiler/Dockerfile.template index 5bdf39e3..5eb4e105 100644 --- a/docker/syno-compiler/Dockerfile.template +++ b/docker/syno-compiler/Dockerfile.template @@ -1,6 +1,7 @@ FROM alpine:3.14 AS stage ARG PLATFORMS="@@@PLATFORMS@@@" ARG TOOLKIT_VER="@@@TOOLKIT_VER@@@" +ARG GCCLIB_VER="@@@GCCLIB_VER@@@" # Copy downloaded toolkits ADD cache /cache @@ -12,8 +13,8 @@ RUN for V in ${PLATFORMS}; do \ mkdir "/opt/${PLATFORM}" && \ tar -xaf "/cache/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" -C "/opt/${PLATFORM}" --strip-components=9 \ "usr/local/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/sys-root/usr/lib/modules/DSM-${TOOLKIT_VER}" && \ - echo "Extracting ${PLATFORM}-toolchain.txz" && \ - tar -xaf "/cache/${PLATFORM}-toolchain.txz" -C "/opt/${PLATFORM}" --strip-components=1; \ + echo "Extracting ${PLATFORM}-${GCCLIB_VER}_x86_64-GPL.txz" && \ + tar -xaf "/cache/${PLATFORM}-${GCCLIB_VER}_x86_64-GPL.txz" -C "/opt/${PLATFORM}" --strip-components=1; \ KVER_MAJOR="`echo ${KVER} | rev | cut -d. -f2- | rev`"; \ if [ ! -d "/opt/linux-${KVER_MAJOR}.x" -a -f "/cache/linux-${KVER_MAJOR}.x.txz" ]; then \ echo "Extracting linux-${KVER_MAJOR}.x.txz" && \ @@ -25,7 +26,7 @@ RUN for V in ${PLATFORMS}; do \ done # Final image -FROM debian:8-slim +FROM debian:9-slim ENV SHELL=/bin/bash \ ARCH=x86_64 diff --git a/docker/syno-compiler/PLATFORMS b/docker/syno-compiler/PLATFORMS deleted file mode 100644 index 2c77de1e..00000000 --- a/docker/syno-compiler/PLATFORMS +++ /dev/null @@ -1,9 +0,0 @@ -bromolow 3.10.108 -apollolake 4.4.180 -broadwell 4.4.180 -broadwellnk 4.4.180 -denverton 4.4.180 -geminilake 4.4.180 -v1000 4.4.180 -r1000 4.4.180 -epyc7002 5.10.55 diff --git a/docker/syno-compiler/build.sh b/docker/syno-compiler/build.sh index f871014e..7a5e73fa 100755 --- a/docker/syno-compiler/build.sh +++ b/docker/syno-compiler/build.sh @@ -1,7 +1,26 @@ #!/usr/bin/env bash CACHE_DIR="cache" -PLATFORM_FILE="PLATFORMS" +#SERVER="https://archive.synology.com" +SERVER="https://global.download.synology.com" +#https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/ + +declare -A URIS +declare -A PLATFORMS + +URIS["apollolake"]="Intel%20x86%20Linux%20|%20%28Apollolake%29" +URIS["broadwell"]="Intel%20x86%20Linux%20|%20%28Broadwell%29" +URIS["broadwellnk"]="Intel%20x86%20Linux%20|%20%28Broadwellnk%29" +URIS["bromolow"]="Intel%20x86%20linux%20|%20%28Bromolow%29" +URIS["denverton"]="Intel%20x86%20Linux%20|%20%28Denverton%29" +URIS["geminilake"]="Intel%20x86%20Linux%20|%20%28GeminiLake%29" +URIS["v1000"]="Intel%20x86%20Linux%20|%20%28V1000%29" +URIS["r1000"]="AMD%20x86%20Linux%20|%20%28r1000%29" +URIS["epyc7002"]="AMD%20x86%20Linux%20Linux%20|%20%28epyc7002%29" +PLATFORMS["7.1"]="apollolake:4.4.180 broadwell:4.4.180 broadwellnk:4.4.180 bromolow:3.10.108 denverton:4.4.180 geminilake:4.4.180 v1000:4.4.180 r1000:4.4.180 epyc7002:5.10.55" +PLATFORMS["7.2"]="apollolake:4.4.302 broadwell:4.4.302 broadwellnk:4.4.302 bromolow:3.10.108 denverton:4.4.302 geminilake:4.4.302 v1000:4.4.302 r1000:4.4.302 epyc7002:5.10.55" + +mkdir -p ${CACHE_DIR} ############################################################################### function trap_cancel() { @@ -13,77 +32,62 @@ cd `dirname $0` ############################################################################### function prepare() { - declare -A URLS - - URLS["apollolake"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Apollolake%29/apollolake-${GCCLIB_VER}_x86_64-GPL.txz" - URLS["broadwell"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Broadwell%29/broadwell-${GCCLIB_VER}_x86_64-GPL.txz" - URLS["broadwellnk"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Broadwellnk%29/broadwellnk-${GCCLIB_VER}_x86_64-GPL.txz" - URLS["bromolow"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20linux%203.10.108%20%28Bromolow%29/bromolow-${GCCLIB_VER}_x86_64-GPL.txz" - URLS["denverton"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28Denverton%29/denverton-${GCCLIB_VER}_x86_64-GPL.txz" - URLS["geminilake"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28GeminiLake%29/geminilake-${GCCLIB_VER}_x86_64-GPL.txz" - URLS["v1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/Intel%20x86%20Linux%204.4.180%20%28V1000%29/v1000-${GCCLIB_VER}_x86_64-GPL.txz" - URLS["r1000"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%204.4.180%20%28r1000%29/r1000-${GCCLIB_VER}_x86_64-GPL.txz" - URLS["epyc7002"]="https://global.download.synology.com/download/ToolChain/toolchain/${TOOLCHAIN_VER}/AMD%20x86%20Linux%20Linux%205.10.55%20%28epyc7002%29/epyc7002-${GCCLIB_VER}_x86_64-GPL.txz" - # - URLS["apollolake-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/apollolake/linux-4.4.x.txz" - URLS["broadwell-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/broadwell/linux-4.4.x.txz" - URLS["broadwellnk-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/broadwellnk/linux-4.4.x.txz" - URLS["bromolow-3.10.108"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/bromolow/linux-3.10.x.txz" - URLS["denverton-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/denverton/linux-4.4.x.txz" - URLS["geminilake-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/geminilake/linux-4.4.x.txz" - URLS["v1000-4.4.180"]="https://global.download.synology.com/download/ToolChain/Synology%20NAS%20GPL%20Source/7.0-41890/v1000/linux-4.4.x.txz" - - # Read platforms/kerver version - echo "Reading platforms" - declare -A PLATFORMS - while read PLATFORM KVER; do - PLATFORMS[${PLATFORM}]="${KVER}" - done < ${PLATFORM_FILE} - # Download toolkits - mkdir -p ${CACHE_DIR} - - for PLATFORM in ${!PLATFORMS[@]}; do - KVER="${PLATFORMS[${PLATFORM}]}" + for P in ${PLATFORMS[${TOOLKIT_VER}]}; do + PLATFORM="`echo ${P} | cut -d':' -f1`" + KVER="`echo ${P} | cut -d':' -f2`" + # Dev echo -n "Checking ${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz... " if [ ! -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" ]; then - URL="https://global.download.synology.com/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" + URL="${SERVER}/download/ToolChain/toolkit/${TOOLKIT_VER}/${PLATFORM}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" echo -e "No\nDownloading ${URL}" - curl -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" + STATUS=`curl -w "%{http_code}" -L "${URL}" -o "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz"` + if [ ${STATUS} -ne 200 ]; then + rm -f "${CACHE_DIR}/ds.${PLATFORM}-${TOOLKIT_VER}.dev.txz" + exit 1 + fi else echo "OK" fi - echo -n "Checking ${CACHE_DIR}/${PLATFORM}-toolchain.txz... " - if [ ! -f "${CACHE_DIR}/${PLATFORM}-toolchain.txz" ]; then - URL=${URLS["${PLATFORM}"]} + # Toolchain + URI="`echo ${URIS[${PLATFORM}]} | sed "s/|/${KVER}/"`" + URL="${SERVER}/download/ToolChain/toolchain/${TOOLCHAIN_VER}/${URI}/${PLATFORM}-${GCCLIB_VER}_x86_64-GPL.txz" + FILENAME="${PLATFORM}-${GCCLIB_VER}_x86_64-GPL.txz" + echo -n "Checking ${CACHE_DIR}/${FILENAME}... " + if [ ! -f "${CACHE_DIR}/${FILENAME}" ]; then echo -e "No\nDownloading ${URL}" - curl -L "${URL}" -o "${CACHE_DIR}/${PLATFORM}-toolchain.txz" + STATUS=`curl -w "%{http_code}" -L "${URL}" -o "${CACHE_DIR}/${FILENAME}"` + if [ ${STATUS} -ne 200 ]; then + rm -f "${CACHE_DIR}/${FILENAME}" + exit 1 + fi else echo "OK" fi done - for KERNEL in 3.10.x 4.4.x 5.10.x; do - URL=${URLS["${KERNEL}"]} - [ -z "${URL}" ] && continue - echo -n "Checking ${CACHE_DIR}/linux-${KERNEL}.txz... " - if [ ! -f "${CACHE_DIR}/linux-${KERNEL}.txz" ]; then - echo -e "No\nDownloading ${URL}" - curl -L "${URL}" -o "${CACHE_DIR}/linux-${KERNEL}.txz" - else - echo "OK" - fi - done + # for KERNEL in 3.10.x 4.4.x 5.10.x; do + # URL=${URLS["${KERNEL}"]} + # [ -z "${URL}" ] && continue + # echo -n "Checking ${CACHE_DIR}/linux-${KERNEL}.txz... " + # if [ ! -f "${CACHE_DIR}/linux-${KERNEL}.txz" ]; then + # echo -e "No\nDownloading ${URL}" + # STATUS=`curl -w "%{http_code}" -L "${URL}" -o "${CACHE_DIR}/linux-${KERNEL}.txz"` + # if [ ${STATUS} -ne 200 ]; then + # rm -f "${CACHE_DIR}/linux-${KERNEL}.txz" + # exit 1 + # fi + # else + # echo "OK" + # fi + # done # Generate Dockerfile echo "Generating Dockerfile" cp Dockerfile.template Dockerfile - VALUE="" - for PLATFORM in ${!PLATFORMS[@]}; do - VALUE+="${PLATFORM}:${PLATFORMS[${PLATFORM}]} " - done - sed -i "s|@@@PLATFORMS@@@|${VALUE::-1}|g" Dockerfile + sed -i "s|@@@PLATFORMS@@@|${PLATFORMS[${TOOLKIT_VER}]}|g" Dockerfile sed -i "s|@@@TOOLKIT_VER@@@|${TOOLKIT_VER}|g" Dockerfile + sed -i "s|@@@GCCLIB_VER@@@|${GCCLIB_VER}|g" Dockerfile } # 7.0 @@ -96,9 +100,18 @@ function prepare() { #docker buildx build . --load --tag fbelavenuto/syno-compiler:${TOOLKIT_VER} # 7.1 -TOOLKIT_VER="7.1" -TOOLCHAIN_VER="7.1-42661" -GCCLIB_VER="gcc850_glibc226" +# TOOLKIT_VER="7.1" +# TOOLCHAIN_VER="7.1-42661" +# GCCLIB_VER="gcc850_glibc226" +# prepare +# echo "Building ${TOOLKIT_VER}" +# docker image rm fbelavenuto/syno-compiler:${TOOLKIT_VER} >/dev/null 2>&1 +# docker buildx build . --load --tag fbelavenuto/syno-compiler:${TOOLKIT_VER} + +# 7.2 +TOOLKIT_VER="7.2" +TOOLCHAIN_VER="7.2-63134" +GCCLIB_VER="gcc1220_glibc236" prepare echo "Building ${TOOLKIT_VER}" docker image rm fbelavenuto/syno-compiler:${TOOLKIT_VER} >/dev/null 2>&1