Skip to content

Commit 94c1696

Browse files
authored
Merge pull request #84 from AlistairB/ghc-9-4-1
Add GHC 9.4.1
2 parents 90dbf04 + f73dac0 commit 94c1696

File tree

9 files changed

+304
-28
lines changed

9 files changed

+304
-28
lines changed

.github/workflows/debian.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
strategy:
2323
fail-fast: false
2424
matrix:
25-
ghc: ['8.10.7', '9.0.2', '9.2.4']
25+
ghc: ['8.10.7', '9.0.2', '9.2.4', '9.4.1']
2626
deb: ['buster', 'slim-buster']
2727
include:
2828
- ghc: '8.10.7'
@@ -31,6 +31,8 @@ jobs:
3131
ghc_minor: '9.0'
3232
- ghc: '9.2.4'
3333
ghc_minor: '9.2'
34+
- ghc: '9.4.1'
35+
ghc_minor: '9.4'
3436
steps:
3537
- uses: actions/checkout@v2
3638
- name: build + smoke test [${{ matrix.ghc }}]
@@ -45,7 +47,7 @@ jobs:
4547
- uses: actions/checkout@v2
4648
with:
4749
repository: AlistairB/official-images
48-
ref: haskell-sh
50+
ref: haskell-cabal-test-change
4951
path: official-images
5052
- name: run official-images tests
5153
run: ./official-images/test/run.sh haskell:${{ matrix.ghc }}-${{ matrix.deb }}
@@ -57,7 +59,7 @@ jobs:
5759
strategy:
5860
fail-fast: false
5961
matrix:
60-
ghc: ['8.10.7', '9.0.2', '9.2.4']
62+
ghc: ['8.10.7', '9.0.2', '9.2.4', '9.4.1']
6163
# uraimo/run-on-arch-action does not support debian slim variants
6264
deb: ['buster']
6365
arch: ['aarch64']
@@ -68,6 +70,8 @@ jobs:
6870
ghc_minor: '9.0'
6971
- ghc: '9.2.4'
7072
ghc_minor: '9.2'
73+
- ghc: '9.4.1'
74+
ghc_minor: '9.4'
7175
- arch: aarch64
7276
docker_platform: arm64
7377
steps:
@@ -91,7 +95,7 @@ jobs:
9195
docker run \
9296
--platform "linux/${{ matrix.docker_platform }}" \
9397
-t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \
94-
bash -c "cabal update && cabal install --lib hashable"
98+
bash -c "cabal update && cabal install --lib primitive"
9599
docker run \
96100
--platform "linux/${{ matrix.docker_platform }}" \
97101
-t haskell:${{ matrix.ghc }}-${{ matrix.deb }} \

8.10/buster/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ RUN set -eux; \
4949
stack --version; \
5050
fi
5151

52-
ARG CABAL_INSTALL=3.6.2.0
53-
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
52+
ARG CABAL_INSTALL=3.8.1.0
53+
ARG CABAL_INSTALL_RELEASE_KEY=E9EC5616017C3EE26B33468CCE1ED8AE0B011D8C
5454

5555
RUN set -eux; \
5656
cd /tmp; \
@@ -61,10 +61,10 @@ RUN set -eux; \
6161
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
6262
case "$ARCH" in \
6363
'aarch64') \
64-
CABAL_INSTALL_SHA256='d9acee67d4308bc5c22d27bee034d388cc4192a25deff9e7e491e2396572b030'; \
64+
CABAL_INSTALL_SHA256='c7fa9029f2f829432dd9dcf764e58605fbb7431db79234feb3e46684a9b37214'; \
6565
;; \
6666
'x86_64') \
67-
CABAL_INSTALL_SHA256='4759b56e9257e02f29fa374a6b25d6cb2f9d80c7e3a55d4f678a8e570925641c'; \
67+
CABAL_INSTALL_SHA256='c71a1a46fd42d235bb86be968660815c24950e5da2d1ff4640da025ab520424b'; \
6868
;; \
6969
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
7070
esac; \

