diff --git a/Cabal/src/Distribution/Simple/Utils.hs b/Cabal/src/Distribution/Simple/Utils.hs
index e141e5bbff43d0589430a93220bc5082fce599c1..6bede1f2fdc20873f79a55aa4f3ef38d4d1faed8 100644
--- a/Cabal/src/Distribution/Simple/Utils.hs
+++ b/Cabal/src/Distribution/Simple/Utils.hs
@@ -34,6 +34,7 @@ module Distribution.Simple.Utils
   , topHandler
   , topHandlerWith
   , warn
+  , warnError
   , notice
   , noticeNoWrap
   , noticeDoc
@@ -493,14 +494,24 @@ verbosityHandle verbosity
 --
 -- We display these at the 'normal' verbosity level.
 warn :: Verbosity -> String -> IO ()
-warn verbosity msg = withFrozenCallStack $ do
+warn verbosity msg = warnMessage "Warning" verbosity msg
+
+-- | Like 'warn', but prepend @Error: …@ instead of @Waring: …@ before the
+-- the message. Useful when you want to highlight the condition is an error
+-- but do not want to quit the program yet.
+warnError :: Verbosity -> String -> IO ()
+warnError verbosity message = warnMessage "Error" verbosity message
+
+-- | Warning message, with a custom label.
+warnMessage :: String -> Verbosity -> String -> IO ()
+warnMessage l verbosity msg = withFrozenCallStack $ do
   when ((verbosity >= normal) && not (isVerboseNoWarn verbosity)) $ do
     ts <- getPOSIXTime
     hFlush stdout
     hPutStr stderr
       . withMetadata ts NormalMark FlagTrace verbosity
       . wrapTextVerbosity verbosity
-      $ "Warning: " ++ msg
+      $ l ++ ": " ++ msg
 
 -- | Useful status messages.
 --
diff --git a/cabal-install/src/Distribution/Client/Check.hs b/cabal-install/src/Distribution/Client/Check.hs
index 654725971bc8f311c0966c7a23b009c518d3e4e5..b4c85f0abc3537ed250a9d22673f3754c1eef890 100644
--- a/cabal-install/src/Distribution/Client/Check.hs
+++ b/cabal-install/src/Distribution/Client/Check.hs
@@ -30,10 +30,14 @@ import Distribution.PackageDescription.Parsec
   , runParseResult
   )
 import Distribution.Parsec (PWarning (..), showPError)
