Commit 93d2060d authored by Ryan Scott's avatar Ryan Scott

Use GHC 8.8 as the minimum bootstrap compiler version

This patch makes GHC 8.8 the minimum bootstrap compiler across all
Docker images in preparation for the same requirement being imposed
on GHC. In most cases, I was able to use 8.8.3. The exception is
`x86_64-linux-deb10`, where the only 8.8 bindist I could find was
8.8.1.
parent 408eff66
...@@ -19,16 +19,15 @@ RUN apt-get update \ ...@@ -19,16 +19,15 @@ RUN apt-get update \
ENV BOOT_LLVM_DIR /opt/llvm-bootstrap ENV BOOT_LLVM_DIR /opt/llvm-bootstrap
ENV BOOT_LLVM_VERSION 7.0.0 ENV BOOT_LLVM_VERSION 7.0.0
ENV PATH /usr/local/bin:$PATH ENV PATH /usr/local/bin:$PATH
RUN curl http://releases.llvm.org/$BOOT_LLVM_VERSION/clang+llvm-$BOOT_LLVM_VERSION-aarch64-linux-gnu.tar.xz | tar -xJC . && \ RUN curl -L http://releases.llvm.org/$BOOT_LLVM_VERSION/clang+llvm-$BOOT_LLVM_VERSION-aarch64-linux-gnu.tar.xz | tar -xJC . && \
mkdir $BOOT_LLVM_DIR && \ mkdir $BOOT_LLVM_DIR && \
cp -R clang+llvm*/* $BOOT_LLVM_DIR && \ cp -R clang+llvm*/* $BOOT_LLVM_DIR && \
rm -R clang+llvm* && \ rm -R clang+llvm* && \
$BOOT_LLVM_DIR/bin/llc --version $BOOT_LLVM_DIR/bin/llc --version
# GHC # GHC
# Use 8.8.1 to bootstrap, since earlier releases are especially buggy on AArch64 ENV GHC_VERSION 8.8.3
ENV GHC_VERSION 8.8.1 RUN curl -L http://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-aarch64-deb9-linux.tar.xz | tar -xJ
RUN curl http://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-aarch64-deb9-linux.tar.xz | tar -xJ
WORKDIR /ghc-$GHC_VERSION WORKDIR /ghc-$GHC_VERSION
RUN ./configure --prefix=/usr/local LLC=$BOOT_LLVM_DIR/bin/llc OPT=$BOOT_LLVM_DIR/bin/opt && \ RUN ./configure --prefix=/usr/local LLC=$BOOT_LLVM_DIR/bin/llc OPT=$BOOT_LLVM_DIR/bin/opt && \
make install make install
...@@ -40,7 +39,7 @@ RUN ghc --version ...@@ -40,7 +39,7 @@ RUN ghc --version
ENV LLVM_DIR /opt/llvm ENV LLVM_DIR /opt/llvm
ENV LLVM_VERSION 9.0.0 ENV LLVM_VERSION 9.0.0
ENV PATH $LLVM_DIR/bin:$PATH ENV PATH $LLVM_DIR/bin:$PATH
RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-aarch64-linux-gnu.tar.xz | tar -xJC . && \ RUN curl -L http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-aarch64-linux-gnu.tar.xz | tar -xJC . && \
mkdir $LLVM_DIR && \ mkdir $LLVM_DIR && \
cp -R clang+llvm*/* $LLVM_DIR && \ cp -R clang+llvm*/* $LLVM_DIR && \
rm -R clang+llvm* && \ rm -R clang+llvm* && \
...@@ -48,13 +47,7 @@ RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-aarch64 ...@@ -48,13 +47,7 @@ RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-aarch64
# Cabal # Cabal
ENV CABAL_VERSION 3.0.0.0 ENV CABAL_VERSION 3.0.0.0
#RUN git clone https://github.com/haskell/Cabal RUN curl -L http://home.smart-cactus.org/~ben/ghc/cabal-install-$CABAL_VERSION-aarch64-debian9-linux.tar.xz | tar -Jx && \
#WORKDIR /Cabal
#RUN git checkout cabal-install-v$CABAL_VERSION
#WORKDIR /Cabal/cabal-install
#RUN EXTRA_CONFIGURE_OPTS=--disable-optimization ./bootstrap.sh --global --no-doc
#RUN ls /Cabal/cabal-install/dist/build
RUN curl http://home.smart-cactus.org/~ben/ghc/cabal-install-$CABAL_VERSION-aarch64-debian9-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
ENV PATH /home/ghc/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH ENV PATH /home/ghc/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH
......
...@@ -20,16 +20,15 @@ RUN apt-get update \ ...@@ -20,16 +20,15 @@ RUN apt-get update \
ENV BOOT_LLVM_DIR /opt/llvm-bootstrap ENV BOOT_LLVM_DIR /opt/llvm-bootstrap
ENV BOOT_LLVM_VERSION 7.0.0 ENV BOOT_LLVM_VERSION 7.0.0
ENV PATH /usr/local/bin:$PATH ENV PATH /usr/local/bin:$PATH
RUN curl http://releases.llvm.org/$BOOT_LLVM_VERSION/clang+llvm-$BOOT_LLVM_VERSION-armv7a-linux-gnueabihf.tar.xz | tar -xJC . && \ RUN curl -L http://releases.llvm.org/$BOOT_LLVM_VERSION/clang+llvm-$BOOT_LLVM_VERSION-armv7a-linux-gnueabihf.tar.xz | tar -xJC . && \
mkdir $BOOT_LLVM_DIR && \ mkdir $BOOT_LLVM_DIR && \
cp -R clang+llvm*/* $BOOT_LLVM_DIR && \ cp -R clang+llvm*/* $BOOT_LLVM_DIR && \
rm -R clang+llvm* && \ rm -R clang+llvm* && \
$BOOT_LLVM_DIR/bin/llc --version $BOOT_LLVM_DIR/bin/llc --version
# GHC # GHC
# Use 8.8.1 to bootstrap, since earlier releases are especially buggy on AArch64 ENV GHC_VERSION 8.8.3
ENV GHC_VERSION 8.8.1 RUN curl -L https://downloads.haskell.org/ghc/$GHC_VERSION/ghc-$GHC_VERSION-armv7l-deb9-linux.tar.xz | tar -xJ
RUN curl https://downloads.haskell.org/ghc/$GHC_VERSION/ghc-$GHC_VERSION-armv7l-deb9-linux.tar.xz | tar -xJ
WORKDIR /ghc-$GHC_VERSION WORKDIR /ghc-$GHC_VERSION
RUN ./configure --prefix=/usr/local LLC=$BOOT_LLVM_DIR/bin/llc OPT=$BOOT_LLVM_DIR/bin/opt && \ RUN ./configure --prefix=/usr/local LLC=$BOOT_LLVM_DIR/bin/llc OPT=$BOOT_LLVM_DIR/bin/opt && \
make install make install
...@@ -41,7 +40,7 @@ RUN ghc --version ...@@ -41,7 +40,7 @@ RUN ghc --version
ENV LLVM_DIR /opt/llvm ENV LLVM_DIR /opt/llvm
ENV LLVM_VERSION 9.0.0 ENV LLVM_VERSION 9.0.0
ENV PATH $LLVM_DIR/bin:$PATH ENV PATH $LLVM_DIR/bin:$PATH
RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-armv7a-linux-gnueabihf.tar.xz | tar -xJC . && \ RUN curl -L http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-armv7a-linux-gnueabihf.tar.xz | tar -xJC . && \
mkdir $LLVM_DIR && \ mkdir $LLVM_DIR && \
cp -R clang+llvm*/* $LLVM_DIR && \ cp -R clang+llvm*/* $LLVM_DIR && \
rm -R clang+llvm* && \ rm -R clang+llvm* && \
...@@ -49,13 +48,7 @@ RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-armv7a- ...@@ -49,13 +48,7 @@ RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-armv7a-
# Cabal # Cabal
ENV CABAL_VERSION 3.0.0.0 ENV CABAL_VERSION 3.0.0.0
#RUN git clone https://github.com/haskell/Cabal RUN curl -L http://home.smart-cactus.org/~ben/ghc/cabal-install-$CABAL_VERSION-armv7l-debian9-linux.tar.xz | tar -Jx && \
#WORKDIR /Cabal
#RUN git checkout cabal-install-v$CABAL_VERSION
#WORKDIR /Cabal/cabal-install
#RUN EXTRA_CONFIGURE_OPTS=--disable-optimization ./bootstrap.sh --global --no-doc
#RUN ls /Cabal/cabal-install/dist/build
RUN curl http://home.smart-cactus.org/~ben/ghc/cabal-install-$CABAL_VERSION-armv7l-debian9-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
ENV PATH /home/ghc/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH ENV PATH /home/ghc/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH
......
...@@ -20,8 +20,8 @@ RUN apt-get update -qq \ ...@@ -20,8 +20,8 @@ RUN apt-get update -qq \
WORKDIR /tmp WORKDIR /tmp
# Get i386 GHC bindist for 32 bit CI builds. # Get i386 GHC bindist for 32 bit CI builds.
ENV GHC_VERSION 8.6.5 ENV GHC_VERSION 8.8.3
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-i386-deb9-linux.tar.xz | tar -Jx; RUN curl -L https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-i386-deb9-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION WORKDIR /tmp/ghc-$GHC_VERSION
RUN setarch i386 ./configure --prefix=/opt/ghc-i386/$GHC_VERSION CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \ RUN setarch i386 ./configure --prefix=/opt/ghc-i386/$GHC_VERSION CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
make install; \ make install; \
...@@ -30,8 +30,8 @@ ENV PATH /opt/ghc-i386/$GHC_VERSION/bin:$PATH ...@@ -30,8 +30,8 @@ ENV PATH /opt/ghc-i386/$GHC_VERSION/bin:$PATH
WORKDIR /tmp WORKDIR /tmp
# Get Cabal # Get Cabal
ENV CABAL_VERSION 2.4.1.0 ENV CABAL_VERSION 3.0.0.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-i386-unknown-linux.tar.xz | tar -Jx && \ RUN curl -L https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-i386-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
# Create a normal user. # Create a normal user.
......
...@@ -32,8 +32,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \ ...@@ -32,8 +32,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # Install GHC and cabal
ENV GHC_VERSION 8.6.5 ENV GHC_VERSION 8.8.3
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz | tar -Jx; RUN curl -L https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install; make install;
...@@ -43,15 +43,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION ...@@ -43,15 +43,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
# Get Cabal # Get Cabal
ENV CABAL_VERSION 2.4.1.0 ENV CABAL_VERSION 3.0.0.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ RUN curl -L https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
# LLVM # LLVM
ENV LLVM_DIR /opt/llvm ENV LLVM_DIR /opt/llvm
ENV LLVM_VERSION 9.0.0 ENV LLVM_VERSION 9.0.0
ENV PATH $LLVM_DIR/bin:$PATH ENV PATH $LLVM_DIR/bin:$PATH
RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC .; \ RUN curl -L http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC .; \
mkdir $LLVM_DIR && \ mkdir $LLVM_DIR && \
cp -R clang+llvm*/* $LLVM_DIR && \ cp -R clang+llvm*/* $LLVM_DIR && \
rm -R clang+llvm* && \ rm -R clang+llvm* && \
...@@ -77,7 +77,7 @@ RUN pip3 install mypy==0.701 ...@@ -77,7 +77,7 @@ RUN pip3 install mypy==0.701
USER ghc USER ghc
RUN cabal update RUN cabal update
ENV LINTER_COMMIT 265c74fb4f5a341e23dbe2d89a87a5a2516bf3e8 ENV LINTER_COMMIT b5650c094c98daec9416ceac92ca2cf3c099640f
RUN git clone https://gitlab.haskell.org/ghc/git-haskell-org-hooks && \ RUN git clone https://gitlab.haskell.org/ghc/git-haskell-org-hooks && \
git -C git-haskell-org-hooks checkout $LINTER_COMMIT git -C git-haskell-org-hooks checkout $LINTER_COMMIT
WORKDIR /home/ghc/git-haskell-org-hooks WORKDIR /home/ghc/git-haskell-org-hooks
......
...@@ -11,7 +11,7 @@ mkdir binutils ...@@ -11,7 +11,7 @@ mkdir binutils
cd binutils cd binutils
# Build binutils for target platform. # Build binutils for target platform.
curl https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS.tar.bz2 | tar xjf - curl -L https://ftp.gnu.org/gnu/binutils/binutils-$BINUTILS.tar.bz2 | tar xjf -
mkdir binutils-build mkdir binutils-build
cd binutils-build cd binutils-build
...@@ -32,9 +32,9 @@ case "$ARCH" in ...@@ -32,9 +32,9 @@ case "$ARCH" in
FREEBSD_ARCH=i386 FREEBSD_ARCH=i386
;; ;;
esac esac
URL=https://download.freebsd.org/ftp/releases/$FREEBSD_ARCH/$FREEBSD/base.txz URL=https://download.freebsd.org/ftp/releases/$FREEBSD_ARCH/$FREEBSD/base.txz
curl $URL | tar xJf - -C freebsd ./usr/include ./usr/lib ./lib curl -L $URL | tar xJf - -C freebsd ./usr/include ./usr/lib ./lib
dst=/usr/local/$ARCH-unknown-freebsd10 dst=/usr/local/$ARCH-unknown-freebsd10
...@@ -58,7 +58,7 @@ cp freebsd/lib/libncursesw.so.8 $dst/lib ...@@ -58,7 +58,7 @@ cp freebsd/lib/libncursesw.so.8 $dst/lib
# Install iconv port in target env. # Install iconv port in target env.
URL_ICONV=http://pkg.freebsd.org/FreeBSD:11:$FREEBSD_ARCH/latest/All/libiconv-1.14_11.txz URL_ICONV=http://pkg.freebsd.org/FreeBSD:11:$FREEBSD_ARCH/latest/All/libiconv-1.14_11.txz
curl $URL_ICONV | tar xJf - -C freebsd curl -L $URL_ICONV | tar xJf - -C freebsd
cp -r freebsd/usr/local/include $dst/ cp -r freebsd/usr/local/include $dst/
cp -d freebsd/usr/local/lib/* $dst/lib cp -d freebsd/usr/local/lib/* $dst/lib
...@@ -75,7 +75,7 @@ rm -rf freebsd ...@@ -75,7 +75,7 @@ rm -rf freebsd
# Build gcc for target platform. # Build gcc for target platform.
mkdir gcc mkdir gcc
cd gcc cd gcc
curl https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.gz | tar xzf - curl -L https://ftp.gnu.org/gnu/gcc/gcc-$GCC/gcc-$GCC.tar.gz | tar xzf -
cd gcc-$GCC cd gcc-$GCC
./contrib/download_prerequisites ./contrib/download_prerequisites
......
FROM alpine:3.10.2 FROM alpine:3.11.5
SHELL ["/bin/ash", "-eo", "pipefail", "-c"] SHELL ["/bin/ash", "-eo", "pipefail", "-c"]
...@@ -6,33 +6,38 @@ RUN echo "Installing GHC build dependencies..." && \ ...@@ -6,33 +6,38 @@ RUN echo "Installing GHC build dependencies..." && \
apk add --no-cache \ apk add --no-cache \
autoconf=~2.69 \ autoconf=~2.69 \
automake=~1.16 \ automake=~1.16 \
binutils-gold=~2.32 \ binutils-gold=~2.33 \
build-base=~0.5 \ build-base=~0.5 \
coreutils=~8.31 \ coreutils=~8.31 \
cpio=~2.12 \ cpio=~2.13 \
linux-headers=~4.19 \ linux-headers=~4.19 \
libffi-dev=~3.2 \ libffi-dev=~3.2 \
musl-dev=~1 \ musl-dev=~1 \
ncurses-dev=~6.1 \ ncurses-dev=~6.1 \
python3=~3.7 \ python3=~3.8 \
py3-sphinx=~1.8 \ py3-sphinx=~2.2 \
zlib-dev=~1.2 \ zlib-dev=~1.2 \
xz=~5.2 \ xz=~5.2 \
bash=~5.0 \ bash=~5.0 \
git=~2.22 \ git=~2.24 \
wget=~1.20 \ wget=~1.20 \
sudo=~1.8 \ sudo=~1.8 \
grep=~3 \ grep=~3 \
curl=~7.66 \ curl=~7.67 \
gmp-dev=~6.1 \ gmp-dev=~6.1 \
cabal=~2.4 cabal=~2.4 \
ghc=~8.6
WORKDIR /tmp WORKDIR /tmp
# Install GHC # Install GHC
ENV GHC_VERSION 8.6.5 ENV GHC_VERSION 8.8.3
# NB: This is not an official bindist, but rather an alternative bindist taken # NB: This is not an official bindist, but rather an alternative bindist taken
# from https://github.com/redneb/ghc-alt-libc. # from https://github.com/redneb/ghc-alt-libc.
RUN curl -L https://github.com/redneb/ghc-alt-libc/releases/download/ghc-$GHC_VERSION-musl/ghc-$GHC_VERSION-x86_64-unknown-linux-musl.tar.xz | tar -Jx; RUN curl -L https://github.com/redneb/ghc-alt-libc/releases/download/ghc-$GHC_VERSION-musl/ghc-$GHC_VERSION-x86_64-unknown-linux-musl.tar.xz | tar -Jx;
# The ghc-alt-libc bindist requires libtinfow.so.6, so symlink what Alpine
# provides. This hack can likely be removed when we start using GHC's native
# Alpine bindists in the future.
RUN ln -s /usr/lib/libncursesw.so.6 /usr/lib/libtinfow.so.6
WORKDIR /tmp/ghc-$GHC_VERSION WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --disable-ld-override --prefix=/opt/ghc/$GHC_VERSION; \ RUN ./configure --disable-ld-override --prefix=/opt/ghc/$GHC_VERSION; \
make install; make install;
...@@ -47,10 +52,15 @@ RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc ...@@ -47,10 +52,15 @@ RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
USER ghc USER ghc
WORKDIR /home/ghc/ WORKDIR /home/ghc/
# Build Haskell tools # Install cabal
ENV BOOT_GHC /usr/bin/ghc
RUN cabal v2-update && \ RUN cabal v2-update && \
cabal v2-install hscolour happy alex --constraint 'happy ^>= 1.19.10' cabal v2-install cabal-install --constraint 'cabal-install ^>= 3.0' -w $BOOT_GHC
ENV PATH /home/ghc/.cabal/bin:$PATH ENV PATH /home/ghc/.cabal/bin:$PATH
# Build Haskell tools
RUN cabal user-config update && \
cabal v2-install hscolour happy alex --constraint 'happy ^>= 1.19.10'
ENV SPHINXBUILD /usr/bin/sphinx-build-3 ENV SPHINXBUILD /usr/bin/sphinx-build-3
CMD ["bash"] CMD ["bash"]
...@@ -32,8 +32,8 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf ...@@ -32,8 +32,8 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # Install GHC and cabal
ENV GHC_VERSION 8.6.5 ENV GHC_VERSION 8.8.3
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-centos7-linux.tar.xz | tar -Jx RUN curl -L https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-centos7-linux.tar.xz | tar -Jx
WORKDIR /tmp/ghc-$GHC_VERSION WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION && make install RUN ./configure --prefix=/opt/ghc/$GHC_VERSION && make install
...@@ -43,8 +43,8 @@ ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH ...@@ -43,8 +43,8 @@ ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
WORKDIR /tmp WORKDIR /tmp
# Get Cabal # Get Cabal
ENV CABAL_VERSION 2.4.1.0 ENV CABAL_VERSION 3.0.0.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ RUN curl -L https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
# Create a normal user. # Create a normal user.
......
...@@ -33,8 +33,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \ ...@@ -33,8 +33,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # Install GHC and cabal
ENV GHC_VERSION 8.8.1 ENV GHC_VERSION 8.8.1
#RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-fedora27-linux.tar.xz | tar -Jx; #RUN curl -L https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb10-linux.tar.xz | tar -Jx;
RUN curl http://home.smart-cactus.org/~ben/ghc/release-prep/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb10-linux.tar.xz | tar -Jx; RUN curl -L http://home.smart-cactus.org/~ben/ghc/release-prep/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb10-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install; make install;
...@@ -44,15 +44,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION ...@@ -44,15 +44,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
# Get Cabal # Get Cabal
ENV CABAL_VERSION 2.4.1.0 ENV CABAL_VERSION 3.0.0.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ RUN curl -L https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
# LLVM # LLVM
ENV LLVM_DIR /opt/llvm ENV LLVM_DIR /opt/llvm
ENV LLVM_VERSION 7.0.0 ENV LLVM_VERSION 7.0.0
ENV PATH $LLVM_DIR/bin:$PATH ENV PATH $LLVM_DIR/bin:$PATH
RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC .; \ RUN curl -L http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC .; \
mkdir $LLVM_DIR && \ mkdir $LLVM_DIR && \
cp -R clang+llvm*/* $LLVM_DIR && \ cp -R clang+llvm*/* $LLVM_DIR && \
rm -R clang+llvm* && \ rm -R clang+llvm* && \
......
...@@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy zlib1g-dev ...@@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy zlib1g-dev
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # Install GHC and cabal
ENV GHC_VERSION 8.6.5 ENV GHC_VERSION 8.8.3
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb8-linux.tar.xz | tar -Jx; RUN curl -L https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb8-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install; make install;
...@@ -29,8 +29,8 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION ...@@ -29,8 +29,8 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
# Get Cabal # Get Cabal
ENV CABAL_VERSION 2.4.1.0 ENV CABAL_VERSION 3.0.0.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ RUN curl -L https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
# Create a normal user. # Create a normal user.
......
...@@ -32,8 +32,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \ ...@@ -32,8 +32,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # Install GHC and cabal
ENV GHC_VERSION 8.6.5 ENV GHC_VERSION 8.8.3
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz | tar -Jx; RUN curl -L https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install; make install;
...@@ -43,15 +43,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION ...@@ -43,15 +43,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION
ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
# Get Cabal # Get Cabal
ENV CABAL_VERSION 2.4.1.0 ENV CABAL_VERSION 3.0.0.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ RUN curl -L https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
# LLVM # LLVM
ENV LLVM_DIR /opt/llvm ENV LLVM_DIR /opt/llvm
ENV LLVM_VERSION 9.0.0 ENV LLVM_VERSION 9.0.0
ENV PATH $LLVM_DIR/bin:$PATH ENV PATH $LLVM_DIR/bin:$PATH
RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC .; \ RUN curl -L http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC .; \
mkdir $LLVM_DIR && \ mkdir $LLVM_DIR && \
cp -R clang+llvm*/* $LLVM_DIR && \ cp -R clang+llvm*/* $LLVM_DIR && \
rm -R clang+llvm* && \ rm -R clang+llvm* && \
......
...@@ -32,8 +32,8 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf ...@@ -32,8 +32,8 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
WORKDIR /tmp WORKDIR /tmp
# Install GHC and cabal # Install GHC and cabal
ENV GHC_VERSION 8.6.5 ENV GHC_VERSION 8.8.3
RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-fedora27-linux.tar.xz | tar -Jx; RUN curl -L https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-fedora27-linux.tar.xz | tar -Jx;
WORKDIR /tmp/ghc-$GHC_VERSION WORKDIR /tmp/ghc-$GHC_VERSION
RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \
make install; \ make install; \
...@@ -42,8 +42,8 @@ ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH ...@@ -42,8 +42,8 @@ ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH
WORKDIR /tmp WORKDIR /tmp
# Get Cabal # Get Cabal
ENV CABAL_VERSION 2.4.1.0 ENV CABAL_VERSION 3.0.0.0
RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ RUN curl -L https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \
mv cabal /usr/local/bin/cabal mv cabal /usr/local/bin/cabal
# Create a normal user. # Create a normal user.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment