summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitmodules9
-rw-r--r--bittorrent/README.md (renamed from README.md)0
-rw-r--r--bittorrent/Readme.md (renamed from src/Readme.md)0
-rw-r--r--bittorrent/bench/Main.hs (renamed from bench/Main.hs)0
-rw-r--r--bittorrent/bench/Throughtput.hs (renamed from bench/Throughtput.hs)0
-rw-r--r--bittorrent/bench/TorrentFile.hs (renamed from bench/TorrentFile.hs)0
-rw-r--r--bittorrent/bittorrent.cabal412
-rw-r--r--bittorrent/dev/README.md (renamed from dev/README.md)0
-rwxr-xr-xbittorrent/dev/add-sources.sh (renamed from dev/add-sources.sh)0
-rwxr-xr-xbittorrent/dev/bench (renamed from dev/bench)0
-rwxr-xr-xbittorrent/dev/test (renamed from dev/test)0
-rwxr-xr-xbittorrent/dev/update-dependencies.sh (renamed from dev/update-dependencies.sh)0
-rw-r--r--bittorrent/examples/Client.hs (renamed from examples/Client.hs)0
-rw-r--r--bittorrent/examples/FS.hs (renamed from examples/FS.hs)0
-rw-r--r--bittorrent/examples/MkTorrent.hs (renamed from examples/MkTorrent.hs)0
-rw-r--r--bittorrent/res/dapper-dvd-amd64.iso.torrent (renamed from res/dapper-dvd-amd64.iso.torrent)bin64198 -> 64198 bytes
-rw-r--r--bittorrent/res/pkg.torrent (renamed from res/pkg.torrent)bin32113 -> 32113 bytes
-rw-r--r--bittorrent/res/testfile (renamed from res/testfile)bin8192 -> 8192 bytes
-rw-r--r--bittorrent/res/testfile.torrent (renamed from res/testfile.torrent)0
-rw-r--r--bittorrent/src/Network/BitTorrent.hs (renamed from src/Network/BitTorrent.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Client.hs (renamed from src/Network/BitTorrent/Client.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Client/Handle.hs (renamed from src/Network/BitTorrent/Client/Handle.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Client/Types.hs (renamed from src/Network/BitTorrent/Client/Types.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Exchange.hs (renamed from src/Network/BitTorrent/Exchange.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Exchange/Bitfield.hs (renamed from src/Network/BitTorrent/Exchange/Bitfield.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Exchange/Block.hs (renamed from src/Network/BitTorrent/Exchange/Block.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Exchange/Connection.hs (renamed from src/Network/BitTorrent/Exchange/Connection.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Exchange/Download.hs (renamed from src/Network/BitTorrent/Exchange/Download.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Exchange/Manager.hs (renamed from src/Network/BitTorrent/Exchange/Manager.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Exchange/Message.hs (renamed from src/Network/BitTorrent/Exchange/Message.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Exchange/Session.hs (renamed from src/Network/BitTorrent/Exchange/Session.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Internal/Cache.hs (renamed from src/Network/BitTorrent/Internal/Cache.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Internal/Progress.hs (renamed from src/Network/BitTorrent/Internal/Progress.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Internal/Types.hs (renamed from src/Network/BitTorrent/Internal/Types.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Readme.md (renamed from src/Network/BitTorrent/Readme.md)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Tracker.hs (renamed from src/Network/BitTorrent/Tracker.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Tracker/List.hs (renamed from src/Network/BitTorrent/Tracker/List.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Tracker/Message.hs (renamed from src/Network/BitTorrent/Tracker/Message.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Tracker/RPC.hs (renamed from src/Network/BitTorrent/Tracker/RPC.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Tracker/RPC/HTTP.hs (renamed from src/Network/BitTorrent/Tracker/RPC/HTTP.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Tracker/RPC/UDP.hs (renamed from src/Network/BitTorrent/Tracker/RPC/UDP.hs)0
-rw-r--r--bittorrent/src/Network/BitTorrent/Tracker/Session.hs (renamed from src/Network/BitTorrent/Tracker/Session.hs)0
-rw-r--r--bittorrent/src/System/Torrent/FileMap.hs (renamed from src/System/Torrent/FileMap.hs)0
-rw-r--r--bittorrent/src/System/Torrent/Storage.hs (renamed from src/System/Torrent/Storage.hs)0
-rw-r--r--bittorrent/src/System/Torrent/Tree.hs (renamed from src/System/Torrent/Tree.hs)0
-rw-r--r--bittorrent/tests/Config.hs (renamed from tests/Config.hs)0
-rw-r--r--bittorrent/tests/Data/TorrentSpec.hs (renamed from tests/Data/TorrentSpec.hs)0
-rw-r--r--bittorrent/tests/Main.hs (renamed from tests/Main.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Client/HandleSpec.hs (renamed from tests/Network/BitTorrent/Client/HandleSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/CoreSpec.hs (renamed from tests/Network/BitTorrent/CoreSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/DHT/MessageSpec.hs (renamed from tests/Network/BitTorrent/DHT/MessageSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/DHT/QuerySpec.hs (renamed from tests/Network/BitTorrent/DHT/QuerySpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/DHT/RoutingSpec.hs (renamed from tests/Network/BitTorrent/DHT/RoutingSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/DHT/SessionSpec.hs (renamed from tests/Network/BitTorrent/DHT/SessionSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/DHT/TestData.hs (renamed from tests/Network/BitTorrent/DHT/TestData.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/DHT/TokenSpec.hs (renamed from tests/Network/BitTorrent/DHT/TokenSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/DHTSpec.hs (renamed from tests/Network/BitTorrent/DHTSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Exchange/BitfieldSpec.hs (renamed from tests/Network/BitTorrent/Exchange/BitfieldSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Exchange/BlockSpec.hs (renamed from tests/Network/BitTorrent/Exchange/BlockSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Exchange/ConnectionSpec.hs (renamed from tests/Network/BitTorrent/Exchange/ConnectionSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Exchange/DownloadSpec.hs (renamed from tests/Network/BitTorrent/Exchange/DownloadSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Exchange/MessageSpec.hs (renamed from tests/Network/BitTorrent/Exchange/MessageSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Exchange/SessionSpec.hs (renamed from tests/Network/BitTorrent/Exchange/SessionSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Internal/CacheSpec.hs (renamed from tests/Network/BitTorrent/Internal/CacheSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Internal/ProgressSpec.hs (renamed from tests/Network/BitTorrent/Internal/ProgressSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Tracker/ListSpec.hs (renamed from tests/Network/BitTorrent/Tracker/ListSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Tracker/MessageSpec.hs (renamed from tests/Network/BitTorrent/Tracker/MessageSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Tracker/RPC/HTTPSpec.hs (renamed from tests/Network/BitTorrent/Tracker/RPC/HTTPSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs (renamed from tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Tracker/RPCSpec.hs (renamed from tests/Network/BitTorrent/Tracker/RPCSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Tracker/SessionSpec.hs (renamed from tests/Network/BitTorrent/Tracker/SessionSpec.hs)0
-rw-r--r--bittorrent/tests/Network/BitTorrent/Tracker/TestData.hs (renamed from tests/Network/BitTorrent/Tracker/TestData.hs)0
-rw-r--r--bittorrent/tests/Network/KRPC/MessageSpec.hs (renamed from tests/Network/KRPC/MessageSpec.hs)0
-rw-r--r--bittorrent/tests/Network/KRPC/MethodSpec.hs (renamed from tests/Network/KRPC/MethodSpec.hs)0
-rw-r--r--bittorrent/tests/Network/KRPCSpec.hs (renamed from tests/Network/KRPCSpec.hs)0
-rw-r--r--bittorrent/tests/Readme.md (renamed from tests/Readme.md)0
-rw-r--r--bittorrent/tests/Spec.hs (renamed from tests/Spec.hs)0
-rw-r--r--bittorrent/tests/System/Torrent/FileMapSpec.hs (renamed from tests/System/Torrent/FileMapSpec.hs)0
-rw-r--r--bittorrent/tests/System/Torrent/StorageSpec.hs (renamed from tests/System/Torrent/StorageSpec.hs)0
m---------sub/bencoding0
m---------sub/krpc6
m---------sub/optparse-applicative0
82 files changed, 412 insertions, 15 deletions
diff --git a/.gitmodules b/.gitmodules
index 1bc7a6d4..e69de29b 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,9 +0,0 @@
1[submodule "sub/bencoding"]
2 path = sub/bencoding
3 url = git://github.com/pxqr/bencoding.git
4[submodule "sub/krpc"]
5 path = sub/krpc
6 url = git://github.com/pxqr/krpc.git
7[submodule "sub/optparse-applicative"]
8 path = sub/optparse-applicative
9 url = https://github.com/pcapriotti/optparse-applicative.git
diff --git a/README.md b/bittorrent/README.md
index 32948896..32948896 100644
--- a/README.md
+++ b/bittorrent/README.md
diff --git a/src/Readme.md b/bittorrent/Readme.md
index e092c3ad..e092c3ad 100644
--- a/src/Readme.md
+++ b/bittorrent/Readme.md
diff --git a/bench/Main.hs b/bittorrent/bench/Main.hs
index f04485ab..f04485ab 100644
--- a/bench/Main.hs
+++ b/bittorrent/bench/Main.hs
diff --git a/bench/Throughtput.hs b/bittorrent/bench/Throughtput.hs
index d0404405..d0404405 100644
--- a/bench/Throughtput.hs
+++ b/bittorrent/bench/Throughtput.hs
diff --git a/bench/TorrentFile.hs b/bittorrent/bench/TorrentFile.hs
index e91a9c10..e91a9c10 100644
--- a/bench/TorrentFile.hs
+++ b/bittorrent/bench/TorrentFile.hs
diff --git a/bittorrent/bittorrent.cabal b/bittorrent/bittorrent.cabal
new file mode 100644
index 00000000..910194c2
--- /dev/null
+++ b/bittorrent/bittorrent.cabal
@@ -0,0 +1,412 @@
1name: bittorrent
2version: 0.0.0.3
3license: BSD3
4license-file: LICENSE
5author: Sam Truzjan
6maintainer: Sam Truzjan <pxqr.sta@gmail.com>
7copyright: (c) 2013, Sam Truzjan
8category: Network
9build-type: Simple
10cabal-version: >= 1.10
11tested-with: GHC == 7.6.3
12homepage: https://github.com/cobit/bittorrent
13bug-reports: https://github.com/cobit/bittorrent/issues
14synopsis: BitTorrent protocol implementation.
15description:
16
17 A library for making Haskell bittorrent applications easy.
18 .
19 For more information see:
20 <https://github.com/cobit/bittorrent/blob/master/README.md>
21
22extra-source-files: res/dapper-dvd-amd64.iso.torrent
23 res/pkg.torrent
24 README.md
25 ChangeLog
26 cbits/*.h
27
28
29source-repository head
30 type: git
31 location: git://github.com/cobit/bittorrent.git
32
33source-repository this
34 type: git
35 location: git://github.com/cobit/bittorrent.git
36 branch: master
37 tag: v0.0.0.3
38
39flag testing
40 description: Whether to build tests.
41 default: False
42
43flag examples
44 description: Whether to build examples.
45 default: False
46
47flag network-uri
48 description: Use network-uri package.
49 default: True
50
51flag bits-extras
52 description: Use more-effecient bits-extras bitwise operations.
53 default: False
54
55flag dht-only
56 description: Build only DHT related modules.
57 default: True
58
59flag builder
60 description: Use older bytestring package and bytestring-builder.
61 default: False
62
63flag aeson
64 description: Use aeson for pretty-printing bencoded data.
65 default: True
66
67flag thread-debug
68 description: Add instrumentation to threads.
69 default: True
70
71library
72 default-language: Haskell2010
73 default-extensions: PatternGuards
74 , OverloadedStrings
75 , RecordWildCards
76 hs-source-dirs: src, cryptonite-backport, .
77 exposed-modules: Network.SocketLike
78 Data.Digest.CRC32C
79 Data.Bits.ByteString
80 Data.Wrapper.PSQ
81 Data.Wrapper.PSQInt
82 Data.MinMaxPSQ
83 Network.Address
84 Network.DHT.Routing
85 Data.Torrent
86 Network.BitTorrent.DHT.ContactInfo
87 Network.BitTorrent.DHT.Token
88 Network.BitTorrent.DHT.Search
89 Network.QueryResponse
90 Network.StreamServer
91 Data.BEncode.Pretty
92 Control.Concurrent.Tasks
93 Network.Kademlia
94 Network.BitTorrent.MainlineDHT
95 System.Global6
96 Network.Tox
97 Network.Tox.Transport
98 Network.Tox.Crypto.Transport
99 Network.Tox.Onion.Handlers
100 Network.Tox.Onion.Transport
101 Network.Tox.DHT.Handlers
102 Network.Tox.DHT.Transport
103 Network.Tox.Address
104 Control.TriadCommittee
105 Crypto.Tox
106 Text.XXD
107
108 build-depends: base
109 , containers
110 , array
111 , hashable
112 , iproute
113 , stm
114 , base16-bytestring
115 , base32-bytestring
116 , base64-bytestring
117 , psqueues
118 , reflection
119 , deepseq
120 , text
121 , filepath
122 , directory
123 , bencoding
124 , contravariant
125
126 , cryptonite
127 , memory
128 , time
129 , random
130 , entropy
131 , cpu
132
133 , cereal
134 , http-types
135
136 , process
137 , split
138 , pretty
139 , convertible
140 , data-default
141
142 , bifunctors
143 , lens
144 , lifted-async
145 , lifted-base
146 , monad-control
147 , transformers-base
148 , mtl
149
150 if flag(network-uri)
151 Build-depends: network >= 2.6
152 , network-uri >= 2.6
153 else
154 Build-depends: network >= 2.4 && < 2.6
155
156
157 other-modules: Paths_bittorrent
158 Crypto.Cipher.Salsa
159 Crypto.Cipher.XSalsa
160 Crypto.ECC.Class
161 Crypto.ECC.Simple.Prim
162 Crypto.ECC.Simple.Types
163 Crypto.Error.Types
164 Crypto.Internal.ByteArray
165 Crypto.Internal.Compat
166 Crypto.Internal.DeepSeq
167 Crypto.Internal.Imports
168 Crypto.PubKey.Curve25519
169
170 C-sources: cbits/cryptonite_xsalsa.c, cbits/cryptonite_salsa.c
171
172 if !flag(dht-only)
173 exposed-modules: Network.BitTorrent
174 Network.BitTorrent.Client
175 Network.BitTorrent.Client.Types
176 Network.BitTorrent.Client.Handle
177 Network.BitTorrent.Exchange
178 Network.BitTorrent.Exchange.Bitfield
179 Network.BitTorrent.Exchange.Block
180 Network.BitTorrent.Exchange.Connection
181 Network.BitTorrent.Exchange.Download
182 Network.BitTorrent.Exchange.Manager
183 Network.BitTorrent.Exchange.Message
184 Network.BitTorrent.Exchange.Session
185 Network.BitTorrent.Tracker
186 Network.BitTorrent.Tracker.List
187 Network.BitTorrent.Tracker.Message
188 Network.BitTorrent.Tracker.RPC
189 Network.BitTorrent.Tracker.RPC.HTTP
190 Network.BitTorrent.Tracker.RPC.UDP
191 Network.BitTorrent.Tracker.Session
192 System.Torrent.Storage
193 if !flag(dht-only)
194 if flag(testing)
195 exposed-modules:
196 Network.BitTorrent.Internal.Cache
197 Network.BitTorrent.Internal.Progress
198 Network.BitTorrent.Internal.Types
199 System.Torrent.FileMap
200 System.Torrent.Tree
201 else
202 other-modules:
203 Network.BitTorrent.Internal.Cache
204 Network.BitTorrent.Internal.Progress
205 Network.BitTorrent.Internal.Types
206 System.Torrent.FileMap
207 System.Torrent.Tree
208 if flag(aeson)
209 build-depends: aeson, aeson-pretty, unordered-containers, vector
210 cpp-options: -DBENCODE_AESON
211 if flag(thread-debug)
212 exposed-modules: Control.Concurrent.Lifted.Instrument
213 Control.Concurrent.Async.Lifted.Instrument
214 cpp-options: -DTHREAD_DEBUG
215
216 if flag(builder)
217 build-depends: bytestring >= 0.9, bytestring-builder
218 else
219 build-depends: bytestring >= 0.10
220 if impl(ghc < 7.6)
221 build-depends: ghc-prim
222 ghc-options: -Wall -fdefer-typed-holes
223 ghc-prof-options:
224
225
226test-suite spec
227 if !flag(testing)
228 buildable: False
229 default-language: Haskell2010
230 default-extensions: OverloadedStrings
231 type: exitcode-stdio-1.0
232 hs-source-dirs: tests
233 main-is: Main.hs
234 other-modules: Spec
235 Config
236 Network.KRPCSpec
237 Network.KRPC.MethodSpec
238 Network.DatagramServer.MainlineSpec
239 Data.TorrentSpec
240 Network.BitTorrent.Client.HandleSpec
241 Network.BitTorrent.CoreSpec
242 Network.BitTorrent.DHTSpec
243 Network.BitTorrent.DHT.TestData
244 Network.BitTorrent.DHT.MessageSpec
245 Network.BitTorrent.DHT.QuerySpec
246 Network.DHT.RoutingSpec
247 Network.BitTorrent.DHT.SessionSpec
248 Network.BitTorrent.DHT.TokenSpec
249 Network.BitTorrent.Internal.CacheSpec
250 Network.BitTorrent.Internal.ProgressSpec
251 Network.BitTorrent.Tracker.TestData
252 Network.BitTorrent.Tracker.ListSpec
253 Network.BitTorrent.Tracker.MessageSpec
254 Network.BitTorrent.Tracker.RPCSpec
255 Network.BitTorrent.Tracker.RPC.HTTPSpec
256 Network.BitTorrent.Tracker.RPC.UDPSpec
257 Network.BitTorrent.Tracker.SessionSpec
258 Network.BitTorrent.Exchange.BitfieldSpec
259 Network.BitTorrent.Exchange.ConnectionSpec
260 Network.BitTorrent.Exchange.DownloadSpec
261 Network.BitTorrent.Exchange.MessageSpec
262 Network.BitTorrent.Exchange.SessionSpec
263 System.Torrent.StorageSpec
264 System.Torrent.FileMapSpec
265 build-depends: base == 4.*
266
267 -- * Concurrency
268 , async
269
270 -- * Data
271 , bytestring
272 , bytestring-arbitrary
273 , containers
274 , convertible
275 , data-default
276 , text
277 , time
278
279 -- * Serialization
280 , cereal
281
282 -- * Monads
283 , mtl
284 , resourcet
285 , conduit
286 , conduit-extra
287 , monad-loops
288 , monad-logger
289
290 -- * Network
291 , http-types
292 , iproute
293
294 -- * System
295 , optparse-applicative >= 0.8
296 , process
297 , directory
298 , filepath
299
300 -- * Testing
301 , hspec >= 1.8.2
302 , QuickCheck
303 , quickcheck-instances
304
305 -- * Bittorrent
306 , bittorrent
307 , temporary
308 , bencoding >= 0.4.3
309 if flag(network-uri)
310 Build-depends: network >= 2.6
311 , network-uri >= 2.6
312 else
313 Build-depends: network >= 2.4 && < 2.6
314 ghc-options: -Wall -fno-warn-orphans
315
316
317--benchmark bench
318-- default-language: Haskell2010
319-- default-extensions:
320-- type: exitcode-stdio-1.0
321-- hs-source-dirs: bench
322-- main-is: Main.hs
323-- build-depends: base
324-- , bytestring
325-- , cereal
326-- , network
327--
328-- , criterion
329-- , deepseq
330--
331-- , bittorrent
332-- ghc-options: -O2 -Wall -fno-warn-orphans
333benchmark bench
334 type: exitcode-stdio-1.0
335 default-language: Haskell2010
336 hs-source-dirs: bench
337 main-is: Main.hs
338 build-depends: base == 4.*
339 , bytestring
340 , mtl
341 , monad-logger
342 , criterion
343 ghc-options: -O2 -fforce-recomp
344
345executable dht
346 hs-source-dirs: examples
347 main-is: dht.hs
348 default-language: Haskell2010
349 build-depends: base, haskeline, network, bytestring, transformers
350
351executable dhtd
352 hs-source-dirs: examples
353 main-is: dhtd.hs
354 default-language: Haskell2010
355 build-depends: base, network, bytestring, hashable, deepseq
356 , aeson
357 , pretty
358 , bittorrent
359 , unix
360 , containers
361 , stm
362 , cereal
363 , bencoding
364 if flag(thread-debug)
365 build-depends: time
366 cpp-options: -DTHREAD_DEBUG
367
368-- Utility to work with torrent files.
369executable mktorrent
370 if !flag(examples)
371 buildable: False
372 default-language: Haskell2010
373 hs-source-dirs: examples
374 main-is: MkTorrent.hs
375 other-modules: Paths_bittorrent
376 build-depends: base == 4.*
377 , bytestring
378 , text
379 , pretty
380
381 , mtl
382 , conduit
383 , lens
384 , lifted-async
385 , parallel-io
386
387 , bittorrent
388
389 , filepath
390 , optparse-applicative
391 , hslogger
392-- if flag(network-uri)
393-- Build-depends:
394 , network >= 2.6
395 , network-uri >= 2.6
396-- else
397-- Build-depends: network >= 2.4 && < 2.6
398 ghc-options: -Wall -O2 -threaded
399
400-- nonfunctioning example of very basic bittorrent client
401executable client
402 if !flag(examples)
403 buildable: False
404 default-language: Haskell2010
405 hs-source-dirs: examples
406 main-is: Client.hs
407 build-depends: base == 4.*
408 , bittorrent
409 , mtl
410 , pretty
411 , data-default
412 , optparse-applicative
diff --git a/dev/README.md b/bittorrent/dev/README.md
index e2cc51a6..e2cc51a6 100644
--- a/dev/README.md
+++ b/bittorrent/dev/README.md
diff --git a/dev/add-sources.sh b/bittorrent/dev/add-sources.sh
index e125cade..e125cade 100755
--- a/dev/add-sources.sh
+++ b/bittorrent/dev/add-sources.sh
diff --git a/dev/bench b/bittorrent/dev/bench
index 5d03db3f..5d03db3f 100755
--- a/dev/bench
+++ b/bittorrent/dev/bench
diff --git a/dev/test b/bittorrent/dev/test
index 2eb85df2..2eb85df2 100755
--- a/dev/test
+++ b/bittorrent/dev/test
diff --git a/dev/update-dependencies.sh b/bittorrent/dev/update-dependencies.sh
index c83694c3..c83694c3 100755
--- a/dev/update-dependencies.sh
+++ b/bittorrent/dev/update-dependencies.sh
diff --git a/examples/Client.hs b/bittorrent/examples/Client.hs
index 26711676..26711676 100644
--- a/examples/Client.hs
+++ b/bittorrent/examples/Client.hs
diff --git a/examples/FS.hs b/bittorrent/examples/FS.hs
index 550d85a7..550d85a7 100644
--- a/examples/FS.hs
+++ b/bittorrent/examples/FS.hs
diff --git a/examples/MkTorrent.hs b/bittorrent/examples/MkTorrent.hs
index 88a84893..88a84893 100644
--- a/examples/MkTorrent.hs
+++ b/bittorrent/examples/MkTorrent.hs
diff --git a/res/dapper-dvd-amd64.iso.torrent b/bittorrent/res/dapper-dvd-amd64.iso.torrent
index 5713344b..5713344b 100644
--- a/res/dapper-dvd-amd64.iso.torrent
+++ b/bittorrent/res/dapper-dvd-amd64.iso.torrent
Binary files differ
diff --git a/res/pkg.torrent b/bittorrent/res/pkg.torrent
index be89e9e0..be89e9e0 100644
--- a/res/pkg.torrent
+++ b/bittorrent/res/pkg.torrent
Binary files differ
diff --git a/res/testfile b/bittorrent/res/testfile
index 8e984818..8e984818 100644
--- a/res/testfile
+++ b/bittorrent/res/testfile
Binary files differ
diff --git a/res/testfile.torrent b/bittorrent/res/testfile.torrent
index 297f56a2..297f56a2 100644
--- a/res/testfile.torrent
+++ b/bittorrent/res/testfile.torrent
diff --git a/src/Network/BitTorrent.hs b/bittorrent/src/Network/BitTorrent.hs
index 91a58887..91a58887 100644
--- a/src/Network/BitTorrent.hs
+++ b/bittorrent/src/Network/BitTorrent.hs
diff --git a/src/Network/BitTorrent/Client.hs b/bittorrent/src/Network/BitTorrent/Client.hs
index c84290dd..c84290dd 100644
--- a/src/Network/BitTorrent/Client.hs
+++ b/bittorrent/src/Network/BitTorrent/Client.hs
diff --git a/src/Network/BitTorrent/Client/Handle.hs b/bittorrent/src/Network/BitTorrent/Client/Handle.hs
index 66baac48..66baac48 100644
--- a/src/Network/BitTorrent/Client/Handle.hs
+++ b/bittorrent/src/Network/BitTorrent/Client/Handle.hs
diff --git a/src/Network/BitTorrent/Client/Types.hs b/bittorrent/src/Network/BitTorrent/Client/Types.hs
index e2ad858f..e2ad858f 100644
--- a/src/Network/BitTorrent/Client/Types.hs
+++ b/bittorrent/src/Network/BitTorrent/Client/Types.hs
diff --git a/src/Network/BitTorrent/Exchange.hs b/bittorrent/src/Network/BitTorrent/Exchange.hs
index 143bf090..143bf090 100644
--- a/src/Network/BitTorrent/Exchange.hs
+++ b/bittorrent/src/Network/BitTorrent/Exchange.hs
diff --git a/src/Network/BitTorrent/Exchange/Bitfield.hs b/bittorrent/src/Network/BitTorrent/Exchange/Bitfield.hs
index 7bae3475..7bae3475 100644
--- a/src/Network/BitTorrent/Exchange/Bitfield.hs
+++ b/bittorrent/src/Network/BitTorrent/Exchange/Bitfield.hs
diff --git a/src/Network/BitTorrent/Exchange/Block.hs b/bittorrent/src/Network/BitTorrent/Exchange/Block.hs
index bc9a3d24..bc9a3d24 100644
--- a/src/Network/BitTorrent/Exchange/Block.hs
+++ b/bittorrent/src/Network/BitTorrent/Exchange/Block.hs
diff --git a/src/Network/BitTorrent/Exchange/Connection.hs b/bittorrent/src/Network/BitTorrent/Exchange/Connection.hs
index 6804d0a2..6804d0a2 100644
--- a/src/Network/BitTorrent/Exchange/Connection.hs
+++ b/bittorrent/src/Network/BitTorrent/Exchange/Connection.hs
diff --git a/src/Network/BitTorrent/Exchange/Download.hs b/bittorrent/src/Network/BitTorrent/Exchange/Download.hs
index 981db2fb..981db2fb 100644
--- a/src/Network/BitTorrent/Exchange/Download.hs
+++ b/bittorrent/src/Network/BitTorrent/Exchange/Download.hs
diff --git a/src/Network/BitTorrent/Exchange/Manager.hs b/bittorrent/src/Network/BitTorrent/Exchange/Manager.hs
index 30a6a607..30a6a607 100644
--- a/src/Network/BitTorrent/Exchange/Manager.hs
+++ b/bittorrent/src/Network/BitTorrent/Exchange/Manager.hs
diff --git a/src/Network/BitTorrent/Exchange/Message.hs b/bittorrent/src/Network/BitTorrent/Exchange/Message.hs
index 2c6770f7..2c6770f7 100644
--- a/src/Network/BitTorrent/Exchange/Message.hs
+++ b/bittorrent/src/Network/BitTorrent/Exchange/Message.hs
diff --git a/src/Network/BitTorrent/Exchange/Session.hs b/bittorrent/src/Network/BitTorrent/Exchange/Session.hs
index 38a3c3a6..38a3c3a6 100644
--- a/src/Network/BitTorrent/Exchange/Session.hs
+++ b/bittorrent/src/Network/BitTorrent/Exchange/Session.hs
diff --git a/src/Network/BitTorrent/Internal/Cache.hs b/bittorrent/src/Network/BitTorrent/Internal/Cache.hs
index 8c74467a..8c74467a 100644
--- a/src/Network/BitTorrent/Internal/Cache.hs
+++ b/bittorrent/src/Network/BitTorrent/Internal/Cache.hs
diff --git a/src/Network/BitTorrent/Internal/Progress.hs b/bittorrent/src/Network/BitTorrent/Internal/Progress.hs
index 6ac889e2..6ac889e2 100644
--- a/src/Network/BitTorrent/Internal/Progress.hs
+++ b/bittorrent/src/Network/BitTorrent/Internal/Progress.hs
diff --git a/src/Network/BitTorrent/Internal/Types.hs b/bittorrent/src/Network/BitTorrent/Internal/Types.hs
index d157db3e..d157db3e 100644
--- a/src/Network/BitTorrent/Internal/Types.hs
+++ b/bittorrent/src/Network/BitTorrent/Internal/Types.hs
diff --git a/src/Network/BitTorrent/Readme.md b/bittorrent/src/Network/BitTorrent/Readme.md
index ebf9545e..ebf9545e 100644
--- a/src/Network/BitTorrent/Readme.md
+++ b/bittorrent/src/Network/BitTorrent/Readme.md
diff --git a/src/Network/BitTorrent/Tracker.hs b/bittorrent/src/Network/BitTorrent/Tracker.hs
index 6db67559..6db67559 100644
--- a/src/Network/BitTorrent/Tracker.hs
+++ b/bittorrent/src/Network/BitTorrent/Tracker.hs
diff --git a/src/Network/BitTorrent/Tracker/List.hs b/bittorrent/src/Network/BitTorrent/Tracker/List.hs
index 0eb11641..0eb11641 100644
--- a/src/Network/BitTorrent/Tracker/List.hs
+++ b/bittorrent/src/Network/BitTorrent/Tracker/List.hs
diff --git a/src/Network/BitTorrent/Tracker/Message.hs b/bittorrent/src/Network/BitTorrent/Tracker/Message.hs
index b9b6a9d3..b9b6a9d3 100644
--- a/src/Network/BitTorrent/Tracker/Message.hs
+++ b/bittorrent/src/Network/BitTorrent/Tracker/Message.hs
diff --git a/src/Network/BitTorrent/Tracker/RPC.hs b/bittorrent/src/Network/BitTorrent/Tracker/RPC.hs
index 45fef05e..45fef05e 100644
--- a/src/Network/BitTorrent/Tracker/RPC.hs
+++ b/bittorrent/src/Network/BitTorrent/Tracker/RPC.hs
diff --git a/src/Network/BitTorrent/Tracker/RPC/HTTP.hs b/bittorrent/src/Network/BitTorrent/Tracker/RPC/HTTP.hs
index 9b6e056a..9b6e056a 100644
--- a/src/Network/BitTorrent/Tracker/RPC/HTTP.hs
+++ b/bittorrent/src/Network/BitTorrent/Tracker/RPC/HTTP.hs
diff --git a/src/Network/BitTorrent/Tracker/RPC/UDP.hs b/bittorrent/src/Network/BitTorrent/Tracker/RPC/UDP.hs
index 31b6b870..31b6b870 100644
--- a/src/Network/BitTorrent/Tracker/RPC/UDP.hs
+++ b/bittorrent/src/Network/BitTorrent/Tracker/RPC/UDP.hs
diff --git a/src/Network/BitTorrent/Tracker/Session.hs b/bittorrent/src/Network/BitTorrent/Tracker/Session.hs
index aa4a832f..aa4a832f 100644
--- a/src/Network/BitTorrent/Tracker/Session.hs
+++ b/bittorrent/src/Network/BitTorrent/Tracker/Session.hs
diff --git a/src/System/Torrent/FileMap.hs b/bittorrent/src/System/Torrent/FileMap.hs
index 6e8d7f5a..6e8d7f5a 100644
--- a/src/System/Torrent/FileMap.hs
+++ b/bittorrent/src/System/Torrent/FileMap.hs
diff --git a/src/System/Torrent/Storage.hs b/bittorrent/src/System/Torrent/Storage.hs
index 1d77e55d..1d77e55d 100644
--- a/src/System/Torrent/Storage.hs
+++ b/bittorrent/src/System/Torrent/Storage.hs
diff --git a/src/System/Torrent/Tree.hs b/bittorrent/src/System/Torrent/Tree.hs
index 41cfb360..41cfb360 100644
--- a/src/System/Torrent/Tree.hs
+++ b/bittorrent/src/System/Torrent/Tree.hs
diff --git a/tests/Config.hs b/bittorrent/tests/Config.hs
index 55e30867..55e30867 100644
--- a/tests/Config.hs
+++ b/bittorrent/tests/Config.hs
diff --git a/tests/Data/TorrentSpec.hs b/bittorrent/tests/Data/TorrentSpec.hs
index b4a280e4..b4a280e4 100644
--- a/tests/Data/TorrentSpec.hs
+++ b/bittorrent/tests/Data/TorrentSpec.hs
diff --git a/tests/Main.hs b/bittorrent/tests/Main.hs
index 5ed953da..5ed953da 100644
--- a/tests/Main.hs
+++ b/bittorrent/tests/Main.hs
diff --git a/tests/Network/BitTorrent/Client/HandleSpec.hs b/bittorrent/tests/Network/BitTorrent/Client/HandleSpec.hs
index d51bab02..d51bab02 100644
--- a/tests/Network/BitTorrent/Client/HandleSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Client/HandleSpec.hs
diff --git a/tests/Network/BitTorrent/CoreSpec.hs b/bittorrent/tests/Network/BitTorrent/CoreSpec.hs
index 5bf900b2..5bf900b2 100644
--- a/tests/Network/BitTorrent/CoreSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/CoreSpec.hs
diff --git a/tests/Network/BitTorrent/DHT/MessageSpec.hs b/bittorrent/tests/Network/BitTorrent/DHT/MessageSpec.hs
index 6f3c7489..6f3c7489 100644
--- a/tests/Network/BitTorrent/DHT/MessageSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/DHT/MessageSpec.hs
diff --git a/tests/Network/BitTorrent/DHT/QuerySpec.hs b/bittorrent/tests/Network/BitTorrent/DHT/QuerySpec.hs
index 93f78263..93f78263 100644
--- a/tests/Network/BitTorrent/DHT/QuerySpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/DHT/QuerySpec.hs
diff --git a/tests/Network/BitTorrent/DHT/RoutingSpec.hs b/bittorrent/tests/Network/BitTorrent/DHT/RoutingSpec.hs
index 07a906ba..07a906ba 100644
--- a/tests/Network/BitTorrent/DHT/RoutingSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/DHT/RoutingSpec.hs
diff --git a/tests/Network/BitTorrent/DHT/SessionSpec.hs b/bittorrent/tests/Network/BitTorrent/DHT/SessionSpec.hs
index 32e4c158..32e4c158 100644
--- a/tests/Network/BitTorrent/DHT/SessionSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/DHT/SessionSpec.hs
diff --git a/tests/Network/BitTorrent/DHT/TestData.hs b/bittorrent/tests/Network/BitTorrent/DHT/TestData.hs
index e9473cbb..e9473cbb 100644
--- a/tests/Network/BitTorrent/DHT/TestData.hs
+++ b/bittorrent/tests/Network/BitTorrent/DHT/TestData.hs
diff --git a/tests/Network/BitTorrent/DHT/TokenSpec.hs b/bittorrent/tests/Network/BitTorrent/DHT/TokenSpec.hs
index a45d2212..a45d2212 100644
--- a/tests/Network/BitTorrent/DHT/TokenSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/DHT/TokenSpec.hs
diff --git a/tests/Network/BitTorrent/DHTSpec.hs b/bittorrent/tests/Network/BitTorrent/DHTSpec.hs
index 77160eb5..77160eb5 100644
--- a/tests/Network/BitTorrent/DHTSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/DHTSpec.hs
diff --git a/tests/Network/BitTorrent/Exchange/BitfieldSpec.hs b/bittorrent/tests/Network/BitTorrent/Exchange/BitfieldSpec.hs
index 1ba772f6..1ba772f6 100644
--- a/tests/Network/BitTorrent/Exchange/BitfieldSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Exchange/BitfieldSpec.hs
diff --git a/tests/Network/BitTorrent/Exchange/BlockSpec.hs b/bittorrent/tests/Network/BitTorrent/Exchange/BlockSpec.hs
index 2dc8e0b8..2dc8e0b8 100644
--- a/tests/Network/BitTorrent/Exchange/BlockSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Exchange/BlockSpec.hs
diff --git a/tests/Network/BitTorrent/Exchange/ConnectionSpec.hs b/bittorrent/tests/Network/BitTorrent/Exchange/ConnectionSpec.hs
index d654cda1..d654cda1 100644
--- a/tests/Network/BitTorrent/Exchange/ConnectionSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Exchange/ConnectionSpec.hs
diff --git a/tests/Network/BitTorrent/Exchange/DownloadSpec.hs b/bittorrent/tests/Network/BitTorrent/Exchange/DownloadSpec.hs
index d46f2034..d46f2034 100644
--- a/tests/Network/BitTorrent/Exchange/DownloadSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Exchange/DownloadSpec.hs
diff --git a/tests/Network/BitTorrent/Exchange/MessageSpec.hs b/bittorrent/tests/Network/BitTorrent/Exchange/MessageSpec.hs
index d615b1ff..d615b1ff 100644
--- a/tests/Network/BitTorrent/Exchange/MessageSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Exchange/MessageSpec.hs
diff --git a/tests/Network/BitTorrent/Exchange/SessionSpec.hs b/bittorrent/tests/Network/BitTorrent/Exchange/SessionSpec.hs
index bf5b95a1..bf5b95a1 100644
--- a/tests/Network/BitTorrent/Exchange/SessionSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Exchange/SessionSpec.hs
diff --git a/tests/Network/BitTorrent/Internal/CacheSpec.hs b/bittorrent/tests/Network/BitTorrent/Internal/CacheSpec.hs
index 337e7add..337e7add 100644
--- a/tests/Network/BitTorrent/Internal/CacheSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Internal/CacheSpec.hs
diff --git a/tests/Network/BitTorrent/Internal/ProgressSpec.hs b/bittorrent/tests/Network/BitTorrent/Internal/ProgressSpec.hs
index acbfd84c..acbfd84c 100644
--- a/tests/Network/BitTorrent/Internal/ProgressSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Internal/ProgressSpec.hs
diff --git a/tests/Network/BitTorrent/Tracker/ListSpec.hs b/bittorrent/tests/Network/BitTorrent/Tracker/ListSpec.hs
index bba9d0e2..bba9d0e2 100644
--- a/tests/Network/BitTorrent/Tracker/ListSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Tracker/ListSpec.hs
diff --git a/tests/Network/BitTorrent/Tracker/MessageSpec.hs b/bittorrent/tests/Network/BitTorrent/Tracker/MessageSpec.hs
index 29854d58..29854d58 100644
--- a/tests/Network/BitTorrent/Tracker/MessageSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Tracker/MessageSpec.hs
diff --git a/tests/Network/BitTorrent/Tracker/RPC/HTTPSpec.hs b/bittorrent/tests/Network/BitTorrent/Tracker/RPC/HTTPSpec.hs
index e928f917..e928f917 100644
--- a/tests/Network/BitTorrent/Tracker/RPC/HTTPSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Tracker/RPC/HTTPSpec.hs
diff --git a/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs b/bittorrent/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs
index 73acb3fa..73acb3fa 100644
--- a/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Tracker/RPC/UDPSpec.hs
diff --git a/tests/Network/BitTorrent/Tracker/RPCSpec.hs b/bittorrent/tests/Network/BitTorrent/Tracker/RPCSpec.hs
index dfc13a1e..dfc13a1e 100644
--- a/tests/Network/BitTorrent/Tracker/RPCSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Tracker/RPCSpec.hs
diff --git a/tests/Network/BitTorrent/Tracker/SessionSpec.hs b/bittorrent/tests/Network/BitTorrent/Tracker/SessionSpec.hs
index 72936ee7..72936ee7 100644
--- a/tests/Network/BitTorrent/Tracker/SessionSpec.hs
+++ b/bittorrent/tests/Network/BitTorrent/Tracker/SessionSpec.hs
diff --git a/tests/Network/BitTorrent/Tracker/TestData.hs b/bittorrent/tests/Network/BitTorrent/Tracker/TestData.hs
index b95e2df4..b95e2df4 100644
--- a/tests/Network/BitTorrent/Tracker/TestData.hs
+++ b/bittorrent/tests/Network/BitTorrent/Tracker/TestData.hs
diff --git a/tests/Network/KRPC/MessageSpec.hs b/bittorrent/tests/Network/KRPC/MessageSpec.hs
index 498ef679..498ef679 100644
--- a/tests/Network/KRPC/MessageSpec.hs
+++ b/bittorrent/tests/Network/KRPC/MessageSpec.hs
diff --git a/tests/Network/KRPC/MethodSpec.hs b/bittorrent/tests/Network/KRPC/MethodSpec.hs
index c1c58282..c1c58282 100644
--- a/tests/Network/KRPC/MethodSpec.hs
+++ b/bittorrent/tests/Network/KRPC/MethodSpec.hs
diff --git a/tests/Network/KRPCSpec.hs b/bittorrent/tests/Network/KRPCSpec.hs
index eabcc817..eabcc817 100644
--- a/tests/Network/KRPCSpec.hs
+++ b/bittorrent/tests/Network/KRPCSpec.hs
diff --git a/tests/Readme.md b/bittorrent/tests/Readme.md
index 7a9d8914..7a9d8914 100644
--- a/tests/Readme.md
+++ b/bittorrent/tests/Readme.md
diff --git a/tests/Spec.hs b/bittorrent/tests/Spec.hs
index b4e92e75..b4e92e75 100644
--- a/tests/Spec.hs
+++ b/bittorrent/tests/Spec.hs
diff --git a/tests/System/Torrent/FileMapSpec.hs b/bittorrent/tests/System/Torrent/FileMapSpec.hs
index 29252925..29252925 100644
--- a/tests/System/Torrent/FileMapSpec.hs
+++ b/bittorrent/tests/System/Torrent/FileMapSpec.hs
diff --git a/tests/System/Torrent/StorageSpec.hs b/bittorrent/tests/System/Torrent/StorageSpec.hs
index b5e49078..b5e49078 100644
--- a/tests/System/Torrent/StorageSpec.hs
+++ b/bittorrent/tests/System/Torrent/StorageSpec.hs
diff --git a/sub/bencoding b/sub/bencoding
deleted file mode 160000
Subproject dafb6cf53cb919c0c45ff445f5f89129ddaa459
diff --git a/sub/krpc b/sub/krpc
deleted file mode 160000
Subproject 827a57f66a2ea0087d5eae9de75abae27edbce2
diff --git a/sub/optparse-applicative b/sub/optparse-applicative
deleted file mode 160000
Subproject af598b6821702ef97f22d9daf0042b1d2c0345a