-import Distribution.Simple.Utils (defaultPackageDesc, die', notice, warn)
+import Distribution.Simple.Utils (defaultPackageDesc, die', notice, warn, warnError)
 import System.IO (hPutStr, stderr)
 
+import qualified Control.Monad as CM
 import qualified Data.ByteString as BS
+import qualified Data.Function as F
+import qualified Data.List as L
+import qualified Data.List.NonEmpty as NE
 import qualified System.Directory as Dir
 
 readGenericPackageDescriptionCheck :: Verbosity -> FilePath -> IO ([PWarning], GenericPackageDescription)
@@ -77,40 +81,52 @@ check verbosity = do
   let pkg_desc = flattenPackageDescription ppd
   ioChecks <- checkPackageFiles verbosity pkg_desc "."
   let packageChecks = ioChecks ++ checkPackage ppd (Just pkg_desc) ++ ws'
-      buildImpossible = [x | x@PackageBuildImpossible{} <- packageChecks]
-      buildWarning = [x | x@PackageBuildWarning{} <- packageChecks]
-      distSuspicious =
-        [x | x@PackageDistSuspicious{} <- packageChecks]
-          ++ [x | x@PackageDistSuspiciousWarn{} <- packageChecks]
-      distInexusable = [x | x@PackageDistInexcusable{} <- packageChecks]
 
-  unless (null buildImpossible) $ do
-    warn verbosity "The package will not build sanely due to these errors:"
-    printCheckMessages buildImpossible
-
-  unless (null buildWarning) $ do
-    warn verbosity "The following warnings are likely to affect your build negatively:"
-    printCheckMessages buildWarning
-
-  unless (null distSuspicious) $ do
-    warn verbosity "These warnings may cause trouble when distributing the package:"
-    printCheckMessages distSuspicious
-
-  unless (null distInexusable) $ do
-    warn verbosity "The following errors will cause portability problems on other environments:"
-    printCheckMessages distInexusable
+  CM.mapM_ (outputGroupCheck verbosity) (groupChecks packageChecks)
 
   let errors = filter isHackageDistError packageChecks
 
   unless (null errors) $
-    warn verbosity "Hackage would reject this package."
+    warnError verbosity "Hackage would reject this package."
 
   when (null packageChecks) $
     notice verbosity "No errors or warnings could be found in the package."
 
   return (null errors)
-  where
-    printCheckMessages :: [PackageCheck] -> IO ()
-    printCheckMessages = traverse_ (warn verbosity) . map show
 
--- xxx mapM_ o traverse?
+-------------------------------------------------------------------------------
+-- Grouping/displaying checks
+
+-- Poor man’s “group checks by constructor”.
+groupChecks :: [PackageCheck] -> [NE.NonEmpty PackageCheck]
+groupChecks ds = NE.groupBy (F.on (==) constInt)
+                            (L.sortBy (F.on compare constInt) ds)
+    where
+          constInt :: PackageCheck -> Int
+          constInt (PackageBuildImpossible {}) = 0
+          constInt (PackageBuildWarning {}) = 1
+          constInt (PackageDistSuspicious {}) = 2
+          constInt (PackageDistSuspiciousWarn {}) = 3
+          constInt (PackageDistInexcusable {}) = 4
+
+groupExplanation :: PackageCheck -> String
+groupExplanation (PackageBuildImpossible {}) = "The package will not build sanely due to these errors:"
+groupExplanation (PackageBuildWarning {}) = "The following errors are likely to affect your build negatively:"
+groupExplanation (PackageDistSuspicious {}) = "These warnings will likely cause trouble when distributing the package:"
+groupExplanation (PackageDistSuspiciousWarn {}) = "These warnings may cause trouble when distributing the package:"
+groupExplanation (PackageDistInexcusable {}) = "The following errors will cause portability problems on other environments:"
+
+groupOutputFunction :: PackageCheck -> Verbosity -> String -> IO ()
+groupOutputFunction (PackageBuildImpossible {}) ver = warnError ver
+groupOutputFunction (PackageBuildWarning {}) ver = warnError ver
+groupOutputFunction (PackageDistSuspicious {}) ver = warn ver
+groupOutputFunction (PackageDistSuspiciousWarn {}) ver = warn ver
+groupOutputFunction (PackageDistInexcusable {}) ver = warnError ver
+
+outputGroupCheck :: Verbosity -> NE.NonEmpty PackageCheck -> IO ()
+outputGroupCheck ver pcs = do
+          let hp = NE.head pcs
+              outf = groupOutputFunction hp ver
+          notice ver (groupExplanation hp)
+          CM.mapM_ (outf . ppPackageCheck) pcs
+
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CCOptionsExtraLibDirs/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CCOptionsExtraLibDirs/cabal.out
index f9681d87a04a03d58930c59d28062a4a599c80cb..11968358ef86bb8a6c41c1c25ff93b251e723346 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CCOptionsExtraLibDirs/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CCOptionsExtraLibDirs/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Instead of 'cc-options: -Llibdir' use 'extra-lib-dirs: libdir'
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Instead of 'cc-options: -Llibdir' use 'extra-lib-dirs: libdir'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CCOptionsInclude/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CCOptionsInclude/cabal.out
index c982bef5a18b2cbe2be7b498ac5d6f6249056f4b..1886f29f4e40a00f60655638eabcef8e417d0bca 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CCOptionsInclude/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CCOptionsInclude/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Instead of 'cc-options: -Ifolder' use 'include-dirs: folder'
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Instead of 'cc-options: -Ifolder' use 'include-dirs: folder'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CppNotPortable/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CppNotPortable/cabal.out
index cfc4becef8ca6fc1f68f7a304fa08ae61378c54a..1d018c9105d2f63dc7305eba4417d963a394156a 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CppNotPortable/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CppNotPortable/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: 'cpp-options: -Q' is not a portable C-preprocessor flag.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: 'cpp-options: -Q' is not a portable C-preprocessor flag.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CxxOptionsExtraLibraries/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CxxOptionsExtraLibraries/cabal.out
index 891b62c0a58d4978d962b6b910be2d0d0d7ae83f..03a1fe9538141d10031949adb35f64ee52c24cef 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CxxOptionsExtraLibraries/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CxxOptionsExtraLibraries/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Instead of 'cxx-options: -lgame' use 'extra-libraries: game'
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Instead of 'cxx-options: -lgame' use 'extra-libraries: game'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CxxOs/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CxxOs/cabal.out
index bf34faed5cbcd4dda69247e4d07ad14102d719b7..70b9e563c8c37d25d1912c89eb48a0d7191f6541 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CxxOs/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/COptions/CxxOs/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: 'cxx-options: -O[n]' is generally not needed. When building with  optimisations Cabal automatically adds '-O2' for C++ code. Setting it yourself interferes with the --disable-optimization flag.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/AutoGenMods/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/AutoGenMods/cabal.out
index 6ed067c93ac62aa4f7f6b141b9b28336a62a6563..8d0799bafc4349f0a23670a1e0e63d41f9a6e7c0 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/AutoGenMods/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/AutoGenMods/cabal.out
@@ -1,5 +1,5 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: Packages using 'cabal-version: 2.0' and the autogenerated module Paths_* must include it also on the 'autogen-modules' field besides 'exposed-modules' and 'other-modules'. This specifies that the module does not come with the package and is generated on setup. Modules built with a custom Setup.hs script also go here to ensure that commands like sdist don't fail.
-Warning: Packages using 'cabal-version: 2.0' and the autogenerated module PackageInfo_* must include it in 'autogen-modules' as well as 'exposed-modules' and 'other-modules'. This specifies that the module does not come with the package and is generated on setup. Modules built with a custom Setup.hs script also go here to ensure that commands like sdist don't fail.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: Packages using 'cabal-version: 2.0' and the autogenerated module Paths_* must include it also on the 'autogen-modules' field besides 'exposed-modules' and 'other-modules'. This specifies that the module does not come with the package and is generated on setup. Modules built with a custom Setup.hs script also go here to ensure that commands like sdist don't fail.
+Error: Packages using 'cabal-version: 2.0' and the autogenerated module PackageInfo_* must include it in 'autogen-modules' as well as 'exposed-modules' and 'other-modules'. This specifies that the module does not come with the package and is generated on setup. Modules built with a custom Setup.hs script also go here to ensure that commands like sdist don't fail.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/CustomSetup/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/CustomSetup/cabal.out
index d198d56fe87ee087d31498833d3e7593e877fea5..a6136b65ff1e521a155286720b6621ce1d38027a 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/CustomSetup/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/CustomSetup/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: From version 1.24 cabal supports specifying explicit dependencies for Custom setup scripts. Consider using 'cabal-version: 1.24' or higher and adding a 'custom-setup' section with a 'setup-depends' field that specifies the dependencies of the Setup.hs script itself. The 'setup-depends' field uses the same syntax as 'build-depends', so a simple example would be 'setup-depends: base, Cabal'.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultExtension/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultExtension/cabal.out
index ba545343e16343b734bcd92fc1b08c6f8bdeef60..158f22274a1674257b0ec395cdf54defa7d7b42b 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultExtension/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultExtension/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:14:3: The field "default-extensions" is available only since the Cabal specification version 1.10. This field will be ignored.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultLanguage/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultLanguage/cabal.out
index b8e96488dbae89ab25c5dd7c10bc20c1d2f1e5d2..e6777f75f91d65516df37d1afe7195338c892476 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultLanguage/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultLanguage/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:14:3: The field "default-language" is available only since the Cabal specification version 1.10. This field will be ignored.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultLanguageSpec/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultLanguageSpec/cabal.out
index 873802c7a6ba4d1c0fc52b782d9070877b742027..d15028bdca2a4d446f62b1e07a4d9bd866ff3746 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultLanguageSpec/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/DefaultLanguageSpec/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Packages using 'cabal-version: >= 1.10' and before 'cabal-version: 3.4' must specify the 'default-language' field for each component (e.g. Haskell98 or Haskell2010). If a component uses different languages in different modules then list the other ones in the 'other-languages' field.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Packages using 'cabal-version: >= 1.10' and before 'cabal-version: 3.4' must specify the 'default-language' field for each component (e.g. Haskell98 or Haskell2010). If a component uses different languages in different modules then list the other ones in the 'other-languages' field.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtensionBreak/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtensionBreak/cabal.out
index f355c63243b4ef24f15d21144e0613740e33cbdb..e585e23095a25be21cbfa13d43f51718cbd042c5 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtensionBreak/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtensionBreak/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: Unfortunately the language extensions 'MonoPatBinds' break the parser in earlier Cabal versions so you need to specify 'cabal-version: >= 1.4'. Alternatively if you require compatibility with earlier Cabal versions then you may be able to use an equivalent compiler-specific flag.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: Unfortunately the language extensions 'MonoPatBinds' break the parser in earlier Cabal versions so you need to specify 'cabal-version: >= 1.4'. Alternatively if you require compatibility with earlier Cabal versions then you may be able to use an equivalent compiler-specific flag.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Extensions/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Extensions/cabal.out
index 351d74dff86e542e2655e7677a0596f216303943..5d1206fb865473ce5b2020b098a0889a46e6b248 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Extensions/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Extensions/cabal.out
@@ -1,6 +1,6 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: For packages using 'cabal-version: >= 1.10' the 'extensions' field is deprecated. The new 'default-extensions' field lists extensions that are used in all modules in the component, while the 'other-extensions' field lists extensions that are used in some modules, e.g. via the {-# LANGUAGE #-} pragma.
-Warning: These warnings may cause trouble when distributing the package:
+The following errors are likely to affect your build negatively:
+Error: For packages using 'cabal-version: >= 1.10' the 'extensions' field is deprecated. The new 'default-extensions' field lists extensions that are used in all modules in the component, while the 'other-extensions' field lists extensions that are used in some modules, e.g. via the {-# LANGUAGE #-} pragma.
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:14:3: The field "extensions" is deprecated in the Cabal specification version 1.12. Please use 'default-extensions' or 'other-extensions' fields.
-Warning: Hackage would reject this package.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraDoc/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraDoc/cabal.out
index 2432aa3188d40bbdf152d48a01aaa9fa47a5f167..e278c388c68d5171b5aaab64a1261e8b734186cc 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraDoc/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraDoc/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: To use the 'extra-doc-files' field the package needs to specify 'cabal-version: 1.18' or higher.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: To use the 'extra-doc-files' field the package needs to specify 'cabal-version: 1.18' or higher.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraDynamicLibraryFlavour/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraDynamicLibraryFlavour/cabal.out
index 122fee2ffa8ddeb566cb3b51540a54d4d84c64ad..8653d8052b7a89b9f769203a6c0130caed8601e0 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraDynamicLibraryFlavour/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraDynamicLibraryFlavour/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:14:3: The field "extra-dynamic-library-flavours" is available only since the Cabal specification version 3.0. This field will be ignored.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraFrameworkDirs/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraFrameworkDirs/cabal.out
index b5329d39d47919fd9b1ea6079b4e39f00469c302..4787a8d3906af74ae1de0e3a667e9e9bfc30800e 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraFrameworkDirs/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/ExtraFrameworkDirs/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: To use the 'extra-framework-dirs' field the package needs to specify 'cabal-version: 1.24' or higher.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Mixins/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Mixins/cabal.out
index 57a5c7fa860fb247d2e9a55980c2af9810a19f69..b3cdf60b8fb5343677e8e1f2661e31ea44f432d4 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Mixins/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Mixins/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:15:3: The field "mixins" is available only since the Cabal specification version 2.0. This field will be ignored.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/MultiLibs/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/MultiLibs/cabal.out
index 9b72a6e6fdd96b1bd5815834ccc32074e45ecc36..781eb79249ca6debc96771bd7a6b00dc63fdb6c9 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/MultiLibs/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/MultiLibs/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: To use multiple 'library' sections or a named library section the package needs to specify at least 'cabal-version: 2.0'.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: To use multiple 'library' sections or a named library section the package needs to specify at least 'cabal-version: 2.0'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Reexported/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Reexported/cabal.out
index 80956ae0a32f43f4c264e8e0da5d3aeb7e976ab0..c8744b4247d3ce3380ff1e07d1978490f14e2029 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Reexported/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Reexported/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: To use the 'reexported-module' field the package needs to specify 'cabal-version: 1.22' or higher.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: To use the 'reexported-module' field the package needs to specify 'cabal-version: 1.22' or higher.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/SourceRepository/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/SourceRepository/cabal.out
index 01a7bec50522e23b0d52f938001833308e592208..3bbf94940a22a6efd44c1f9c421937fae27cfaae 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/SourceRepository/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/SourceRepository/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The 'source-repository' section is new in Cabal 1.6. Unfortunately it messes up the parser in earlier Cabal versions so you need to specify 'cabal-version: >= 1.6'.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The 'source-repository' section is new in Cabal 1.6. Unfortunately it messes up the parser in earlier Cabal versions so you need to specify 'cabal-version: >= 1.6'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Sources/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Sources/cabal.out
index 0a4fcea5d325ce25933cd699476099045f7f6b95..22b9a8325d20296f4abb1465701052aeef068631 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Sources/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Sources/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:14:3: The field "cmm-sources" is available only since the Cabal specification version 3.0. This field will be ignored.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Testsuite1.8/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Testsuite1.8/cabal.out
index 248ca6c3f6effdaba9f85d5b9a20aceb6006c4ef..e11f45f88a163904defeb55a73607e65411d22a3 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Testsuite1.8/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/Testsuite1.8/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The 'test-suite' section is new in Cabal 1.10. Unfortunately it messes up the parser in older Cabal versions so you must specify at least 'cabal-version: >= 1.8', but note that only Cabal 1.10 and later can actually run such test suites.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The 'test-suite' section is new in Cabal 1.10. Unfortunately it messes up the parser in older Cabal versions so you must specify at least 'cabal-version: >= 1.8', but note that only Cabal 1.10 and later can actually run such test suites.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/VirtualModules/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/VirtualModules/cabal.out
index b0c046c5254e79d1844023e6517819338e2cf26c..0d294b7fa40538f21272b32ecc446b20d796f581 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/VirtualModules/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/CabalVersion/VirtualModules/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:14:3: The field "virtual-modules" is available only since the Cabal specification version 2.2. This field will be ignored.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/DeprecatedExtension/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/DeprecatedExtension/cabal.out
index 8256caeae6cf46c120a448932e4598ab3d87537f..312b6054a67c5da12a488e6053914c30ce5e222c 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/DeprecatedExtension/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/DeprecatedExtension/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: Deprecated extensions: 'RecordPuns'. Instead of 'RecordPuns' use 'NamedFieldPuns'.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/ImpossibleVersionRangeLib/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/ImpossibleVersionRangeLib/cabal.out
index 2dee1b698e96d2cfb690df3bad4da78d0865cbda..5710d84e88cf7cdd26257c376842c7cdc05fbc8a 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/ImpossibleVersionRangeLib/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/ImpossibleVersionRangeLib/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: The package has an impossible version range for a dependency on an internal library: pkg:internal >1.0. This version range does not include the current package, and must be removed as the current package's library will always be used.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: The package has an impossible version range for a dependency on an internal library: pkg:internal >1.0. This version range does not include the current package, and must be removed as the current package's library will always be used.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/InvalidTestedWithRange/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/InvalidTestedWithRange/cabal.out
index e0208991ec49a8ab0c2be00ef6461baf8fcea8d2..42ba46392e10308df9b47f2700b5d580728be1d2 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/InvalidTestedWithRange/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/InvalidTestedWithRange/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: Invalid 'tested-with' version range: ghc ==6.10 && ==7.1. To indicate that you have tested a package with multiple different versions of the same compiler use multiple entries, for example 'tested-with: GHC==6.10.4, GHC==6.12.3' and not 'tested-with: GHC==6.10.4 && ==6.12.3'.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: Invalid 'tested-with' version range: ghc ==6.10 && ==7.1. To indicate that you have tested a package with multiple different versions of the same compiler use multiple entries, for example 'tested-with: GHC==6.10.4, GHC==6.12.3' and not 'tested-with: GHC==6.10.4 && ==6.12.3'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/LanguageAsExtension/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/LanguageAsExtension/cabal.out
index 7064ceed695292fa462730c2bf77e3504801ea5b..b9fc6aad35b51defff426273ea72bfa4f8fce0e9 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/LanguageAsExtension/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/LanguageAsExtension/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Languages listed as extensions: Haskell98. Languages must be specified in either the 'default-language'  or the 'other-languages' field.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Languages listed as extensions: Haskell98. Languages must be specified in either the 'default-language'  or the 'other-languages' field.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoBuildTypeSpecified/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoBuildTypeSpecified/cabal.out
index 007bdd3a10c262446cdbeddd83391987554a94d0..db55a3ca9d246ebd9ea142032146b8e4b4458eda 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoBuildTypeSpecified/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoBuildTypeSpecified/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: No 'build-type' specified. If you do not need a custom Setup.hs or ./configure script then use 'build-type: Simple'.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: No 'build-type' specified. If you do not need a custom Setup.hs or ./configure script then use 'build-type: Simple'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoCategory/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoCategory/cabal.out
index d8613b62ef27438c686e7bebf64a636504e3d451..212ddc826c19d7f0961d79f30ca35090a35f8bab 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoCategory/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoCategory/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: No 'category' field.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoCustom/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoCustom/cabal.out
index 9dca65dd911223c731296ad78c5a58a78b3723b5..26779e22ed24823c04b5aeef162ee5f7420f9e37 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoCustom/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoCustom/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Ignoring the 'custom-setup' section because the 'build-type' is not 'Custom'. Use 'build-type: Custom' if you need to use a custom Setup.hs script.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Ignoring the 'custom-setup' section because the 'build-type' is not 'Custom'. Use 'build-type: Custom' if you need to use a custom Setup.hs script.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoDescription/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoDescription/cabal.out
index 21a566a179fd16d349df9d5a4eb599ecbad97bde..3754003ebd590a98d7da23b50d6652e4d4bb18ec 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoDescription/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoDescription/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: No 'description' field.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoMaintainer/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoMaintainer/cabal.out
index 2d81a0970b3dd4a9ce4e84001dc67609dddb47c2..18f1b2e50aebfc8f8cee323803a2aba9ed714e1f 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoMaintainer/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoMaintainer/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: No 'maintainer' field.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoSynopsis/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoSynopsis/cabal.out
index 487a6453020985c1782f86b442851b6f30085a81..7c5e82873a1dcef367b1ec17415140ab5562af04 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoSynopsis/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoSynopsis/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: No 'synopsis' field.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoZPrefix/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoZPrefix/cabal.out
index 84deddb040dead0bf619ab4a61cec16624e84329..61998a26253a3994438a77a55fcc6b58fd50363a 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoZPrefix/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/NoZPrefix/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: Package names with the prefix 'z-' are reserved by Cabal and cannot be used.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: Package names with the prefix 'z-' are reserved by Cabal and cannot be used.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/ShortDescription/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/ShortDescription/cabal.out
index 5531fc778ef1c0096796717bfcbdbfc11915e393..6ab4a3c38b4472d84df556496acbe16b00281f88 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/ShortDescription/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/ShortDescription/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: The 'description' field should be longer than the 'synopsis' field. It's useful to provide an informative 'description' to allow Haskell programmers who have never heard about your package to understand the purpose of your package. The 'description' field content is typically shown by tooling (e.g. 'cabal info', Haddock, Hackage) below the 'synopsis' which serves as a headline. Please refer to <https://cabal.readthedocs.io/en/stable/cabal-package.html#package-properties> for more details.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownCompiler/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownCompiler/cabal.out
index 34c7a83e4d3efb68253fb7d72a3e4b75ac9429b7..2859433cf4d1d95f44f48bdd4ac795cd36fca1c4 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownCompiler/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownCompiler/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Unknown compiler 'figforth' in 'tested-with' field.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Unknown compiler 'figforth' in 'tested-with' field.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownExtension/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownExtension/cabal.out
index e7e2b6bf9f4d6070589dba36f179acc270e5d0e7..7b44b7da37f9c41c4baa52f2c859df0a9ee38974 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownExtension/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownExtension/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Unknown extensions: ObliqueTypes
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Unknown extensions: ObliqueTypes
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownLanguage/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownLanguage/cabal.out
index 38dcc1ceb0cb6294647af925c9b7dc557ac11c66..38512b53c70e461664022ff296ead3e8149187ee 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownLanguage/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Fields/UnknownLanguage/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: Unknown languages: Haskell2030
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: Unknown languages: Haskell2030
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCOptions/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCOptions/cabal.out
index 68a0f0414bf3033997490ca561faa78970232701..1227df464c0c846b47956601fad3e14b6f9b29f0 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCOptions/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCOptions/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'ghc-options: -fasm' is unnecessary and will not work on CPU architectures other than x86, x86-64, ppc or sparc.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: 'ghc-options: -fasm' is unnecessary and will not work on CPU architectures other than x86, x86-64, ppc or sparc.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCProfOptions/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCProfOptions/cabal.out
index 9a01ad49fbfd6e1530ae712ba3c9786d5e09365f..eff6f0352a7cb97e687158c6e927bfc8a6b99e22 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCProfOptions/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCProfOptions/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: 'ghc-prof-options: -o' is not needed. The output files are named automatically.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: 'ghc-prof-options: -o' is not needed. The output files are named automatically.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCSharedOptions/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCSharedOptions/cabal.out
index 0bbdc46da2ed2c1fcf4a2f7da36d3233938d9fb3..996af558dceb45e2c5856ce09f9d35b33eb70cb3 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCSharedOptions/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/GHCOptions/GHCSharedOptions/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: Instead of 'ghc-shared-options: -fglasgow-exts' it is preferable to use the 'extensions' field.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/Compatibility/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/Compatibility/cabal.out
index 09363396aa16b0b84ca5a36c8ec150b7212736b0..e41ad1c8b5d39ce1bca20b1d3bfea5bfc5bd5562 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/Compatibility/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/Compatibility/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: Unfortunately the license 'ISC' messes up the parser in earlier Cabal versions so you need to specify 'cabal-version: >= 1.4'. Alternatively if you require compatibility with earlier Cabal versions then use 'OtherLicense'.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: Unfortunately the license 'ISC' messes up the parser in earlier Cabal versions so you need to specify 'cabal-version: >= 1.4'. Alternatively if you require compatibility with earlier Cabal versions then use 'OtherLicense'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoFileSpecified/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoFileSpecified/cabal.out
index e5d4dd5a95f94cf48da5793829b3c55f23867163..a21a032fdc518121a73106b732ec6603b507b8ba 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoFileSpecified/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoFileSpecified/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: A 'license-file' is not specified.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoFileSpecified/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoFileSpecified/cabal.test.hs
index 7a81a247159fabf4cb4ee55dd25235ee5b7f31ca..fb5a68e5bac3ad2672cdee5b74a33eab1a804451 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoFileSpecified/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoFileSpecified/cabal.test.hs
@@ -1,5 +1,5 @@
 import Test.Cabal.Prelude
 
--- `licence-file` missing.
+-- `license-file` missing.
 main = cabalTest $
   cabal "check" []
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoLicense/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoLicense/cabal.out
index 97d51e4a9eba2ecbbed69340080bfbd18c785e6d..b5b98a177f9cf7e2c60dd1b19f1eca26eff81c38 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoLicense/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoLicense/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The 'license' field is missing or is NONE.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The 'license' field is missing or is NONE.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoneLicense/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoneLicense/cabal.out
index 97d51e4a9eba2ecbbed69340080bfbd18c785e6d..b5b98a177f9cf7e2c60dd1b19f1eca26eff81c38 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoneLicense/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/NoneLicense/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The 'license' field is missing or is NONE.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The 'license' field is missing or is NONE.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/SuspiciousLicense/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/SuspiciousLicense/cabal.out
index 8655c81e5ef0bd949e072eff19f01954dafd37e5..5c3e9dcfc94a0c631a56b718ecaaae89155f250b 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/SuspiciousLicense/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/SuspiciousLicense/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: Using 'license: BSD4' is almost always a misunderstanding. 'BSD4' refers to the old 4-clause BSD license with the advertising clause. 'BSD3' refers the new 3-clause BSD license.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/SuspiciousVersion/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/SuspiciousVersion/cabal.out
index 5b5b542a263f6cb2689a58717a4571b69383f880..e42fa129f7b85ab04a894c6b36401405c99d3ac0 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/SuspiciousVersion/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/SuspiciousVersion/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: 'license: GPL-5' is not a known version of that license. The known versions are 2, 3. If this is not a mistake and you think it should be a known version then please file a ticket.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/UnknownLicence/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/UnknownLicence/cabal.out
index 91bf9dac72deb03413445905aaa8f3d51f720f83..f5cb98a415e922c678774069b0eb4284391a8928 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/UnknownLicence/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/UnknownLicence/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: 'license: Illiberal' is not a recognised license. The known licenses are: GPL, GPL-2, GPL-3, LGPL, LGPL-2.1, LGPL-3, AGPL, AGPL-3, BSD2, BSD3, MIT, ISC, MPL-2.0, Apache, Apache-2.0, PublicDomain, AllRightsReserved, OtherLicense
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: 'license: Illiberal' is not a recognised license. The known licenses are: GPL, GPL-2, GPL-3, LGPL, LGPL-2.1, LGPL-3, AGPL, AGPL-3, BSD2, BSD3, MIT, ISC, MPL-2.0, Apache, Apache-2.0, PublicDomain, AllRightsReserved, OtherLicense
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/WarnAllRightsReserved/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/WarnAllRightsReserved/cabal.out
index ab626433adadd5f6d70c3da089818f28b44a5666..a3bae9860ebd5c385131f0ac7f40d5a455c76ce1 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/WarnAllRightsReserved/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/License/WarnAllRightsReserved/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: The 'license' is AllRightsReserved. Is that really what you want?
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/AbsolutePath/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/AbsolutePath/cabal.out
index e38f0f28ef573ce86f96476799ff34deb5d95f0f..23af99ec09a07f7bb7cd7700d47d5c1c13ee1127 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/AbsolutePath/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/AbsolutePath/cabal.out
@@ -1,7 +1,7 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: In 'extra-source-files': the pattern '/home/user/file' does not match any files.
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'extra-source-files: /home/user/file' specifies an absolute path, but the 'extra-source-files' field must use relative paths.
-Warning: 'extra-source-files: /home/user/file' is not a good relative path: "posix absolute path"
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: 'extra-source-files: /home/user/file' specifies an absolute path, but the 'extra-source-files' field must use relative paths.
+Error: 'extra-source-files: /home/user/file' is not a good relative path: "posix absolute path"
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/DistPoint/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/DistPoint/cabal.out
index 5c31936dda06a9b3dd0afb44585db47d56b60df1..81f9ada5773df01d3df4e17b178b1f6fc3ecacc9 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/DistPoint/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/DistPoint/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'ghc-options' path 'dist/file' points inside the 'dist' directory. This is not reliable because the location of this directory is configurable by the user (or package manager). In addition the layout of the 'dist' directory is subject to change in future versions of Cabal.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: 'ghc-options' path 'dist/file' points inside the 'dist' directory. This is not reliable because the location of this directory is configurable by the user (or package manager). In addition the layout of the 'dist' directory is subject to change in future versions of Cabal.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/InvalidWin/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/InvalidWin/cabal.out
index 349dbe5f541ec85d5fec59819b0dd7fe8ed24f80..55661e4801019e3d0f89ddfc2d1cd5fc89fa0090 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/InvalidWin/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/InvalidWin/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The path 'n?ul/*.a' is invalid on Windows, which would cause portability problems for this package. Windows file names cannot contain any of the characters ":*?<>|" and there a few reserved names including "aux", "nul", "con", "prn", "com1-9", "lpt1-9" and "clock$".
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The path 'n?ul/*.a' is invalid on Windows, which would cause portability problems for this package. Windows file names cannot contain any of the characters ":*?<>|" and there a few reserved names including "aux", "nul", "con", "prn", "com1-9", "lpt1-9" and "clock$".
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/RecursiveGlobInRoot/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/RecursiveGlobInRoot/cabal.out
index a68021cb6f68c7ab7bef65d2e2c4dd2d2afcdeb5..e2506317dc18dca4d06852b67f6e4edad752adee 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/RecursiveGlobInRoot/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/RecursiveGlobInRoot/cabal.out
@@ -1,11 +1,5 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
-Warning: In the 'data-files': glob '**/*.dat' starts at project root
-directory, this might include `.git/`, ``dist-newstyle/``, or other large
-directories!
-Warning: In the 'extra-source-files': glob '**/*.hs' starts at project root
-directory, this might include `.git/`, ``dist-newstyle/``, or other large
-directories!
-Warning: In the 'extra-doc-files': glob '**/*.md' starts at project root
-directory, this might include `.git/`, ``dist-newstyle/``, or other large
-directories!
\ No newline at end of file
+These warnings may cause trouble when distributing the package:
+Warning: In the 'data-files': glob '**/*.dat' starts at project root directory, this might include `.git/`, ``dist-newstyle/``, or other large directories!
+Warning: In the 'extra-source-files': glob '**/*.hs' starts at project root directory, this might include `.git/`, ``dist-newstyle/``, or other large directories!
+Warning: In the 'extra-doc-files': glob '**/*.md' starts at project root directory, this might include `.git/`, ``dist-newstyle/``, or other large directories!
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/RelativeOutside/RelativeOutsideInner/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/RelativeOutside/RelativeOutsideInner/cabal.out
index e108ccef07dcce3138a3f13facc56988321a197a..8cadbcb8dacac32f419f61cd5d0b4ce03cf7ba0c 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/RelativeOutside/RelativeOutsideInner/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Paths/RelativeOutside/RelativeOutsideInner/cabal.out
@@ -1,6 +1,6 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: 'extra-source-files: ../outside' is a relative path outside of the source tree. This will not work when generating a tarball with 'sdist'.
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'extra-source-files: ../outside' is not a good relative path: "parent directory segment: .."
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: 'extra-source-files: ../outside' is a relative path outside of the source tree. This will not work when generating a tarball with 'sdist'.
+The following errors will cause portability problems on other environments:
+Error: 'extra-source-files: ../outside' is not a good relative path: "parent directory segment: .."
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.out
index 6ab0552908f88cf4904a2e80010a798e63039e2b..1d74420d54108e55a918a60a39964d435c1f0b7b 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOther/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: An 'autogen-module' is neither on 'exposed-modules' or 'other-modules'.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: An 'autogen-module' is neither on 'exposed-modules' or 'other-modules'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.out
index b68d84b92ca8427edf79776c46a70b3057dc4f81..a44b9f6880eb7a2d020bb1f8adfdacdf2f4ce318 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherBenchmark/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: On benchmark 'benchmark' an 'autogen-module' is not on 'other-modules'
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: On benchmark 'benchmark' an 'autogen-module' is not on 'other-modules'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.out
index da988f6cbfd27c09092d99dd0d67e45b510daa22..f31c3ad2803e971a0ceae583b9cf583abad0e182 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherExe/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: On executable 'exe' an 'autogen-module' is not on 'other-modules'
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: On executable 'exe' an 'autogen-module' is not on 'other-modules'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.out
index 4f41f16f1b8616035acf7d77feddb60d5598987b..f62322ba72b80e1b22237e676a6e87b57061c707 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenExposedOtherTestsuite/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: On test suite 'test' an 'autogen-module' is not on 'other-modules'
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: On test suite 'test' an 'autogen-module' is not on 'other-modules'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.out
index ddf7b473d9870938821dced9973bf25f916e4ae2..b4977e9d6c63bb9e9226b27edec01099e0a92561 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludes/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: An include in 'autogen-includes' is neither in 'includes' or 'install-includes'.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: An include in 'autogen-includes' is neither in 'includes' or 'install-includes'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.out
index 9e561d01843425182f66d7156fd7c5d5c754288e..a1b2bc17f2d5ae68f04f0b52eb99bfb6e1b8d59e 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesBenchmark/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: An include in 'autogen-includes' is not in 'includes'.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: An include in 'autogen-includes' is not in 'includes'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.out
index 9e561d01843425182f66d7156fd7c5d5c754288e..a1b2bc17f2d5ae68f04f0b52eb99bfb6e1b8d59e 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesExe/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: An include in 'autogen-includes' is not in 'includes'.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: An include in 'autogen-includes' is not in 'includes'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.out
index 9e561d01843425182f66d7156fd7c5d5c754288e..a1b2bc17f2d5ae68f04f0b52eb99bfb6e1b8d59e 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/AutogenIncludesTestsuite/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: An include in 'autogen-includes' is not in 'includes'.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: An include in 'autogen-includes' is not in 'includes'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.out
index 7601cdfe961feb07bd7492ca00ebe61b6f709163..5e09174e51b72a81c5872e02782468c69ff3fa1a 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersion/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The package uses a C/C++/obj-C source file for the 'main-is' field. To use this feature you need to specify 'cabal-version: 1.18' or higher.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The package uses a C/C++/obj-C source file for the 'main-is' field. To use this feature you need to specify 'cabal-version: 1.18' or higher.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.out
index 7601cdfe961feb07bd7492ca00ebe61b6f709163..5e09174e51b72a81c5872e02782468c69ff3fa1a 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/CMainIsVersionTestsuite/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The package uses a C/C++/obj-C source file for the 'main-is' field. To use this feature you need to specify 'cabal-version: 1.18' or higher.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The package uses a C/C++/obj-C source file for the 'main-is' field. To use this feature you need to specify 'cabal-version: 1.18' or higher.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.out
index 2a5d655986ffe7e3ae45078675f82cacca63c01a..6bc2ecc64495f17e6d1804dc4b003d37a5c6f1a7 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIs/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor), or it may specify a C/C++/obj-C source file.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor), or it may specify a C/C++/obj-C source file.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.out
index 75b0c3501b5e140eaef47e26ee5859db4f13f6d9..1eb6a2febe9512fd1c0773a8b9cdca25e97fd4f5 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsBenchmark/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor).
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor).
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.out
index 2a5d655986ffe7e3ae45078675f82cacca63c01a..6bc2ecc64495f17e6d1804dc4b003d37a5c6f1a7 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/MalformedMainIsTestsuite/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor), or it may specify a C/C++/obj-C source file.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: The 'main-is' field must specify a '.hs' or '.lhs' file (even if it is generated by a preprocessor), or it may specify a C/C++/obj-C source file.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.out
index bcf3b0fbc66ec163d508396f37278a109ffdd23d..8655087550d20336535e0bd1f4b3d1bd26a090b7 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoBody/cabal.out
@@ -1,6 +1,6 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: No executables, libraries, tests, or benchmarks found. Nothing to do.
-Warning: These warnings may cause trouble when distributing the package:
+The package will not build sanely due to these errors:
+Error: No executables, libraries, tests, or benchmarks found. Nothing to do.
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:0:0: A package using 'cabal-version: 2.2' must use section syntax. See the Cabal user guide for details.
-Warning: Hackage would reject this package.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.out
index d1b03551437923ec22a3e2122744a5defb4c3c41..be0d14356f6b80dc0344dbaaf6d6c0058f3de161 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.out
@@ -1,3 +1 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: Duplicate sections: dup. The name of every library, executable, test suite, and benchmark section in the package must be unique.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.test.hs b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.test.hs
index 975ee117919677b4ff4362d0ad3d7befe5ceb7ae..0d5a1a175af77f4b7e3fe33b15df7fb8e4561af2 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.test.hs
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoDupNames/cabal.test.hs
@@ -1,5 +1,7 @@
 import Test.Cabal.Prelude
 
 -- Duplicate section names.
