Skip to content

Commit d95321b

Browse files
committed
feat: 9.10 for bullseye
1 parent 947d241 commit d95321b

File tree

2 files changed

+124
-0
lines changed

2 files changed

+124
-0
lines changed

.github/workflows/debian.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ jobs:
3737
ghc_minor: '9.8'
3838
- ghc: '9.10.1'
3939
ghc_minor: '9.10'
40+
- ghc: '9.10.1'
41+
ghc_minor: '9.10'
42+
deb: 'bullseye'
43+
4044
steps:
4145
- uses: actions/checkout@v2
4246
- name: build + smoke test [${{ matrix.ghc }}]

9.10/bullseye/Dockerfile

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
FROM buildpack-deps:bullseye
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.15.7
13+
ARG STACK_RELEASE_KEY=C5705533DA4F78D8664B5DC0575159689BEFB442
14+
15+
RUN set -eux; \
16+
cd /tmp; \
17+
ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
18+
STACK_URL="https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz"; \
19+
# sha256 from https://github.com/commercialhaskell/stack/releases/download/v${STACK}/stack-${STACK}-linux-$ARCH.tar.gz.sha256
20+
case "$ARCH" in \
21+
'aarch64') \
22+
STACK_SHA256='f0c4b038c7e895902e133a2f4c4c217e03c4be44aa5da48aec9f7947f4af090b'; \
23+
;; \
24+
'x86_64') \
25+
STACK_SHA256='4e635d6168f7578a5694a0d473c980c3c7ed35d971acae969de1fd48ef14e030'; \
26+
;; \
27+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
28+
esac; \
29+
curl -sSL "$STACK_URL" -o stack.tar.gz; \
30+
echo "$STACK_SHA256 stack.tar.gz" | sha256sum --strict --check; \
31+
\
32+
curl -sSL "$STACK_URL.asc" -o stack.tar.gz.asc; \
33+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
34+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$STACK_RELEASE_KEY"; \
35+
gpg --batch --verify stack.tar.gz.asc stack.tar.gz; \
36+
gpgconf --kill all; \
37+
\
38+
tar -xf stack.tar.gz -C /usr/local/bin --strip-components=1 "stack-$STACK-linux-$ARCH/stack"; \
39+
stack config set system-ghc --global true; \
40+
stack config set install-ghc --global false; \
41+
\
42+
rm -rf /tmp/*; \
43+
\
44+
stack --version;
45+
46+
ARG CABAL_INSTALL=3.10.3.0
47+
ARG CABAL_INSTALL_RELEASE_KEY=EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF
48+
49+
RUN set -eux; \
50+
cd /tmp; \
51+
ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
52+
CABAL_INSTALL_TAR="cabal-install-$CABAL_INSTALL-$ARCH-linux-deb11.tar.xz"; \
53+
CABAL_INSTALL_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/$CABAL_INSTALL_TAR"; \
54+
CABAL_INSTALL_SHA256SUMS_URL="https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS"; \
55+
# sha256 from https://downloads.haskell.org/~cabal/cabal-install-$CABAL_INSTALL/SHA256SUMS
56+
case "$ARCH" in \
57+
'aarch64') \
58+
CABAL_INSTALL_SHA256='e0b6604d3596c5e5b7236e79ff4f5aa8af337792bf69ac4a90634c761f1b9ed5'; \
59+
;; \
60+
'x86_64') \
61+
CABAL_INSTALL_SHA256='12d018bdd07efed470f278f22d94b33655c4fcbc44d28d97b5ebb7944d5607c5'; \
62+
;; \
63+
*) echo >&2 "error: unsupported architecture '$ARCH'"; exit 1 ;; \
64+
esac; \
65+
curl -fSL "$CABAL_INSTALL_URL" -o cabal-install.tar.gz; \
66+
echo "$CABAL_INSTALL_SHA256 cabal-install.tar.gz" | sha256sum --strict --check; \
67+
\
68+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL"; \
69+
curl -sSLO "$CABAL_INSTALL_SHA256SUMS_URL.sig"; \
70+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
71+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$CABAL_INSTALL_RELEASE_KEY"; \
72+
gpg --batch --verify SHA256SUMS.sig SHA256SUMS; \
73+
# confirm we are verifying SHA256SUMS that matches the release + sha256
74+
grep "$CABAL_INSTALL_SHA256 $CABAL_INSTALL_TAR" SHA256SUMS; \
75+
gpgconf --kill all; \
76+
\
77+
tar -xf cabal-install.tar.gz -C /usr/local/bin; \
78+
\
79+
rm -rf /tmp/*; \
80+
\
81+
cabal --version
82+
83+
ARG GHC=9.10.1
84+
ARG GHC_RELEASE_KEY=FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD
85+
86+
RUN set -eux; \
87+
cd /tmp; \
88+
ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_CPU)"; \
89+
GHC_URL="https://downloads.haskell.org/~ghc/$GHC/ghc-$GHC-$ARCH-deb10-linux.tar.xz"; \
90+
# sha256 from https://downloads.haskell.org/~ghc/$GHC/SHA256SUMS
91+
case "$ARCH" in \
92+
'aarch64') \
93+
GHC_SHA256='1db449c445d34779d4deaba22341576f7b512a05b6c2b5cb64f3846d1509714e'; \
94+
;; \
95+
'x86_64') \
96+
GHC_SHA256='78975575b8125ecf1f50f78b1016b14ea6e87abbf1fc39797af469d029c5d737'; \
97+
;; \
98+
*) echo >&2 "error: unsupported architecture '$ARCH'" ; exit 1 ;; \
99+
esac; \
100+
curl -sSL "$GHC_URL" -o ghc.tar.xz; \
101+
echo "$GHC_SHA256 ghc.tar.xz" | sha256sum --strict --check; \
102+
\
103+
GNUPGHOME="$(mktemp -d)"; export GNUPGHOME; \
104+
curl -sSL "$GHC_URL.sig" -o ghc.tar.xz.sig; \
105+
gpg --batch --keyserver keyserver.ubuntu.com --receive-keys "$GHC_RELEASE_KEY"; \
106+
gpg --batch --verify ghc.tar.xz.sig ghc.tar.xz; \
107+
gpgconf --kill all; \
108+
\
109+
tar xf ghc.tar.xz; \
110+
cd "ghc-$GHC-$ARCH-unknown-linux"; \
111+
./configure --prefix "/opt/ghc/$GHC"; \
112+
make install; \
113+
\
114+
rm -rf /tmp/*; \
115+
\
116+
"/opt/ghc/$GHC/bin/ghc" --version
117+
118+
ENV PATH /root/.cabal/bin:/root/.local/bin:/opt/ghc/${GHC}/bin:$PATH
119+
120+
CMD ["ghci"]

0 commit comments

Comments
 (0)