Mergify: rebase as Mikolaj (fix #8462)
[cabal.git] / cabal-install / cabal-install.cabal
blob1374c495e850e16a68c072899ae6b989afcf5ccd
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.ReplFlags
163         Distribution.Client.Run
164         Distribution.Client.Sandbox
165         Distribution.Client.Sandbox.PackageEnvironment
166         Distribution.Client.SavedFlags
167         Distribution.Client.ScriptUtils
168         Distribution.Client.Security.DNS
169         Distribution.Client.Security.HTTP
170         Distribution.Client.Setup
171         Distribution.Client.SetupWrapper
172         Distribution.Client.Signal
173         Distribution.Client.SolverInstallPlan
174         Distribution.Client.SourceFiles
175         Distribution.Client.SrcDist
176         Distribution.Client.Store
177         Distribution.Client.Tar
178         Distribution.Client.TargetProblem
179         Distribution.Client.TargetSelector
180         Distribution.Client.Targets
181         Distribution.Client.Types
182         Distribution.Client.Types.AllowNewer
183         Distribution.Client.Types.BuildResults
184         Distribution.Client.Types.ConfiguredId
185         Distribution.Client.Types.ConfiguredPackage
186         Distribution.Client.Types.Credentials
187         Distribution.Client.Types.InstallMethod
188         Distribution.Client.Types.OverwritePolicy
189         Distribution.Client.Types.PackageLocation
190         Distribution.Client.Types.PackageSpecifier
191         Distribution.Client.Types.ReadyPackage
192         Distribution.Client.Types.Repo
193         Distribution.Client.Types.RepoName
194         Distribution.Client.Types.SourcePackageDb
195         Distribution.Client.Types.SourceRepo
196         Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy
197         Distribution.Client.Upload
198         Distribution.Client.Utils
199         Distribution.Client.Utils.Json
200         Distribution.Client.Utils.Parsec
201         Distribution.Client.VCS
202         Distribution.Client.Version
203         Distribution.Client.Win32SelfUpgrade
205     build-depends:
206         async      >= 2.0      && < 2.3,
207         array      >= 0.4      && < 0.6,
208         base16-bytestring >= 0.1.1 && < 1.1.0.0,
209         base64-bytestring >= 1.0 && < 1.3,
210         binary     >= 0.7.3    && < 0.9,
211         bytestring >= 0.10.6.0 && < 0.12,
212         containers >= 0.5.6.2  && < 0.7,
213         cryptohash-sha256 >= 0.11 && < 0.12,
214         directory  >= 1.3.7.0  && < 1.4,
215         echo       >= 0.1.3    && < 0.2,
216         edit-distance >= 0.2.2 && < 0.3,
217         exceptions >= 0.10.4   && < 0.11,
218         filepath   >= 1.4.0.0  && < 1.5,
219         hashable   >= 1.0      && < 1.5,
220         HTTP       >= 4000.1.5 && < 4000.5,
221         mtl        >= 2.0      && < 2.4,
222         network-uri >= 2.6.0.2 && < 2.7,
223         pretty     >= 1.1      && < 1.2,
224         process    >= 1.2.3.0  && < 1.7,
225         random     >= 1.2      && < 1.3,
226         stm        >= 2.0      && < 2.6,
227         tar        >= 0.5.0.3  && < 0.6,
228         time       >= 1.5.0.1  && < 1.13,
229         zlib       >= 0.5.3    && < 0.7,
230         hackage-security >= 0.6.2.0 && < 0.7,
231         text       >= 1.2.3    && < 1.3 || >= 2.0 && < 2.1,
232         parsec     >= 3.1.13.0 && < 3.2,
233         regex-base  >= 0.94.0.0 && <0.95,
234         regex-posix >= 0.96.0.0 && <0.97,
235         safe-exceptions >= 0.1.7.0 && < 0.2
237     if flag(native-dns)
238       if os(windows)
239         build-depends: windns      >= 0.1.0 && < 0.2
240       else
241         build-depends: resolv      >= 0.1.1 && < 0.3
243     if os(windows)
244       -- newer directory for symlinks
245       build-depends: Win32 >= 2.8 && < 3, directory >=1.3.1.0
246     else
247       build-depends: unix >= 2.5 && < 2.9
249     if flag(lukko)
250       build-depends: lukko >= 0.1 && <0.2
252    -- pull in process version with fixed waitForProcess error
253    if impl(ghc >=8.2)
254      build-depends: process >= 1.6.15.0
257 executable cabal
258     import: warnings, base-dep
259     main-is: Main.hs
260     hs-source-dirs: main
261     default-language: Haskell2010
263     ghc-options: -rtsopts -threaded
265     -- On AIX, some legacy BSD operations such as flock(2) are provided by libbsd.a
266     if os(aix)
267         extra-libraries: bsd
269     build-depends:
270         cabal-install
272 -- Small, fast running tests.
274 test-suite unit-tests
275     import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
276     default-language: Haskell2010
277     default-extensions: TypeOperators
278     ghc-options: -rtsopts -threaded
280     type: exitcode-stdio-1.0
281     main-is: UnitTests.hs
282     hs-source-dirs: tests
283     other-modules:
284       UnitTests.Distribution.Client.ArbitraryInstances
285       UnitTests.Distribution.Client.BuildReport
286       UnitTests.Distribution.Client.Configure
287       UnitTests.Distribution.Client.FetchUtils
288       UnitTests.Distribution.Client.Get
289       UnitTests.Distribution.Client.Glob
290       UnitTests.Distribution.Client.GZipUtils
291       UnitTests.Distribution.Client.IndexUtils
292       UnitTests.Distribution.Client.IndexUtils.Timestamp
293       UnitTests.Distribution.Client.Init
294       UnitTests.Distribution.Client.Init.Golden
295       UnitTests.Distribution.Client.Init.Interactive
296       UnitTests.Distribution.Client.Init.NonInteractive
297       UnitTests.Distribution.Client.Init.Simple
298       UnitTests.Distribution.Client.Init.Utils
299       UnitTests.Distribution.Client.Init.FileCreators
300       UnitTests.Distribution.Client.InstallPlan
301       UnitTests.Distribution.Client.JobControl
302       UnitTests.Distribution.Client.ProjectConfig
303       UnitTests.Distribution.Client.ProjectPlanning
304       UnitTests.Distribution.Client.Store
305       UnitTests.Distribution.Client.Tar
306       UnitTests.Distribution.Client.Targets
307       UnitTests.Distribution.Client.TreeDiffInstances
308       UnitTests.Distribution.Client.UserConfig
309       UnitTests.Distribution.Solver.Modular.Builder
310       UnitTests.Distribution.Solver.Modular.RetryLog
311       UnitTests.Distribution.Solver.Modular.Solver
312       UnitTests.Distribution.Solver.Modular.DSL
313       UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
314       UnitTests.Distribution.Solver.Modular.WeightedPSQ
315       UnitTests.Distribution.Solver.Types.OptionalStanza
316       UnitTests.Options
318     build-depends:
319           array,
320           bytestring,
321           cabal-install,
322           Cabal-tree-diff,
323           Cabal-QuickCheck,
324           containers,
325           directory,
326           filepath,
327           mtl,
328           network-uri >= 2.6.2.0 && <2.7,
329           random,
330           tar,
331           time,
332           zlib,
333           tasty >= 1.2.3 && <1.5,
334           tasty-golden >=2.3.1.1 && <2.4,
335           tasty-quickcheck,
336           tasty-hunit >= 0.10,
337           tree-diff,
338           QuickCheck >= 2.14.3 && <2.15
341 -- Tests to run with a limited stack and heap size
342 -- The test suite name must be keep short cause a longer one
343 -- could make the build generating paths which exceeds the windows
344 -- max path limit (still a problem for some ghc versions)
345 test-suite mem-use-tests
346   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
347   type: exitcode-stdio-1.0
348   main-is: MemoryUsageTests.hs
349   hs-source-dirs: tests
350   default-language: Haskell2010
352   ghc-options: -threaded -rtsopts "-with-rtsopts=-M16M -K1K"
354   other-modules:
355     UnitTests.Distribution.Solver.Modular.DSL
356     UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
357     UnitTests.Distribution.Solver.Modular.MemoryUsage
358     UnitTests.Options
360   build-depends:
361         cabal-install,
362         containers,
363         tasty >= 1.2.3 && <1.5,
364         tasty-hunit >= 0.10
367 -- Integration tests that use the cabal-install code directly
368 -- but still build whole projects
369 test-suite integration-tests2
370   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
371   ghc-options: -rtsopts -threaded
372   type: exitcode-stdio-1.0
373   main-is: IntegrationTests2.hs
374   hs-source-dirs: tests
375   default-language: Haskell2010
377   build-depends:
378         bytestring,
379         cabal-install,
380         containers,
381         directory,
382         filepath,
383         tasty >= 1.2.3 && <1.5,
384         tasty-hunit >= 0.10,
385         tagged
387 test-suite long-tests
388   import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
389   ghc-options: -rtsopts -threaded
390   type: exitcode-stdio-1.0
391   hs-source-dirs: tests
392   main-is: LongTests.hs
393   default-language: Haskell2010
395   other-modules:
396     UnitTests.Distribution.Client.ArbitraryInstances
397     UnitTests.Distribution.Client.Described
398     UnitTests.Distribution.Client.DescribedInstances
399     UnitTests.Distribution.Client.FileMonitor
400     UnitTests.Distribution.Client.VCS
401     UnitTests.Distribution.Solver.Modular.DSL
402     UnitTests.Distribution.Solver.Modular.QuickCheck
403     UnitTests.Distribution.Solver.Modular.QuickCheck.Utils
404     UnitTests.Options
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