diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
index fbbbbc45b76..c8657406a2d 100644
--- a/.github/workflows/validate.yml
+++ b/.github/workflows/validate.yml
@@ -23,10 +23,10 @@ on:
 env:
   # We choose a stable ghc version across all os's
   # which will be used to do the next release
-  GHC_FOR_RELEASE: '9.2.3'
+  GHC_FOR_RELEASE: '9.2.7'
   # Ideally we should use the version about to be released for hackage tests and benchmarks
-  GHC_FOR_SOLVER_BENCHMARKS: '9.2.3'
-  GHC_FOR_COMPLETE_HACKAGE_TESTS: '9.2.3'
+  GHC_FOR_SOLVER_BENCHMARKS: '9.2.7'
+  GHC_FOR_COMPLETE_HACKAGE_TESTS: '9.2.7'
   COMMON_FLAGS: '-j 2 -v'
 
 jobs:
@@ -38,7 +38,7 @@ jobs:
     strategy:
       matrix:
         os: ["ubuntu-20.04", "macos-latest", "windows-latest"]
-        ghc: ["9.4.2", "9.2.3", "9.0.2", "8.10.7", "8.8.4", "8.6.5", "8.4.4"]
+        ghc: ["9.6.1", "9.4.4", "9.2.7", "9.0.2", "8.10.7", "8.8.4", "8.6.5", "8.4.4"]
         exclude:
           # corrupts GHA cache or the fabric of reality itself, see https://github.com/haskell/cabal/issues/8356
           - os: "windows-latest"
@@ -59,28 +59,15 @@ jobs:
 
       #  See the following link for a breakdown of the following step
       #  https://github.com/haskell/actions/issues/7#issuecomment-745697160
-      #
-      # See https://github.com/haskell/cabal/pull/8739 for why Windows is excluded
-      - if: ${{ runner.os != 'Windows' }}
-        uses: actions/cache@v3
+      - uses: actions/cache@v3
         with:
           # validate.sh uses a special build dir
           path: |
             ${{ steps.setup-haskell.outputs.cabal-store }}
             dist-*
-          key: ${{ runner.os }}-${{ matrix.ghc }}-20220419-${{ github.sha }}
-          restore-keys: ${{ runner.os }}-${{ matrix.ghc }}-20220419-
+          key: ${{ runner.os }}-${{ matrix.ghc }}-${{ github.sha }}
+          restore-keys: ${{ runner.os }}-${{ matrix.ghc }}-
 
-      # See https://github.com/haskell/cabal/pull/8739
-      - name: Sudo chmod to permit ghcup to update its cache
-        run: |
-          if [[ "${{ runner.os }}" == "Linux" ]]; then
-            sudo ls -lah /usr/local/.ghcup/cache
-            sudo mkdir -p /usr/local/.ghcup/cache
-            sudo ls -lah /usr/local/.ghcup/cache
-            sudo chown -R $USER /usr/local/.ghcup
-            sudo chmod -R 777 /usr/local/.ghcup
-          fi
       - uses: haskell/actions/setup@v2
         id: setup-haskell
         with:
@@ -97,7 +84,7 @@ jobs:
       - name: Install cabal-plan
         run: |
           cd $(mktemp -d)
-          cabal install cabal-plan --constraint='cabal-plan +exe'
+          cabal install cabal-plan --allow-newer="base" --constraint='cabal-plan +exe'
           echo "$HOME/.cabal/bin:$HOME/.local/bin" >> $GITHUB_PATH
 
       # The tool is not essential to the rest of the test suite. If
@@ -120,9 +107,6 @@ jobs:
       - name: Set validate inputs
         run: |
           FLAGS="${{ env.COMMON_FLAGS }}"
-          if [[ "${{ matrix.cli }}" == "false" ]]; then
-            FLAGS="$FLAGS --lib-only"
-          fi
           if [[ ${{ matrix.ghc }} == ${{ env.GHC_FOR_SOLVER_BENCHMARKS }} ]]; then
             FLAGS="$FLAGS --solver-benchmarks"
           fi
@@ -131,6 +115,11 @@ jobs:
           fi
           echo "FLAGS=$FLAGS" >> $GITHUB_ENV
 
