Skip to content

Conversation

@Totto16
Copy link
Contributor

@Totto16 Totto16 commented Oct 30, 2025

See haskell/docker-haskell#166

Also since the last commit a new image 9.10.3-bookworm and 9.10.3-slim-bookworm was added, chnaging the 9.10 tag to point to bookworm wouldn't be a good idea, so I didn't do that

@Totto16 Totto16 requested a review from a team as a code owner October 30, 2025 15:30
@github-actions

This comment has been minimized.

Copy link
Contributor

@develop7 develop7 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since you've updated commit hashes for the rest of GHCs, I'd suggest to mention it in the PR description/title, something along the lines of "refreshed Dockerfiles".

Also latest are subject to eventual upgrade anyway, so it's fine by me to move it forward every so often

@Totto16
Copy link
Contributor Author

Totto16 commented Oct 30, 2025

Since you've updated commit hashes for the rest of GHCs, I'd suggest to mention it in the PR description/title, something along the lines of "refreshed Dockerfiles".

Also latest are subject to eventual upgrade anyway, so it's fine by me to move it forward every so often

I just did the same as #19733, which also updated all commit ids 😓

@Totto16 Totto16 changed the title Haskell: bump ghc 9.10 to 9.10.3 Haskell: bump ghc 9.10 to 9.10.3 + refreshed Dockerfiles Oct 30, 2025
@tianon
Copy link
Member

tianon commented Oct 30, 2025

Unfortunately the nature of our build system requires that we parse all our Dockerfiles to determine build ordering, and that parsing does not support the BuildKit heredocs syntax.

As a meta-point, updating the commit for everything is totally fine and reasonable for image maintainers; I think the point was just that it should be noted that the PR does more than just the version bump in the PR description. 😄

If it's easier to maintain that way, you can make that even easier by dropping all the individual GitCommit: lines and specifying a single GitCommit: line up at the top in what we call the "global entry" right next to GitRepo: instead. 👀

(For repositories we maintain, we generally automate the generation of this file to help us avoid typos in things like version numbers. 😅)

@Totto16
Copy link
Contributor Author

Totto16 commented Nov 3, 2025

@tianon @develop7 So do I need to change something here, or is it fine as is?

Also latest are subject to eventual upgrade anyway, so it's fine by me to move it forward every so often

So would it be better to adjust the labels 9.10.3, 9.10 to the bookworm image or not?

It would be neat to at least get 9.10.3 available, so that the stackage lts-24.12 and upwards can be used 😄

@yosifkit
Copy link
Member

yosifkit commented Nov 3, 2025

Unfortunately the nature of our build system requires that we parse all our Dockerfiles to determine build ordering, and that parsing does not support the BuildKit heredocs syntax.

So do I need to change something here, or is it fine as is?

The Dockerfiles need to be changed because our build system does not support Dockerfiles with heredoc syntax (e.g. RUN <<EOT).

@develop7
Copy link
Contributor

develop7 commented Nov 4, 2025

@Totto16 I've reverted heredocs in haskell/docker-haskell#167 and regenerated Dockerfiles, so all you got to do is update this PR with new commit ID (3a8f59b4ded7ad43be51fd61bace7be4298ad568)

@Totto16
Copy link
Contributor Author

Totto16 commented Nov 4, 2025

@Totto16 I've reverted heredocs in haskell/docker-haskell#167 and regenerated Dockerfiles, so all you got to do is update this PR with new commit ID (3a8f59b4ded7ad43be51fd61bace7be4298ad568)

Oh, that was the problem, in the comment from @tianon I didn't really understand, that

Unfortunately the nature of our build system requires that we parse all our Dockerfiles to determine build ordering, and that parsing does not support the BuildKit heredocs syntax.

Was saying, that the upstream dockerfiles were "wrong", my bad 😓

@github-actions

This comment has been minimized.

@yosifkit
Copy link
Member

yosifkit commented Nov 4, 2025

-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'" exit 1 ; \

This change is incorrect. The new version will no longer exit and instead just echo the "exit 1". Also, the double semicolon is needed to end the case match correctly.

@develop7
Copy link
Contributor

