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