8.10/slim-buster/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ RUN set -eux; \
6363
stack --version; \
6464
fi
6565

66-
ARG CABAL_INSTALL=3.6.2.0
67-
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
66+
ARG CABAL_INSTALL=3.8.1.0
67+
ARG CABAL_INSTALL_RELEASE_KEY=E9EC5616017C3EE26B33468CCE1ED8AE0B011D8C
6868

6969
RUN set -eux; \
7070
cd /tmp; \
@@ -75,10 +75,10 @@ RUN set -eux; \
7575
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
7676
case "$ARCH" in \
7777
'aarch64') \
78-
CABAL_INSTALL_SHA256='d9acee67d4308bc5c22d27bee034d388cc4192a25deff9e7e491e2396572b030'; \
78+
CABAL_INSTALL_SHA256='c7fa9029f2f829432dd9dcf764e58605fbb7431db79234feb3e46684a9b37214'; \
7979
;; \
8080
'x86_64') \
81-
CABAL_INSTALL_SHA256='4759b56e9257e02f29fa374a6b25d6cb2f9d80c7e3a55d4f678a8e570925641c'; \
81+
CABAL_INSTALL_SHA256='c71a1a46fd42d235bb86be968660815c24950e5da2d1ff4640da025ab520424b'; \
8282
;; \
8383
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
8484
esac; \

9.0/buster/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ RUN set -eux; \
4949
stack --version; \
5050
fi
5151

52-
ARG CABAL_INSTALL=3.6.2.0
53-
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
52+
ARG CABAL_INSTALL=3.8.1.0
53+
ARG CABAL_INSTALL_RELEASE_KEY=E9EC5616017C3EE26B33468CCE1ED8AE0B011D8C
5454

5555
RUN set -eux; \
5656
cd /tmp; \
@@ -61,10 +61,10 @@ RUN set -eux; \
6161
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
6262
case "$ARCH" in \
6363
'aarch64') \
64-
CABAL_INSTALL_SHA256='d9acee67d4308bc5c22d27bee034d388cc4192a25deff9e7e491e2396572b030'; \
64+
CABAL_INSTALL_SHA256='c7fa9029f2f829432dd9dcf764e58605fbb7431db79234feb3e46684a9b37214'; \
6565
;; \
6666
'x86_64') \
67-
CABAL_INSTALL_SHA256='4759b56e9257e02f29fa374a6b25d6cb2f9d80c7e3a55d4f678a8e570925641c'; \
67+
CABAL_INSTALL_SHA256='c71a1a46fd42d235bb86be968660815c24950e5da2d1ff4640da025ab520424b'; \
6868
;; \
6969
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
7070
esac; \

9.0/slim-buster/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ RUN set -eux; \
6363
stack --version; \
6464
fi
6565

66-
ARG CABAL_INSTALL=3.6.2.0
67-
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
66+
ARG CABAL_INSTALL=3.8.1.0
67+
ARG CABAL_INSTALL_RELEASE_KEY=E9EC5616017C3EE26B33468CCE1ED8AE0B011D8C
6868

6969
RUN set -eux; \
7070
cd /tmp; \
@@ -75,10 +75,10 @@ RUN set -eux; \
7575
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
7676
case "$ARCH" in \
7777
'aarch64') \
78-
CABAL_INSTALL_SHA256='d9acee67d4308bc5c22d27bee034d388cc4192a25deff9e7e491e2396572b030'; \
78+
CABAL_INSTALL_SHA256='c7fa9029f2f829432dd9dcf764e58605fbb7431db79234feb3e46684a9b37214'; \
7979
;; \
8080
'x86_64') \
81-
CABAL_INSTALL_SHA256='4759b56e9257e02f29fa374a6b25d6cb2f9d80c7e3a55d4f678a8e570925641c'; \
81+
CABAL_INSTALL_SHA256='c71a1a46fd42d235bb86be968660815c24950e5da2d1ff4640da025ab520424b'; \
8282
;; \
8383
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
8484
esac; \