develop7 commented Nov 4, 2025

@yosifkit my bad, will fix soon

@develop7
Copy link
Contributor

develop7 commented Nov 4, 2025

@Totto16 fixed in haskell/docker-haskell@d478ceb please update the PR

@github-actions
Copy link

github-actions bot commented Nov 4, 2025

Diff for 58fe592:
diff --git a/_bashbrew-cat b/_bashbrew-cat
index f02a682..1914f2f 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -3,40 +3,50 @@ GitRepo: https://github.com/haskell/docker-haskell
 
 Tags: 9.6.7-bullseye, 9.6-bullseye, 9.6.7, 9.6
 Architectures: amd64, arm64v8
-GitCommit: c34f97738d08a138ef07878a4a1402b10670f87b
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
 Directory: 9.6/bullseye
 
 Tags: 9.6.7-slim-bullseye, 9.6-slim-bullseye, 9.6.7-slim, 9.6-slim
 Architectures: amd64, arm64v8
-GitCommit: c34f97738d08a138ef07878a4a1402b10670f87b
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
 Directory: 9.6/slim-bullseye
 
 Tags: 9.8.4-bullseye, 9.8-bullseye, 9.8.4, 9.8
 Architectures: amd64, arm64v8
-GitCommit: c34f97738d08a138ef07878a4a1402b10670f87b
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
 Directory: 9.8/bullseye
 
 Tags: 9.8.4-slim-bullseye, 9.8-slim-bullseye, 9.8.4-slim, 9.8-slim
 Architectures: amd64, arm64v8
-GitCommit: c34f97738d08a138ef07878a4a1402b10670f87b
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
 Directory: 9.8/slim-bullseye
 
-Tags: 9.10.2-bullseye, 9.10-bullseye, 9-bullseye, bullseye, 9.10.2, 9.10
+Tags: 9.10.3-bookworm, 9.10-bookworm
 Architectures: amd64, arm64v8
-GitCommit: c34f97738d08a138ef07878a4a1402b10670f87b
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
+Directory: 9.10/bookworm
+
+Tags: 9.10.3-bullseye, 9.10-bullseye, 9-bullseye, bullseye, 9.10.3, 9.10
+Architectures: amd64, arm64v8
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
 Directory: 9.10/bullseye
 
-Tags: 9.10.2-slim-bullseye, 9.10-slim-bullseye, 9-slim-bullseye, slim-bullseye
+Tags: 9.10.3-slim-bookworm, 9.10-slim-bookworm
+Architectures: amd64, arm64v8
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
+Directory: 9.10/slim-bookworm
+
+Tags: 9.10.3-slim-bullseye, 9.10-slim-bullseye, 9-slim-bullseye, slim-bullseye
 Architectures: amd64, arm64v8
-GitCommit: c34f97738d08a138ef07878a4a1402b10670f87b
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
 Directory: 9.10/slim-bullseye
 
 Tags: 9.12.2-bookworm, 9.12-bookworm, 9-bookworm, bookworm, 9.12.2, 9.12, 9, latest
 Architectures: amd64, arm64v8
-GitCommit: c34f97738d08a138ef07878a4a1402b10670f87b
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
 Directory: 9.12/bookworm
 
 Tags: 9.12.2-slim-bookworm, 9.12-slim-bookworm, 9-slim-bookworm, slim-bookworm, 9-slim, slim
 Architectures: amd64, arm64v8
-GitCommit: c34f97738d08a138ef07878a4a1402b10670f87b
+GitCommit: d478ceb8ff33f6208db87008e48cd084fd9747a1
 Directory: 9.12/slim-bookworm
diff --git a/_bashbrew-list b/_bashbrew-list
index c7de251..f817179 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -21,11 +21,15 @@ haskell:9.8.4-bullseye
 haskell:9.8.4-slim
 haskell:9.8.4-slim-bullseye
 haskell:9.10
+haskell:9.10-bookworm
 haskell:9.10-bullseye
+haskell:9.10-slim-bookworm
 haskell:9.10-slim-bullseye
