diff --git a/.github/workflows/bootstrap.yml b/.github/workflows/bootstrap.yml index 97622dff891..198c177bca7 100644 --- a/.github/workflows/bootstrap.yml +++ b/.github/workflows/bootstrap.yml @@ -26,7 +26,8 @@ jobs: - uses: actions/checkout@v2 - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + ghcup install ghc 8.10.4 + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test run: | @@ -41,20 +42,13 @@ jobs: name: Bootstrap on macOS runs-on: macos-latest steps: - - name: Install GHC - run: | - cd $(mktemp -d) - curl -sLO "https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz" - tar -xJf ghc-*.tar.xz - cd ghc-* - ./configure --prefix=/opt/ghc/8.10.4 - sudo make install - uses: actions/checkout@v2 # We use linux dependencies - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + ghcup install ghc 8.10.4 + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test run: | diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index a563c0e86be..576e4674d07 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -55,7 +55,7 @@ jobs: - name: Install cabal-plan run: | cd $(mktemp -d) - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 - name: Validate print-config run: sh validate.sh -j 2 -w ghc-8.8.3 -v -s print-config @@ -110,7 +110,7 @@ jobs: - name: Install cabal-plan run: | cd $(mktemp -d) - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 - name: Validate print-config run: sh validate.sh -j 2 -w ghc-8.6.5 -v -s print-config diff --git a/.github/workflows/quick-jobs.yml b/.github/workflows/quick-jobs.yml index 4a8e5035c3f..7754366c070 100644 --- a/.github/workflows/quick-jobs.yml +++ b/.github/workflows/quick-jobs.yml @@ -24,12 +24,10 @@ jobs: runs-on: ubuntu-18.04 # This job is not run in a container, any recent GHC should be fine steps: - - name: Set PATH - # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path + - name: Install GHC run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH - echo "/opt/ghc/8.10.4/bin" >> $GITHUB_PATH + ghcup install ghc --set 8.10.4 - uses: actions/cache@v1 with: path: ~/.cabal/store diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 1b944d05de1..8cb6637db65 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -66,4 +66,4 @@ jobs: cabal v2-run cabal-install:unit-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)" - name: cabal-tests # Using only one job, -j1, to fail less. - run: cabal v2-run cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.4.0.0\x\cabal\build\cabal\cabal.exe + run: cabal v2-run cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-8.6.5\cabal-install-3.4.1.0\x\cabal\build\cabal\cabal.exe diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 00000000000..52a6cceb9b4 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,99 @@ +variables: + # Commit of ghc/ci-images repository from which to pull Docker images + DOCKER_REV: "853f348f9caf38b08740b280296fbd34e09abb3a" + + GHC_VERSION: 8.10.7 + CABAL_INSTALL_VERSION: 3.4.0.0 + +workflow: + rules: + - if: $CI_COMMIT_TAG + when: always + - if: '$CI_PIPELINE_SOURCE == "web"' + when: always + - when: never + +.build: + script: + - bash .gitlab/ci.sh + artifacts: + expire_in: 2 week + paths: + - out + +build-aarch64-linux-deb10: + extends: .build + tags: + - aarch64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV" + +build-armv7-linux-deb10: + extends: .build + tags: + - armv7-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV" + +build-x86_64-linux: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV" + +build-x86_64-linux-alpine: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV" + +build-i386-linux-alpine: + extends: .build + tags: + - x86_64-linux + image: "i386/alpine:3.12" + before_script: + # for GHC + - apk add --no-cache bash curl gcc g++ binutils binutils-gold bsd-compat-headers gmp-dev ncurses-dev libffi-dev make xz tar perl + # for cabal build + - apk add --no-cache zlib zlib-dev zlib-static + +build-x86_64-freebsd: + extends: .build + tags: + - x86_64-freebsd13 + +build-x86_64-darwin: + extends: .build + tags: + - x86_64-darwin + +build-aarch64-darwin: + tags: + - aarch64-darwin-m1 + script: | + set -Eeuo pipefail + function runInNixShell() { + time nix-shell $CI_PROJECT_DIR/.gitlab/shell.nix \ + -I nixpkgs=https://github.com/angerman/nixpkgs/archive/75f7281738b.tar.gz \ + --argstr system "aarch64-darwin" \ + --pure \ + --keep CI_PROJECT_DIR \ + --keep MACOSX_DEPLOYMENT_TARGET \ + --keep GHC_VERSION \ + --keep CABAL_INSTALL_VERSION \ + --run "$1" 2>&1 + } + # temporary fix + runInNixShell "cabal update && mkdir vendored && cd vendored && cabal unpack network-3.1.2.2 && cd network-3.1.2.2 && autoreconf -fi" 2>&1 + + runInNixShell "./.gitlab/ci.sh" 2>&1 + variables: + MACOSX_DEPLOYMENT_TARGET: "10.7" + artifacts: + expire_in: 2 week + paths: + - out + +build-x86_64-windows: + extends: .build + tags: + - new-x86_64-windows diff --git a/.gitlab/ci.sh b/.gitlab/ci.sh new file mode 100755 index 00000000000..d512595c2aa --- /dev/null +++ b/.gitlab/ci.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +set -Eeuo pipefail + +source "$CI_PROJECT_DIR/.gitlab/common.sh" + + +export GHCUP_INSTALL_BASE_PREFIX="$CI_PROJECT_DIR/toolchain" +export CABAL_DIR="$CI_PROJECT_DIR/cabal" + +case "$(uname)" in + MSYS_*|MINGW*) + export CABAL_DIR="$(cygpath -w "$CABAL_DIR")" + GHCUP_BINDIR="${GHCUP_INSTALL_BASE_PREFIX}/ghcup/bin" + ;; + *) + GHCUP_BINDIR="${GHCUP_INSTALL_BASE_PREFIX}/.ghcup/bin" + ;; +esac + +mkdir -p "$CABAL_DIR" +mkdir -p "$GHCUP_BINDIR" +export PATH="$GHCUP_BINDIR:$PATH" + +export BOOTSTRAP_HASKELL_NONINTERACTIVE=1 +export BOOTSTRAP_HASKELL_GHC_VERSION=$GHC_VERSION +export BOOTSTRAP_HASKELL_CABAL_VERSION=$CABAL_INSTALL_VERSION +export BOOTSTRAP_HASKELL_VERBOSE=1 +export BOOTSTRAP_HASKELL_ADJUST_CABAL_CONFIG=yes + +curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh + +run cabal v2-install cabal-install \ + -w "ghc-$GHC_VERSION" \ + --project-file=cabal.project.release \ + --installdir="$CI_PROJECT_DIR/out" \ + --install-method=copy \ + --overwrite-policy=always \ + --enable-executable-static \ + --disable-profiling \ + --enable-split-sections \ + --enable-executable-stripping + +cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json" diff --git a/.gitlab/common.sh b/.gitlab/common.sh new file mode 100644 index 00000000000..36d7ee57509 --- /dev/null +++ b/.gitlab/common.sh @@ -0,0 +1,117 @@ +# Common bash utilities +# ---------------------- + +# Colors +BLACK="0;30" +GRAY="1;30" +RED="0;31" +LT_RED="1;31" +BROWN="0;33" +LT_BROWN="1;33" +GREEN="0;32" +LT_GREEN="1;32" +BLUE="0;34" +LT_BLUE="1;34" +PURPLE="0;35" +LT_PURPLE="1;35" +CYAN="0;36" +LT_CYAN="1;36" +WHITE="1;37" +LT_GRAY="0;37" + +# GitLab Pipelines log section delimiters +# https://gitlab.com/gitlab-org/gitlab-foss/issues/14664 +start_section() { + name="$1" + echo -e "section_start:$(date +%s):$name\015\033[0K" +} + +end_section() { + name="$1" + echo -e "section_end:$(date +%s):$name\015\033[0K" +} + +echo_color() { + local color="$1" + local msg="$2" + echo -e "\033[${color}m${msg}\033[0m" +} + +error() { echo_color "${RED}" "$1"; } +warn() { echo_color "${LT_BROWN}" "$1"; } +info() { echo_color "${LT_BLUE}" "$1"; } + +fail() { error "error: $1"; exit 1; } + +function run() { + info "Running $*..." + "$@" || ( error "$* failed"; return 1; ) +} + .gitlab-ci.yml ++ +61 +- +0 + +Viewed +variables: + # Commit of ghc/ci-images repository from which to pull Docker images + DOCKER_REV: "853f348f9caf38b08740b280296fbd34e09abb3a" + + GHC_VERSION: 8.10.7 + CABAL_INSTALL_VERSION: 3.2.0.0 + +workflow: + rules: + - if: $CI_COMMIT_TAG + when: always + - if: '$CI_PIPELINE_SOURCE == "web"' + when: always + - when: never + +.build: + script: + - bash .gitlab/ci.sh + artifacts: + expire_in: 2 week + paths: + - out + +build-aarch64-linux-deb10: + extends: .build + tags: + - aarch64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/aarch64-linux-deb10:$DOCKER_REV" + +build-armv7-linux-deb10: + extends: .build + tags: + - armv7-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/armv7-linux-deb10:$DOCKER_REV" + +build-x86_64-linux: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb9:$DOCKER_REV" + +build-x86_64-linux-alpine: + extends: .build + tags: + - x86_64-linux + image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-alpine3_12:$DOCKER_REV" + +build-x86_64-freebsd: + extends: .build + tags: + - x86_64-freebsd + +build-x86_64-darwin: + extends: .build + tags: + - x86_64-darwin + +build-x86_64-windows: + extends: .build + tags: + - new-x86_64-windows diff --git a/.gitlab/shell.nix b/.gitlab/shell.nix new file mode 100644 index 00000000000..33c7c67beee --- /dev/null +++ b/.gitlab/shell.nix @@ -0,0 +1,90 @@ +{ system ? "aarch64-darwin" +#, nixpkgs ? fetchTarball https://github.com/angerman/nixpkgs/archive/257cb120334.tar.gz #apple-silicon.tar.gz +, pkgs ? import { inherit system; } +, compiler ? if system == "aarch64-darwin" then "ghc8103Binary" else "ghc8103" +}: pkgs.mkShell { + # this prevents nix from trying to write the env-vars file. + # we can't really, as NIX_BUILD_TOP/env-vars is not set. + noDumpEnvVars=1; + + # stop polluting LDFLAGS with -liconv + dontAddExtraLibs = true; + + # we need to inject ncurses into --with-curses-libraries. + # the real fix is to teach terminfo to use libcurses on macOS. + # CONFIGURE_ARGS = "--with-intree-gmp --with-curses-libraries=${pkgs.ncurses.out}/lib"; + CONFIGURE_ARGS = "--with-intree-gmp --with-curses-libraries=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib --with-iconv-includes=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include --with-iconv-libraries=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib SH=/bin/bash"; + + # magic speedup pony :facepalm: + # + # nix has the ugly habbit of duplicating ld flags more than necessary. This + # somewhat consolidates this. + shellHook = '' + export NIX_LDFLAGS=$(for a in $NIX_LDFLAGS; do echo $a; done |sort|uniq|xargs) + export NIX_LDFLAGS_FOR_TARGET=$(for a in $NIX_LDFLAGS_FOR_TARGET; do echo $a; done |sort|uniq|xargs) + export NIX_LDFLAGS_FOR_TARGET=$(comm -3 <(for l in $NIX_LDFLAGS_FOR_TARGET; do echo $l; done) <(for l in $NIX_LDFLAGS; do echo $l; done)) + + + # Impurity hack for GHC releases. + ################################# + # We don't want binary releases to depend on nix, thus we'll need to make sure we don't leak in references. + # GHC externally depends only on iconv and curses. However we can't force a specific curses library for + # the terminfo package, as such we'll need to make sure we only look in the system path for the curses library + # and not pick up the tinfo from the nix provided ncurses package. + # + # We also need to force us to use the systems COREFOUNDATION, not the one that nix builds. Again this is impure, + # but it will allow us to have proper binary distributions. + # + # do not use nixpkgs provided core foundation + export NIX_COREFOUNDATION_RPATH=/System/Library/Frameworks + # drop curses from the LDFLAGS, we really want the system ones, not the nix ones. + export NIX_LDFLAGS=$(for lib in $NIX_LDFLAGS; do case "$lib" in *curses*);; *) echo -n "$lib ";; esac; done;) + export NIX_CFLAGS_COMPILE+=" -Wno-nullability-completeness -Wno-availability -Wno-expansion-to-defined -Wno-builtin-requires-header -Wno-unused-command-line-argument" + + # unconditionally add the MacOSX.sdk and TargetConditional.h + export NIX_CFLAGS_COMPILE+=" -isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include" + export NIX_LDFLAGS="-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib $NIX_LDFLAGS" + + ''; + + nativeBuildInputs = (with pkgs; [ + # This needs to come *before* ghc, + # otherwise we migth end up with the clang from + # the bootstrap GHC in PATH with higher priority. + clang_11 + llvm_11 + + haskell.compiler.${compiler} + haskell.packages.${compiler}.cabal-install + haskell.packages.${compiler}.alex + haskell.packages.${compiler}.happy # _1_19_12 is needed for older GHCs. + + automake + autoconf + m4 + + gmp + zlib.out + zlib.dev + glibcLocales + # locale doesn't build yet :-/ + # locale + + git + + python3 + # python3Full + # python3Packages.sphinx + perl + + which + wget + curl + file + + xz + xlibs.lndir + + cacert ]) + ++ (with pkgs.darwin.apple_sdk.frameworks; [ Foundation Security ]); +} diff --git a/Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal b/Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal index ea866907bf5..bdb1e382daa 100644 --- a/Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal +++ b/Cabal/Cabal-QuickCheck/Cabal-QuickCheck.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-QuickCheck -version: 3.4.0.0 +version: 3.4.1.0 synopsis: QuickCheck instances for types in Cabal category: Testing description: @@ -13,7 +13,7 @@ library build-depends: , base , bytestring - , Cabal ^>=3.4.0.0 + , Cabal ^>=3.4.1.0 , QuickCheck ^>=2.13.2 || ^>=2.14 if !impl(ghc >= 8.0) diff --git a/Cabal/Cabal-described/Cabal-described.cabal b/Cabal/Cabal-described/Cabal-described.cabal index 79a3bda76f4..5775023c234 100644 --- a/Cabal/Cabal-described/Cabal-described.cabal +++ b/Cabal/Cabal-described/Cabal-described.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-described -version: 3.4.0.0 +version: 3.4.1.0 synopsis: Described functionality for types in Cabal category: Testing, Parsec description: Provides rere bindings @@ -11,7 +11,7 @@ library ghc-options: -Wall build-depends: , base - , Cabal ^>=3.4.0.0 + , Cabal ^>=3.4.1.0 , containers , pretty , QuickCheck diff --git a/Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal b/Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal index 850625dec9f..ee17dd45c84 100644 --- a/Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal +++ b/Cabal/Cabal-tree-diff/Cabal-tree-diff.cabal @@ -1,6 +1,6 @@ cabal-version: 2.2 name: Cabal-tree-diff -version: 3.4.0.0 +version: 3.4.1.0 synopsis: QuickCheck instances for types in Cabal category: Testing description: Provides tree-diff ToExpr instances for some types in Cabal @@ -11,7 +11,7 @@ library ghc-options: -Wall build-depends: , base - , Cabal ^>=3.4.0.0 + , Cabal ^>=3.4.1.0 , tree-diff ^>=0.1 exposed-modules: Data.TreeDiff.Instances.Cabal diff --git a/Cabal/Cabal.cabal b/Cabal/Cabal.cabal index d10be4e254c..3888606102f 100644 --- a/Cabal/Cabal.cabal +++ b/Cabal/Cabal.cabal @@ -1,6 +1,6 @@ cabal-version: >=1.10 name: Cabal -version: 3.4.0.0 +version: 3.4.1.0 copyright: 2003-2020, Cabal Development Team (see AUTHORS file) license: BSD3 license-file: LICENSE diff --git a/Cabal/Distribution/Simple.hs b/Cabal/Distribution/Simple.hs index 5543765a10d..0999fbe83d6 100644 --- a/Cabal/Distribution/Simple.hs +++ b/Cabal/Distribution/Simple.hs @@ -1,6 +1,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE LambdaCase #-} +{-# LANGUAGE CPP #-} ----------------------------------------------------------------------------- -- | -- Module : Distribution.Simple @@ -98,7 +99,11 @@ import Distribution.System (buildPlatform) import System.Environment (getArgs, getProgName) import System.Directory (removeFile, doesFileExist ,doesDirectoryExist, removeDirectoryRecursive) -import System.FilePath (searchPathSeparator, takeDirectory, (), splitDirectories, dropDrive) +import System.FilePath (searchPathSeparator, takeDirectory, (), + splitDirectories, dropDrive) +#ifdef mingw32_HOST_OS +import System.FilePath (normalise, splitDrive) +#endif import Distribution.Compat.ResponseFile (expandResponse) import Distribution.Compat.Directory (makeAbsolute) import Distribution.Compat.Environment (getEnvironment) @@ -717,7 +722,7 @@ runConfigureScript verbosity backwardsCompatHack flags lbi = do -- TODO: We don't check for colons, tildes or leading dashes. We -- also should check the builddir's path, destdir, and all other -- paths as well. - let configureFile' = intercalate "/" $ splitDirectories configureFile + let configureFile' = toUnix configureFile for_ badAutoconfCharacters $ \(c, cname) -> when (c `elem` dropDrive configureFile') $ warn verbosity $ concat @@ -757,6 +762,19 @@ runConfigureScript verbosity backwardsCompatHack flags lbi = do ++ "If you are not on Windows, ensure that an 'sh' command " ++ "is discoverable in your path." +-- | Convert Windows path to Unix ones +toUnix :: String -> String +#ifdef mingw32_HOST_OS +toUnix s = let tmp = normalise s + (l, rest) = case splitDrive tmp of + ([], x) -> ("/" , x) + (h:_, x) -> ('/':h:"/", x) + parts = splitDirectories rest + in l ++ intercalate "/" parts +#else +toUnix s = intercalate "/" $ splitDirectories s +#endif + badAutoconfCharacters :: [(Char, String)] badAutoconfCharacters = [ (' ', "space") diff --git a/boot/ci-bootstrap.template.yml b/boot/ci-bootstrap.template.yml index 97622dff891..198c177bca7 100644 --- a/boot/ci-bootstrap.template.yml +++ b/boot/ci-bootstrap.template.yml @@ -26,7 +26,8 @@ jobs: - uses: actions/checkout@v2 - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + ghcup install ghc 8.10.4 + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test run: | @@ -41,20 +42,13 @@ jobs: name: Bootstrap on macOS runs-on: macos-latest steps: - - name: Install GHC - run: | - cd $(mktemp -d) - curl -sLO "https://downloads.haskell.org/~ghc/8.10.4/ghc-8.10.4-x86_64-apple-darwin.tar.xz" - tar -xJf ghc-*.tar.xz - cd ghc-* - ./configure --prefix=/opt/ghc/8.10.4 - sudo make install - uses: actions/checkout@v2 # We use linux dependencies - name: bootstrap.py run: | - python3 bootstrap/bootstrap.py -w /opt/ghc/8.10.4/bin/ghc -d bootstrap/linux-8.10.4.json + ghcup install ghc 8.10.4 + python3 bootstrap/bootstrap.py -w $(ghcup whereis ghc 8.10.4) -d bootstrap/linux-8.10.4.json - name: Smoke test run: | diff --git a/boot/ci-macos.template.yml b/boot/ci-macos.template.yml index 8fa8ba504e3..8504fb2c91d 100644 --- a/boot/ci-macos.template.yml +++ b/boot/ci-macos.template.yml @@ -60,7 +60,7 @@ jobs: run: | cd $(mktemp -d) {# aeson +fast, so we don't wait for -O2 #} - cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' + cabal v2-install cabal-plan --constraint='cabal-plan ^>=0.6.2.0' --constraint='aeson +fast' --constraint='cabal-plan +exe' - uses: actions/checkout@v2 {% for step in job.steps %} - name: Validate {{step}} diff --git a/boot/ci-quick-jobs.template.yml b/boot/ci-quick-jobs.template.yml index 4a8e5035c3f..7754366c070 100644 --- a/boot/ci-quick-jobs.template.yml +++ b/boot/ci-quick-jobs.template.yml @@ -24,12 +24,10 @@ jobs: runs-on: ubuntu-18.04 # This job is not run in a container, any recent GHC should be fine steps: - - name: Set PATH - # https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#adding-a-system-path + - name: Install GHC run: | echo "$HOME/.cabal/bin" >> $GITHUB_PATH - echo "/opt/cabal/3.2/bin" >> $GITHUB_PATH - echo "/opt/ghc/8.10.4/bin" >> $GITHUB_PATH + ghcup install ghc --set 8.10.4 - uses: actions/cache@v1 with: path: ~/.cabal/store diff --git a/boot/ci-windows.template.yml b/boot/ci-windows.template.yml index 492254d1ad9..511fd707692 100644 --- a/boot/ci-windows.template.yml +++ b/boot/ci-windows.template.yml @@ -73,5 +73,5 @@ jobs: cabal v2-run cabal-install:unit-tests -- --pattern "! (/FileMonitor/ || /VCS/ || /Get/)" - name: cabal-tests # Using only one job, -j1, to fail less. - run: cabal v2-run cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-{{ job.version }}\cabal-install-3.4.0.0\x\cabal\build\cabal\cabal.exe + run: cabal v2-run cabal-tests -- -j1 --with-cabal=dist-newstyle\build\x86_64-windows\ghc-{{ job.version }}\cabal-install-3.4.1.0\x\cabal\build\cabal\cabal.exe {% endfor %} diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index dd3f970f5ae..fea9670acb4 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -4,7 +4,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.4.0.0 +Version: 3.4.1.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -340,7 +340,7 @@ executable cabal base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.4.*, + Cabal == 3.4.1.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.dev b/cabal-install/cabal-install.cabal.dev index eb9279775a6..45b00f717d5 100644 --- a/cabal-install/cabal-install.cabal.dev +++ b/cabal-install/cabal-install.cabal.dev @@ -4,7 +4,7 @@ Cabal-Version: 2.0 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.4.0.0 +Version: 3.4.1.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -334,7 +334,7 @@ library cabal-lib-client base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.4.*, + Cabal == 3.4.1.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.prod b/cabal-install/cabal-install.cabal.prod index dd3f970f5ae..fea9670acb4 100644 --- a/cabal-install/cabal-install.cabal.prod +++ b/cabal-install/cabal-install.cabal.prod @@ -4,7 +4,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.4.0.0 +Version: 3.4.1.0 Synopsis: The command-line interface for Cabal and Hackage. Description: The \'cabal\' command-line program simplifies the process of managing @@ -340,7 +340,7 @@ executable cabal base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.4.*, + Cabal == 3.4.1.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-install/cabal-install.cabal.zinza b/cabal-install/cabal-install.cabal.zinza index d0b5ad71cbb..1ca889f10e0 100644 --- a/cabal-install/cabal-install.cabal.zinza +++ b/cabal-install/cabal-install.cabal.zinza @@ -9,7 +9,7 @@ Cabal-Version: >= 1.10 -- To update this file, edit 'cabal-install.cabal.pp' and run -- 'make cabal-install-prod' in the project's root folder. Name: cabal-install -Version: 3.4.0.0 +Version: 3.4.1.0 {# NOTE: when updating build-depends, don't forget to update version regexps in bootstrap.sh. #} {% defblock buildDepends %} build-depends: @@ -19,7 +19,7 @@ Version: 3.4.0.0 base16-bytestring >= 0.1.1 && < 1.1.0.0, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.4.*, + Cabal == 3.4.1.*, containers >= 0.5.6.2 && < 0.7, cryptohash-sha256 >= 0.11 && < 0.12, deepseq >= 1.4.1.1 && < 1.5, diff --git a/cabal-testsuite/cabal-testsuite.cabal b/cabal-testsuite/cabal-testsuite.cabal index 609df004542..09716d3b013 100644 --- a/cabal-testsuite/cabal-testsuite.cabal +++ b/cabal-testsuite/cabal-testsuite.cabal @@ -28,7 +28,7 @@ common shared build-depends: , base >= 4.6 && <4.16 -- this needs to match the in-tree lib:Cabal version - , Cabal == 3.4.0.0 + , Cabal == 3.4.1.0 ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns diff --git a/cabal.project b/cabal.project index af1d8a38306..25baac8272e 100644 --- a/cabal.project +++ b/cabal.project @@ -7,8 +7,7 @@ packages: Cabal/Cabal-tree-diff/ packages: Cabal/Cabal-described packages: cabal-benchmarks/ --- Uncomment to allow picking up extra local unpacked deps: ---optional-packages: */ +optional-packages: ./vendored/*/*.cabal -- Remove after hackage-repo-tool release allow-newer: diff --git a/release-notes/Cabal-3.4.1.0.md b/release-notes/Cabal-3.4.1.0.md new file mode 100644 index 00000000000..936eec47c35 --- /dev/null +++ b/release-notes/Cabal-3.4.1.0.md @@ -0,0 +1,3 @@ +### Bugfixes + +- Backport windows fix for packages using autoconf >= 2.70 [!7668](https://github.com/haskell/cabal/pull/7668)