2008-03-11 10:18:14 +01:00
# contains libraries and maybe applications in the future. That's why I'm putting it into misc. Feel free to move it somewhere else
2008-04-11 02:40:10 +02:00
# TODO use nix names (regexCompat instead of regex_compat)
2008-03-11 10:18:14 +01:00
args : ghc : with args ;
2008-03-13 10:46:12 +01:00
2008-03-11 10:18:14 +01:00
rec {
2008-03-13 10:46:12 +01:00
# name (using lowercase letters everywhere because using installing packages having different capitalization is discouraged) - this way there is not that much to remember?
2008-03-11 10:18:14 +01:00
2008-03-13 10:46:12 +01:00
cabal_darcs_name = " c a b a l - d a r c s " ;
2008-03-11 10:18:14 +01:00
2008-03-13 10:46:12 +01:00
# introducing p here to speed things up.
# It merges derivations (defined below) and additional inputs. I hope that using as few nix functions as possible results in greates speed?
# unfortunately with x; won't work because it forces nix to evaluate all attributes of x which would lead to infinite recursion
pkgs = let x = ghc . core_libs // derivations ;
2008-03-20 20:29:52 +01:00
wxVersion = " 0 . 1 0 . 3 " ;
wxSrc = fetchurl { url = " m i r r o r : / / s o u r c e f o r g e / w x h a s k e l l / w x h a s k e l l - s r c - ${ wxVersion } . t a r . g z " ;
2008-04-11 02:40:10 +02:00
sha256 = " 2 a 9 b 7 0 b 9 2 c 9 6 e f 1 a a 3 e a a 3 4 2 6 e 2 2 4 c 0 9 9 4 c 2 4 b f d a c c b f 2 b 6 7 3 e d e f 6 5 b a 3 c f f c e " ; } ;
2008-03-13 10:46:12 +01:00
inherit ( bleedingEdgeRepos ) sourceByName ;
in {
# ghc extra packages
mtl = { name = " m t l - 1 . 1 . 0 . 0 " ; srcDir = " l i b r a r i e s / m t l " ; p_deps = [ x . base ] ; src = ghc . extra_src ; } ;
2008-03-20 20:29:52 +01:00
parsec = { name = " p a r s e c - 2 . 1 . 0 . 0 " ; srcDir = " l i b r a r i e s / p a r s e c " ; p_deps = [ x . base ] ; src = ghc . extra_src ; } ;
2008-04-11 02:40:10 +02:00
network = { name = " n e t w o r k - 2 . 1 . 0 . 0 " ; srcDir = " l i b r a r i e s / n e t w o r k " ; p_deps = [ x . base x . parsec3 x . haskell98 ] ; src = ghc . extra_src ; } ;
2008-03-13 10:46:12 +01:00
regex_base = { name = " r e g e x - b a s e - 0 . 7 2 . 0 . 1 " ; srcDir = " l i b r a r i e s / r e g e x - b a s e " ; p_deps = [ x . base x . array x . bytestring x . haskell98 ] ; src = ghc . extra_src ; } ;
regex_posix = { name = " r e g e x - p o s i x - 0 . 7 2 . 0 . 2 " ; srcDir = " l i b r a r i e s / r e g e x - p o s i x " ; p_deps = [ x . regex_base x . haskell98 ] ; src = ghc . extra_src ; } ;
regex_compat = { name = " r e g e x - c o m p a t - 0 . 7 1 . 0 . 1 " ; srcDir = " l i b r a r i e s / r e g e x - c o m p a t " ; p_deps = [ x . base x . regex_posix x . regex_base x . haskell98 ] ; src = ghc . extra_src ; } ;
stm = { name = " s t m - 2 . 1 . 1 . 0 " ; srcDir = " l i b r a r i e s / s t m " ; p_deps = [ x . base x . array ] ; src = ghc . extra_src ; } ;
hunit = { name = " H U n i t - 1 . 2 . 0 . 0 " ; srcDir = " l i b r a r i e s / H U n i t " ; p_deps = [ x . base ] ; src = ghc . extra_src ; } ;
quickcheck = { name = " Q u i c k C h e c k - 1 . 1 . 0 . 0 " ; srcDir = " l i b r a r i e s / Q u i c k C h e c k " ; p_deps = [ x . base x . random ] ; src = ghc . extra_src ; } ;
2008-03-11 10:18:14 +01:00
2008-03-13 10:46:12 +01:00
# other pacakges (hackage etc)
2008-04-11 02:40:10 +02:00
timeout = { name = " t i m e o u t - 0 . 1 . 2 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/control-timeout/0.1.2/control-timeout-0.1.2.tar.gz ; sha256 = " 1 g 1 x 6 c 4 d a f c k w c w 4 8 v 8 3 f 3 n m 2 s x v 8 k y n w v 8 i b 2 3 6 a y 9 1 3 y c g a y v g " ; } ; p_deps = [ x . base x . time x . stm ] ; } ;
2008-03-20 20:29:52 +01:00
parsec3 = { name = " p a r s e c - 3 . 0 . 0 " ; p_deps = [ x . base x . mtl x . bytestring ] ; src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / p a r s e c / 3 . 0 . 0 / p a r s e c - 3 . 0 . 0 . t a r . g z " ; sha256 = " 0 f q r y y 0 9 y 8 h 7 z 0 h l a y g 5 g p a v g h g w a 0 g 3 b l d y n w l 1 7 k s 8 l 8 7 y k j 7 a " ; } ; } ;
2008-03-13 10:46:12 +01:00
binary = rec { name = " b i n a r y - 0 . 4 . 1 " ; p_deps = [ x . base x . bytestring x . containers x . array ] ;
src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / b i n a r y / 0 . 4 . 1 / b i n a r y - 0 . 4 . 1 . t a r . g z " ;
sha256 = " 0 j g 5 i 1 k 5 f z 0 x p 1 p i a a f 5 b z h a g q v f l 3 i 7 3 h l p d m g s 4 g c 4 0 r 1 q 4 x 5 v " ; } ;
} ;
# using different name to not clash with postgresql
postgresql_bindings = rec { name = " P o s t g r e S Q L - 0 . 2 " ; p_deps = [ x . base x . mtl postgresql x . haskell98 ] ;
src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / P o s t g r e S Q L / 0 . 2 / P o s t g r e S Q L - 0 . 2 . t a r . g z " ;
sha256 = " 0 p 5 q 3 y c 8 y m g z z l c 6 0 0 h 4 m b 9 w 8 6 n c r g j d b p q f i 4 9 b 2 j q v k c x 5 b w r r " ; } ;
pass = {
inherit postgresql ;
patchPhase = " e c h o ' e x t e n s i o n s : M u l t i P a r a m T y p e C l a s s e s F o r e i g n F u n c t i o n I n t e r f a c e E m p t y D a t a D e c l s G e n e r a l i z e d N e w t y p e D e r i v i n g F l e x i b l e I n s t a n c e s U n d e c i d a b l e I n s t a n c e s ' > > P o s t g r e S Q L . c a b a l
echo \ " e x t r a - l i b - d i r s : \$ p o s t g r e s q l / l i b \" > > P o s t g r e S Q L . c a b a l
echo \ " e x t r a - l i b r a r i e s : p q \" > > P o s t g r e S Q L . c a b a l
" ;
2008-03-11 10:18:14 +01:00
2008-03-13 10:46:12 +01:00
} ;
} ;
#wash = rec { name = "WashNGo-2.12"; p_deps = [x.base x.mtl x.haskell98 ];
# src = fetchurl { url = "http://www.informatik.uni-freiburg.de/~thiemann/WASH/WashNGo-2.12.tgz";
# sha256 = "1dyc2062jpl3xdlm0n7xkz620h060g2i5ghnb32cn95brcj9fgrz"; };
# patches = ../misc/WASHNGo_Patch_ghc682;
# };
2008-03-11 10:18:14 +01:00
2008-03-13 10:46:12 +01:00
hsql = rec { name = " h s q l - 1 . 7 " ; p_deps = [ x . base x . mtl x . haskell98 x . old_time ] ;
src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / h s q l / 1 . 7 / h s q l - 1 . 7 . t a r . g z " ;
sha256 = " 0 j 2 l k v g 5 c 0 x 5 g f 2 s y 7 z m m g r d a 0 c 3 l 7 3 i 9 d 6 h y k a 2 f 1 5 d 5 n 1 r f j c 9 " ; } ;
pass = { patchPhase = "
sed - e ' s = build-depends:.*=build-depends: base , old-locale , old-time = ' - i hsql . cabal
echo \ " e x t e n s i o n s :
ForeignFunctionInterface , TypeSynonymInstances , CPP , ExistentialQuantification , GeneralizedNewtypeDeriving , PatternSignatures , ScopedTypeVariables , Rank2Types , DeriveDataTypeable \ " > > h s q l . c a b a l
" ; } ;
2008-03-11 10:18:14 +01:00
} ;
2008-04-11 02:40:10 +02:00
hsqlMysql = { name = " h s q l - m y s q l - 1 . 7 " ; src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / h s q l - m y s q l / 1 . 7 / h s q l - m y s q l - 1 . 7 . t a r . g z " ; sha256 = " 1 d f 2 5 b f 9 w b 6 m b w r 1 j s b a b y 9 x g w s x 2 7 z 0 q z v h z 9 x 1 v d 2 p 4 i 8 m 9 y q 8 " ; } ; p_deps = [ x . base x . hsql x . old_time ] ;
pass = { buildInputs = [ mysql zlib ] ;
patchPhase = "
echo \ " e x t r a - l i b - d i r s : ${ zlib } / l i b \" > > h s q l - m y s q l . c a b a l
unset patchPhase ; patchPhase
" ;
patches = ./hsql-mysql-patch ;
} ;
} ;
2008-03-13 10:46:12 +01:00
#hsql_postgresql = rec { name = "hsql-postgresql-1.7"; p_deps = [ x.base x.mtl x.haskell98 x.old_time x.hsql postgresql ];
# src = fetchurl { url = "";
# sha256 = "180c8acp4p9hsl5h8ryhhli9mlqcmcfjqaxzr7sa074gpzq29vfc"; };
# pass = { patchPhase = "
# sed -e 's=build-depends:.*=build-depends: base, old-locale, old-time=' -i hsql.cabal
# echo \"extensions:
# ForeignFunctionInterface, TypeSynonymInstances, CPP, ExistentialQuantification, GeneralizedNewtypeDeriving, PatternSignatures, ScopedTypeVariables, Rank2Types, DeriveDataTypeable \" >> hsql.cabal
# "; };
# };
# I'm getting a glibc error when compiling - where does it come from ?
2008-03-11 16:50:20 +01:00
takusen = rec { name = " t a k u s e n - 0 . 8 " ; p_deps = [ x . base x . mtl x . haskell98 x . time postgresql sqlite ] ;
src = sourceByName " t a k u s e n " ;
pass = {
inherit postgresql sqlite ;
patch = ./takusen_setup_patch ;
# no ODBC, Oracle support in nix
patchPhase = " p a t c h - p 1 S e t u p . h s < \$ p a t c h
sed - e ' /ODBC/d ' - i Takusen . cabal
sed - e ' /Oracle/d ' - i Takusen . cabal
sed - e \ " s = p g _ p a t h = \$ p o s t g r e s q l = \" - e \" s = s q l i t e _ p a t h = \$ s q l i t e = \" - i S e t u p . h s
" ;
} ;
} ;
2008-03-13 10:46:12 +01:00
hdbc = rec { name = " h d b c - 1 . 1 . 4 . 0 " ; p_deps = [ x . base x . mtl x . haskell98 x . time x . bytestring postgresql sqlite ] ;
src = fetchurl {
url = http://software.complete.org/hdbc/static/download_area/1.1.4.0/hdbc_1.1.4.0.tar.gz ;
2008-04-11 02:40:10 +02:00
2008-03-13 10:46:12 +01:00
sha256 = " 6 7 7 e 7 8 9 0 9 4 e 3 7 9 0 b e 2 4 6 2 3 3 1 b 6 c 0 f 9 7 b 4 a c 1 d 6 5 c 8 e b 9 8 c f 7 d 8 b 8 3 d 5 f 3 f 9 f b d 3 9 " ;
} ;
pass = {
inherit postgresql sqlite ;
#patch = ./takusen_setup_patch;
# no ODBC, Oracle support in nix
#patchPhase = "patch -p1 Setup.hs < \$patch
# sed -e '/ODBC/d' -i Takusen.cabal
# sed -e '/Oracle/d' -i Takusen.cabal
# sed -e \"s=pg_path=\$postgresql=\" -e \"s=sqlite_path=\$sqlite=\" -i Setup.hs
# ";
} ;
2008-03-11 10:18:14 +01:00
} ;
2008-04-11 02:40:10 +02:00
hdbc_postgresql = { name = " h d b c - p o s t g r e s q l " ; p_deps = [ x . hdbc x . parsec3 postgresql ] ;
2008-03-13 10:46:12 +01:00
src = fetchurl {
url = http://hackage.haskell.org/packages/archive/HDBC-postgresql/1.1.4.0/HDBC-postgresql-1.1.4.0.tar.gz ;
sha256 = " 1 b 9 l x j 5 5 j v v q 7 6 l l 8 d r 4 k f b 6 a j 7 r 0 b a j 4 g h 8 w k h g w c 1 k d 4 1 s x 7 h 3 " ; } ;
pass = {
patches = [ ./hdbc_postgresql_patch ] ;
patchPhase = " u n s e t p a t c h P h a s e ; p a t c h P h a s e ;
sed - e ' /Cabal-Ver/d ' - i HDBC-postgresql . cabal " ;
} ;
} ;
gtk2hs = rec { name = " g t k 2 h s - 0 . 9 . 1 2 . 1 " ; p_deps = [ x . haskell98 x . mtl x . bytestring pkgconfig ] ++ ( with gtkLibs ; [ glib pango gtk gnome . glib ] ) ;
src = fetchurl {
url = " h t t p : / / d o w n l o a d s . s o u r c e f o r g e . n e t / g t k 2 h s / ${ name } . t a r . g z " ;
sha256 = " 1 1 0 z 6 v 9 g z h g 6 n z l z 5 g s 8 a a f m i p b v a 6 r c 5 0 b 8 z 1 j g q 0 k 2 g 2 5 h f y 2 2 " ; } ;
pass = {
buildPhase = "
createEmptyPackageDatabaseAndSetupHook
export GHC_PACKAGE_PATH
./configure - - prefix = \ $ out - - with-user-pkgconf = local-pkg-db - - with-pkgconf = \ $ PACKAGE_DB
make
ensureDir \ $ out
make install
" ;
} ;
} ;
2008-03-20 20:29:52 +01:00
hspread = { name = " h s p r e a d - 0 . 3 " ; p_deps = [ x . base x . bytestring x . network x . binary ] ;
src = fetchurl {
url = http://hackage.haskell.org/packages/archive/hspread/0.3/hspread-0.3.tar.gz ;
sha256 = " 0 l w q 7 v 7 p 6 a k y k c s z 6 i n k g 9 9 h 3 z 7 a b 1 g s 5 n k j j l g s b y q b w v i m m f 5 n " ; } ;
pass = {
} ;
} ;
wxcore = rec {
2008-04-11 02:40:10 +02:00
name = " w x h a s k e l - ${ wxVersion } " ; p_deps = [ x . haskell98 x . mtl x . bytestring x . parsec3 pkgconfig wxGTK ] ++ ( with gtkLibs ; [ glib pango gtk gnome . glib ] ) ;
2008-03-20 20:29:52 +01:00
src = wxSrc ;
pass = {
buildInputs = [ unzip ] ;
buildPhase = "
createEmptyPackageDatabaseAndSetupHook
export GHC_PACKAGE_PATH
sed - e ' s/which/type -p/g ' configure
./configure - - prefix = \ $ out - - package-conf = \ $ PACKAGE_DB
make
ensureDir \ $ out
make install
" ;
} ;
} ;
2008-04-11 02:40:10 +02:00
wx = { name = " w x - ${ wxVersion } " ; src = wxSrc ; srcDir = " w x " ; p_deps = [ x . haskell98 x . mtl x . bytestring x . parsec3 x . wxcore pkgconfig wxGTK ] ++ ( with gtkLibs ; [ glib pango gtk gnome . glib ] ) ;
# TODO rempove pwd
2008-03-20 20:29:52 +01:00
pass = { patchPhase = " p w d ; c p { , w x / } l i c e n s e . t x t " ; } ;
} ;
2008-04-11 02:40:10 +02:00
typecompose = { name = " T y p e C o m p o s e - 0 . 4 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/TypeCompose/0.5/TypeCompose-0.5.tar.gz ; sha256 = " 0 m z j v w j i x k p 0 j x f z x j w 1 p q 8 k 1 s m 6 1 s b 5 y 9 6 f k 0 7 x m 9 1 n n 4 s g p a q j " ; } ; p_deps = [ x . base ] ; } ;
reactive = { name = " r e a c t i v e - 0 . 5 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/reactive/0.5/reactive-0.5.tar.gz ; sha256 = " 1 g i v 5 p 2 n k s 4 r w 6 8 3 b k m n j m d a n p x 8 m g q i 6 d z j 0 9 9 c j b k 9 3 j a g 9 5 8 1 " ; } ; p_deps = [ x . base x . typecompose ] ; } ;
phooey = { name = " p h o o e y - 2 . 0 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/phooey/2.0/phooey-2.0.tar.gz ; sha256 = " 1 b b 6 c n 2 v k 7 b 5 7 g a x h 8 6 3 y m i d b 4 l 7 l d i w c n p i f 7 9 0 r d 4 b q 4 4 f w f v f " ; } ; p_deps = [ x . base x . typecompose x . reactive x . wx x . wxcore ] ; } ;
# depreceated (This is the deprecated Data.FiniteMap library, often useful to get old code to build when you are too lazy to update it.)
finitemap = { name = " f i n i t e m a p - 0 . 1 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/FiniteMap/0.1/FiniteMap-0.1.tar.gz ; sha256 = " 1 k f 6 3 8 h 5 g s c 8 f k l h a w 2 j i a d 1 r 0 s s g j 8 z k f m z y w p 8 5 l r x 5 z 5 2 9 g k y " ; } ; p_deps = [ x . base x . haskell98 ] ; } ;
2008-03-20 20:29:52 +01:00
2008-04-11 02:40:10 +02:00
parallel = { name = " p a r a l l e l - 1 . 0 . 0 . 0 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/parallel/1.0.0.0/parallel-1.0.0.0.tar.gz ; sha256 = " 0 f 6 g 7 2 4 z p d q h j c f v 0 6 4 y k n r d x 4 r j a a j 7 1 b f x 5 7 c 8 y w i z i f c w x p 4 h " ; } ; p_deps = [ x . base ] ; } ;
httpSimple = { name = " H T T P - S i m p l e - 0 . 1 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/HTTP-Simple/0.1/HTTP-Simple-0.1.tar.gz ; sha256 = " 0 m b s z g x 8 x 0 2 w r y 2 h 8 j h d c 5 1 r y i 7 d w b i 3 9 6 y 5 h 4 k 6 p 0 b v a 8 y p 5 b d 0 " ; } ; p_deps = [ x . base x . network x . http_darcs ] ; } ;
deeparrow = { name = " D e e p A r r o w - 0 . 2 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/DeepArrow/0.2/DeepArrow-0.2.tar.gz ; sha256 = " 1 r m 5 5 n r y g 2 z 4 r 5 9 1 9 d a 2 c c 3 n q 0 8 c g 0 g 9 g f 5 9 q f z l 5 0 l f c c q 8 x 2 w d " ; } ; p_deps = [ x . base x . mtl x . typecompose x . haskellSrc ] ; } ;
tv = { name = " T V - 0 . 4 " ; src = fetchurl { url = http://hackage.haskell.org/packages/archive/TV/0.4/TV-0.4.tar.gz ; sha256 = " 0 h r a c v x 6 p y d m q f k x 9 n 9 0 6 k 0 4 6 3 b 0 q a x s k i s 9 1 k i r 6 3 i v f 9 1 z w n d p " ; } ; p_deps = [ x . base x . typecompose x . deeparrow ] ; } ;
guitv = { name = " G u i T V - 0 . 4 " ; src = fetchurl { url = http://darcs.haskell.org/packages/GuiTV/dist/GuiTV-0.4.tar.gz ; sha256 = " 1 5 m n d b x m 8 3 q 0 d 8 c i 3 v j 5 1 z w r m z l 0 f 5 i 5 y q v 0 c a w 0 5 v l z f s r 4 i b 5 i " ; } ; p_deps = [ x . base x . deeparrow x . typecompose x . phooey x . tv ] ; } ;
haskellSrc = { name = " h a s k e l l - s r c - 1 . 0 . 1 . 1 " ; src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / h a s k e l l - s r c / 1 . 0 . 1 . 1 / h a s k e l l - s r c - 1 . 0 . 1 . 1 . t a r . g z " ; sha256 = " 0 6 k i l r f 7 y 5 h 6 d x j 5 7 k w y m r 2 0 z v d s q 6 z h c h w n 4 w k y 1 2 m r m z j x y j 0 1 " ; } ; p_deps = [ x . haskell98 x . base x . pretty x . array ] ;
pass = { buildInputs = ( with executables ; [ happy alex ] ) ; } ;
} ;
haskellSrcExt = { name = " h a s k e l l - s r c - e x t s - 0 . 3 . 3 . t a r . g z " ; src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / h a s k e l l - s r c - e x t s / 0 . 3 . 3 / h a s k e l l - s r c - e x t s - 0 . 3 . 3 . t a r . g z " ; sha256 = " 0 g 9 i b j j 1 k 5 k 3 m q f x 5 m p 8 p q r 0 z x 5 3 p p 9 d k f 5 2 r 8 c d v 1 8 b l 8 x h z b p x " ; } ; p_deps = [ x . base x . base x . array x . pretty ] ;
pass = { buildInputs = ( with executables ; [ happy alex ] ) ; } ;
} ;
2008-03-11 10:18:14 +01:00
2008-03-13 10:46:12 +01:00
/*
2008-04-11 02:40:10 +02:00
haskelldb-hsql-postgresql-0 .10 . tar . gz
2008-03-20 20:29:52 +01:00
######################################################################## 100.0%
2008-03-13 10:46:12 +01:00
hash is 0 0 nva5hhaknm5via4c1p2wj7ibyn6q874f0c3izjb9dk7rivfvgv
path is /nix/store/9n86rzpn0c4zyb7wpilpfcpkfnq68fch-haskelldb-hsql-postgresql-0.10.tar.gz
0 0 nva5hhaknm5via4c1p2wj7ibyn6q874f0c3izjb9dk7rivfvgv
* /
2008-03-11 10:18:14 +01:00
2008-03-13 10:46:12 +01:00
# 1.13 is stable. There are more recent non stable versions
haxml = rec { name = " H a X m l - 1 . 1 3 . 3 " ; p_deps = [ x . base x . rts x . directory x . process x . pretty x . containers x . filepath x . haskell98 ] ;
src = fetchurl { url = " h t t p : / / w w w . h a s k e l l . o r g / H a X m l / ${ name } . t a r . g z " ;
sha256 = " 0 8 d 9 w y 0 r g 9 m 6 6 d d 1 0 x 0 z v k l 7 4 l 2 5 v x d a k z 7 x p 3 j 8 8 s 2 g d 3 1 j p 1 v 0 " ; } ;
} ;
xhtml = rec { name = " x h t m l - 3 0 0 0 . 0 . 2 . 2 " ; p_deps = [ x . base ] ;
src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / x h t m l / 3 0 0 0 . 0 . 2 . 2 / x h t m l - 3 0 0 0 . 0 . 2 . 2 . t a r . g z " ;
sha256 = " 1 1 2 m b q 2 6 k s h 7 r 2 2 y 0 9 h 0 x v m 3 4 7 k b a 3 p 4 n s 1 2 v j 5 4 9 8 f q q j 3 3 3 8 7 8 " ; } ;
} ;
html = rec { name = " h t m l - 1 . 0 . 1 . 1 " ; p_deps = [ x . base ] ;
src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / h t m l / 1 . 0 . 1 . 1 / h t m l - 1 . 0 . 1 . 1 . t a r . g z " ;
sha256 = " 1 0 f a y f m 1 8 p 8 3 z l k r 9 i k x l q g n z x g 1 c k d q a q v z 6 w p 1 x j 9 5 f y 3 p 6 y l 1 " ; } ;
} ;
crypto = rec { name = " c r y p t o - 4 . 1 . 0 " ; p_deps = [ x . base x . array x . pretty x . quickcheck x . random x . hunit ] ;
src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / C r y p t o / 4 . 1 . 0 / C r y p t o - 4 . 1 . 0 . t a r . g z " ;
sha256 = " 1 3 r b p b n 6 p 1 d a 6 q a 9 m 6 f 7 d m k z d k m p n x 6 j i y y n d z a z 9 9 n z q l r w i 1 0 9 " ; } ;
} ;
hslogger = rec { name = " h s l o g g e r - 1 . 0 . 4 " ; p_deps = [ x . containers x . directory x . mtl x . network x . process ] ;
src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / h s l o g g e r / 1 . 0 . 4 / h s l o g g e r - 1 . 0 . 4 . t a r . g z " ;
sha256 = " 0 k m z 8 x s 1 q 4 1 r g 2 x w k 2 2 f a d y h x d g 5 m i z h w 0 r 4 d 7 4 y 4 3 a k k j w j 9 6 a r " ; } ;
} ;
parsep = { name = " p a r s e p - 0 . 1 " ; p_deps = [ x . base x . mtl x . bytestring ] ;
src = fetchurl { url = " h t t p : / / t w a n . h o m e . f m f . n l / p a r s e p / p a r s e p - 0 . 1 . t a r . g z " ;
sha256 = " 1 y 5 p b s 5 m z a a 2 1 1 2 7 c i x s a m a h l b v m q z y h z p w h 6 x 0 n z n s g m g 2 d p c 9 q " ; } ;
pass = { patchPhase = " s e d - i ' s / f p s / b y t e s t r i n g / ' * . c a b a l " ; } ;
} ;
time = { name = " t i m e - 1 . 1 . 2 . 0 " ; p_deps = [ x . base x . old_locale ] ;
src = fetchurl { url = " h t t p : / / h a c k a g e . h a s k e l l . o r g / p a c k a g e s / a r c h i v e / t i m e / 1 . 1 . 2 . 0 / t i m e - 1 . 1 . 2 . 0 . t a r . g z " ;
sha256 = " 0 z m 4 q q c z w b q z y 2 p k 7 w z 5 p 1 v i r g y l w y z d 9 z x p 0 4 0 6 s 5 z v p 3 5 g v l 8 9 " ; } ;
2008-03-11 10:18:14 +01:00
} ;
2008-04-11 02:40:10 +02:00
rjson = { name = " R J s o n - 0 . 3 . 3 " ; p_deps = [ x . base x . mtl x . parsec3 x . bytestring x . iconv x . array x . containers x . syb_with_class_darcs ] ;
2008-03-13 10:46:12 +01:00
src = fetchurl { url = http://hackage.haskell.org/packages/archive/RJson/0.3.3/RJson-0.3.3.tar.gz ;
sha256 = " 0 v a 1 r b g j b 8 m 3 r i j 0 2 3 1 8 a 3 1 b i 9 g m y 3 z w y x 5 z 1 2 1 6 4 c 7 i w a f n d 5 v 2 " ; } ;
2008-03-11 10:18:14 +01:00
} ;
2008-03-13 10:46:12 +01:00
iconv = { name = " i c o n v - 0 . 4 " ; p_deps = [ x . base x . bytestring ] ;
src = fetchurl { url = http://hackage.haskell.org/packages/archive/iconv/0.4/iconv-0.4.tar.gz ;
sha256 = " 1 s n q z z 7 h i 2 q a 8 3 m 5 v 3 0 9 8 r s l d b 4 8 5 k z 2 j g g d 3 3 5 q h v j a h c p 4 b j 1 p " ; } ;
2008-03-11 10:18:14 +01:00
} ;
2008-04-11 02:40:10 +02:00
utf8string = { name = " u t f 8 - s t r i n g - 0 . 3 " ; p_deps = [ x . base x . bytestring ] ;
src = fetchurl { url = http://hackage.haskell.org/packages/archive/utf8-string/0.3/utf8-string-0.3.tar.gz ;
sha256 = " 1 1 m l n 2 r 0 y m 4 y 1 2 z x i z n 6 n 4 0 x b g s i 6 q 4 n 6 n 8 1 0 r c g 9 4 b v 3 5 g q g c b y " ; } ;
} ;
x11 = { name = " x 1 1 - 1 . 4 . 1 " ; p_deps = [ x . base x . haskell98 x . bytestring ] ++ ( with xlibs ; [ libX11 libXext ] ) ;
src = fetchurl { url = http://hackage.haskell.org/packages/archive/X11/1.4.1/X11-1.4.1.tar.gz ;
sha256 = " 0 y c z l 1 m 7 g 3 l g g c x h 5 6 f y 2 b r 1 3 k b k 4 c 5 v r k c c 4 w 7 6 y s 0 m 2 i a 3 h 4 7 5 " ; } ;
} ;
x11extras = { name = " X 1 1 - e x t r a s - 0 . 4 " ; p_deps = [ x . base x . bytestring x . x11 xlibs . libXinerama ] ;
src = fetchurl { url = http://hackage.haskell.org/packages/archive/X11-extras/0.4/X11-extras-0.4.tar.gz ;
sha256 = " 1 c p j r 0 9 g d d c j d 0 w q w v a a n k v 1 z j 7 f y c 6 h b f d v a r 6 3 f 5 1 g 3 v v w 6 2 7 a " ; } ;
} ;
/*
x11xft = { name = " x f t - 0 . 2 " ; p_deps = [ x . base x . bytestring x . haskell98 x . x11 x . utf8string x . bytestring xlibs . libXft freetype ] ;
src = fetchurl { url = http://hackage.haskell.org/packages/archive/X11-xft/0.2/X11-xft-0.2.tar.gz ;
sha256 = " 1 a h v p k g h 5 m r 6 v 8 g i s v 1 s c 9 s 4 0 7 5 h q h 8 5 c p q c q h 1 y l r 6 l k f 7 d z 3 1 w " ; } ;
pass = {
inherit freetype ;
patchPhase = " s e d - i \" s = i n c l u d e - d i r s : . * = i n c l u d e - d i r s : $ f r e e t y p e / i n c l u d e = \" * . c a b a l " ; } ;
} ;
* /
2008-03-13 10:46:12 +01:00
# HAPPS - Libraries
2008-04-11 02:40:10 +02:00
http_darcs = { name = " h t t p - d a r c s " ; p_deps = [ x . network x . parsec3 ] ;
2008-03-13 10:46:12 +01:00
src = sourceByName " h t t p " ;
#src = fetchdarcs { url = "http://darcs.haskell.org/http/"; md5 = "4475f858cf94f4551b77963d08d7257c"; };
} ;
syb_with_class_darcs = { name = " s y b - w i t h - c l a s s - d a r c s " ; p_deps = [ x . template_haskell x . bytestring ] ;
src =
# fetchdarcs { url = "http://happs.org/HAppS/syb-with-class"; md5 = "b42336907f7bfef8bea73bc36282d6ac"; };
sourceByName " s y b _ w i t h _ c l a s s " ; # { url = "http://happs.org/HAppS/syb-with-class"; md5 = "b42336907f7bfef8bea73bc36282d6ac"; };
} ;
happs_data_darcs = { name = " H A p p S - D a t a - d a r c s " ; p_deps = [ x . base x . mtl x . template_haskell x . syb_with_class_darcs x . haxml x . happs_util_darcs x . regex_compat x . bytestring x . pretty x . binary ] ;
src = sourceByName " h a p p s _ d a t a " ; # fetchdarcs { url = "http://happs.org/repos/HAppS-Data"; md5 = "10c505dd687e9dc999cb187090af9ba7"; };
} ;
happs_util_darcs = { name = " H A p p S - U t i l - d a r c s " ; p_deps = [ x . base x . mtl x . hslogger x . template_haskell x . array x . bytestring x . old_time x . process x . directory ] ;
src = sourceByName " h a p p s _ u t i l " ; # fetchdarcs { url = "http://happs.org/repos/HAppS-Util"; md5 = "693cb79017e522031c307ee5e59fc250"; };
} ;
happs_state_darcs = { name = " H A p p S - S t a t e - d a r c s " ; p_deps = [ x . base x . haxml
x . mtl x . network x . stm x . template_haskell x . hslogger
x . happs_util_darcs x . happs_data_darcs x . bytestring x . containers
2008-04-11 02:40:10 +02:00
x . random x . old_time x . old_locale x . unix x . directory x . binary x . hspread ] ;
2008-03-13 10:46:12 +01:00
src = sourceByName " h a p p s _ s t a t e " ;
#src = fetchdarcs { url = "http://happs.org/repos/HAppS-State";
# md5 = "956e5c293b60f4a98148fedc5fa38acc";
# };
} ;
# happs_plugins_darcs = { name="HAppS-plugins-darcs"; p_deps=[ x.base x.mtl x.hslogger x.happs_util_darcs x.happs_data_darcs x.happs_state_darcs x.containers ];
#[>src = fetchdarcs { url = "http://happs.org/repos/HAppS-Plugins"; md5 = "693cb79017e522031c307ee5e59fc250"; };
# src = bleedingEdgeRepos.sourceByName "happs_plugins";
# };
# there is no .cabal yet
#happs_smtp_darcs = { name="HAppS-smtp-darcs"; p_deps=[];
#src = fetchdarcs { url = "http://happs.org/repos/HAppS-smtp"; md5 = "5316917e271ea1ed8ad261080bcb47db"; };
#};
happs_ixset_darcs = { name = " H A p p S - I x S e t - d a r c s " ; p_deps = [ x . base x . mtl
x . hslogger x . happs_util_darcs x . happs_state_darcs x . happs_data_darcs
x . template_haskell x . syb_with_class_darcs x . containers ] ;
src = sourceByName " h a p p s _ i x s e t " ;
#src = fetchdarcs { url = "http://happs.org/repos/HAppS-IxSet";
#md5 = "fa6b24517f09aa16e972f087430967fd";
#tag = "0.9.2";
# no tag
#md5 = "fa6b24517f09aa16e972f087430967fd";
#};
} ;
2008-04-11 02:40:10 +02:00
happs_server_darcs = { name = " H A p p S - S e r v e r - d a r c s " ; p_deps = [ x . haxml x . parsec3 x . mtl
2008-03-13 10:46:12 +01:00
x . network x . regex_compat x . hslogger x . happs_data_darcs
x . happs_util_darcs x . happs_state_darcs x . happs_ixset_darcs x . http_darcs
x . template_haskell x . xhtml x . html x . bytestring x . random
x . containers x . old_time x . old_locale x . directory x . unix ] ;
#src = fetchdarcs { url = "http://happs.org/repos/HAppS-HTTP"; md5 = "e1bb17eb30a39d30b8c34dffbf80edc2"; };
src = sourceByName " h a p p s _ s e r v e r " ;
} ;
2008-04-11 02:40:10 +02:00
# using darcs with minimal patch applied to support $GHC_PACKAGE_PATH
2008-03-13 10:46:12 +01:00
cabal_darcs =
{ name = cabal_darcs_name ; p_deps = with ghc . core_libs ; [ base rts directory process pretty containers filepath ] ;
src = sourceByName " c a b a l " ;
} ;
2008-03-11 10:18:14 +01:00
} ;
2008-03-13 10:46:12 +01:00
#srcs_only = let x = pkgs; in map (y : y.src ) [ x.happs_util_darcs x.happs_data_darcs x.syb_with_class_darcs x.http_darcs
# x.happs_server_darcs x.happs_ixset_darcs x.happs_plugins_darcs x.happs_server_darcs ];
toDerivation = attrs : with attrs ;
# result is { mtl = <deriv>;
addHasktagsTaggingInfo ( ghcCabalDerivation {
inherit ( attrs ) name src ;
propagatedBuildInputs = p_deps ++ ( lib . optional ( attrs . name != cabal_darcs_name ) derivations . cabal_darcs ) ;
srcDir = if attrs ? srcDir then attrs . srcDir else " . " ;
# add cabal, take deps either from this list or from ghc.core_libs
pass = if attrs ? pass then attrs . pass else { } ;
} ) ;
derivations = with lib ; builtins . listToAttrs ( lib . concatLists ( lib . mapRecordFlatten
( n : attrs : let d = ( toDerivation attrs ) ; in [ ( nv n d ) ( nv attrs . name d ) ] ) pkgs ) ) ;
} . derivations