-haskell:9.10.2
-haskell:9.10.2-bullseye
-haskell:9.10.2-slim-bullseye
+haskell:9.10.3
+haskell:9.10.3-bookworm
+haskell:9.10.3-bullseye
+haskell:9.10.3-slim-bookworm
+haskell:9.10.3-slim-bullseye
 haskell:9.12
 haskell:9.12-bookworm
 haskell:9.12-slim-bookworm
diff --git a/_bashbrew-list-build-order b/_bashbrew-list-build-order
index 7821513..7143d9e 100644
--- a/_bashbrew-list-build-order
+++ b/_bashbrew-list-build-order
@@ -3,6 +3,8 @@ haskell:9.6-slim
 haskell:9.8
 haskell:9.8-slim
 haskell:9.10
+haskell:9.10-bookworm
+haskell:9.10-slim-bookworm
 haskell:latest
 haskell:slim
 haskell:slim-bullseye
diff --git a/haskell_latest/Dockerfile b/haskell_9.10-bookworm/Dockerfile
similarity index 85%
copy from haskell_latest/Dockerfile
copy to haskell_9.10-bookworm/Dockerfile
index 7978459..d71e41c 100644
--- a/haskell_latest/Dockerfile
+++ b/haskell_9.10-bookworm/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.14.1.1
-ARG CABAL_INSTALL_RELEASE_KEY=EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,7 +68,7 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb12.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
             CABAL_INSTALL_SHA256='f763fb2af2bc1ff174b7361a7d51109a585954f87a0e14f86d144f3bce28f7a9'; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,20 +96,21 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.12.2
-ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
+ARG GHC='9.10.3'
+ARG GHC_RELEASE_KEY='88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb12-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            GHC_SHA256='bee95bc91a621d8a2e9a9d86dac28ff839605e87316518dae12c779709bd58f1'; \
+            GHC_SHA256='052789dfe7f6fba6dc3822de0da272e8a5bd358c37adae17d8e82cff39bc1008'; \
+            GHC_URL='https://downloads.haskell.org/~ghc/9.10.3/ghc-9.10.3-aarch64-deb11-linux.tar.xz'; \
             ;; \
         'x86_64') \
-            GHC_SHA256='447ec2fcc773ae9ebc3f39766c719641631274f9b765d7426a8cbe9241677c9f'; \
+            GHC_SHA256='1ac63f04eac0ad551d45cbde38f27e0e3f43ceefd98833fae1fa3f2dbd042367'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
     esac; \
diff --git a/haskell_slim/Dockerfile b/haskell_9.10-slim-bookworm/Dockerfile
similarity index 85%
copy from haskell_slim/Dockerfile
copy to haskell_9.10-slim-bookworm/Dockerfile
index 0a3e2dc..ddc94da 100644
--- a/haskell_slim/Dockerfile
+++ b/haskell_9.10-slim-bookworm/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.14.1.1
-ARG CABAL_INSTALL_RELEASE_KEY=EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,7 +68,7 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb12.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
             CABAL_INSTALL_SHA256='f763fb2af2bc1ff174b7361a7d51109a585954f87a0e14f86d144f3bce28f7a9'; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,20 +96,21 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.12.2
-ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
+ARG GHC='9.10.3'
+ARG GHC_RELEASE_KEY='88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb12-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            GHC_SHA256='bee95bc91a621d8a2e9a9d86dac28ff839605e87316518dae12c779709bd58f1'; \
+            GHC_SHA256='052789dfe7f6fba6dc3822de0da272e8a5bd358c37adae17d8e82cff39bc1008'; \
+            GHC_URL='https://downloads.haskell.org/~ghc/9.10.3/ghc-9.10.3-aarch64-deb11-linux.tar.xz'; \
             ;; \
         'x86_64') \
-            GHC_SHA256='447ec2fcc773ae9ebc3f39766c719641631274f9b765d7426a8cbe9241677c9f'; \
+            GHC_SHA256='1ac63f04eac0ad551d45cbde38f27e0e3f43ceefd98833fae1fa3f2dbd042367'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
     esac; \
