From 5fe0cb7b50616232b447f578c41de7d253337347 Mon Sep 17 00:00:00 2001 From: Konata Date: Tue, 13 Oct 2026 18:36:26 +0200 Subject: [PATCH 1/7] feat: Adding support for golang 1.27.2 --- packages/go/1.27.2/build.sh | 5 +++++ packages/go/1.27.2/environment | 2 ++ packages/go/1.27.2/metadata.json | 5 +++++ 3 files changed, 12 insertions(+) create mode 100644 packages/go/1.27.2/build.sh create mode 100644 packages/go/1.27.2/environment create mode 100644 packages/go/1.27.2/metadata.json diff --git a/packages/go/1.27.2/build.sh b/packages/go/1.27.2/build.sh new file mode 100644 index 000000000..d9a934afd --- /dev/null +++ b/packages/go/1.27.2/build.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env sh + +curl -LO https://go.dev/dl/go1.27.2.linux-amd64.tar.gz +tar -xzf go1.27.2.linux-amd64.tar.gz +rm go1.27.2.linux-amd64.tar.gz diff --git a/packages/go/1.27.2/environment b/packages/go/1.27.2/environment new file mode 100644 index 000000000..88299c1ad --- /dev/null +++ b/packages/go/1.27.2/environment @@ -0,0 +1,2 @@ +export PATH=$PWD/go/bin:$PATH +export GOPATH=$PWD/gopath diff --git a/packages/go/1.27.2/metadata.json b/packages/go/1.27.2/metadata.json new file mode 100644 index 000000000..1ba746f41 --- /dev/null +++ b/packages/go/1.27.2/metadata.json @@ -0,0 +1,5 @@ +{ + "language": "go", + "version": "1.27.2", + "aliases": ["go", "golang"] +} From aadbbd5a59fe50f15730bc1ae8b9e8f9a02716af Mon Sep 17 00:00:00 2001 From: Konata Date: Tue, 13 Oct 2026 18:39:52 +0200 Subject: [PATCH 2/7] feat: Finalizing go-1.27.2 just need to test --- packages/go/1.27.2/run | 7 +++++++ packages/go/1.27.2/test.go | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 packages/go/1.27.2/run create mode 100644 packages/go/1.27.2/test.go diff --git a/packages/go/1.27.2/run b/packages/go/1.27.2/run new file mode 100644 index 000000000..65c9a4f12 --- /dev/null +++ b/packages/go/1.27.2/run @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +mv $1 $1.go +#filename=$1.go +filename=*.go +shift +GOCACHE=$PWD go run $filename "$@" diff --git a/packages/go/1.27.2/test.go b/packages/go/1.27.2/test.go new file mode 100644 index 000000000..c06f48560 --- /dev/null +++ b/packages/go/1.27.2/test.go @@ -0,0 +1,7 @@ +package main + +import "fmt" + +func main() { + fmt.Println("OK") +} From 2004e32877b1c4854667a07dc4c5af30439cd5de Mon Sep 17 00:00:00 2001 From: Konata Date: Wed, 14 Oct 2026 13:10:13 +0200 Subject: [PATCH 3/7] Update dockerfiles --- api/Dockerfile | 14 +++++++------- repo/Dockerfile | 19 +++++++++---------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/api/Dockerfile b/api/Dockerfile index 7ab81bfc0..b5362e916 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -1,4 +1,4 @@ -FROM buildpack-deps:buster AS isolate +FROM buildpack-deps:trixie AS isolate RUN apt-get update && \ apt-get install -y --no-install-recommends git libcap-dev && \ rm -rf /var/lib/apt/lists/* && \ @@ -8,18 +8,18 @@ RUN apt-get update && \ make -j$(nproc) install && \ rm -rf /tmp/* -FROM node:15.10.0-buster-slim +FROM node:26.11.1-trixie-slim ENV DEBIAN_FRONTEND=noninteractive RUN dpkg-reconfigure -p critical dash RUN apt-get update && \ apt-get install -y libxml2 gnupg tar coreutils util-linux libc6-dev \ - binutils build-essential locales libpcre3-dev libevent-dev libgmp3-dev \ - libncurses6 libncurses5 libedit-dev libseccomp-dev rename procps python3 \ - libreadline-dev libblas-dev liblapack-dev libpcre3-dev libarpack2-dev \ - libfftw3-dev libglpk-dev libqhull-dev libqrupdate-dev libsuitesparse-dev \ - libsundials-dev libpcre2-dev libcap-dev && \ + binutils build-essential locales libpcre2-dev libevent-dev libgmp-dev \ + libncurses6 libedit-dev libseccomp-dev rename procps python3 \ + libreadline-dev libblas-dev liblapack-dev libarpack2-dev libfftw3-dev \ + libglpk-dev libqhull-dev libqrupdate-dev libsuitesparse-dev \ + libsundials-dev libcap-dev && \ rm -rf /var/lib/apt/lists/* RUN useradd -M piston COPY --from=isolate /usr/local/bin/isolate /usr/local/bin diff --git a/repo/Dockerfile b/repo/Dockerfile index 86be49a7c..958625bdc 100644 --- a/repo/Dockerfile +++ b/repo/Dockerfile @@ -1,18 +1,17 @@ -FROM debian:buster-slim +FROM debian:trixie-slim ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && apt-get install -y unzip autoconf build-essential libssl-dev \ pkg-config zlib1g-dev libargon2-dev libsodium-dev libcurl4-openssl-dev \ sqlite3 libsqlite3-dev libonig-dev libxml2 libxml2-dev bc curl git \ - linux-headers-amd64 perl xz-utils python3 python3-pip gnupg jq zlib1g-dev \ - cmake cmake-doc extra-cmake-modules build-essential gcc binutils bash coreutils \ - util-linux pciutils usbutils coreutils binutils findutils grep libncurses5-dev \ - libncursesw5-dev python3-pip libgmp-dev libmpfr-dev python2 libffi-dev gfortran\ - libreadline-dev libblas-dev liblapack-dev libpcre3-dev libarpack2-dev libfftw3-dev \ - libglpk-dev libqhull-dev libqrupdate-dev libsuitesparse-dev libsundials-dev \ - libbz2-dev liblzma-dev libpcre2-dev gperf bison flex g++ gawk zip && \ + linux-headers-amd64 perl xz-utils python3 python3-pip gnupg jq \ + cmake cmake-doc extra-cmake-modules gcc binutils bash coreutils \ + util-linux pciutils usbutils findutils grep libncurses-dev \ + libgmp-dev libmpfr-dev libffi-dev gfortran libreadline-dev libblas-dev \ + liblapack-dev libpcre2-dev libarpack2-dev libfftw3-dev \ + libglpk-dev libqhull-dev libqrupdate-dev libsuitesparse-dev \ + libsundials-dev libbz2-dev liblzma-dev gperf bison flex g++ gawk zip && \ ln -sf /bin/bash /bin/sh && \ - rm -rf /var/lib/apt/lists/* && \ - update-alternatives --install /usr/bin/python python /usr/bin/python3.7 2 + rm -rf /var/lib/apt/lists/* ADD entrypoint.sh mkindex.sh serve.py / From 328b56797c4ae1001714b773e9c39907eafaac28 Mon Sep 17 00:00:00 2001 From: Konata Date: Wed, 14 Oct 2026 13:10:31 +0200 Subject: [PATCH 4/7] Updates packages docker-compose --- docker-compose.dev.yaml | 2 +- packages/go/1.16.2/build.sh | 1 - packages/go/1.27.2/build.sh | 0 shell.nix | 2 +- 4 files changed, 2 insertions(+), 3 deletions(-) mode change 100644 => 100755 packages/go/1.27.2/build.sh diff --git a/docker-compose.dev.yaml b/docker-compose.dev.yaml index 33f615d4e..bb394d283 100644 --- a/docker-compose.dev.yaml +++ b/docker-compose.dev.yaml @@ -16,6 +16,6 @@ services: repo: # Local testing of packages build: repo container_name: piston_repo - command: ['--no-build'] # Don't build anything + command: [] # Don't build anything volumes: - .:/piston diff --git a/packages/go/1.16.2/build.sh b/packages/go/1.16.2/build.sh index 5cf70f9f4..c45964c23 100755 --- a/packages/go/1.16.2/build.sh +++ b/packages/go/1.16.2/build.sh @@ -2,4 +2,3 @@ curl -LO https://golang.org/dl/go1.16.2.linux-amd64.tar.gz tar -xzf go1.16.2.linux-amd64.tar.gz rm go1.16.2.linux-amd64.tar.gz - diff --git a/packages/go/1.27.2/build.sh b/packages/go/1.27.2/build.sh old mode 100644 new mode 100755 diff --git a/shell.nix b/shell.nix index 339bead21..75e962dc5 100644 --- a/shell.nix +++ b/shell.nix @@ -1,5 +1,5 @@ { pkgs ? import {} }: pkgs.mkShell { # nativeBuildInputs is usually what you want -- tools you need to run - nativeBuildInputs = with pkgs; [ nodejs-15_x jq mkdocs ]; + nativeBuildInputs = with pkgs; [ nodejs-slim_26 jq mkdocs ]; } From b829c591ea752e3e0b335cd836048d882a375546 Mon Sep 17 00:00:00 2001 From: Konata Date: Wed, 14 Oct 2026 15:12:12 +0200 Subject: [PATCH 5/7] Adding python 3.15 --- packages/python/3.15.0/build.sh | 21 +++++++++++++++++++++ packages/python/3.15.0/environment | 1 + packages/python/3.15.0/metadata.json | 5 +++++ packages/python/3.15.0/run | 3 +++ packages/python/3.15.0/test.py | 7 +++++++ 5 files changed, 37 insertions(+) create mode 100644 packages/python/3.15.0/build.sh create mode 100644 packages/python/3.15.0/environment create mode 100644 packages/python/3.15.0/metadata.json create mode 100644 packages/python/3.15.0/run create mode 100644 packages/python/3.15.0/test.py diff --git a/packages/python/3.15.0/build.sh b/packages/python/3.15.0/build.sh new file mode 100644 index 000000000..4c0908c16 --- /dev/null +++ b/packages/python/3.15.0/build.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +PREFIX=$(realpath $(dirname $0)) + +mkdir -p build + +cd build + +curl "https://www.python.org/ftp/python/3.15.0/Python-3.15.0.tgz" -o python.tar.gz +tar xzf python.tar.gz --strip-components=1 +rm python.tar.gz + +./configure --prefix "$PREFIX" --with-ensurepip=install +make -j$(nproc) +make install -j$(nproc) + +cd .. + +rm -rf build + +bin/pip3 install numpy scipy pandas pycryptodome whoosh bcrypt passlib sympy xxhash base58 cryptography PyNaCl diff --git a/packages/python/3.15.0/environment b/packages/python/3.15.0/environment new file mode 100644 index 000000000..977a5e8f4 --- /dev/null +++ b/packages/python/3.15.0/environment @@ -0,0 +1 @@ +export PATH=$PWD/bin:$PATH diff --git a/packages/python/3.15.0/metadata.json b/packages/python/3.15.0/metadata.json new file mode 100644 index 000000000..9ab2b60c6 --- /dev/null +++ b/packages/python/3.15.0/metadata.json @@ -0,0 +1,5 @@ +{ + "language": "python", + "version": "3.15.0", + "aliases": ["py", "py3", "python3", "python3.12"] +} diff --git a/packages/python/3.15.0/run b/packages/python/3.15.0/run new file mode 100644 index 000000000..2c6f39cc2 --- /dev/null +++ b/packages/python/3.15.0/run @@ -0,0 +1,3 @@ +#!/bin/bash + +python3.15 "$@" diff --git a/packages/python/3.15.0/test.py b/packages/python/3.15.0/test.py new file mode 100644 index 000000000..1784bfa81 --- /dev/null +++ b/packages/python/3.15.0/test.py @@ -0,0 +1,7 @@ +working = True + +match working: + case True: + print("OK") + case False: + print() From 8b2f27436f6c887b1e6a4f3e66574ad7b66ad8e3 Mon Sep 17 00:00:00 2001 From: Konata Date: Wed, 14 Oct 2026 15:15:14 +0200 Subject: [PATCH 6/7] fix perms --- packages/python/3.15.0/build.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 packages/python/3.15.0/build.sh diff --git a/packages/python/3.15.0/build.sh b/packages/python/3.15.0/build.sh old mode 100644 new mode 100755 From 5e6d0af412abbaf05bcff8af243f17c536449510 Mon Sep 17 00:00:00 2001 From: Konata Date: Wed, 14 Oct 2026 22:11:25 +0200 Subject: [PATCH 7/7] feat: Add gcc 16.2.0 --- packages/gcc/16.2.0/build.sh | 26 ++++++++++++++++++++++++++ packages/gcc/16.2.0/compile | 29 +++++++++++++++++++++++++++++ packages/gcc/16.2.0/environment | 5 +++++ packages/gcc/16.2.0/metadata.json | 22 ++++++++++++++++++++++ packages/gcc/16.2.0/run | 6 ++++++ packages/gcc/16.2.0/test.c | 6 ++++++ packages/gcc/16.2.0/test.cpp | 6 ++++++ packages/gcc/16.2.0/test.d | 5 +++++ packages/gcc/16.2.0/test.f90 | 3 +++ 9 files changed, 108 insertions(+) create mode 100755 packages/gcc/16.2.0/build.sh create mode 100644 packages/gcc/16.2.0/compile create mode 100644 packages/gcc/16.2.0/environment create mode 100644 packages/gcc/16.2.0/metadata.json create mode 100644 packages/gcc/16.2.0/run create mode 100644 packages/gcc/16.2.0/test.c create mode 100644 packages/gcc/16.2.0/test.cpp create mode 100644 packages/gcc/16.2.0/test.d create mode 100644 packages/gcc/16.2.0/test.f90 diff --git a/packages/gcc/16.2.0/build.sh b/packages/gcc/16.2.0/build.sh new file mode 100755 index 000000000..a12ed3ce1 --- /dev/null +++ b/packages/gcc/16.2.0/build.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash + +# Put instructions to build your package in here +[[ -d "bin" ]] && exit 0 +PREFIX=$(realpath $(dirname $0)) + +mkdir -p build obj + +cd build + +curl "https://ftp.gnu.org/gnu/gcc/gcc-16.2.0/gcc-16.2.0.tar.gz" -o gcc.tar.gz + +tar xzf gcc.tar.gz --strip-components=1 + +./contrib/download_prerequisites + +cd ../obj + +# === autoconf based === +../build/configure --prefix "$PREFIX" --enable-languages=c,c++,d,fortran --disable-multilib --disable-bootstrap + +make -j$(nproc) +make install -j$(nproc) +cd ../ +rm -rf build obj + diff --git a/packages/gcc/16.2.0/compile b/packages/gcc/16.2.0/compile new file mode 100644 index 000000000..a77ba35ca --- /dev/null +++ b/packages/gcc/16.2.0/compile @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +# Put instructions to compile source code, remove this file if the language does not require this stage + + +case "${PISTON_LANGUAGE}" in + c) + rename 's/$/\.c/' "$@" # Add .c extension + gcc -std=c11 *.c -lm + ;; + c++) + rename 's/$/\.cpp/' "$@" # Add .cpp extension + g++ -std=c++17 *.cpp + ;; + d) + rename 's/.code$/\.d/' "$@" # Add .d extension + gdc *.d + ;; + fortran) + rename 's/.code$/\.f90/' "$@" # Add .f90 extension + gfortran *.f90 + ;; + *) + echo "How did you get here? (${PISTON_LANGUAGE})" + exit 1 + ;; +esac + +chmod +x a.out \ No newline at end of file diff --git a/packages/gcc/16.2.0/environment b/packages/gcc/16.2.0/environment new file mode 100644 index 000000000..a0b5a11f4 --- /dev/null +++ b/packages/gcc/16.2.0/environment @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +# Put 'export' statements here for environment variables +export PATH=$PWD/bin:$PATH +export LD_LIBRARY_PATH="$PWD/lib:$PWD/lib64" # Need this to properly link Fortran diff --git a/packages/gcc/16.2.0/metadata.json b/packages/gcc/16.2.0/metadata.json new file mode 100644 index 000000000..91eda0870 --- /dev/null +++ b/packages/gcc/16.2.0/metadata.json @@ -0,0 +1,22 @@ +{ + "language": "gcc", + "version": "16.2.0", + "provides": [ + { + "language": "c", + "aliases": ["gcc"] + }, + { + "language": "c++", + "aliases": ["cpp", "g++"] + }, + { + "language": "d", + "aliases": ["gdc"] + }, + { + "language": "fortran", + "aliases": ["fortran", "f90"] + } + ] +} diff --git a/packages/gcc/16.2.0/run b/packages/gcc/16.2.0/run new file mode 100644 index 000000000..60ad16bfd --- /dev/null +++ b/packages/gcc/16.2.0/run @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +# Put instructions to run the runtime + +shift # Discard main filename +./a.out "$@" diff --git a/packages/gcc/16.2.0/test.c b/packages/gcc/16.2.0/test.c new file mode 100644 index 000000000..fafae7501 --- /dev/null +++ b/packages/gcc/16.2.0/test.c @@ -0,0 +1,6 @@ +#include + +int main(void) { + printf("OK"); + return 0; +} \ No newline at end of file diff --git a/packages/gcc/16.2.0/test.cpp b/packages/gcc/16.2.0/test.cpp new file mode 100644 index 000000000..9d0499e63 --- /dev/null +++ b/packages/gcc/16.2.0/test.cpp @@ -0,0 +1,6 @@ +#include + +int main(void) { + printf("OK"); + return 0; +} \ No newline at end of file diff --git a/packages/gcc/16.2.0/test.d b/packages/gcc/16.2.0/test.d new file mode 100644 index 000000000..e74851db7 --- /dev/null +++ b/packages/gcc/16.2.0/test.d @@ -0,0 +1,5 @@ +import std.stdio; + +void main() { + writeln("OK"); +} \ No newline at end of file diff --git a/packages/gcc/16.2.0/test.f90 b/packages/gcc/16.2.0/test.f90 new file mode 100644 index 000000000..99fc062c6 --- /dev/null +++ b/packages/gcc/16.2.0/test.f90 @@ -0,0 +1,3 @@ +program test + print "(a)", 'OK' +end program test