Spellbind it under Cabal
authorEugene Crosser <crosser@average.org>
Thu, 24 Apr 2014 15:51:44 +0000 (19:51 +0400)
committerEugene Crosser <crosser@average.org>
Thu, 24 Apr 2014 15:51:44 +0000 (19:51 +0400)
README.md
Setup.hs [new file with mode: 0644]
pdns-pipe-nmc.cabal [new file with mode: 0644]
pdns-pipe-nmc.hs

index 462e33436fee9234ff6ed20ea6b44bb85c096a57..bbb361c7bd6e9bdd66fc23969c1b5a53c3b409d6 100644 (file)
--- a/README.md
+++ b/README.md
@@ -15,16 +15,23 @@ frontend, and has simple backend interface.
 
 ## Building
 
-The program is built as a single executable to be run by PowerDns's
-pipe backend. It is written in [Haskell](http://www.haskell.org/).
-There is no `cabal` configuration at the moment, so to build it,
-simply run
+The program is a single executable to be run by PowerDns's pipe
+backend. It is written in [Haskell](http://www.haskell.org/).
+If you have haskell installed on your system, run
 
 ```
-ghc --make pdns-pipe-nmc
+cabal configure
 ```
 
-and install any missing packages it complains about.
+followed by
+
+```
+cabal build
+```
+
+and hopefully it will tell you what packages are missing. You can
+install them either with your OS package manager (if they exist in
+your distribution) or with `cabal install`.
 
 ## Installing
 
diff --git a/Setup.hs b/Setup.hs
new file mode 100644 (file)
index 0000000..9a994af
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/pdns-pipe-nmc.cabal b/pdns-pipe-nmc.cabal
new file mode 100644 (file)
index 0000000..7b0c66c
--- /dev/null
@@ -0,0 +1,45 @@
+name:                pdns-pipe-nmc
+version:             0.9.0.0
+synopsis:            Namecoin pipe backend for PowerDNS
+description:         Realtime bridge between Namecoin "d/" namespace
+                     (http://namecoin.info/) and DNS implemented as
+                     a pipe backend coprocess for PowerDns
+                     (http://www.powerdns.com/).
+homepage:            http://www.average.org/pdns-pipe-nmc/
+license:             OtherLicense
+license-file:        LICENSE
+author:              Eugene Crosser
+maintainer:          crosser@average.org
+copyright:           2014, Eugene Crosser
+category:            Database
+build-type:          Simple
+extra-source-files:  README.md
+cabal-version:       >=1.10
+
+executable pdns-pipe-nmc
+  main-is:             pdns-pipe-nmc.hs
+  other-modules:       Config
+                     , JsonRpcClient
+                     , NmcDom
+                     , NmcRpc
+                     , NmcTransform
+                     , PowerDns
+  other-extensions:    OverloadedStrings
+  build-depends:       base >=4.6 && <4.7
+                     , bytestring >=0.10 && <0.11
+                     , text >=0.11 && <0.12
+                     , split >=0.2 && <0.3
+                     , containers >=0.5 && <0.6
+                     , aeson >=0.6 && <0.7
+                     , ConfigFile >=1.1 && <1.2
+                     , MissingH >=1.2 && <1.3
+                     , vector >=0.10 && <0.11
+                     , unordered-containers >=0.2 && <0.3
+                     , data-default-class >=0.0.1 && <1.0
+                     , http-client >=0.3 && <1.0
+                     , http-types >=0.8 && <1.0
+                     , mtl >=2.0 && <3.0
+                     , pretty-show >=1.2 && <2.0
+                     , time >=1.4 && <2.0
+  -- hs-source-dirs:      
+  default-language:    Haskell98
index eed57950d49f709b332473de9b14f83d688c6ae4..49cce861d6140d489c6541cb02d02cfe62f6f4e9 100644 (file)
@@ -21,7 +21,7 @@ import Data.Map.Lazy (Map, empty, lookup, insert, delete, size)
 import Data.Aeson (encode, decode, Value(..))
 import Network.HTTP.Types
 import Network.HTTP.Client
-import Data.Default (def)
+import Data.Default.Class (def)
 
 import JsonRpcClient
 import Config