circleci: Fix documentation building
[ghc.git] / .circleci / images / x86_64-linux-fedora / Dockerfile
1 FROM fedora:27
2
3 ENV LANG C.UTF-8
4
5 # Core build utilities
6 RUN dnf -y install coreutils binutils which git make \
7     automake autoconf gcc perl python3 texinfo xz lbzip2 \
8     patch openssh-clients sudo curl zlib-devel sqlite \
9     ncurses-compat-libs gmp-devel ncurses-devel gcc-c++ findutils
10
11 # Documentation tools
12 RUN dnf -y install python3-sphinx \
13     texlive texlive-latex texlive-xetex \
14     texlive-collection-latex texlive-collection-latexrecommended \
15     texlive-xetex-def texlive-collection-xetex \
16     python-sphinx-latex dejavu-sans-fonts dejavu-serif-fonts \
17     dejavu-sans-mono-fonts
18
19 # This is in the PATH when I ssh into the CircleCI machine but somehow
20 # sphinx-build isn't found during configure unless we explicitly 
21 # add it here as well; perhaps PATH is being overridden by CircleCI's
22 # infrastructure?
23 ENV PATH /usr/libexec/python3-sphinx:$PATH
24
25 # systemd isn't running so remove it from nsswitch.conf
26 # Failing to do this will result in testsuite failures due to
27 # non-functional user lookup (#15230).
28 RUN sed -i -e 's/systemd//g' /etc/nsswitch.conf
29
30 # Install GHC and cabal
31 RUN cd /tmp && curl https://downloads.haskell.org/~ghc/8.4.2/ghc-8.4.2-x86_64-deb8-linux.tar.xz | tar -Jx
32 RUN cd /tmp/ghc-8.4.2 && ./configure --prefix=/opt/ghc/8.4.2
33 RUN cd /tmp/ghc-8.4.2 && make install
34 RUN mkdir -p /opt/cabal/bin
35 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
36 ENV PATH /opt/ghc/8.4.2/bin:/opt/cabal/bin:$PATH
37
38 # Create a normal user.
39 RUN adduser ghc --comment "GHC builds"
40 RUN echo "ghc ALL = NOPASSWD : ALL" > /etc/sudoers.d/ghc
41 USER ghc
42 WORKDIR /home/ghc/
43
44 # Install Alex, Happy, and HsColor with Cabal
45 RUN cabal update
46 RUN cabal install alex happy hscolour
47 ENV PATH /home/ghc/.cabal/bin:$PATH
48
49 CMD ["bash"]