packages feed

tahoe-great-black-swamp-0.4.0.1: tahoe-great-black-swamp.cabal

cabal-version:      2.4
name:               tahoe-great-black-swamp
version:            0.4.0.1
build-type:         Simple
synopsis:           An implementation of the "Great Black Swamp" LAFS protocol.
description:
  This package implements the recently proposed "Great Black Swamp" Least
  Authority File Store protocol from the Tahoe-LAFS project.  It also includes
  pieces of a storage server and client implementation based on that protocol.

license:            BSD-3-Clause
license-file:       LICENSE
author:             Jean-Paul Calderone and others
maintainer:         exarkun@twistedmatrix.com
copyright:          2018-2023 The Authors
category:
  Cryptography
  , Distributed Computing
  , Filesystem
  , Network
  , Network APIs
  , Security
  , Service
  , Storage
  , Web

extra-source-files:
  ChangeLog.md
  README.rst

homepage:
  https://whetstone.private.storage/PrivateStorage/tahoe-great-black-swamp

bug-reports:
  https://whetstone.private.storage/privatestorage/tahoe-great-black-swamp/-/issues

source-repository head
  type:     git
  location:
    gitlab@whetstone.private.storage:privatestorage/tahoe-great-black-swamp.git

common executable-opts
  ghc-options:

common common-opts
  default-extensions:
    GADTs
    InstanceSigs
    LambdaCase
    MultiWayIf
    NamedFieldPuns
    OverloadedStrings
    RecordWildCards
    ScopedTypeVariables
    StrictData
    TupleSections
    TypeApplications

  ghc-options:        -Wall
  build-depends:
    , aeson                 >=1.4.7    && <2.2
    , async                 >=2.2.2    && <2.3
    , base                  >=4.7      && <5
    , binary                >=0.8.6    && <0.9
    , bytestring            >=0.10.8.2 && <0.11
    , containers            >=0.6.0.1  && <0.7
    , deriving-aeson        >=0.2.6    && <0.3
    , directory             >=1.3.3    && <1.4
    , extra                 >=1.7      && <1.8
    , filepath              >=1.4.2    && <1.5
    , foldl                 >=1.4.6    && <1.5
    , http-types            >=0.12.3   && <0.13
    , primitive             >=0.7.0.1  && <0.8
    , safe-exceptions       >=0.1.7.1  && <0.2
    , text                  >=1.2.3.1  && <1.3
    , unordered-containers  >=0.2.10   && <0.3
    , vector                >=0.12.1.2 && <0.13

  default-language:   Haskell2010

common warp-workaround
  -- Place an upper bound on http2 to get a solution that avoids a compile
  -- error in warp 3.3.25 which for some reason includes < 5 as its
  -- constraint.

  build-depends: http2 <4

library
  import:
    common-opts
    , warp-workaround

  hs-source-dirs:   src
  exposed-modules:
    TahoeLAFS.Internal.Client
    TahoeLAFS.Internal.ServantUtil
    TahoeLAFS.Storage.API
    TahoeLAFS.Storage.APIDocs
    TahoeLAFS.Storage.Backend
    TahoeLAFS.Storage.Backend.Filesystem
    TahoeLAFS.Storage.Backend.Memory
    TahoeLAFS.Storage.Backend.Null
    TahoeLAFS.Storage.Client
    TahoeLAFS.Storage.Server

  default-language: Haskell2010
  build-depends:
    , asn1-encoding       >=0.9.6    && <0.10
    , asn1-types          >=0.3.4    && <0.4
    , base                >=4.7      && <5
    , base64              >=0.2      && <0.5
    , base64-bytestring   >=1.0.0.3  && <1.3
    , cborg               >=0.2.4    && <0.3
    , cborg-json          >=0.2.2    && <0.3
    , connection          >=0.3.1    && <0.4
    , cryptonite          >=0.27     && <0.31
    , data-default-class  >=0.1      && <0.2
    , http-api-data       >=0.4.1.1  && <0.7
    , http-client         >=0.6.4.1  && <0.8
    , http-client-tls     >=0.3.5.3  && <0.4
    , http-media          >=0.8      && <0.9
    , memory              >=0.15     && <0.19
    , network             >=3.1.2    && <3.2
    , network-uri         >=2.6.3    && <2.7
    , scientific          >=0.3.6.2  && <0.4
    , serialise           >=0.2.3    && <0.3
    , servant-client      >=0.16.0.1 && <0.21
    , servant-docs        >=0.11.4   && <0.14
    , servant-server      >=0.16.2   && <0.21
    , tls                 >=1.5      && <2
    , utf8-string         >=1.0.1.1  && <1.1
    , wai                 >=3.2.2.1  && <3.3
    , warp                >=3.3.13   && <3.4
    , warp-tls            >=3.2.12   && <3.5
    , x509                >=1.7      && <1.8
    , x509-store          >=1.6      && <1.7
    , x509-validation     >=1.6      && <1.7