+-- This will be caught by an `error` before `check` has the opportunity
+-- to report it.
 main = cabalTest $
   fails $ cabal "check" []
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.out
index 62d7b27ba34fa3255feef8d9ebc9875d7f22e972..3ae23450b99ea81e2a46c418ea501e9934569332 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoExposedModules/cabal.out
@@ -1,4 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: library does not expose any modules
-
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.out
index fbeefcb7140cc1724cfec2b8f7e948830edab086..9366f5237f03c1c46ac3afc604016a13b91a877e 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoInternalNameClash/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: Illegal internal library name pkg. Internal libraries cannot have the same name as the package. Maybe you wanted a non-internal library? If so, rewrite the section stanza from 'library: 'pkg' to 'library'.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: Illegal internal library name pkg. Internal libraries cannot have the same name as the package. Maybe you wanted a non-internal library? If so, rewrite the section stanza from 'library: 'pkg' to 'library'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.out
index 33e622b6422e6c072c5c1d3a5f0a168fc67e2dec..ba56af15c08a499e7e754a46d59f9e86ae359d33 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/NoMainIs/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: No 'main-is' field found for executable exe
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: No 'main-is' field found for executable exe
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.out
index 7abcdcbd17a2cf322bdd6636d1963b7cb08bf94f..2583cecb229d4777be6237aa49ee4f1f26b5e260 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/Sanity/VersionSignatures/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:17:3: The field "signatures" is available only since the Cabal specification version 2.0. This field will be ignored.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoGoodRelative/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoGoodRelative/cabal.out
index 6f9a5f22b806b411bfc45e5e07cb85415a51c652..9d466d9b746f042a6da03e9e70d0fdd69baeb195 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoGoodRelative/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoGoodRelative/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The 'subdir' field of a source-repository is not a good relative path: "empty path segment"
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The 'subdir' field of a source-repository is not a good relative path: "empty path segment"
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoLocation/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoLocation/cabal.out
index 4e2729e684fe1b847f0b451e58f8d4cfce9a1fb8..024e9692a501b206bd14fc0b8896f71c467b8af9 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoLocation/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoLocation/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The source-repository 'location' is a required field.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The source-repository 'location' is a required field.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoModuleCVS/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoModuleCVS/cabal.out
index fdbd6de78661e2b9c4f3bb3106cada1416c69e29..a4ed5c844b5d3e610dc1eb35228a745c25bd0b14 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoModuleCVS/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoModuleCVS/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: For a CVS source-repository, the 'module' is a required field.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: For a CVS source-repository, the 'module' is a required field.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoType/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoType/cabal.out
index f896f829bfccf1297dfbe1d64d94e91a61925b65..252f5fb7f8bb266ab6582d37128609da96c1c024 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoType/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NoType/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The source-repository 'type' is a required field.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The source-repository 'type' is a required field.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NonRecognisedRepo/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NonRecognisedRepo/cabal.out
index 9ebbaff398fdcd6664f8825d657a421bffdeff1f..0bd6642180916c0a6fb8b45e4257020ae8cccb73 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NonRecognisedRepo/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/NonRecognisedRepo/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'tail' is not a recognised kind of source-repository. The repo kind is usually 'head' or 'this'
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: 'tail' is not a recognised kind of source-repository. The repo kind is usually 'head' or 'this'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/SubdirRelative/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/SubdirRelative/cabal.out
index 90c3197fc77fef37360f8c8b1da777ac905abf6d..56b531701352c5b1c8a460b969ee73838d0d0d85 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/SubdirRelative/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/SubdirRelative/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The 'subdir' field of a source-repository must be a relative path.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The 'subdir' field of a source-repository must be a relative path.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/ThisTag/cabal.out b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/ThisTag/cabal.out
index 65b849f6ff72c9dfac6e3fe442e21b5ad88ea5c8..32bcf334cf5a3447a6d5287ce4cad436bb2dc006 100644
--- a/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/ThisTag/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/ConfiguredPackage/SourceRepos/ThisTag/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: For the 'this' kind of source-repository, the 'tag' is a required field. It should specify the tag corresponding to this version or release of the package.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: For the 'this' kind of source-repository, the 'tag' is a required field. It should specify the tag corresponding to this version or release of the package.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/DifferentGhcOptions/cabal.out b/cabal-testsuite/PackageTests/Check/DifferentGhcOptions/cabal.out
index ce673fceeb9e3812296627ce728d2b5dfeb08286..eb51a7165be750f7ffb7f8d4c03ea0a58a7d6647 100644
--- a/cabal-testsuite/PackageTests/Check/DifferentGhcOptions/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/DifferentGhcOptions/cabal.out
@@ -1,8 +1,8 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: 'ghc-shared-options: -hide-package' is never needed. Cabal hides all packages.
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'ghc-options: -fasm' is unnecessary and will not work on CPU architectures other than x86, x86-64, ppc or sparc.
-Warning: 'ghc-prof-options: -fhpc' is not necessary. Use the configure flag  --enable-coverage instead.
-Warning: 'ghc-shared-options: -Werror' makes the package easy to break with future GHC versions because new GHC versions often add new warnings. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: 'ghc-shared-options: -hide-package' is never needed. Cabal hides all packages.
+The following errors will cause portability problems on other environments:
+Error: 'ghc-options: -fasm' is unnecessary and will not work on CPU architectures other than x86, x86-64, ppc or sparc.
+Error: 'ghc-prof-options: -fhpc' is not necessary. Use the configure flag  --enable-coverage instead.
+Error: 'ghc-shared-options: -Werror' makes the package easy to break with future GHC versions because new GHC versions often add new warnings. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/InvalidGlob/cabal.out b/cabal-testsuite/PackageTests/Check/InvalidGlob/cabal.out
index 8342a9a51177346f0baa76f83c75cbba52fed1d0..b97dc6df39a15f874d7b0deaed72cb3129df0130 100644
--- a/cabal-testsuite/PackageTests/Check/InvalidGlob/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/InvalidGlob/cabal.out
@@ -1,5 +1,5 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: No 'synopsis' or 'description' field.
-Warning: In the 'extra-doc-files' field: invalid file glob '***.html'. Wildcards '*' may only totally replace the file's base name, not only parts of it.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: No 'synopsis' or 'description' field.
+Error: In the 'extra-doc-files' field: invalid file glob '***.html'. Wildcards '*' may only totally replace the file's base name, not only parts of it.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/MissingGlobDirectory/cabal.out b/cabal-testsuite/PackageTests/Check/MissingGlobDirectory/cabal.out
index 0c6afe1ff1774819f7f0f5b8239096fd7cf6cd3e..8b7eb9335249c8f6da411c96c3b33195897a73b6 100644
--- a/cabal-testsuite/PackageTests/Check/MissingGlobDirectory/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/MissingGlobDirectory/cabal.out
@@ -1,5 +1,5 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: In 'data-files': the pattern 'another-non-existent-directory/**/*.dat' attempts to match files in the directory 'another-non-existent-directory', but there is no directory by that name.
 Warning: In 'extra-doc-files': the pattern 'non-existent-directory/*.html' attempts to match files in the directory 'non-existent-directory', but there is no directory by that name.
 Warning: In 'extra-doc-files': the pattern 'present/present/missing/*.tex' attempts to match files in the directory 'present/present/missing', but there is no directory by that name.