9.2/buster/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ RUN set -eux; \
4949
stack --version; \
5050
fi
5151

52-
ARG CABAL_INSTALL=3.6.2.0
53-
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
52+
ARG CABAL_INSTALL=3.8.1.0
53+
ARG CABAL_INSTALL_RELEASE_KEY=E9EC5616017C3EE26B33468CCE1ED8AE0B011D8C
5454

5555
RUN set -eux; \
5656
cd /tmp; \
@@ -61,10 +61,10 @@ RUN set -eux; \
6161
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
6262
case "$ARCH" in \
6363
'aarch64') \
64-
CABAL_INSTALL_SHA256='d9acee67d4308bc5c22d27bee034d388cc4192a25deff9e7e491e2396572b030'; \
64+
CABAL_INSTALL_SHA256='c7fa9029f2f829432dd9dcf764e58605fbb7431db79234feb3e46684a9b37214'; \
6565
;; \
6666
'x86_64') \
67-
CABAL_INSTALL_SHA256='4759b56e9257e02f29fa374a6b25d6cb2f9d80c7e3a55d4f678a8e570925641c'; \
67+
CABAL_INSTALL_SHA256='c71a1a46fd42d235bb86be968660815c24950e5da2d1ff4640da025ab520424b'; \
6868
;; \
6969
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
7070
esac; \

9.2/slim-buster/Dockerfile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ RUN set -eux; \
6363
stack --version; \
6464
fi
6565

66-
ARG CABAL_INSTALL=3.6.2.0
67-
ARG CABAL_INSTALL_RELEASE_KEY=A970DF3AC3B9709706D74544B3D9F94B8DCAE210
66+
ARG CABAL_INSTALL=3.8.1.0
67+
ARG CABAL_INSTALL_RELEASE_KEY=E9EC5616017C3EE26B33468CCE1ED8AE0B011D8C
6868

6969
RUN set -eux; \
7070
cd /tmp; \
@@ -75,10 +75,10 @@ RUN set -eux; \
7575
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
7676
case "$ARCH" in \
7777
'aarch64') \
78-
CABAL_INSTALL_SHA256='d9acee67d4308bc5c22d27bee034d388cc4192a25deff9e7e491e2396572b030'; \
78+
CABAL_INSTALL_SHA256='c7fa9029f2f829432dd9dcf764e58605fbb7431db79234feb3e46684a9b37214'; \
7979
;; \
8080
'x86_64') \
81-
CABAL_INSTALL_SHA256='4759b56e9257e02f29fa374a6b25d6cb2f9d80c7e3a55d4f678a8e570925641c'; \
81+
CABAL_INSTALL_SHA256='c71a1a46fd42d235bb86be968660815c24950e5da2d1ff4640da025ab520424b'; \
8282
;; \
8383
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
8484
esac; \

