diff --git a/.cirrus.yml b/.cirrus.yml index 993da12..d3014ad 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -4,8 +4,8 @@ freebsd_instance: build_task: name: build env: - GHC_VER: 9.2.4 - CABAL_VER: 3.8.1.0 + GHC_VER: 9.4.8 + CABAL_VER: 3.10.2.0 ARTIFACT: "x86_64-portbld-freebsd-ghcup" ARCH: 64 RUNNER_OS: FreeBSD diff --git a/.github/scripts/test.sh b/.github/scripts/test.sh index 4449900..331c1c3 100644 --- a/.github/scripts/test.sh +++ b/.github/scripts/test.sh @@ -193,7 +193,7 @@ sha=$(sha_sum "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml") # invalidate access time timer, which is 5minutes, so we re-download touch -a -m -t '199901010101' "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml" # redownload same file with some newlines added -raw_eghcup -s https://raw.githubusercontent.com/haskell/ghcup-metadata/exp/ghcup-0.0.7.yaml list +raw_eghcup -s https://raw.githubusercontent.com/haskell/ghcup-metadata/exp/ghcup-${JSON_VERSION}.yaml list # snapshot new yaml and etags file etag2=$(cat "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml.etags") sha2=$(sha_sum "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml") @@ -203,7 +203,7 @@ sha2=$(sha_sum "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml") # invalidate access time timer, which is 5minutes, but don't expect a re-download touch -a -m -t '199901010101' "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml" # this time, we expect the same hash and etag -raw_eghcup -s https://raw.githubusercontent.com/haskell/ghcup-metadata/exp/ghcup-0.0.7.yaml list +raw_eghcup -s https://raw.githubusercontent.com/haskell/ghcup-metadata/exp/ghcup-${JSON_VERSION}.yaml list etag3=$(cat "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml.etags") sha3=$(sha_sum "${GHCUP_DIR}/cache/ghcup-${JSON_VERSION}.yaml") [ "${etag2}" = "${etag3}" ] diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d73fbf1..32a0fb1 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -21,8 +21,8 @@ jobs: name: Build linux binary runs-on: ${{ matrix.os }} env: - CABAL_VER: 3.10.1.0 - JSON_VERSION: "0.0.7" + CABAL_VER: 3.10.2.0 + JSON_VERSION: "0.0.8" AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} S3_HOST: ${{ secrets.S3_HOST }} @@ -32,11 +32,11 @@ jobs: include: - os: ubuntu-latest ARTIFACT: "i386-linux-ghcup" - GHC_VER: 8.10.7 + GHC_VER: 9.4.8 ARCH: 32 - os: ubuntu-latest ARTIFACT: "x86_64-linux-ghcup" - GHC_VER: 8.10.7 + GHC_VER: 9.4.8 ARCH: 64 steps: - name: Checkout code @@ -46,7 +46,7 @@ jobs: - if: matrix.ARCH == '32' name: Run build (32 bit linux) - uses: docker://hasufell/i386-alpine-haskell:3.12 + uses: docker://hasufell/i386-alpine-haskell:3.16 with: args: sh .github/scripts/build.sh env: @@ -85,8 +85,8 @@ jobs: name: Build ARM binary runs-on: ${{ matrix.os }} env: - CABAL_VER: 3.10.1.0 - JSON_VERSION: "0.0.7" + CABAL_VER: 3.6.2.0 + JSON_VERSION: "0.0.8" AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} S3_HOST: ${{ secrets.S3_HOST }} @@ -96,11 +96,11 @@ jobs: include: - os: [self-hosted, Linux, ARM64] ARTIFACT: "armv7-linux-ghcup" - GHC_VER: 9.2.2 + GHC_VER: 9.2.8 ARCH: ARM - os: [self-hosted, Linux, ARM64] ARTIFACT: "aarch64-linux-ghcup" - GHC_VER: 9.2.6 + GHC_VER: 9.4.8 ARCH: ARM64 steps: - uses: docker://arm64v8/debian:10 @@ -158,9 +158,9 @@ jobs: name: Build binary (Mac/Win) runs-on: ${{ matrix.os }} env: - CABAL_VER: 3.10.1.0 + CABAL_VER: 3.10.2.0 MACOSX_DEPLOYMENT_TARGET: 10.13 - JSON_VERSION: "0.0.7" + JSON_VERSION: "0.0.8" AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} S3_HOST: ${{ secrets.S3_HOST }} @@ -170,15 +170,15 @@ jobs: include: - os: [self-hosted, macOS, ARM64] ARTIFACT: "aarch64-apple-darwin-ghcup" - GHC_VER: 9.2.6 + GHC_VER: 9.4.8 ARCH: ARM64 - os: macOS-11 ARTIFACT: "x86_64-apple-darwin-ghcup" - GHC_VER: 9.2.6 + GHC_VER: 9.4.8 ARCH: 64 - os: windows-latest ARTIFACT: "x86_64-mingw64-ghcup" - GHC_VER: 8.10.7 + GHC_VER: 9.2.8 ARCH: 64 steps: - name: Checkout code @@ -189,13 +189,13 @@ jobs: - if: matrix.ARCH == 'ARM64' && runner.os == 'macOS' name: Run build run: | - bash .github/scripts/brew.sh git coreutils llvm@11 autoconf automake - export PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$HOME/.brew/opt/llvm@11/bin:$PATH" - export CC="$HOME/.brew/opt/llvm@11/bin/clang" - export CXX="$HOME/.brew/opt/llvm@11/bin/clang++" + bash .github/scripts/brew.sh git coreutils llvm@13 autoconf automake + export PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$HOME/.brew/opt/llvm@13/bin:$PATH" + export CC="$HOME/.brew/opt/llvm@13/bin/clang" + export CXX="$HOME/.brew/opt/llvm@13/bin/clang++" export LD=ld - export AR="$HOME/.brew/opt/llvm@11/bin/llvm-ar" - export RANLIB="$HOME/.brew/opt/llvm@11/bin/llvm-ranlib" + export AR="$HOME/.brew/opt/llvm@13/bin/llvm-ar" + export RANLIB="$HOME/.brew/opt/llvm@13/bin/llvm-ranlib" bash .github/scripts/build.sh env: ARTIFACT: ${{ matrix.ARTIFACT }} @@ -251,24 +251,24 @@ jobs: needs: "build-linux" runs-on: ${{ matrix.os }} env: - CABAL_VER: 3.10.1.0 - JSON_VERSION: "0.0.7" + CABAL_VER: 3.10.2.0 + JSON_VERSION: "0.0.8" strategy: matrix: include: - os: ubuntu-latest ARTIFACT: "i386-linux-ghcup" - GHC_VER: 8.10.7 + GHC_VER: 9.4.8 ARCH: 32 DISTRO: Alpine - os: ubuntu-latest ARTIFACT: "x86_64-linux-ghcup" - GHC_VER: 8.10.7 + GHC_VER: 9.4.8 ARCH: 64 DISTRO: Alpine - os: ubuntu-latest ARTIFACT: "x86_64-linux-ghcup" - GHC_VER: 8.10.7 + GHC_VER: 9.4.8 ARCH: 64 DISTRO: Ubuntu @@ -285,7 +285,7 @@ jobs: - if: matrix.ARCH == '32' && matrix.DISTRO == 'Alpine' name: Run test (32 bit linux Alpine) - uses: docker://hasufell/i386-alpine-haskell:3.12 + uses: docker://hasufell/i386-alpine-haskell:3.16 with: args: sh .github/scripts/test.sh env: @@ -329,19 +329,19 @@ jobs: needs: "build-arm" runs-on: ${{ matrix.os }} env: - CABAL_VER: 3.10.1.0 - JSON_VERSION: "0.0.7" + CABAL_VER: 3.6.2.0 + JSON_VERSION: "0.0.8" strategy: matrix: include: - os: [self-hosted, Linux, ARM64] ARTIFACT: "armv7-linux-ghcup" - GHC_VER: 9.2.2 + GHC_VER: 9.2.8 ARCH: ARM DISTRO: Ubuntu - os: [self-hosted, Linux, ARM64] ARTIFACT: "aarch64-linux-ghcup" - GHC_VER: 9.2.6 + GHC_VER: 9.4.8 ARCH: ARM64 DISTRO: Ubuntu @@ -396,25 +396,25 @@ jobs: needs: "build-macwin" runs-on: ${{ matrix.os }} env: - CABAL_VER: 3.10.1.0 + CABAL_VER: 3.10.2.0 MACOSX_DEPLOYMENT_TARGET: 10.13 - JSON_VERSION: "0.0.7" + JSON_VERSION: "0.0.8" strategy: matrix: include: - os: [self-hosted, macOS, ARM64] ARTIFACT: "aarch64-apple-darwin-ghcup" - GHC_VER: 9.2.6 + GHC_VER: 9.4.8 ARCH: ARM64 DISTRO: na - os: macOS-11 ARTIFACT: "x86_64-apple-darwin-ghcup" - GHC_VER: 9.2.6 + GHC_VER: 9.4.8 ARCH: 64 DISTRO: na - os: windows-latest ARTIFACT: "x86_64-mingw64-ghcup" - GHC_VER: 8.10.7 + GHC_VER: 9.2.8 ARCH: 64 DISTRO: na @@ -475,7 +475,7 @@ jobs: GHC_VERSION: "8.10.7" HLS_TARGET_VERSION: "1.8.0.0" CABAL_VERSION: "3.8.1.0" - JSON_VERSION: "0.0.7" + JSON_VERSION: "0.0.8" ARTIFACT: "x86_64-linux-ghcup" DISTRO: Ubuntu ARCH: 64 diff --git a/docker/alpine32/Dockerfile b/docker/alpine32/Dockerfile index 74d25a2..6c2a412 100644 --- a/docker/alpine32/Dockerfile +++ b/docker/alpine32/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=linux/i386 i386/alpine:3.12 +FROM --platform=linux/i386 i386/alpine:3.16 ENV LANG C.UTF-8 @@ -37,8 +37,8 @@ RUN apk add --no-cache \ xz-dev \ ncurses-static -ARG GHCUP_VERSION=0.1.19.4 -ARG GPG_KEY=7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C +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 && \ @@ -51,9 +51,9 @@ RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ 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 +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 @@ -63,7 +63,7 @@ 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 -r "/usr/share/doc/ghc-${GHC}" && \ + rm -rf "/usr/share/doc/ghc-${GHC}" && \ rm -rf /tmp/ghcup* && \ ghcup gc -p -s -c -t diff --git a/docker/alpine64/Dockerfile b/docker/alpine64/Dockerfile index aecdbc5..fd55f50 100644 --- a/docker/alpine64/Dockerfile +++ b/docker/alpine64/Dockerfile @@ -37,8 +37,8 @@ RUN apk add --no-cache \ xz-dev \ ncurses-static -ARG GHCUP_VERSION=0.1.19.4 -ARG GPG_KEY=7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C +ARG GHCUP_VERSION=0.1.20.0 +ARG GPG_KEY="7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD 88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF" # install ghcup @@ -52,9 +52,9 @@ RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ 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 +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 @@ -64,7 +64,7 @@ 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 -r "/usr/share/doc/ghc-${GHC}" && \ + rm -rf "/usr/share/doc/ghc-${GHC}" && \ rm -rf /tmp/ghcup* && \ ghcup gc -p -s -c -t diff --git a/docker/arm32v7/buster/Dockerfile b/docker/arm32v7/buster/Dockerfile index 5f2e301..0af6803 100644 --- a/docker/arm32v7/buster/Dockerfile +++ b/docker/arm32v7/buster/Dockerfile @@ -29,8 +29,8 @@ RUN apt-get update && \ RUN update_opt.sh 11 1 -ARG GHCUP_VERSION=0.1.19.4 -ARG GPG_KEY=7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C +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 && \ @@ -43,9 +43,9 @@ RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ chmod +x /usr/bin/ghcup && \ rm -rf SHA256SUMS SHA256SUMS.sig -ARG GHC=8.10.7 +ARG GHC=9.2.8 ARG CABAL_INSTALL=3.6.2.0 -ARG STACK=2.9.1 +ARG STACK=2.13.1 ENV GHCUP_CURL_OPTS="--silent" ENV NO_COLOR=1 diff --git a/docker/arm64v8/buster/Dockerfile b/docker/arm64v8/buster/Dockerfile index f9bd0f2..32440b7 100644 --- a/docker/arm64v8/buster/Dockerfile +++ b/docker/arm64v8/buster/Dockerfile @@ -29,8 +29,8 @@ RUN apt-get update && \ RUN update_opt.sh 11 1 -ARG GHCUP_VERSION=0.1.19.4 -ARG GPG_KEY=7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C +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 && \ @@ -43,9 +43,9 @@ RUN gpg --batch --keyserver keys.openpgp.org --recv-keys $GPG_KEY && \ 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 +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 diff --git a/ghcup.cabal b/ghcup.cabal index c2ef031..279ef18 100644 --- a/ghcup.cabal +++ b/ghcup.cabal @@ -350,12 +350,10 @@ executable ghcup , brick ^>=2.1 , transformers ^>=0.5 , vty ^>=6.0 - , unix ^>=2.7 , optics ^>=0.4 if os(windows) cpp-options: -DIS_WINDOWS - else build-depends: unix ^>=2.7