+      - name: Allow newer dependencies when built with latest GHC
+        if: ${{ matrix.ghc }} == '9.6.1'
+        run: |
+          echo "allow-newer: rere:base, rere:transformers" >> cabal.project.validate
+
       - name: Validate print-config
         run: sh validate.sh $FLAGS -s print-config
 
@@ -141,7 +130,7 @@ jobs:
         run: sh validate.sh $FLAGS -s build
 
       - name: Tar cabal head executable
-        if: matrix.cli != 'false' && matrix.ghc == env.GHC_FOR_RELEASE
+        if: matrix.ghc == env.GHC_FOR_RELEASE
         run: |
           CABAL_EXEC=$(cabal-plan list-bin --builddir=dist-newstyle-validate-ghc-${{ matrix.ghc }} cabal-install:exe:cabal)
           # We have to tar the executable to preserve executable permissions
@@ -163,7 +152,7 @@ jobs:
       # - Reuse it in the dogfooding job (although we could use the cached build dir)
       # - Make it available in the workflow to make easier testing it locally
       - name: Upload cabal-install executable to workflow artifacts
-        if: matrix.cli != 'false' && matrix.ghc == env.GHC_FOR_RELEASE
+        if: matrix.ghc == env.GHC_FOR_RELEASE
         uses: actions/upload-artifact@v3
         with:
           name: cabal-${{ runner.os }}-${{ matrix.ghc }}
@@ -177,145 +166,18 @@ jobs:
         run: sh validate.sh $FLAGS -s lib-tests
 
       - name: Validate lib-suite
+        # Have to disable *-suite validation:
+        # - the Windows@9.6.1 problem is tracked at https://github.com/haskell/cabal/issues/8858
+        # - but curently can't run it with GHC 9.6, tracking: https://github.com/haskell/cabal/issues/8883
+        if: (runner.os != 'Windows')  || (matrix.ghc != '9.6.1')
         run: sh validate.sh $FLAGS -s lib-suite
 
       - name: Validate cli-tests
