Bump upper bounds for some deps due to GHC 9.6
[cabal.git] / cabal-install / cabal-install.cabal
blob99fa0398ae66d2a7ee712940975a7bf278662ec5
1 Cabal-Version:      2.2
3 Name:               cabal-install
4 Version:            3.11.0.0
5 Synopsis:           The command-line interface for Cabal and Hackage.
6 Description:
7     The \'cabal\' command-line program simplifies the process of managing
8     Haskell software by automating the fetching, configuration, compilation
9     and installation of Haskell libraries and programs.
10 homepage:           http://www.haskell.org/cabal/
11 bug-reports:        https://github.com/haskell/cabal/issues
12 License:            BSD-3-Clause
13 License-File:       LICENSE
14 Author:             Cabal Development Team (see AUTHORS file)
15 Maintainer:         Cabal Development Team <cabal-devel@haskell.org>
16 Copyright:          2003-2023, Cabal Development Team
17 Category:           Distribution
18 Build-type:         Simple
19 Extra-Source-Files:
20   README.md
21   bash-completion/cabal
22   changelog
24 source-repository head
25   type:     git
26   location: https://github.com/haskell/cabal/
27   subdir:   cabal-install
29 Flag native-dns
30   description:
31     Enable use of the [resolv](https://hackage.haskell.org/package/resolv)
32     & [windns](https://hackage.haskell.org/package/windns) packages for performing DNS lookups
33   default:      True
34   manual:       True
36 Flag lukko
37   description:  Use @lukko@ for file-locking
38   default:      True
39   manual:       True
41 common warnings
42     ghc-options: -Wall -Wcompat -Wnoncanonical-monad-instances -Wincomplete-uni-patterns -Wincomplete-record-updates
43     if impl(ghc < 8.8)
44       ghc-options: -Wnoncanonical-monadfail-instances
45     if impl(ghc >=8.10)
46       ghc-options: -Wunused-packages
48 common base-dep
49     build-depends: base >=4.10 && <4.19
51 common cabal-dep
52     build-depends: Cabal ^>=3.11
54 common cabal-syntax-dep
55     build-depends: Cabal-syntax ^>=3.11
57 common cabal-install-solver-dep
58     build-depends: cabal-install-solver ^>=3.11
60 library
61     import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
62     default-language: Haskell2010
63     default-extensions: TypeOperators
65     hs-source-dirs:   src
66     exposed-modules:
67         -- this modules are moved from Cabal
68         -- they are needed for as long until cabal-install moves to parsec parser
69         Distribution.Deprecated.ParseUtils
70         Distribution.Deprecated.ReadP
71         Distribution.Deprecated.ViewAsFieldDescr
73         Distribution.Client.BuildReports.Anonymous
74         Distribution.Client.BuildReports.Lens
75         Distribution.Client.BuildReports.Storage
76         Distribution.Client.BuildReports.Types
77         Distribution.Client.BuildReports.Upload
78         Distribution.Client.Check
79         Distribution.Client.CmdBench
80         Distribution.Client.CmdBuild
81         Distribution.Client.CmdClean
82         Distribution.Client.CmdConfigure
83         Distribution.Client.CmdErrorMessages
84         Distribution.Client.CmdExec
85         Distribution.Client.CmdFreeze
86         Distribution.Client.CmdHaddock
87         Distribution.Client.CmdHaddockProject
88         Distribution.Client.CmdInstall
89         Distribution.Client.CmdInstall.ClientInstallFlags
90         Distribution.Client.CmdInstall.ClientInstallTargetSelector
91         Distribution.Client.CmdLegacy
92         Distribution.Client.CmdListBin
93         Distribution.Client.CmdOutdated
94         Distribution.Client.CmdRepl
95         Distribution.Client.CmdRun
96         Distribution.Client.CmdSdist
97         Distribution.Client.CmdTest
98         Distribution.Client.CmdUpdate
99         Distribution.Client.Compat.Directory
100         Distribution.Client.Compat.ExecutablePath
101         Distribution.Client.Compat.Orphans
102         Distribution.Client.Compat.Prelude
103         Distribution.Client.Compat.Semaphore
104         Distribution.Client.Config
105         Distribution.Client.Configure
106         Distribution.Client.Dependency
107         Distribution.Client.Dependency.Types
108         Distribution.Client.DistDirLayout
109         Distribution.Client.Fetch
110         Distribution.Client.FetchUtils
111         Distribution.Client.FileMonitor
112         Distribution.Client.Freeze
113         Distribution.Client.GZipUtils
114         Distribution.Client.GenBounds
115         Distribution.Client.Get
116         Distribution.Client.Glob
117         Distribution.Client.GlobalFlags
118         Distribution.Client.Haddock
119         Distribution.Client.HashValue
120         Distribution.Client.HttpUtils
121         Distribution.Client.IndexUtils
122         Distribution.Client.IndexUtils.ActiveRepos
123         Distribution.Client.IndexUtils.IndexState
124         Distribution.Client.IndexUtils.Timestamp
125         Distribution.Client.Init
126         Distribution.Client.Init.Defaults
127         Distribution.Client.Init.FileCreators
128         Distribution.Client.Init.FlagExtractors
129         Distribution.Client.Init.Format
130         Distribution.Client.Init.Interactive.Command
131         Distribution.Client.Init.NonInteractive.Command
132         Distribution.Client.Init.NonInteractive.Heuristics
133         Distribution.Client.Init.Licenses
134         Distribution.Client.Init.Prompt
135         Distribution.Client.Init.Simple
136         Distribution.Client.Init.Types
137         Distribution.Client.Init.Utils
138         Distribution.Client.Install
139         Distribution.Client.InstallPlan
140         Distribution.Client.InstallSymlink
141         Distribution.Client.JobControl
142         Distribution.Client.List
143         Distribution.Client.Main
144         Distribution.Client.Manpage
145         Distribution.Client.ManpageFlags
146         Distribution.Client.Nix
147         Distribution.Client.NixStyleOptions
148         Distribution.Client.PackageHash
149         Distribution.Client.ParseUtils
150         Distribution.Client.ProjectBuilding
151         Distribution.Client.ProjectBuilding.Types
152         Distribution.Client.ProjectConfig
153         Distribution.Client.ProjectConfig.Legacy
154         Distribution.Client.ProjectConfig.Types
155         Distribution.Client.ProjectFlags
156         Distribution.Client.ProjectOrchestration
157         Distribution.Client.ProjectPlanOutput
158         Distribution.Client.ProjectPlanning
159         Distribution.Client.ProjectPlanning.Types
160         Distribution.Client.RebuildMonad
161         Distribution.Client.Reconfigure
162         Distribution.Client.Run
163         Distribution.Client.Sandbox
164         Distribution.Client.Sandbox.PackageEnvironment
165         Distribution.Client.SavedFlags
166         Distribution.Client.ScriptUtils
167         Distribution.Client.Security.DNS
168         Distribution.Client.Security.HTTP
169         Distribution.Client.Setup
170         Distribution.Client.SetupWrapper
171         Distribution.Client.Signal
172         Distribution.Client.SolverInstallPlan
173         Distribution.Client.SourceFiles
174         Distribution.Client.SrcDist
175         Distribution.Client.Store
176         Distribution.Client.Tar
177         Distribution.Client.TargetProblem
178         Distribution.Client.TargetSelector
179         Distribution.Client.Targets
180         Distribution.Client.Types
181         Distribution.Client.Types.AllowNewer
182         Distribution.Client.Types.BuildResults
183         Distribution.Client.Types.ConfiguredId
184         Distribution.Client.Types.ConfiguredPackage
185         Distribution.Client.Types.Credentials
186         Distribution.Client.Types.InstallMethod
187         Distribution.Client.Types.OverwritePolicy
188         Distribution.Client.Types.PackageLocation
189         Distribution.Client.Types.PackageSpecifier
190         Distribution.Client.Types.ReadyPackage
191         Distribution.Client.Types.Repo
192         Distribution.Client.Types.RepoName
193         Distribution.Client.Types.SourcePackageDb
194         Distribution.Client.Types.SourceRepo
195         Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy
196         Distribution.Client.Upload
197         Distribution.Client.Utils
198         Distribution.Client.Utils.Json
199         Distribution.Client.Utils.Parsec
200         Distribution.Client.VCS
201         Distribution.Client.Version
202         Distribution.Client.Win32SelfUpgrade
204     build-depends:
205         async      >= 2.0      && < 2.3,
206         array      >= 0.4      && < 0.6,
207         base16-bytestring >= 0.1.1 && < 1.1.0.0,
208         binary     >= 0.7.3    && < 0.9,
209         bytestring >= 0.10.6.0 && < 0.12,
210         containers >= 0.5.6.2  && < 0.7,
211         cryptohash-sha256 >= 0.11 && < 0.12,
212         directory  >= 1.3.7.0  && < 1.4,
213         echo       >= 0.1.3    && < 0.2,
214         edit-distance >= 0.2.2 && < 0.3,
215         exceptions >= 0.10.4   && < 0.11,
216         filepath   >= 1.4.0.0  && < 1.5,
217         hashable   >= 1.0      && < 1.5,
218         HTTP       >= 4000.1.5 && < 4000.5,
219         mtl        >= 2.0      && < 2.4,
220         network-uri >= 2.6.0.2 && < 2.7,
221         pretty     >= 1.1      && < 1.2,
222         process    >= 1.2.3.0  && < 1.7,
223         random     >= 1.2      && < 1.3,
224         stm        >= 2.0      && < 2.6,
225         tar        >= 0.5.0.3  && < 0.6,
226         time       >= 1.5.0.1  && < 1.13,
227         zlib       >= 0.5.3    && < 0.7,
228         hackage-security >= 0.6.2.0 && < 0.7,
229         text       >= 1.2.3    && < 1.3 || >= 2.0 && < 2.1,
230         parsec     >= 3.1.13.0 && < 3.2,
231         regex-base  >= 0.94.0.0 && <0.95,
232         regex-posix >= 0.96.0.0 && <0.97,
233         safe-exceptions >= 0.1.7.0 && < 0.2
235     if flag(native-dns)
236       if os(windows)
237         build-depends: windns      >= 0.1.0 && < 0.2
238       else
239         build-depends: resolv      >= 0.1.1 && < 0.2
241     if os(windows)
242       -- newer directory for symlinks
243       build-depends: Win32 >= 2.8 && < 3, directory >=1.3.1.0
244     else
245       build-depends: unix >= 2.5 && < 2.9
247     if flag(lukko)
248       build-depends: lukko >= 0.1 && <0.2
250    -- pull in process version with fixed waitForProcess error
251    if impl(ghc >=8.2)
252      build-depends: process >= 1.6.15.0
255 executable cabal
256     import: warnings, base-dep
257     main-is: Main.hs
258     hs-source-dirs: main
259     default-language: Haskell2010
261     ghc-options: -rtsopts -threaded
263     -- On AIX, some legacy BSD operations such as flock(2) are provided by libbsd.a
264     if os(aix)
265         extra-libraries: bsd
267     build-depends:
268         cabal-install
270 -- Small, fast running tests.
272 test-suite unit-tests
273     import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
274     default-language: Haskell2010
275     default-extensions: TypeOperators
276     ghc-options: -rtsopts -threaded
278     type: exitcode-stdio-1.0
279     main-is: UnitTests.hs
280     hs-source-dirs: tests
281     other-modules:
282       UnitTests.Distribution.Client.ArbitraryInstances
283       UnitTests.Distribution.Client.BuildReport
284       UnitTests.Distribution.Client.Configure
285       UnitTests.Distribution.Client.FetchUtils
286       UnitTests.Distribution.Client.Get
287       UnitTests.Distribution.Client.Glob
288       UnitTests.Distribution.Client.GZipUtils
289       UnitTests.Distribution.Client.IndexUtils
290       UnitTests.Distribution.Client.IndexUtils.Timestamp
291       UnitTests.Distribution.Client.Init
292       UnitTests.Distribution.Client.Init.Golden
293       UnitTests.Distribution.Client.Init.Interactive
294       UnitTests.Distribution.Client.Init.NonInteractive
295       UnitTests.Distribution.Client.Init.Simple
296       UnitTests.Distribution.Client.Init.Utils
297       UnitTests.Distribution.Client.Init.FileCreators
298       UnitTests.Distribution.Client.InstallPlan
299       UnitTests.Distribution.Client.JobControl
300       UnitTests.Distribution.Client.ProjectConfig
301       UnitTests.Distribution.Client.ProjectPlanning
302       UnitTests.Distribution.Client.Store
303       UnitTests.Distribution.Client.Tar
304       UnitTests.Distribution.Client.Targets
305       UnitTests.Distribution.Client.TreeDiffInstances
306       UnitTests.Distribution.Client.UserConfig
307       UnitTests.Distribution.Solver.Modular.Builder
308       UnitTests.Distribution.Solver.Modular.RetryLog
309       UnitTests.Distribution.Solver.Modular.Solver
310       UnitTests.Distribution.Solver.Modular.DSL
311       UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
312       UnitTests.Distribution.Solver.Modular.WeightedPSQ
313       UnitTests.Distribution.Solver.Types.OptionalStanza
314       UnitTests.Options
315       UnitTests.TempTestDir
317     build-depends:
318           array,
319           bytestring,
320           cabal-install,
321           Cabal-tree-diff,
322           Cabal-QuickCheck,
323           containers,
324           directory,
325           filepath,
326           mtl,
327           network-uri >= 2.6.2.0 && <2.7,
328           random,
329           tar,
330           time,
331           zlib,
332           tasty >= 1.2.3 && <1.5,
333           tasty-golden >=2.3.1.1 && <2.4,
334           tasty-quickcheck,
335           tasty-hunit >= 0.10,
336           tree-diff,
337           QuickCheck >= 2.14 && <2.15
340 -- Tests to run with a limited stack and heap size
341 -- The test suite name must be keep short cause a longer one
342 -- could make the build generating paths which exceeds the windows
343 -- max path limit (still a problem for some ghc versions)
344 test-suite mem-use-tests
345   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
346   type: exitcode-stdio-1.0
347   main-is: MemoryUsageTests.hs
348   hs-source-dirs: tests
349   default-language: Haskell2010
351   ghc-options: -threaded -rtsopts "-with-rtsopts=-M16M -K1K"
353   other-modules:
354     UnitTests.Distribution.Solver.Modular.DSL
355     UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
356     UnitTests.Distribution.Solver.Modular.MemoryUsage
357     UnitTests.Options
359   build-depends:
360         cabal-install,
361         containers,
362         tasty >= 1.2.3 && <1.5,
363         tasty-hunit >= 0.10
366 -- Integration tests that use the cabal-install code directly
367 -- but still build whole projects
368 test-suite integration-tests2
369   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
370   ghc-options: -rtsopts -threaded
371   type: exitcode-stdio-1.0
372   main-is: IntegrationTests2.hs
373   hs-source-dirs: tests
374   default-language: Haskell2010
376   build-depends:
377         bytestring,
378         cabal-install,
379         containers,
380         directory,
381         filepath,
382         tasty >= 1.2.3 && <1.5,
383         tasty-hunit >= 0.10,
384         tagged
386 test-suite long-tests
387   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
388   ghc-options: -rtsopts -threaded
389   type: exitcode-stdio-1.0
390   hs-source-dirs: tests
391   main-is: LongTests.hs
392   default-language: Haskell2010
394   other-modules:
395     UnitTests.Distribution.Client.ArbitraryInstances
396     UnitTests.Distribution.Client.Described
397     UnitTests.Distribution.Client.DescribedInstances
398     UnitTests.Distribution.Client.FileMonitor
399     UnitTests.Distribution.Client.VCS
400     UnitTests.Distribution.Solver.Modular.DSL
401     UnitTests.Distribution.Solver.Modular.QuickCheck
402     UnitTests.Distribution.Solver.Modular.QuickCheck.Utils
403     UnitTests.Options
404     UnitTests.TempTestDir
406   build-depends:
407         Cabal-QuickCheck,
408         Cabal-described,
409         cabal-install,
410         containers,
411         directory,
412         filepath,
413         hashable,
414         mtl,
415         network-uri >= 2.6.2.0 && <2.7,
416         random,
417         tagged,
418         tasty >= 1.2.3 && <1.5,
419         tasty-expected-failure,
420         tasty-hunit >= 0.10,
421         tasty-quickcheck,
422         QuickCheck >= 2.14 && <2.15,
423         pretty-show >= 1.6.15