Skip to content
Snippets Groups Projects
Verified Commit bcbd79db authored by Olivier Benz's avatar Olivier Benz
Browse files

Add linux/riscv64 images

- for GHC versions ≥ 9.10.1
- Close https://github.com/benz0li/ghc-musl/issues/9
parent 6f4d9658
No related branches found
No related tags found
No related merge requests found
...@@ -13,18 +13,26 @@ The multi‑arch (`linux/amd64`, `linux/arm64/v8`) docker image used to build th ...@@ -13,18 +13,26 @@ The multi‑arch (`linux/amd64`, `linux/arm64/v8`) docker image used to build th
* [Stack](https://github.com/commercialhaskell/stack) * [Stack](https://github.com/commercialhaskell/stack)
* [Juvix](https://github.com/anoma/juvix) * [Juvix](https://github.com/anoma/juvix)
Credits to Credit to
<!-- markdownlint-disable line-length -->
* [@odidev](https://github.com/odidev) for * [@odidev](https://github.com/odidev) for
[ghc-bootstrap-aarch64](https://gitlab.alpinelinux.org/odidev/ghc-bootstrap-aarch64) [ghc-bootstrap-aarch64](https://gitlab.alpinelinux.org/odidev/ghc-bootstrap-aarch64)[^1]
and and
* [@neosimsim](https://github.com/neosimsim) for * [@neosimsim](https://github.com/neosimsim) for
[docker-builder-images](https://gitlab.com/neosimsim/docker-builder-images) [neosimsim—Docker build images](https://gitlab.com/neosimsim/docker-builder-images)
<!-- markdownlint-enable line-length -->
[^1]: Porting GHC to Linux/AArch64
who laid the groundwork for [this](https://gitlab.com/benz0li/ghc-musl). who laid the groundwork for [this](https://gitlab.com/benz0li/ghc-musl).
Credit to
* Celeste of Alpine for [GHC bootstrap riscv64](https://gitlab.b-data.ch/ghc/ghc-bootstrap-riscv64)[^2]
who made it possible to add `linux/riscv64` images (GHC versions ≥ 9.10.1).
[^2]: Porting GHC to Linux/riscv64
## Table of Contents ## Table of Contents
* [Prerequisites](#prerequisites) * [Prerequisites](#prerequisites)
...@@ -125,11 +133,11 @@ For further information, see [Dev Containers](.devcontainer). ...@@ -125,11 +133,11 @@ For further information, see [Dev Containers](.devcontainer).
What makes this project different: What makes this project different:
1. Multi‑arch: `linux/amd64`, `linux/arm64/v8` 1. Multi‑arch: `linux/amd64`, `linux/arm64/v8`
1. Built using Hadrian[^1], from source, without docs 1. Built using Hadrian[^3], from source, without docs
1. Built using the LLVM backend 1. Built using the LLVM backend
* flavour: `perf+llvm+split_sections` * flavour: `perf+llvm+split_sections`
[^1]: GHC versions ≥ 9.2.8. [^3]: GHC versions ≥ 9.2.8.
## Contributing ## Contributing
......
## Supported Versions ## Supported Versions
Only the docker image with the latest version of GHC is supported with security Only the docker images with the latest version of GHC are supported with
updates. security updates.
`linux/riscv64` docker images are currently built only once. Therefore,
vulnerabilities for this `os/arch` will not be fixed.
## Reporting a Vulnerability ## Reporting a Vulnerability
To report a vulnerability in the latest docker image, email the maintainer To report a vulnerability in a latest docker image, email the maintainer
<olivier.benz@b-data.ch>. <olivier.benz@b-data.ch>.
## Vulnerabilities in Prior Versions ## Vulnerabilities in Prior Versions
......
...@@ -45,3 +45,10 @@ Topmost entry = Tag `latest` ...@@ -45,3 +45,10 @@ Topmost entry = Tag `latest`
* Images based on Alpine 3.{17,18}: Package pkgconf downgraded to v1.8.1 * Images based on Alpine 3.{17,18}: Package pkgconf downgraded to v1.8.1
* Due to <https://github.com/haskell/cabal/issues/8923> * Due to <https://github.com/haskell/cabal/issues/8923>
## Experimental
`linux/riscv64` images for GHC versions ≥ 9.10.1, e.g.
`quay.io/benz0li/ghc-musl:{latest,GHC_VERSION}-linux-riscv64`.
:information_source: Whenever a new version of GHC is released, the previous
`linux/riscv64` image is added to the manifest.
...@@ -82,10 +82,15 @@ RUN cabal update \ ...@@ -82,10 +82,15 @@ RUN cabal update \
FROM alpine:3.20 as ghc-base FROM alpine:3.20 as ghc-base
LABEL org.opencontainers.image.licenses="MIT" \ ARG IMAGE_LICENSE="MIT"
org.opencontainers.image.source="https://gitlab.b-data.ch/ghc/ghc-musl" \ ARG IMAGE_SOURCE="https://gitlab.b-data.ch/ghc/ghc-musl"
org.opencontainers.image.vendor="Olivier Benz" \ ARG IMAGE_VENDOR="Olivier Benz"
org.opencontainers.image.authors="Olivier Benz <olivier.benz@b-data.ch>" ARG IMAGE_AUTHORS="Olivier Benz <olivier.benz@b-data.ch>"
LABEL org.opencontainers.image.licenses="$IMAGE_LICENSE" \
org.opencontainers.image.source="$IMAGE_SOURCE" \
org.opencontainers.image.vendor="$IMAGE_VENDOR" \
org.opencontainers.image.authors="$IMAGE_AUTHORS"
ARG GHC_VERSION_BUILD ARG GHC_VERSION_BUILD
ARG CABAL_VERSION_BUILD ARG CABAL_VERSION_BUILD
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment