From 93d2060d6ca7c94b8ebf16a225dcc6909781a86e Mon Sep 17 00:00:00 2001 From: Ryan Scott Date: Wed, 25 Mar 2020 16:24:55 -0400 Subject: [PATCH] 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. --- aarch64-linux-deb9/Dockerfile | 17 +++++----------- armv7-linux-deb9/Dockerfile | 17 +++++----------- i386-linux-deb9/Dockerfile | 8 ++++---- linters/Dockerfile | 12 ++++++------ x86_64-freebsd/build-toolchain.sh | 10 +++++----- x86_64-linux-alpine/Dockerfile | 32 ++++++++++++++++++++----------- x86_64-linux-centos7/Dockerfile | 8 ++++---- x86_64-linux-deb10/Dockerfile | 10 +++++----- x86_64-linux-deb8/Dockerfile | 8 ++++---- x86_64-linux-deb9/Dockerfile | 10 +++++----- x86_64-linux-fedora27/Dockerfile | 8 ++++---- 11 files changed, 68 insertions(+), 72 deletions(-) diff --git a/aarch64-linux-deb9/Dockerfile b/aarch64-linux-deb9/Dockerfile index 2ae6081..e481de5 100644 --- a/aarch64-linux-deb9/Dockerfile +++ b/aarch64-linux-deb9/Dockerfile @@ -19,16 +19,15 @@ RUN apt-get update \ ENV BOOT_LLVM_DIR /opt/llvm-bootstrap ENV BOOT_LLVM_VERSION 7.0.0 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 && \ cp -R clang+llvm*/* $BOOT_LLVM_DIR && \ rm -R clang+llvm* && \ $BOOT_LLVM_DIR/bin/llc --version # GHC -# Use 8.8.1 to bootstrap, since earlier releases are especially buggy on AArch64 -ENV GHC_VERSION 8.8.1 -RUN curl http://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-aarch64-deb9-linux.tar.xz | tar -xJ +ENV GHC_VERSION 8.8.3 +RUN curl -L http://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-aarch64-deb9-linux.tar.xz | tar -xJ WORKDIR /ghc-$GHC_VERSION RUN ./configure --prefix=/usr/local LLC=$BOOT_LLVM_DIR/bin/llc OPT=$BOOT_LLVM_DIR/bin/opt && \ make install @@ -40,7 +39,7 @@ RUN ghc --version ENV LLVM_DIR /opt/llvm ENV LLVM_VERSION 9.0.0 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 && \ cp -R clang+llvm*/* $LLVM_DIR && \ rm -R clang+llvm* && \ @@ -48,13 +47,7 @@ RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-aarch64 # Cabal ENV CABAL_VERSION 3.0.0.0 -#RUN git clone https://github.com/haskell/Cabal -#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 && \ +RUN curl -L http://home.smart-cactus.org/~ben/ghc/cabal-install-$CABAL_VERSION-aarch64-debian9-linux.tar.xz | tar -Jx && \ mv cabal /usr/local/bin/cabal ENV PATH /home/ghc/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH diff --git a/armv7-linux-deb9/Dockerfile b/armv7-linux-deb9/Dockerfile index fb3627d..122ade6 100644 --- a/armv7-linux-deb9/Dockerfile +++ b/armv7-linux-deb9/Dockerfile @@ -20,16 +20,15 @@ RUN apt-get update \ ENV BOOT_LLVM_DIR /opt/llvm-bootstrap ENV BOOT_LLVM_VERSION 7.0.0 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 && \ cp -R clang+llvm*/* $BOOT_LLVM_DIR && \ rm -R clang+llvm* && \ $BOOT_LLVM_DIR/bin/llc --version # GHC -# Use 8.8.1 to bootstrap, since earlier releases are especially buggy on AArch64 -ENV GHC_VERSION 8.8.1 -RUN curl https://downloads.haskell.org/ghc/$GHC_VERSION/ghc-$GHC_VERSION-armv7l-deb9-linux.tar.xz | tar -xJ +ENV GHC_VERSION 8.8.3 +RUN curl -L https://downloads.haskell.org/ghc/$GHC_VERSION/ghc-$GHC_VERSION-armv7l-deb9-linux.tar.xz | tar -xJ WORKDIR /ghc-$GHC_VERSION RUN ./configure --prefix=/usr/local LLC=$BOOT_LLVM_DIR/bin/llc OPT=$BOOT_LLVM_DIR/bin/opt && \ make install @@ -41,7 +40,7 @@ RUN ghc --version ENV LLVM_DIR /opt/llvm ENV LLVM_VERSION 9.0.0 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 && \ cp -R clang+llvm*/* $LLVM_DIR && \ rm -R clang+llvm* && \ @@ -49,13 +48,7 @@ RUN curl http://releases.llvm.org/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-armv7a- # Cabal ENV CABAL_VERSION 3.0.0.0 -#RUN git clone https://github.com/haskell/Cabal -#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 && \ +RUN curl -L http://home.smart-cactus.org/~ben/ghc/cabal-install-$CABAL_VERSION-armv7l-debian9-linux.tar.xz | tar -Jx && \ mv cabal /usr/local/bin/cabal ENV PATH /home/ghc/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH diff --git a/i386-linux-deb9/Dockerfile b/i386-linux-deb9/Dockerfile index 312b5b2..97c6037 100644 --- a/i386-linux-deb9/Dockerfile +++ b/i386-linux-deb9/Dockerfile @@ -20,8 +20,8 @@ RUN apt-get update -qq \ WORKDIR /tmp # Get i386 GHC bindist for 32 bit CI builds. -ENV GHC_VERSION 8.6.5 -RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-i386-deb9-linux.tar.xz | tar -Jx; +ENV GHC_VERSION 8.8.3 +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 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; \ @@ -30,8 +30,8 @@ ENV PATH /opt/ghc-i386/$GHC_VERSION/bin:$PATH WORKDIR /tmp # Get Cabal -ENV CABAL_VERSION 2.4.1.0 -RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-i386-unknown-linux.tar.xz | tar -Jx && \ +ENV CABAL_VERSION 3.0.0.0 +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 # Create a normal user. diff --git a/linters/Dockerfile b/linters/Dockerfile index 279b75c..e866b29 100644 --- a/linters/Dockerfile +++ b/linters/Dockerfile @@ -32,8 +32,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \ WORKDIR /tmp # Install GHC and cabal -ENV GHC_VERSION 8.6.5 -RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz | tar -Jx; +ENV GHC_VERSION 8.8.3 +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 RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ make install; @@ -43,15 +43,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH # Get Cabal -ENV CABAL_VERSION 2.4.1.0 -RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ +ENV CABAL_VERSION 3.0.0.0 +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 # LLVM ENV LLVM_DIR /opt/llvm ENV LLVM_VERSION 9.0.0 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 && \ cp -R clang+llvm*/* $LLVM_DIR && \ rm -R clang+llvm* && \ @@ -77,7 +77,7 @@ RUN pip3 install mypy==0.701 USER ghc RUN cabal update -ENV LINTER_COMMIT 265c74fb4f5a341e23dbe2d89a87a5a2516bf3e8 +ENV LINTER_COMMIT b5650c094c98daec9416ceac92ca2cf3c099640f RUN git clone https://gitlab.haskell.org/ghc/git-haskell-org-hooks && \ git -C git-haskell-org-hooks checkout $LINTER_COMMIT WORKDIR /home/ghc/git-haskell-org-hooks diff --git a/x86_64-freebsd/build-toolchain.sh b/x86_64-freebsd/build-toolchain.sh index e7744d0..778c76b 100755 --- a/x86_64-freebsd/build-toolchain.sh +++ b/x86_64-freebsd/build-toolchain.sh @@ -11,7 +11,7 @@ mkdir binutils cd binutils # 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 cd binutils-build @@ -32,9 +32,9 @@ case "$ARCH" in FREEBSD_ARCH=i386 ;; esac - + 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 @@ -58,7 +58,7 @@ cp freebsd/lib/libncursesw.so.8 $dst/lib # Install iconv port in target env. 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 -d freebsd/usr/local/lib/* $dst/lib @@ -75,7 +75,7 @@ rm -rf freebsd # Build gcc for target platform. mkdir 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 ./contrib/download_prerequisites diff --git a/x86_64-linux-alpine/Dockerfile b/x86_64-linux-alpine/Dockerfile index 12abb8d..a135960 100644 --- a/x86_64-linux-alpine/Dockerfile +++ b/x86_64-linux-alpine/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.10.2 +FROM alpine:3.11.5 SHELL ["/bin/ash", "-eo", "pipefail", "-c"] @@ -6,33 +6,38 @@ RUN echo "Installing GHC build dependencies..." && \ apk add --no-cache \ autoconf=~2.69 \ automake=~1.16 \ - binutils-gold=~2.32 \ + binutils-gold=~2.33 \ build-base=~0.5 \ coreutils=~8.31 \ - cpio=~2.12 \ + cpio=~2.13 \ linux-headers=~4.19 \ libffi-dev=~3.2 \ musl-dev=~1 \ ncurses-dev=~6.1 \ - python3=~3.7 \ - py3-sphinx=~1.8 \ + python3=~3.8 \ + py3-sphinx=~2.2 \ zlib-dev=~1.2 \ xz=~5.2 \ bash=~5.0 \ - git=~2.22 \ + git=~2.24 \ wget=~1.20 \ sudo=~1.8 \ grep=~3 \ - curl=~7.66 \ + curl=~7.67 \ gmp-dev=~6.1 \ - cabal=~2.4 + cabal=~2.4 \ + ghc=~8.6 WORKDIR /tmp # 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 # 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; +# 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 RUN ./configure --disable-ld-override --prefix=/opt/ghc/$GHC_VERSION; \ make install; @@ -47,10 +52,15 @@ RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc USER ghc WORKDIR /home/ghc/ -# Build Haskell tools +# Install cabal +ENV BOOT_GHC /usr/bin/ghc 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 + +# 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 CMD ["bash"] diff --git a/x86_64-linux-centos7/Dockerfile b/x86_64-linux-centos7/Dockerfile index 800b2a9..d9acfb1 100644 --- a/x86_64-linux-centos7/Dockerfile +++ b/x86_64-linux-centos7/Dockerfile @@ -32,8 +32,8 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf WORKDIR /tmp # Install GHC and cabal -ENV GHC_VERSION 8.6.5 -RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-centos7-linux.tar.xz | tar -Jx +ENV GHC_VERSION 8.8.3 +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 RUN ./configure --prefix=/opt/ghc/$GHC_VERSION && make install @@ -43,8 +43,8 @@ ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH WORKDIR /tmp # Get Cabal -ENV CABAL_VERSION 2.4.1.0 -RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ +ENV CABAL_VERSION 3.0.0.0 +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 # Create a normal user. diff --git a/x86_64-linux-deb10/Dockerfile b/x86_64-linux-deb10/Dockerfile index 3ec0579..8304f26 100644 --- a/x86_64-linux-deb10/Dockerfile +++ b/x86_64-linux-deb10/Dockerfile @@ -33,8 +33,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \ WORKDIR /tmp # Install GHC and cabal 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 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 https://downloads.haskell.org/~ghc/$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 RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ make install; @@ -44,15 +44,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH # Get Cabal -ENV CABAL_VERSION 2.4.1.0 -RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ +ENV CABAL_VERSION 3.0.0.0 +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 # LLVM ENV LLVM_DIR /opt/llvm ENV LLVM_VERSION 7.0.0 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 && \ cp -R clang+llvm*/* $LLVM_DIR && \ rm -R clang+llvm* && \ diff --git a/x86_64-linux-deb8/Dockerfile b/x86_64-linux-deb8/Dockerfile index a3c1726..c26b3ae 100644 --- a/x86_64-linux-deb8/Dockerfile +++ b/x86_64-linux-deb8/Dockerfile @@ -18,8 +18,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy zlib1g-dev WORKDIR /tmp # Install GHC and cabal -ENV GHC_VERSION 8.6.5 -RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb8-linux.tar.xz | tar -Jx; +ENV GHC_VERSION 8.8.3 +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 RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ make install; @@ -29,8 +29,8 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH # Get Cabal -ENV CABAL_VERSION 2.4.1.0 -RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ +ENV CABAL_VERSION 3.0.0.0 +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 # Create a normal user. diff --git a/x86_64-linux-deb9/Dockerfile b/x86_64-linux-deb9/Dockerfile index d54236d..611c838 100644 --- a/x86_64-linux-deb9/Dockerfile +++ b/x86_64-linux-deb9/Dockerfile @@ -32,8 +32,8 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qy \ WORKDIR /tmp # Install GHC and cabal -ENV GHC_VERSION 8.6.5 -RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-deb9-linux.tar.xz | tar -Jx; +ENV GHC_VERSION 8.8.3 +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 RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ make install; @@ -43,15 +43,15 @@ RUN rm -rf /tmp/ghc-$GHC_VERSION ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH # Get Cabal -ENV CABAL_VERSION 2.4.1.0 -RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ +ENV CABAL_VERSION 3.0.0.0 +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 # LLVM ENV LLVM_DIR /opt/llvm ENV LLVM_VERSION 9.0.0 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 && \ cp -R clang+llvm*/* $LLVM_DIR && \ rm -R clang+llvm* && \ diff --git a/x86_64-linux-fedora27/Dockerfile b/x86_64-linux-fedora27/Dockerfile index 185b6e9..e08be39 100644 --- a/x86_64-linux-fedora27/Dockerfile +++ b/x86_64-linux-fedora27/Dockerfile @@ -32,8 +32,8 @@ RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf WORKDIR /tmp # Install GHC and cabal -ENV GHC_VERSION 8.6.5 -RUN curl https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-fedora27-linux.tar.xz | tar -Jx; +ENV GHC_VERSION 8.8.3 +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 RUN ./configure --prefix=/opt/ghc/$GHC_VERSION; \ make install; \ @@ -42,8 +42,8 @@ ENV PATH /opt/ghc/$GHC_VERSION/bin:$PATH WORKDIR /tmp # Get Cabal -ENV CABAL_VERSION 2.4.1.0 -RUN curl https://downloads.haskell.org/cabal/cabal-install-$CABAL_VERSION/cabal-install-$CABAL_VERSION-x86_64-unknown-linux.tar.xz | tar -Jx && \ +ENV CABAL_VERSION 3.0.0.0 +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 # Create a normal user. -- GitLab