diff --git a/cabal-testsuite/PackageTests/Check/MissingGlobDirectory2/cabal.out b/cabal-testsuite/PackageTests/Check/MissingGlobDirectory2/cabal.out
index 616fb47842f03508b3fda483705439a5d93f0508..61c410c936f2e784f2ae262bd345bde7e47ee791 100644
--- a/cabal-testsuite/PackageTests/Check/MissingGlobDirectory2/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/MissingGlobDirectory2/cabal.out
@@ -1,5 +1,5 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: In 'extra-source-files': the pattern 'dir/*.html' does not match any files.
 Warning: In 'extra-source-files': the pattern 'dir/*.html' does not match the file 'dir/foo.en.html' because the extensions do not exactly match (e.g., foo.en.html does not exactly match *.html). To enable looser suffix-only matching, set 'cabal-version: 2.4' or higher.
 Warning: In 'data-files': the pattern 'non-existent-directory/*.dat' attempts to match files in the directory 'non-existent-directory', but there is no directory by that name.
diff --git a/cabal-testsuite/PackageTests/Check/MultiDotGlob2.2/check.out b/cabal-testsuite/PackageTests/Check/MultiDotGlob2.2/check.out
index 7648ab7dd950f9bbfc731f2879451dfccf41547c..6769dd25153d8cf5ddbb680aa8d7978ceea8c656 100644
--- a/cabal-testsuite/PackageTests/Check/MultiDotGlob2.2/check.out
+++ b/cabal-testsuite/PackageTests/Check/MultiDotGlob2.2/check.out
@@ -1,5 +1,5 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: In 'data-files': the pattern 'data/*.dat' does not match the file 'data/foo.bar.dat' because the extensions do not exactly match (e.g., foo.en.html does not exactly match *.html). To enable looser suffix-only matching, set 'cabal-version: 2.4' or higher.
 Warning: In 'extra-doc-files': the pattern 'doc/*.html' does not match the file 'doc/foo.en.html' because the extensions do not exactly match (e.g., foo.en.html does not exactly match *.html). To enable looser suffix-only matching, set 'cabal-version: 2.4' or higher.
 Warning: In 'extra-doc-files': the pattern 'doc/*.html' does not match the file 'doc/foo.fr.html' because the extensions do not exactly match (e.g., foo.en.html does not exactly match *.html). To enable looser suffix-only matching, set 'cabal-version: 2.4' or higher.
