@@ -44,6 +44,13 @@ ARG PYTHON310_VERSION=3.10.20
4444ARG PYTHON310_TAG=${PYTHON310_VERSION}-24741349542
4545ARG PYTHON310_SHA256=f4d1a502c5f109d05a03333e14e4c0f0b92634c29de76613aaf42d0019b99cd5 # https://github.com/riseproject-dev/python-versions/releases/${PYTHON310_TAG}
4646RUN bash -eux -o pipefail <<'EOF'
47+ if [[ "${OS_VERSION}" == "26.04" ]]; then
48+ # FIXME: It's still missing 26.06 python builds at https://github.com/riseproject-dev/python-versions
49+ mkdir -p ${RUNNER_TOOL_CACHE}/Python/${PYTHON310_VERSION}/riscv64
50+ touch ${RUNNER_TOOL_CACHE}/Python/${PYTHON310_VERSION}/riscv64.complete
51+ exit 0
52+ fi
53+
4754 # Download Python 3.10
4855 curl -fsSL --retry 12 --retry-all-errors https://github.com/riseproject-dev/python-versions/releases/download/${PYTHON310_TAG}/python-${PYTHON310_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz \
4956 -o python-${PYTHON310_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz
@@ -68,6 +75,13 @@ ARG PYTHON311_VERSION=3.11.15
6875ARG PYTHON311_TAG=${PYTHON311_VERSION}-24739855755
6976ARG PYTHON311_SHA256=4fbfb313efdf4faa4684100a0fde10919766a77c4463b98fe52c146c4b14e4a2 # https://github.com/riseproject-dev/python-versions/releases/${PYTHON311_TAG}
7077RUN bash -eux -o pipefail <<'EOF'
78+ if [[ "${OS_VERSION}" == "26.04" ]]; then
79+ # FIXME: It's still missing 26.06 python builds at https://github.com/riseproject-dev/python-versions
80+ mkdir -p ${RUNNER_TOOL_CACHE}/Python/${PYTHON311_VERSION}/riscv64
81+ touch ${RUNNER_TOOL_CACHE}/Python/${PYTHON311_VERSION}/riscv64.complete
82+ exit 0
83+ fi
84+
7185 # Download Python 3.11
7286 curl -fsSL --retry 12 --retry-all-errors https://github.com/riseproject-dev/python-versions/releases/download/${PYTHON311_TAG}/python-${PYTHON311_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz \
7387 -o python-${PYTHON311_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz
@@ -92,6 +106,13 @@ ARG PYTHON312_VERSION=3.12.13
92106ARG PYTHON312_TAG=${PYTHON312_VERSION}-24738165632
93107ARG PYTHON312_SHA256=377dd19847333f18e319ce1b5c0f90246646c81d9356050b08b82a366c5bb3f8 # https://github.com/riseproject-dev/python-versions/releases/${PYTHON312_TAG}
94108RUN bash -eux -o pipefail <<'EOF'
109+ if [[ "${OS_VERSION}" == "26.04" ]]; then
110+ # FIXME: It's still missing 26.06 python builds at https://github.com/riseproject-dev/python-versions
111+ mkdir -p ${RUNNER_TOOL_CACHE}/Python/${PYTHON312_VERSION}/riscv64
112+ touch ${RUNNER_TOOL_CACHE}/Python/${PYTHON312_VERSION}/riscv64.complete
113+ exit 0
114+ fi
115+
95116 # Download Python 3.12
96117 curl -fsSL --retry 12 --retry-all-errors https://github.com/riseproject-dev/python-versions/releases/download/${PYTHON312_TAG}/python-${PYTHON312_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz \
97118 -o python-${PYTHON312_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz
@@ -116,6 +137,13 @@ ARG PYTHON313_VERSION=3.13.13
116137ARG PYTHON313_TAG=${PYTHON313_VERSION}-24736470736
117138ARG PYTHON313_SHA256=0f44fe31a9dc49d3d1c896a0de5b421309abe40b4253b4b975b0e94e43b130ab # https://github.com/riseproject-dev/python-versions/releases/${PYTHON313_TAG}
118139RUN bash -eux -o pipefail <<'EOF'
140+ if [[ "${OS_VERSION}" == "26.04" ]]; then
141+ # FIXME: It's still missing 26.06 python builds at https://github.com/riseproject-dev/python-versions
142+ mkdir -p ${RUNNER_TOOL_CACHE}/Python/${PYTHON313_VERSION}/riscv64
143+ touch ${RUNNER_TOOL_CACHE}/Python/${PYTHON313_VERSION}/riscv64.complete
144+ exit 0
145+ fi
146+
119147 # Download Python 3.13
120148 curl -fsSL --retry 12 --retry-all-errors https://github.com/riseproject-dev/python-versions/releases/download/${PYTHON313_TAG}/python-${PYTHON313_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz \
121149 -o python-${PYTHON313_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz
@@ -140,6 +168,13 @@ ARG PYTHON313_VERSION=3.13.13
140168ARG PYTHON313_TAG=${PYTHON313_VERSION}-24736470736
141169ARG PYTHON313_SHA256=8b41f6c8406805ecf2a513ad3d52e56ad32353578b0d249fd02a76e280ee2e0c # https://github.com/riseproject-dev/python-versions/releases/${PYTHON313_TAG}
142170RUN bash -eux -o pipefail <<'EOF'
171+ if [[ "${OS_VERSION}" == "26.04" ]]; then
172+ # FIXME: It's still missing 26.06 python builds at https://github.com/riseproject-dev/python-versions
173+ mkdir -p ${RUNNER_TOOL_CACHE}/Python/${PYTHON313_VERSION}/riscv64
174+ touch ${RUNNER_TOOL_CACHE}/Python/${PYTHON313_VERSION}/riscv64.complete
175+ exit 0
176+ fi
177+
143178 # Download Python 3.13
144179 curl -fsSL --retry 12 --retry-all-errors https://github.com/riseproject-dev/python-versions/releases/download/${PYTHON313_TAG}/python-${PYTHON313_VERSION}-linux-${OS_VERSION}-riscv64-freethreaded.tar.gz \
145180 -o python-${PYTHON313_VERSION}-linux-${OS_VERSION}-riscv64-freethreaded.tar.gz
@@ -164,6 +199,13 @@ ARG PYTHON314_VERSION=3.14.4
164199ARG PYTHON314_TAG=${PYTHON314_VERSION}-24734614154
165200ARG PYTHON314_SHA256=3688a211455a084ae1c77e9a093417d4472906496e977fc2ce8adca5d5978893 # https://github.com/riseproject-dev/python-versions/releases/${PYTHON314_TAG}
166201RUN bash -eux -o pipefail <<'EOF'
202+ if [[ "${OS_VERSION}" == "26.04" ]]; then
203+ # FIXME: It's still missing 26.06 python builds at https://github.com/riseproject-dev/python-versions
204+ mkdir -p ${RUNNER_TOOL_CACHE}/Python/${PYTHON314_VERSION}/riscv64
205+ touch ${RUNNER_TOOL_CACHE}/Python/${PYTHON314_VERSION}/riscv64.complete
206+ exit 0
207+ fi
208+
167209 # Download Python 3.14
168210 curl -fsSL --retry 12 --retry-all-errors https://github.com/riseproject-dev/python-versions/releases/download/${PYTHON314_TAG}/python-${PYTHON314_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz \
169211 -o python-${PYTHON314_VERSION}-linux-${OS_VERSION}-riscv64.tar.gz
@@ -188,6 +230,13 @@ ARG PYTHON314_VERSION=3.14.4
188230ARG PYTHON314_TAG=${PYTHON314_VERSION}-24734614154
189231ARG PYTHON314_SHA256=a575e5c7a74c86bff1110531fdd3592a07a910d8463c9aba982707a2ec06b824 # https://github.com/riseproject-dev/python-versions/releases/${PYTHON314_TAG}
190232RUN bash -eux -o pipefail <<'EOF'
233+ if [[ "${OS_VERSION}" == "26.04" ]]; then
234+ # FIXME: It's still missing 26.06 python builds at https://github.com/riseproject-dev/python-versions
235+ mkdir -p ${RUNNER_TOOL_CACHE}/Python/${PYTHON314_VERSION}/riscv64
236+ touch ${RUNNER_TOOL_CACHE}/Python/${PYTHON314_VERSION}/riscv64.complete
237+ exit 0
238+ fi
239+
191240 # Download Python 3.14
192241 curl -fsSL --retry 12 --retry-all-errors https://github.com/riseproject-dev/python-versions/releases/download/${PYTHON314_TAG}/python-${PYTHON314_VERSION}-linux-${OS_VERSION}-riscv64-freethreaded.tar.gz \
193242 -o python-${PYTHON314_VERSION}-linux-${OS_VERSION}-riscv64-freethreaded.tar.gz
@@ -348,10 +397,10 @@ FROM base-builder AS docker-init
348397
349398WORKDIR /build
350399
351- ARG TINI_VERSION=0.19.0
400+ ARG TINI_VERSION=0.19.1
352401RUN bash -eux -o pipefail <<'EOF'
353402 # Download tini
354- git clone --depth 1 --branch "v${TINI_VERSION}" https://github.com/krallin /tini.git
403+ git clone --depth 1 --branch "v${TINI_VERSION}" https://github.com/riseproject-dev /tini.git
355404 pushd tini
356405
357406 # Build & install to /usr/local
@@ -620,9 +669,6 @@ RUN bash -eux -o pipefail <<'EOF'
620669 ccache \
621670 chrony \
622671 cifs-utils \
623- clang-{16,17,18} \
624- clang-format-{16,17,18} \
625- clang-tidy-{16,17,18} \
626672 cloud-init \
627673 cmake \
628674 containerd \
@@ -645,15 +691,10 @@ RUN bash -eux -o pipefail <<'EOF'
645691 fonts-noto-color-emoji \
646692 ftp \
647693 g++ \
648- g++-{12,13,14} \
649694 gettext-base \
650695 gcc \
651- gcc-{12,13,14} \
652696 gettext-base \
653697 gfortran \
654- gfortran-12 \
655- gfortran-13 \
656- gfortran-14 \
657698 gh \
658699 git \
659700 git-ftp \
@@ -667,7 +708,6 @@ RUN bash -eux -o pipefail <<'EOF'
667708 jq \
668709 libatomic1 \
669710 libbz2-1.0 \
670- libclang-{16,17,18}-dev \
671711 libexpat1 \
672712 libffi8 \
673713 libgdbm6 \
@@ -695,22 +735,6 @@ RUN bash -eux -o pipefail <<'EOF'
695735 p7zip-full \
696736 parallel \
697737 patchelf \
698- php8.3-pgsql \
699- php8.3-phpdbg \
700- php8.3-pspell \
701- php8.3-readline \
702- php8.3-redis \
703- php8.3-snmp \
704- php8.3-soap \
705- php8.3-sqlite3 \
706- php8.3-sybase \
707- php8.3-tidy \
708- php8.3-xdebug \
709- php8.3-xml \
710- php8.3-xsl \
711- php8.3-yaml \
712- php8.3-zip \
713- php8.3-zmq \
714738 pigz \
715739 pkg-config \
716740 podman \
@@ -780,26 +804,47 @@ RUN bash -eux -o pipefail <<'EOF'
780804 if [[ "${VERSION_ID}" == "24.04" ]]; then
781805 # Install 24.04 specific packages
782806 apt-get install -y --no-install-recommends \
807+ clang-{16,17,18} \
808+ clang-format-{16,17,18} \
809+ clang-tidy-{16,17,18} \
810+ g++-{12,13,14} \
811+ gcc-{12,13,14} \
812+ gfortran-{12,13,14} \
813+ libclang-{16,17,18}-dev \
783814 p7zip-rar \
815+ php8.3-{pgsql,phpdbg,pspell,readline,redis,snmp,soap,sqlite3,sybase,tidy,xdebug,xml,xsl,yaml,zip,zmq} \
816+ postgresql-16 \
784817 && true
785818 elif [[ "${VERSION_ID}" == "26.04" ]]; then
786819 # Install 26.04 specific packages
787- true # nothing yet
820+ apt-get install -y --no-install-recommends \
821+ clang-{20,21,22} \
822+ clang-format-{20,21,22} \
823+ clang-tidy-{20,21,22} \
824+ g++-{13,14,15} \
825+ gcc-{13,14,15} \
826+ gfortran-{13,14,15} \
827+ libclang-{20,21,22}-dev \
828+ php8.5-{pgsql,phpdbg,pspell,readline,redis,snmp,soap,sqlite3,sybase,tidy,xdebug,xml,xsl,yaml,zip,zmq} \
829+ postgresql-18 \
830+ && true
788831 else
789832 echo "Unknown Ubuntu version ${VERSION_ID}"
790833 exit 1
791834 fi
792835
793- # Clean apt cache. Do NOT remove /var/lib/dpkg — it holds the package
794- # database and lock files; without it, `apt-get install` fails for users.
795- apt-get clean
796- rm -rf /var/lib/apt/lists/*
797-
798836 # Add a user which will run the github actions
799837 groupadd -f docker
800838 useradd -m -u 1001 -G docker runner # also creates a `runner` group
839+
801840 # Add runner to sudoers without password prompt
841+ apt-get install -y --no-install-recommends sudo
802842 echo "runner ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/runner
843+
844+ # Clean apt cache. Do NOT remove /var/lib/dpkg — it holds the package
845+ # database and lock files; without it, `apt-get install` fails for users.
846+ apt-get clean
847+ rm -rf /var/lib/apt/lists/*
803848EOF
804849
805850# Fix some specific directories' permissions
0 commit comments