judge0 / compilers

📦 Docker image with installed compilers, interpreters and sandbox.
https://hub.docker.com/r/judge0/compilers
GNU General Public License v3.0
93 stars 70 forks source link

Failed to build haskell-9.6.2 #15

Open jiapei100 opened 1 year ago

jiapei100 commented 1 year ago

Hi,

I'm trying to build compilers under Ubuntu 22.04.

I just simply modifed Dockerfile, a couple of packages. For haskell, I ONLY modified the version from 8.8.1 to 9.6.2.

# Check for latest version here: https://www.haskell.org/ghc/download.html
ENV HASKELL_VERSIONS \
      9.6.2
RUN set -xe && \
    apt-get update && \
    # apt-get install -y --no-install-recommends libgmp-dev libtinfo5 glibc-source && \
    rm -rf /var/lib/apt/lists/* && \
    for VERSION in $HASKELL_VERSIONS; do \
      curl -fSsL "https://downloads.haskell.org/~ghc/$VERSION/ghc-$VERSION-x86_64-deb11-linux.tar.xz" -o /tmp/ghc-$VERSION.tar.xz && \
      mkdir /tmp/ghc-$VERSION && \
      tar -xf /tmp/ghc-$VERSION.tar.xz -C /tmp/ghc-$VERSION --strip-components=1 && \
      rm /tmp/ghc-$VERSION.tar.xz && \
      cd /tmp/ghc-$VERSION && \
      ./configure \
        --prefix=/usr/local/ghc-$VERSION && \
      make -j$(nproc) install && \
      rm -rf /tmp/*; \
    done

However, I obtained the following ERROR messages: https://pastebin.com/qdMEE1S2 .

The last dozens of lines:

...
50.43 # Fix the mode, in case umask is set
50.43 chmod 644 '/usr/local/ghc-9.6.2/lib/ghc-9.6.2/lib/package.conf.d/bytestring-0.11.4.0.conf'
50.43 '/usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/ghc-pkg' --global-package-db "/usr/local/ghc-9.6.2/lib/ghc-9.6.2/lib/package.conf.d" recache
50.43 /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/ghc-pkg: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/../lib/x86_64-linux-ghc-9.6.2/libHSbytestring-0.11.4.0-ghc9.6.2.so)
50.43 /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/ghc-pkg: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/../lib/x86_64-linux-ghc-9.6.2/libHStemplate-haskell-2.20.0.0-ghc9.6.2.so)
50.43 /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/ghc-pkg: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/../lib/x86_64-linux-ghc-9.6.2/libHSbase-4.18.0.0-ghc9.6.2.so)
50.43 /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/ghc-pkg: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/../lib/x86_64-linux-ghc-9.6.2/libHSghc-prim-0.10.0-ghc9.6.2.so)
50.43 /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/ghc-pkg: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/local/ghc-9.6.2/lib/ghc-9.6.2/bin/../lib/x86_64-linux-ghc-9.6.2/libHSrts-1.0.2-ghc9.6.2.so)
50.43 make: *** [Makefile:228: update_package_db] Error 1
------
Dockerfile:133
--------------------
 132 |           9.6.2
 133 | >>> RUN set -xe && \
 134 | >>>     apt-get update && \
 135 | >>>     # apt-get install -y --no-install-recommends libgmp-dev libtinfo5 glibc-source && \
 136 | >>>     rm -rf /var/lib/apt/lists/* && \
 137 | >>>     for VERSION in $HASKELL_VERSIONS; do \
 138 | >>>       curl -fSsL "https://downloads.haskell.org/~ghc/$VERSION/ghc-$VERSION-x86_64-deb11-linux.tar.xz" -o /tmp/ghc-$VERSION.tar.xz && \
 139 | >>>       mkdir /tmp/ghc-$VERSION && \
 140 | >>>       tar -xf /tmp/ghc-$VERSION.tar.xz -C /tmp/ghc-$VERSION --strip-components=1 && \
 141 | >>>       rm /tmp/ghc-$VERSION.tar.xz && \
 142 | >>>       cd /tmp/ghc-$VERSION && \
 143 | >>>       ./configure \
 144 | >>>         --prefix=/usr/local/ghc-$VERSION && \
 145 | >>>       make -j$(nproc) install && \
 146 | >>>       rm -rf /tmp/*; \
 147 | >>>     done
 148 |     
--------------------
ERROR: failed to solve: process "/bin/sh -c set -xe &&     apt-get update &&     rm -rf /var/lib/apt/lists/* &&     for VERSION in $HASKELL_VERSIONS; do       curl -fSsL \"https://downloads.haskell.org/~ghc/$VERSION/ghc-$VERSION-x86_64-deb11-linux.tar.xz\" -o /tmp/ghc-$VERSION.tar.xz &&       mkdir /tmp/ghc-$VERSION &&       tar -xf /tmp/ghc-$VERSION.tar.xz -C /tmp/ghc-$VERSION --strip-components=1 &&       rm /tmp/ghc-$VERSION.tar.xz &&       cd /tmp/ghc-$VERSION &&       ./configure         --prefix=/usr/local/ghc-$VERSION &&       make -j$(nproc) install &&       rm -rf /tmp/*;     done" did not complete successfully: exit code: 2

Can anybody please give me a hand?

Thank you ...

farrukh-taqveem commented 1 month ago

It might be easier for you to extend the main Dockerfile or the slim one.