From af9eca1a42b79f424f3701fd2bbcb4e8aafd4ad6 Mon Sep 17 00:00:00 2001 From: "Sean T. Allen" Date: Sun, 1 Dec 2024 16:59:20 +0000 Subject: [PATCH] Add Fedora 41 as a supported platform --- .../Dockerfile | 25 +++++++++++++++++++ .../build-and-push.bash | 15 +++++++++++ .github/workflows/nightlies.yml | 4 +++ .github/workflows/release.yml | 4 +++ .release-notes/fedora41.md | 3 +++ BUILD.md | 1 + INSTALL.md | 3 ++- RELEASE_PROCESS.md | 1 + 8 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 .ci-dockerfiles/x64-64-unknown-linux-fedora41-builder/Dockerfile create mode 100644 .ci-dockerfiles/x64-64-unknown-linux-fedora41-builder/build-and-push.bash create mode 100644 .release-notes/fedora41.md diff --git a/.ci-dockerfiles/x64-64-unknown-linux-fedora41-builder/Dockerfile b/.ci-dockerfiles/x64-64-unknown-linux-fedora41-builder/Dockerfile new file mode 100644 index 0000000000..1aa7d710e9 --- /dev/null +++ b/.ci-dockerfiles/x64-64-unknown-linux-fedora41-builder/Dockerfile @@ -0,0 +1,25 @@ +FROM fedora:41 + +RUN dnf install -y binutils-gold \ + clang \ + cmake \ + diffutils \ + git \ + make \ + zlib \ + curl \ + python3-pip \ + lldb \ + libstdc++-static \ + && dnf -y autoremove \ + && dnf -y clean all \ + && rm -rf /var/cache/dnf/* \ + && pip3 install cloudsmith-cli + +# needed for GitHub actions +RUN git config --global --add safe.directory /__w/ponyc/ponyc + +# add user pony in order to not run tests as root +RUN useradd -u 1001 -ms /bin/bash -d /home/pony -g root pony +USER pony +WORKDIR /home/pony diff --git a/.ci-dockerfiles/x64-64-unknown-linux-fedora41-builder/build-and-push.bash b/.ci-dockerfiles/x64-64-unknown-linux-fedora41-builder/build-and-push.bash new file mode 100644 index 0000000000..fb01a4a753 --- /dev/null +++ b/.ci-dockerfiles/x64-64-unknown-linux-fedora41-builder/build-and-push.bash @@ -0,0 +1,15 @@ +#!/bin/bash + +set -o errexit +set -o nounset + +# +# *** You should already be logged in to GHCR when you run this *** +# + +NAME="ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-fedora41-builder" +TODAY=$(date +%Y%m%d) +DOCKERFILE_DIR="$(dirname "$0")" + +docker build --pull -t "${NAME}:${TODAY}" "${DOCKERFILE_DIR}" +docker push "${NAME}:${TODAY}" diff --git a/.github/workflows/nightlies.yml b/.github/workflows/nightlies.yml index 21898f84e0..830f27627b 100644 --- a/.github/workflows/nightlies.yml +++ b/.github/workflows/nightlies.yml @@ -32,6 +32,10 @@ jobs: name: x86-64-unknown-linux-fedora39 triple-os: linux-fedora39 triple-vendor: unknown + - image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-fedora41-builder:20241201 + name: x86-64-unknown-linux-fedora41 + triple-os: linux-fedora41 + triple-vendor: unknown name: ${{ matrix.name }} container: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3bba6cb26d..022c467c97 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,6 +55,10 @@ jobs: name: x86-64-unknown-linux-fedora39 triple-os: linux-fedora39 triple-vendor: unknown + - image: ghcr.io/ponylang/ponyc-ci-x86-64-unknown-linux-fedora41-builder:20241201 + name: x86-64-unknown-linux-fedora41 + triple-os: linux-fedora41 + triple-vendor: unknown name: ${{ matrix.name }} container: diff --git a/.release-notes/fedora41.md b/.release-notes/fedora41.md new file mode 100644 index 0000000000..7e28485ba6 --- /dev/null +++ b/.release-notes/fedora41.md @@ -0,0 +1,3 @@ +## Add Fedora 41 as a supported platform + +We've added Fedora 41 as a supported platform. We'll be building ponyc releases for it until it stops receiving security updates in November 2025. At that point, we'll stop building releases for it. diff --git a/BUILD.md b/BUILD.md index 614b5b4ad6..7bfca024f8 100644 --- a/BUILD.md +++ b/BUILD.md @@ -67,6 +67,7 @@ Distribution | Requires Alpine 3.17+ | binutils-gold, clang, clang-dev, cmake, make CentOS 8 | clang, cmake, diffutils, libatomic, libstdc++-static, make, zlib-devel Fedora | clang, cmake, libatomic, libstdc++-static, make +Fedora 41 | binutils-gold, clang, cmake, libatomic, libstdc++-static, make OpenSuse Leap | binutils-gold, cmake Raspbian 32-bit | cmake Raspbian 64-bit | cmake, clang diff --git a/INSTALL.md b/INSTALL.md index 619f37de22..4f328d3ab8 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -20,7 +20,7 @@ At the moment, we support all supported LTS Ubuntu versions and any distribution Currently, we have packages for the following Glibc based distributions: -- Fedora 39 +- Fedora 39, 41 - Linux Mint 19, 20, 21 - Pop!_OS 20.04, 22.04, 24.04 - Ubuntu 20.04, 22.04, 24.04 @@ -43,6 +43,7 @@ Distribution | PLATFORM String --- | --- Alpine | x86_64-linux-musl Fedora 39 | x86_64-linux-fedora39 +Fedora 41 | x86_64-linux-fedora41 Linux Mint 20.x | x86_64-linux-ubuntu20.04 Linux Mint 21.x | x86_64-linux-ubuntu22.04 Pop!_OS 20.04 | x86_64-linux-ubuntu20.04 diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index 936206ac22..ddd13e0888 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -46,6 +46,7 @@ Package names will be: * ponyc-x86-64-apple-darwin.tar.gz * ponyc-x86-64-pc-windows-msvc.zip * ponyc-x86-64-unknown-linux-fedora39.tar.gz +* ponyc-x86-64-unknown-linux-fedora41.tar.gz * ponyc-x86-64-unknown-linux-musl.tar.gz * ponyc-x86-64-unknown-linux-ubuntu20.04.tar.gz * ponyc-x86-64-unknown-linux-ubuntu22.04.tar.gz