-        if: matrix.cli != 'false'
-        run: sh validate.sh $FLAGS -s cli-tests
-
-      - name: Validate cli-suite
-        if: matrix.cli != 'false'
-        run: sh validate.sh $FLAGS -s cli-suite
-
-  # The job below is a copy-paste of validate with the necessary tweaks
-  # to make all work with an upcoming GHC. Those tweaks include:
-  # - ghcup needs the prerelease channel activated
-  # - allow-newer for base libraries and Cabal* libraries
-  # - (sometimes) disabling some parts on Windows because it's hard to figure
-  #   out why they fail
-  validate-prerelease:
-    # TODO: reenable when the next GHC prerelease appears
-    if: false
-
-    name: Validate ${{ matrix.os }} ghc-prerelease
-    runs-on: ${{ matrix.os }}
-    outputs:
-      GHC_FOR_RELEASE: ${{ format('["{0}"]', env.GHC_FOR_RELEASE) }}
-    strategy:
-      matrix:
-        os: ["ubuntu-20.04", "macos-latest", "windows-latest"]
-
-    steps:
-
-      - uses: actions/checkout@v3
-
-      #  See the following link for a breakdown of the following step
-      #  https://github.com/haskell/actions/issues/7#issuecomment-745697160
-      #
-      # See https://github.com/haskell/cabal/pull/8739 for why Windows is excluded
-      - if: ${{ runner.os != 'Windows' }}
-        uses: actions/cache@v3
-        with:
-          # validate.sh uses a special build dir
-          path: |
-            ${{ steps.setup-haskell.outputs.cabal-store }}
-            dist-*
-          key: ${{ runner.os }}-${{ matrix.ghc }}-20220419-${{ github.sha }}
-          restore-keys: ${{ runner.os }}-${{ matrix.ghc }}-20220419-
-
-      # See https://github.com/haskell/cabal/pull/8739
-      - name: Sudo chmod to permit ghcup to update its cache
-        run: |
-          if [[ "${{ runner.os }}" == "Linux" ]]; then
-            sudo ls -lah /usr/local/.ghcup/cache
-            sudo mkdir -p /usr/local/.ghcup/cache
-            sudo ls -lah /usr/local/.ghcup/cache
-            sudo chown -R $USER /usr/local/.ghcup
-            sudo chmod -R 777 /usr/local/.ghcup
-          fi
-
-      - name: ghcup
-        run: |
-          ghcup --version
-          ghcup config set cache true
-          ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml
-          ghcup install ghc --set 9.6.0.20230210
-          ghcup install cabal --set latest
-          ghc --version
-          cabal update
-
-      - name: Work around git problem https://bugs.launchpad.net/ubuntu/+source/git/+bug/1993586 (cabal PR #8546)
-        run: |
-          git config --global protocol.file.allow always
-
-      # The '+exe' constraint below is important, otherwise cabal-install
-      # might decide to build the library but not the executable which is
-      # what we need.
-      - name: Install cabal-plan
-        run: |
-          cd $(mktemp -d)
-          cabal install cabal-plan --constraint='cabal-plan +exe' --allow-newer
-          echo "$HOME/.cabal/bin:$HOME/.local/bin" >> $GITHUB_PATH
-
-      # The tool is not essential to the rest of the test suite. If
-      # hackage-repo-tool is not present, any test that requires it will
-      # be skipped.
-      # We want to keep this in the loop but we don't want to fail if
-      # hackage-repo-tool breaks or fails to support a newer GHC version.
-      - name: Install hackage-repo-tool
-        continue-on-error: true
-        run: |
-          cd $(mktemp -d)
-          cabal install hackage-repo-tool
-
-      # Needed by cabal-testsuite/PackageTests/Configure/setup.test.hs
-      - name: Install Autotools
-        if: runner.os == 'macOS'
-        run: |
-          brew install automake
-
-      - name: Allow newer boot libraries
-        run: |
-          echo "allow-newer: base, template-haskell, ghc-prim, Cabal-syntax, Cabal-described, Cabal, cabal-install-solver, cabal-install" >> cabal.project.validate
-
-      - name: Set validate inputs
-        run: |
-          FLAGS="${{ env.COMMON_FLAGS }}"
-          if [[ "${{ matrix.cli }}" == "false" ]]; then
-            FLAGS="$FLAGS --lib-only"
-          fi
-          echo "FLAGS=$FLAGS" >> $GITHUB_ENV
-
-      - name: Validate print-config
-        run: sh validate.sh $FLAGS -s print-config
-
-      - name: Validate print-tool-versions
-        run: sh validate.sh $FLAGS -s print-tool-versions
-
-      - name: Validate build
-        run: sh validate.sh $FLAGS -s build
-
-      - name: Validate lib-tests
-        env:
-          # `rawSystemStdInOut reports text decoding errors`
-          # test does not find ghc without the full path in windows
-          GHCPATH: ${{ steps.setup-haskell.outputs.ghc-exe }}
-        run: sh validate.sh $FLAGS -s lib-tests
-
-      - name: Validate lib-suite
-        # see https://github.com/haskell/cabal/pull/8754#issuecomment-1435025848
-        # for discussion about the trouble on Windows
-        if: ${{ runner.os != 'Windows' }}
-        run: sh validate.sh $FLAGS -s lib-suite
-
-      - name: Validate cli-tests
-        if: matrix.cli != 'false'
         run: sh validate.sh $FLAGS -s cli-tests
 
       - name: Validate cli-suite
-        # see https://github.com/haskell/cabal/pull/8754#issuecomment-1435025848
-        # for discussion about the trouble on Windows
-        if: ( runner.os != 'Windows' ) && ( matrix.cli != 'false' )
+        # Have to disable *-suite validation, see above the comment for lib-suite
+        if: (runner.os != 'Windows')  || (matrix.ghc != '9.6.1')
         run: sh validate.sh $FLAGS -s cli-suite
 
   validate-old-ghcs:
@@ -351,17 +213,6 @@ jobs:
           git fetch origin $GITHUB_SHA:temporary-ci-branch
           git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA)
 
-      # As we are reusing the cached build dir from the previous step
-      # the generated artifacts are available here,
-      # including the cabal executable and the test suite
-      - uses: actions/cache@v3
-        with:
-          path: |
-            ${{ steps.setup-haskell.outputs.cabal-store }}
-            dist-*
-          key: ${{ runner.os }}-${{ matrix.ghc }}-20220419-${{ github.sha }}
-          restore-keys: ${{ runner.os }}-${{ matrix.ghc }}-20220419-
-
       - name: Install extra compiler
         run: |
           apt-get update