diff --git a/haskell_9.10/Dockerfile b/haskell_9.10/Dockerfile
index 91e6bfc..8535912 100644
--- a/haskell_9.10/Dockerfile
+++ b/haskell_9.10/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.12.1.0
-ARG CABAL_INSTALL_RELEASE_KEY=1E07C9A1A3088BAD47F74A3E227EE1942B0BDB95
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,13 +68,13 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb11.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            CABAL_INSTALL_SHA256='c14e8198407f37f7276c77b5cefef60ee6a929b4c22d7316577ce8e2301a758e'; \
+            CABAL_INSTALL_SHA256='5e8c47a055d5b744741039a7061ee43ec7d080d1251784e7a4cd836403e42523'; \
             ;; \
         'x86_64') \
-            CABAL_INSTALL_SHA256='4f60cf1c72f4ad4d82d668839ac61ae15ae4faf6c4b809395799e8a3ee622051'; \
+            CABAL_INSTALL_SHA256='41b85bb25fa654e4b79169014b9142fe696ff35e002e043caa0e52d65204ba8a'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,20 +96,20 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.10.2
-ARG GHC_RELEASE_KEY=88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4
+ARG GHC='9.10.3'
+ARG GHC_RELEASE_KEY='88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb11-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            GHC_SHA256='0188ca098abdaf71eb0804d0f35311f405da489137d8d438bfaa43b8d1e3f1b0'; \
+            GHC_SHA256='052789dfe7f6fba6dc3822de0da272e8a5bd358c37adae17d8e82cff39bc1008'; \
             ;; \
         'x86_64') \
-            GHC_SHA256='2fe2c3e0a07e4782530e8bf83eeda8ff6935e40d5450c1809abcdc6182c9c848'; \
+            GHC_SHA256='b6bbd3514e0cdb9db350812a003bb7c670c58d99779086fbe41092b019548924'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
     esac; \
diff --git a/haskell_9.6-slim/Dockerfile b/haskell_9.6-slim/Dockerfile
index 3a7f96e..cb9235b 100644
--- a/haskell_9.6-slim/Dockerfile
+++ b/haskell_9.6-slim/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.12.1.0
-ARG CABAL_INSTALL_RELEASE_KEY=1E07C9A1A3088BAD47F74A3E227EE1942B0BDB95
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,13 +68,13 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb11.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            CABAL_INSTALL_SHA256='c14e8198407f37f7276c77b5cefef60ee6a929b4c22d7316577ce8e2301a758e'; \
+            CABAL_INSTALL_SHA256='5e8c47a055d5b744741039a7061ee43ec7d080d1251784e7a4cd836403e42523'; \
             ;; \
         'x86_64') \
-            CABAL_INSTALL_SHA256='4f60cf1c72f4ad4d82d668839ac61ae15ae4faf6c4b809395799e8a3ee622051'; \
+            CABAL_INSTALL_SHA256='41b85bb25fa654e4b79169014b9142fe696ff35e002e043caa0e52d65204ba8a'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,22 +96,20 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.6.7
-ARG GHC_RELEASE_KEY=8C961469C8FDC968718D6245AC7DE836C5DF907D
+ARG GHC='9.6.7'
+ARG GHC_RELEASE_KEY='8C961469C8FDC968718D6245AC7DE836C5DF907D'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb11-linux.tar.xz"; \
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            # Note: the 'aarch64-deb11' (bullseye) variant of images doesn't exist in https://downloads.haskell.org/~ghc/9.6.7/
-            # But deb10 (buster) images should be binary compatible with deb11, so using deb10 instead
-            GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb10-linux.tar.xz"; \
             GHC_SHA256='3cfa843687856de304a946dbe849a497c4fdad021f0275628b8ca7b55ccf8082'; \
+            GHC_URL='https://downloads.haskell.org/~ghc/9.6.7/ghc-9.6.7-aarch64-deb10-linux.tar.xz'; \
             ;; \
         'x86_64') \
-            GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb11-linux.tar.xz"; \
             GHC_SHA256='fc6a6247d1831745c67b27d6212f6911c35a933043f3b6851724e2e01484d077'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
@@ -127,8 +127,6 @@ RUN set -eux; \
     cd "ghc-$GHC-$ARCH-unknown-linux"; \
     ./configure --prefix "/opt/ghc/$GHC"; \
     make install; \
