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-2024, Cabal Development Team
17 Category: Distribution
25 source-repository head
27 location: https://github.com/haskell/cabal/
32 Enable use of the [resolv](https://hackage.haskell.org/package/resolv)
33 & [windns](https://hackage.haskell.org/package/windns) packages for performing DNS lookups
38 description: Use @lukko@ for file-locking
43 ghc-options: -Wall -Wcompat -Wnoncanonical-monad-instances -Wincomplete-uni-patterns -Wincomplete-record-updates
46 ghc-options: -Wnoncanonical-monadfail-instances
49 -- Warning: even though introduced with GHC 8.10, -Wunused-packages
50 -- gives false positives with GHC 8.10.
51 ghc-options: -Wunused-packages
54 build-depends: base >=4.10 && <4.20
57 build-depends: Cabal ^>=3.11
59 common cabal-syntax-dep
60 build-depends: Cabal-syntax ^>=3.11
62 common cabal-install-solver-dep
63 build-depends: cabal-install-solver ^>=3.11
66 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
67 default-language: Haskell2010
68 default-extensions: TypeOperators
76 -- this modules are moved from Cabal
77 -- they are needed for as long until cabal-install moves to parsec parser
78 Distribution.Deprecated.ParseUtils
79 Distribution.Deprecated.ReadP
80 Distribution.Deprecated.ViewAsFieldDescr
82 Distribution.Client.BuildReports.Anonymous
83 Distribution.Client.BuildReports.Lens
84 Distribution.Client.BuildReports.Storage
85 Distribution.Client.BuildReports.Types
86 Distribution.Client.BuildReports.Upload
87 Distribution.Client.Check
88 Distribution.Client.CmdBench
89 Distribution.Client.CmdBuild
90 Distribution.Client.CmdClean
91 Distribution.Client.CmdConfigure
92 Distribution.Client.CmdErrorMessages
93 Distribution.Client.CmdExec
94 Distribution.Client.CmdFreeze
95 Distribution.Client.CmdHaddock
96 Distribution.Client.CmdHaddockProject
97 Distribution.Client.CmdInstall
98 Distribution.Client.CmdInstall.ClientInstallFlags
99 Distribution.Client.CmdInstall.ClientInstallTargetSelector
100 Distribution.Client.CmdLegacy
101 Distribution.Client.CmdListBin
102 Distribution.Client.CmdOutdated
103 Distribution.Client.CmdRepl
104 Distribution.Client.CmdRun
105 Distribution.Client.CmdSdist
106 Distribution.Client.CmdTest
107 Distribution.Client.CmdUpdate
108 Distribution.Client.Compat.Directory
109 Distribution.Client.Compat.ExecutablePath
110 Distribution.Client.Compat.Orphans
111 Distribution.Client.Compat.Prelude
112 Distribution.Client.Compat.Semaphore
113 Distribution.Client.Compat.Tar
114 Distribution.Client.Config
115 Distribution.Client.Configure
116 Distribution.Client.Dependency
117 Distribution.Client.Dependency.Types
118 Distribution.Client.DistDirLayout
119 Distribution.Client.Errors
120 Distribution.Client.Fetch
121 Distribution.Client.FetchUtils
122 Distribution.Client.FileMonitor
123 Distribution.Client.Freeze
124 Distribution.Client.GZipUtils
125 Distribution.Client.GenBounds
126 Distribution.Client.Get
127 Distribution.Client.Glob
128 Distribution.Client.GlobalFlags
129 Distribution.Client.Haddock
130 Distribution.Client.HashValue
131 Distribution.Client.HttpUtils
132 Distribution.Client.IndexUtils
133 Distribution.Client.IndexUtils.ActiveRepos
134 Distribution.Client.IndexUtils.IndexState
135 Distribution.Client.IndexUtils.Timestamp
136 Distribution.Client.Init
137 Distribution.Client.Init.Defaults
138 Distribution.Client.Init.FileCreators
139 Distribution.Client.Init.FlagExtractors
140 Distribution.Client.Init.Format
141 Distribution.Client.Init.Interactive.Command
142 Distribution.Client.Init.NonInteractive.Command
143 Distribution.Client.Init.NonInteractive.Heuristics
144 Distribution.Client.Init.Licenses
145 Distribution.Client.Init.Prompt
146 Distribution.Client.Init.Simple
147 Distribution.Client.Init.Types
148 Distribution.Client.Init.Utils
149 Distribution.Client.Install
150 Distribution.Client.InstallPlan
151 Distribution.Client.InstallSymlink
152 Distribution.Client.JobControl
153 Distribution.Client.List
154 Distribution.Client.Main
155 Distribution.Client.Manpage
156 Distribution.Client.ManpageFlags
157 Distribution.Client.Nix
158 Distribution.Client.NixStyleOptions
159 Distribution.Client.PackageHash
160 Distribution.Client.ParseUtils
161 Distribution.Client.ProjectBuilding
162 Distribution.Client.ProjectBuilding.UnpackedPackage
163 Distribution.Client.ProjectBuilding.PackageFileMonitor
164 Distribution.Client.ProjectBuilding.Types
165 Distribution.Client.ProjectConfig
166 Distribution.Client.ProjectConfig.Legacy
167 Distribution.Client.ProjectConfig.Types
168 Distribution.Client.ProjectFlags
169 Distribution.Client.ProjectOrchestration
170 Distribution.Client.ProjectPlanOutput
171 Distribution.Client.ProjectPlanning
172 Distribution.Client.ProjectPlanning.SetupPolicy
173 Distribution.Client.ProjectPlanning.Types
174 Distribution.Client.RebuildMonad
175 Distribution.Client.Reconfigure
176 Distribution.Client.ReplFlags
177 Distribution.Client.Run
178 Distribution.Client.Sandbox
179 Distribution.Client.Sandbox.PackageEnvironment
180 Distribution.Client.SavedFlags
181 Distribution.Client.ScriptUtils
182 Distribution.Client.Security.DNS
183 Distribution.Client.Security.HTTP
184 Distribution.Client.Setup
185 Distribution.Client.SetupWrapper
186 Distribution.Client.Signal
187 Distribution.Client.SolverInstallPlan
188 Distribution.Client.SourceFiles
189 Distribution.Client.SrcDist
190 Distribution.Client.Store
191 Distribution.Client.Tar
192 Distribution.Client.TargetProblem
193 Distribution.Client.TargetSelector
194 Distribution.Client.Targets
195 Distribution.Client.Types
196 Distribution.Client.Types.AllowNewer
197 Distribution.Client.Types.BuildResults
198 Distribution.Client.Types.ConfiguredId
199 Distribution.Client.Types.ConfiguredPackage
200 Distribution.Client.Types.Credentials
201 Distribution.Client.Types.InstallMethod
202 Distribution.Client.Types.OverwritePolicy
203 Distribution.Client.Types.PackageLocation
204 Distribution.Client.Types.PackageSpecifier
205 Distribution.Client.Types.ReadyPackage
206 Distribution.Client.Types.Repo
207 Distribution.Client.Types.RepoName
208 Distribution.Client.Types.SourcePackageDb
209 Distribution.Client.Types.SourceRepo
210 Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy
211 Distribution.Client.Upload
212 Distribution.Client.Utils
213 Distribution.Client.Utils.Json
214 Distribution.Client.Utils.Parsec
215 Distribution.Client.VCS
216 Distribution.Client.Version
217 Distribution.Client.Win32SelfUpgrade
220 async >= 2.0 && < 2.3,
221 array >= 0.4 && < 0.6,
222 base16-bytestring >= 0.1.1 && < 1.1.0.0,
223 binary >= 0.7.3 && < 0.9,
224 bytestring >= 0.10.6.0 && < 0.13,
225 containers >= 0.5.6.2 && < 0.8,
226 cryptohash-sha256 >= 0.11 && < 0.12,
227 directory >= 1.3.7.0 && < 1.4,
228 echo >= 0.1.3 && < 0.2,
229 edit-distance >= 0.2.2 && < 0.3,
230 exceptions >= 0.10.4 && < 0.11,
231 filepath >= 1.4.0.0 && < 1.6,
232 hashable >= 1.0 && < 1.5,
233 HTTP >= 4000.1.5 && < 4000.5,
235 network-uri >= 2.6.0.2 && < 2.7,
236 pretty >= 1.1 && < 1.2,
237 process >= 1.2.3.0 && < 1.7,
238 random >= 1.2 && < 1.3,
240 tar >= 0.5.0.3 && < 0.7,
241 time >= 1.5.0.1 && < 1.13,
242 zlib >= 0.5.3 && < 0.8,
243 hackage-security >= 0.6.2.0 && < 0.7,
244 text >= 1.2.3 && < 1.3 || >= 2.0 && < 2.2,
245 parsec >= 3.1.13.0 && < 3.2,
246 open-browser >= 0.2.1.0 && < 0.3,
247 regex-base >= 0.94.0.0 && <0.95,
248 regex-posix >= 0.96.0.0 && <0.97,
249 safe-exceptions >= 0.1.7.0 && < 0.2,
250 semaphore-compat >= 1.0.0 && < 1.1
254 build-depends: windns >= 0.1.0 && < 0.2
256 build-depends: resolv >= 0.1.1 && < 0.3
259 -- newer directory for symlinks
260 build-depends: Win32 >= 2.8 && < 3, directory >=1.3.1.0
262 build-depends: unix >= 2.5 && < 2.9
265 build-depends: lukko >= 0.1 && <0.2
267 -- pull in process version with fixed waitForProcess error
269 build-depends: process >= 1.6.15.0
273 import: warnings, base-dep
276 default-language: Haskell2010
278 ghc-options: -rtsopts -threaded
280 -- On AIX, some legacy BSD operations such as flock(2) are provided by libbsd.a
287 -- Small, fast running tests.
289 test-suite unit-tests
290 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
291 default-language: Haskell2010
292 default-extensions: TypeOperators
293 ghc-options: -rtsopts -threaded
295 type: exitcode-stdio-1.0
296 main-is: UnitTests.hs
297 hs-source-dirs: tests
299 UnitTests.Distribution.Client.ArbitraryInstances
300 UnitTests.Distribution.Client.BuildReport
301 UnitTests.Distribution.Client.Configure
302 UnitTests.Distribution.Client.FetchUtils
303 UnitTests.Distribution.Client.Get
304 UnitTests.Distribution.Client.Glob
305 UnitTests.Distribution.Client.GZipUtils
306 UnitTests.Distribution.Client.IndexUtils
307 UnitTests.Distribution.Client.IndexUtils.Timestamp
308 UnitTests.Distribution.Client.Init
309 UnitTests.Distribution.Client.Init.Golden
310 UnitTests.Distribution.Client.Init.Interactive
311 UnitTests.Distribution.Client.Init.NonInteractive
312 UnitTests.Distribution.Client.Init.Simple
313 UnitTests.Distribution.Client.Init.Utils
314 UnitTests.Distribution.Client.Init.FileCreators
315 UnitTests.Distribution.Client.InstallPlan
316 UnitTests.Distribution.Client.JobControl
317 UnitTests.Distribution.Client.ProjectConfig
318 UnitTests.Distribution.Client.ProjectPlanning
319 UnitTests.Distribution.Client.Store
320 UnitTests.Distribution.Client.Tar
321 UnitTests.Distribution.Client.Targets
322 UnitTests.Distribution.Client.TreeDiffInstances
323 UnitTests.Distribution.Client.UserConfig
324 UnitTests.Distribution.Solver.Modular.Builder
325 UnitTests.Distribution.Solver.Modular.RetryLog
326 UnitTests.Distribution.Solver.Modular.Solver
327 UnitTests.Distribution.Solver.Modular.DSL
328 UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
329 UnitTests.Distribution.Solver.Modular.WeightedPSQ
330 UnitTests.Distribution.Solver.Types.OptionalStanza
344 network-uri >= 2.6.2.0 && <2.7,
349 tasty >= 1.2.3 && <1.6,
350 tasty-golden >=2.3.1.1 && <2.4,
354 QuickCheck >= 2.14.3 && <2.15
357 -- Tests to run with a limited stack and heap size
358 -- The test suite name must be keep short cause a longer one
359 -- could make the build generating paths which exceeds the windows
360 -- max path limit (still a problem for some ghc versions)
361 test-suite mem-use-tests
362 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
363 type: exitcode-stdio-1.0
364 main-is: MemoryUsageTests.hs
365 hs-source-dirs: tests
366 default-language: Haskell2010
368 ghc-options: -threaded -rtsopts "-with-rtsopts=-M16M -K1K"
371 UnitTests.Distribution.Solver.Modular.DSL
372 UnitTests.Distribution.Solver.Modular.DSL.TestCaseUtils
373 UnitTests.Distribution.Solver.Modular.MemoryUsage
379 tasty >= 1.2.3 && <1.6,
383 -- Integration tests that use the cabal-install code directly
384 -- but still build whole projects
385 test-suite integration-tests2
386 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
387 ghc-options: -rtsopts -threaded
388 type: exitcode-stdio-1.0
389 main-is: IntegrationTests2.hs
390 hs-source-dirs: tests
391 default-language: Haskell2010
399 tasty >= 1.2.3 && <1.6,
403 test-suite long-tests
404 import: warnings, base-dep, cabal-dep, cabal-syntax-dep, cabal-install-solver-dep
405 ghc-options: -rtsopts -threaded
406 type: exitcode-stdio-1.0
407 hs-source-dirs: tests
408 main-is: LongTests.hs
409 default-language: Haskell2010
412 UnitTests.Distribution.Client.ArbitraryInstances
413 UnitTests.Distribution.Client.Described
414 UnitTests.Distribution.Client.DescribedInstances
415 UnitTests.Distribution.Client.FileMonitor
416 UnitTests.Distribution.Client.VCS
417 UnitTests.Distribution.Solver.Modular.DSL
418 UnitTests.Distribution.Solver.Modular.QuickCheck
419 UnitTests.Distribution.Solver.Modular.QuickCheck.Utils
432 network-uri >= 2.6.2.0 && <2.7,
435 tasty >= 1.2.3 && <1.6,
436 tasty-expected-failure,
439 QuickCheck >= 2.14 && <2.15,
440 pretty-show >= 1.6.15