@@ -373,10 +224,21 @@ jobs:
           ghc-version: ${{ matrix.ghc }}
           cabal-version: latest # latest is mandatory for cabal-testsuite, see https://github.com/haskell/cabal/issues/8133
 
+      # As we are reusing the cached build dir from the previous step
+      # the generated artifacts are available here,
+      # including the cabal executable and the test suite
+      - uses: actions/cache@v3
+        with:
+          path: |
+            ${{ steps.setup-haskell.outputs.cabal-store }}
+            dist-*
+          key: ${{ runner.os }}-${{ matrix.ghc }}-${{ github.sha }}
+          restore-keys: ${{ runner.os }}-${{ matrix.ghc }}-
+
       - name: Install cabal-plan
         run: |
           cd $(mktemp -d)
-          cabal install cabal-plan --constraint='cabal-plan +exe'
+          cabal install cabal-plan --allow-newer="base" --constraint='cabal-plan +exe'
           echo "$HOME/.cabal/bin:$HOME/.local/bin" >> $GITHUB_PATH
 
       - name: Validate build
@@ -424,7 +286,7 @@ jobs:
       - name: Install cabal-plan
         run: |
           cd $(mktemp -d)
-          cabal install cabal-plan --constraint='cabal-plan +exe'
+          cabal install cabal-plan --allow-newer="base" --constraint='cabal-plan +exe'
           echo "$HOME/.cabal/bin:$HOME/.local/bin" >> $GITHUB_PATH
 
       - name: Download cabal executable from workflow artifacts
diff --git a/Cabal-tests/Cabal-tests.cabal b/Cabal-tests/Cabal-tests.cabal
index ce49eab8eb4..bb42abc7fc7 100644
--- a/Cabal-tests/Cabal-tests.cabal
+++ b/Cabal-tests/Cabal-tests.cabal
@@ -95,7 +95,7 @@ test-suite parser-tests
     , tasty-golden      >=2.3.1.1 && <2.4
     , tasty-hunit
     , tasty-quickcheck
-    , tree-diff         >=0.1     && <0.3
+    , tree-diff         >=0.1     && <0.4
 
   ghc-options:      -Wall
   default-language: Haskell2010
@@ -161,7 +161,7 @@ test-suite hackage-tests
     , optparse-applicative  >=0.13.2.0 && <0.17
     , stm                   >=2.4.5.0  && <2.6
     , tar                   >=0.5.0.3  && <0.6
-    , tree-diff             >=0.1      && <0.3
+    , tree-diff             >=0.1      && <0.4
 
   ghc-options:        -Wall -rtsopts -threaded
   default-extensions: CPP
diff --git a/Cabal-tree-diff/Cabal-tree-diff.cabal b/Cabal-tree-diff/Cabal-tree-diff.cabal
index 564584c0154..34e0b6de00b 100644
--- a/Cabal-tree-diff/Cabal-tree-diff.cabal
+++ b/Cabal-tree-diff/Cabal-tree-diff.cabal
@@ -13,7 +13,7 @@ library
     , base
     , Cabal-syntax  ^>=3.11.0.0
     , Cabal         ^>=3.11.0.0
-    , tree-diff     ^>=0.1 || ^>=0.2
+    , tree-diff     ^>=0.1 || ^>=0.2 || ^>=0.3
 
   exposed-modules:  Data.TreeDiff.Instances.Cabal
   other-modules:
diff --git a/cabal-install-solver/cabal-install-solver.cabal b/cabal-install-solver/cabal-install-solver.cabal
index 0c3170d71b2..7849e53b5b6 100644
--- a/cabal-install-solver/cabal-install-solver.cabal
+++ b/cabal-install-solver/cabal-install-solver.cabal
@@ -105,7 +105,7 @@ library
 
   build-depends:
     , array         >=0.4      && <0.6
-    , base          >=4.10     && <4.18
+    , base          >=4.10     && <4.19
     , bytestring    >=0.10.6.0 && <0.12
     , Cabal         ^>=3.11
     , Cabal-syntax  ^>=3.11
@@ -138,7 +138,7 @@ Test-Suite unit-tests
      UnitTests.Distribution.Solver.Modular.MessageUtils
 
    build-depends:
-     , base        >= 4.10  && <4.18
+     , base        >= 4.10  && <4.19
      , Cabal
      , Cabal-syntax
      , cabal-install-solver
diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal
index b2ac10004a5..99fa0398ae6 100644
--- a/cabal-install/cabal-install.cabal
+++ b/cabal-install/cabal-install.cabal
@@ -46,7 +46,7 @@ common warnings
       ghc-options: -Wunused-packages
 
 common base-dep
-    build-depends: base >=4.10 && <4.18
+    build-depends: base >=4.10 && <4.19
 
 common cabal-dep
     build-depends: Cabal ^>=3.11
diff --git a/cabal-testsuite/PackageTests/CustomPreProcess/cabal.test.hs b/cabal-testsuite/PackageTests/CustomPreProcess/cabal.test.hs
index b492140b4ed..93588d88c3f 100644
--- a/cabal-testsuite/PackageTests/CustomPreProcess/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/CustomPreProcess/cabal.test.hs
@@ -1,9 +1,6 @@
 import Test.Cabal.Prelude
 -- Test internal custom preprocessor
 main = cabalTest $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     skipUnless "no Cabal for GHC" =<< hasCabalForGhc
 
     -- old Cabal's ./Setup.hs output is difficult to normalise
diff --git a/cabal-testsuite/PackageTests/FFI/ForeignOptsC/cabal.test.hs b/cabal-testsuite/PackageTests/FFI/ForeignOptsC/cabal.test.hs
index 377b4a01466..7d5d4f0aff9 100644
--- a/cabal-testsuite/PackageTests/FFI/ForeignOptsC/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/FFI/ForeignOptsC/cabal.test.hs
@@ -1,7 +1,4 @@
 import Test.Cabal.Prelude
 main = cabalTest $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal "v2-build" ["foreign-opts-c-exe"]
     withPlan $ runPlanExe "foreign-opts-c" "foreign-opts-c-exe" []