diff --git a/cabal-testsuite/PackageTests/Check/NoGlobMatches/cabal.out b/cabal-testsuite/PackageTests/Check/NoGlobMatches/cabal.out
index 86d46d6e405a2ac791f76529eac9358f60775470..bee06362960578a12a0e64d28b6723258e0e7410 100644
--- a/cabal-testsuite/PackageTests/Check/NoGlobMatches/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NoGlobMatches/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: In 'extra-doc-files': the pattern '*.html' does not match any files.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownArch/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownArch/cabal.out
index da3d5ef8f99e1f855872f894fb03c28ffda4b072..38b924bc1d1de5848496e18d9fdbc57d212edee6 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownArch/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownArch/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: Unknown architecture name 'subleq'
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: Unknown architecture name 'subleq'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownCompiler/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownCompiler/cabal.out
index ed1dca4768fb8bd13e305ee7a3f7c2e321580d8d..58e4a87eb92f06482eeba54dcc5b3cba7dbe95c7 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownCompiler/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownCompiler/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: Unknown compiler name 'MHC'
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: Unknown compiler name 'MHC'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownOS/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownOS/cabal.out
index 0025900cb06f95a275c7238e4ba3ea1cde37cff9..d033025ea511d94fc0cc797d20dcbe8ef031f87d 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownOS/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/Conditionals/UnknownOS/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: Unknown operating system name 'plan9'
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: Unknown operating system name 'plan9'
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/DebugFlag/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/DebugFlag/cabal.out
index 559691f8af21e48e59037a3a4d220bcf91d7542e..d4729a6f48480fcbb90aa5709e41a63955e9b900 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/DebugFlag/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/DebugFlag/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'ghc-prof-options: -d*' debug flags are not appropriate for a distributed package. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: 'ghc-prof-options: -d*' debug flags are not appropriate for a distributed package. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/FDeferTypeErrors/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/FDeferTypeErrors/cabal.out
index 053f6904529ef81120d2864990284a72514df6fd..1318b007be4fe9274fa702746dcc6b875dfbacce 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/FDeferTypeErrors/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/FDeferTypeErrors/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'ghc-options: -fdefer-type-errors' is fine during development but is not appropriate for a distributed package. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: 'ghc-options: -fdefer-type-errors' is fine during development but is not appropriate for a distributed package. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/Jn/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/Jn/cabal.out
index 7205e9fd4e316a95b1e0480d229544396895ac80..4024acad24e83651729e8b8a95d9e47ead6ea8a5 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/Jn/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/Jn/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'ghc-shared-options: -j[N]' can make sense for specific user's setup, but it is not appropriate for a distributed package. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: 'ghc-shared-options: -j[N]' can make sense for specific user's setup, but it is not appropriate for a distributed package. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/Profiling/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/Profiling/cabal.out
index 2499ad596402dde640e110977cb759106c3dd9b0..5426d7774e92f8880e64a9ce7e863d1b2097f120 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/Profiling/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/Profiling/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: 'ghc-shared-options: -fprof*' profiling flags are typically not appropriate for a distributed library package. These flags are useful to profile this package, but when profiling other packages that use this one these flags clutter the profile output with excessive detail. If you think other packages really want to see cost centres from this package then use '-fprof-auto-exported' which puts cost centres only on exported functions. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/WError/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/WError/cabal.out
index 1f93b2de387caf5fe4c0cdd95f671df2e0db5fe1..1edd7773b262e23866eba719a334d1b2d2789cfb 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/WError/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/DevOnlyFlags/WError/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: 'ghc-prof-options: -Werror' makes the package easy to break with future GHC versions because new GHC versions often add new warnings. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: 'ghc-prof-options: -Werror' makes the package easy to break with future GHC versions because new GHC versions often add new warnings. Alternatively, if you want to use this, make it conditional based on a Cabal configuration flag (with 'manual: True' and 'default: False') and enable that flag during development.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/DuplicatedModules/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/DuplicatedModules/cabal.out
index 022bed1a6800070d708f9b3d8b41b82925313752..15bd94c337dfdc17e16f56dba2729a978157a09d 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/DuplicatedModules/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/DuplicatedModules/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: Duplicate modules in library: Foo
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: Duplicate modules in library: Foo
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/PackageVersions/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/PackageVersions/cabal.out
index c48767395212172c2b13893fa3073407640a4013..06d7bb58ed760b960b68cd9ec84dc5da56f84776 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/PackageVersions/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/PackageVersions/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The dependency 'build-depends: base' does not specify an upper bound on the version number. Each major release of the 'base' package changes the API in various ways and most packages will need some changes to compile with it. The recommended practice is to specify an upper bound on the version of the 'base' package. This ensures your package will continue to build when a new major version of the 'base' package is released. If you are not sure what upper bound to use then use the next  major version. For example if you have tested your package with 'base' version 4.5 and 4.6 then use 'build-depends: base >= 4.5 && < 4.7'.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The dependency 'build-depends: base' does not specify an upper bound on the version number. Each major release of the 'base' package changes the API in various ways and most packages will need some changes to compile with it. The recommended practice is to specify an upper bound on the version of the 'base' package. This ensures your package will continue to build when a new major version of the 'base' package is released. If you are not sure what upper bound to use then use the next  major version. For example if you have tested your package with 'base' version 4.5 and 4.6 then use 'build-depends: base >= 4.5 && < 4.7'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/PathsExtensions/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/PathsExtensions/cabal.out
index d21149b6c45d9e2cd1ece81d8a4ecdd893c28e2d..eb486dcb3af91ac02d57439ed462fc2a5e17ce9b 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/PathsExtensions/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/PathsExtensions/cabal.out
@@ -1,5 +1,5 @@
 # cabal check
