ghc-snap-server/snap-server-1.1.1.1.cabal
2020-02-20 00:11:27 +08:00

543 lines
14 KiB
Plaintext

name: snap-server
version: 1.1.1.1
x-revision: 3
synopsis: A web server for the Snap Framework
description:
Snap is a simple and fast web development framework and server written in
Haskell. For more information or to download the latest version, you can
visit the Snap project website at <http://snapframework.com/>.
.
The Snap HTTP server is a high performance web server library written in
Haskell. Together with the @snap-core@ library upon which it depends, it
provides a clean and efficient Haskell programming interface to the HTTP
protocol.
license: BSD3
license-file: LICENSE
author: Snap Framework Authors (see CONTRIBUTORS)
maintainer: snap@snapframework.com
build-type: Simple
cabal-version: >= 1.10
homepage: http://snapframework.com/
bug-reports: https://github.com/snapframework/snap-server/issues
category: Web, Snap, IO-Streams
extra-source-files:
CONTRIBUTORS,
LICENSE,
README.md,
README.SNAP.md,
test/bad_key.pem,
test/cert.pem,
test/dummy.txt,
test/key.pem,
testserver/static/hello.txt
tested-with:
GHC==7.6.3,
GHC==7.8.4,
GHC==7.10.3,
GHC==8.0.2,
GHC==8.2.2,
GHC==8.4.4,
GHC==8.6.3
Flag portable
Description: Compile in cross-platform mode. No platform-specific code or
optimizations such as C routines will be used.
Default: False
Flag openssl
Description: Enable https support using the HsOpenSSL library.
Default: False
Manual: True
Flag build-pong
Description: Build a server that just returns "PONG"? Normally useful only
for benchmarks.
Default: False
Manual: True
Flag build-testserver
Description: Build the blackbox testserver?
Default: False
Manual: True
Flag debug
Description: Enable support for debugging.
Default: False
Manual: True
Library
hs-source-dirs: src
Default-language: Haskell2010
exposed-modules:
Snap.Http.Server,
Snap.Http.Server.Config,
Snap.Http.Server.Types,
Snap.Internal.Http.Server.Config,
Snap.Internal.Http.Server.Types,
System.FastLogger
other-modules:
Paths_snap_server,
Control.Concurrent.Extended,
Snap.Internal.Http.Server.Address,
Snap.Internal.Http.Server.Clock,
Snap.Internal.Http.Server.Common,
Snap.Internal.Http.Server.Date,
Snap.Internal.Http.Server.Parser,
Snap.Internal.Http.Server.Session,
Snap.Internal.Http.Server.Socket,
Snap.Internal.Http.Server.Thread,
Snap.Internal.Http.Server.TimeoutManager,
Snap.Internal.Http.Server.TLS
build-depends:
attoparsec >= 0.12 && < 0.14,
base >= 4.6 && < 4.14,
blaze-builder >= 0.4 && < 0.5,
bytestring >= 0.9.1 && < 0.11,
bytestring-builder >= 0.10.4 && < 0.11,
case-insensitive >= 1.1 && < 1.3,
clock >= 0.7.1 && < 0.9,
containers >= 0.3 && < 0.7,
filepath >= 1.1 && < 2.0,
io-streams >= 1.3 && < 1.6,
io-streams-haproxy >= 1.0 && < 1.1,
lifted-base >= 0.1 && < 0.3,
mtl >= 2.0 && < 2.3,
network >= 2.3 && < 3.2,
old-locale >= 1.0 && < 1.1,
snap-core >= 1.0 && < 1.1,
text >= 0.11 && < 1.3,
time >= 1.0 && < 1.10,
unix-compat >= 0.2 && < 0.6,
vector >= 0.7 && < 0.13
other-extensions:
BangPatterns,
CPP,
MagicHash,
Rank2Types,
OverloadedStrings,
ScopedTypeVariables,
DeriveDataTypeable,
PackageImports,
ViewPatterns,
ForeignFunctionInterface,
EmptyDataDecls,
GeneralizedNewtypeDeriving
if !impl(ghc >= 8.0)
build-depends: semigroups >= 0.16 && < 0.19
if flag(portable) || os(windows)
cpp-options: -DPORTABLE
else
build-depends: unix < 2.8
if flag(openssl)
cpp-options: -DOPENSSL
build-depends: HsOpenSSL >= 0.10.4 && < 0.12,
openssl-streams >= 1.1 && < 1.3
if os(linux) && !flag(portable)
cpp-options: -DLINUX -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
other-modules:
System.SendFile,
System.SendFile.Linux
-- Disabling sendfile() on OSX for now. See
--
-- https://github.com/snapframework/snap-core/issues/274 and
-- https://github.com/snapframework/snap-core/issues/91
--
if os(darwin) && !flag(portable)
cpp-options: -DHAS_UNIX_SOCKETS
-- if os(darwin) && !flag(portable)
-- cpp-options: -DOSX -DHAS_UNIX_SOCKETS
if os(freebsd) && !flag(portable)
cpp-options: -DFREEBSD -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
other-modules:
System.SendFile,
System.SendFile.FreeBSD
if impl(ghc >= 6.12.0)
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields -fno-warn-unused-do-bind
else
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields
if flag(debug)
cpp-options: -DLABEL_THREADS
Test-suite testsuite
hs-source-dirs: src test
Type: exitcode-stdio-1.0
Main-is: TestSuite.hs
Default-language: Haskell2010
other-modules:
Control.Concurrent.Extended,
Paths_snap_server,
Snap.Http.Server,
Snap.Http.Server.Config,
Snap.Http.Server.Types,
Snap.Internal.Http.Server.Address,
Snap.Internal.Http.Server.Clock,
Snap.Internal.Http.Server.Common,
Snap.Internal.Http.Server.Config,
Snap.Internal.Http.Server.Date,
Snap.Internal.Http.Server.Parser,
Snap.Internal.Http.Server.Session,
Snap.Internal.Http.Server.Socket,
Snap.Internal.Http.Server.Thread,
Snap.Internal.Http.Server.TimeoutManager,
Snap.Internal.Http.Server.TLS
Snap.Internal.Http.Server.Types,
System.FastLogger,
Snap.Internal.Http.Server.Address.Tests,
Snap.Internal.Http.Server.Parser.Tests,
Snap.Internal.Http.Server.Session.Tests,
Snap.Internal.Http.Server.Socket.Tests,
Snap.Internal.Http.Server.TimeoutManager.Tests,
Snap.Test.Common,
Test.Blackbox,
Test.Common.Rot13,
Test.Common.TestHandler
build-depends:
attoparsec,
base,
base16-bytestring >= 0.1 && < 0.2,
blaze-builder,
bytestring-builder,
bytestring,
case-insensitive,
clock,
containers,
directory >= 1.1 && < 1.4,
filepath,
io-streams,
io-streams-haproxy,
lifted-base,
monad-control >= 1.0 && < 1.1,
mtl,
network,
old-locale,
random >= 1.0 && < 1.2,
snap-core,
text,
threads >= 0.5 && < 0.6,
time,
transformers >= 0.3 && < 0.6,
unix-compat,
vector,
HUnit >= 1.2 && < 2,
QuickCheck >= 2.3.0.2 && < 3,
deepseq >= 1.3 && < 2,
http-streams >= 0.7 && < 0.9,
http-common >= 0.7 && < 0.9,
parallel >= 3 && < 4,
test-framework >= 0.8.0.3 && < 0.9,
test-framework-hunit >= 0.2.7 && < 0.4,
test-framework-quickcheck2 >= 0.2.12.1 && < 0.4
other-extensions:
BangPatterns,
CPP,
MagicHash,
Rank2Types,
OverloadedStrings,
ScopedTypeVariables,
DeriveDataTypeable,
PackageImports,
ViewPatterns,
ForeignFunctionInterface,
EmptyDataDecls,
GeneralizedNewtypeDeriving
if !impl(ghc >= 8.0)
build-depends: semigroups
if flag(portable) || os(windows)
cpp-options: -DPORTABLE
else
build-depends: unix
-- always label threads in testsuite
cpp-options: -DLABEL_THREADS
if flag(openssl)
cpp-options: -DOPENSSL
build-depends: HsOpenSSL,
openssl-streams
if os(linux) && !flag(portable)
cpp-options: -DLINUX -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
other-modules:
System.SendFile,
System.SendFile.Linux,
System.SendFile.Tests
c-sources: test/cbits/errno_util.c
if os(darwin) && !flag(portable)
cpp-options: -DHAS_UNIX_SOCKETS
-- if os(darwin) && !flag(portable)
-- cpp-options: -DOSX -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
-- other-modules:
-- System.SendFile,
-- System.SendFile.Darwin,
-- System.SendFile.Tests
-- c-sources: test/cbits/errno_util.c
if os(freebsd) && !flag(portable)
cpp-options: -DFREEBSD -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
other-modules:
System.SendFile,
System.SendFile.FreeBSD,
System.SendFile.Tests
c-sources: test/cbits/errno_util.c
cpp-options: -DTESTSUITE
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields
-fno-warn-unused-do-bind -threaded
Benchmark benchmark
type: exitcode-stdio-1.0
hs-source-dirs: benchmark src
main-is: Benchmark.hs
default-language: Haskell2010
other-modules:
Snap.Internal.Http.Parser.Benchmark,
Snap.Internal.Http.Parser.Data,
Snap.Internal.Http.Server.Parser
build-depends:
attoparsec,
base,
blaze-builder,
bytestring,
bytestring-builder,
criterion >= 0.6 && < 1.6,
io-streams,
io-streams-haproxy,
snap-core,
vector
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields
-fno-warn-unused-do-bind -rtsopts
other-extensions:
BangPatterns,
CPP,
MagicHash,
Rank2Types,
OverloadedStrings,
ScopedTypeVariables,
DeriveDataTypeable,
PackageImports,
ViewPatterns,
ForeignFunctionInterface,
EmptyDataDecls,
GeneralizedNewtypeDeriving
Executable snap-test-pong-server
hs-source-dirs: src pong
main-is: Main.hs
if !flag(build-pong)
buildable: False
default-language: Haskell2010
other-modules:
Paths_snap_server,
Snap.Internal.Http.Server.Address,
Snap.Internal.Http.Server.Clock,
Snap.Internal.Http.Server.Common,
Snap.Internal.Http.Server.Config,
Snap.Internal.Http.Server.Date,
Snap.Internal.Http.Server.Parser,
Snap.Internal.Http.Server.Session,
Snap.Internal.Http.Server.Socket,
Snap.Internal.Http.Server.Thread,
Snap.Internal.Http.Server.TimeoutManager,
Snap.Internal.Http.Server.TLS,
Snap.Internal.Http.Server.Types
if flag(portable) || os(windows)
cpp-options: -DPORTABLE
else
build-depends: unix
if os(linux) && !flag(portable)
cpp-options: -DLINUX -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
other-modules:
System.SendFile,
System.SendFile.Linux
if os(darwin) && !flag(portable)
cpp-options: -DHAS_UNIX_SOCKETS
-- if os(darwin) && !flag(portable)
-- cpp-options: -DOSX -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
-- other-modules:
-- System.SendFile,
-- System.SendFile.Darwin
if os(freebsd) && !flag(portable)
cpp-options: -DFREEBSD -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
other-modules:
System.SendFile,
System.SendFile.FreeBSD
if flag(openssl)
cpp-options: -DOPENSSL
build-depends: HsOpenSSL,
openssl-streams
build-depends:
attoparsec,
base,
blaze-builder,
bytestring,
bytestring-builder,
case-insensitive,
clock,
containers,
io-streams,
io-streams-haproxy,
lifted-base,
mtl,
network,
old-locale,
snap-core,
text,
time,
unix-compat,
vector
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields
-fno-warn-unused-do-bind -threaded -rtsopts
other-extensions:
BangPatterns,
CPP,
MagicHash,
Rank2Types,
OverloadedStrings,
ScopedTypeVariables,
DeriveDataTypeable,
PackageImports,
ViewPatterns,
ForeignFunctionInterface,
EmptyDataDecls,
GeneralizedNewtypeDeriving
Executable snap-test-server
hs-source-dirs: src testserver test
main-is: Main.hs
if !flag(build-testserver)
buildable: False
if flag(openssl)
cpp-options: -DOPENSSL
build-depends: HsOpenSSL,
openssl-streams
default-language: Haskell2010
other-modules:
Paths_snap_server,
Snap.Internal.Http.Server.Address,
Snap.Internal.Http.Server.Clock,
Snap.Internal.Http.Server.Common,
Snap.Internal.Http.Server.Config,
Snap.Internal.Http.Server.Date,
Snap.Internal.Http.Server.Parser,
Snap.Internal.Http.Server.Session,
Snap.Internal.Http.Server.Socket,
Snap.Internal.Http.Server.Thread,
Snap.Internal.Http.Server.TimeoutManager,
Snap.Internal.Http.Server.TLS,
Snap.Internal.Http.Server.Types
if flag(portable) || os(windows)
cpp-options: -DPORTABLE
else
build-depends: unix
if os(linux) && !flag(portable)
cpp-options: -DLINUX -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
other-modules:
System.SendFile,
System.SendFile.Linux
if os(darwin) && !flag(portable)
cpp-options: -DHAS_UNIX_SOCKETS
-- if os(darwin) && !flag(portable)
-- cpp-options: -DOSX -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
-- other-modules:
-- System.SendFile,
-- System.SendFile.Darwin
if os(freebsd) && !flag(portable)
cpp-options: -DFREEBSD -DHAS_SENDFILE -DHAS_UNIX_SOCKETS
other-modules:
System.SendFile,
System.SendFile.FreeBSD
build-depends:
attoparsec,
base,
blaze-builder,
bytestring,
bytestring-builder,
case-insensitive,
clock,
containers,
directory,
io-streams,
io-streams-haproxy,
lifted-base,
mtl,
network,
old-locale,
snap-core,
text,
time,
transformers,
unix-compat,
vector
ghc-options: -Wall -fwarn-tabs -funbox-strict-fields
-fno-warn-unused-do-bind -threaded -rtsopts
other-extensions:
BangPatterns,
CPP,
MagicHash,
Rank2Types,
OverloadedStrings,
ScopedTypeVariables,
DeriveDataTypeable,
PackageImports,
ViewPatterns,
ForeignFunctionInterface,
EmptyDataDecls,
GeneralizedNewtypeDeriving
source-repository head
type: git
location: git://github.com/snapframework/snap-server.git