Hello community, here is the log from the commit of package cabal-install for openSUSE:Leap:15.2 checked in at 2020-05-21 12:58:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/cabal-install (Old) and /work/SRC/openSUSE:Leap:15.2/.cabal-install.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cabal-install" Thu May 21 12:58:56 2020 rev:13 rq:805992 version:3.2.0.0 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/cabal-install/cabal-install.changes 2020-03-13 10:57:13.148428004 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.cabal-install.new.2738/cabal-install.changes 2020-05-21 12:58:57.390745023 +0200 @@ -1,0 +2,39 @@ +Wed May 6 06:54:10 UTC 2020 - psim...@suse.com + +- Update cabal-install to version 3.2.0.0. + * `v2-build` (and other `v2-`prefixed commands) now accept the + `--benchmark-option(s)` flags, which pass options to benchmark executables + (analogous to how `--test-option(s)` works). (#6209) + * Add solver optimization to skip a version of a package if it does not resolve + any conflicts encountered in the last version, controlled by flag + '--fine-grained-conflicts'. (#5918) + * `cabal v2-exec` doesn't fail in clean package (#6479) + * Show full ABI hash for installed packages in solver log (#5892) + * Create incoming directory even for empty packages (#4130) + * Start GHCi with `main-is` module in scope (#6311) + * Implement `--benchmark-options` for `v2-bench` (#6224) + * Fix store-dir in ghc env files generated by `cabal install --lib + --package-env` (#6298) + * `cabal v2-run` works with `.lhs` files (#6134) + * `subdir` in source-repository-package accepts multiple entries (#5472) + * Create store incoming directory + ([#4130](https://github.com/haskell/cabal/issues/4130)) + * `fetchRepoTarball` output is not marked + ([#6385](https://github.com/haskell/cabal/pull/6385)) + * Update `setupMinCabalVersionConstraint` for GHC-8.8 + ([#6217](https://github.com/haskell/cabal/pull/6217)) + * Implement `cabal install --ignore-project` + ([#5919](https://github.com/haskell/cabal/issues/5919)) + * `cabal install executable` solver isn't affected by default + environment contents + ([#6410](https://github.com/haskell/cabal/issues/6410)) + * Use `lukko` for file locking + ([#6345](https://github.com/haskell/cabal/pull/6345)) + * Use `hackage-security-0.6` + ([#6388](https://github.com/haskell/cabal/pull/6388)) + * Other dependency upgrades + +- Apply "ghc-8.10-support-for-3.2.patch" from upstream's git + repository to fix the build with ghc-8.10.1. + +------------------------------------------------------------------- @@ -10,4 +49,39 @@ - Upstream has edited the change log file since the last release in - a non-trivial way, i.e. they did more than just add a new entry - at the top. You can review the file at: - http://hackage.haskell.org/package/cabal-install-3.0.0.0/src/changelog + * `v2-haddock` fails on `haddock` failures (#5977) + * `v2-run` works when given `File.lhs` literate file. (#6134) + * Parse comma-separated lists for extra-prog-path, extra-lib-dirs, extra-framework-dirs, + and extra-include-dirs as actual lists. (#5420) + * `v2-repl` no longer changes directory to a randomized temporary folder + when used outside of a project. (#5544) + * `install-method` and `overwrite-policy` in `.cabal/config` now actually work. (#5942) + * `v2-install` now reports the error when a package fails to build. (#5641) + * `v2-install` now has a default when called in a project (#5978, #6014, #6092) + * '--write-ghc-environment-files' now defaults to 'never' (#4242) + * Fix `sdist`'s output when sent to stdout. (#5874) + * Allow a list of dependencies to be provided for `repl --build-depends`. (#5845) + * Legacy commands are now only accessible with the `v1-` prefixes, and the `v2-` + commands are the new default. Accordingly, the next version of Cabal will be + the start of the 3.x version series. (#5800) + * New solver flag: '--reject-unconstrained-dependencies'. (#2568) + * Ported old-style test options to the new-style commands (#5455). + * Improved error messages for cabal file parse errors. (#5710) + * Removed support for `.zip` format source distributions (#5755) + * Add "simple project" initialization option. (#5707) + * Add '--minimize-conflict-set' flag to try to improve the solver's + error message, but with an increase in run time. (#5647) + * v2-test now succeeds when there are no test suites. (#5435) + * Add '--lib', '--exe', and '--libandexe' shorthands to init. (#5759) + * init now generates valid `Main.lhs` files. (#5577) + * Init improvements: add flag '--application-dir', and when creating + a library also create a MyLib.hs module. (#5740) + * Add support for generating test-suite via cabal init. (#5761) + * Increase `max-backjumps` default from 2000 to 4000. + * Make v2-install/new-install-specific flags configurable in + ~/.cabal/config + * Add --installdir and --install-method=copy flags to v2-install + that make it possible to copy the executable instead of symlinking it + * --symlink-bindir no longer controls the symlinking directory of + v2-install (installdir controls both symlinking and copying now) + * Default to non-interactive init. + * Add --test-wrapper that allows a prebuild script to set the test environment. + * Add filterTestFlags: filter test-wrapper for Cabal < 3.0.0. + * Cabal now only builds the minimum of a package for `v2-install` (#5754, #6091) Old: ---- cabal-install-3.0.0.0.tar.gz New: ---- cabal-install-3.2.0.0.tar.gz ghc-8.10-support-for-3.2.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cabal-install.spec ++++++ --- /var/tmp/diff_new_pack.Z6GgYH/_old 2020-05-21 12:58:57.742745790 +0200 +++ /var/tmp/diff_new_pack.Z6GgYH/_new 2020-05-21 12:58:57.746745799 +0200 @@ -1,7 +1,7 @@ # # spec file for package cabal-install # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,12 +17,13 @@ Name: cabal-install -Version: 3.0.0.0 +Version: 3.2.0.0 Release: 0 Summary: The command-line interface for Cabal and Hackage License: BSD-3-Clause URL: https://hackage.haskell.org/package/%{name} Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz +Patch01: ghc-8.10-support-for-3.2.patch BuildRequires: ghc-Cabal-devel BuildRequires: ghc-HTTP-devel BuildRequires: ghc-array-devel @@ -39,6 +40,7 @@ BuildRequires: ghc-filepath-devel BuildRequires: ghc-hackage-security-devel BuildRequires: ghc-hashable-devel +BuildRequires: ghc-lukko-devel BuildRequires: ghc-mtl-devel BuildRequires: ghc-network-devel BuildRequires: ghc-network-uri-devel @@ -52,6 +54,7 @@ BuildRequires: ghc-tar-devel BuildRequires: ghc-text-devel BuildRequires: ghc-time-devel +BuildRequires: ghc-transformers-devel BuildRequires: ghc-unix-devel BuildRequires: ghc-zlib-devel @@ -62,8 +65,7 @@ %prep %setup -q -cabal-tweak-dep-ver base '< 4.13' '< 5' -cabal-tweak-dep-ver network-uri '< 2.7' '< 3' +%patch01 -p2 %build %ghc_bin_build ++++++ cabal-install-3.0.0.0.tar.gz -> cabal-install-3.2.0.0.tar.gz ++++++ ++++ 9935 lines of diff (skipped) ++++++ ghc-8.10-support-for-3.2.patch ++++++ diff --git a/cabal-install/Distribution/Client/CmdSdist.hs b/cabal-install/Distribution/Client/CmdSdist.hs index 9ce0c8010..a22317004 100644 --- a/cabal-install/Distribution/Client/CmdSdist.hs +++ b/cabal-install/Distribution/Client/CmdSdist.hs @@ -237,7 +237,10 @@ packageToSdist verbosity projectRootDir format outputFile pkg = do (norm NoExec -> nonexec, norm Exec -> exec) <- listPackageSources verbosity (flattenPackageDescription $ packageDescription pkg) knownSuffixHandlers + print $ map snd exec + print $ map snd nonexec let files = nub . sortOn snd $ nonexec ++ exec + print files case format of SourceList nulSep -> do diff --git a/cabal-install/Distribution/Client/FetchUtils.hs b/cabal-install/Distribution/Client/FetchUtils.hs index e9a31a91f..4e5e581f9 100644 --- a/cabal-install/Distribution/Client/FetchUtils.hs +++ b/cabal-install/Distribution/Client/FetchUtils.hs @@ -176,8 +176,8 @@ fetchRepoTarball verbosity' repoCtxt repo pkgid = do verbosity = verboseUnmarkOutput verbosity' downloadRepoPackage = case repo of - RepoLocal{..} -> return (packageFile repo pkgid) - RepoLocalNoIndex{..} -> return (packageFile repo pkgid) + RepoLocal{} -> return (packageFile repo pkgid) + RepoLocalNoIndex{} -> return (packageFile repo pkgid) RepoRemote{..} -> do transport <- repoContextGetTransport repoCtxt diff --git a/cabal-install/Distribution/Client/IndexUtils.hs b/cabal-install/Distribution/Client/IndexUtils.hs index a76becc05..bf0ff7cf5 100644 --- a/cabal-install/Distribution/Client/IndexUtils.hs +++ b/cabal-install/Distribution/Client/IndexUtils.hs @@ -634,7 +634,7 @@ withIndexEntries -> ([IndexCacheEntry] -> IO a) -> ([NoIndexCacheEntry] -> IO a) -> IO a -withIndexEntries _ (RepoIndex repoCtxt repo@RepoSecure{..}) callback _ = +withIndexEntries _ (RepoIndex repoCtxt repo@RepoSecure{}) callback _ = repoContextWithSecureRepo repoCtxt repo $ \repoSecure -> Sec.withIndex repoSecure $ \Sec.IndexCallbacks{..} -> do -- Incrementally (lazily) read all the entries in the tar file in order, diff --git a/cabal-install/Distribution/Client/Sandbox.hs b/cabal-install/Distribution/Client/Sandbox.hs index 66b415d72..14bad3f21 100644 --- a/cabal-install/Distribution/Client/Sandbox.hs +++ b/cabal-install/Distribution/Client/Sandbox.hs @@ -666,7 +666,7 @@ reinstallAddSourceDeps :: Verbosity -> FilePath -> IO WereDepsReinstalled reinstallAddSourceDeps verbosity configFlags' configExFlags - installFlags globalFlags sandboxDir = topHandler' $ do + installFlags globalFlags sandboxDir = topHandlerWith errorMsg $ do let sandboxDistPref = sandboxBuildDir sandboxDir configFlags = configFlags' { configDistPref = Flag sandboxDistPref } @@ -710,7 +710,8 @@ reinstallAddSourceDeps verbosity configFlags' configExFlags ++ "offending packages or recreating the sandbox." logMsg message rest = debugNoWrap verbosity message >> rest - topHandler' = topHandlerWith $ \_ -> do + errorMsg :: a -> IO WereDepsReinstalled + errorMsg _ = do warn verbosity "Couldn't reinstall some add-source dependencies." -- Here we can't know whether any deps have been reinstalled, so we have -- to be conservative. diff --git a/cabal-install/Distribution/Client/TargetSelector.hs b/cabal-install/Distribution/Client/TargetSelector.hs index 23d92f580..f8f683d98 100644 --- a/cabal-install/Distribution/Client/TargetSelector.hs +++ b/cabal-install/Distribution/Client/TargetSelector.hs @@ -222,7 +222,7 @@ readTargetSelectorsWith :: (Applicative m, Monad m) => DirActions m -> Maybe ComponentKindFilter -> [String] -> m (Either [TargetSelectorProblem] [TargetSelector]) -readTargetSelectorsWith dirActions@DirActions{..} pkgs mfilter targetStrs = +readTargetSelectorsWith dirActions@DirActions{} pkgs mfilter targetStrs = case parseTargetStrings targetStrs of ([], usertargets) -> do usertargets' <- mapM (getTargetStringFileStatus dirActions) usertargets diff --git a/cabal-install/Distribution/Client/Update.hs b/cabal-install/Distribution/Client/Update.hs index 52bb1f76c..8ded78b9d 100644 --- a/cabal-install/Distribution/Client/Update.hs +++ b/cabal-install/Distribution/Client/Update.hs @@ -73,8 +73,8 @@ updateRepo :: Verbosity -> UpdateFlags -> RepoContext -> Repo -> IO () updateRepo verbosity updateFlags repoCtxt repo = do transport <- repoContextGetTransport repoCtxt case repo of - RepoLocal{..} -> return () - RepoLocalNoIndex{..} -> return () + RepoLocal{} -> return () + RepoLocalNoIndex{} -> return () RepoRemote{..} -> do downloadResult <- downloadIndex transport verbosity repoRemote repoLocalDir case downloadResult of diff --git a/cabal-install/Distribution/Client/Utils/Json.hs b/cabal-install/Distribution/Client/Utils/Json.hs index 89a13af87..01d575313 100644 --- a/cabal-install/Distribution/Client/Utils/Json.hs +++ b/cabal-install/Distribution/Client/Utils/Json.hs @@ -15,12 +15,9 @@ module Distribution.Client.Utils.Json ) where -import Data.Char -import Data.Int -import Data.String -import Data.Word -import Data.List -import Data.Monoid +import Distribution.Client.Compat.Prelude + +import Data.Char (intToDigit) import Data.ByteString.Builder (Builder) import qualified Data.ByteString.Builder as BB @@ -135,13 +132,13 @@ encodeArrayBB :: [Value] -> Builder encodeArrayBB [] = "[]" encodeArrayBB jvs = BB.char8 '[' <> go jvs <> BB.char8 ']' where - go = Data.Monoid.mconcat . intersperse (BB.char8 ',') . map encodeValueBB + go = mconcat . intersperse (BB.char8 ',') . map encodeValueBB encodeObjectBB :: Object -> Builder encodeObjectBB [] = "{}" encodeObjectBB jvs = BB.char8 '{' <> go jvs <> BB.char8 '}' where - go = Data.Monoid.mconcat . intersperse (BB.char8 ',') . map encPair + go = mconcat . intersperse (BB.char8 ',') . map encPair encPair (l,x) = encodeStringBB l <> BB.char8 ':' <> encodeValueBB x encodeStringBB :: String -> Builder diff --git a/cabal-install/Distribution/Solver/Modular/Assignment.hs b/cabal-install/Distribution/Solver/Modular/Assignment.hs index be5e63bfb..b05a099ec 100644 --- a/cabal-install/Distribution/Solver/Modular/Assignment.hs +++ b/cabal-install/Distribution/Solver/Modular/Assignment.hs @@ -9,10 +9,11 @@ module Distribution.Solver.Modular.Assignment import Prelude () import Distribution.Solver.Compat.Prelude hiding (pi) -import Data.Array as A -import Data.List as L -import Data.Map as M -import Data.Maybe +import qualified Data.Array as A +import qualified Data.List as L +import qualified Data.Map as M + +import Data.Maybe (fromJust) import Distribution.PackageDescription (FlagAssignment, mkFlagAssignment) -- from Cabal @@ -79,7 +80,7 @@ toCPs (A pa fa sa) rdm = -- Dependencies per package. depp :: QPN -> [(Component, PI QPN)] depp qpn = let v :: Vertex - v = fromJust (cvm qpn) + v = fromJust (cvm qpn) -- TODO: why this is safe? dvs :: [(Component, Vertex)] dvs = tg A.! v in L.map (\ (comp, dv) -> case vm dv of (_, x, _) -> (comp, PI x (pa M.! x))) dvs diff --git a/cabal-install/Distribution/Solver/Modular/Builder.hs b/cabal-install/Distribution/Solver/Modular/Builder.hs index eb11a36aa..5d196f4fd 100644 --- a/cabal-install/Distribution/Solver/Modular/Builder.hs +++ b/cabal-install/Distribution/Solver/Modular/Builder.hs @@ -19,10 +19,10 @@ module Distribution.Solver.Modular.Builder ( -- flag-guarded dependencies, we cannot introduce them immediately. Instead, we -- store the entire dependency. -import Data.List as L -import Data.Map as M -import Data.Set as S -import Prelude hiding (sequence, mapM) +import qualified Data.List as L +import qualified Data.Map as M +import qualified Data.Set as S +import Prelude import qualified Distribution.Solver.Modular.ConflictSet as CS import Distribution.Solver.Modular.Dependency @@ -55,7 +55,7 @@ data BuildState = BS { } -- | Map of available linking targets. -type LinkingState = Map (PN, I) [PackagePath] +type LinkingState = M.Map (PN, I) [PackagePath] -- | Extend the set of open goals with the new goals listed. -- diff --git a/cabal-install/Distribution/Solver/Modular/Index.hs b/cabal-install/Distribution/Solver/Modular/Index.hs index fdddfc823..ac60fec7d 100644 --- a/cabal-install/Distribution/Solver/Modular/Index.hs +++ b/cabal-install/Distribution/Solver/Modular/Index.hs @@ -6,10 +6,12 @@ module Distribution.Solver.Modular.Index , mkIndex ) where -import Data.List as L -import Data.Map as M import Prelude hiding (pi) +import Data.Map (Map) +import qualified Data.List as L +import qualified Data.Map as M + import Distribution.Solver.Modular.Dependency import Distribution.Solver.Modular.Flag import Distribution.Solver.Modular.Package diff --git a/cabal-install/Distribution/Solver/Modular/IndexConversion.hs b/cabal-install/Distribution/Solver/Modular/IndexConversion.hs index c9565c80d..8e9ef6141 100644 --- a/cabal-install/Distribution/Solver/Modular/IndexConversion.hs +++ b/cabal-install/Distribution/Solver/Modular/IndexConversion.hs @@ -2,12 +2,12 @@ module Distribution.Solver.Modular.IndexConversion ( convPIs ) where -import Data.List as L +import qualified Data.List as L import Data.Map.Strict (Map) import qualified Data.Map.Strict as M -import Data.Maybe +import Data.Maybe (mapMaybe, fromMaybe, maybeToList) import Data.Monoid as Mon -import Data.Set as S +import qualified Data.Set as S import Distribution.Compiler import Distribution.InstalledPackageInfo as IPI @@ -330,7 +330,7 @@ flagInfo (StrongFlags strfl) = -- | Internal package names, which should not be interpreted as true -- dependencies. -type IPNs = Set PN +type IPNs = S.Set PN -- | Convenience function to delete a 'Dependency' if it's -- for a 'PN' that isn't actually real. diff --git a/cabal-install/Distribution/Solver/Modular/Solver.hs b/cabal-install/Distribution/Solver/Modular/Solver.hs index 324525505..e6aa1fb43 100644 --- a/cabal-install/Distribution/Solver/Modular/Solver.hs +++ b/cabal-install/Distribution/Solver/Modular/Solver.hs @@ -9,9 +9,9 @@ module Distribution.Solver.Modular.Solver , PruneAfterFirstSuccess(..) ) where -import Data.Map as M -import Data.List as L -import Data.Set as S +import qualified Data.Map as M +import qualified Data.List as L +import qualified Data.Set as S import Distribution.Verbosity import Distribution.Compiler (CompilerInfo) @@ -91,8 +91,8 @@ solve :: SolverConfig -- ^ solver parameters -> Index -- ^ all available packages as an index -> PkgConfigDb -- ^ available pkg-config pkgs -> (PN -> PackagePreferences) -- ^ preferences - -> Map PN [LabeledPackageConstraint] -- ^ global constraints - -> Set PN -- ^ global goals + -> M.Map PN [LabeledPackageConstraint] -- ^ global constraints + -> S.Set PN -- ^ global goals -> RetryLog Message SolverFailure (Assignment, RevDepMap) solve sc cinfo idx pkgConfigDB userPrefs userConstraints userGoals = explorePhase $ @@ -232,7 +232,7 @@ instance GSimpleTree (Tree d c) where -- Show conflict set goCS :: ConflictSet -> String - goCS cs = "{" ++ (intercalate "," . L.map showVar . CS.toList $ cs) ++ "}" + goCS cs = "{" ++ (L.intercalate "," . L.map showVar . CS.toList $ cs) ++ "}" #endif -- | Replace all goal reasons with a dummy goal reason in the tree diff --git a/cabal-install/Distribution/Solver/Modular/Validate.hs b/cabal-install/Distribution/Solver/Modular/Validate.hs index 6195d101b..a3dec6e1f 100644 --- a/cabal-install/Distribution/Solver/Modular/Validate.hs +++ b/cabal-install/Distribution/Solver/Modular/Validate.hs @@ -15,11 +15,12 @@ module Distribution.Solver.Modular.Validate (validateTree) where import Control.Applicative import Control.Monad.Reader hiding (sequence) import Data.Function (on) -import Data.List as L -import Data.Set as S import Data.Traversable import Prelude hiding (sequence) +import qualified Data.List as L +import qualified Data.Set as S + import Language.Haskell.Extension (Extension, Language) import Data.Map.Strict as M diff --git a/cabal-install/bootstrap.sh b/cabal-install/bootstrap.sh index 077d7f4ef..d51416604 100755 --- a/cabal-install/bootstrap.sh +++ b/cabal-install/bootstrap.sh @@ -260,9 +260,9 @@ EDIT_DISTANCE_VER="0.2.2.1"; EDIT_DISTANCE_VER_REGEXP="0\.2\.2\.?" # 0.2.2.* ED25519_VER="0.0.5.0"; ED25519_VER_REGEXP="0\.0\.?" # 0.0.* -HACKAGE_SECURITY_VER="0.6.0.0"; HACKAGE_SECURITY_VER_REGEXP="0\.6\." - # >= 0.7.0.0 && < 0.7 -TAR_VER="0.5.1.0"; TAR_VER_REGEXP="0\.5\.([1-9]|1[0-9]|0\.[3-9]|0\.1[0-9])\.?" +HACKAGE_SECURITY_VER="0.6.0.1"; HACKAGE_SECURITY_VER_REGEXP="0\.6\." + # >= 0.6.0.0 && < 0.7 +TAR_VER="0.5.1.1"; TAR_VER_REGEXP="0\.5\.([1-9]|1[0-9]|0\.[3-9]|0\.1[0-9])\.?" # >= 0.5.0.3 && < 0.6 DIGEST_VER="0.0.1.2"; DIGEST_REGEXP="0\.0\.(1\.[2-9]|[2-9]\.?)" # >= 0.0.1.2 && < 0.1 diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal index 985ea9a5a..c9d713c29 100644 --- a/cabal-install/cabal-install.cabal +++ b/cabal-install/cabal-install.cabal @@ -316,7 +316,7 @@ executable cabal build-depends: async >= 2.0 && < 2.3, array >= 0.4 && < 0.6, - base >= 4.8 && < 4.14, + base >= 4.8 && < 4.15, base16-bytestring >= 0.1.1 && < 0.2, binary >= 0.7.3 && < 0.9, bytestring >= 0.10.6.0 && < 0.11, @@ -341,7 +341,7 @@ executable cabal time >= 1.5.0.1 && < 1.10, transformers >= 0.4.2.0 && < 0.6, zlib >= 0.5.3 && < 0.7, - hackage-security >= 0.6.0.0 && < 0.7, + hackage-security >= 0.6.0.1 && < 0.7, text >= 1.2.3 && < 1.3, parsec >= 3.1.13.0 && < 3.2 diff --git a/cabal-install/tests/IntegrationTests2/targets/complex/q/q.cabal b/cabal-install/tests/IntegrationTests2/targets/complex/q/q.cabal index 556fa4a42..7ee22fcb2 100644 --- a/cabal-install/tests/IntegrationTests2/targets/complex/q/q.cabal +++ b/cabal-install/tests/IntegrationTests2/targets/complex/q/q.cabal @@ -5,7 +5,8 @@ cabal-version: >= 1.2 library exposed-modules: Q - build-depends: base, filepath + -- we rely that filepath has filepath-tests component + build-depends: base, filepath >=1.4.0.0 executable buildable-false main-is: Main.hs