-Warning: The package will not build sanely due to these errors:
-Warning: Packages using RebindableSyntax with OverloadedStrings or OverloadedLists in default-extensions, in conjunction with the autogenerated module Paths_*, are known to cause compile failures with Cabal < 2.2. To use these default-extensions with a Paths_* autogen module, specify at least 'cabal-version: 2.2'.
-Warning: Packages using RebindableSyntax with OverloadedStrings or OverloadedLists in default-extensions, in conjunction with the autogenerated module PackageInfo_*, are known to cause compile failures with Cabal < 2.2. To use these default-extensions with a PackageInfo_* autogen module, specify at least 'cabal-version: 2.2'.
-Warning: Hackage would reject this package.
+The package will not build sanely due to these errors:
+Error: Packages using RebindableSyntax with OverloadedStrings or OverloadedLists in default-extensions, in conjunction with the autogenerated module Paths_*, are known to cause compile failures with Cabal < 2.2. To use these default-extensions with a Paths_* autogen module, specify at least 'cabal-version: 2.2'.
+Error: Packages using RebindableSyntax with OverloadedStrings or OverloadedLists in default-extensions, in conjunction with the autogenerated module PackageInfo_*, are known to cause compile failures with Cabal < 2.2. To use these default-extensions with a PackageInfo_* autogen module, specify at least 'cabal-version: 2.2'.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/SetupBounds/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/SetupBounds/cabal.out
index f0d085f12805ecc76cd6f466ef598e907282fe33..92ab0bfbca40a285ee124fcea8d6ac518105bdee 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/SetupBounds/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/SetupBounds/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The dependency 'setup-depends: 'base' does not specify an upper bound on the version number. Each major release of the 'base' package changes the API in various ways and most packages will need some changes to compile with it. If you are not sure what upper bound to use then use the next major version.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The dependency 'setup-depends: 'base' does not specify an upper bound on the version number. Each major release of the 'base' package changes the API in various ways and most packages will need some changes to compile with it. If you are not sure what upper bound to use then use the next major version.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/NonConfCheck/UnusedFlags/cabal.out b/cabal-testsuite/PackageTests/Check/NonConfCheck/UnusedFlags/cabal.out
index 935c748dae476b879a0de12d29bfdd6e80dcad6a..0d5d79b1d423b2f1b38f963e30680b15edadab80 100644
--- a/cabal-testsuite/PackageTests/Check/NonConfCheck/UnusedFlags/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/NonConfCheck/UnusedFlags/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: Declared and used flag sets differ: test-flag /= . 
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/BOM/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/BOM/cabal.out
index 696de1ec938de071304d46047d8556d117fd4fb4..82d2a821f0a0be4d671ef2e90caa5ad7486c9192 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/BOM/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/BOM/cabal.out
@@ -1,6 +1,6 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: pkg.cabal:1:1: Byte-order mark found at the beginning of the file
-Warning: The following errors will cause portability problems on other environments:
-Warning: ./pkg.cabal starts with an Unicode byte order mark (BOM). This may cause problems with older cabal versions.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: ./pkg.cabal starts with an Unicode byte order mark (BOM). This may cause problems with older cabal versions.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/ExtensionMatch/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/ExtensionMatch/cabal.out
index 85fbc17d59324f22342d0bcfc399f3cf75fde02a..5ff791257ae5c446e0adc2a17283774e98936ce5 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/ExtensionMatch/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/ExtensionMatch/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: In the 'extra-doc-files' field: invalid file glob '***.html'. Wildcards '*' may only totally replace the file's base name, not only parts of it.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: In the 'extra-doc-files' field: invalid file glob '***.html'. Wildcards '*' may only totally replace the file's base name, not only parts of it.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/FileName/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/FileName/cabal.out
index 847b700bd9877d27107ccc70cb6c135851e35114..ea4a2e848fe20b6c0b54de2cc3e0f4e9d0960256 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/FileName/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/FileName/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The filename './pkg.cabal' does not match package name (expected: 'package.cabal')
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The filename './pkg.cabal' does not match package name (expected: 'package.cabal')
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/LocalPaths/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/LocalPaths/cabal.out
index e0ce81ef9786b9c802e5e5ffa268440828a040f2..f81379a29af1aec3ceddf5e83848437f1961d662 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/LocalPaths/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/LocalPaths/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: 'extra-lib-dirs: lib-folder' specifies a directory which does not exist.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: 'extra-lib-dirs: lib-folder' specifies a directory which does not exist.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/cabal.out
index 24b6ec54a2cb2f07ef7cf83745466006e87e3962..a90fc5b1975a70a72b6cbf39250867c9c12c9da6 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V1.12/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: Please consider including the file './ChangeLog.md' in the 'extra-source-files' section of the .cabal file if it contains useful information for users of the package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.out
index d2df818ef58ce30d4a8b686d9e8e7145af47aacd..b8699cb6a6a9c0a78c7d681cfd69446f30562c5c 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/NotIncluded/V3.0/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: Please consider including the file './CHANGELOG.TXT' in the 'extra-doc-files' section of the .cabal file if it contains useful information for users of the package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V1.12/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V1.12/cabal.out
index ef39caad69dd5519bc1c08bf49536b4ca554e2ab..729191e540a26ab90cc2e305d1040afdac02892b 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V1.12/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V1.12/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: Please consider moving the file 'ChangeLog.md' from the 'data-files' section of the .cabal file to the section 'extra-source-files'.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V3.0/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V3.0/cabal.out
index dec997ce5bbcc515d4decb8be65b1eaafe944af0..8ae427d7c8344547de9071eab16e7d4eafd51496 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V3.0/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/MissingExpectedDocFiles/ChangeLog/WrongField/V3.0/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings may cause trouble when distributing the package:
 Warning: Please consider moving the file 'ChangeLog.md' from the 'extra-source-files' section of the .cabal file to the section 'extra-doc-files'.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/NoConfigureFile/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/NoConfigureFile/cabal.out