-- executable gbs-generate-apidocs
--   hs-source-dirs:      generate-apidocs
--   main-is:             Main.hs
--   default-language:    Haskell2010
--   build-depends:       base
--                      , servant-docs
--                      , pandoc
--                      , data-default
--                      , blaze-html
--                      , tahoe-great-black-swamp
--                      , text

executable client-test
  import:           common-opts
  hs-source-dirs:   client-test
  main-is:          Main.hs
  default-language: Haskell2010
  build-depends:
    , aeson                    >=1.4.7    && <2.2
    , base                     >=4.7      && <5
    , base32                   >=0.2.1    && <0.3
    , bytestring               >=0.10.8.2 && <0.11
    , cborg                    >=0.2.4    && <0.3
    , connection               >=0.3.1    && <0.4
    , containers               >=0.6.0.1  && <0.7
    , http-client              >=0.6.4.1  && <0.8
    , http-client-tls          >=0.3.5.3  && <0.4
    , http-types               >=0.12.3   && <0.13
    , lens                     >=4.0      && <5.3
    , megaparsec               >=8.0      && <9.3
    , serialise                >=0.2.3    && <0.3
    , servant                  >=0.16.2   && <0.21
    , servant-client           >=0.16.0.1 && <0.21
    , tahoe-chk                >=0.1      && <0.3
    , tahoe-great-black-swamp
    , text                     >=1.2.3.1  && <1.3

executable gbs-lafs-storage-server
  hs-source-dirs:   app
  main-is:          Main.hs
  default-language: Haskell2010
  build-depends:
    , base                     >=4.7      && <5
    , optparse-applicative     >=0.15.1.0 && <0.19
    , tahoe-great-black-swamp
    , warp                     >=3.3.13   && <3.4

executable gbs-generate-clients
  hs-source-dirs:   generate-clients
  main-is:          Main.hs
  default-language: Haskell2010
  build-depends:
    , base                     >=4.7     && <5
    , filepath                 >=1.4.2   && <1.5
    , servant-js               >=0.9.4.2 && <0.10
    , tahoe-great-black-swamp

test-suite http-tests
  import:           common-opts
  import:           executable-opts
  type:             exitcode-stdio-1.0
  hs-source-dirs:   test
  main-is:          Main.hs
  other-modules:
    CBORSpec
    ClientSpec
    HTTPSpec
    Lib
    MiscSpec
    SemanticSpec
    Spec
    Vectors

  default-language: Haskell2010
  ghc-options:      -Wall -threaded
  build-depends:
    , base                     >=4.7      && <5
    , base32string             >=0.9.1    && <0.10
    , base64                   >=0.2      && <0.5
    , cborg                    >=0.2.4    && <0.3
    , connection               >=0.3      && <0.4
    , data-default-class       >=0.1      && <0.2
    , data-interval            >=2.0.1    && <2.2
    , hspec                    <2.12
    , hspec-expectations       <0.9
    , hspec-wai                <0.12
    , http-client              >=0.6.4.1  && <0.8
    , network                  >=3.1      && <3.2
    , network-simple-tls       >=0.4      && <0.5
    , QuickCheck               <2.15
    , quickcheck-classes       >=0.6      && <0.7
    , quickcheck-instances     <0.4
    , serialise                >=0.2.3    && <0.3
    , servant                  >=0.16.2   && <0.21
    , servant-client           >=0.16.0.1 && <0.21
    , tahoe-great-black-swamp
    , temporary                >=1.3      && <1.4
    , tls                      >=1.5      && <2
    , vector                   >=0.12.1.2 && <0.13
    , wai-extra                >=3.0.29.2 && <3.2
    , warp                     >=3.3.13   && <3.4
    , warp-tls                 >=3.2.12   && <3.5
    , x509                     >=1.7      && <1.8
    , x509-store               >=1.6      && <1.7
    , yaml                     >=0.11.5.0 && <0.11.9.0 || >=0.11.9.0.0 && <0.12