From 3f60711f84e6360fb75e1f03cbc24a76ea0dee4d Mon Sep 17 00:00:00 2001 From: Jens Petersen Date: Sun, 22 Jan 2023 22:10:31 +0800 Subject: [PATCH] update to 3.6.2.0 - drop old patches - need to test if sdist doc files patch still needed - manpage is gone --- .gitignore | 1 + ...69918260a7bb3f0cb0698eaeaeb6dae2c4f6.patch | 4 +- ...3fcc4ba16d7969ba36f4174daf27de00a38e.patch | 49 --- cabal-3.2-ghc-8.10-opensuse.patch | 344 ------------------ cabal-install-3.6.2.0.cabal | 330 +++++++++++++++++ cabal-install.spec | 27 +- sources | 2 +- 7 files changed, 347 insertions(+), 410 deletions(-) delete mode 100644 83983fcc4ba16d7969ba36f4174daf27de00a38e.patch delete mode 100644 cabal-3.2-ghc-8.10-opensuse.patch create mode 100644 cabal-install-3.6.2.0.cabal diff --git a/.gitignore b/.gitignore index b1e3ed4..2c86045 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ cabal-install-0.8.2.tar.gz /cabal-install-2.4.1.0.tar.gz /cabal-install-3.0.0.0.tar.gz /cabal-install-3.2.0.0.tar.gz +/cabal-install-3.6.2.0.tar.gz diff --git a/442869918260a7bb3f0cb0698eaeaeb6dae2c4f6.patch b/442869918260a7bb3f0cb0698eaeaeb6dae2c4f6.patch index 0594329..0c4e6af 100644 --- a/442869918260a7bb3f0cb0698eaeaeb6dae2c4f6.patch +++ b/442869918260a7bb3f0cb0698eaeaeb6dae2c4f6.patch @@ -10,8 +10,8 @@ Fixes #5813. diff --git a/cabal-install/Distribution/Client/CmdSdist.hs b/cabal-install/Distribution/Client/CmdSdist.hs index 55d01ad24a..218da6b720 100644 ---- a/cabal-install/Distribution/Client/CmdSdist.hs -+++ b/cabal-install/Distribution/Client/CmdSdist.hs +--- a/cabal-install/src/Distribution/Client/CmdSdist.hs ++++ b/cabal-install/stc/Distribution/Client/CmdSdist.hs @@ -75,7 +75,8 @@ import Data.List import qualified Data.Set as Set import System.Directory diff --git a/83983fcc4ba16d7969ba36f4174daf27de00a38e.patch b/83983fcc4ba16d7969ba36f4174daf27de00a38e.patch deleted file mode 100644 index d1e98fe..0000000 --- a/83983fcc4ba16d7969ba36f4174daf27de00a38e.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 83983fcc4ba16d7969ba36f4174daf27de00a38e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ond=C5=99ej=20S=C3=BAkup?= -Date: Thu, 10 Dec 2020 19:49:23 +0100 -Subject: [PATCH] Allow base16-bytestring 1.0 and newer - ---- - cabal-install/cabal-install.cabal | 2 +- - cabal-install/src/Distribution/Client/HashValue.hs | 7 ++++++- - cabal-install/src/Distribution/Client/HttpUtils.hs | 5 +++++ - 3 files changed, 12 insertions(+), 2 deletions(-) - -diff --git a/cabal-install/cabal-install.cabal b/cabal-install/cabal-install.cabal -index 70e936ffb0e..70bc12458ab 100644 ---- a/cabal-install/cabal-install.cabal -+++ b/cabal-install/cabal-install.cabal -@@ -267,7 +267,7 @@ executable cabal - async >= 2.0 && < 2.3, - array >= 0.4 && < 0.6, - base >= 4.8 && < 4.15, -- base16-bytestring >= 0.1.1 && < 0.2, -+ base16-bytestring >= 0.1.1 && < 1.1.0.0, - binary >= 0.7.3 && < 0.9, - bytestring >= 0.10.6.0 && < 0.11, - Cabal == 3.2.*, -diff --git a/cabal-install/src/Distribution/Client/HashValue.hs b/cabal-install/src/Distribution/Client/HashValue.hs -index d41c70bf480..abde9c909a9 100644 ---- a/cabal-install/Distribution/Client/HashValue.hs -+++ b/cabal-install/Distribution/Client/HashValue.hs -@@ -1,3 +1,4 @@ -+{-# LANGUAGE CPP #-} - {-# LANGUAGE DeriveDataTypeable #-} - {-# LANGUAGE DeriveGeneric #-} - module Distribution.Client.HashValue ( -@@ -71,10 +72,14 @@ hashFromTUF (Sec.Hash hashstr) = - --TODO: [code cleanup] either we should get TUF to use raw bytestrings or - -- perhaps we should also just use a base16 string as the internal rep. - case Base16.decode (BS.pack hashstr) of -+#if MIN_VERSION_base16_bytestring(1,0,0) -+ Right hash -> HashValue hash -+ Left _ -> error "hashFromTUF: cannot decode base16" -+#else - (hash, trailing) | not (BS.null hash) && BS.null trailing - -> HashValue hash - _ -> error "hashFromTUF: cannot decode base16 hash" -- -+#endif - - -- | Truncate a 32 byte SHA256 hash to - -- diff --git a/cabal-3.2-ghc-8.10-opensuse.patch b/cabal-3.2-ghc-8.10-opensuse.patch deleted file mode 100644 index a6622a2..0000000 --- a/cabal-3.2-ghc-8.10-opensuse.patch +++ /dev/null @@ -1,344 +0,0 @@ -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 diff --git a/cabal-install-3.6.2.0.cabal b/cabal-install-3.6.2.0.cabal new file mode 100644 index 0000000..832e164 --- /dev/null +++ b/cabal-install-3.6.2.0.cabal @@ -0,0 +1,330 @@ +Cabal-Version: >= 1.10 +-- NOTE: This file is autogenerated from 'cabal-install.cabal.pp'. +-- DO NOT EDIT MANUALLY. +-- To update this file, edit 'cabal-install.cabal.pp' and run +-- 'make cabal-install-prod' in the project's root folder. +Name: cabal-install +Version: 3.6.2.0 +x-revision: 2 +Synopsis: The command-line interface for Cabal and Hackage. +Description: + The \'cabal\' command-line program simplifies the process of managing + Haskell software by automating the fetching, configuration, compilation + and installation of Haskell libraries and programs. +homepage: http://www.haskell.org/cabal/ +bug-reports: https://github.com/haskell/cabal/issues +License: BSD3 +License-File: LICENSE +Author: Cabal Development Team (see AUTHORS file) +Maintainer: Cabal Development Team +Copyright: 2003-2020, Cabal Development Team +Category: Distribution +Build-type: Simple +Extra-Source-Files: + README.md bash-completion/cabal changelog + +source-repository head + type: git + location: https://github.com/haskell/cabal/ + subdir: cabal-install + +Flag native-dns + description: Enable use of the [resolv](https://hackage.haskell.org/package/resolv) & [windns](https://hackage.haskell.org/package/windns) packages for performing DNS lookups + default: True + manual: True + +Flag debug-expensive-assertions + description: Enable expensive assertions for testing or debugging + default: False + manual: True + +Flag debug-conflict-sets + description: Add additional information to ConflictSets + default: False + manual: True + +Flag debug-tracetree + description: Compile in support for tracetree (used to debug the solver) + default: False + manual: True + +Flag lukko + description: Use @lukko@ for file-locking + default: True + manual: True + +executable cabal + main-is: Main.hs + hs-source-dirs: main + default-language: Haskell2010 + ghc-options: -Wall -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates + if impl(ghc >= 8.0) + ghc-options: -Wcompat + -Wnoncanonical-monad-instances + if impl(ghc < 8.8) + ghc-options: -Wnoncanonical-monadfail-instances + + if impl(ghc >=8.10) + ghc-options: -Wunused-packages + + + ghc-options: -rtsopts -threaded + + -- On AIX, some legacy BSD operations such as flock(2) are provided by libbsd.a + if os(aix) + extra-libraries: bsd + hs-source-dirs: src + other-modules: + -- this modules are moved from Cabal + -- they are needed for as long until cabal-install moves to parsec parser + Distribution.Deprecated.ParseUtils + Distribution.Deprecated.ReadP + Distribution.Deprecated.ViewAsFieldDescr + + Distribution.Client.BuildReports.Anonymous + Distribution.Client.BuildReports.Lens + Distribution.Client.BuildReports.Storage + Distribution.Client.BuildReports.Types + Distribution.Client.BuildReports.Upload + Distribution.Client.Check + Distribution.Client.CmdBench + Distribution.Client.CmdBuild + Distribution.Client.CmdClean + Distribution.Client.CmdConfigure + Distribution.Client.CmdErrorMessages + Distribution.Client.CmdExec + Distribution.Client.CmdFreeze + Distribution.Client.CmdHaddock + Distribution.Client.CmdInstall + Distribution.Client.CmdInstall.ClientInstallFlags + Distribution.Client.CmdInstall.ClientInstallTargetSelector + Distribution.Client.CmdLegacy + Distribution.Client.CmdListBin + Distribution.Client.CmdRepl + Distribution.Client.CmdRun + Distribution.Client.CmdSdist + Distribution.Client.CmdTest + Distribution.Client.CmdUpdate + Distribution.Client.Compat.Directory + Distribution.Client.Compat.ExecutablePath + Distribution.Client.Compat.FilePerms + Distribution.Client.Compat.Orphans + Distribution.Client.Compat.Prelude + Distribution.Client.Compat.Process + Distribution.Client.Compat.Semaphore + Distribution.Client.Config + Distribution.Client.Configure + Distribution.Client.Dependency + Distribution.Client.Dependency.Types + Distribution.Client.DistDirLayout + Distribution.Client.Fetch + Distribution.Client.FetchUtils + Distribution.Client.FileMonitor + Distribution.Client.Freeze + Distribution.Client.GZipUtils + Distribution.Client.GenBounds + Distribution.Client.Get + Distribution.Client.Glob + Distribution.Client.GlobalFlags + Distribution.Client.Haddock + Distribution.Client.HashValue + Distribution.Client.HttpUtils + Distribution.Client.IndexUtils + Distribution.Client.IndexUtils.ActiveRepos + Distribution.Client.IndexUtils.IndexState + Distribution.Client.IndexUtils.Timestamp + Distribution.Client.Init + Distribution.Client.Init.Command + Distribution.Client.Init.Defaults + Distribution.Client.Init.FileCreators + Distribution.Client.Init.Heuristics + Distribution.Client.Init.Licenses + Distribution.Client.Init.Prompt + Distribution.Client.Init.Types + Distribution.Client.Init.Utils + Distribution.Client.Install + Distribution.Client.InstallPlan + Distribution.Client.InstallSymlink + Distribution.Client.JobControl + Distribution.Client.List + Distribution.Client.Manpage + Distribution.Client.ManpageFlags + Distribution.Client.Nix + Distribution.Client.NixStyleOptions + Distribution.Client.Outdated + Distribution.Client.PackageHash + Distribution.Client.ParseUtils + Distribution.Client.ProjectBuilding + Distribution.Client.ProjectBuilding.Types + Distribution.Client.ProjectConfig + Distribution.Client.ProjectConfig.Legacy + Distribution.Client.ProjectConfig.Types + Distribution.Client.ProjectFlags + Distribution.Client.ProjectOrchestration + Distribution.Client.ProjectPlanOutput + Distribution.Client.ProjectPlanning + Distribution.Client.ProjectPlanning.Types + Distribution.Client.RebuildMonad + Distribution.Client.Reconfigure + Distribution.Client.Run + Distribution.Client.Sandbox + Distribution.Client.Sandbox.PackageEnvironment + Distribution.Client.SavedFlags + Distribution.Client.Security.DNS + Distribution.Client.Security.HTTP + Distribution.Client.Setup + Distribution.Client.SetupWrapper + Distribution.Client.SolverInstallPlan + Distribution.Client.SourceFiles + Distribution.Client.SrcDist + Distribution.Client.Store + Distribution.Client.Tar + Distribution.Client.TargetProblem + Distribution.Client.TargetSelector + Distribution.Client.Targets + Distribution.Client.Types + Distribution.Client.Types.AllowNewer + Distribution.Client.Types.BuildResults + Distribution.Client.Types.ConfiguredId + Distribution.Client.Types.ConfiguredPackage + Distribution.Client.Types.Credentials + Distribution.Client.Types.InstallMethod + Distribution.Client.Types.OverwritePolicy + Distribution.Client.Types.PackageLocation + Distribution.Client.Types.PackageSpecifier + Distribution.Client.Types.ReadyPackage + Distribution.Client.Types.Repo + Distribution.Client.Types.RepoName + Distribution.Client.Types.SourcePackageDb + Distribution.Client.Types.SourceRepo + Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy + Distribution.Client.Upload + Distribution.Client.Utils + Distribution.Client.Utils.Json + Distribution.Client.Utils.Parsec + Distribution.Client.VCS + Distribution.Client.Win32SelfUpgrade + Distribution.Client.World + + hs-source-dirs: cabal-install-solver/src-assertion + other-modules: + Distribution.Client.Utils.Assertion + + hs-source-dirs: cabal-install-solver/src + other-modules: + Distribution.Solver.Compat.Prelude + Distribution.Solver.Modular + Distribution.Solver.Modular.Assignment + Distribution.Solver.Modular.Builder + Distribution.Solver.Modular.Configured + Distribution.Solver.Modular.ConfiguredConversion + Distribution.Solver.Modular.ConflictSet + Distribution.Solver.Modular.Cycles + Distribution.Solver.Modular.Dependency + Distribution.Solver.Modular.Explore + Distribution.Solver.Modular.Flag + Distribution.Solver.Modular.Index + Distribution.Solver.Modular.IndexConversion + Distribution.Solver.Modular.LabeledGraph + Distribution.Solver.Modular.Linking + Distribution.Solver.Modular.Log + Distribution.Solver.Modular.Message + Distribution.Solver.Modular.PSQ + Distribution.Solver.Modular.Package + Distribution.Solver.Modular.Preference + Distribution.Solver.Modular.RetryLog + Distribution.Solver.Modular.Solver + Distribution.Solver.Modular.Tree + Distribution.Solver.Modular.Validate + Distribution.Solver.Modular.Var + Distribution.Solver.Modular.Version + Distribution.Solver.Modular.WeightedPSQ + Distribution.Solver.Types.ComponentDeps + Distribution.Solver.Types.ConstraintSource + Distribution.Solver.Types.DependencyResolver + Distribution.Solver.Types.Flag + Distribution.Solver.Types.InstSolverPackage + Distribution.Solver.Types.InstalledPreference + Distribution.Solver.Types.LabeledPackageConstraint + Distribution.Solver.Types.OptionalStanza + Distribution.Solver.Types.PackageConstraint + Distribution.Solver.Types.PackageFixedDeps + Distribution.Solver.Types.PackageIndex + Distribution.Solver.Types.PackagePath + Distribution.Solver.Types.PackagePreferences + Distribution.Solver.Types.PkgConfigDb + Distribution.Solver.Types.Progress + Distribution.Solver.Types.ResolverPackage + Distribution.Solver.Types.Settings + Distribution.Solver.Types.SolverId + Distribution.Solver.Types.SolverPackage + Distribution.Solver.Types.SourcePackage + Distribution.Solver.Types.Variable + + other-modules: + Paths_cabal_install + + build-depends: + async >= 2.0 && < 2.3, + array >= 0.4 && < 0.6, + base >= 4.8 && < 4.17, + base16-bytestring >= 0.1.1 && < 1.1.0.0, + binary >= 0.7.3 && < 0.9, + bytestring >= 0.10.6.0 && < 0.12, + Cabal >= 3.6.1.0 && < 3.7, + containers >= 0.5.6.2 && < 0.7, + cryptohash-sha256 >= 0.11 && < 0.12, + deepseq >= 1.4.1.1 && < 1.5, + directory >= 1.2.2.0 && < 1.4, + echo >= 0.1.3 && < 0.2, + edit-distance >= 0.2.2 && < 0.3, + filepath >= 1.4.0.0 && < 1.5, + hashable >= 1.0 && < 1.5, + HTTP >= 4000.1.5 && < 4000.5, + mtl >= 2.0 && < 2.3, + network-uri >= 2.6.0.2 && < 2.7, + pretty >= 1.1 && < 1.2, + process >= 1.2.3.0 && < 1.7, + random >= 1.2 && < 1.3, + stm >= 2.0 && < 2.6, + tar >= 0.5.0.3 && < 0.6, + time >= 1.5.0.1 && < 1.12, + transformers >= 0.4.2.0 && < 0.6, + zlib >= 0.5.3 && < 0.7, + hackage-security >= 0.6.0.1 && < 0.7, + text >= 1.2.3 && < 1.3, + parsec >= 3.1.13.0 && < 3.2, + regex-base >= 0.94.0.0 && <0.95, + regex-posix >= 0.96.0.0 && <0.97 + + if !impl(ghc >= 8.0) + build-depends: fail == 4.9.* + build-depends: semigroups >= 0.18.3 && <0.20 + + if flag(native-dns) + if os(windows) + build-depends: windns >= 0.1.0 && < 0.2 + else + build-depends: resolv >= 0.1.1 && < 0.2 + + if os(windows) + -- newer directory for symlinks + build-depends: Win32 >= 2 && < 2.8, directory >=1.3.1.0 + else + build-depends: unix >= 2.5 && < 2.9 + + if flag(lukko) + build-depends: lukko >= 0.1 && <0.2 + else + build-depends: base >= 4.10 + + if flag(debug-expensive-assertions) + cpp-options: -DDEBUG_EXPENSIVE_ASSERTIONS + + if flag(debug-conflict-sets) + cpp-options: -DDEBUG_CONFLICT_SETS + build-depends: base >= 4.8 + + if flag(debug-tracetree) + cpp-options: -DDEBUG_TRACETREE + build-depends: tracetree >= 0.1 && < 0.2 diff --git a/cabal-install.spec b/cabal-install.spec index 0b757b9..94c8063 100644 --- a/cabal-install.spec +++ b/cabal-install.spec @@ -2,23 +2,22 @@ # https://docs.fedoraproject.org/en-US/packaging-guidelines/Haskell/ Name: cabal-install -Version: 3.2.0.0 -Release: 9%{?dist} +Version: 3.6.2.0 +Release: 1%{?dist} Summary: The command-line interface for Cabal and Hackage License: BSD-3-Clause Url: https://hackage.haskell.org/package/%{name} # Begin cabal-rpm sources: Source0: https://hackage.haskell.org/package/%{name}-%{version}/%{name}-%{version}.tar.gz +Source1: https://hackage.haskell.org/package/%{name}-%{version}/%{name}.cabal#/%{name}-%{version}.cabal # End cabal-rpm sources Source10: cabal-install.sh # backport sdist fix from https://github.com/haskell/cabal/issues/5813 -Patch0: https://github.com/haskell/cabal/commit/442869918260a7bb3f0cb0698eaeaeb6dae2c4f6.patch -# https://build.opensuse.org/package/view_file/openSUSE:Factory/cabal-install/ghc-8.10-support-for-3.2.patch -Patch1: cabal-3.2-ghc-8.10-opensuse.patch -Patch2: https://github.com/haskell/cabal/commit/83983fcc4ba16d7969ba36f4174daf27de00a38e.patch +#Patch0: https://github.com/haskell/cabal/commit/442869918260a7bb3f0cb0698eaeaeb6dae2c4f6.patch # Begin cabal-rpm deps: +BuildRequires: dos2unix BuildRequires: ghc-rpm-macros BuildRequires: ghc-Cabal-devel BuildRequires: ghc-HTTP-devel @@ -39,12 +38,13 @@ 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 BuildRequires: ghc-parsec-devel BuildRequires: ghc-pretty-devel BuildRequires: ghc-process-devel BuildRequires: ghc-random-devel +BuildRequires: ghc-regex-base-devel +BuildRequires: ghc-regex-posix-devel BuildRequires: ghc-resolv-devel BuildRequires: ghc-stm-devel BuildRequires: ghc-tar-devel @@ -76,13 +76,9 @@ installation of Haskell libraries and programs. %prep # Begin cabal-rpm setup: %setup -q +dos2unix -k -n %{SOURCE1} %{name}.cabal # End cabal-rpm setup -%patch0 -p2 -b .sdist -%patch1 -p2 -b .ghc8.10 -#cabal-tweak-dep-ver base '< 4.14' '< 4.15' -%patch2 -p2 -b .base16 -#cabal-tweak-dep-ver base16-bytestring '< 0.2' '< 2' -cabal-tweak-dep-ver random '< 1.2' '< 1.3' +#%%patch0 -p2 -b .sdist %build @@ -109,10 +105,13 @@ install -pm 644 -D -t %{buildroot}%{_sysconfdir}/profile.d/ %{SOURCE10} # End cabal-rpm files %config(noreplace) %{_sysconfdir}/profile.d/cabal-install.sh %{_datadir}/bash-completion/completions/cabal -%{_mandir}/man1/cabal.1* %changelog +* Sun Jan 22 2023 Jens Petersen - 3.6.2.0-1 +- https://hackage.haskell.org/package/cabal-install-3.6.2.0/changelog +- refresh to cabal-rpm-2.1.0 with SPDX migration + * Fri Sep 16 2022 Jens Petersen - 3.2.0.0-9 - revert recommending ghcX.Y diff --git a/sources b/sources index 1d6b029..20d6f97 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (cabal-install-3.2.0.0.tar.gz) = ad937b2df42b688e4608aa2b91a25daf1042e5573626202e5182cbfeca9acc5933194853405a6396c60d0d28d6d0d5c5276fd85cb6acf4be2c8cd12afe747062 +SHA512 (cabal-install-3.6.2.0.tar.gz) = a02d72fd7d0bf7778b1d4f2925e0b78f6c321cb29d59d559da758bfa6a0cd17fc776bd64911db8d28a208189b35db50aceae109782a1011e059446c4c2d77ad3