diff --git a/cabal-testsuite/PackageTests/FFI/ForeignOptsCxx/cabal.test.hs b/cabal-testsuite/PackageTests/FFI/ForeignOptsCxx/cabal.test.hs
index 83177d702e3..10024955a78 100644
--- a/cabal-testsuite/PackageTests/FFI/ForeignOptsCxx/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/FFI/ForeignOptsCxx/cabal.test.hs
@@ -1,7 +1,4 @@
 import Test.Cabal.Prelude
 main = cabalTest $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal "v2-build" ["foreign-opts-cxx-exe"]
     withPlan $ runPlanExe "foreign-opts-cxx" "foreign-opts-cxx-exe" []
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdBench/OptionsFlag/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdBench/OptionsFlag/cabal.test.hs
index 055979ea65c..9174ba94a6c 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdBench/OptionsFlag/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdBench/OptionsFlag/cabal.test.hs
@@ -1,9 +1,6 @@
 import Test.Cabal.Prelude
 
 main = cabalTest $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal "v2-bench"
       [ "--benchmark-option=1"
       , "--benchmark-options=\"2 3\""
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdBuild/Script/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdBuild/Script/cabal.test.hs
index 7e4c31a6af7..db31636dc42 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdBuild/Script/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdBuild/Script/cabal.test.hs
@@ -1,9 +1,6 @@
 import Test.Cabal.Prelude
 
 main = cabalTest . void $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal' "v2-build" ["script.hs"]
 
     env      <- getTestEnv
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdBuild/ScriptRerun/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdBuild/ScriptRerun/cabal.test.hs
index 863d7706ab2..18c1becba42 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdBuild/ScriptRerun/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdBuild/ScriptRerun/cabal.test.hs
@@ -1,8 +1,5 @@
 import Test.Cabal.Prelude
 
 main = cabalTest . void $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal' "v2-build" ["script.hs"]
     cabal' "v2-build" ["script.hs"]
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdClean/Keep/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdClean/Keep/cabal.test.hs
index f54bf5a4bcf..8063d229034 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdClean/Keep/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdClean/Keep/cabal.test.hs
@@ -2,9 +2,6 @@ import Test.Cabal.Prelude
 import System.Directory (copyFile, removeFile)
 
 main = cabalTest . void $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     env <- getTestEnv
     let td = testCurrentDir env
 
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdClean/Orphan/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdClean/Orphan/cabal.test.hs
index 0eac6291ff2..39ba5185e94 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdClean/Orphan/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdClean/Orphan/cabal.test.hs
@@ -2,9 +2,6 @@ import Test.Cabal.Prelude
 import System.Directory (copyFile, removeFile)
 
 main = cabalTest . void $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     env <- getTestEnv
     let td = testCurrentDir env
 
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdClean/Script/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdClean/Script/cabal.test.hs
index aa0fc3e9d2f..d3870ce1520 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdClean/Script/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdClean/Script/cabal.test.hs
@@ -1,9 +1,6 @@
 import Test.Cabal.Prelude
 
 main = cabalTest . void $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal' "v2-build" ["script.hs"]
     cabal' "v2-clean" ["script.hs"]
 
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdRun/Script/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdRun/Script/cabal.test.hs
index e145dc9d863..045c88117d7 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdRun/Script/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdRun/Script/cabal.test.hs
@@ -1,9 +1,6 @@
 import Test.Cabal.Prelude
 
 main = cabalTest $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     res <- cabal' "v2-run" ["script.hs"]
     assertOutputContains "Hello World" res
 
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptNoExtension/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptNoExtension/cabal.test.hs
index e010ea6ec05..b78a6941a79 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptNoExtension/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptNoExtension/cabal.test.hs
@@ -1,7 +1,4 @@
 import Test.Cabal.Prelude
 
 main = cabalTest . void $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal' "v2-run" ["with sp"] >>= assertOutputContains "Hello World"
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptRerun/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptRerun/cabal.test.hs
index 3092a6ea57b..7df7f1451bc 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptRerun/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptRerun/cabal.test.hs
@@ -1,8 +1,5 @@
 import Test.Cabal.Prelude
 
 main = cabalTest . void $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal' "v2-run" ["script.hs"]
     cabal' "v2-run" ["script.hs"]
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptWithProjectBlock/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptWithProjectBlock/cabal.test.hs
index 731fb7182da..8c92079136b 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptWithProjectBlock/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdRun/ScriptWithProjectBlock/cabal.test.hs
@@ -1,9 +1,6 @@
 import Test.Cabal.Prelude
 
 main = cabalTest $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     -- script is called "s.hs" to avoid Windows long path issue in CI
     res <- cabal' "v2-run" ["s.hs"]
     assertOutputContains "Hello World" res
diff --git a/cabal-testsuite/PackageTests/NewBuild/CmdTest/OptionsFlag/cabal.test.hs b/cabal-testsuite/PackageTests/NewBuild/CmdTest/OptionsFlag/cabal.test.hs
index c0493cf4629..e9b8f5b6c12 100644
--- a/cabal-testsuite/PackageTests/NewBuild/CmdTest/OptionsFlag/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/NewBuild/CmdTest/OptionsFlag/cabal.test.hs
@@ -1,9 +1,6 @@
 import Test.Cabal.Prelude
 
 main = cabalTest $ do
-  isWin <- isWindows
-  ghc94 <- isGhcVersion "== 9.4.*"
-  expectBrokenIf (isWin && ghc94) 8451 $ do
     cabal "v2-test"
       [ "--test-option=1"
       , "--test-options=\"2 3\""
diff --git a/cabal-testsuite/cabal-testsuite.cabal b/cabal-testsuite/cabal-testsuite.cabal
index eae22717dbc..204859e50d5 100644
--- a/cabal-testsuite/cabal-testsuite.cabal
+++ b/cabal-testsuite/cabal-testsuite.cabal
@@ -26,7 +26,7 @@ common shared
   default-language: Haskell2010
 
   build-depends:
-    , base >= 4.9 && <4.18
+    , base >= 4.9 && <4.19
     -- this needs to match the in-tree lib:Cabal version
     , Cabal ^>= 3.11.0.0
     , Cabal-syntax ^>= 3.11.0.0
@@ -80,7 +80,7 @@ library
 
   if !os(windows)
     build-depends:
-      , unix                ^>= 2.6.0.0 || ^>= 2.7.0.0
+      , unix                ^>= 2.6.0.0 || ^>= 2.7.0.0 || ^>= 2.8.0.0
   else
     build-depends:
       , Win32