9.4/buster/Dockerfile

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
FROM buildpack-deps:buster
2+
3+
ENV LANG C.UTF-8
4+
5+
# additional haskell specific deps
6+
RUN apt-get update && \
7+
apt-get install -y --no-install-recommends \
8+
libnuma-dev \
9+
libtinfo-dev && \
10+
rm -rf /var/lib/apt/lists/*
11+
12+
ARG STACK=2.7.5
13+
ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
14+
15+
RUN set -eux; \
16+
cd /tmp; \
17+
ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
18+
INSTALL_STACK="true"; \
19+
STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
20+
# sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
21+
case "$ARCH" in \
22+
'aarch64') \
23+
# Stack does not officially support ARM64, nor do the binaries that exist work.
24+
# Hitting https://github.com/commercialhaskell/stack/issues/2103#issuecomment-972329065 when trying to use
25+
# stack-2.7.1-linux-aarch64.tar.gz
26+
INSTALL_STACK="false"; \
27+
;; \
28+
'x86_64') \
29+
STACK_SHA256='9bcd165358d4dcafd2b33320d4fe98ce72faaf62300cc9b0fb86a27eb670da50'; \
30+
;; \
31+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
32+
esac; \
33+
if [ "$INSTALL_STACK" = "true" ]; then \
34+
curl -sSL "$STACK_URL" -o stack.tar.gz; \
35+
echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
36+
\
37+
curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
38+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
39+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
40+
gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
41+
gpgconf --kill all; \
42+
\
43+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
44+
stack config set system-ghc --global true; \
45+
stack config set install-ghc --global false; \
46+
\
47+
rm -rf /tmp/*; \
48+
\
49+
stack --version; \
50+
fi
51+
52+
ARG CABAL_INSTALL=3.8.1.0
53+
ARG CABAL_INSTALL_RELEASE_KEY=E9EC5616017C3EE26B33468CCE1ED8AE0B011D8C
54+
55+
RUN set -eux; \
56+
cd /tmp; \
57+
ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
58+
CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb10.tar.xz"; \
59+
CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
60+
CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
61+
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
62+
case "$ARCH" in \
63+
'aarch64') \
64+
CABAL_INSTALL_SHA256='c7fa9029f2f829432dd9dcf764e58605fbb7431db79234feb3e46684a9b37214'; \
65+
;; \
66+
'x86_64') \
67+
CABAL_INSTALL_SHA256='c71a1a46fd42d235bb86be968660815c24950e5da2d1ff4640da025ab520424b'; \
68+
;; \
69+
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
70+
esac; \
71+
curl -fSL "$CABAL_INSTALL_URL" -o cabal-install.tar.gz; \
72+
echo "$CABAL_INSTALL_SHA256 cabal-install.tar.gz" | sha256sum --strict --check; \
73+
\
74+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL"; \
75+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL.sig"; \
76+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
77+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
78+
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
79+
# confirm we are verifying SHA256SUMS that matches the release + sha256
80+
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
81+
gpgconf --kill all; \
82+
\
83+
tar -xf cabal-install.tar.gz -C /usr/local/bin; \
84+
\
85+
rm -rf /tmp/*; \
86+
\
87+
cabal --version
88+
89+
ARG GHC=9.4.1
90+
ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
91+
92+
RUN set -eux; \
93+
cd /tmp; \
94+
ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
95+
GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb10-linux.tar.xz"; \
96+
# sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
97+
case "$ARCH" in \
98+
'aarch64') \
99+
GHC_SHA256='7e8ed05533b8ed0440bfb4881e3098333a9dadf24cb6857c2446879e43f7362c'; \
100+
;; \
101+
'x86_64') \
102+
GHC_SHA256='dcbff828b14a59d01d3fda68bb01b9cbc3a321a0c013905f436df5627128aa58'; \
103+
;; \
104+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
105+
esac; \
106+
curl -sSL "$GHC_URL" -o ghc.tar.xz; \
107+
echo "$GHC_SHA256 ghc.tar.xz" | sha256sum --strict --check; \
108+
\
109+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
110+
curl -sSL "$GHC_URL.sig" -o ghc.tar.xz.sig; \
111+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$GHC_RELEASE_KEY"; \
112+
gpg --batch --verify ghc.tar.xz.sig ghc.tar.xz; \
113+
gpgconf --kill all; \
114+
\
115+
tar xf ghc.tar.xz; \
116+
cd "ghc-$GHC-$ARCH-unknown-linux"; \
117+
./configure --prefix "/opt/ghc/$GHC"; \
118+
make install; \
119+
# remove some docs
120+
rm -rf "/opt/ghc/$GHC/share/"; \
121+
\
122+
rm -rf /tmp/*; \
123+
\
124+
"/opt/ghc/$GHC/bin/ghc" --version
125+
126+
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
127+
128+
CMD ["ghci"]

0 commit comments

Comments
 (0)