Grab CI configuration from master
[ghc.git] / .circleci / images / i386-linux-deb8 / Dockerfile
1 FROM i386/debian:jessie
2
3 ENV LANG C.UTF-8
4
5 RUN echo 'deb http://ppa.launchpad.net/hvr/ghc/ubuntu trusty main' > /etc/apt/sources.list.d/ghc.list
6 RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F6F88286
7 RUN apt-get update -qq
8
9 # Core build utilities
10 RUN apt-get install -qy zlib1g-dev libtinfo-dev libsqlite3-0 libsqlite3-dev \
11     ca-certificates g++ git make automake autoconf gcc \
12     perl python3 texinfo xz-utils lbzip2 patch openssh-client sudo \
13     jq wget curl
14
15 # Documentation tools
16 RUN apt-get install -qy python3-sphinx texlive-xetex texlive-latex-extra
17
18 # Core build utilities
19 RUN apt-get install -qy libgmp-dev:i386
20
21 # Get i386 GHC bindist for 32 bit CI builds.
22 RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-i386-deb8-linux.tar.xz | tar -Jx
23 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
24 RUN cd /tmp/ghc-8.4.2 && make install
25 RUN rm -rf /tmp/ghc-8.4.2
26 ENV PATH /opt/ghc-i386/8.4.2/bin:$PATH
27
28 # Get Cabal
29 RUN cd /tmp && \
30     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 && \
31     mv cabal /usr/local/bin/cabal
32
33 # Create a normal user.
34 RUN adduser ghc --gecos "GHC builds" --disabled-password
35 RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
36 USER ghc
37
38 # Build Haskell tools
39 RUN cabal update && \
40     cabal install hscolour happy alex
41 ENV PATH /home/ghc/.cabal/bin:$PATH
42
43 WORKDIR /home/ghc/
44
45 CMD ["bash"]