Skip to content
This repository has been archived by the owner on May 8, 2024. It is now read-only.

Commit

Permalink
Merge pull request #624 from fbelavenuto/docker-7.2
Browse files Browse the repository at this point in the history
Added toolchain/toolkit for 7.2 version
  • Loading branch information
fbelavenuto committed Feb 23, 2023
2 parents a4d04d5 + 988367a commit 9405793
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 69 deletions.
7 changes: 4 additions & 3 deletions docker/syno-compiler/Dockerfile.template
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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" && \
Expand All @@ -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

Expand Down
9 changes: 0 additions & 9 deletions docker/syno-compiler/PLATFORMS

This file was deleted.

127 changes: 70 additions & 57 deletions docker/syno-compiler/build.sh
Original file line number Diff line number Diff line change
@@ -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() {
Expand All @@ -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
Expand All @@ -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
Expand Down

0 comments on commit 9405793

Please sign in to comment.