index abf66d36c8eb172aa0dfa6e47fdaf0bde5645db8..1214a8d69e6d0d465ef3425569f7d72727d985e8 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/NoConfigureFile/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/NoConfigureFile/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: The 'build-type' is 'Configure' but there is no 'configure' script. You probably need to run 'autoreconf -i' to generate it.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: The 'build-type' is 'Configure' but there is no 'configure' script. You probably need to run 'autoreconf -i' to generate it.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/NoLicenseFile/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/NoLicenseFile/cabal.out
index ebb911f371f1e0575db9411c40bbe375acd6b5c2..4dacea819001f8bf13b3e8c43e1a8825741555b5 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/NoLicenseFile/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/NoLicenseFile/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following warnings are likely to affect your build negatively:
-Warning: The 'license-file' field refers to the file 'LICENSE' which does not exist.
-Warning: Hackage would reject this package.
+The following errors are likely to affect your build negatively:
+Error: The 'license-file' field refers to the file 'LICENSE' which does not exist.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/NoSetupFile/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/NoSetupFile/cabal.out
index ea51b9fae2cb418e0c1f12b2fc043afebf247064..45e20002892d2a1c322afa4b6815945c5ee36303 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/NoSetupFile/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/NoSetupFile/cabal.out
@@ -1,4 +1,4 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The package is missing a Setup.hs or Setup.lhs script.
-Warning: Hackage would reject this package.
+The following errors will cause portability problems on other environments:
+Error: The package is missing a Setup.hs or Setup.lhs script.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/PathTooLong/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/PathTooLong/cabal.out
index 56757831a2d280650b11f4609ba87e7f9626a84c..12ceb0f1ffc8a7ef1ded3d1bf80730c5daf4ee56 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/PathTooLong/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/PathTooLong/cabal.out
@@ -1,6 +1,6 @@
 # cabal check