-    # remove profiling support to save space
-    find "/opt/ghc/$GHC/" \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete; \
     \
     rm -rf /tmp/*; \
     \
diff --git a/haskell_9.6/Dockerfile b/haskell_9.6/Dockerfile
index 7b0cf8f..d372ef4 100644
--- a/haskell_9.6/Dockerfile
+++ b/haskell_9.6/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.12.1.0
-ARG CABAL_INSTALL_RELEASE_KEY=1E07C9A1A3088BAD47F74A3E227EE1942B0BDB95
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,13 +68,13 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb11.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            CABAL_INSTALL_SHA256='c14e8198407f37f7276c77b5cefef60ee6a929b4c22d7316577ce8e2301a758e'; \
+            CABAL_INSTALL_SHA256='5e8c47a055d5b744741039a7061ee43ec7d080d1251784e7a4cd836403e42523'; \
             ;; \
         'x86_64') \
-            CABAL_INSTALL_SHA256='4f60cf1c72f4ad4d82d668839ac61ae15ae4faf6c4b809395799e8a3ee622051'; \
+            CABAL_INSTALL_SHA256='41b85bb25fa654e4b79169014b9142fe696ff35e002e043caa0e52d65204ba8a'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,22 +96,20 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.6.7
-ARG GHC_RELEASE_KEY=8C961469C8FDC968718D6245AC7DE836C5DF907D
+ARG GHC='9.6.7'
+ARG GHC_RELEASE_KEY='8C961469C8FDC968718D6245AC7DE836C5DF907D'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb11-linux.tar.xz"; \
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            # Note: the 'aarch64-deb11' (bullseye) variant of images doesn't exist in https://downloads.haskell.org/~ghc/9.6.7/
-            # But deb10 (buster) images should be binary compatible with deb11, so using deb10 instead
-            GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb10-linux.tar.xz"; \
             GHC_SHA256='3cfa843687856de304a946dbe849a497c4fdad021f0275628b8ca7b55ccf8082'; \
+            GHC_URL='https://downloads.haskell.org/~ghc/9.6.7/ghc-9.6.7-aarch64-deb10-linux.tar.xz'; \
             ;; \
         'x86_64') \
-            GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb11-linux.tar.xz"; \
             GHC_SHA256='fc6a6247d1831745c67b27d6212f6911c35a933043f3b6851724e2e01484d077'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
diff --git a/haskell_9.8-slim/Dockerfile b/haskell_9.8-slim/Dockerfile
index 2ffc0a5..a799965 100644
--- a/haskell_9.8-slim/Dockerfile
+++ b/haskell_9.8-slim/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.12.1.0
-ARG CABAL_INSTALL_RELEASE_KEY=1E07C9A1A3088BAD47F74A3E227EE1942B0BDB95
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,13 +68,13 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb11.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            CABAL_INSTALL_SHA256='c14e8198407f37f7276c77b5cefef60ee6a929b4c22d7316577ce8e2301a758e'; \
+            CABAL_INSTALL_SHA256='5e8c47a055d5b744741039a7061ee43ec7d080d1251784e7a4cd836403e42523'; \
             ;; \
         'x86_64') \
-            CABAL_INSTALL_SHA256='4f60cf1c72f4ad4d82d668839ac61ae15ae4faf6c4b809395799e8a3ee622051'; \
+            CABAL_INSTALL_SHA256='41b85bb25fa654e4b79169014b9142fe696ff35e002e043caa0e52d65204ba8a'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,14 +96,14 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.8.4
-ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
+ARG GHC='9.8.4'
+ARG GHC_RELEASE_KEY='FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb11-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
             GHC_SHA256='310204daf2df6ad16087be94b3498ca414a0953b29e94e8ec8eb4a5c9bf603d3'; \
diff --git a/haskell_9.8/Dockerfile b/haskell_9.8/Dockerfile
index afbf65f..006153a 100644
--- a/haskell_9.8/Dockerfile
+++ b/haskell_9.8/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.12.1.0
-ARG CABAL_INSTALL_RELEASE_KEY=1E07C9A1A3088BAD47F74A3E227EE1942B0BDB95
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,13 +68,13 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb11.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            CABAL_INSTALL_SHA256='c14e8198407f37f7276c77b5cefef60ee6a929b4c22d7316577ce8e2301a758e'; \
+            CABAL_INSTALL_SHA256='5e8c47a055d5b744741039a7061ee43ec7d080d1251784e7a4cd836403e42523'; \
             ;; \
         'x86_64') \
-            CABAL_INSTALL_SHA256='4f60cf1c72f4ad4d82d668839ac61ae15ae4faf6c4b809395799e8a3ee622051'; \
+            CABAL_INSTALL_SHA256='41b85bb25fa654e4b79169014b9142fe696ff35e002e043caa0e52d65204ba8a'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,14 +96,14 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.8.4
-ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
+ARG GHC='9.8.4'
+ARG GHC_RELEASE_KEY='FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb11-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
             GHC_SHA256='310204daf2df6ad16087be94b3498ca414a0953b29e94e8ec8eb4a5c9bf603d3'; \
diff --git a/haskell_latest/Dockerfile b/haskell_latest/Dockerfile
index 7978459..be07587 100644
--- a/haskell_latest/Dockerfile
+++ b/haskell_latest/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.14.1.1
-ARG CABAL_INSTALL_RELEASE_KEY=EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,7 +68,7 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb12.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
             CABAL_INSTALL_SHA256='f763fb2af2bc1ff174b7361a7d51109a585954f87a0e14f86d144f3bce28f7a9'; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,14 +96,14 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.12.2
-ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
+ARG GHC='9.12.2'
+ARG GHC_RELEASE_KEY='FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb12-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
             GHC_SHA256='bee95bc91a621d8a2e9a9d86dac28ff839605e87316518dae12c779709bd58f1'; \
diff --git a/haskell_slim-bullseye/Dockerfile b/haskell_slim-bullseye/Dockerfile
index e4ad370..f54d31f 100644
--- a/haskell_slim-bullseye/Dockerfile
+++ b/haskell_slim-bullseye/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.12.1.0
-ARG CABAL_INSTALL_RELEASE_KEY=1E07C9A1A3088BAD47F74A3E227EE1942B0BDB95
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,13 +68,13 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb11.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            CABAL_INSTALL_SHA256='c14e8198407f37f7276c77b5cefef60ee6a929b4c22d7316577ce8e2301a758e'; \
+            CABAL_INSTALL_SHA256='5e8c47a055d5b744741039a7061ee43ec7d080d1251784e7a4cd836403e42523'; \
             ;; \
         'x86_64') \
-            CABAL_INSTALL_SHA256='4f60cf1c72f4ad4d82d668839ac61ae15ae4faf6c4b809395799e8a3ee622051'; \
+            CABAL_INSTALL_SHA256='41b85bb25fa654e4b79169014b9142fe696ff35e002e043caa0e52d65204ba8a'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,20 +96,20 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.10.2
-ARG GHC_RELEASE_KEY=88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4
+ARG GHC='9.10.3'
+ARG GHC_RELEASE_KEY='88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb11-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            GHC_SHA256='0188ca098abdaf71eb0804d0f35311f405da489137d8d438bfaa43b8d1e3f1b0'; \
+            GHC_SHA256='052789dfe7f6fba6dc3822de0da272e8a5bd358c37adae17d8e82cff39bc1008'; \
             ;; \
         'x86_64') \
-            GHC_SHA256='2fe2c3e0a07e4782530e8bf83eeda8ff6935e40d5450c1809abcdc6182c9c848'; \
+            GHC_SHA256='b6bbd3514e0cdb9db350812a003bb7c670c58d99779086fbe41092b019548924'; \
             ;; \
         *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
     esac; \
diff --git a/haskell_slim/Dockerfile b/haskell_slim/Dockerfile
index 0a3e2dc..98e457a 100644
--- a/haskell_slim/Dockerfile
+++ b/haskell_slim/Dockerfile
@@ -23,14 +23,15 @@ RUN apt-get update && \
         zlib1g-dev && \
     rm -rf /var/lib/apt/lists/*
 
-ARG STACK=3.3.1
-ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
+
+ARG STACK='3.3.1'
+ARG STACK_RELEASE_KEY='C5705533DA4F78D8664B5DC0575159689BEFB442'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
-    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
+    # sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256 \
     case "$ARCH" in \
         'aarch64') \
             STACK_SHA256='bdd618ea5a9c921417727011f2ecd78987dffa5cee5e741108baf65a9b5b58ab'; \
@@ -38,13 +39,14 @@ RUN set -eux; \
         'x86_64') \
             STACK_SHA256='88d7e517342c125b0a098d9d578fe53e590618ae4b2427283a27408a1ebd06d8'; \
             ;; \
-        *) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
+        *) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
     esac; \
     curl -sSL "$STACK_URL" -o stack.tar.gz; \
     echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
     \
     curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
-    GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
+    GNUPGHOME="$(mktemp -d)"; \
+    export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
     gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
     gpgconf --kill all; \
@@ -57,8 +59,8 @@ RUN set -eux; \
     \
     stack --version;
 
-ARG CABAL_INSTALL=3.14.1.1
-ARG CABAL_INSTALL_RELEASE_KEY=EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF
+ARG CABAL_INSTALL='3.14.1.1'
+ARG CABAL_INSTALL_RELEASE_KEY='EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF'
 
 RUN set -eux; \
     cd /tmp; \
@@ -66,7 +68,7 @@ RUN set -eux; \
     CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb12.tar.xz"; \
     CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
     CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
-    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
             CABAL_INSTALL_SHA256='f763fb2af2bc1ff174b7361a7d51109a585954f87a0e14f86d144f3bce28f7a9'; \
@@ -84,7 +86,7 @@ RUN set -eux; \
     GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
     gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
     gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
-    # confirm we are verifying SHA256SUMS that matches the release + sha256
+    # confirm we are verifying SHA256SUMS that matches the release + sha256 \
     grep "$CABAL_INSTALL_SHA256  $CABAL_INSTALL_TAR" SHA256SUMS; \
     gpgconf --kill all; \
     \
@@ -94,14 +96,14 @@ RUN set -eux; \
     \
     cabal --version
 
-ARG GHC=9.12.2
-ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
+ARG GHC='9.12.2'
+ARG GHC_RELEASE_KEY='FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD'
 
 RUN set -eux; \
     cd /tmp; \
     ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb12-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
             GHC_SHA256='bee95bc91a621d8a2e9a9d86dac28ff839605e87316518dae12c779709bd58f1'; \

Relevant Maintainers:

@yosifkit
Copy link
Member

yosifkit commented Nov 4, 2025

     GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb12-linux.tar.xz"; \
-    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
+    # sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS \
     case "$ARCH" in \
         'aarch64') \
-            GHC_SHA256='bee95bc91a621d8a2e9a9d86dac28ff839605e87316518dae12c779709bd58f1'; \
+            GHC_SHA256='052789dfe7f6fba6dc3822de0da272e8a5bd358c37adae17d8e82cff39bc1008'; \
+            GHC_URL='https://downloads.haskell.org/~ghc/9.10.3/ghc-9.10.3-aarch64-deb11-linux.tar.xz'; \

Just a reminder for myself that using the deb10 tar in deb11 or deb11 in deb12 is on purpose when there isn't a build available for that suite (and is still noted).

-            # Note: the 'aarch64-deb11' (bullseye) variant of images doesn't exist in https://downloads.haskell.org/~ghc/9.6.7/
-            # But deb10 (buster) images should be binary compatible with deb11, so using deb10 instead
-            GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb10-linux.tar.xz"; \
             GHC_SHA256='3cfa843687856de304a946dbe849a497c4fdad021f0275628b8ca7b55ccf8082'; \
+            GHC_URL='https://downloads.haskell.org/~ghc/9.6.7/ghc-9.6.7-aarch64-deb10-linux.tar.xz'; \

@tianon tianon merged commit 297d093 into docker-library:master Nov 4, 2025
15 checks passed
@Totto16 Totto16 deleted the ghc-9.10.3 branch November 5, 2025 00:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants