Update CI images to GHC-8.4.4 & cabal-install-2.4.1.0
authorOleg Grenrus <oleg.grenrus@iki.fi>
Mon, 18 Feb 2019 20:44:54 +0000 (22:44 +0200)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Sat, 23 Feb 2019 04:41:25 +0000 (23:41 -0500)
Use official bindists, except for Debian 9/Stretch
http://downloads.haskell.org/debian/ is used. (There are no recent
GHC/cabal-install for Debian 8/Jessie there)

Use v2-update/v2-install to install Haskell tools.

Try to unify structure of the different Dockerfiles, incl installing GHC
in one step (this will prevent sublayers from existing, making final
image slightly smaller)

.circleci/images/aarch64-linux-deb9/Dockerfile
.circleci/images/i386-linux-deb8/Dockerfile
.circleci/images/i386-linux-deb9/Dockerfile
.circleci/images/x86_64-linux-centos7/Dockerfile
.circleci/images/x86_64-linux-deb8/Dockerfile
.circleci/images/x86_64-linux-deb9/Dockerfile
.circleci/images/x86_64-linux-fedora27/Dockerfile

index f871f75..0920938 100644 (file)
@@ -57,6 +57,7 @@ ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
 RUN adduser ghc --gecos "GHC builds" --disabled-password
 RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
 USER ghc
+WORKDIR /home/ghc/
 
 # Build Haskell tools
 RUN cabal update && \
index c8e5181..f36c9d5 100644 (file)
@@ -19,27 +19,26 @@ RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
 RUN apt-get install -qy libgmp-dev:i386
 
 # Get i386 GHC bindist for 32 bit CI builds.
-RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-i386-deb8-linux.tar.xz | tar -Jx
-RUN cd /tmp/ghc-8.4.2 && setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.2 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux
-RUN cd /tmp/ghc-8.4.2 && make install
-RUN rm -rf /tmp/ghc-8.4.2
-ENV PATH /opt/ghc-i386/8.4.2/bin:$PATH
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz | tar -Jx; \
+    cd /tmp/ghc-8.4.4 && setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.4 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
+    cd /tmp/ghc-8.4.4 && make install; \
+    rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc-i386/8.4.4/bin:$PATH
 
 # Get Cabal
 RUN cd /tmp && \
-    curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-i386-unknown-linux.tar.gz | tar -zx && \
+    curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz | tar -Jx && \
     mv cabal /usr/local/bin/cabal
 
 # Create a normal user.
 RUN adduser ghc --gecos "GHC builds" --disabled-password
 RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
 USER ghc
+WORKDIR /home/ghc/
 
 # Build Haskell tools
-RUN cabal update && \
-    cabal install hscolour happy alex
+RUN cabal v2-update && \
+    cabal v2-install hscolour happy alex
 ENV PATH /home/ghc/.cabal/bin:$PATH
 
-WORKDIR /home/ghc/
-
 CMD ["bash"]
index c8e5181..69b6bdf 100644 (file)
@@ -1,4 +1,4 @@
-FROM i386/debian:jessie
+FROM i386/debian:stretch
 
 ENV LANG C.UTF-8
 
@@ -19,27 +19,26 @@ RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
 RUN apt-get install -qy libgmp-dev:i386
 
 # Get i386 GHC bindist for 32 bit CI builds.
-RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-i386-deb8-linux.tar.xz | tar -Jx
-RUN cd /tmp/ghc-8.4.2 && setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.2 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux
-RUN cd /tmp/ghc-8.4.2 && make install
-RUN rm -rf /tmp/ghc-8.4.2
-ENV PATH /opt/ghc-i386/8.4.2/bin:$PATH
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-i386-deb8-linux.tar.xz | tar -Jx; \
+    cd /tmp/ghc-8.4.4 && setarch i386 ./configure --prefix=/opt/ghc-i386/8.4.4 CFLAGS=-m32 --target=i386-unknown-linux --build=i386-unknown-linux --host=i386-unknown-linux; \
+    cd /tmp/ghc-8.4.4 && make install; \
+    rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc-i386/8.4.4/bin:$PATH
 
 # Get Cabal
 RUN cd /tmp && \
-    curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-i386-unknown-linux.tar.gz | tar -zx && \
+    curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-i386-unknown-linux.tar.xz | tar -Jx && \
     mv cabal /usr/local/bin/cabal
 
 # Create a normal user.
 RUN adduser ghc --gecos "GHC builds" --disabled-password
 RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
 USER ghc
+WORKDIR /home/ghc/
 
 # Build Haskell tools
-RUN cabal update && \
-    cabal install hscolour happy alex
+RUN cabal v2-update && \
+    cabal v2-install hscolour happy alex
 ENV PATH /home/ghc/.cabal/bin:$PATH
 
-WORKDIR /home/ghc/
-
 CMD ["bash"]
index 32acea5..5864949 100644 (file)
@@ -33,12 +33,16 @@ ENV PATH /usr/libexec/python3-sphinx:$PATH
 RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
 
 # Install GHC and cabal
-RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz | tar -Jx
-RUN cd /tmp/ghc-8.4.2 && ./configure --prefix=/opt/ghc/8.4.2
-RUN cd /tmp/ghc-8.4.2 && make install
-RUN mkdir -p /opt/cabal/bin
-RUN cd /opt/cabal/bin && curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-x86_64-unknown-linux.tar.gz | tar -zx
-ENV PATH /opt/ghc/8.4.2/bin:/opt/cabal/bin:$PATH
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-centos70-linux.tar.xz | tar -Jx; \
+    cd /tmp/ghc-8.4.4 && ./configure --prefix=/opt/ghc/8.4.4; \
+    cd /tmp/ghc-8.4.4 && make install; \
+    rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc/8.4.4/bin:$PATH
+
+# Get Cabal
+RUN cd /tmp && \
+    curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
+    mv cabal /usr/local/bin/cabal
 
 # Create a normal user.
 RUN adduser ghc --comment "GHC builds"
@@ -46,9 +50,9 @@ RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
 USER ghc
 WORKDIR /home/ghc/
 
-# Install Alex, Happy, and HsColor with Cabal
-RUN cabal update && \
-    cabal install hscolour happy alex
+# Build Haskell tools
+RUN cabal v2-update && \
+    cabal v2-install hscolour happy alex
 ENV PATH /home/ghc/.cabal/bin:$PATH
 
 CMD ["bash"]
index 0491ad9..7797707 100644 (file)
@@ -2,34 +2,37 @@ FROM debian:jessie
 
 ENV LANG C.UTF-8
 
-RUN echo 'deb http://ppa.launchpad.net/hvr/ghc/ubuntu trusty main' > /etc/apt/sources.list.d/ghc.list
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286
-RUN apt-get update -qq
-
 # Core build utilities
+RUN apt-get update -qq
 RUN apt-get install -qy zlib1g-dev libtinfo-dev libsqlite3-0 libsqlite3-dev \
     ca-certificates g++ git make automake autoconf gcc \
-    perl python3 texinfo xz-utils lbzip2 patch openssh-client sudo \
+    perl python3 texinfo xz-utils lbzip2 patch openssh-client sudo libgmp-dev \
     jq wget curl
 
 # Documentation tools
 RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
 
-# Basic Haskell toolchain
-RUN apt-get install -qy cabal-install-2.2 ghc-8.4.2
+# Install GHC and cabal
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-deb8-linux.tar.xz | tar -Jx; \
+    cd /tmp/ghc-8.4.4 && ./configure --prefix=/opt/ghc/8.4.4; \
+    cd /tmp/ghc-8.4.4 && make install; \
+    rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc/8.4.4/bin:$PATH
 
-ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
+# Get Cabal
+RUN cd /tmp && \
+    curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
+    mv cabal /usr/local/bin/cabal
 
 # Create a normal user.
 RUN adduser ghc --gecos "GHC builds" --disabled-password
 RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
 USER ghc
+WORKDIR /home/ghc/
 
 # Build Haskell tools
-RUN cabal update && \
-    cabal install hscolour happy alex
+RUN cabal v2-update && \
+    cabal v2-install hscolour happy alex
 ENV PATH /home/ghc/.cabal/bin:$PATH
 
-WORKDIR /home/ghc/
-
 CMD ["bash"]
index 5341abe..15ae41a 100644 (file)
@@ -4,8 +4,9 @@ ENV LANG C.UTF-8
 
 RUN apt-get update -qq; apt-get install -qy gnupg
 
-RUN echo 'deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main' > /etc/apt/sources.list.d/ghc.list
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286
+# http://downloads.haskell.org/debian/
+RUN echo 'deb http://downloads.haskell.org/debian stretch main' > /etc/apt/sources.list.d/ghc.list
+RUN apt-key adv --keyserver keyserver.ubuntu.com  --recv-keys BA3CBA3FFE22B574
 RUN apt-get update -qq
 
 # Core build utilities
@@ -18,9 +19,9 @@ RUN apt-get install -qy zlib1g-dev libtinfo-dev libsqlite3-0 libsqlite3-dev \
 RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
 
 # Basic Haskell toolchain
-RUN apt-get install -qy cabal-install-2.2 ghc-8.4.2
+RUN apt-get install -qy cabal-install-2.4 ghc-8.4.4
 
-ENV PATH /home/ghc/.local/bin:/opt/cabal/2.2/bin:/opt/ghc/8.4.2/bin:$PATH
+ENV PATH /home/ghc/.local/bin:/opt/cabal/2.4/bin:/opt/ghc/8.4.4/bin:$PATH
 
 # LLVM
 ENV LLVM_TARBALL http://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
@@ -35,12 +36,11 @@ RUN curl $LLVM_TARBALL | tar -xJC ..; \
 RUN adduser ghc --gecos "GHC builds" --disabled-password
 RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
 USER ghc
+WORKDIR /home/ghc/
 
 # Build Haskell tools
-RUN cabal update && \
-    cabal install hscolour happy alex
+RUN cabal v2-update && \
+    cabal v2-install hscolour happy alex
 ENV PATH /home/ghc/.cabal/bin:$PATH
 
-WORKDIR /home/ghc/
-
 CMD ["bash"]
index 6fad77f..3d494c2 100644 (file)
@@ -29,12 +29,16 @@ ENV PATH /usr/libexec/python3-sphinx:$PATH
 RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
 
 # Install GHC and cabal
-RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz | tar -Jx
-RUN cd /tmp/ghc-8.4.2 && ./configure --prefix=/opt/ghc/8.4.2
-RUN cd /tmp/ghc-8.4.2 && make install
-RUN mkdir -p /opt/cabal/bin
-RUN cd /opt/cabal/bin && curl https://www.haskell.org/cabal/release/cabal-install-2.2.0.0/cabal-install-2.2.0.0-x86_64-unknown-linux.tar.gz | tar -zx
-ENV PATH /opt/ghc/8.4.2/bin:/opt/cabal/bin:$PATH
+RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.4/ghc-8.4.4-x86_64-fedora27-linux.tar.xz | tar -Jx; \
+    cd /tmp/ghc-8.4.4 && ./configure --prefix=/opt/ghc/8.4.4; \
+    cd /tmp/ghc-8.4.4 && make install; \
+    rm -rf /tmp/ghc-8.4.4
+ENV PATH /opt/ghc/8.4.4/bin:$PATH
+
+# Get Cabal
+RUN cd /tmp && \
+    curl https://downloads.haskell.org/cabal/cabal-install-2.4.1.0/cabal-install-2.4.1.0-x86_64-unknown-linux.tar.xz | tar -Jx && \
+    mv cabal /usr/local/bin/cabal
 
 # Create a normal user.
 RUN adduser ghc --comment "GHC builds"
@@ -42,9 +46,9 @@ RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
 USER ghc
 WORKDIR /home/ghc/
 
-# Install Alex, Happy, and HsColor with Cabal
-RUN cabal update && \
-    cabal install hscolour happy alex
+# Build Haskell tools
+RUN cabal v2-update && \
+    cabal v2-install hscolour happy alex
 ENV PATH /home/ghc/.cabal/bin:$PATH
 
 CMD ["bash"]