-Warning: The following errors will cause portability problems on other environments:
-Warning: The following file name is too long to store in a portable POSIX format tar archive. The maximum length for the name part (including extension) is 100 ASCII characters. The maximum length for any individual directory component is 155.
+The following errors will cause portability problems on other environments:
+Error: The following file name is too long to store in a portable POSIX format tar archive. The maximum length for the name part (including extension) is 100 ASCII characters. The maximum length for any individual directory component is 155.
 The file in question is:
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.hg
-Warning: Hackage would reject this package.
+Error: Hackage would reject this package.
diff --git a/cabal-testsuite/PackageTests/Check/PackageFiles/VCSInfo/cabal.out b/cabal-testsuite/PackageTests/Check/PackageFiles/VCSInfo/cabal.out
index 0f5dbb733ad5795cab12ed048be75a284cf45796..0b90abdd9d7bad1cbfb6e506b03c5142bbd51dbd 100644
--- a/cabal-testsuite/PackageTests/Check/PackageFiles/VCSInfo/cabal.out
+++ b/cabal-testsuite/PackageTests/Check/PackageFiles/VCSInfo/cabal.out
@@ -1,3 +1,3 @@
 # cabal check
-Warning: These warnings may cause trouble when distributing the package:
+These warnings will likely cause trouble when distributing the package:
 Warning: When distributing packages it is encouraged to specify source control information in the .cabal file using one or more 'source-repository' sections. See the Cabal user guide for details.
diff --git a/changelog.d/pr-8908 b/changelog.d/pr-8908
new file mode 100644
index 0000000000000000000000000000000000000000..420248944a4fc720cf4ecd598bae56b247af0e94
--- /dev/null
+++ b/changelog.d/pr-8908
@@ -0,0 +1,11 @@
+synopsis: `cabal check`: clearly mark Errors
+packages: cabal-install
+prs: #8908
+
+description: {
+
+- `cabal check` will now mark errors (which make the program return 1 and
+  Hackage refuse the package) by prepending them with an "Error: " string
+  in the output.
+
+}