darcs-2.10.1: darcs.cabal
Name: darcs
version: 2.10.1
License: GPL
License-file: COPYING
Author: David Roundy <droundy@darcs.net>, <darcs-devel@darcs.net>
Maintainer: <darcs-devel@darcs.net>
Stability: Experimental
Category: Development
Synopsis: a distributed, interactive, smart revision control system
Description: Darcs is a free, open source revision control
system. It is:
.
* Distributed: Every user has access to the full
command set, removing boundaries between server and
client or committer and non-committers.
.
* Interactive: Darcs is easy to learn and efficient to
use because it asks you questions in response to
simple commands, giving you choices in your work
flow. You can choose to record one change in a file,
while ignoring another. As you update from upstream,
you can review each patch name, even the full "diff"
for interesting patches.
.
* Smart: Originally developed by physicist David
Roundy, darcs is based on a unique algebra of
patches.
.
This smartness lets you respond to changing demands
in ways that would otherwise not be possible. Learn
more about spontaneous branches with darcs.
Homepage: http://darcs.net/
Build-Type: Custom
Cabal-Version: >= 1.10
extra-source-files:
-- C headers
src/*.h
src/win32/send_email.h src/win32/sys/mman.h
-- The contrib directory would make a sensible 'darcs-contrib' package
contrib/_darcs.zsh, contrib/darcs_completion,
contrib/cygwin-wrapper.bash, contrib/update_roundup.pl, contrib/upload.cgi,
contrib/darcs-errors.hlint,
README, NEWS
-- release data
release/distributed-version, release/distributed-context
-- testsuite
tests/data/*.tgz tests/data/README
tests/data/*.dpatch
tests/data/convert/darcs1/*.dpatch tests/data/convert/darcs2/*.dpatch
tests/*.sh
tests/bin/trackdown-bisect-helper.hs
tests/bin/hspwd.hs
tests/network/*.sh
tests/lib
tests/data/example_binary.png
tests/README.test_maintainers.txt
-- hashed-storage
hashed-storage/LICENSE
hashed-storage/testdata.zip
GNUmakefile
source-repository head
type: darcs
location: http://darcs.net/
flag curl
description: Use libcurl for HTTP support.
-- in future this could extend to any other external libraries,
-- e.g. libiconv
flag pkgconfig
description: Use pkgconfig to configure libcurl
default: False
flag http
description: Use the pure Haskell HTTP package for HTTP support.
flag static
description: Build static binary
default: False
flag terminfo
description: Use the terminfo package for enhanced console support.
flag threaded
description: Use threading and SMP support.
default: True
flag executable
description: Build darcs executable
default: True
flag hpc
default: False
flag rts
default: False
-- We need optimizations by default, regardless of what Hackage says
flag optimize
default: True
description: Build with optimizations (-O2)
flag warn-as-error
default: False
manual: True
description: Build with warnings-as-errors
-- To allow building with containers < 0.5, we keep a local copy of this
-- module.
flag use-local-data-map-strict
default: False
description: Support containers < 0.5, by using a local copy of the
Data.Map.Strict module from containers 0.5.
-- Note that the Setup script checks whether -liconv is necessary. This flag
-- lets us override that decision. When it is True, we use -liconv. When it
-- is False, we run tests to decide.
flag libiconv
Description: Explicitly link against the libiconv library.
Default: False
flag hashed-storage-diff
default: False
-- with time>=1.5 (needed with GHC 7.10) we get defaultTimeLocale from time:Data.Time
-- with time<1.5 we get defaultTimeLocale from old-locale:System.Locale
flag use-time-1point5
default: False
flag network-uri
description: Get Network.URI from the network-uri package
default: True
-- ----------------------------------------------------------------------
-- darcs library
-- ----------------------------------------------------------------------
Library
build-tools: ghc >= 7.4 && < 7.12
default-language: Haskell2010
hs-source-dirs: src
include-dirs: src
exposed-modules:
Darcs.Patch
Darcs.Patch.Annotate
Darcs.Patch.Apply
Darcs.Patch.ApplyMonad
Darcs.Patch.ApplyPatches
Darcs.Patch.Bracketed
Darcs.Patch.Bracketed.Instances
Darcs.Patch.Bundle
Darcs.Patch.Choices
Darcs.Patch.Commute
Darcs.Patch.CommuteFn
Darcs.Patch.Conflict
Darcs.Patch.ConflictMarking
Darcs.Patch.Debug
Darcs.Patch.Depends
Darcs.Patch.Dummy
Darcs.Patch.Effect
Darcs.Patch.FileHunk
Darcs.Patch.Index.Monad
Darcs.Patch.Index.Types
Darcs.Patch.Format
Darcs.Patch.Info
Darcs.Patch.Inspect
Darcs.Patch.Invert
Darcs.Patch.Match
Darcs.Patch.Matchable
Darcs.Patch.MaybeInternal
Darcs.Patch.Merge
Darcs.Patch.MonadProgress
Darcs.Patch.Named
Darcs.Patch.OldDate
Darcs.Patch.PatchInfoAnd
Darcs.Patch.Patchy
Darcs.Patch.Patchy.Instances
Darcs.Patch.Permutations
Darcs.Patch.Prim
Darcs.Patch.Prim.Class
Darcs.Patch.Prim.V1
Darcs.Patch.Prim.V1.Apply
Darcs.Patch.Prim.V1.Coalesce
Darcs.Patch.Prim.V1.Commute
Darcs.Patch.Prim.V1.Core
Darcs.Patch.Prim.V1.Details
Darcs.Patch.Prim.V1.Read
Darcs.Patch.Prim.V1.Show
Darcs.Patch.Prim.V3
Darcs.Patch.Prim.V3.ObjectMap
Darcs.Patch.Prim.V3.Apply
Darcs.Patch.Prim.V3.Coalesce
Darcs.Patch.Prim.V3.Commute
Darcs.Patch.Prim.V3.Core
Darcs.Patch.Prim.V3.Details
Darcs.Patch.Prim.V3.Read
Darcs.Patch.Prim.V3.Show
Darcs.Patch.Progress
Darcs.Patch.Read
Darcs.Patch.Rebase
Darcs.Patch.Rebase.Fixup
Darcs.Patch.Rebase.Name
Darcs.Patch.Rebase.NameHack
Darcs.Patch.Rebase.Recontext
Darcs.Patch.Rebase.Viewing
Darcs.Patch.ReadMonads
Darcs.Patch.RegChars
Darcs.Patch.Repair
Darcs.Patch.RepoPatch
Darcs.Patch.Set
Darcs.Patch.Show
Darcs.Patch.Split
Darcs.Patch.Summary
Darcs.Patch.SummaryData
Darcs.Patch.TokenReplace
Darcs.Patch.TouchesFiles
Darcs.Patch.Type
Darcs.Patch.Viewing
Darcs.Patch.V1
Darcs.Patch.V1.Apply
Darcs.Patch.V1.Commute
Darcs.Patch.V1.Core
Darcs.Patch.V1.Read
Darcs.Patch.V1.Show
Darcs.Patch.V1.Viewing
Darcs.Patch.V2
Darcs.Patch.V2.Non
Darcs.Patch.V2.Real
Darcs.Patch.Witnesses.Eq
Darcs.Patch.Witnesses.Ordered
Darcs.Patch.Witnesses.Sealed
Darcs.Patch.Witnesses.Show
Darcs.Patch.Witnesses.Unsafe
Darcs.Patch.Witnesses.WZipper
Darcs.Repository
Darcs.Repository.ApplyPatches
Darcs.Repository.Cache
Darcs.Repository.PatchIndex
Darcs.Repository.Compat
Darcs.Repository.Diff
Darcs.Repository.External
Darcs.Repository.Flags
Darcs.Repository.Format
Darcs.Repository.HashedIO
Darcs.Repository.HashedRepo
Darcs.Repository.Internal
Darcs.Repository.Job
Darcs.Repository.Lock
Darcs.Repository.LowLevel
Darcs.Repository.Merge
Darcs.Repository.InternalTypes
Darcs.Repository.Match
Darcs.Repository.Motd
Darcs.Repository.Old
Darcs.Repository.Prefs
Darcs.Repository.Rebase
Darcs.Repository.Repair
Darcs.Repository.Read
Darcs.Repository.Resolution
Darcs.Repository.Ssh
Darcs.Repository.State
Darcs.Repository.Test
Darcs.Repository.Util
Darcs.UI.ApplyPatches
Darcs.UI.Commands
Darcs.UI.Commands.Add
Darcs.UI.Commands.Amend
Darcs.UI.Commands.Annotate
Darcs.UI.Commands.Apply
Darcs.UI.CommandsAux
Darcs.UI.Commands.Clone
Darcs.UI.Commands.Convert
Darcs.UI.Commands.Diff
Darcs.UI.Commands.Dist
Darcs.UI.Commands.GZCRCs
Darcs.UI.Commands.Help
Darcs.UI.Commands.Init
Darcs.UI.Commands.Log
Darcs.UI.Commands.MarkConflicts
Darcs.UI.Commands.Move
Darcs.UI.Commands.Optimize
Darcs.UI.Commands.Pull
Darcs.UI.Commands.Push
Darcs.UI.Commands.Rebase
Darcs.UI.Commands.Record
Darcs.UI.Commands.Remove
Darcs.UI.Commands.Repair
Darcs.UI.Commands.Replace
Darcs.UI.Commands.Revert
Darcs.UI.Commands.Rollback
Darcs.UI.Commands.Send
Darcs.UI.Commands.SetPref
Darcs.UI.Commands.Show
Darcs.UI.Commands.ShowAuthors
Darcs.UI.Commands.ShowBug
Darcs.UI.Commands.ShowContents
Darcs.UI.Commands.ShowFiles
Darcs.UI.Commands.ShowIndex
Darcs.UI.Commands.ShowPatchIndex
Darcs.UI.Commands.ShowRepo
Darcs.UI.Commands.ShowTags
Darcs.UI.Commands.Tag
Darcs.UI.Commands.Test
Darcs.UI.Commands.TransferMode
Darcs.UI.Commands.Util
Darcs.UI.Commands.Util.Tree
Darcs.UI.Commands.Unrecord
Darcs.UI.Commands.Unrevert
Darcs.UI.Commands.WhatsNew
Darcs.UI.Email
Darcs.UI.External
Darcs.UI.Defaults
Darcs.UI.Flags
Darcs.UI.Options
Darcs.UI.Options.All
Darcs.UI.Options.Core
Darcs.UI.Options.Flags
Darcs.UI.Options.Iso
Darcs.UI.Options.Markdown
Darcs.UI.Options.Matching
Darcs.UI.Options.Util
Darcs.UI.PrintPatch
Darcs.UI.RemoteApply
Darcs.UI.RunCommand
Darcs.UI.SelectChanges
Darcs.UI.TheCommands
Darcs.UI.Usage
Darcs.UI.Message.Send
Darcs.Util.AtExit
Darcs.Util.Bug
Darcs.Util.ByteString
Darcs.Util.CommandLine
Darcs.Util.Crypt.SHA1
Darcs.Util.Crypt.SHA256
Darcs.Util.DateMatcher
Darcs.Util.DateTime
Darcs.Util.Diff
Darcs.Util.Diff.Myers
Darcs.Util.Diff.Patience
Darcs.Util.Download
Darcs.Util.Download.Request
Darcs.Util.Download.HTTP
Darcs.Util.English
Darcs.Util.Environment
Darcs.Util.Exception
Darcs.Util.Exec
Darcs.Util.File
Darcs.Util.Global
Darcs.Util.IsoDate
Darcs.Util.Path
Darcs.Util.Printer
Darcs.Util.Printer.Color
Darcs.Util.Progress
Darcs.Util.Prompt
Darcs.Util.Ratified
Darcs.Util.Show
Darcs.Util.SignalHandler
Darcs.Util.Ssh
Darcs.Util.Text
Darcs.Util.URL
Darcs.Util.Workaround
other-modules: Version
Darcs.Util.Download.Curl
Darcs.Util.Encoding
c-sources: src/atomic_create.c
src/fpstring.c
src/maybe_relink.c
src/umask.c
src/system_encoding.c
cc-options: -D_REENTRANT
if os(windows)
hs-source-dirs: src/win32
include-dirs: src/win32
other-modules: Darcs.Util.CtrlC
Darcs.Util.Encoding.Win32
-- These are kept outside the Darcs.* namespace as System.Posix
-- is well-established and its just trying to simulate that
-- TODO try to abstract this out better
System.Posix
System.Posix.Files
System.Posix.IO
cpp-options: -DWIN32
c-sources: src/win32/send_email.c
build-depends: unix-compat >= 0.1.2 && < 0.5,
Win32 >= 2.2 && < 2.4
else
other-modules: Darcs.Util.Encoding.IConv
c-sources: src/h_iconv.c
if flag(use-local-data-map-strict)
build-depends: containers >= 0.4 && < 0.5,
deepseq >= 1.3 && < 1.4
hs-source-dirs: containers-0.5.2.1
other-modules:
Darcs.Data.Map.Base
Darcs.Data.Map.Strict
Darcs.Data.Set.Base
Darcs.Data.StrictPair
cpp-options: -DUSE_LOCAL_DATA_MAP_STRICT
else
build-depends: containers >= 0.5 && < 0.6
if os(solaris)
cc-options: -DHAVE_SIGINFO_H
build-depends: base >= 4.5 && < 4.9
build-depends: binary >= 0.5 && < 0.8,
regex-compat-tdfa >= 0.95.1 && < 0.96,
regex-applicative >= 0.2 && < 0.4,
mtl >= 2.1 && < 2.3,
transformers >= 0.3 && < 0.4.0.0 || > 0.4.0.0 && < 0.5,
-- for the Control.Monad.Error -> Control.Monad.Except
-- transition
transformers-compat >= 0.4 && < 0.5,
parsec >= 3.1 && < 3.2,
html == 1.0.*,
filepath >= 1.2.0.0 && < 1.5.0.0,
haskeline >= 0.6.3 && < 0.8,
cryptohash >= 0.4 && < 0.12,
base16-bytestring >= 0.1 && < 0.2,
utf8-string >= 0.3.6 && < 1.1,
vector >= 0.7 && < 0.11,
tar == 0.4.*,
data-ordlist == 0.4.*,
attoparsec >= 0.11 && < 0.14,
zip-archive >= 0.2.3 && < 0.3
if !os(windows)
build-depends: unix >= 2.5 && < 2.8
build-depends: bytestring >= 0.9.0 && < 0.11,
text >= 0.11.2.0 && < 1.3,
old-time >= 1.1 && < 1.2,
directory >= 1.1.0.2 && < 1.3.0.0,
process >= 1.1.0.1 && < 1.3.0.0,
array >= 0.4 && < 0.6,
random >= 1.0 && < 1.2,
hashable >= 1.0 && < 1.3
if flag(use-time-1point5)
build-depends: time >= 1.5 && < 1.6
else
build-depends: time >= 1.4 && < 1.5,
old-locale >= 1.0 && < 1.1
if flag(optimize)
ghc-options: -O2
else
ghc-options: -O0
if flag(warn-as-error)
ghc-options: -Werror
-- Note: "if true" works around a cabal bug with order of flag composition
if true
ghc-options: -Wall -funbox-strict-fields -fwarn-tabs
ghc-prof-options: -prof -auto-all
if flag(hpc)
ghc-prof-options: -fhpc -hpcdir dist/hpc/libdarcs
if flag(rts)
ghc-options: -rtsopts
if flag(curl)
cpp-options: -DHAVE_CURL
c-sources: src/hscurl.c
cc-options: -DHAVE_CURL
if flag(pkgconfig)
pkgconfig-depends: libcurl
else
extra-libraries: curl
includes: curl/curl.h
if flag(http)
if flag(network-uri)
build-depends: network-uri == 2.6.*, network == 2.6.*
else
build-depends: network >= 2.3 && < 2.6
build-depends: HTTP >= 4000.2.3 && < 4000.3
cpp-options: -DHAVE_HTTP
x-have-http:
if (!flag(curl) && !flag(http))
buildable: False
build-depends: mmap >= 0.5 && < 0.6
build-depends: zlib >= 0.5.3.0 && < 0.7.0.0
-- The terminfo package cannot be built on Windows.
if flag(terminfo) && !os(windows)
build-depends: terminfo >= 0.3 && < 0.5
cpp-options: -DHAVE_TERMINFO
-- if true to work around cabal bug with flag ordering
if true
default-extensions:
BangPatterns
PatternGuards
GADTs
TypeOperators
FlexibleContexts
FlexibleInstances
ScopedTypeVariables
KindSignatures
RankNTypes
TypeFamilies
NoMonoLocalBinds
if impl(ghc>=7.6)
-- in ghc < 7.6 we need to import Prelude hiding (catch)
-- in ghc >= 7.6 catch isn't in Prelude
-- once the minimum version of ghc is >= 7.6 we can remove the hiding
-- clauses and this flag
ghc-options: -fno-warn-dodgy-imports
-- hashed-storage inclusion
hs-source-dirs: hashed-storage
exposed-modules:
Storage.Hashed
Storage.Hashed.AnchoredPath
Storage.Hashed.Index
Storage.Hashed.Monad
Storage.Hashed.Tree
Storage.Hashed.Hash
Storage.Hashed.Packed
Storage.Hashed.Plain
Storage.Hashed.Darcs
if flag(hashed-storage-diff)
exposed-modules:
Storage.Hashed.Diff
build-depends: lcs
other-modules:
Bundled.Posix
Storage.Hashed.Utils
build-depends: dataenc >=0.11 && < 0.15,
unix-compat >= 0.1.2 && < 0.5,
cryptohash >= 0.4 && < 0.12
if os(windows)
cpp-options: -DWIN32
build-depends: Win32 >= 2.2 && < 2.4
-- end of hashed-storage inclusion
-- ----------------------------------------------------------------------
-- darcs itself
-- ----------------------------------------------------------------------
Executable darcs
if !flag(executable)
buildable: False
else
buildable: True
build-tools: ghc >= 7.4 && < 7.12
default-language: Haskell2010
main-is: darcs.hs
hs-source-dirs: darcs
if flag(optimize)
ghc-options: -O2
else
ghc-options: -O0
if flag(warn-as-error)
ghc-options: -Werror
-- Note: "if true" works around a cabal bug with order of flag composition
if true
ghc-options: -Wall -funbox-strict-fields -fwarn-tabs
ghc-prof-options: -prof -auto-all
if flag(threaded)
ghc-options: -threaded
if flag(static)
ghc-options: -static -optl-static -optl-pthread
if flag(hpc)
ghc-prof-options: -fhpc -hpcdir dist/hpc/darcs
if flag(rts)
ghc-options: -rtsopts
cc-options: -D_REENTRANT
build-depends: base >= 4.5 && < 4.9
build-depends: darcs,
filepath >= 1.2.0.0 && < 1.5.0.0,
regex-compat-tdfa >= 0.95.1 && < 0.96
-- if true to work around cabal bug with flag ordering
if true
default-extensions:
BangPatterns
PatternGuards
GADTs
TypeOperators
FlexibleContexts
FlexibleInstances
ScopedTypeVariables
KindSignatures
RankNTypes
TypeFamilies
NoMonoLocalBinds
-- ----------------------------------------------------------------------
-- unit test driver
-- ----------------------------------------------------------------------
test-suite darcs-test
buildable: True
build-tools: ghc >= 7.4 && < 7.12
type: exitcode-stdio-1.0
default-language: Haskell2010
main-is: test.hs
hs-source-dirs: harness
build-depends: base >= 4.5 && < 4.9
if os(windows)
cpp-options: -DWIN32
build-depends: darcs,
array >= 0.4 && < 0.6,
bytestring >= 0.9.0 && < 0.11,
cmdargs >= 0.10 && < 0.11,
containers >= 0.1 && < 0.6,
filepath >= 1.2.0.0 && < 1.5.0.0,
html == 1.0.*,
mtl >= 2.1 && < 2.3,
parsec >= 3.1 && < 3.2,
regex-compat-tdfa >= 0.95.1 && < 0.96,
shelly >= 1.6.2 && < 1.7,
split >= 0.1.4.1 && < 0.3,
text >= 0.11.0.6 && < 1.3,
directory >= 1.1.0.2 && < 1.3.0.0,
FindBin >= 0.0 && < 0.1,
QuickCheck >= 2.3 && < 2.9,
HUnit >= 1.0 && < 1.3,
test-framework >= 0.4.0 && < 0.9,
test-framework-hunit >= 0.2.2 && < 0.4,
test-framework-quickcheck2 >= 0.3 && < 0.4
-- list all unit test modules not exported by libdarcs; otherwise Cabal won't
-- include them in the tarball
other-modules: Darcs.Test.Email
Darcs.Test.Patch.Check
Darcs.Test.Patch.Examples.Set1
Darcs.Test.Patch.Examples.Set2Unwitnessed
Darcs.Test.Patch.WSub
Darcs.Test.Patch.Info
Darcs.Test.Patch.Properties.V1Set1
Darcs.Test.Patch.Properties.V1Set2
Darcs.Test.Patch.Properties.Generic
Darcs.Test.Patch.Properties.GenericUnwitnessed
Darcs.Test.Patch.Properties.Check
Darcs.Test.Patch.Properties.Real
Darcs.Test.Patch.Arbitrary.Generic
Darcs.Test.Patch.Arbitrary.Real
Darcs.Test.Patch.Arbitrary.PrimV1
Darcs.Test.Patch.Arbitrary.PrimV3
Darcs.Test.Patch.Arbitrary.PatchV1
Darcs.Test.Patch.Rebase
Darcs.Test.Patch.RepoModel
Darcs.Test.Patch.Utils
Darcs.Test.Patch.V1Model
Darcs.Test.Patch.V3Model
Darcs.Test.Patch.WithState
Darcs.Test.Patch
Darcs.Test.Misc
Darcs.Test.Util.TestResult
Darcs.Test.Util.QuickCheck
if flag(optimize)
ghc-options: -O2
else
ghc-options: -O0
if flag(warn-as-error)
ghc-options: -Werror
-- Note: "if true" works around a cabal bug with order of flag composition
if true
ghc-options: -Wall -funbox-strict-fields -fwarn-tabs
ghc-prof-options: -prof -auto-all
if flag(threaded)
ghc-options: -threaded
if flag(hpc)
ghc-prof-options: -fhpc -hpcdir dist/hpc/darcs-test
if flag(rts)
ghc-options: -rtsopts
cc-options: -D_REENTRANT
-- if true to work around cabal bug with flag ordering
if true
default-extensions:
BangPatterns
PatternGuards
GADTs
TypeOperators
FlexibleContexts
FlexibleInstances
ScopedTypeVariables
KindSignatures
RankNTypes
TypeFamilies
NoMonoLocalBinds
-- hashed-storage inclusion
test-suite hashed-storage-test
buildable: True
type: exitcode-stdio-1.0
default-language: Haskell2010
hs-source-dirs: hashed-storage
ghc-options: -Wall -O2 -fwarn-tabs
ghc-prof-options: -prof -auto-all -O2
if flag(hpc)
ghc-prof-options: -fhpc
if flag(warn-as-error)
ghc-options: -Werror
if impl(ghc>=7.6)
-- in ghc < 7.6 we need to import Prelude hiding (catch)
-- in ghc >= 7.6 catch isn't in Prelude
-- once the minimum version of ghc is >= 7.6 we can remove the hiding
-- clauses and this flag
ghc-options: -fno-warn-dodgy-imports
main-is: test.hs
other-modules: Bundled.Posix
Storage.Hashed.Test
if os(windows)
cpp-options: -DWIN32
build-depends: Win32 >= 2.2 && < 2.4
-- hashed-storage inclusion: duplicated these from the library -
-- probably needed because of the higher cabal-version in darcs.cabal
-- not using version constraints here to save on maintaining duplicates,
-- since these packages are all constrained elsewhere in the cabal file.
build-depends: base,
containers,
mtl,
directory,
filepath,
bytestring,
dataenc,
cryptohash,
binary,
zlib,
mmap,
unix-compat
build-depends: test-framework,
test-framework-hunit,
test-framework-quickcheck2,
QuickCheck,
HUnit,
process,
zip-archive
-- end of hashed-storage inclusion