forked from haskell-hvr/hackage-mirror-tool
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hackage-mirror-tool.cabal
82 lines (73 loc) · 2.56 KB
/
hackage-mirror-tool.cabal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
cabal-version: 2.2
name: hackage-mirror-tool
version: 0.0.0.0
license: GPL-3.0-only
license-file: LICENSE
author: Herbert Valerio Riedel
maintainer: [email protected]
bug-reports: https://github.com/hvr/hackage-mirror-tool/issues
category: Network
extra-source-files: ChangeLog.md
tested-with: GHC==9.4.8
synopsis: Alternative Hackage mirroring tool
description:
This is a simple tool for mirroring to S3-compatible object stores (such as Dreamhost or AWS).
.
See also @hackage-mirror-tool --help@.
.
=== Resource requirements
Currently, using this tool to operate a [Hackage](http://hackage.haskell.org) mirror has the following requirements:
.
- ~1 GiB local filesystem storage (used for by local 01-index.tar cache)
- ~10 GiB of storage in S3 bucket (at time of writing ~7.1 GiB were needed, this size increases monotonoically over time)
- A single-threaded @hackage-mirror-tool@ run needs (less than) ~256 MiB RAM; IOW, a small 512 MiB RAM VM configuration suffices
.
source-repository head
type: git
location: https://github.com/hvr/hackage-mirror-tool
flag pedantic
default: False
manual: True
executable hackage-mirror-tool
default-language: Haskell2010
other-extensions: OverloadedStrings
RecordWildCards
ScopedTypeVariables
hs-source-dirs: src
main-is: Main.hs
other-modules: Common
IndexClient
IndexShaSum
build-depends:
aeson ^>=2.1.2.1 || ^>=2.2.1,
-- Force reliance on our patched amazonka-core by setting amazonka >2.0. See
-- cabal.project in source repo. Once updated, we can set this properly.
amazonka >2.0,
amazonka-s3 ^>=2.0,
async ^>=2.2.4,
base ^>=4.17.2,
base16-bytestring ^>=1.0.2,
bytestring ^>=0.11.5,
conduit ^>=1.3.5,
containers ^>=0.6.7,
cryptohash-md5 ^>=0.11.101,
cryptohash-sha256 ^>=0.11.102,
deepseq ^>=1.4.8,
filepath ^>=1.4.2,
hackage-security ^>=0.6.2,
hackage-security-HTTP ^>=0.1.1,
hashable ^>=1.4.3,
http-streams ^>=0.8.9,
lens ^>=5.2.3,
network-uri ^>=2.6.4,
optparse-applicative ^>=0.17.1,
tar ^>=0.5.1.1 || ^>=0.6.1,
text ^>=2.0.2,
time ^>=1.12.2,
unix ^>=2.7.3,
unordered-containers ^>=0.2.19,
zlib ^>=0.6.3
if flag(pedantic)
ghc-options: -threaded -Wall -Werror -rtsopts -with-rtsopts=-N
else
ghc-options: -threaded -Wall -rtsopts -with-rtsopts=-N