Accepting the new error output
[cabal.git] / cabal-install / cabal-install.cabal
blob85b84f43f5a75f9a79d2d7482d0c5c0a38e5e63d
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.Errors
110         Distribution.Client.Fetch
111         Distribution.Client.FetchUtils
112         Distribution.Client.FileMonitor
113         Distribution.Client.Freeze
114         Distribution.Client.GZipUtils
115         Distribution.Client.GenBounds
116         Distribution.Client.Get
117         Distribution.Client.Glob
118         Distribution.Client.GlobalFlags
119         Distribution.Client.Haddock
120         Distribution.Client.HashValue
121         Distribution.Client.HttpUtils
122         Distribution.Client.IndexUtils
123         Distribution.Client.IndexUtils.ActiveRepos
124         Distribution.Client.IndexUtils.IndexState
125         Distribution.Client.IndexUtils.Timestamp
126         Distribution.Client.Init
127         Distribution.Client.Init.Defaults
128         Distribution.Client.Init.FileCreators
129         Distribution.Client.Init.FlagExtractors
130         Distribution.Client.Init.Format
131         Distribution.Client.Init.Interactive.Command
132         Distribution.Client.Init.NonInteractive.Command
133         Distribution.Client.Init.NonInteractive.Heuristics
134         Distribution.Client.Init.Licenses
135         Distribution.Client.Init.Prompt
136         Distribution.Client.Init.Simple
137         Distribution.Client.Init.Types
138         Distribution.Client.Init.Utils
139         Distribution.Client.Install
140         Distribution.Client.InstallPlan
141         Distribution.Client.InstallSymlink
142         Distribution.Client.JobControl
143         Distribution.Client.List
144         Distribution.Client.Main
145         Distribution.Client.Manpage
146         Distribution.Client.ManpageFlags
147         Distribution.Client.Nix
148         Distribution.Client.NixStyleOptions
149         Distribution.Client.PackageHash
150         Distribution.Client.ParseUtils
151         Distribution.Client.ProjectBuilding
152         Distribution.Client.ProjectBuilding.Types
153         Distribution.Client.ProjectConfig
154         Distribution.Client.ProjectConfig.Legacy
155         Distribution.Client.ProjectConfig.Types
156         Distribution.Client.ProjectFlags
157         Distribution.Client.ProjectOrchestration
158         Distribution.Client.ProjectPlanOutput
159         Distribution.Client.ProjectPlanning
160         Distribution.Client.ProjectPlanning.Types
161         Distribution.Client.RebuildMonad
162         Distribution.Client.Reconfigure
163         Distribution.Client.ReplFlags
164         Distribution.Client.Run
165         Distribution.Client.Sandbox
166         Distribution.Client.Sandbox.PackageEnvironment
167         Distribution.Client.SavedFlags
168         Distribution.Client.ScriptUtils
169         Distribution.Client.Security.DNS
170         Distribution.Client.Security.HTTP
171         Distribution.Client.Setup
172         Distribution.Client.SetupWrapper
173         Distribution.Client.Signal
174         Distribution.Client.SolverInstallPlan
175         Distribution.Client.SourceFiles
176         Distribution.Client.SrcDist
177         Distribution.Client.Store
178         Distribution.Client.Tar
179         Distribution.Client.TargetProblem
180         Distribution.Client.TargetSelector
181         Distribution.Client.Targets
182         Distribution.Client.Types
183         Distribution.Client.Types.AllowNewer
184         Distribution.Client.Types.BuildResults
185         Distribution.Client.Types.ConfiguredId
186         Distribution.Client.Types.ConfiguredPackage
187         Distribution.Client.Types.Credentials
188         Distribution.Client.Types.InstallMethod
189         Distribution.Client.Types.OverwritePolicy
190         Distribution.Client.Types.PackageLocation
191         Distribution.Client.Types.PackageSpecifier
192         Distribution.Client.Types.ReadyPackage
193         Distribution.Client.Types.Repo
194         Distribution.Client.Types.RepoName
195         Distribution.Client.Types.SourcePackageDb
196         Distribution.Client.Types.SourceRepo
197         Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy
198         Distribution.Client.Upload
199         Distribution.Client.Utils
200         Distribution.Client.Utils.Json
201         Distribution.Client.Utils.Parsec
202         Distribution.Client.VCS
203         Distribution.Client.Version
204         Distribution.Client.Win32SelfUpgrade
206     build-depends:
207         async      >= 2.0      && < 2.3,
208         array      >= 0.4      && < 0.6,
209         base16-bytestring >= 0.1.1 && < 1.1.0.0,
210         base64-bytestring >= 1.0 && < 1.3,
211         binary     >= 0.7.3    && < 0.9,
212         bytestring >= 0.10.6.0 && < 0.13,
213         containers >= 0.5.6.2  && < 0.7,
214         cryptohash-sha256 >= 0.11 && < 0.12,
215         directory  >= 1.3.7.0  && < 1.4,
216         echo       >= 0.1.3    && < 0.2,
217         edit-distance >= 0.2.2 && < 0.3,
218         exceptions >= 0.10.4   && < 0.11,
219         filepath   >= 1.4.0.0  && < 1.5,
220         hashable   >= 1.0      && < 1.5,
221         HTTP       >= 4000.1.5 && < 4000.5,
222         mtl        >= 2.0      && < 2.4,
223         network-uri >= 2.6.0.2 && < 2.7,
224         pretty     >= 1.1      && < 1.2,
225         process    >= 1.2.3.0  && < 1.7,
226         random     >= 1.2      && < 1.3,
227         stm        >= 2.0      && < 2.6,
228         tar        >= 0.5.0.3  && < 0.6,
229         time       >= 1.5.0.1  && < 1.13,
230         zlib       >= 0.5.3    && < 0.7,
231         hackage-security >= 0.6.2.0 && < 0.7,
232         text       >= 1.2.3    && < 1.3 || >= 2.0 && < 2.1,
233         parsec     >= 3.1.13.0 && < 3.2,
234         regex-base  >= 0.94.0.0 && <0.95,
235         regex-posix >= 0.96.0.0 && <0.97,
236         safe-exceptions >= 0.1.7.0 && < 0.2,
237         semaphore-compat >= 1.0.0 && < 1.1
239     if flag(native-dns)
240       if os(windows)
241         build-depends: windns      >= 0.1.0 && < 0.2
242       else
243         build-depends: resolv      >= 0.1.1 && < 0.3
245     if os(windows)
246       -- newer directory for symlinks
247       build-depends: Win32 >= 2.8 && < 3, directory >=1.3.1.0
248     else
249       build-depends: unix >= 2.5 && < 2.9
251     if flag(lukko)
252       build-depends: lukko >= 0.1 && <0.2
254     -- pull in process version with fixed waitForProcess error
255     if impl(ghc >=8.2)
256       build-depends: process >= 1.6.15.0
259 executable cabal
260     import: warnings, base-dep
261     main-is: Main.hs
262     hs-source-dirs: main
263     default-language: Haskell2010
265     ghc-options: -rtsopts -threaded
267     -- On AIX, some legacy BSD operations such as flock(2) are provided by libbsd.a
268     if os(aix)
269         extra-libraries: bsd
271     build-depends:
272         cabal-install
274 -- Small, fast running tests.
276 test-suite unit-tests
277     import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
278     default-language: Haskell2010
279     default-extensions: TypeOperators
280     ghc-options: -rtsopts -threaded
282     type: exitcode-stdio-1.0
283     main-is: UnitTests.hs
284     hs-source-dirs: tests
285     other-modules:
286       UnitTests.Distribution.Client.ArbitraryInstances
287       UnitTests.Distribution.Client.BuildReport
288       UnitTests.Distribution.Client.Configure
289       UnitTests.Distribution.Client.FetchUtils
290       UnitTests.Distribution.Client.Get
291       UnitTests.Distribution.Client.Glob
292       UnitTests.Distribution.Client.GZipUtils
293       UnitTests.Distribution.Client.IndexUtils
294       UnitTests.Distribution.Client.IndexUtils.Timestamp
295       UnitTests.Distribution.Client.Init
296       UnitTests.Distribution.Client.Init.Golden
297       UnitTests.Distribution.Client.Init.Interactive
298       UnitTests.Distribution.Client.Init.NonInteractive
299       UnitTests.Distribution.Client.Init.Simple
300       UnitTests.Distribution.Client.Init.Utils
301       UnitTests.Distribution.Client.Init.FileCreators
302       UnitTests.Distribution.Client.InstallPlan
303       UnitTests.Distribution.Client.JobControl
304       UnitTests.Distribution.Client.ProjectConfig
305       UnitTests.Distribution.Client.ProjectPlanning
306       UnitTests.Distribution.Client.Store
307       UnitTests.Distribution.Client.Tar
308       UnitTests.Distribution.Client.Targets
309       UnitTests.Distribution.Client.TreeDiffInstances
310       UnitTests.Distribution.Client.UserConfig
311       UnitTests.Distribution.Solver.Modular.Builder
312       UnitTests.Distribution.Solver.Modular.RetryLog
313       UnitTests.Distribution.Solver.Modular.Solver
314       UnitTests.Distribution.Solver.Modular.DSL
315       UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
316       UnitTests.Distribution.Solver.Modular.WeightedPSQ
317       UnitTests.Distribution.Solver.Types.OptionalStanza
318       UnitTests.Options
320     build-depends:
321           array,
322           bytestring,
323           cabal-install,
324           Cabal-tree-diff,
325           Cabal-QuickCheck,
326           containers,
327           directory,
328           filepath,
329           mtl,
330           network-uri >= 2.6.2.0 && <2.7,
331           random,
332           tar,
333           time,
334           zlib,
335           tasty >= 1.2.3 && <1.5,
336           tasty-golden >=2.3.1.1 && <2.4,
337           tasty-quickcheck,
338           tasty-hunit >= 0.10,
339           tree-diff,
340           QuickCheck >= 2.14.3 && <2.15
343 -- Tests to run with a limited stack and heap size
344 -- The test suite name must be keep short cause a longer one
345 -- could make the build generating paths which exceeds the windows
346 -- max path limit (still a problem for some ghc versions)
347 test-suite mem-use-tests
348   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
349   type: exitcode-stdio-1.0
350   main-is: MemoryUsageTests.hs
351   hs-source-dirs: tests
352   default-language: Haskell2010
354   ghc-options: -threaded -rtsopts "-with-rtsopts=-M16M -K1K"
356   other-modules:
357     UnitTests.Distribution.Solver.Modular.DSL
358     UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
359     UnitTests.Distribution.Solver.Modular.MemoryUsage
360     UnitTests.Options
362   build-depends:
363         cabal-install,
364         containers,
365         tasty >= 1.2.3 && <1.5,
366         tasty-hunit >= 0.10
369 -- Integration tests that use the cabal-install code directly
370 -- but still build whole projects
371 test-suite integration-tests2
372   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
373   ghc-options: -rtsopts -threaded
374   type: exitcode-stdio-1.0
375   main-is: IntegrationTests2.hs
376   hs-source-dirs: tests
377   default-language: Haskell2010
379   build-depends:
380         bytestring,
381         cabal-install,
382         containers,
383         directory,
384         filepath,
385         tasty >= 1.2.3 && <1.5,
386         tasty-hunit >= 0.10,
387         tagged
389 test-suite long-tests
390   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
391   ghc-options: -rtsopts -threaded
392   type: exitcode-stdio-1.0
393   hs-source-dirs: tests
394   main-is: LongTests.hs
395   default-language: Haskell2010
397   other-modules:
398     UnitTests.Distribution.Client.ArbitraryInstances
399     UnitTests.Distribution.Client.Described
400     UnitTests.Distribution.Client.DescribedInstances
401     UnitTests.Distribution.Client.FileMonitor
402     UnitTests.Distribution.Client.VCS
403     UnitTests.Distribution.Solver.Modular.DSL
404     UnitTests.Distribution.Solver.Modular.QuickCheck
405     UnitTests.Distribution.Solver.Modular.QuickCheck.Utils
406     UnitTests.Options
408   build-depends:
409         Cabal-QuickCheck,
410         Cabal-described,
411         cabal-install,
412         containers,
413         directory,
414         filepath,
415         hashable,
416         mtl,
417         network-uri >= 2.6.2.0 && <2.7,
418         random,
419         tagged,
420         tasty >= 1.2.3 && <1.5,
421         tasty-expected-failure,
422         tasty-hunit >= 0.10,
423         tasty-quickcheck,
424         QuickCheck >= 2.14 && <2.15,
425         pretty-show >= 1.6.15