diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml deleted file mode 100644 index 1a78f8a3..00000000 --- a/.github/workflows/docker.yaml +++ /dev/null @@ -1,135 +0,0 @@ -name: Docker image builds - -on: - workflow_dispatch: - schedule: - - cron: '0 0 * * *' - -jobs: - docker-alpine32: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push (alpine 32bit) - uses: docker/build-push-action@v3 - with: - context: ./docker/alpine32 - push: true - tags: hasufell/i386-alpine-haskell:3.20 - platforms: | - linux/i386 - linux/amd64 - - docker-alpine: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Build and push (alpine 64bit) - uses: docker/build-push-action@v3 - with: - context: ./docker/alpine64 - push: true - tags: hasufell/alpine-haskell:3.12 - platforms: linux/amd64 - - docker-arm32: - runs-on: [self-hosted, Linux, ARM64] - steps: - - uses: docker://arm64v8/ubuntu:focal - name: Cleanup (aarch64 linux) - continue-on-error: true - with: - args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +" - - - name: Checkout - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push (debian buster) - uses: docker/build-push-action@v3 - with: - context: ./docker/arm32v7/buster - push: true - tags: hasufell/arm32v7-debian-haskell:10 - platforms: linux/arm - - - name: Build and push (ubuntu focal) - uses: docker/build-push-action@v3 - with: - context: ./docker/arm32v7/focal - push: true - tags: hasufell/arm32v7-ubuntu-haskell:focal - platforms: linux/arm - - docker-aarch: - runs-on: [self-hosted, Linux, ARM64] - steps: - - uses: docker://arm64v8/ubuntu:focal - name: Cleanup (aarch64 linux) - continue-on-error: true - with: - args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +" - - - name: Checkout - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push (Alpine) - uses: docker/build-push-action@v3 - with: - context: ./docker/arm64v8/alpine - push: true - tags: hasufell/arm64v8-alpine-haskell:3.20 - platforms: linux/arm64 - - - name: Build and push (debian buster) - uses: docker/build-push-action@v3 - with: - context: ./docker/arm64v8/buster - push: true - tags: hasufell/arm64v8-debian-haskell:10 - platforms: linux/arm64 - - - name: Build and push (ubuntu focal) - uses: docker/build-push-action@v3 - with: - context: ./docker/arm64v8/focal - push: true - tags: hasufell/arm64v8-ubuntu-haskell:focal - platforms: linux/arm64 diff --git a/README.md b/README.md index bbb7ee53..e90d7056 100644 --- a/README.md +++ b/README.md @@ -10,4 +10,9 @@ GHCup is the main installer for the general purpose language [Haskell](https://w Visit the [documentation](https://www.haskell.org/ghcup/) for installation instructions. -If you're looking for the metadata YAML files, see here: [https://github.com/haskell/ghcup-metadata](https://github.com/haskell/ghcup-metadata) +## Looking for something else? + +* [the metadata YAML files](https://github.com/haskell/ghcup-metadata) +* [homepage and documentation](https://github.com/haskell/ghcup-www) +* [docker images](https://github.com/haskell/ghcup-docker) + diff --git a/docker/alpine32/Dockerfile b/docker/alpine32/Dockerfile deleted file mode 100644 index eaf0aac9..00000000 --- a/docker/alpine32/Dockerfile +++ /dev/null @@ -1,71 +0,0 @@ -FROM --platform=linux/i386 i386/alpine:3.20 - -ENV LANG C.UTF-8 - -RUN apk add --no-cache \ - curl \ - gcc \ - g++ \ - binutils \ - binutils-gold \ - coreutils \ - bsd-compat-headers \ - gmp-dev \ - ncurses-dev \ - libffi-dev \ - make \ - xz \ - tar \ - perl \ - bash \ - diffutils \ - git \ - gzip \ - gnupg && \ - apk add --no-cache \ - zlib \ - zlib-dev \ - zlib-static \ - bzip2 \ - bzip2-dev \ - bzip2-static \ - gmp \ - gmp-dev \ - openssl-dev \ - openssl-libs-static \ - xz \ - xz-dev \ - ncurses-static - -ARG GHCUP_VERSION=0.1.20.0 -ARG GPG_KEY="7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD 88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF" - -# install ghcup -RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/i386-linux-ghcup-$GHCUP_VERSION && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS.sig && \ - gpg --verify SHA256SUMS.sig SHA256SUMS && \ - sha256sum -c --ignore-missing SHA256SUMS && \ - mv i386-linux-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \ - chmod +x /usr/bin/ghcup && \ - rm -rf SHA256SUMS SHA256SUMS.sig ~/.gnupg/public-keys.d/pubring.db.lock - -ARG GHC=9.4.8 -ARG CABAL_INSTALL=3.10.2.0 -ARG STACK=2.13.1 - -ENV GHCUP_CURL_OPTS="--silent" -ENV NO_COLOR=1 - -# install haskell toolchain -RUN ghcup config set gpg-setting GPGStrict && \ - ghcup --verbose install ghc --isolate=/usr --force ${GHC} && \ - ghcup --verbose install cabal --isolate=/usr/bin --force ${CABAL_INSTALL} && \ - find "/usr/lib/ghc-${GHC}/" \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete && \ - rm -rf "/usr/share/doc/ghc-${GHC}" && \ - rm -rf /tmp/ghcup* && \ - ghcup gc -p -s -c -t - -ENV PATH /root/.cabal/bin:/root/.ghcup:/root/.local/bin:$PATH - diff --git a/docker/alpine64/Dockerfile b/docker/alpine64/Dockerfile deleted file mode 100644 index 16d22099..00000000 --- a/docker/alpine64/Dockerfile +++ /dev/null @@ -1,72 +0,0 @@ -FROM alpine:3.12 - -ENV LANG C.UTF-8 - -RUN apk add --no-cache \ - curl \ - gcc \ - g++ \ - binutils \ - binutils-gold \ - coreutils \ - bsd-compat-headers \ - gmp-dev \ - ncurses-dev \ - libffi-dev \ - make \ - xz \ - tar \ - perl \ - bash \ - diffutils \ - git \ - gzip \ - gnupg && \ - apk add --no-cache \ - zlib \ - zlib-dev \ - zlib-static \ - bzip2 \ - bzip2-dev \ - bzip2-static \ - gmp \ - gmp-dev \ - openssl-dev \ - openssl-libs-static \ - xz \ - xz-dev \ - ncurses-static - -ARG GHCUP_VERSION=0.1.20.0 -ARG GPG_KEY="7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD 88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF" - - -# install ghcup -RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/x86_64-linux-ghcup-$GHCUP_VERSION && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS.sig && \ - gpg --verify SHA256SUMS.sig SHA256SUMS && \ - sha256sum -c --ignore-missing SHA256SUMS && \ - mv x86_64-linux-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \ - chmod +x /usr/bin/ghcup && \ - rm -rf SHA256SUMS SHA256SUMS.sig ~/.gnupg/public-keys.d/pubring.db.lock - -ARG GHC=9.4.8 -ARG CABAL_INSTALL=3.10.2.0 -ARG STACK=2.13.1 - -ENV GHCUP_CURL_OPTS="--silent" -ENV NO_COLOR=1 - -# install haskell toolchain -RUN ghcup config set gpg-setting GPGStrict && \ - ghcup --verbose install ghc --isolate=/usr --force ${GHC} && \ - ghcup --verbose install cabal --isolate=/usr/bin --force ${CABAL_INSTALL} && \ - find "/usr/lib/ghc-${GHC}/" \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete && \ - rm -rf "/usr/share/doc/ghc-${GHC}" && \ - rm -rf /tmp/ghcup* && \ - ghcup gc -p -s -c -t - -ENV PATH /root/.cabal/bin:/root/.ghcup:/root/.local/bin:$PATH - diff --git a/docker/arm32v7/buster/Dockerfile b/docker/arm32v7/buster/Dockerfile deleted file mode 100644 index 0af6803c..00000000 --- a/docker/arm32v7/buster/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM arm32v7/debian:10 - -ENV LANG C.UTF-8 -ENV DEBIAN_FRONTEND=noninteractive -ENV TZ=Asia/Singapore - -COPY update_opt.sh /usr/bin/update_opt.sh -RUN chmod +x /usr/bin/update_opt.sh - -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - dirmngr \ - g++ \ - git \ - gnupg \ - libsqlite3-dev \ - libtinfo-dev \ - libgmp-dev \ - make \ - netbase \ - openssh-client \ - xz-utils \ - zlib1g-dev \ - libnuma-dev libgmp10 libssl-dev liblzma-dev libbz2-dev wget lsb-release software-properties-common apt-transport-https gcc autoconf automake build-essential gzip patchelf tree \ - llvm-11 clang-11 && \ - rm -rf /var/lib/apt/lists/* - -RUN update_opt.sh 11 1 - -ARG GHCUP_VERSION=0.1.20.0 -ARG GPG_KEY="7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD 88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF" - -# install ghcup -RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/armv7-linux-ghcup-$GHCUP_VERSION && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS.sig && \ - gpg --verify SHA256SUMS.sig SHA256SUMS && \ - sha256sum -c --ignore-missing SHA256SUMS && \ - mv armv7-linux-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \ - chmod +x /usr/bin/ghcup && \ - rm -rf SHA256SUMS SHA256SUMS.sig - -ARG GHC=9.2.8 -ARG CABAL_INSTALL=3.6.2.0 -ARG STACK=2.13.1 - -ENV GHCUP_CURL_OPTS="--silent" -ENV NO_COLOR=1 - -# install haskell toolchain -RUN ghcup config set gpg-setting GPGStrict && \ - ghcup --verbose install ghc --isolate=/usr --force ${GHC} && \ - ghcup --verbose install cabal --isolate=/usr/bin --force ${CABAL_INSTALL} && \ - ghcup gc -s -c -t - -ENV PATH /root/.cabal/bin:/root/.ghcup/bin:/root/.local/bin:$PATH - -CMD ["ghci"] diff --git a/docker/arm32v7/buster/update_opt.sh b/docker/arm32v7/buster/update_opt.sh deleted file mode 100755 index 924e7568..00000000 --- a/docker/arm32v7/buster/update_opt.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# update_alternatives.sh - -update_alternatives() { - local version=${1} - local priority=${2} - local master=${3} - local slaves=${4} - local path=${5} - local cmdln - - cmdln="--verbose --install ${path}${master} ${master} ${path}${master}-${version} ${priority}" - for slave in ${slaves}; do - cmdln="${cmdln} --slave ${path}${slave} ${slave} ${path}${slave}-${version}" - done - update-alternatives ${cmdln} -} - -if [[ ${#} -ne 2 ]]; then - echo usage: "${0}" clang_version priority - exit 1 -fi - -version=${1} -priority=${2} -path="/usr/bin/" - -master="llvm-config" -slaves="llvm-addr2line llvm-ar llvm-as llvm-bcanalyzer llvm-bitcode-strip llvm-cat llvm-cfi-verify llvm-cov llvm-c-test llvm-cvtres llvm-cxxdump llvm-cxxfilt llvm-cxxmap llvm-debuginfod llvm-debuginfod-find llvm-diff llvm-dis llvm-dlltool llvm-dwarfdump llvm-dwarfutil llvm-dwp llvm-exegesis llvm-extract llvm-gsymutil llvm-ifs llvm-install-name-tool llvm-jitlink llvm-jitlink-executor llvm-lib llvm-libtool-darwin llvm-link llvm-lipo llvm-lto llvm-lto2 llvm-mc llvm-mca llvm-ml llvm-modextract llvm-mt llvm-nm llvm-objcopy llvm-objdump llvm-omp-device-info llvm-opt-report llvm-otool llvm-pdbutil llvm-PerfectShuffle llvm-profdata llvm-profgen llvm-ranlib llvm-rc llvm-readelf llvm-readobj llvm-reduce llvm-remark-size-diff llvm-rtdyld llvm-sim llvm-size llvm-split llvm-stress llvm-strings llvm-strip llvm-symbolizer llvm-tapi-diff llvm-tblgen llvm-tli-checker llvm-undname llvm-windres llvm-xray" - -update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" - -master="clang" -slaves="analyze-build asan_symbolize bugpoint c-index-test clang++ clang-apply-replacements clang-change-namespace clang-check clang-cl clang-cpp clangd clang-doc clang-extdef-mapping clang-format clang-format-diff clang-include-fixer clang-linker-wrapper clang-move clang-nvlink-wrapper clang-offload-bundler clang-offload-packager clang-offload-wrapper clang-pseudo clang-query clang-refactor clang-rename clang-reorder-fields clang-repl clang-scan-deps clang-tidy count diagtool dsymutil FileCheck find-all-symbols git-clang-format hmaptool hwasan_symbolize intercept-build ld64.lld ld.lld llc lld lldb lldb-argdumper lldb-instr lldb-server lldb-vscode lld-link lli lli-child-target modularize not obj2yaml opt pp-trace run-clang-tidy sancov sanstats scan-build scan-build-py scan-view split-file UnicodeNameMappingGenerator verify-uselistorder wasm-ld yaml2obj yaml-bench" - -update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" diff --git a/docker/arm32v7/focal/Dockerfile b/docker/arm32v7/focal/Dockerfile deleted file mode 100644 index a266f50b..00000000 --- a/docker/arm32v7/focal/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM arm32v7/ubuntu:focal - -ENV LANG C.UTF-8 -ENV DEBIAN_FRONTEND=noninteractive -ENV TZ=Asia/Singapore - -COPY update_opt.sh /usr/bin/update_opt.sh -RUN chmod +x /usr/bin/update_opt.sh - -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - dirmngr \ - g++ \ - git \ - gnupg \ - libsqlite3-dev \ - libtinfo-dev \ - libgmp-dev \ - make \ - netbase \ - openssh-client \ - xz-utils \ - zlib1g-dev \ - libnuma-dev libgmp10 libssl-dev liblzma-dev libbz2-dev wget lsb-release software-properties-common apt-transport-https gcc autoconf automake build-essential gzip patchelf tree \ - llvm-9 clang-9 && \ - rm -rf /var/lib/apt/lists/* - -RUN update_opt.sh 9 1 - -ARG GHCUP_VERSION=0.1.19.4 -ARG GPG_KEY=7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C - -# install ghcup -RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/armv7-linux-ghcup-$GHCUP_VERSION && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS.sig && \ - gpg --verify SHA256SUMS.sig SHA256SUMS && \ - sha256sum -c --ignore-missing SHA256SUMS && \ - mv armv7-linux-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \ - chmod +x /usr/bin/ghcup && \ - rm -rf SHA256SUMS SHA256SUMS.sig - -ARG GHC=8.10.7 -ARG CABAL_INSTALL=3.6.2.0 -ARG STACK=2.9.1 - -ENV GHCUP_CURL_OPTS="--silent" -ENV NO_COLOR=1 - -# install haskell toolchain -RUN ghcup config set gpg-setting GPGStrict && \ - ghcup --verbose install ghc --isolate=/usr --force ${GHC} && \ - ghcup --verbose install cabal --isolate=/usr/bin --force ${CABAL_INSTALL} && \ - ghcup gc -s -c -t - -ENV PATH /root/.cabal/bin:/root/.ghcup/bin:/root/.local/bin:$PATH - -CMD ["ghci"] diff --git a/docker/arm32v7/focal/update_opt.sh b/docker/arm32v7/focal/update_opt.sh deleted file mode 100755 index 924e7568..00000000 --- a/docker/arm32v7/focal/update_opt.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# update_alternatives.sh - -update_alternatives() { - local version=${1} - local priority=${2} - local master=${3} - local slaves=${4} - local path=${5} - local cmdln - - cmdln="--verbose --install ${path}${master} ${master} ${path}${master}-${version} ${priority}" - for slave in ${slaves}; do - cmdln="${cmdln} --slave ${path}${slave} ${slave} ${path}${slave}-${version}" - done - update-alternatives ${cmdln} -} - -if [[ ${#} -ne 2 ]]; then - echo usage: "${0}" clang_version priority - exit 1 -fi - -version=${1} -priority=${2} -path="/usr/bin/" - -master="llvm-config" -slaves="llvm-addr2line llvm-ar llvm-as llvm-bcanalyzer llvm-bitcode-strip llvm-cat llvm-cfi-verify llvm-cov llvm-c-test llvm-cvtres llvm-cxxdump llvm-cxxfilt llvm-cxxmap llvm-debuginfod llvm-debuginfod-find llvm-diff llvm-dis llvm-dlltool llvm-dwarfdump llvm-dwarfutil llvm-dwp llvm-exegesis llvm-extract llvm-gsymutil llvm-ifs llvm-install-name-tool llvm-jitlink llvm-jitlink-executor llvm-lib llvm-libtool-darwin llvm-link llvm-lipo llvm-lto llvm-lto2 llvm-mc llvm-mca llvm-ml llvm-modextract llvm-mt llvm-nm llvm-objcopy llvm-objdump llvm-omp-device-info llvm-opt-report llvm-otool llvm-pdbutil llvm-PerfectShuffle llvm-profdata llvm-profgen llvm-ranlib llvm-rc llvm-readelf llvm-readobj llvm-reduce llvm-remark-size-diff llvm-rtdyld llvm-sim llvm-size llvm-split llvm-stress llvm-strings llvm-strip llvm-symbolizer llvm-tapi-diff llvm-tblgen llvm-tli-checker llvm-undname llvm-windres llvm-xray" - -update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" - -master="clang" -slaves="analyze-build asan_symbolize bugpoint c-index-test clang++ clang-apply-replacements clang-change-namespace clang-check clang-cl clang-cpp clangd clang-doc clang-extdef-mapping clang-format clang-format-diff clang-include-fixer clang-linker-wrapper clang-move clang-nvlink-wrapper clang-offload-bundler clang-offload-packager clang-offload-wrapper clang-pseudo clang-query clang-refactor clang-rename clang-reorder-fields clang-repl clang-scan-deps clang-tidy count diagtool dsymutil FileCheck find-all-symbols git-clang-format hmaptool hwasan_symbolize intercept-build ld64.lld ld.lld llc lld lldb lldb-argdumper lldb-instr lldb-server lldb-vscode lld-link lli lli-child-target modularize not obj2yaml opt pp-trace run-clang-tidy sancov sanstats scan-build scan-build-py scan-view split-file UnicodeNameMappingGenerator verify-uselistorder wasm-ld yaml2obj yaml-bench" - -update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" diff --git a/docker/arm64v8/alpine/Dockerfile b/docker/arm64v8/alpine/Dockerfile deleted file mode 100644 index 29944836..00000000 --- a/docker/arm64v8/alpine/Dockerfile +++ /dev/null @@ -1,71 +0,0 @@ -FROM alpine:3.20 - -ENV LANG C.UTF-8 - -RUN apk add --no-cache \ - curl \ - gcc \ - g++ \ - binutils \ - binutils-gold \ - coreutils \ - bsd-compat-headers \ - gmp-dev \ - ncurses-dev \ - libffi-dev \ - make \ - xz \ - tar \ - perl \ - bash \ - diffutils \ - git \ - gzip \ - gnupg && \ - apk add --no-cache \ - zlib \ - zlib-dev \ - zlib-static \ - bzip2 \ - bzip2-dev \ - bzip2-static \ - gmp \ - gmp-dev \ - openssl-dev \ - openssl-libs-static \ - xz \ - xz-dev \ - ncurses-static - -ARG GHCUP_VERSION=0.1.30.0 -ARG GPG_KEY="7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD 88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF" - - -# install ghcup -RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/aarch64-linux-static-ghcup-$GHCUP_VERSION && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS.sig && \ - gpg --verify SHA256SUMS.sig SHA256SUMS && \ - sha256sum -c --ignore-missing SHA256SUMS && \ - mv aarch64-linux-static-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \ - chmod +x /usr/bin/ghcup && \ - rm -rf SHA256SUMS SHA256SUMS.sig ~/.gnupg/public-keys.d/pubring.db.lock - -ARG GHC=9.8.4 -ARG CABAL_INSTALL=3.12.1.0 - -ENV GHCUP_CURL_OPTS="--silent" -ENV NO_COLOR=1 - -# install haskell toolchain -RUN ghcup config set gpg-setting GPGStrict && \ - ghcup --verbose install ghc --isolate=/usr --force ${GHC} && \ - ghcup --verbose install cabal --isolate=/usr/bin --force ${CABAL_INSTALL} && \ - find "/usr/lib/ghc-${GHC}/" \( -name "*_p.a" -o -name "*.p_hi" \) -type f -delete && \ - rm -rf "/usr/share/doc/ghc-${GHC}" && \ - rm -rf /tmp/ghcup* && \ - ghcup gc -p -s -c -t - -ENV PATH /root/.cabal/bin:/root/.ghcup:/root/.local/bin:$PATH - diff --git a/docker/arm64v8/buster/Dockerfile b/docker/arm64v8/buster/Dockerfile deleted file mode 100644 index 32440b74..00000000 --- a/docker/arm64v8/buster/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM arm64v8/debian:10 - -ENV LANG C.UTF-8 -ENV DEBIAN_FRONTEND=noninteractive -ENV TZ=Asia/Singapore - -COPY update_opt.sh /usr/bin/update_opt.sh -RUN chmod +x /usr/bin/update_opt.sh - -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - dirmngr \ - g++ \ - git \ - gnupg \ - libsqlite3-dev \ - libtinfo-dev \ - libgmp-dev \ - make \ - netbase \ - openssh-client \ - xz-utils \ - zlib1g-dev \ - libnuma-dev libgmp10 libssl-dev liblzma-dev libbz2-dev wget lsb-release software-properties-common apt-transport-https gcc autoconf automake build-essential gzip patchelf tree \ - llvm-11 clang-11 && \ - rm -rf /var/lib/apt/lists/* - -RUN update_opt.sh 11 1 - -ARG GHCUP_VERSION=0.1.20.0 -ARG GPG_KEY="7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD 88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF" - -# install ghcup -RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/aarch64-linux-ghcup-$GHCUP_VERSION && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS.sig && \ - gpg --verify SHA256SUMS.sig SHA256SUMS && \ - sha256sum -c --ignore-missing SHA256SUMS && \ - mv aarch64-linux-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \ - chmod +x /usr/bin/ghcup && \ - rm -rf SHA256SUMS SHA256SUMS.sig - -ARG GHC=9.4.8 -ARG CABAL_INSTALL=3.10.2.0 -ARG STACK=2.13.1 - -ENV GHCUP_CURL_OPTS="--silent" -ENV NO_COLOR=1 - -# install haskell toolchain -RUN ghcup config set gpg-setting GPGStrict && \ - ghcup --verbose install ghc --isolate=/usr --force ${GHC} && \ - ghcup --verbose install cabal --isolate=/usr/bin --force ${CABAL_INSTALL} && \ - ghcup gc -s -c -t - -ENV PATH /root/.cabal/bin:/root/.ghcup/bin:/root/.local/bin:$PATH - -CMD ["ghci"] diff --git a/docker/arm64v8/buster/update_opt.sh b/docker/arm64v8/buster/update_opt.sh deleted file mode 100755 index 924e7568..00000000 --- a/docker/arm64v8/buster/update_opt.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# update_alternatives.sh - -update_alternatives() { - local version=${1} - local priority=${2} - local master=${3} - local slaves=${4} - local path=${5} - local cmdln - - cmdln="--verbose --install ${path}${master} ${master} ${path}${master}-${version} ${priority}" - for slave in ${slaves}; do - cmdln="${cmdln} --slave ${path}${slave} ${slave} ${path}${slave}-${version}" - done - update-alternatives ${cmdln} -} - -if [[ ${#} -ne 2 ]]; then - echo usage: "${0}" clang_version priority - exit 1 -fi - -version=${1} -priority=${2} -path="/usr/bin/" - -master="llvm-config" -slaves="llvm-addr2line llvm-ar llvm-as llvm-bcanalyzer llvm-bitcode-strip llvm-cat llvm-cfi-verify llvm-cov llvm-c-test llvm-cvtres llvm-cxxdump llvm-cxxfilt llvm-cxxmap llvm-debuginfod llvm-debuginfod-find llvm-diff llvm-dis llvm-dlltool llvm-dwarfdump llvm-dwarfutil llvm-dwp llvm-exegesis llvm-extract llvm-gsymutil llvm-ifs llvm-install-name-tool llvm-jitlink llvm-jitlink-executor llvm-lib llvm-libtool-darwin llvm-link llvm-lipo llvm-lto llvm-lto2 llvm-mc llvm-mca llvm-ml llvm-modextract llvm-mt llvm-nm llvm-objcopy llvm-objdump llvm-omp-device-info llvm-opt-report llvm-otool llvm-pdbutil llvm-PerfectShuffle llvm-profdata llvm-profgen llvm-ranlib llvm-rc llvm-readelf llvm-readobj llvm-reduce llvm-remark-size-diff llvm-rtdyld llvm-sim llvm-size llvm-split llvm-stress llvm-strings llvm-strip llvm-symbolizer llvm-tapi-diff llvm-tblgen llvm-tli-checker llvm-undname llvm-windres llvm-xray" - -update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" - -master="clang" -slaves="analyze-build asan_symbolize bugpoint c-index-test clang++ clang-apply-replacements clang-change-namespace clang-check clang-cl clang-cpp clangd clang-doc clang-extdef-mapping clang-format clang-format-diff clang-include-fixer clang-linker-wrapper clang-move clang-nvlink-wrapper clang-offload-bundler clang-offload-packager clang-offload-wrapper clang-pseudo clang-query clang-refactor clang-rename clang-reorder-fields clang-repl clang-scan-deps clang-tidy count diagtool dsymutil FileCheck find-all-symbols git-clang-format hmaptool hwasan_symbolize intercept-build ld64.lld ld.lld llc lld lldb lldb-argdumper lldb-instr lldb-server lldb-vscode lld-link lli lli-child-target modularize not obj2yaml opt pp-trace run-clang-tidy sancov sanstats scan-build scan-build-py scan-view split-file UnicodeNameMappingGenerator verify-uselistorder wasm-ld yaml2obj yaml-bench" - -update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" diff --git a/docker/arm64v8/focal/Dockerfile b/docker/arm64v8/focal/Dockerfile deleted file mode 100644 index 416eb0d9..00000000 --- a/docker/arm64v8/focal/Dockerfile +++ /dev/null @@ -1,61 +0,0 @@ -FROM arm64v8/ubuntu:focal - -ENV LANG C.UTF-8 -ENV DEBIAN_FRONTEND=noninteractive -ENV TZ=Asia/Singapore - -COPY update_opt.sh /usr/bin/update_opt.sh -RUN chmod +x /usr/bin/update_opt.sh - -RUN apt-get update && \ - apt-get install -y --no-install-recommends \ - ca-certificates \ - curl \ - dirmngr \ - g++ \ - git \ - gnupg \ - libsqlite3-dev \ - libtinfo-dev \ - libgmp-dev \ - make \ - netbase \ - openssh-client \ - xz-utils \ - zlib1g-dev \ - libnuma-dev libgmp10 libssl-dev liblzma-dev libbz2-dev wget lsb-release software-properties-common apt-transport-https gcc autoconf automake build-essential gzip patchelf tree \ - llvm-9 clang-9 && \ - rm -rf /var/lib/apt/lists/* - -RUN update_opt.sh 9 1 - -ARG GHCUP_VERSION=0.1.19.4 -ARG GPG_KEY=7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C - -# install ghcup -RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/aarch64-linux-ghcup-$GHCUP_VERSION && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS && \ - curl -sSfL -O https://downloads.haskell.org/~ghcup/$GHCUP_VERSION/SHA256SUMS.sig && \ - gpg --verify SHA256SUMS.sig SHA256SUMS && \ - sha256sum -c --ignore-missing SHA256SUMS && \ - mv aarch64-linux-ghcup-$GHCUP_VERSION /usr/bin/ghcup && \ - chmod +x /usr/bin/ghcup && \ - rm -rf SHA256SUMS SHA256SUMS.sig - -ARG GHC=8.10.7 -ARG CABAL_INSTALL=3.6.2.0 -ARG STACK=2.9.1 - -ENV GHCUP_CURL_OPTS="--silent" -ENV NO_COLOR=1 - -# install haskell toolchain -RUN ghcup config set gpg-setting GPGStrict && \ - ghcup --verbose install ghc --isolate=/usr --force ${GHC} && \ - ghcup --verbose install cabal --isolate=/usr/bin --force ${CABAL_INSTALL} && \ - ghcup gc -s -c -t - -ENV PATH /root/.cabal/bin:/root/.ghcup/bin:/root/.local/bin:$PATH - -CMD ["ghci"] diff --git a/docker/arm64v8/focal/update_opt.sh b/docker/arm64v8/focal/update_opt.sh deleted file mode 100755 index 924e7568..00000000 --- a/docker/arm64v8/focal/update_opt.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# update_alternatives.sh - -update_alternatives() { - local version=${1} - local priority=${2} - local master=${3} - local slaves=${4} - local path=${5} - local cmdln - - cmdln="--verbose --install ${path}${master} ${master} ${path}${master}-${version} ${priority}" - for slave in ${slaves}; do - cmdln="${cmdln} --slave ${path}${slave} ${slave} ${path}${slave}-${version}" - done - update-alternatives ${cmdln} -} - -if [[ ${#} -ne 2 ]]; then - echo usage: "${0}" clang_version priority - exit 1 -fi - -version=${1} -priority=${2} -path="/usr/bin/" - -master="llvm-config" -slaves="llvm-addr2line llvm-ar llvm-as llvm-bcanalyzer llvm-bitcode-strip llvm-cat llvm-cfi-verify llvm-cov llvm-c-test llvm-cvtres llvm-cxxdump llvm-cxxfilt llvm-cxxmap llvm-debuginfod llvm-debuginfod-find llvm-diff llvm-dis llvm-dlltool llvm-dwarfdump llvm-dwarfutil llvm-dwp llvm-exegesis llvm-extract llvm-gsymutil llvm-ifs llvm-install-name-tool llvm-jitlink llvm-jitlink-executor llvm-lib llvm-libtool-darwin llvm-link llvm-lipo llvm-lto llvm-lto2 llvm-mc llvm-mca llvm-ml llvm-modextract llvm-mt llvm-nm llvm-objcopy llvm-objdump llvm-omp-device-info llvm-opt-report llvm-otool llvm-pdbutil llvm-PerfectShuffle llvm-profdata llvm-profgen llvm-ranlib llvm-rc llvm-readelf llvm-readobj llvm-reduce llvm-remark-size-diff llvm-rtdyld llvm-sim llvm-size llvm-split llvm-stress llvm-strings llvm-strip llvm-symbolizer llvm-tapi-diff llvm-tblgen llvm-tli-checker llvm-undname llvm-windres llvm-xray" - -update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}" - -master="clang" -slaves="analyze-build asan_symbolize bugpoint c-index-test clang++ clang-apply-replacements clang-change-namespace clang-check clang-cl clang-cpp clangd clang-doc clang-extdef-mapping clang-format clang-format-diff clang-include-fixer clang-linker-wrapper clang-move clang-nvlink-wrapper clang-offload-bundler clang-offload-packager clang-offload-wrapper clang-pseudo clang-query clang-refactor clang-rename clang-reorder-fields clang-repl clang-scan-deps clang-tidy count diagtool dsymutil FileCheck find-all-symbols git-clang-format hmaptool hwasan_symbolize intercept-build ld64.lld ld.lld llc lld lldb lldb-argdumper lldb-instr lldb-server lldb-vscode lld-link lli lli-child-target modularize not obj2yaml opt pp-trace run-clang-tidy sancov sanstats scan-build scan-build-py scan-view split-file UnicodeNameMappingGenerator verify-uselistorder wasm-ld yaml2obj yaml-bench" - -update_alternatives "${version}" "${priority}" "${master}" "${slaves}" "${path}"