5 Synopsis: The command-line interface for Cabal and Hackage.
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
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
24 source-repository head
26 location: https://github.com/haskell/cabal/
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
37 description: Use @lukko@ for file-locking
42 ghc-options: -Wall -Wcompat -Wnoncanonical-monad-instances -Wincomplete-uni-patterns -Wincomplete-record-updates
44 ghc-options: -Wnoncanonical-monadfail-instances
46 ghc-options: -Wunused-packages
49 build-depends: base >=4.10 && <4.20
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
61 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
62 default-language: Haskell2010
63 default-extensions: TypeOperators
69 -- this modules are moved from Cabal
70 -- they are needed for as long until cabal-install moves to parsec parser
71 Distribution.Deprecated.ParseUtils
72 Distribution.Deprecated.ReadP
73 Distribution.Deprecated.ViewAsFieldDescr
75 Distribution.Client.BuildReports.Anonymous
76 Distribution.Client.BuildReports.Lens
77 Distribution.Client.BuildReports.Storage
78 Distribution.Client.BuildReports.Types
79 Distribution.Client.BuildReports.Upload
80 Distribution.Client.Check
81 Distribution.Client.CmdBench
82 Distribution.Client.CmdBuild
83 Distribution.Client.CmdClean
84 Distribution.Client.CmdConfigure
85 Distribution.Client.CmdErrorMessages
86 Distribution.Client.CmdExec
87 Distribution.Client.CmdFreeze
88 Distribution.Client.CmdHaddock
89 Distribution.Client.CmdHaddockProject
90 Distribution.Client.CmdInstall
91 Distribution.Client.CmdInstall.ClientInstallFlags
92 Distribution.Client.CmdInstall.ClientInstallTargetSelector
93 Distribution.Client.CmdLegacy
94 Distribution.Client.CmdListBin
95 Distribution.Client.CmdOutdated
96 Distribution.Client.CmdRepl
97 Distribution.Client.CmdRun
98 Distribution.Client.CmdSdist
99 Distribution.Client.CmdTest
100 Distribution.Client.CmdUpdate
101 Distribution.Client.Compat.Directory
102 Distribution.Client.Compat.ExecutablePath
103 Distribution.Client.Compat.Orphans
104 Distribution.Client.Compat.Prelude
105 Distribution.Client.Compat.Semaphore
106 Distribution.Client.Config
107 Distribution.Client.Configure
108 Distribution.Client.Dependency
109 Distribution.Client.Dependency.Types
110 Distribution.Client.DistDirLayout
111 Distribution.Client.Errors
112 Distribution.Client.Fetch
113 Distribution.Client.FetchUtils
114 Distribution.Client.FileMonitor
115 Distribution.Client.Freeze
116 Distribution.Client.GZipUtils
117 Distribution.Client.GenBounds
118 Distribution.Client.Get
119 Distribution.Client.Glob
120 Distribution.Client.GlobalFlags
121 Distribution.Client.Haddock
122 Distribution.Client.HashValue
123 Distribution.Client.HttpUtils
124 Distribution.Client.IndexUtils
125 Distribution.Client.IndexUtils.ActiveRepos
126 Distribution.Client.IndexUtils.IndexState
127 Distribution.Client.IndexUtils.Timestamp
128 Distribution.Client.Init
129 Distribution.Client.Init.Defaults
130 Distribution.Client.Init.FileCreators
131 Distribution.Client.Init.FlagExtractors
132 Distribution.Client.Init.Format
133 Distribution.Client.Init.Interactive.Command
134 Distribution.Client.Init.NonInteractive.Command
135 Distribution.Client.Init.NonInteractive.Heuristics
136 Distribution.Client.Init.Licenses
137 Distribution.Client.Init.Prompt
138 Distribution.Client.Init.Simple
139 Distribution.Client.Init.Types
140 Distribution.Client.Init.Utils
141 Distribution.Client.Install
142 Distribution.Client.InstallPlan
143 Distribution.Client.InstallSymlink
144 Distribution.Client.JobControl
145 Distribution.Client.List
146 Distribution.Client.Main
147 Distribution.Client.Manpage
148 Distribution.Client.ManpageFlags
149 Distribution.Client.Nix
150 Distribution.Client.NixStyleOptions
151 Distribution.Client.PackageHash
152 Distribution.Client.ParseUtils
153 Distribution.Client.ProjectBuilding
154 Distribution.Client.ProjectBuilding.Types
155 Distribution.Client.ProjectConfig
156 Distribution.Client.ProjectConfig.Legacy
157 Distribution.Client.ProjectConfig.Types
158 Distribution.Client.ProjectFlags
159 Distribution.Client.ProjectOrchestration
160 Distribution.Client.ProjectPlanOutput
161 Distribution.Client.ProjectPlanning
162 Distribution.Client.ProjectPlanning.SetupPolicy
163 Distribution.Client.ProjectPlanning.Types
164 Distribution.Client.RebuildMonad
165 Distribution.Client.Reconfigure
166 Distribution.Client.ReplFlags
167 Distribution.Client.Run
168 Distribution.Client.Sandbox
169 Distribution.Client.Sandbox.PackageEnvironment
170 Distribution.Client.SavedFlags
171 Distribution.Client.ScriptUtils
172 Distribution.Client.Security.DNS
173 Distribution.Client.Security.HTTP
174 Distribution.Client.Setup
175 Distribution.Client.SetupWrapper
176 Distribution.Client.Signal
177 Distribution.Client.SolverInstallPlan
178 Distribution.Client.SourceFiles
179 Distribution.Client.SrcDist
180 Distribution.Client.Store
181 Distribution.Client.Tar
182 Distribution.Client.TargetProblem
183 Distribution.Client.TargetSelector
184 Distribution.Client.Targets
185 Distribution.Client.Types
186 Distribution.Client.Types.AllowNewer
187 Distribution.Client.Types.BuildResults
188 Distribution.Client.Types.ConfiguredId
189 Distribution.Client.Types.ConfiguredPackage
190 Distribution.Client.Types.Credentials
191 Distribution.Client.Types.InstallMethod
192 Distribution.Client.Types.OverwritePolicy
193 Distribution.Client.Types.PackageLocation
194 Distribution.Client.Types.PackageSpecifier
195 Distribution.Client.Types.ReadyPackage
196 Distribution.Client.Types.Repo
197 Distribution.Client.Types.RepoName
198 Distribution.Client.Types.SourcePackageDb
199 Distribution.Client.Types.SourceRepo
200 Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy
201 Distribution.Client.Upload
202 Distribution.Client.Utils
203 Distribution.Client.Utils.Json
204 Distribution.Client.Utils.Parsec
205 Distribution.Client.VCS
206 Distribution.Client.Version
207 Distribution.Client.Win32SelfUpgrade
210 async >= 2.0 && < 2.3,
211 array >= 0.4 && < 0.6,
212 base16-bytestring >= 0.1.1 && < 1.1.0.0,
213 binary >= 0.7.3 && < 0.9,
214 bytestring >= 0.10.6.0 && < 0.13,
215 containers >= 0.5.6.2 && < 0.8,
216 cryptohash-sha256 >= 0.11 && < 0.12,
217 directory >= 1.3.7.0 && < 1.4,
218 echo >= 0.1.3 && < 0.2,
219 edit-distance >= 0.2.2 && < 0.3,
220 exceptions >= 0.10.4 && < 0.11,
221 filepath >= 1.4.0.0 && < 1.6,
222 hashable >= 1.0 && < 1.5,
223 HTTP >= 4000.1.5 && < 4000.5,
225 network-uri >= 2.6.0.2 && < 2.7,
226 pretty >= 1.1 && < 1.2,
227 process >= 1.2.3.0 && < 1.7,
228 random >= 1.2 && < 1.3,
230 tar >= 0.5.0.3 && < 0.6,
231 time >= 1.5.0.1 && < 1.13,
232 zlib >= 0.5.3 && < 0.7,
233 hackage-security >= 0.6.2.0 && < 0.7,
234 text >= 1.2.3 && < 1.3 || >= 2.0 && < 2.2,
235 parsec >= 3.1.13.0 && < 3.2,
236 regex-base >= 0.94.0.0 && <0.95,
237 regex-posix >= 0.96.0.0 && <0.97,
238 safe-exceptions >= 0.1.7.0 && < 0.2,
239 semaphore-compat >= 1.0.0 && < 1.1
243 build-depends: windns >= 0.1.0 && < 0.2
245 build-depends: resolv >= 0.1.1 && < 0.3
248 -- newer directory for symlinks
249 build-depends: Win32 >= 2.8 && < 3, directory >=1.3.1.0
251 build-depends: unix >= 2.5 && < 2.9
254 build-depends: lukko >= 0.1 && <0.2
256 -- pull in process version with fixed waitForProcess error
258 build-depends: process >= 1.6.15.0
262 import: warnings, base-dep
265 default-language: Haskell2010
267 ghc-options: -rtsopts -threaded
269 -- On AIX, some legacy BSD operations such as flock(2) are provided by libbsd.a
276 -- Small, fast running tests.
278 test-suite unit-tests
279 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
280 default-language: Haskell2010
281 default-extensions: TypeOperators
282 ghc-options: -rtsopts -threaded
284 type: exitcode-stdio-1.0
285 main-is: UnitTests.hs
286 hs-source-dirs: tests
288 UnitTests.Distribution.Client.ArbitraryInstances
289 UnitTests.Distribution.Client.BuildReport
290 UnitTests.Distribution.Client.Configure
291 UnitTests.Distribution.Client.FetchUtils
292 UnitTests.Distribution.Client.Get
293 UnitTests.Distribution.Client.Glob
294 UnitTests.Distribution.Client.GZipUtils
295 UnitTests.Distribution.Client.IndexUtils
296 UnitTests.Distribution.Client.IndexUtils.Timestamp
297 UnitTests.Distribution.Client.Init
298 UnitTests.Distribution.Client.Init.Golden
299 UnitTests.Distribution.Client.Init.Interactive
300 UnitTests.Distribution.Client.Init.NonInteractive
301 UnitTests.Distribution.Client.Init.Simple
302 UnitTests.Distribution.Client.Init.Utils
303 UnitTests.Distribution.Client.Init.FileCreators
304 UnitTests.Distribution.Client.InstallPlan
305 UnitTests.Distribution.Client.JobControl
306 UnitTests.Distribution.Client.ProjectConfig
307 UnitTests.Distribution.Client.ProjectPlanning
308 UnitTests.Distribution.Client.Store
309 UnitTests.Distribution.Client.Tar
310 UnitTests.Distribution.Client.Targets
311 UnitTests.Distribution.Client.TreeDiffInstances
312 UnitTests.Distribution.Client.UserConfig
313 UnitTests.Distribution.Solver.Modular.Builder
314 UnitTests.Distribution.Solver.Modular.RetryLog
315 UnitTests.Distribution.Solver.Modular.Solver
316 UnitTests.Distribution.Solver.Modular.DSL
317 UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
318 UnitTests.Distribution.Solver.Modular.WeightedPSQ
319 UnitTests.Distribution.Solver.Types.OptionalStanza
333 network-uri >= 2.6.2.0 && <2.7,
338 tasty >= 1.2.3 && <1.6,
339 tasty-golden >=2.3.1.1 && <2.4,
343 QuickCheck >= 2.14.3 && <2.15
346 -- Tests to run with a limited stack and heap size
347 -- The test suite name must be keep short cause a longer one
348 -- could make the build generating paths which exceeds the windows
349 -- max path limit (still a problem for some ghc versions)
350 test-suite mem-use-tests
351 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
352 type: exitcode-stdio-1.0
353 main-is: MemoryUsageTests.hs
354 hs-source-dirs: tests
355 default-language: Haskell2010
357 ghc-options: -threaded -rtsopts "-with-rtsopts=-M16M -K1K"
360 UnitTests.Distribution.Solver.Modular.DSL
361 UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
362 UnitTests.Distribution.Solver.Modular.MemoryUsage
368 tasty >= 1.2.3 && <1.5,
372 -- Integration tests that use the cabal-install code directly
373 -- but still build whole projects
374 test-suite integration-tests2
375 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
376 ghc-options: -rtsopts -threaded
377 type: exitcode-stdio-1.0
378 main-is: IntegrationTests2.hs
379 hs-source-dirs: tests
380 default-language: Haskell2010
388 tasty >= 1.2.3 && <1.5,
392 test-suite long-tests
393 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
394 ghc-options: -rtsopts -threaded
395 type: exitcode-stdio-1.0
396 hs-source-dirs: tests
397 main-is: LongTests.hs
398 default-language: Haskell2010
401 UnitTests.Distribution.Client.ArbitraryInstances
402 UnitTests.Distribution.Client.Described
403 UnitTests.Distribution.Client.DescribedInstances
404 UnitTests.Distribution.Client.FileMonitor
405 UnitTests.Distribution.Client.VCS
406 UnitTests.Distribution.Solver.Modular.DSL
407 UnitTests.Distribution.Solver.Modular.QuickCheck
408 UnitTests.Distribution.Solver.Modular.QuickCheck.Utils
421 network-uri >= 2.6.2.0 && <2.7,
424 tasty >= 1.2.3 && <1.5,
425 tasty-expected-failure,
428 QuickCheck >= 2.14 && <2.15,
429 pretty-show >= 1.6.15