packages feed

Cabal revisions of darcs-2.10.2

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-Name:           darcs-version:        2.10.2-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/renameHelper.hs-  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,-                   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--    -- release notes of GHC 7.10.2 recommends to use text >= 1.2.1.3:-    -- https://mail.haskell.org/pipermail/haskell/2015-July/024641.html-    if impl(ghc>=7.10)-      build-depends:   text       >= 1.2.1.3 && < 1.3-    else-      build-depends:   text       >= 0.11.3.1 && < 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: sandi >= 0.2 && < 0.4,-                   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,-                   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--  -- release notes of GHC 7.10.2 recommends to use text >= 1.2.1.3:-  -- https://mail.haskell.org/pipermail/haskell/2015-July/024641.html-  if impl(ghc>=7.10)-    build-depends:   text       >= 1.2.1.3 && < 1.3-  else-    build-depends:   text       >= 0.11.3.1 && < 1.3--  -- 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,-                   sandi,-                   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+Name:           darcs
+version:        2.10.2
+x-revision: 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/renameHelper.hs
+  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.9,
+                     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.6,
+                     -- 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.12,
+                     tar          >= 0.4 && < 0.6,
+                     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,
+                   old-time   >= 1.1 && < 1.2,
+                   directory  >= 1.1.0.2 && < 1.3.0.0,
+                   process    >= 1.1.0.1 && < 1.5.0.0,
+                   array      >= 0.4 && < 0.6,
+                   random     >= 1.0 && < 1.2,
+                   hashable   >= 1.0 && < 1.3
+
+    -- release notes of GHC 7.10.2 recommends to use text >= 1.2.1.3:
+    -- https://mail.haskell.org/pipermail/haskell/2015-July/024641.html
+    if impl(ghc>=7.10)
+      build-depends:   text       >= 1.2.1.3 && < 1.3
+    else
+      build-depends:   text       >= 0.11.3.1 && < 1.3
+
+    if flag(use-time-1point5)
+      build-depends: time         >= 1.5 && < 1.7
+    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.4
+        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: sandi >= 0.2 && < 0.4,
+                   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,
+                   directory    >= 1.1.0.2 && < 1.3.0.0,
+                   FindBin      >= 0.0 && < 0.1,
+                   QuickCheck   >= 2.3 && < 2.9,
+                   HUnit        >= 1.0 && < 1.4,
+                   test-framework             >= 0.4.0 && < 0.9,
+                   test-framework-hunit       >= 0.2.2 && < 0.4,
+                   test-framework-quickcheck2 >= 0.3 && < 0.4
+
+  -- release notes of GHC 7.10.2 recommends to use text >= 1.2.1.3:
+  -- https://mail.haskell.org/pipermail/haskell/2015-July/024641.html
+  if impl(ghc>=7.10)
+    build-depends:   text       >= 1.2.1.3 && < 1.3
+  else
+    build-depends:   text       >= 0.11.3.1 && < 1.3
+
+  -- 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,
+                   sandi,
+                   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