aboutsummaryrefslogtreecommitdiff
path: root/haskell
diff options
context:
space:
mode:
Diffstat (limited to 'haskell')
-rw-r--r--haskell/ghc/README3
-rw-r--r--haskell/ghc/ghc.SlackBuild97
-rw-r--r--haskell/ghc/ghc.info10
-rw-r--r--haskell/ghc/slack-desc19
-rw-r--r--haskell/haskell-GLURaw/README8
-rw-r--r--haskell/haskell-GLURaw/doinst.sh1
-rw-r--r--haskell/haskell-GLURaw/haskell-GLURaw.SlackBuild90
-rw-r--r--haskell/haskell-GLURaw/haskell-GLURaw.info10
-rw-r--r--haskell/haskell-GLURaw/slack-desc19
-rw-r--r--haskell/haskell-GLUT/README8
-rw-r--r--haskell/haskell-GLUT/doinst.sh1
-rw-r--r--haskell/haskell-GLUT/haskell-GLUT.SlackBuild90
-rw-r--r--haskell/haskell-GLUT/haskell-GLUT.info10
-rw-r--r--haskell/haskell-GLUT/slack-desc19
-rw-r--r--haskell/haskell-HTTP/README9
-rw-r--r--haskell/haskell-HTTP/doinst.sh1
-rw-r--r--haskell/haskell-HTTP/haskell-HTTP.SlackBuild90
-rw-r--r--haskell/haskell-HTTP/haskell-HTTP.info10
-rw-r--r--haskell/haskell-HTTP/slack-desc19
-rw-r--r--haskell/haskell-HUnit/README7
-rw-r--r--haskell/haskell-HUnit/doinst.sh1
-rw-r--r--haskell/haskell-HUnit/haskell-HUnit.SlackBuild94
-rw-r--r--haskell/haskell-HUnit/haskell-HUnit.info10
-rw-r--r--haskell/haskell-HUnit/slack-desc19
-rw-r--r--haskell/haskell-MonadCatchIO-mtl/README6
-rw-r--r--haskell/haskell-MonadCatchIO-mtl/doinst.sh1
-rw-r--r--haskell/haskell-MonadCatchIO-mtl/haskell-MonadCatchIO-mtl.SlackBuild91
-rw-r--r--haskell/haskell-MonadCatchIO-mtl/haskell-MonadCatchIO-mtl.info10
-rw-r--r--haskell/haskell-MonadCatchIO-mtl/slack-desc19
-rw-r--r--haskell/haskell-ObjectName/README9
-rw-r--r--haskell/haskell-ObjectName/doinst.sh1
-rw-r--r--haskell/haskell-ObjectName/haskell-ObjectName.SlackBuild90
-rw-r--r--haskell/haskell-ObjectName/haskell-ObjectName.info10
-rw-r--r--haskell/haskell-ObjectName/slack-desc19
-rw-r--r--haskell/haskell-OpenGL/README8
-rw-r--r--haskell/haskell-OpenGL/doinst.sh1
-rw-r--r--haskell/haskell-OpenGL/haskell-OpenGL.SlackBuild90
-rw-r--r--haskell/haskell-OpenGL/haskell-OpenGL.info10
-rw-r--r--haskell/haskell-OpenGL/slack-desc19
-rw-r--r--haskell/haskell-OpenGLRaw/README14
-rw-r--r--haskell/haskell-OpenGLRaw/doinst.sh1
-rw-r--r--haskell/haskell-OpenGLRaw/haskell-OpenGLRaw.SlackBuild90
-rw-r--r--haskell/haskell-OpenGLRaw/haskell-OpenGLRaw.info10
-rw-r--r--haskell/haskell-OpenGLRaw/slack-desc19
-rw-r--r--haskell/haskell-QuickCheck/README10
-rw-r--r--haskell/haskell-QuickCheck/doinst.sh1
-rw-r--r--haskell/haskell-QuickCheck/haskell-QuickCheck.SlackBuild90
-rw-r--r--haskell/haskell-QuickCheck/haskell-QuickCheck.info10
-rw-r--r--haskell/haskell-QuickCheck/slack-desc19
-rw-r--r--haskell/haskell-StateVar/README7
-rw-r--r--haskell/haskell-StateVar/doinst.sh1
-rw-r--r--haskell/haskell-StateVar/haskell-StateVar.SlackBuild90
-rw-r--r--haskell/haskell-StateVar/haskell-StateVar.info10
-rw-r--r--haskell/haskell-StateVar/slack-desc19
-rw-r--r--haskell/haskell-Tensor/README7
-rw-r--r--haskell/haskell-Tensor/doinst.sh1
-rw-r--r--haskell/haskell-Tensor/haskell-Tensor.SlackBuild90
-rw-r--r--haskell/haskell-Tensor/haskell-Tensor.info10
-rw-r--r--haskell/haskell-Tensor/slack-desc19
-rw-r--r--haskell/haskell-X11-xft/README6
-rw-r--r--haskell/haskell-X11-xft/doinst.sh1
-rw-r--r--haskell/haskell-X11-xft/haskell-X11-xft.SlackBuild89
-rw-r--r--haskell/haskell-X11-xft/haskell-X11-xft.info10
-rw-r--r--haskell/haskell-X11-xft/slack-desc19
-rw-r--r--haskell/haskell-X11/README9
-rw-r--r--haskell/haskell-X11/doinst.sh1
-rw-r--r--haskell/haskell-X11/haskell-X11.SlackBuild87
-rw-r--r--haskell/haskell-X11/haskell-X11.info10
-rw-r--r--haskell/haskell-X11/slack-desc19
-rw-r--r--haskell/haskell-ansi-terminal/README8
-rw-r--r--haskell/haskell-ansi-terminal/doinst.sh1
-rw-r--r--haskell/haskell-ansi-terminal/haskell-ansi-terminal.SlackBuild90
-rw-r--r--haskell/haskell-ansi-terminal/haskell-ansi-terminal.info10
-rw-r--r--haskell/haskell-ansi-terminal/slack-desc19
-rw-r--r--haskell/haskell-ansi-wl-pprint/README8
-rw-r--r--haskell/haskell-ansi-wl-pprint/doinst.sh1
-rw-r--r--haskell/haskell-ansi-wl-pprint/haskell-ansi-wl-pprint.SlackBuild90
-rw-r--r--haskell/haskell-ansi-wl-pprint/haskell-ansi-wl-pprint.info10
-rw-r--r--haskell/haskell-ansi-wl-pprint/slack-desc19
-rw-r--r--haskell/haskell-binary/README8
-rw-r--r--haskell/haskell-binary/doinst.sh1
-rw-r--r--haskell/haskell-binary/haskell-binary.SlackBuild88
-rw-r--r--haskell/haskell-binary/haskell-binary.info10
-rw-r--r--haskell/haskell-binary/slack-desc19
-rw-r--r--haskell/haskell-cgi/README6
-rw-r--r--haskell/haskell-cgi/doinst.sh1
-rw-r--r--haskell/haskell-cgi/haskell-cgi.SlackBuild90
-rw-r--r--haskell/haskell-cgi/haskell-cgi.info10
-rw-r--r--haskell/haskell-cgi/slack-desc19
-rw-r--r--haskell/haskell-dataenc/README8
-rw-r--r--haskell/haskell-dataenc/doinst.sh1
-rw-r--r--haskell/haskell-dataenc/haskell-dataenc.SlackBuild90
-rw-r--r--haskell/haskell-dataenc/haskell-dataenc.info10
-rw-r--r--haskell/haskell-dataenc/slack-desc19
-rw-r--r--haskell/haskell-deepseq/README7
-rw-r--r--haskell/haskell-deepseq/doinst.sh1
-rw-r--r--haskell/haskell-deepseq/haskell-deepseq.SlackBuild90
-rw-r--r--haskell/haskell-deepseq/haskell-deepseq.info10
-rw-r--r--haskell/haskell-deepseq/slack-desc19
-rw-r--r--haskell/haskell-digest/README8
-rw-r--r--haskell/haskell-digest/doinst.sh1
-rw-r--r--haskell/haskell-digest/haskell-digest.SlackBuild88
-rw-r--r--haskell/haskell-digest/haskell-digest.info10
-rw-r--r--haskell/haskell-digest/slack-desc19
-rw-r--r--haskell/haskell-editline/README10
-rw-r--r--haskell/haskell-editline/doinst.sh1
-rw-r--r--haskell/haskell-editline/haskell-editline.SlackBuild90
-rw-r--r--haskell/haskell-editline/haskell-editline.info10
-rw-r--r--haskell/haskell-editline/slack-desc19
-rw-r--r--haskell/haskell-fgl/README7
-rw-r--r--haskell/haskell-fgl/doinst.sh1
-rw-r--r--haskell/haskell-fgl/haskell-fgl.SlackBuild90
-rw-r--r--haskell/haskell-fgl/haskell-fgl.info10
-rw-r--r--haskell/haskell-fgl/slack-desc19
-rw-r--r--haskell/haskell-ghc-paths/README6
-rw-r--r--haskell/haskell-ghc-paths/doinst.sh1
-rw-r--r--haskell/haskell-ghc-paths/haskell-ghc-paths.SlackBuild90
-rw-r--r--haskell/haskell-ghc-paths/haskell-ghc-paths.info10
-rw-r--r--haskell/haskell-ghc-paths/slack-desc19
-rw-r--r--haskell/haskell-hashed-storage/README13
-rw-r--r--haskell/haskell-hashed-storage/doinst.sh1
-rw-r--r--haskell/haskell-hashed-storage/haskell-hashed-storage.SlackBuild90
-rw-r--r--haskell/haskell-hashed-storage/haskell-hashed-storage.info10
-rw-r--r--haskell/haskell-hashed-storage/slack-desc19
-rw-r--r--haskell/haskell-haskeline/README10
-rw-r--r--haskell/haskell-haskeline/doinst.sh1
-rw-r--r--haskell/haskell-haskeline/haskell-haskeline.SlackBuild91
-rw-r--r--haskell/haskell-haskeline/haskell-haskeline.info10
-rw-r--r--haskell/haskell-haskeline/slack-desc19
-rw-r--r--haskell/haskell-haskell-src/README7
-rw-r--r--haskell/haskell-haskell-src/doinst.sh1
-rw-r--r--haskell/haskell-haskell-src/haskell-haskell-src.SlackBuild90
-rw-r--r--haskell/haskell-haskell-src/haskell-haskell-src.info10
-rw-r--r--haskell/haskell-haskell-src/slack-desc19
-rw-r--r--haskell/haskell-hinotify/README8
-rw-r--r--haskell/haskell-hinotify/doinst.sh1
-rw-r--r--haskell/haskell-hinotify/haskell-hinotify.SlackBuild90
-rw-r--r--haskell/haskell-hinotify/haskell-hinotify.info10
-rw-r--r--haskell/haskell-hinotify/slack-desc19
-rw-r--r--haskell/haskell-hostname/README7
-rw-r--r--haskell/haskell-hostname/doinst.sh1
-rw-r--r--haskell/haskell-hostname/haskell-hostname.SlackBuild90
-rw-r--r--haskell/haskell-hostname/haskell-hostname.info10
-rw-r--r--haskell/haskell-hostname/slack-desc19
-rw-r--r--haskell/haskell-html/README7
-rw-r--r--haskell/haskell-html/doinst.sh1
-rw-r--r--haskell/haskell-html/haskell-html.SlackBuild90
-rw-r--r--haskell/haskell-html/haskell-html.info10
-rw-r--r--haskell/haskell-html/slack-desc19
-rw-r--r--haskell/haskell-lcs/README7
-rw-r--r--haskell/haskell-lcs/doinst.sh1
-rw-r--r--haskell/haskell-lcs/haskell-lcs.SlackBuild90
-rw-r--r--haskell/haskell-lcs/haskell-lcs.info10
-rw-r--r--haskell/haskell-lcs/slack-desc19
-rw-r--r--haskell/haskell-mmap/README10
-rw-r--r--haskell/haskell-mmap/doinst.sh1
-rw-r--r--haskell/haskell-mmap/haskell-mmap.SlackBuild90
-rw-r--r--haskell/haskell-mmap/haskell-mmap.info10
-rw-r--r--haskell/haskell-mmap/slack-desc19
-rw-r--r--haskell/haskell-mtl/README9
-rw-r--r--haskell/haskell-mtl/doinst.sh1
-rw-r--r--haskell/haskell-mtl/haskell-mtl.SlackBuild90
-rw-r--r--haskell/haskell-mtl/haskell-mtl.info10
-rw-r--r--haskell/haskell-mtl/slack-desc19
-rw-r--r--haskell/haskell-network/README7
-rw-r--r--haskell/haskell-network/doinst.sh1
-rw-r--r--haskell/haskell-network/haskell-network.SlackBuild90
-rw-r--r--haskell/haskell-network/haskell-network.info10
-rw-r--r--haskell/haskell-network/slack-desc19
-rw-r--r--haskell/haskell-packedstring/README6
-rw-r--r--haskell/haskell-packedstring/doinst.sh1
-rw-r--r--haskell/haskell-packedstring/haskell-packedstring.SlackBuild90
-rw-r--r--haskell/haskell-packedstring/haskell-packedstring.info10
-rw-r--r--haskell/haskell-packedstring/slack-desc19
-rw-r--r--haskell/haskell-parallel/README6
-rw-r--r--haskell/haskell-parallel/doinst.sh1
-rw-r--r--haskell/haskell-parallel/haskell-parallel.SlackBuild90
-rw-r--r--haskell/haskell-parallel/haskell-parallel.info10
-rw-r--r--haskell/haskell-parallel/slack-desc19
-rw-r--r--haskell/haskell-parsec/README10
-rw-r--r--haskell/haskell-parsec/doinst.sh1
-rw-r--r--haskell/haskell-parsec/haskell-parsec.SlackBuild90
-rw-r--r--haskell/haskell-parsec/haskell-parsec.info10
-rw-r--r--haskell/haskell-parsec/slack-desc19
-rw-r--r--haskell/haskell-platform/README12
-rw-r--r--haskell/haskell-platform/haskell-platform.SlackBuild98
-rw-r--r--haskell/haskell-platform/haskell-platform.info10
-rw-r--r--haskell/haskell-platform/not_update_pkg_db.diff28
-rw-r--r--haskell/haskell-platform/slack-desc19
-rw-r--r--haskell/haskell-regex-base/README6
-rw-r--r--haskell/haskell-regex-base/doinst.sh1
-rw-r--r--haskell/haskell-regex-base/haskell-regex-base.SlackBuild90
-rw-r--r--haskell/haskell-regex-base/haskell-regex-base.info10
-rw-r--r--haskell/haskell-regex-base/slack-desc19
-rw-r--r--haskell/haskell-regex-compat/README6
-rw-r--r--haskell/haskell-regex-compat/doinst.sh1
-rw-r--r--haskell/haskell-regex-compat/haskell-regex-compat.SlackBuild90
-rw-r--r--haskell/haskell-regex-compat/haskell-regex-compat.info10
-rw-r--r--haskell/haskell-regex-compat/slack-desc19
-rw-r--r--haskell/haskell-regex-posix/README6
-rw-r--r--haskell/haskell-regex-posix/doinst.sh1
-rw-r--r--haskell/haskell-regex-posix/haskell-regex-posix.SlackBuild90
-rw-r--r--haskell/haskell-regex-posix/haskell-regex-posix.info10
-rw-r--r--haskell/haskell-regex-posix/slack-desc19
-rw-r--r--haskell/haskell-stm/README6
-rw-r--r--haskell/haskell-stm/doinst.sh1
-rw-r--r--haskell/haskell-stm/haskell-stm.SlackBuild90
-rw-r--r--haskell/haskell-stm/haskell-stm.info10
-rw-r--r--haskell/haskell-stm/slack-desc19
-rw-r--r--haskell/haskell-syb/README10
-rw-r--r--haskell/haskell-syb/doinst.sh1
-rw-r--r--haskell/haskell-syb/haskell-syb.SlackBuild90
-rw-r--r--haskell/haskell-syb/haskell-syb.info10
-rw-r--r--haskell/haskell-syb/slack-desc19
-rw-r--r--haskell/haskell-tar/README11
-rw-r--r--haskell/haskell-tar/doinst.sh1
-rw-r--r--haskell/haskell-tar/haskell-tar.SlackBuild90
-rw-r--r--haskell/haskell-tar/haskell-tar.info10
-rw-r--r--haskell/haskell-tar/slack-desc19
-rw-r--r--haskell/haskell-terminfo/README9
-rw-r--r--haskell/haskell-terminfo/doinst.sh1
-rw-r--r--haskell/haskell-terminfo/haskell-terminfo.SlackBuild90
-rw-r--r--haskell/haskell-terminfo/haskell-terminfo.info10
-rw-r--r--haskell/haskell-terminfo/slack-desc19
-rw-r--r--haskell/haskell-test-framework-hunit/README9
-rw-r--r--haskell/haskell-test-framework-hunit/doinst.sh1
-rw-r--r--haskell/haskell-test-framework-hunit/haskell-test-framework-hunit.SlackBuild90
-rw-r--r--haskell/haskell-test-framework-hunit/haskell-test-framework-hunit.info10
-rw-r--r--haskell/haskell-test-framework-hunit/slack-desc19
-rw-r--r--haskell/haskell-test-framework-quickcheck2/README9
-rw-r--r--haskell/haskell-test-framework-quickcheck2/doinst.sh1
-rw-r--r--haskell/haskell-test-framework-quickcheck2/haskell-test-framework-quickcheck2.SlackBuild90
-rw-r--r--haskell/haskell-test-framework-quickcheck2/haskell-test-framework-quickcheck2.info10
-rw-r--r--haskell/haskell-test-framework-quickcheck2/slack-desc19
-rw-r--r--haskell/haskell-test-framework/README12
-rw-r--r--haskell/haskell-test-framework/doinst.sh1
-rw-r--r--haskell/haskell-test-framework/haskell-test-framework.SlackBuild94
-rw-r--r--haskell/haskell-test-framework/haskell-test-framework.info10
-rw-r--r--haskell/haskell-test-framework/slack-desc19
-rw-r--r--haskell/haskell-test-framework/test-framework_cabal.patch22
-rw-r--r--haskell/haskell-texmath/README8
-rw-r--r--haskell/haskell-texmath/doinst.sh1
-rw-r--r--haskell/haskell-texmath/haskell-texmath.SlackBuild92
-rw-r--r--haskell/haskell-texmath/haskell-texmath.info10
-rw-r--r--haskell/haskell-texmath/slack-desc19
-rw-r--r--haskell/haskell-texmath/texmath-utf8.patch28
-rw-r--r--haskell/haskell-text/README7
-rw-r--r--haskell/haskell-text/doinst.sh1
-rw-r--r--haskell/haskell-text/haskell-text.SlackBuild90
-rw-r--r--haskell/haskell-text/haskell-text.info10
-rw-r--r--haskell/haskell-text/slack-desc19
-rw-r--r--haskell/haskell-transformers/README10
-rw-r--r--haskell/haskell-transformers/doinst.sh1
-rw-r--r--haskell/haskell-transformers/haskell-transformers.SlackBuild90
-rw-r--r--haskell/haskell-transformers/haskell-transformers.info10
-rw-r--r--haskell/haskell-transformers/slack-desc19
-rw-r--r--haskell/haskell-utf8-string/README5
-rw-r--r--haskell/haskell-utf8-string/doinst.sh1
-rw-r--r--haskell/haskell-utf8-string/haskell-utf8-string.SlackBuild90
-rw-r--r--haskell/haskell-utf8-string/haskell-utf8-string.info10
-rw-r--r--haskell/haskell-utf8-string/slack-desc19
-rw-r--r--haskell/haskell-xhtml/README7
-rw-r--r--haskell/haskell-xhtml/doinst.sh1
-rw-r--r--haskell/haskell-xhtml/haskell-xhtml.SlackBuild90
-rw-r--r--haskell/haskell-xhtml/haskell-xhtml.info10
-rw-r--r--haskell/haskell-xhtml/slack-desc19
-rw-r--r--haskell/haskell-xml/README6
-rw-r--r--haskell/haskell-xml/doinst.sh1
-rw-r--r--haskell/haskell-xml/haskell-xml.SlackBuild86
-rw-r--r--haskell/haskell-xml/haskell-xml.info10
-rw-r--r--haskell/haskell-xml/slack-desc19
-rw-r--r--haskell/haskell-zip-archive/README8
-rw-r--r--haskell/haskell-zip-archive/doinst.sh1
-rw-r--r--haskell/haskell-zip-archive/haskell-zip-archive.SlackBuild88
-rw-r--r--haskell/haskell-zip-archive/haskell-zip-archive.info10
-rw-r--r--haskell/haskell-zip-archive/slack-desc19
-rw-r--r--haskell/haskell-zlib/README9
-rw-r--r--haskell/haskell-zlib/doinst.sh1
-rw-r--r--haskell/haskell-zlib/haskell-zlib.SlackBuild88
-rw-r--r--haskell/haskell-zlib/haskell-zlib.info10
-rw-r--r--haskell/haskell-zlib/slack-desc19
281 files changed, 7257 insertions, 0 deletions
diff --git a/haskell/ghc/README b/haskell/ghc/README
new file mode 100644
index 0000000000000..d4cc3b8fd55bc
--- /dev/null
+++ b/haskell/ghc/README
@@ -0,0 +1,3 @@
+GHC is a state-of-the-art, open source, compiler and interactive environment
+for the functional language Haskell. This is a complete build, including
+interactive system and profiling libraries and documentation.
diff --git a/haskell/ghc/ghc.SlackBuild b/haskell/ghc/ghc.SlackBuild
new file mode 100644
index 0000000000000..8d4f600d77462
--- /dev/null
+++ b/haskell/ghc/ghc.SlackBuild
@@ -0,0 +1,97 @@
+#!/bin/sh
+
+# Slackware build script for ghc
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=ghc
+VERSION=${VERSION:-7.0.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+ TARARCH=i386
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+ TARARCH=i386
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+ TARARCH="x86_64"
+else
+ printf "$ARCH is not supported...\n"
+ exit 1
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION-$TARARCH-unknown-linux.tar.bz2
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+if [ "$TARARCH" = "i386" ] ; then
+ # In i386 binary distribution, the prebuilt binaries used to install GHC
+ # are linked against libffi.so.5, but slackware ships with libffi.so.4
+ # (in d/gcc-java).
+ # Luckily, GHC includes its own copy of libffi. It's only under different
+ # name (to avoid conflicts with system libffi).
+ # For the duration of the "configure && make install", let's copy the
+ # bundled libffi to expected name.
+ cp libffi/dist-install/build/libHSffi-ghc${VERSION}.so libffi/libffi.so.5
+ if [ "x$LD_LIBRARY_PATH" = "x" ] ; then
+ LD_LIBRARY_PATH=$TMP/$PRGNAM-$VERSION/libffi/
+ else
+ LD_LIBRARY_PATH=$TMP/$PRGNAM-$VERSION/libffi/:$LD_LIBRARY_PATH
+ fi
+ export LD_LIBRARY_PATH
+fi
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --libdir=/usr/lib${LIBDIRSUFFIX}
+
+make install DESTDIR=$PKG
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+find $PKG/usr/man -type f -exec gzip -9 {} \;
+
+cp -a INSTALL LICENSE README $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/ghc/ghc.info b/haskell/ghc/ghc.info
new file mode 100644
index 0000000000000..e67628dfbd1a1
--- /dev/null
+++ b/haskell/ghc/ghc.info
@@ -0,0 +1,10 @@
+PRGNAM="ghc"
+VERSION="7.0.1"
+HOMEPAGE="http://haskell.org/ghc/"
+DOWNLOAD="http://haskell.org/ghc/dist/7.0.1/ghc-7.0.1-i386-unknown-linux.tar.bz2"
+MD5SUM="a06ca14cd21a7c79e77c360d8c3c405f"
+DOWNLOAD_x86_64="http://haskell.org/ghc/dist/7.0.1/ghc-7.0.1-x86_64-unknown-linux.tar.bz2"
+MD5SUM_x86_64="618cf4a24269ac03292fa5abb0ae3b82"
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/ghc/slack-desc b/haskell/ghc/slack-desc
new file mode 100644
index 0000000000000..a1743f135ef8b
--- /dev/null
+++ b/haskell/ghc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+ghc: ghc (The Glasgow Haskell Compiler)
+ghc:
+ghc: GHC is a state-of-the-art, open source, compiler and interactive
+ghc: environment for the functional language Haskell.
+ghc: This is a complete build, including interactive system, profiling
+ghc: libraries and documentation.
+ghc:
+ghc: Homepage: http://haskell.org/ghc/
+ghc:
+ghc:
+ghc:
diff --git a/haskell/haskell-GLURaw/README b/haskell/haskell-GLURaw/README
new file mode 100644
index 0000000000000..8989e984cc8fb
--- /dev/null
+++ b/haskell/haskell-GLURaw/README
@@ -0,0 +1,8 @@
+GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL utility
+library. It is basically a 1:1 mapping of GLU's C API, intended as a
+basis for a nicer interface.
+
+This requires ghc and haskell-OpenGLRaw.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-GLURaw/doinst.sh b/haskell/haskell-GLURaw/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-GLURaw/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-GLURaw/haskell-GLURaw.SlackBuild b/haskell/haskell-GLURaw/haskell-GLURaw.SlackBuild
new file mode 100644
index 0000000000000..98eff190bfd91
--- /dev/null
+++ b/haskell/haskell-GLURaw/haskell-GLURaw.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for GLURaw
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-GLURaw
+VERSION=${VERSION:-1.1.0.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-GLURaw/haskell-GLURaw.info b/haskell/haskell-GLURaw/haskell-GLURaw.info
new file mode 100644
index 0000000000000..932977b8da667
--- /dev/null
+++ b/haskell/haskell-GLURaw/haskell-GLURaw.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-GLURaw"
+VERSION="1.1.0.0"
+HOMEPAGE="http://hackage.haskell.org/package/GLURaw"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/GLURaw/1.1.0.0/GLURaw-1.1.0.0.tar.gz"
+MD5SUM="3f195f73f5c58edc3dd32c5048c5b64e"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-GLURaw/slack-desc b/haskell/haskell-GLURaw/slack-desc
new file mode 100644
index 0000000000000..33261d52af14e
--- /dev/null
+++ b/haskell/haskell-GLURaw/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-GLURaw: haskell-GLURaw (A raw binding for the OpenGL graphics system)
+haskell-GLURaw:
+haskell-GLURaw: GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL utility
+haskell-GLURaw: library. It is basically a 1:1 mapping of GLU's C API, intended as a
+haskell-GLURaw: basis for a nicer interface.
+haskell-GLURaw:
+haskell-GLURaw:
+haskell-GLURaw:
+haskell-GLURaw:
+haskell-GLURaw:
+haskell-GLURaw:
diff --git a/haskell/haskell-GLUT/README b/haskell/haskell-GLUT/README
new file mode 100644
index 0000000000000..878de79cbb930
--- /dev/null
+++ b/haskell/haskell-GLUT/README
@@ -0,0 +1,8 @@
+A Haskell binding for the OpenGL Utility Toolkit, a window system
+independent toolkit for writing OpenGL programs.
+
+This requires ghc, haskell-StateVar, haskell-Tensor and
+haskell-OpenGL.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-GLUT/doinst.sh b/haskell/haskell-GLUT/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-GLUT/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-GLUT/haskell-GLUT.SlackBuild b/haskell/haskell-GLUT/haskell-GLUT.SlackBuild
new file mode 100644
index 0000000000000..e9f8936ae58e4
--- /dev/null
+++ b/haskell/haskell-GLUT/haskell-GLUT.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for GLUT
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-GLUT
+VERSION=${VERSION:-2.2.2.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE README examples $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-GLUT/haskell-GLUT.info b/haskell/haskell-GLUT/haskell-GLUT.info
new file mode 100644
index 0000000000000..c2fff5d32a9a4
--- /dev/null
+++ b/haskell/haskell-GLUT/haskell-GLUT.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-GLUT"
+VERSION="2.2.2.0"
+HOMEPAGE="http://hackage.haskell.org/package/GLUT"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/GLUT/2.2.2.0/GLUT-2.2.2.0.tar.gz"
+MD5SUM="e11912f50b76950b0d9e27d25127e391"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-GLUT/slack-desc b/haskell/haskell-GLUT/slack-desc
new file mode 100644
index 0000000000000..5940380453344
--- /dev/null
+++ b/haskell/haskell-GLUT/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-GLUT: haskell-GLUT (A binding for the OpenGL Utility Toolkit)
+haskell-GLUT:
+haskell-GLUT: A Haskell binding for the OpenGL Utility Toolkit, a window system
+haskell-GLUT: independent toolkit for writing OpenGL programs.
+haskell-GLUT:
+haskell-GLUT:
+haskell-GLUT:
+haskell-GLUT:
+haskell-GLUT:
+haskell-GLUT:
+haskell-GLUT:
diff --git a/haskell/haskell-HTTP/README b/haskell/haskell-HTTP/README
new file mode 100644
index 0000000000000..1713ad6e0de6d
--- /dev/null
+++ b/haskell/haskell-HTTP/README
@@ -0,0 +1,9 @@
+The HTTP package supports client-side web programming in Haskell.
+It lets you set up HTTP connections, transmitting requests and
+processing the responses coming back, all from within the comforts
+of Haskell.
+
+This requires haskell-network.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-HTTP/doinst.sh b/haskell/haskell-HTTP/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-HTTP/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-HTTP/haskell-HTTP.SlackBuild b/haskell/haskell-HTTP/haskell-HTTP.SlackBuild
new file mode 100644
index 0000000000000..d619c338e8b95
--- /dev/null
+++ b/haskell/haskell-HTTP/haskell-HTTP.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for HTTP
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-HTTP
+VERSION=${VERSION:-4000.1.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGES LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-HTTP/haskell-HTTP.info b/haskell/haskell-HTTP/haskell-HTTP.info
new file mode 100644
index 0000000000000..49bfea2ffeabb
--- /dev/null
+++ b/haskell/haskell-HTTP/haskell-HTTP.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-HTTP"
+VERSION="4000.1.1"
+HOMEPAGE="http://hackage.haskell.org/package/HTTP"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/HTTP/4000.1.1/HTTP-4000.1.1.tar.gz"
+MD5SUM="ddf23d46c4d6dc0048c454e3d01caa57"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-HTTP/slack-desc b/haskell/haskell-HTTP/slack-desc
new file mode 100644
index 0000000000000..b3970a5c95cb6
--- /dev/null
+++ b/haskell/haskell-HTTP/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-HTTP: haskell-HTTP (A Haskell library for client-side HTTP)
+haskell-HTTP:
+haskell-HTTP: The HTTP package supports client-side web programming in Haskell.
+haskell-HTTP: It lets you set up HTTP connections, transmitting requests and
+haskell-HTTP: processing the responses coming back, all from within the comforts
+haskell-HTTP: of Haskell.
+haskell-HTTP:
+haskell-HTTP: http://hackage.haskell.org/package/HTTP
+haskell-HTTP:
+haskell-HTTP:
+haskell-HTTP:
diff --git a/haskell/haskell-HUnit/README b/haskell/haskell-HUnit/README
new file mode 100644
index 0000000000000..90e9270497005
--- /dev/null
+++ b/haskell/haskell-HUnit/README
@@ -0,0 +1,7 @@
+HUnit is a unit testing framework for Haskell, inspired by the JUnit
+tool for Java.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-HUnit/doinst.sh b/haskell/haskell-HUnit/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-HUnit/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-HUnit/haskell-HUnit.SlackBuild b/haskell/haskell-HUnit/haskell-HUnit.SlackBuild
new file mode 100644
index 0000000000000..b70780c18230a
--- /dev/null
+++ b/haskell/haskell-HUnit/haskell-HUnit.SlackBuild
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+# Slackware build script for HUnit
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-HUnit
+VERSION=${VERSION:-1.2.2.3}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE README doc/Guide.html $PKG/usr/doc/$PRGNAM-$VERSION
+# --docdir not fully respected
+mv $PKG/usr/share/$SRCNAM-$VERSION/examples $PKG/usr/doc/$PRGNAM-$VERSION/examples
+# rest of them are duplicates
+rm -rf $PKG/usr/share
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-HUnit/haskell-HUnit.info b/haskell/haskell-HUnit/haskell-HUnit.info
new file mode 100644
index 0000000000000..41e74138ea7f3
--- /dev/null
+++ b/haskell/haskell-HUnit/haskell-HUnit.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-HUnit"
+VERSION="1.2.2.3"
+HOMEPAGE="http://hackage.haskell.org/package/HUnit"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/HUnit/1.2.2.3/HUnit-1.2.2.3.tar.gz"
+MD5SUM="f179add502f88153e5c9fdc69056b657"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-HUnit/slack-desc b/haskell/haskell-HUnit/slack-desc
new file mode 100644
index 0000000000000..60583e852630a
--- /dev/null
+++ b/haskell/haskell-HUnit/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-HUnit: haskell-HUnit (Unit testing framework for Haskell)
+haskell-HUnit:
+haskell-HUnit: HUnit is a unit testing framework for Haskell, inspired by the JUnit
+haskell-HUnit: tool for Java.
+haskell-HUnit:
+haskell-HUnit: http://hackage.haskell.org/package/HUnit
+haskell-HUnit:
+haskell-HUnit:
+haskell-HUnit:
+haskell-HUnit:
+haskell-HUnit:
diff --git a/haskell/haskell-MonadCatchIO-mtl/README b/haskell/haskell-MonadCatchIO-mtl/README
new file mode 100644
index 0000000000000..156680c936e75
--- /dev/null
+++ b/haskell/haskell-MonadCatchIO-mtl/README
@@ -0,0 +1,6 @@
+Provides a monad-transformer version of the Control.Exception.catch
+function. For this, it defines the MonadCatchIO class, a subset of
+MonadIO. It defines proper instances for most monad transformers in
+the mtl library.
+
+This requires ghc, haskell-transformers, and haskell-mtl.
diff --git a/haskell/haskell-MonadCatchIO-mtl/doinst.sh b/haskell/haskell-MonadCatchIO-mtl/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-MonadCatchIO-mtl/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-MonadCatchIO-mtl/haskell-MonadCatchIO-mtl.SlackBuild b/haskell/haskell-MonadCatchIO-mtl/haskell-MonadCatchIO-mtl.SlackBuild
new file mode 100644
index 0000000000000..c54efaec1bad4
--- /dev/null
+++ b/haskell/haskell-MonadCatchIO-mtl/haskell-MonadCatchIO-mtl.SlackBuild
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+# Slackware build script for MonadCatchIO-mtl
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-MonadCatchIO-mtl
+VERSION=${VERSION:-0.3.0.1}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+# BUG: At least the package should come with lisence
+#cp -a $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-MonadCatchIO-mtl/haskell-MonadCatchIO-mtl.info b/haskell/haskell-MonadCatchIO-mtl/haskell-MonadCatchIO-mtl.info
new file mode 100644
index 0000000000000..5f3a242ff0650
--- /dev/null
+++ b/haskell/haskell-MonadCatchIO-mtl/haskell-MonadCatchIO-mtl.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-MonadCatchIO-mtl"
+VERSION="0.3.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/MonadCatchIO-mtl"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/MonadCatchIO-mtl/0.3.0.1/MonadCatchIO-mtl-0.3.0.1.tar.gz"
+MD5SUM="53f56fece758b15eff950f9c9796fbdf"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-MonadCatchIO-mtl/slack-desc b/haskell/haskell-MonadCatchIO-mtl/slack-desc
new file mode 100644
index 0000000000000..fbf5055cdb4b1
--- /dev/null
+++ b/haskell/haskell-MonadCatchIO-mtl/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-MonadCatchIO-mtl: haskell-MonadCatchIO-mtl (Monad-transformer version of haskell-mtl)
+haskell-MonadCatchIO-mtl:
+haskell-MonadCatchIO-mtl: Provides a monad-transformer version of the Control.Exception.catch
+haskell-MonadCatchIO-mtl: function. For this, it defines the MonadCatchIO class, a subset of
+haskell-MonadCatchIO-mtl: MonadIO. It defines proper instances for most monad transformers in
+haskell-MonadCatchIO-mtl: the mtl library.
+haskell-MonadCatchIO-mtl:
+haskell-MonadCatchIO-mtl: Homepage: http://hackage.haskell.org/package/MonadCatchIO-mtl
+haskell-MonadCatchIO-mtl:
+haskell-MonadCatchIO-mtl:
+haskell-MonadCatchIO-mtl:
diff --git a/haskell/haskell-ObjectName/README b/haskell/haskell-ObjectName/README
new file mode 100644
index 0000000000000..e266ea95af2fa
--- /dev/null
+++ b/haskell/haskell-ObjectName/README
@@ -0,0 +1,9 @@
+This tiny package contains the class ObjectName, which corresponds
+to the general notion of explicitly handled identifiers for API
+objects, e.g. a texture object name in OpenGL or a buffer object
+name in OpenAL.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-ObjectName/doinst.sh b/haskell/haskell-ObjectName/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-ObjectName/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-ObjectName/haskell-ObjectName.SlackBuild b/haskell/haskell-ObjectName/haskell-ObjectName.SlackBuild
new file mode 100644
index 0000000000000..fbf457b394efb
--- /dev/null
+++ b/haskell/haskell-ObjectName/haskell-ObjectName.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for ObjectName
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-ObjectName
+VERSION=${VERSION:-1.0.0.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-ObjectName/haskell-ObjectName.info b/haskell/haskell-ObjectName/haskell-ObjectName.info
new file mode 100644
index 0000000000000..a8e516e87893f
--- /dev/null
+++ b/haskell/haskell-ObjectName/haskell-ObjectName.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-ObjectName"
+VERSION="1.0.0.0"
+HOMEPAGE="http://hackage.haskell.org/package/ObjectName"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/ObjectName/1.0.0.0/ObjectName-1.0.0.0.tar.gz"
+MD5SUM="00140131c26a51ae1118f685a73ad923"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-ObjectName/slack-desc b/haskell/haskell-ObjectName/slack-desc
new file mode 100644
index 0000000000000..0b12834253c50
--- /dev/null
+++ b/haskell/haskell-ObjectName/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-ObjectName: haskell-ObjectName (Explicitly handled object names)
+haskell-ObjectName:
+haskell-ObjectName: This tiny package contains the class ObjectName, which corresponds
+haskell-ObjectName: to the general notion of explicitly handled identifiers for API
+haskell-ObjectName: objects, e.g. a texture object name in OpenGL or a buffer object
+haskell-ObjectName: name in OpenAL.
+haskell-ObjectName:
+haskell-ObjectName:
+haskell-ObjectName:
+haskell-ObjectName:
+haskell-ObjectName:
diff --git a/haskell/haskell-OpenGL/README b/haskell/haskell-OpenGL/README
new file mode 100644
index 0000000000000..be6dacd307979
--- /dev/null
+++ b/haskell/haskell-OpenGL/README
@@ -0,0 +1,8 @@
+A Haskell binding for the OpenGL graphics system (GL, version 3.2)
+and its accompanying utility library (GLU, version 1.3).
+
+This requires ghc, haskell-OpenGLRaw, haskell-GLURaw,
+haskell-ObjectName, haskell-StateVar and haskell-Tensor.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-OpenGL/doinst.sh b/haskell/haskell-OpenGL/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-OpenGL/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-OpenGL/haskell-OpenGL.SlackBuild b/haskell/haskell-OpenGL/haskell-OpenGL.SlackBuild
new file mode 100644
index 0000000000000..792be7ae23b86
--- /dev/null
+++ b/haskell/haskell-OpenGL/haskell-OpenGL.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for OpenGL
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-OpenGL
+VERSION=${VERSION:-2.4.0.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-OpenGL/haskell-OpenGL.info b/haskell/haskell-OpenGL/haskell-OpenGL.info
new file mode 100644
index 0000000000000..956df02cc55a6
--- /dev/null
+++ b/haskell/haskell-OpenGL/haskell-OpenGL.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-OpenGL"
+VERSION="2.4.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/OpenGL"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/OpenGL/2.4.0.1/OpenGL-2.4.0.1.tar.gz"
+MD5SUM="71b03fce1e3d64be1e874d7989f0272c"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-OpenGL/slack-desc b/haskell/haskell-OpenGL/slack-desc
new file mode 100644
index 0000000000000..9d8df4dc6b604
--- /dev/null
+++ b/haskell/haskell-OpenGL/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-OpenGL: haskell-OpenGL (A binding for the OpenGL graphics system)
+haskell-OpenGL:
+haskell-OpenGL: A Haskell binding for the OpenGL graphics system (GL, version 3.2)
+haskell-OpenGL: and its accompanying utility library (GLU, version 1.3).
+haskell-OpenGL:
+haskell-OpenGL:
+haskell-OpenGL:
+haskell-OpenGL:
+haskell-OpenGL:
+haskell-OpenGL:
+haskell-OpenGL:
diff --git a/haskell/haskell-OpenGLRaw/README b/haskell/haskell-OpenGLRaw/README
new file mode 100644
index 0000000000000..211d7eb2be92a
--- /dev/null
+++ b/haskell/haskell-OpenGLRaw/README
@@ -0,0 +1,14 @@
+OpenGLRaw is a raw Haskell binding for the OpenGL 3.2 graphics
+system and lots of OpenGL extensions. It is basically a 1:1 mapping
+of OpenGL's C API, intended as a basis for a nicer interface.
+OpenGLRaw offers access to all necessary functions, tokens and types
+plus a general facility for loading extension entries. The module
+hierarchy closely mirrors the naming structure of the OpenGL
+extensions, making it easy to find the right module to import. All
+API entries are loaded dynamically. If an API entry is not found at
+runtime, a userError is thrown.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-OpenGLRaw/doinst.sh b/haskell/haskell-OpenGLRaw/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-OpenGLRaw/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-OpenGLRaw/haskell-OpenGLRaw.SlackBuild b/haskell/haskell-OpenGLRaw/haskell-OpenGLRaw.SlackBuild
new file mode 100644
index 0000000000000..49f9970446b71
--- /dev/null
+++ b/haskell/haskell-OpenGLRaw/haskell-OpenGLRaw.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for OpenGLRaw
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-OpenGLRaw
+VERSION=${VERSION:-1.1.0.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-OpenGLRaw/haskell-OpenGLRaw.info b/haskell/haskell-OpenGLRaw/haskell-OpenGLRaw.info
new file mode 100644
index 0000000000000..bf18fa575a44f
--- /dev/null
+++ b/haskell/haskell-OpenGLRaw/haskell-OpenGLRaw.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-OpenGLRaw"
+VERSION="1.1.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/OpenGLRaw"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/OpenGLRaw/1.1.0.1/OpenGLRaw-1.1.0.1.tar.gz"
+MD5SUM="efe968cf32e46ae61b7b19edc2711044"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-OpenGLRaw/slack-desc b/haskell/haskell-OpenGLRaw/slack-desc
new file mode 100644
index 0000000000000..01eb26c905429
--- /dev/null
+++ b/haskell/haskell-OpenGLRaw/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-OpenGLRaw: haskell-OpenGLRaw (A raw binding for the OpenGL graphics system)
+haskell-OpenGLRaw:
+haskell-OpenGLRaw: OpenGLRaw is a raw Haskell binding for the OpenGL 3.2 graphics
+haskell-OpenGLRaw: system and lots of OpenGL extensions. It is basically a 1:1 mapping
+haskell-OpenGLRaw: of OpenGL's C API, intended as a basis for a nicer interface.
+haskell-OpenGLRaw: OpenGLRaw offers access to all necessary functions, tokens and types
+haskell-OpenGLRaw: plus a general facility for loading extension entries. The module
+haskell-OpenGLRaw: hierarchy closely mirrors the naming structure of the OpenGL
+haskell-OpenGLRaw: extensions, making it easy to find the right module to import. All
+haskell-OpenGLRaw: API entries are loaded dynamically. If an API entry is not found at
+haskell-OpenGLRaw: runtime, a userError is thrown.
diff --git a/haskell/haskell-QuickCheck/README b/haskell/haskell-QuickCheck/README
new file mode 100644
index 0000000000000..fc755754696ad
--- /dev/null
+++ b/haskell/haskell-QuickCheck/README
@@ -0,0 +1,10 @@
+QuickCheck is a library for random testing of program properties.
+The programmer provides a specification of the program, in the form
+of properties which functions should satisfy, and QuickCheck then
+tests that the properties hold in a large number of randomly
+generated cases.
+
+This requires ghc, haskell-transformers, and haskell-mtl.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-QuickCheck/doinst.sh b/haskell/haskell-QuickCheck/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-QuickCheck/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-QuickCheck/haskell-QuickCheck.SlackBuild b/haskell/haskell-QuickCheck/haskell-QuickCheck.SlackBuild
new file mode 100644
index 0000000000000..18524141e0b27
--- /dev/null
+++ b/haskell/haskell-QuickCheck/haskell-QuickCheck.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for QuickCheck
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-QuickCheck
+VERSION=${VERSION:-2.4.0.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-QuickCheck/haskell-QuickCheck.info b/haskell/haskell-QuickCheck/haskell-QuickCheck.info
new file mode 100644
index 0000000000000..91ab2762c07d4
--- /dev/null
+++ b/haskell/haskell-QuickCheck/haskell-QuickCheck.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-QuickCheck"
+VERSION="2.4.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/QuickCheck"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/QuickCheck/2.4.0.1/QuickCheck-2.4.0.1.tar.gz"
+MD5SUM="e8c86e95fd1fa4c58fc8e53e2853db5e"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-QuickCheck/slack-desc b/haskell/haskell-QuickCheck/slack-desc
new file mode 100644
index 0000000000000..3c16d509986b2
--- /dev/null
+++ b/haskell/haskell-QuickCheck/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-QuickCheck: haskell-QuickCheck (Automatic testing of Haskell programs)
+haskell-QuickCheck:
+haskell-QuickCheck: QuickCheck is a library for random testing of program properties.
+haskell-QuickCheck: The programmer provides a specification of the program, in the form
+haskell-QuickCheck: of properties which functions should satisfy, and QuickCheck then
+haskell-QuickCheck: tests that the properties hold in a large number of randomly
+haskell-QuickCheck: generated cases.
+haskell-QuickCheck:
+haskell-QuickCheck: http://hackage.haskell.org/package/QuickCheck
+haskell-QuickCheck:
+haskell-QuickCheck:
diff --git a/haskell/haskell-StateVar/README b/haskell/haskell-StateVar/README
new file mode 100644
index 0000000000000..2d3ee44d074b6
--- /dev/null
+++ b/haskell/haskell-StateVar/README
@@ -0,0 +1,7 @@
+This package contains state variables, which are references in the
+IO monad, like IORefs or parts of the OpenGL state.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-StateVar/doinst.sh b/haskell/haskell-StateVar/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-StateVar/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-StateVar/haskell-StateVar.SlackBuild b/haskell/haskell-StateVar/haskell-StateVar.SlackBuild
new file mode 100644
index 0000000000000..4115010ffbda3
--- /dev/null
+++ b/haskell/haskell-StateVar/haskell-StateVar.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for StateVar
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-StateVar
+VERSION=${VERSION:-1.0.0.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-StateVar/haskell-StateVar.info b/haskell/haskell-StateVar/haskell-StateVar.info
new file mode 100644
index 0000000000000..81467975290d3
--- /dev/null
+++ b/haskell/haskell-StateVar/haskell-StateVar.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-StateVar"
+VERSION="1.0.0.0"
+HOMEPAGE="http://hackage.haskell.org/package/StateVar"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/StateVar/1.0.0.0/StateVar-1.0.0.0.tar.gz"
+MD5SUM="313aa364e9c41bdd87f4bd3710676d63"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-StateVar/slack-desc b/haskell/haskell-StateVar/slack-desc
new file mode 100644
index 0000000000000..cf762cdcda15f
--- /dev/null
+++ b/haskell/haskell-StateVar/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-StateVar: haskell-StateVar (State variables for Haskell)
+haskell-StateVar:
+haskell-StateVar: This package contains state variables, which are references in the
+haskell-StateVar: IO monad, like IORefs or parts of the OpenGL state.
+haskell-StateVar:
+haskell-StateVar:
+haskell-StateVar:
+haskell-StateVar:
+haskell-StateVar:
+haskell-StateVar:
+haskell-StateVar:
diff --git a/haskell/haskell-Tensor/README b/haskell/haskell-Tensor/README
new file mode 100644
index 0000000000000..0ed8491b148b0
--- /dev/null
+++ b/haskell/haskell-Tensor/README
@@ -0,0 +1,7 @@
+This package contains tensor data types and their instances for some
+basic type classes.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-Tensor/doinst.sh b/haskell/haskell-Tensor/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-Tensor/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-Tensor/haskell-Tensor.SlackBuild b/haskell/haskell-Tensor/haskell-Tensor.SlackBuild
new file mode 100644
index 0000000000000..1396770bf218e
--- /dev/null
+++ b/haskell/haskell-Tensor/haskell-Tensor.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for Tensor
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-Tensor
+VERSION=${VERSION:-1.0.0.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-Tensor/haskell-Tensor.info b/haskell/haskell-Tensor/haskell-Tensor.info
new file mode 100644
index 0000000000000..afef4b7d40d66
--- /dev/null
+++ b/haskell/haskell-Tensor/haskell-Tensor.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-Tensor"
+VERSION="1.0.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/Tensor"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/Tensor/1.0.0.1/Tensor-1.0.0.1.tar.gz"
+MD5SUM="67e0393f0cf4f2db06f525853e47811c"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-Tensor/slack-desc b/haskell/haskell-Tensor/slack-desc
new file mode 100644
index 0000000000000..f9e7ead65a452
--- /dev/null
+++ b/haskell/haskell-Tensor/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-Tensor: haskell-Tensor (Tensor data types)
+haskell-Tensor:
+haskell-Tensor: This package contains tensor data types and their instances for some
+haskell-Tensor: basic type classes.
+haskell-Tensor:
+haskell-Tensor:
+haskell-Tensor:
+haskell-Tensor:
+haskell-Tensor:
+haskell-Tensor:
+haskell-Tensor:
diff --git a/haskell/haskell-X11-xft/README b/haskell/haskell-X11-xft/README
new file mode 100644
index 0000000000000..711cb15ac93dd
--- /dev/null
+++ b/haskell/haskell-X11-xft/README
@@ -0,0 +1,6 @@
+haskell-X11-xft is haskell support for xft in X11.
+
+This requires ghc, haskell-X11, and haskell-utf8-string.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-X11-xft/doinst.sh b/haskell/haskell-X11-xft/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-X11-xft/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-X11-xft/haskell-X11-xft.SlackBuild b/haskell/haskell-X11-xft/haskell-X11-xft.SlackBuild
new file mode 100644
index 0000000000000..5e678db3f5322
--- /dev/null
+++ b/haskell/haskell-X11-xft/haskell-X11-xft.SlackBuild
@@ -0,0 +1,89 @@
+#!/bin/sh
+# Slackware build script for X11-xft
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Modified by Andy Bailey (GooseYArd@gmail.com) for X11-xft
+# Public domain.
+
+SRCNAM=X11-xft
+PRGNAM=haskell-$SRCNAM
+VERSION=${VERSION:-0.3}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+GHC_VERSION=$(ghc --numeric-version)
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null || true
+
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-X11-xft/haskell-X11-xft.info b/haskell/haskell-X11-xft/haskell-X11-xft.info
new file mode 100644
index 0000000000000..c12d37f9b7235
--- /dev/null
+++ b/haskell/haskell-X11-xft/haskell-X11-xft.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-X11-xft"
+VERSION="0.3"
+HOMEPAGE="http://hackage.haskell.org/package/X11-xft"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/X11-xft/0.3/X11-xft-0.3.tar.gz"
+MD5SUM="1b4a528a2a4fe5e9de715f6758ff9015"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Andy Bailey"
+EMAIL="GooseYArd@gmail.com"
+APPROVED="Erik Hanson"
diff --git a/haskell/haskell-X11-xft/slack-desc b/haskell/haskell-X11-xft/slack-desc
new file mode 100644
index 0000000000000..d8f386dc70b26
--- /dev/null
+++ b/haskell/haskell-X11-xft/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-X11-xft: haskell-X11-xft (haskell bindings to the xft library)
+haskell-X11-xft:
+haskell-X11-xft: Haskell bindings to the Xft, X Free Type interface library,
+haskell-X11-xft: and some Xrender parts.
+haskell-X11-xft:
+haskell-X11-xft: http://hackage.haskell.org/package/X11-xft
+haskell-X11-xft:
+haskell-X11-xft:
+haskell-X11-xft:
+haskell-X11-xft:
+haskell-X11-xft:
diff --git a/haskell/haskell-X11/README b/haskell/haskell-X11/README
new file mode 100644
index 0000000000000..64f452c70f66f
--- /dev/null
+++ b/haskell/haskell-X11/README
@@ -0,0 +1,9 @@
+A Haskell binding to the X11 graphics library. The binding is a
+direct translation of the C binding; for documentation of these calls,
+refer to The Xlib Programming Manual, available online at
+http://tronche.com/gui/x/xlib/.
+
+This requires ghc and haskell-syb from SlackBuilds.org.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-X11/doinst.sh b/haskell/haskell-X11/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-X11/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-X11/haskell-X11.SlackBuild b/haskell/haskell-X11/haskell-X11.SlackBuild
new file mode 100644
index 0000000000000..dd72723ba3880
--- /dev/null
+++ b/haskell/haskell-X11/haskell-X11.SlackBuild
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+# Slackware build script for X11
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-X11
+VERSION=${VERSION:-1.5.0.0}
+BUILD=${BUILD:-3}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-X11/haskell-X11.info b/haskell/haskell-X11/haskell-X11.info
new file mode 100644
index 0000000000000..e4fcc8604aa2d
--- /dev/null
+++ b/haskell/haskell-X11/haskell-X11.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-X11"
+VERSION="1.5.0.0"
+HOMEPAGE="http://hackage.haskell.org/package/X11"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/X11/1.5.0.0/X11-1.5.0.0.tar.gz"
+MD5SUM="ec6670f5ce1812206903c8a0fd9df04c"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-X11/slack-desc b/haskell/haskell-X11/slack-desc
new file mode 100644
index 0000000000000..922c7a60d8f12
--- /dev/null
+++ b/haskell/haskell-X11/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-X11: haskell-X11 (A Haskell binding to the X11 graphics library)
+haskell-X11:
+haskell-X11: The binding is a direct translation of the C binding; for
+haskell-X11: documentation of these calls, refer to The Xlib Programming Manual,
+haskell-X11: available online at http://tronche.com/gui/x/xlib/.
+haskell-X11:
+haskell-X11: http://hackage.haskell.org/package/X11
+haskell-X11:
+haskell-X11:
+haskell-X11:
+haskell-X11:
diff --git a/haskell/haskell-ansi-terminal/README b/haskell/haskell-ansi-terminal/README
new file mode 100644
index 0000000000000..1cde06ceeb817
--- /dev/null
+++ b/haskell/haskell-ansi-terminal/README
@@ -0,0 +1,8 @@
+ANSI terminal support for Haskell: allows cursor movement, screen
+clearing, color output showing or hiding the cursor, and changing
+the title.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-ansi-terminal/doinst.sh b/haskell/haskell-ansi-terminal/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-ansi-terminal/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-ansi-terminal/haskell-ansi-terminal.SlackBuild b/haskell/haskell-ansi-terminal/haskell-ansi-terminal.SlackBuild
new file mode 100644
index 0000000000000..a9e25df1b62da
--- /dev/null
+++ b/haskell/haskell-ansi-terminal/haskell-ansi-terminal.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for ansi-terminal
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-ansi-terminal
+VERSION=${VERSION:-0.5.5}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-ansi-terminal/haskell-ansi-terminal.info b/haskell/haskell-ansi-terminal/haskell-ansi-terminal.info
new file mode 100644
index 0000000000000..51a6d6eeb41de
--- /dev/null
+++ b/haskell/haskell-ansi-terminal/haskell-ansi-terminal.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-ansi-terminal"
+VERSION="0.5.5"
+HOMEPAGE="http://hackage.haskell.org/package/ansi-terminal"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/ansi-terminal/0.5.5/ansi-terminal-0.5.5.tar.gz"
+MD5SUM="5ad9e6561f0de1a2e98b6c72d119ea75"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-ansi-terminal/slack-desc b/haskell/haskell-ansi-terminal/slack-desc
new file mode 100644
index 0000000000000..d76be32bf3cb7
--- /dev/null
+++ b/haskell/haskell-ansi-terminal/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-ansi-terminal: haskell-ansi-terminal (Simple ANSI terminal support)
+haskell-ansi-terminal:
+haskell-ansi-terminal: ANSI terminal support for Haskell: allows cursor movement, screen
+haskell-ansi-terminal: clearing, color output showing or hiding the cursor, and changing
+haskell-ansi-terminal: the title.
+haskell-ansi-terminal:
+haskell-ansi-terminal:
+haskell-ansi-terminal:
+haskell-ansi-terminal:
+haskell-ansi-terminal:
+haskell-ansi-terminal:
diff --git a/haskell/haskell-ansi-wl-pprint/README b/haskell/haskell-ansi-wl-pprint/README
new file mode 100644
index 0000000000000..44c4974c14537
--- /dev/null
+++ b/haskell/haskell-ansi-wl-pprint/README
@@ -0,0 +1,8 @@
+This is a pretty printing library based on Wadler's paper A Prettier
+Printer. It has been enhanced with support for ANSI terminal colored
+output using the ansi-terminal package.
+
+This requires ghc, and haskell-ansi-terminal.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-ansi-wl-pprint/doinst.sh b/haskell/haskell-ansi-wl-pprint/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-ansi-wl-pprint/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-ansi-wl-pprint/haskell-ansi-wl-pprint.SlackBuild b/haskell/haskell-ansi-wl-pprint/haskell-ansi-wl-pprint.SlackBuild
new file mode 100644
index 0000000000000..de4a690b593fd
--- /dev/null
+++ b/haskell/haskell-ansi-wl-pprint/haskell-ansi-wl-pprint.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for ansi-wl-pprint
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-ansi-wl-pprint
+VERSION=${VERSION:-0.6.3}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-ansi-wl-pprint/haskell-ansi-wl-pprint.info b/haskell/haskell-ansi-wl-pprint/haskell-ansi-wl-pprint.info
new file mode 100644
index 0000000000000..db2f5ee8def2f
--- /dev/null
+++ b/haskell/haskell-ansi-wl-pprint/haskell-ansi-wl-pprint.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-ansi-wl-pprint"
+VERSION="0.6.3"
+HOMEPAGE="http://hackage.haskell.org/package/ansi-wl-pprint"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/ansi-wl-pprint/0.6.3/ansi-wl-pprint-0.6.3.tar.gz"
+MD5SUM="1a58d605d340226a74074d7e5583565d"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-ansi-wl-pprint/slack-desc b/haskell/haskell-ansi-wl-pprint/slack-desc
new file mode 100644
index 0000000000000..08da3a9e29931
--- /dev/null
+++ b/haskell/haskell-ansi-wl-pprint/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-ansi-wl-pprint: haskell-ansi-wl-pprint (The Wadler/Leijen Pretty Printer)
+haskell-ansi-wl-pprint:
+haskell-ansi-wl-pprint: This is a pretty printing library based on Wadler's paper A Prettier
+haskell-ansi-wl-pprint: Printer. It has been enhanced with support for ANSI terminal colored
+haskell-ansi-wl-pprint: output using the ansi-terminal package.
+haskell-ansi-wl-pprint:
+haskell-ansi-wl-pprint:
+haskell-ansi-wl-pprint:
+haskell-ansi-wl-pprint:
+haskell-ansi-wl-pprint:
+haskell-ansi-wl-pprint:
diff --git a/haskell/haskell-binary/README b/haskell/haskell-binary/README
new file mode 100644
index 0000000000000..34fa609952d2d
--- /dev/null
+++ b/haskell/haskell-binary/README
@@ -0,0 +1,8 @@
+This is a library for Haskell programs, providing high performance binary
+serialisation of Haskell data. It uses the ByteString library to achieve
+efficient, lazy reading and writing of structures in binary format.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-binary/doinst.sh b/haskell/haskell-binary/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-binary/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-binary/haskell-binary.SlackBuild b/haskell/haskell-binary/haskell-binary.SlackBuild
new file mode 100644
index 0000000000000..145b949840d8a
--- /dev/null
+++ b/haskell/haskell-binary/haskell-binary.SlackBuild
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+# Slackware build script for binary
+
+# Written by Peter Wang <novalazy@gmail.com>
+# Modified by Mikko Värri <vmj@linuxbox.fi>
+# Public domain.
+
+PRGNAM=haskell-binary
+VERSION=${VERSION:-0.5.0.2}
+BUILD=${BUILD:-4}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e # Exit on most errors
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --libsubdir=ghc-$GHC_VERSION/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+install -m 644 LICENSE README $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-binary/haskell-binary.info b/haskell/haskell-binary/haskell-binary.info
new file mode 100644
index 0000000000000..3f9c55403b804
--- /dev/null
+++ b/haskell/haskell-binary/haskell-binary.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-binary"
+VERSION="0.5.0.2"
+HOMEPAGE="http://hackage.haskell.org/package/binary"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/binary/0.5.0.2/binary-0.5.0.2.tar.gz"
+MD5SUM="6bf8f3d1441602c9ab09a75e3bd6e926"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-binary/slack-desc b/haskell/haskell-binary/slack-desc
new file mode 100644
index 0000000000000..06140eecf88ff
--- /dev/null
+++ b/haskell/haskell-binary/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-binary: haskell-binary (binary serialisation library for Haskell)
+haskell-binary:
+haskell-binary: This is a library for Haskell programs, providing high
+haskell-binary: performance binary serialisation of Haskell data. It uses the
+haskell-binary: ByteString library to achieve efficient, lazy reading and
+haskell-binary: writing of structures in binary format.
+haskell-binary:
+haskell-binary:
+haskell-binary:
+haskell-binary:
+haskell-binary:
diff --git a/haskell/haskell-cgi/README b/haskell/haskell-cgi/README
new file mode 100644
index 0000000000000..488b06326f8a1
--- /dev/null
+++ b/haskell/haskell-cgi/README
@@ -0,0 +1,6 @@
+This is a Haskell library for writing CGI programs.
+
+This requires haskell-MonadCatchIO-mtl, haskell-network and haskell-xhtml.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-cgi/doinst.sh b/haskell/haskell-cgi/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-cgi/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-cgi/haskell-cgi.SlackBuild b/haskell/haskell-cgi/haskell-cgi.SlackBuild
new file mode 100644
index 0000000000000..7204d4426865b
--- /dev/null
+++ b/haskell/haskell-cgi/haskell-cgi.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for cgi
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-cgi
+VERSION=${VERSION:-3001.1.8.2}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-cgi/haskell-cgi.info b/haskell/haskell-cgi/haskell-cgi.info
new file mode 100644
index 0000000000000..8c6dafe586e18
--- /dev/null
+++ b/haskell/haskell-cgi/haskell-cgi.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-cgi"
+VERSION="3001.1.8.2"
+HOMEPAGE="http://hackage.haskell.org/package/cgi"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/cgi/3001.1.8.2/cgi-3001.1.8.2.tar.gz"
+MD5SUM="4092efaf00ac329b9771879f57a95323"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-cgi/slack-desc b/haskell/haskell-cgi/slack-desc
new file mode 100644
index 0000000000000..c3be26224754c
--- /dev/null
+++ b/haskell/haskell-cgi/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-cgi: haskell-cgi (A Haskell library for writing CGI programs)
+haskell-cgi:
+haskell-cgi: This is a Haskell library for writing CGI programs.
+haskell-cgi:
+haskell-cgi: http://hackage.haskell.org/package/cgi
+haskell-cgi:
+haskell-cgi:
+haskell-cgi:
+haskell-cgi:
+haskell-cgi:
+haskell-cgi:
diff --git a/haskell/haskell-dataenc/README b/haskell/haskell-dataenc/README
new file mode 100644
index 0000000000000..0e39f95c01b21
--- /dev/null
+++ b/haskell/haskell-dataenc/README
@@ -0,0 +1,8 @@
+Data encoding library currently providing Base16, Base32, Base32Hex,
+Base64, Base64Url, Base85, Python string escaping, Quoted-Printable,
+URL encoding, uuencode, xxencode, and yEncoding.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-dataenc/doinst.sh b/haskell/haskell-dataenc/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-dataenc/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-dataenc/haskell-dataenc.SlackBuild b/haskell/haskell-dataenc/haskell-dataenc.SlackBuild
new file mode 100644
index 0000000000000..24cb79f9e5ec6
--- /dev/null
+++ b/haskell/haskell-dataenc/haskell-dataenc.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for dataenc
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-dataenc
+VERSION=${VERSION:-0.13.0.4}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-dataenc/haskell-dataenc.info b/haskell/haskell-dataenc/haskell-dataenc.info
new file mode 100644
index 0000000000000..7776ddef0a2e2
--- /dev/null
+++ b/haskell/haskell-dataenc/haskell-dataenc.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-dataenc"
+VERSION="0.13.0.4"
+HOMEPAGE="http://hackage.haskell.org/package/dataenc"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/dataenc/0.13.0.4/dataenc-0.13.0.4.tar.gz"
+MD5SUM="4764fa7f75ed3ee95a759d67d1347d46"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-dataenc/slack-desc b/haskell/haskell-dataenc/slack-desc
new file mode 100644
index 0000000000000..bea7b806f29c3
--- /dev/null
+++ b/haskell/haskell-dataenc/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-dataenc: haskell-dataenc (Data encoding library)
+haskell-dataenc:
+haskell-dataenc: Data encoding library currently providing Base16, Base32, Base32Hex,
+haskell-dataenc: Base64, Base64Url, Base85, Python string escaping, Quoted-Printable,
+haskell-dataenc: URL encoding, uuencode, xxencode, and yEncoding.
+haskell-dataenc:
+haskell-dataenc: http://hackage.haskell.org/package/dataenc
+haskell-dataenc:
+haskell-dataenc:
+haskell-dataenc:
+haskell-dataenc:
diff --git a/haskell/haskell-deepseq/README b/haskell/haskell-deepseq/README
new file mode 100644
index 0000000000000..409bf706fc201
--- /dev/null
+++ b/haskell/haskell-deepseq/README
@@ -0,0 +1,7 @@
+This package provides a "deep" version of seq, for fully evaluating
+data structures.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-deepseq/doinst.sh b/haskell/haskell-deepseq/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-deepseq/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-deepseq/haskell-deepseq.SlackBuild b/haskell/haskell-deepseq/haskell-deepseq.SlackBuild
new file mode 100644
index 0000000000000..eab0b06d141c8
--- /dev/null
+++ b/haskell/haskell-deepseq/haskell-deepseq.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for deepseq
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-deepseq
+VERSION=${VERSION:-1.1.0.2}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-deepseq/haskell-deepseq.info b/haskell/haskell-deepseq/haskell-deepseq.info
new file mode 100644
index 0000000000000..997005544fbae
--- /dev/null
+++ b/haskell/haskell-deepseq/haskell-deepseq.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-deepseq"
+VERSION="1.1.0.2"
+HOMEPAGE="http://hackage.haskell.org/package/deepseq"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/deepseq/1.1.0.2/deepseq-1.1.0.2.tar.gz"
+MD5SUM="90b66480f0eb659c1db209ee703e0162"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-deepseq/slack-desc b/haskell/haskell-deepseq/slack-desc
new file mode 100644
index 0000000000000..b0a5792930479
--- /dev/null
+++ b/haskell/haskell-deepseq/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-deepseq: haskell-deepseq (Fully evaluate data structures in Haskell)
+haskell-deepseq:
+haskell-deepseq: This package provides a "deep" version of seq, for fully evaluating
+haskell-deepseq: data structures.
+haskell-deepseq:
+haskell-deepseq: http://hackage.haskell.org/package/deepseq
+haskell-deepseq:
+haskell-deepseq:
+haskell-deepseq:
+haskell-deepseq:
+haskell-deepseq:
diff --git a/haskell/haskell-digest/README b/haskell/haskell-digest/README
new file mode 100644
index 0000000000000..3d1bce3dd679c
--- /dev/null
+++ b/haskell/haskell-digest/README
@@ -0,0 +1,8 @@
+This is a library for Haskell programs, providing efficient cryptographic hash
+implementations for strict and lazy bytestrings. CRC32 and Adler32 are
+supported; they are implemented as FFI bindings to efficient code from zlib.
+
+This requires ghc.
+
+After uninstalling, run the following command to unregister the package
+from the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-digest/doinst.sh b/haskell/haskell-digest/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-digest/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-digest/haskell-digest.SlackBuild b/haskell/haskell-digest/haskell-digest.SlackBuild
new file mode 100644
index 0000000000000..29a1e37cf706e
--- /dev/null
+++ b/haskell/haskell-digest/haskell-digest.SlackBuild
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+# Slackware build script for digest
+
+# Written by Peter Wang <novalazy@gmail.com>
+# Modified by Mikko Värri <vmj@linuxbox.fi>
+# Public domain.
+
+PRGNAM=haskell-digest
+VERSION=${VERSION:-0.0.0.9}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e # Exit on most errors
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --libsubdir=ghc-$GHC_VERSION/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-digest/haskell-digest.info b/haskell/haskell-digest/haskell-digest.info
new file mode 100644
index 0000000000000..edf39d01fb421
--- /dev/null
+++ b/haskell/haskell-digest/haskell-digest.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-digest"
+VERSION="0.0.0.9"
+HOMEPAGE="http://hackage.haskell.org/package/digest"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/digest/0.0.0.9/digest-0.0.0.9.tar.gz"
+MD5SUM="0f35175426d9e443516ac3fa2bf91311"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-digest/slack-desc b/haskell/haskell-digest/slack-desc
new file mode 100644
index 0000000000000..568dc7129353c
--- /dev/null
+++ b/haskell/haskell-digest/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-digest: haskell-digest (cryptographic hash library for Haskell)
+haskell-digest:
+haskell-digest: This is a library for Haskell programs, providing efficient
+haskell-digest: cryptographic hash implementations for strict and lazy
+haskell-digest: bytestrings. CRC32 and Adler32 are supported; they are
+haskell-digest: implemented as FFI bindings to efficient code from zlib.
+haskell-digest:
+haskell-digest:
+haskell-digest:
+haskell-digest:
+haskell-digest:
diff --git a/haskell/haskell-editline/README b/haskell/haskell-editline/README
new file mode 100644
index 0000000000000..0f36b82abcc6d
--- /dev/null
+++ b/haskell/haskell-editline/README
@@ -0,0 +1,10 @@
+This package contains Haskell bindings to the BSD editline library.
+It provides a basic interface to the editline API for reading lines of
+input from the user. Additionally, a readline compatibility module is
+included which provides a subset of the functions from the readline
+package.
+
+This requires libedit and ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-editline/doinst.sh b/haskell/haskell-editline/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-editline/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-editline/haskell-editline.SlackBuild b/haskell/haskell-editline/haskell-editline.SlackBuild
new file mode 100644
index 0000000000000..f07fc4011abf3
--- /dev/null
+++ b/haskell/haskell-editline/haskell-editline.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for editline
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-editline
+VERSION=${VERSION:-0.2.1.0}
+BUILD=${BUILD:-3}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-editline/haskell-editline.info b/haskell/haskell-editline/haskell-editline.info
new file mode 100644
index 0000000000000..efbfcf748d57a
--- /dev/null
+++ b/haskell/haskell-editline/haskell-editline.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-editline"
+VERSION="0.2.1.0"
+HOMEPAGE="http://hackage.haskell.org/package/editline"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/editline/0.2.1.0/editline-0.2.1.0.tar.gz"
+MD5SUM="fa57f434e538bb32bbfa97aface34358"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-editline/slack-desc b/haskell/haskell-editline/slack-desc
new file mode 100644
index 0000000000000..9e942b8e2f13d
--- /dev/null
+++ b/haskell/haskell-editline/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-editline: haskell-editline (Bindings to the editline library (libedit))
+haskell-editline:
+haskell-editline: This package contains bindings to the BSD editline library. It
+haskell-editline: provides a basic interface to the editline API for reading lines of
+haskell-editline: input from the user. Additionally, a readline compatibility module
+haskell-editline: is included which provides a subset of the functions from the
+haskell-editline: readline package.
+haskell-editline:
+haskell-editline: http://hackage.haskell.org/package/editline
+haskell-editline:
+haskell-editline:
diff --git a/haskell/haskell-fgl/README b/haskell/haskell-fgl/README
new file mode 100644
index 0000000000000..ed8951f045031
--- /dev/null
+++ b/haskell/haskell-fgl/README
@@ -0,0 +1,7 @@
+The functional graph library for Haskell provides several modules
+that define inductive graphs and graph algorithms.
+
+This requires ghc, haskell-transformers, and haskell-mtl.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-fgl/doinst.sh b/haskell/haskell-fgl/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-fgl/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-fgl/haskell-fgl.SlackBuild b/haskell/haskell-fgl/haskell-fgl.SlackBuild
new file mode 100644
index 0000000000000..238be494db345
--- /dev/null
+++ b/haskell/haskell-fgl/haskell-fgl.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for fgl
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-fgl
+VERSION=${VERSION:-5.4.2.3}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-fgl/haskell-fgl.info b/haskell/haskell-fgl/haskell-fgl.info
new file mode 100644
index 0000000000000..8c3fa0bd57a48
--- /dev/null
+++ b/haskell/haskell-fgl/haskell-fgl.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-fgl"
+VERSION="5.4.2.3"
+HOMEPAGE="http://hackage.haskell.org/package/fgl"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/fgl/5.4.2.3/fgl-5.4.2.3.tar.gz"
+MD5SUM="29ccab8bebed16a8d7346c3ed52c5d9c"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-fgl/slack-desc b/haskell/haskell-fgl/slack-desc
new file mode 100644
index 0000000000000..a08e2317bd349
--- /dev/null
+++ b/haskell/haskell-fgl/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-fgl: haskell-fgl (Martin Erwig's Functional Graph Library)
+haskell-fgl:
+haskell-fgl: The functional graph library for Haskell provides several modules
+haskell-fgl: that define inductive graphs and graph algorithms.
+haskell-fgl:
+haskell-fgl: http://hackage.haskell.org/package/fgl
+haskell-fgl:
+haskell-fgl:
+haskell-fgl:
+haskell-fgl:
+haskell-fgl:
diff --git a/haskell/haskell-ghc-paths/README b/haskell/haskell-ghc-paths/README
new file mode 100644
index 0000000000000..251c68ed71787
--- /dev/null
+++ b/haskell/haskell-ghc-paths/README
@@ -0,0 +1,6 @@
+haskell-ghc-paths gives knowledge of GHC's installation directories.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-ghc-paths/doinst.sh b/haskell/haskell-ghc-paths/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-ghc-paths/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-ghc-paths/haskell-ghc-paths.SlackBuild b/haskell/haskell-ghc-paths/haskell-ghc-paths.SlackBuild
new file mode 100644
index 0000000000000..9ca777fa40b32
--- /dev/null
+++ b/haskell/haskell-ghc-paths/haskell-ghc-paths.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for ghc-paths
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-ghc-paths
+VERSION=${VERSION:-0.1.0.8}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-ghc-paths/haskell-ghc-paths.info b/haskell/haskell-ghc-paths/haskell-ghc-paths.info
new file mode 100644
index 0000000000000..4c2c5064ce6e4
--- /dev/null
+++ b/haskell/haskell-ghc-paths/haskell-ghc-paths.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-ghc-paths"
+VERSION="0.1.0.8"
+HOMEPAGE="http://hackage.haskell.org/package/ghc-paths"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/ghc-paths/0.1.0.8/ghc-paths-0.1.0.8.tar.gz"
+MD5SUM="d2b23dc563888e380588501d2ce1d82b"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-ghc-paths/slack-desc b/haskell/haskell-ghc-paths/slack-desc
new file mode 100644
index 0000000000000..0924f67de780b
--- /dev/null
+++ b/haskell/haskell-ghc-paths/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-ghc-paths: haskell-ghc-paths (gives knowledge of GHC's installation directories)
+haskell-ghc-paths:
+haskell-ghc-paths: This package gives knowledge of GHC's installation directories.
+haskell-ghc-paths:
+haskell-ghc-paths:
+haskell-ghc-paths:
+haskell-ghc-paths:
+haskell-ghc-paths:
+haskell-ghc-paths:
+haskell-ghc-paths:
+haskell-ghc-paths:
diff --git a/haskell/haskell-hashed-storage/README b/haskell/haskell-hashed-storage/README
new file mode 100644
index 0000000000000..2f8d278cd86f3
--- /dev/null
+++ b/haskell/haskell-hashed-storage/README
@@ -0,0 +1,13 @@
+Support code for reading and manipulating hashed file storage (where
+each file and directory is associated with a cryptographic hash, for
+corruption-resistant storage and fast comparisons).
+
+The supported storage formats include darcs hashed pristine, a plain
+filesystem tree and an indexed plain tree (where the index maintains
+hashes of the plain files and directories).
+
+This requires ghc, haskell-binary, haskell-dataenc, haskell-mmap,
+haskell-transformers, haskell-zlib, and haskell-mtl.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-hashed-storage/doinst.sh b/haskell/haskell-hashed-storage/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-hashed-storage/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-hashed-storage/haskell-hashed-storage.SlackBuild b/haskell/haskell-hashed-storage/haskell-hashed-storage.SlackBuild
new file mode 100644
index 0000000000000..f6e04cccd8968
--- /dev/null
+++ b/haskell/haskell-hashed-storage/haskell-hashed-storage.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for hashed-storage
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-hashed-storage
+VERSION=${VERSION:-0.5.4}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE NEWS $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-hashed-storage/haskell-hashed-storage.info b/haskell/haskell-hashed-storage/haskell-hashed-storage.info
new file mode 100644
index 0000000000000..9a6e8d4f5e71e
--- /dev/null
+++ b/haskell/haskell-hashed-storage/haskell-hashed-storage.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-hashed-storage"
+VERSION="0.5.4"
+HOMEPAGE="http://hackage.haskell.org/package/hashed-storage"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/hashed-storage/0.5.4/hashed-storage-0.5.4.tar.gz"
+MD5SUM="e182a3fe6f977b0df85641da5df8e4f2"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-hashed-storage/slack-desc b/haskell/haskell-hashed-storage/slack-desc
new file mode 100644
index 0000000000000..82b57a0e6d195
--- /dev/null
+++ b/haskell/haskell-hashed-storage/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-hashed-storage: haskell-hashed-storage (Hashed file storage support code)
+haskell-hashed-storage:
+haskell-hashed-storage: Support code for reading and manipulating hashed file storage (where
+haskell-hashed-storage: each file and directory is associated with a cryptographic hash, for
+haskell-hashed-storage: corruption-resistant storage and fast comparisons).
+haskell-hashed-storage:
+haskell-hashed-storage: The supported storage formats include darcs hashed pristine, a plain
+haskell-hashed-storage: filesystem tree and an indexed plain tree (where the index maintains
+haskell-hashed-storage: hashes of the plain files and directories).
+haskell-hashed-storage:
+haskell-hashed-storage: http://hackage.haskell.org/package/hashed-storage
diff --git a/haskell/haskell-haskeline/README b/haskell/haskell-haskeline/README
new file mode 100644
index 0000000000000..5ad216dcb7f63
--- /dev/null
+++ b/haskell/haskell-haskeline/README
@@ -0,0 +1,10 @@
+Haskeline provides a user interface for line input in command-line
+programs. This library is similar in purpose to readline, but since
+it is written in Haskell, it is (hopefully) more easily used in other
+Haskell programs.
+
+This requires ghc, haskell-transformers, haskell-mtl,
+haskell-terminfo, and haskell-utf8-string.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-haskeline/doinst.sh b/haskell/haskell-haskeline/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-haskeline/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-haskeline/haskell-haskeline.SlackBuild b/haskell/haskell-haskeline/haskell-haskeline.SlackBuild
new file mode 100644
index 0000000000000..87e07cc7dd51c
--- /dev/null
+++ b/haskell/haskell-haskeline/haskell-haskeline.SlackBuild
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+# Slackware build script for haskeline
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-haskeline
+VERSION=${VERSION:-0.6.3.2}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --flags="terminfo"
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a CHANGES LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-haskeline/haskell-haskeline.info b/haskell/haskell-haskeline/haskell-haskeline.info
new file mode 100644
index 0000000000000..bd1dc3fd1f362
--- /dev/null
+++ b/haskell/haskell-haskeline/haskell-haskeline.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-haskeline"
+VERSION="0.6.3.2"
+HOMEPAGE="http://hackage.haskell.org/package/haskeline"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/haskeline/0.6.3.2/haskeline-0.6.3.2.tar.gz"
+MD5SUM="d75863f63a1cfb499d0198e4f28ac2af"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-haskeline/slack-desc b/haskell/haskell-haskeline/slack-desc
new file mode 100644
index 0000000000000..2355477de48b1
--- /dev/null
+++ b/haskell/haskell-haskeline/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-haskeline: haskell-haskeline (A command-line interface for user input)
+haskell-haskeline:
+haskell-haskeline: Haskeline provides a user interface for line input in command-line
+haskell-haskeline: programs. This library is similar in purpose to readline, but since
+haskell-haskeline: it is written in Haskell it is (hopefully) more easily used in other
+haskell-haskeline: Haskell programs.
+haskell-haskeline:
+haskell-haskeline: http://hackage.haskell.org/package/haskeline
+haskell-haskeline:
+haskell-haskeline:
+haskell-haskeline:
diff --git a/haskell/haskell-haskell-src/README b/haskell/haskell-haskell-src/README
new file mode 100644
index 0000000000000..1d66af8621ece
--- /dev/null
+++ b/haskell/haskell-haskell-src/README
@@ -0,0 +1,7 @@
+Facilities for manipulating Haskell source code: an abstract syntax,
+lexer, parser, and pretty-printer.
+
+This requires ghc, happy, and haskell-syb.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-haskell-src/doinst.sh b/haskell/haskell-haskell-src/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-haskell-src/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-haskell-src/haskell-haskell-src.SlackBuild b/haskell/haskell-haskell-src/haskell-haskell-src.SlackBuild
new file mode 100644
index 0000000000000..225878ade4b6f
--- /dev/null
+++ b/haskell/haskell-haskell-src/haskell-haskell-src.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for haskell-src
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-haskell-src
+VERSION=${VERSION:-1.0.1.4}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-haskell-src/haskell-haskell-src.info b/haskell/haskell-haskell-src/haskell-haskell-src.info
new file mode 100644
index 0000000000000..63050d484c6ee
--- /dev/null
+++ b/haskell/haskell-haskell-src/haskell-haskell-src.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-haskell-src"
+VERSION="1.0.1.4"
+HOMEPAGE="http://hackage.haskell.org/package/haskell-src"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/haskell-src/1.0.1.4/haskell-src-1.0.1.4.tar.gz"
+MD5SUM="32d181c082393ab859e72610803bac6e"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-haskell-src/slack-desc b/haskell/haskell-haskell-src/slack-desc
new file mode 100644
index 0000000000000..07c6b40709bf3
--- /dev/null
+++ b/haskell/haskell-haskell-src/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-haskell-src: haskell-haskell-src (Manipulating Haskell source code)
+haskell-haskell-src:
+haskell-haskell-src: Facilities for manipulating Haskell source code: an abstract syntax,
+haskell-haskell-src: lexer, parser and pretty-printer.
+haskell-haskell-src:
+haskell-haskell-src: http://hackage.haskell.org/package/haskell-src
+haskell-haskell-src:
+haskell-haskell-src:
+haskell-haskell-src:
+haskell-haskell-src:
+haskell-haskell-src:
diff --git a/haskell/haskell-hinotify/README b/haskell/haskell-hinotify/README
new file mode 100644
index 0000000000000..4b31faab0f462
--- /dev/null
+++ b/haskell/haskell-hinotify/README
@@ -0,0 +1,8 @@
+inotify provides file system event notification, simply add a watcher to
+a file or directory and get an event when it is accessed or modified.
+This package provides haskell bindings for inotify.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-hinotify/doinst.sh b/haskell/haskell-hinotify/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-hinotify/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-hinotify/haskell-hinotify.SlackBuild b/haskell/haskell-hinotify/haskell-hinotify.SlackBuild
new file mode 100644
index 0000000000000..0374b97aea6ff
--- /dev/null
+++ b/haskell/haskell-hinotify/haskell-hinotify.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for hinotify
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Modified by Andy Bailey (GooseYArd@gmail.com) for hinotify
+# Public domain.
+
+SRCNAM=hinotify
+PRGNAM=haskell-$SRCNAM
+VERSION=${VERSION:-0.3.1}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+GHC_VERSION=$(ghc --numeric-version)
+
+# Automatically determine the architecture we're building on:
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-hinotify/haskell-hinotify.info b/haskell/haskell-hinotify/haskell-hinotify.info
new file mode 100644
index 0000000000000..728dd9939d2e0
--- /dev/null
+++ b/haskell/haskell-hinotify/haskell-hinotify.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-hinotify"
+VERSION="0.3.1"
+HOMEPAGE="http://hackage.haskell.org/package/hinotify"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/hinotify/0.3.1/hinotify-0.3.1.tar.gz"
+MD5SUM="b24191dab428cd0bfb74af9f0ab68372"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Andy Bailey"
+EMAIL="GooseYArd@gmail.com"
+APPROVED="Erik Hanson"
diff --git a/haskell/haskell-hinotify/slack-desc b/haskell/haskell-hinotify/slack-desc
new file mode 100644
index 0000000000000..a8d4c7b41f624
--- /dev/null
+++ b/haskell/haskell-hinotify/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-hinotify: haskell-hinotify (file system event notifications)
+haskell-hinotify:
+haskell-hinotify: inotify provides file system event notification, simply add a watcher
+haskell-hinotify: to a file or directory and get an event when it is accessed or
+haskell-hinotify: modified.
+haskell-hinotify:
+haskell-hinotify: http://hackage.haskell.org/package/hinotify
+haskell-hinotify:
+haskell-hinotify:
+haskell-hinotify:
+haskell-hinotify:
diff --git a/haskell/haskell-hostname/README b/haskell/haskell-hostname/README
new file mode 100644
index 0000000000000..9dd0d404fc93e
--- /dev/null
+++ b/haskell/haskell-hostname/README
@@ -0,0 +1,7 @@
+A very simple package providing a cross-platform means of
+determining the hostname.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-hostname/doinst.sh b/haskell/haskell-hostname/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-hostname/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-hostname/haskell-hostname.SlackBuild b/haskell/haskell-hostname/haskell-hostname.SlackBuild
new file mode 100644
index 0000000000000..a818061962a64
--- /dev/null
+++ b/haskell/haskell-hostname/haskell-hostname.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for hostname
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-hostname
+VERSION=${VERSION:-1.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-hostname/haskell-hostname.info b/haskell/haskell-hostname/haskell-hostname.info
new file mode 100644
index 0000000000000..029071f2bf482
--- /dev/null
+++ b/haskell/haskell-hostname/haskell-hostname.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-hostname"
+VERSION="1.0"
+HOMEPAGE="http://hackage.haskell.org/package/hostname"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/hostname/1.0/hostname-1.0.tar.gz"
+MD5SUM="9389c8634239e5d6096ef563e59a703f"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-hostname/slack-desc b/haskell/haskell-hostname/slack-desc
new file mode 100644
index 0000000000000..c890efcd732d7
--- /dev/null
+++ b/haskell/haskell-hostname/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-hostname: haskell-hostname (cross-platform getHostName function for Haskell)
+haskell-hostname:
+haskell-hostname: A very simple package providing a cross-platform means of
+haskell-hostname: determining the hostname.
+haskell-hostname:
+haskell-hostname:
+haskell-hostname:
+haskell-hostname:
+haskell-hostname:
+haskell-hostname:
+haskell-hostname:
diff --git a/haskell/haskell-html/README b/haskell/haskell-html/README
new file mode 100644
index 0000000000000..05e7b5f4e4138
--- /dev/null
+++ b/haskell/haskell-html/README
@@ -0,0 +1,7 @@
+This package contains a combinator library for constructing HTML
+documents in Haskell.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-html/doinst.sh b/haskell/haskell-html/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-html/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-html/haskell-html.SlackBuild b/haskell/haskell-html/haskell-html.SlackBuild
new file mode 100644
index 0000000000000..5cfef04593d47
--- /dev/null
+++ b/haskell/haskell-html/haskell-html.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for html
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-html
+VERSION=${VERSION:-1.0.1.2}
+BUILD=${BUILD:-3}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-html/haskell-html.info b/haskell/haskell-html/haskell-html.info
new file mode 100644
index 0000000000000..b7f31a31be833
--- /dev/null
+++ b/haskell/haskell-html/haskell-html.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-html"
+VERSION="1.0.1.2"
+HOMEPAGE="http://hackage.haskell.org/package/html"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/html/1.0.1.2/html-1.0.1.2.tar.gz"
+MD5SUM="2a7de5a2af9a2f80d39825d6a95ee445"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-html/slack-desc b/haskell/haskell-html/slack-desc
new file mode 100644
index 0000000000000..25038065721de
--- /dev/null
+++ b/haskell/haskell-html/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-html: haskell-html (HTML combinator library)
+haskell-html:
+haskell-html: This package contains a combinator library for constructing HTML
+haskell-html: documents.
+haskell-html:
+haskell-html: http://hackage.haskell.org/package/html
+haskell-html:
+haskell-html:
+haskell-html:
+haskell-html:
+haskell-html:
diff --git a/haskell/haskell-lcs/README b/haskell/haskell-lcs/README
new file mode 100644
index 0000000000000..c2787610070e8
--- /dev/null
+++ b/haskell/haskell-lcs/README
@@ -0,0 +1,7 @@
+Provides a function lcs that takes two lists and returns a longest
+common sublist. For example, lcs abcd acbd is either abd or acd.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-lcs/doinst.sh b/haskell/haskell-lcs/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-lcs/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-lcs/haskell-lcs.SlackBuild b/haskell/haskell-lcs/haskell-lcs.SlackBuild
new file mode 100644
index 0000000000000..e64e8311d75a2
--- /dev/null
+++ b/haskell/haskell-lcs/haskell-lcs.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for lcs
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-lcs
+VERSION=${VERSION:-0.2}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a COPYING BSD3 GPL-2 $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-lcs/haskell-lcs.info b/haskell/haskell-lcs/haskell-lcs.info
new file mode 100644
index 0000000000000..88788009f5c33
--- /dev/null
+++ b/haskell/haskell-lcs/haskell-lcs.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-lcs"
+VERSION="0.2"
+HOMEPAGE="http://hackage.haskell.org/package/lcs"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/lcs/0.2/lcs-0.2.tar.gz"
+MD5SUM="2ef97e00291dde72248811581f997b66"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-lcs/slack-desc b/haskell/haskell-lcs/slack-desc
new file mode 100644
index 0000000000000..db55cdae26491
--- /dev/null
+++ b/haskell/haskell-lcs/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-lcs: haskell-lcs (Find longest common sublist of two lists)
+haskell-lcs:
+haskell-lcs: Provides a function lcs that takes two lists and returns a longest
+haskell-lcs: common sublist. For example, lcs abcd acbd is either abd or acd.
+haskell-lcs:
+haskell-lcs: http://hackage.haskell.org/package/lcs
+haskell-lcs:
+haskell-lcs:
+haskell-lcs:
+haskell-lcs:
+haskell-lcs:
diff --git a/haskell/haskell-mmap/README b/haskell/haskell-mmap/README
new file mode 100644
index 0000000000000..e4068c9ac1b18
--- /dev/null
+++ b/haskell/haskell-mmap/README
@@ -0,0 +1,10 @@
+This library provides a wrapper to mmap(2) or MapViewOfFile,
+allowing files or devices to be lazily loaded into memory as strict
+or lazy ByteStrings, ForeignPtrs or plain Ptrs, using the virtual
+memory subsystem to do on-demand loading. Modifications are also
+supported.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-mmap/doinst.sh b/haskell/haskell-mmap/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-mmap/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-mmap/haskell-mmap.SlackBuild b/haskell/haskell-mmap/haskell-mmap.SlackBuild
new file mode 100644
index 0000000000000..afcfece329bbd
--- /dev/null
+++ b/haskell/haskell-mmap/haskell-mmap.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for mmap
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-mmap
+VERSION=${VERSION:-0.5.7}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-mmap/haskell-mmap.info b/haskell/haskell-mmap/haskell-mmap.info
new file mode 100644
index 0000000000000..b963a116e42a8
--- /dev/null
+++ b/haskell/haskell-mmap/haskell-mmap.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-mmap"
+VERSION="0.5.7"
+HOMEPAGE="http://hackage.haskell.org/package/mmap"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/mmap/0.5.7/mmap-0.5.7.tar.gz"
+MD5SUM="1f74b3f59617332b06e277f5212423c1"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-mmap/slack-desc b/haskell/haskell-mmap/slack-desc
new file mode 100644
index 0000000000000..05e473e92e314
--- /dev/null
+++ b/haskell/haskell-mmap/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-mmap: haskell-mmap (Memory mapper for POSIX and Windows)
+haskell-mmap:
+haskell-mmap: This library provides a wrapper to mmap(2) or MapViewOfFile,
+haskell-mmap: allowing files or devices to be lazily loaded into memory as strict
+haskell-mmap: or lazy ByteStrings, ForeignPtrs or plain Ptrs, using the virtual
+haskell-mmap: memory subsystem to do on-demand loading. Modifications are also
+haskell-mmap: supported.
+haskell-mmap:
+haskell-mmap: http://hackage.haskell.org/package/mmap
+haskell-mmap:
+haskell-mmap:
diff --git a/haskell/haskell-mtl/README b/haskell/haskell-mtl/README
new file mode 100644
index 0000000000000..19cee88cbcd3f
--- /dev/null
+++ b/haskell/haskell-mtl/README
@@ -0,0 +1,9 @@
+A monad transformer library, inspired by the paper Functional
+Programming with Overloading and Higher-Order Polymorphism, by Mark P
+Jones <http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>, Advanced
+School of Functional Programming, 1995.
+
+This requires ghc and haskell-transformers.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-mtl/doinst.sh b/haskell/haskell-mtl/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-mtl/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-mtl/haskell-mtl.SlackBuild b/haskell/haskell-mtl/haskell-mtl.SlackBuild
new file mode 100644
index 0000000000000..4b1ae790af6f9
--- /dev/null
+++ b/haskell/haskell-mtl/haskell-mtl.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for mtl
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-mtl
+VERSION=${VERSION:-2.0.1.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-mtl/haskell-mtl.info b/haskell/haskell-mtl/haskell-mtl.info
new file mode 100644
index 0000000000000..6caf0014e1b29
--- /dev/null
+++ b/haskell/haskell-mtl/haskell-mtl.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-mtl"
+VERSION="2.0.1.0"
+HOMEPAGE="http://hackage.haskell.org/package/mtl"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/mtl/2.0.1.0/mtl-2.0.1.0.tar.gz"
+MD5SUM="934fa813625ef7e88a6a96a09815ff95"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-mtl/slack-desc b/haskell/haskell-mtl/slack-desc
new file mode 100644
index 0000000000000..cdb67de0ec7af
--- /dev/null
+++ b/haskell/haskell-mtl/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-mtl: haskell-mtl (Monad transformer library)
+haskell-mtl:
+haskell-mtl: A monad transformer library, inspired by the paper Functional
+haskell-mtl: Programming with Overloading and Higher-Order Polymorphism, by Mark
+haskell-mtl: P Jones (http://web.cecs.pdx.edu/~mpj/pubs/springschool.html),
+haskell-mtl: Advanced School of Functional Programming, 1995.
+haskell-mtl:
+haskell-mtl: http://hackage.haskell.org/package/mtl
+haskell-mtl:
+haskell-mtl:
+haskell-mtl:
diff --git a/haskell/haskell-network/README b/haskell/haskell-network/README
new file mode 100644
index 0000000000000..bb058c77ea864
--- /dev/null
+++ b/haskell/haskell-network/README
@@ -0,0 +1,7 @@
+Provides high level and low level interfaces for network client and
+server programming in Haskell. Also URI interface is included.
+
+This requires ghc and haskell-parsec.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-network/doinst.sh b/haskell/haskell-network/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-network/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-network/haskell-network.SlackBuild b/haskell/haskell-network/haskell-network.SlackBuild
new file mode 100644
index 0000000000000..b080f41f38f9b
--- /dev/null
+++ b/haskell/haskell-network/haskell-network.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for network
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-network
+VERSION=${VERSION:-2.3}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-network/haskell-network.info b/haskell/haskell-network/haskell-network.info
new file mode 100644
index 0000000000000..3e23c53d606da
--- /dev/null
+++ b/haskell/haskell-network/haskell-network.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-network"
+VERSION="2.3"
+HOMEPAGE="http://hackage.haskell.org/package/network"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/network/2.3/network-2.3.tar.gz"
+MD5SUM="b43d48203617247f4b711375428df23e"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-network/slack-desc b/haskell/haskell-network/slack-desc
new file mode 100644
index 0000000000000..c5d7ed76b242c
--- /dev/null
+++ b/haskell/haskell-network/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-network: haskell-network (Networking-related facilities for Haskell)
+haskell-network:
+haskell-network: Provides high level and low level interfaces for network client and
+haskell-network: server programming in Haskell. Also URI interface is included.
+haskell-network:
+haskell-network: http://hackage.haskell.org/package/network
+haskell-network:
+haskell-network:
+haskell-network:
+haskell-network:
+haskell-network:
diff --git a/haskell/haskell-packedstring/README b/haskell/haskell-packedstring/README
new file mode 100644
index 0000000000000..75d8b860b7304
--- /dev/null
+++ b/haskell/haskell-packedstring/README
@@ -0,0 +1,6 @@
+Haskell packedstring library is deprecated and should not be used in new code.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-packedstring/doinst.sh b/haskell/haskell-packedstring/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-packedstring/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-packedstring/haskell-packedstring.SlackBuild b/haskell/haskell-packedstring/haskell-packedstring.SlackBuild
new file mode 100644
index 0000000000000..297296b02ba4c
--- /dev/null
+++ b/haskell/haskell-packedstring/haskell-packedstring.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for packedstring
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-packedstring
+VERSION=${VERSION:-0.1.0.1}
+BUILD=${BUILD:-3}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-packedstring/haskell-packedstring.info b/haskell/haskell-packedstring/haskell-packedstring.info
new file mode 100644
index 0000000000000..e83b3acb64642
--- /dev/null
+++ b/haskell/haskell-packedstring/haskell-packedstring.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-packedstring"
+VERSION="0.1.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/packedstring"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/packedstring/0.1.0.1/packedstring-0.1.0.1.tar.gz"
+MD5SUM="ea0bdcb92f4c5bd78ac8bb7a654fcfb2"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-packedstring/slack-desc b/haskell/haskell-packedstring/slack-desc
new file mode 100644
index 0000000000000..0ec3e9268cdfb
--- /dev/null
+++ b/haskell/haskell-packedstring/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-packedstring: haskell-packedstring (Packed Strings for Haskell)
+haskell-packedstring:
+haskell-packedstring: This library is deprecated and should not be used in new code.
+haskell-packedstring:
+haskell-packedstring: http://hackage.haskell.org/package/packedstring
+haskell-packedstring:
+haskell-packedstring:
+haskell-packedstring:
+haskell-packedstring:
+haskell-packedstring:
+haskell-packedstring:
diff --git a/haskell/haskell-parallel/README b/haskell/haskell-parallel/README
new file mode 100644
index 0000000000000..4a6738c63f1b3
--- /dev/null
+++ b/haskell/haskell-parallel/README
@@ -0,0 +1,6 @@
+This package provides a library for parallel programming in Haskell.
+
+This requires ghc and haskell-deepseq.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-parallel/doinst.sh b/haskell/haskell-parallel/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-parallel/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-parallel/haskell-parallel.SlackBuild b/haskell/haskell-parallel/haskell-parallel.SlackBuild
new file mode 100644
index 0000000000000..7197ad0baf26e
--- /dev/null
+++ b/haskell/haskell-parallel/haskell-parallel.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for parallel
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-parallel
+VERSION=${VERSION:-3.1.0.1}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-parallel/haskell-parallel.info b/haskell/haskell-parallel/haskell-parallel.info
new file mode 100644
index 0000000000000..8b314e825d35b
--- /dev/null
+++ b/haskell/haskell-parallel/haskell-parallel.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-parallel"
+VERSION="3.1.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/parallel"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/parallel/3.1.0.1/parallel-3.1.0.1.tar.gz"
+MD5SUM="591979e7897dbc09157edf73a4614957"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-parallel/slack-desc b/haskell/haskell-parallel/slack-desc
new file mode 100644
index 0000000000000..4c64d759251c4
--- /dev/null
+++ b/haskell/haskell-parallel/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-parallel: haskell-parallel (Parallel programming library for Haskell)
+haskell-parallel:
+haskell-parallel: This package provides a library for parallel programming.
+haskell-parallel:
+haskell-parallel: http://hackage.haskell.org/package/parallel
+haskell-parallel:
+haskell-parallel:
+haskell-parallel:
+haskell-parallel:
+haskell-parallel:
+haskell-parallel:
diff --git a/haskell/haskell-parsec/README b/haskell/haskell-parsec/README
new file mode 100644
index 0000000000000..04dfcedd2a770
--- /dev/null
+++ b/haskell/haskell-parsec/README
@@ -0,0 +1,10 @@
+Parsec is designed from scratch as an industrial-strength parser
+library. It is simple, safe, well documented, has extensive
+libraries and good error messages, and is also fast. It is defined
+as a monad transformer that can be stacked on arbitrary monads, and
+it is also parametric in the input stream type.
+
+This requires ghc, haskell-transformers, haskell-mtl, and haskell-syb.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-parsec/doinst.sh b/haskell/haskell-parsec/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-parsec/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-parsec/haskell-parsec.SlackBuild b/haskell/haskell-parsec/haskell-parsec.SlackBuild
new file mode 100644
index 0000000000000..94a66d7bd6b2c
--- /dev/null
+++ b/haskell/haskell-parsec/haskell-parsec.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for parsec
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-parsec
+VERSION=${VERSION:-3.1.0}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-parsec/haskell-parsec.info b/haskell/haskell-parsec/haskell-parsec.info
new file mode 100644
index 0000000000000..9d6204f77d881
--- /dev/null
+++ b/haskell/haskell-parsec/haskell-parsec.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-parsec"
+VERSION="3.1.0"
+HOMEPAGE="http://hackage.haskell.org/package/parsec"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/parsec/3.1.0/parsec-3.1.0.tar.gz"
+MD5SUM="310bf233dcf8ec678c427b1198700b53"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-parsec/slack-desc b/haskell/haskell-parsec/slack-desc
new file mode 100644
index 0000000000000..a4d4ff66897c0
--- /dev/null
+++ b/haskell/haskell-parsec/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-parsec: haskell-parsec (Monadic parser combinators for Haskell)
+haskell-parsec:
+haskell-parsec: Parsec is designed from scratch as an industrial-strength parser
+haskell-parsec: library. It is simple, safe, well documented, has extensive
+haskell-parsec: libraries and good error messages, and is also fast. It is defined
+haskell-parsec: as a monad transformer that can be stacked on arbitrary monads, and
+haskell-parsec: it is also parametric in the input stream type.
+haskell-parsec:
+haskell-parsec: http://hackage.haskell.org/package/parsec
+haskell-parsec:
+haskell-parsec:
diff --git a/haskell/haskell-platform/README b/haskell/haskell-platform/README
new file mode 100644
index 0000000000000..da1e3acc1eb76
--- /dev/null
+++ b/haskell/haskell-platform/README
@@ -0,0 +1,12 @@
+The Haskell Platform is a comprehensive, robust development for programming
+in Haskell, which not only makes it trivial to get up and running with a full
+Haskell development environment, but also provides a comprehensive, standard
+base for commercial and open source Haskell development that maximises
+interoperability and stability of your code.
+
+This requires ghc.
+
+This is intended to be installed on a system that does not already have any
+haskell-related components (other than ghc, of course) installed, so for best
+results (and chance of success), you should remove any of those before you
+try to build haskell-platform.
diff --git a/haskell/haskell-platform/haskell-platform.SlackBuild b/haskell/haskell-platform/haskell-platform.SlackBuild
new file mode 100644
index 0000000000000..0c892ec378757
--- /dev/null
+++ b/haskell/haskell-platform/haskell-platform.SlackBuild
@@ -0,0 +1,98 @@
+#!/bin/sh
+
+# Slackware build script for The Haskell Platform
+#
+# Written by Jockey S. Kyd (jockey dot kyd at gmail dot com)
+# Public domain
+
+PRGNAM=haskell-platform
+VERSION=${VERSION:-2010.2.0.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$(uname -m)" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$(uname -m) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
+cd $PRGNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --libdir=/usr/lib${LIBDIRSUFFIX}
+
+# get path and version of ghc
+eval $(grep '^GHC=' scripts/config)
+eval $(grep '^GHC_PKG=' scripts/config)
+GHC_VERSION=$($GHC --numeric-version)
+
+make
+
+# unsupport DESTDIR, so work around a bit
+patch -p1 < $CWD/not_update_pkg_db.diff
+sed -i "s:\(\./Setup copy\):\1 --destdir=$PKG:" scripts/install.sh
+make install
+# collecting config files
+PKGCONFDIR=$PKG/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+mkdir -p $PKGCONFDIR
+for pkg in $(cat packages/platform.packages); do
+ pkg_conf=packages/${pkg}/${pkg}.conf
+ if [ -f $pkg_conf ]; then
+ mv $pkg_conf $PKGCONFDIR
+ fi
+done
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc
+if [ -d $PKG/usr/share/doc ]; then
+ mv $PKG/usr/share/doc/* $PKG/usr/doc/
+ rmdir $PKG/usr/share/doc
+fi
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+echo "$GHC_PKG recache" > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-platform/haskell-platform.info b/haskell/haskell-platform/haskell-platform.info
new file mode 100644
index 0000000000000..0141bba4f7c64
--- /dev/null
+++ b/haskell/haskell-platform/haskell-platform.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-platform"
+VERSION="2010.2.0.0"
+HOMEPAGE="http://hackage.haskell.org/platform/"
+DOWNLOAD="http://hackage.haskell.org/platform/2010.2.0.0/haskell-platform-2010.2.0.0.tar.gz"
+MD5SUM="9d1dd22a86bf2505591e6375f7dbe18e"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Jockey S. Kyd"
+EMAIL="jockey.kyd@gmail.com"
+APPROVED="rworkman"
diff --git a/haskell/haskell-platform/not_update_pkg_db.diff b/haskell/haskell-platform/not_update_pkg_db.diff
new file mode 100644
index 0000000000000..968e32e40769b
--- /dev/null
+++ b/haskell/haskell-platform/not_update_pkg_db.diff
@@ -0,0 +1,28 @@
+--- ./scripts/install.sh.orig 2010-12-01 09:49:32.169509005 +0800
++++ ./scripts/install.sh 2010-12-01 09:58:02.551384509 +0800
+@@ -27,15 +27,16 @@
+ ./Setup register ${VERBOSE} --gen-pkg-config="${PKG}.conf" \
+ || die "Generating the registration information for the package ${PKG} failed"
+
+- if [ -f ${PKG}.conf ]; then
+- if test "${USER_INSTALL}" = "YES"; then
+- GHC_PKG_DB="--user"
+- else
+- GHC_PKG_DB="--global"
+- fi
+- ${GHC_PKG} update ${GHC_PKG_DB} "${PKG}.conf" \
+- || die "Registering the package ${PKG} failed"
+- fi
++# Uncomment to allow actually registering packages at building time
++# if [ -f ${PKG}.conf ]; then
++# if test "${USER_INSTALL}" = "YES"; then
++# GHC_PKG_DB="--user"
++# else
++# GHC_PKG_DB="--global"
++# fi
++# ${GHC_PKG} update ${GHC_PKG_DB} "${PKG}.conf" \
++# || die "Registering the package ${PKG} failed"
++# fi
+
+ cd ../..
+ }
diff --git a/haskell/haskell-platform/slack-desc b/haskell/haskell-platform/slack-desc
new file mode 100644
index 0000000000000..8480dc360dd6d
--- /dev/null
+++ b/haskell/haskell-platform/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-platform: haskell-platform (The Haskell Platform)
+haskell-platform:
+haskell-platform: The Haskell Platform is a comprehensive, robust development for
+haskell-platform: programming in Haskell, which not only makes it trivial to get up
+haskell-platform: and running with a full Haskell development environment, but also
+haskell-platform: provides a comprehensive, standard base for both commercial and
+haskell-platform: open source Haskell development that maximises interoperability
+haskell-platform: and stability of your code.
+haskell-platform:
+haskell-platform: Homepage: http://hackage.haskell.org/platform/
+haskell-platform:
diff --git a/haskell/haskell-regex-base/README b/haskell/haskell-regex-base/README
new file mode 100644
index 0000000000000..b5cd3a4dfb7bd
--- /dev/null
+++ b/haskell/haskell-regex-base/README
@@ -0,0 +1,6 @@
+Haskell interface API for regex-posix, pcre, parsec, tdfa, dfa.
+
+This requires ghc, haskell-transformers, and haskell-mtl.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-regex-base/doinst.sh b/haskell/haskell-regex-base/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-regex-base/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-regex-base/haskell-regex-base.SlackBuild b/haskell/haskell-regex-base/haskell-regex-base.SlackBuild
new file mode 100644
index 0000000000000..af060295504d5
--- /dev/null
+++ b/haskell/haskell-regex-base/haskell-regex-base.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for regex-base
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-regex-base
+VERSION=${VERSION:-0.93.2}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-regex-base/haskell-regex-base.info b/haskell/haskell-regex-base/haskell-regex-base.info
new file mode 100644
index 0000000000000..42578be82e4e3
--- /dev/null
+++ b/haskell/haskell-regex-base/haskell-regex-base.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-regex-base"
+VERSION="0.93.2"
+HOMEPAGE="http://hackage.haskell.org/package/regex-base"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/regex-base/0.93.2/regex-base-0.93.2.tar.gz"
+MD5SUM="e7b93b0b17eff8d3068ecb2f5d5f6ea3"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-regex-base/slack-desc b/haskell/haskell-regex-base/slack-desc
new file mode 100644
index 0000000000000..85436d8c4ee5d
--- /dev/null
+++ b/haskell/haskell-regex-base/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-regex-base: haskell-regex-base (Replaces/Enhances Text.Regex Haskell library)
+haskell-regex-base:
+haskell-regex-base: Interface API for regex-posix, pcre, parsec, tdfa, dfa.
+haskell-regex-base:
+haskell-regex-base: http://hackage.haskell.org/package/regex-base
+haskell-regex-base:
+haskell-regex-base:
+haskell-regex-base:
+haskell-regex-base:
+haskell-regex-base:
+haskell-regex-base:
diff --git a/haskell/haskell-regex-compat/README b/haskell/haskell-regex-compat/README
new file mode 100644
index 0000000000000..2246bedbc7245
--- /dev/null
+++ b/haskell/haskell-regex-compat/README
@@ -0,0 +1,6 @@
+A module layer over haskell-regex-posix to replace Text.Regex.
+
+This requires ghc and haskell-regex-posix.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-regex-compat/doinst.sh b/haskell/haskell-regex-compat/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-regex-compat/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-regex-compat/haskell-regex-compat.SlackBuild b/haskell/haskell-regex-compat/haskell-regex-compat.SlackBuild
new file mode 100644
index 0000000000000..5e0c3126fb145
--- /dev/null
+++ b/haskell/haskell-regex-compat/haskell-regex-compat.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for regex-compat
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-regex-compat
+VERSION=${VERSION:-0.93.1}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-regex-compat/haskell-regex-compat.info b/haskell/haskell-regex-compat/haskell-regex-compat.info
new file mode 100644
index 0000000000000..2033a4b239a66
--- /dev/null
+++ b/haskell/haskell-regex-compat/haskell-regex-compat.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-regex-compat"
+VERSION="0.93.1"
+HOMEPAGE="http://hackage.haskell.org/package/regex-compat"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/regex-compat/0.93.1/regex-compat-0.93.1.tar.gz"
+MD5SUM="d6becec95ea8098cab663116fdce60a5"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-regex-compat/slack-desc b/haskell/haskell-regex-compat/slack-desc
new file mode 100644
index 0000000000000..32da5c586db32
--- /dev/null
+++ b/haskell/haskell-regex-compat/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-regex-compat: haskell-regex-compat (Replaces/Enhances Text.Regex Haskell library)
+haskell-regex-compat:
+haskell-regex-compat: One module layer over regex-posix to replace Text.Regex.
+haskell-regex-compat:
+haskell-regex-compat: http://hackage.haskell.org/package/regex-compat
+haskell-regex-compat:
+haskell-regex-compat:
+haskell-regex-compat:
+haskell-regex-compat:
+haskell-regex-compat:
+haskell-regex-compat:
diff --git a/haskell/haskell-regex-posix/README b/haskell/haskell-regex-posix/README
new file mode 100644
index 0000000000000..f305a9cb43446
--- /dev/null
+++ b/haskell/haskell-regex-posix/README
@@ -0,0 +1,6 @@
+The posix regex backend for haskell-regex-base.
+
+This requires ghc and haskell-regex-base.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-regex-posix/doinst.sh b/haskell/haskell-regex-posix/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-regex-posix/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-regex-posix/haskell-regex-posix.SlackBuild b/haskell/haskell-regex-posix/haskell-regex-posix.SlackBuild
new file mode 100644
index 0000000000000..9289670bfaab1
--- /dev/null
+++ b/haskell/haskell-regex-posix/haskell-regex-posix.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for regex-posix
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-regex-posix
+VERSION=${VERSION:-0.94.4}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-regex-posix/haskell-regex-posix.info b/haskell/haskell-regex-posix/haskell-regex-posix.info
new file mode 100644
index 0000000000000..2fdec4c5aba1b
--- /dev/null
+++ b/haskell/haskell-regex-posix/haskell-regex-posix.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-regex-posix"
+VERSION="0.94.4"
+HOMEPAGE="http://hackage.haskell.org/package/regex-posix"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/regex-posix/0.94.4/regex-posix-0.94.4.tar.gz"
+MD5SUM="c28a13e8329e93a19bbb51708bf64abb"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-regex-posix/slack-desc b/haskell/haskell-regex-posix/slack-desc
new file mode 100644
index 0000000000000..6e5acd8226930
--- /dev/null
+++ b/haskell/haskell-regex-posix/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-regex-posix: haskell-regex-posix (Replaces/Enhances Text.Regex Haskell library)
+haskell-regex-posix:
+haskell-regex-posix: The posix regex backend for regex-base.
+haskell-regex-posix:
+haskell-regex-posix: http://hackage.haskell.org/package/regex-posix
+haskell-regex-posix:
+haskell-regex-posix:
+haskell-regex-posix:
+haskell-regex-posix:
+haskell-regex-posix:
+haskell-regex-posix:
diff --git a/haskell/haskell-stm/README b/haskell/haskell-stm/README
new file mode 100644
index 0000000000000..1ef22a9627c11
--- /dev/null
+++ b/haskell/haskell-stm/README
@@ -0,0 +1,6 @@
+A modular composable concurrency abstraction for Haskell.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-stm/doinst.sh b/haskell/haskell-stm/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-stm/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-stm/haskell-stm.SlackBuild b/haskell/haskell-stm/haskell-stm.SlackBuild
new file mode 100644
index 0000000000000..8d316e196d825
--- /dev/null
+++ b/haskell/haskell-stm/haskell-stm.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for stm
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-stm
+VERSION=${VERSION:-2.2.0.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-stm/haskell-stm.info b/haskell/haskell-stm/haskell-stm.info
new file mode 100644
index 0000000000000..2908be0eaf9a4
--- /dev/null
+++ b/haskell/haskell-stm/haskell-stm.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-stm"
+VERSION="2.2.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/stm"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/stm/2.2.0.1/stm-2.2.0.1.tar.gz"
+MD5SUM="b1cf03ed315e00c33160746feeee8682"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-stm/slack-desc b/haskell/haskell-stm/slack-desc
new file mode 100644
index 0000000000000..8056e65699994
--- /dev/null
+++ b/haskell/haskell-stm/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-stm: haskell-stm (Software Transactional Memory for Haskell)
+haskell-stm:
+haskell-stm: A modular composable concurrency abstraction.
+haskell-stm:
+haskell-stm: http://hackage.haskell.org/package/stm
+haskell-stm:
+haskell-stm:
+haskell-stm:
+haskell-stm:
+haskell-stm:
+haskell-stm:
diff --git a/haskell/haskell-syb/README b/haskell/haskell-syb/README
new file mode 100644
index 0000000000000..71987b1aacad6
--- /dev/null
+++ b/haskell/haskell-syb/README
@@ -0,0 +1,10 @@
+Syb Haskell library contains the generics system described in the
+Scrap Your Boilerplate papers. It defines the Data class of types
+permitting folding and unfolding of constructor applications,
+instances of this class for primitive types, and a variety of
+traversals.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-syb/doinst.sh b/haskell/haskell-syb/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-syb/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-syb/haskell-syb.SlackBuild b/haskell/haskell-syb/haskell-syb.SlackBuild
new file mode 100644
index 0000000000000..920ca1433e42f
--- /dev/null
+++ b/haskell/haskell-syb/haskell-syb.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for syb
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-syb
+VERSION=${VERSION:-0.3}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-syb/haskell-syb.info b/haskell/haskell-syb/haskell-syb.info
new file mode 100644
index 0000000000000..d236c2549583a
--- /dev/null
+++ b/haskell/haskell-syb/haskell-syb.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-syb"
+VERSION="0.3"
+HOMEPAGE="http://hackage.haskell.org/package/syb"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/syb/0.3/syb-0.3.tar.gz"
+MD5SUM="c4f6771fa32d467a029e6e813757a9fe"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-syb/slack-desc b/haskell/haskell-syb/slack-desc
new file mode 100644
index 0000000000000..928dd73678436
--- /dev/null
+++ b/haskell/haskell-syb/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-syb: haskell-syb (Scrap Your Boilerplate)
+haskell-syb:
+haskell-syb: Syb Haskell library contains the generics system described in the
+haskell-syb: Scrap Your Boilerplate papers. It defines the Data class of types
+haskell-syb: permitting folding and unfolding of constructor applications,
+haskell-syb: instances of this class for primitive types, and a variety of
+haskell-syb: traversals.
+haskell-syb:
+haskell-syb: Homepage: http://hackage.haskell.org/package/syb
+haskell-syb:
+haskell-syb:
diff --git a/haskell/haskell-tar/README b/haskell/haskell-tar/README
new file mode 100644
index 0000000000000..4319cdf917f77
--- /dev/null
+++ b/haskell/haskell-tar/README
@@ -0,0 +1,11 @@
+This library is for working with ".tar" archive files. It can read and
+write a range of common variations of archive format including V7,
+USTAR, POSIX and GNU formats. It provides support for packing and
+unpacking portable archives. This makes it suitable for distribution
+but not backup because details like file ownership and exact
+permissions are not preserved.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-tar/doinst.sh b/haskell/haskell-tar/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-tar/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-tar/haskell-tar.SlackBuild b/haskell/haskell-tar/haskell-tar.SlackBuild
new file mode 100644
index 0000000000000..f15e53fe4b9a9
--- /dev/null
+++ b/haskell/haskell-tar/haskell-tar.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for tar
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-tar
+VERSION=${VERSION:-0.3.1.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-tar/haskell-tar.info b/haskell/haskell-tar/haskell-tar.info
new file mode 100644
index 0000000000000..0c19b1d004a73
--- /dev/null
+++ b/haskell/haskell-tar/haskell-tar.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-tar"
+VERSION="0.3.1.0"
+HOMEPAGE="http://hackage.haskell.org/package/tar"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/tar/0.3.1.0/tar-0.3.1.0.tar.gz"
+MD5SUM="10b54856495f9ef0a42aa270085c7d5e"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-tar/slack-desc b/haskell/haskell-tar/slack-desc
new file mode 100644
index 0000000000000..919123e4421ee
--- /dev/null
+++ b/haskell/haskell-tar/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-tar: haskell-tar (Reading, writing and manipulating ".tar" archive files)
+haskell-tar:
+haskell-tar: This library is for working with ".tar" archive files. It can read
+haskell-tar: and write a range of common variations of archive format including
+haskell-tar: V7, USTAR, POSIX and GNU formats. It provides support for packing
+haskell-tar: and unpacking portable archives. This makes it suitable for
+haskell-tar: distribution but not backup because details like file ownership and
+haskell-tar: exact permissions are not preserved.
+haskell-tar:
+haskell-tar: http://hackage.haskell.org/package/tar
+haskell-tar:
diff --git a/haskell/haskell-terminfo/README b/haskell/haskell-terminfo/README
new file mode 100644
index 0000000000000..c06fe50398fca
--- /dev/null
+++ b/haskell/haskell-terminfo/README
@@ -0,0 +1,9 @@
+This library provides an Haskell interface to the terminfo database
+(via bindings to the curses library). Terminfo allows POSIX systems
+to interact with a variety of terminals using a standard set of
+capabilities.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-terminfo/doinst.sh b/haskell/haskell-terminfo/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-terminfo/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-terminfo/haskell-terminfo.SlackBuild b/haskell/haskell-terminfo/haskell-terminfo.SlackBuild
new file mode 100644
index 0000000000000..e30133bffeb74
--- /dev/null
+++ b/haskell/haskell-terminfo/haskell-terminfo.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for terminfo
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-terminfo
+VERSION=${VERSION:-0.3.1.3}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-terminfo/haskell-terminfo.info b/haskell/haskell-terminfo/haskell-terminfo.info
new file mode 100644
index 0000000000000..3a107b1f8c989
--- /dev/null
+++ b/haskell/haskell-terminfo/haskell-terminfo.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-terminfo"
+VERSION="0.3.1.3"
+HOMEPAGE="http://hackage.haskell.org/package/terminfo"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/terminfo/0.3.1.3/terminfo-0.3.1.3.tar.gz"
+MD5SUM="8c0e052340f628b76f5687fa23379628"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-terminfo/slack-desc b/haskell/haskell-terminfo/slack-desc
new file mode 100644
index 0000000000000..5fecdcec25f7b
--- /dev/null
+++ b/haskell/haskell-terminfo/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-terminfo: haskell-terminfo (Haskell bindings to the terminfo library)
+haskell-terminfo:
+haskell-terminfo: This library provides an interface to the terminfo database (via
+haskell-terminfo: bindings to the curses library). Terminfo allows POSIX systems to
+haskell-terminfo: interact with a variety of terminals using a standard set of
+haskell-terminfo: capabilities.
+haskell-terminfo:
+haskell-terminfo: http://hackage.haskell.org/package/terminfo
+haskell-terminfo:
+haskell-terminfo:
+haskell-terminfo:
diff --git a/haskell/haskell-test-framework-hunit/README b/haskell/haskell-test-framework-hunit/README
new file mode 100644
index 0000000000000..3df4db2c11ec5
--- /dev/null
+++ b/haskell/haskell-test-framework-hunit/README
@@ -0,0 +1,9 @@
+HUnit support for the test-framework package.
+
+This requires ghc, haskell-HUnit, haskell-ansi-terminal,
+haskell-hostname, haskell-transformers, haskell-xml,
+haskell-ansi-wl-pprint, haskell-mtl, haskell-regex-base,
+haskell-regex-posix, and haskell-test-framework.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-test-framework-hunit/doinst.sh b/haskell/haskell-test-framework-hunit/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-test-framework-hunit/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-test-framework-hunit/haskell-test-framework-hunit.SlackBuild b/haskell/haskell-test-framework-hunit/haskell-test-framework-hunit.SlackBuild
new file mode 100644
index 0000000000000..efc366ea2d563
--- /dev/null
+++ b/haskell/haskell-test-framework-hunit/haskell-test-framework-hunit.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for test-framework-hunit
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-test-framework-hunit
+VERSION=${VERSION:-0.2.6}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-test-framework-hunit/haskell-test-framework-hunit.info b/haskell/haskell-test-framework-hunit/haskell-test-framework-hunit.info
new file mode 100644
index 0000000000000..9d263d70c391c
--- /dev/null
+++ b/haskell/haskell-test-framework-hunit/haskell-test-framework-hunit.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-test-framework-hunit"
+VERSION="0.2.6"
+HOMEPAGE="http://hackage.haskell.org/package/test-framework-hunit"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/test-framework-hunit/0.2.6/test-framework-hunit-0.2.6.tar.gz"
+MD5SUM="7c012ca5426d743b3cf35e231d6f6072"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-test-framework-hunit/slack-desc b/haskell/haskell-test-framework-hunit/slack-desc
new file mode 100644
index 0000000000000..57badcfcd4a87
--- /dev/null
+++ b/haskell/haskell-test-framework-hunit/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-test-framework-hunit: haskell-test-framework-hunit (HUnit support for the test-framework)
+haskell-test-framework-hunit:
+haskell-test-framework-hunit: HUnit support for the test-framework package.
+haskell-test-framework-hunit:
+haskell-test-framework-hunit:
+haskell-test-framework-hunit:
+haskell-test-framework-hunit:
+haskell-test-framework-hunit:
+haskell-test-framework-hunit:
+haskell-test-framework-hunit:
+haskell-test-framework-hunit:
diff --git a/haskell/haskell-test-framework-quickcheck2/README b/haskell/haskell-test-framework-quickcheck2/README
new file mode 100644
index 0000000000000..d414dd2cf4f3a
--- /dev/null
+++ b/haskell/haskell-test-framework-quickcheck2/README
@@ -0,0 +1,9 @@
+QuickCheck2 support for the test-framework package.
+
+This requires ghc, haskell-transformers, haskell-ansi-terminal,
+haskell-hostname, haskell-xml, haskell-mtl, haskell-ansi-wl-pprint,
+haskell-QuickCheck, haskell-regex-base, haskell-regex-posix, and
+haskell-test-framework.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-test-framework-quickcheck2/doinst.sh b/haskell/haskell-test-framework-quickcheck2/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-test-framework-quickcheck2/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-test-framework-quickcheck2/haskell-test-framework-quickcheck2.SlackBuild b/haskell/haskell-test-framework-quickcheck2/haskell-test-framework-quickcheck2.SlackBuild
new file mode 100644
index 0000000000000..ba6667fecf04b
--- /dev/null
+++ b/haskell/haskell-test-framework-quickcheck2/haskell-test-framework-quickcheck2.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for test-framework-quickcheck2
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-test-framework-quickcheck2
+VERSION=${VERSION:-0.2.9}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-test-framework-quickcheck2/haskell-test-framework-quickcheck2.info b/haskell/haskell-test-framework-quickcheck2/haskell-test-framework-quickcheck2.info
new file mode 100644
index 0000000000000..574551ae3b5b3
--- /dev/null
+++ b/haskell/haskell-test-framework-quickcheck2/haskell-test-framework-quickcheck2.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-test-framework-quickcheck2"
+VERSION="0.2.9"
+HOMEPAGE="http://hackage.haskell.org/package/test-framework-quickcheck2"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/test-framework-quickcheck2/0.2.9/test-framework-quickcheck2-0.2.9.tar.gz"
+MD5SUM="65597d12c107770b4975de0000c45796"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-test-framework-quickcheck2/slack-desc b/haskell/haskell-test-framework-quickcheck2/slack-desc
new file mode 100644
index 0000000000000..0a8a046466ad5
--- /dev/null
+++ b/haskell/haskell-test-framework-quickcheck2/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-test-framework-quickcheck2: haskell-test-framework-quickcheck2 (test-framework QuickCheck2 addon)
+haskell-test-framework-quickcheck2:
+haskell-test-framework-quickcheck2: QuickCheck2 support for the test-framework package.
+haskell-test-framework-quickcheck2:
+haskell-test-framework-quickcheck2:
+haskell-test-framework-quickcheck2:
+haskell-test-framework-quickcheck2:
+haskell-test-framework-quickcheck2:
+haskell-test-framework-quickcheck2:
+haskell-test-framework-quickcheck2:
+haskell-test-framework-quickcheck2:
diff --git a/haskell/haskell-test-framework/README b/haskell/haskell-test-framework/README
new file mode 100644
index 0000000000000..fc115db6bb42d
--- /dev/null
+++ b/haskell/haskell-test-framework/README
@@ -0,0 +1,12 @@
+Allows tests such as QuickCheck properties and HUnit test cases to
+be assembled into test groups, run in parallel (but reported in
+deterministic order, to aid diff interpretation) and filtered and
+controlled by command line options. All of this comes with colored
+test output, progress reporting and test statistics output.
+
+This requires ghc, haskell-ansi-terminal, haskell-hostname,
+haskell-transformers, haskell-xml, haskell-ansi-wl-pprint,
+haskell-mtl, haskell-regex-base, and haskell-regex-posix.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-test-framework/doinst.sh b/haskell/haskell-test-framework/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-test-framework/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-test-framework/haskell-test-framework.SlackBuild b/haskell/haskell-test-framework/haskell-test-framework.SlackBuild
new file mode 100644
index 0000000000000..7fc39c94e80df
--- /dev/null
+++ b/haskell/haskell-test-framework/haskell-test-framework.SlackBuild
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+# Slackware build script for test-framework
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-test-framework
+VERSION=${VERSION:-0.3.3}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Enable "-dynamic" GHC options for the binary, not for the libs
+patch -p0 <$CWD/test-framework_cabal.patch
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION \
+ --flags="Dynamic"
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-test-framework/haskell-test-framework.info b/haskell/haskell-test-framework/haskell-test-framework.info
new file mode 100644
index 0000000000000..1a88ae9ac8bd6
--- /dev/null
+++ b/haskell/haskell-test-framework/haskell-test-framework.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-test-framework"
+VERSION="0.3.3"
+HOMEPAGE="http://hackage.haskell.org/package/test-framework"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/test-framework/0.3.3/test-framework-0.3.3.tar.gz"
+MD5SUM="b0a2486739bdc90638828faa5c846d32"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-test-framework/slack-desc b/haskell/haskell-test-framework/slack-desc
new file mode 100644
index 0000000000000..b6ca89d2723bc
--- /dev/null
+++ b/haskell/haskell-test-framework/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-test-framework: haskell-test-framework (Framework for running and organising tests)
+haskell-test-framework:
+haskell-test-framework: Allows tests such as QuickCheck properties and HUnit test cases to
+haskell-test-framework: be assembled into test groups, run in parallel (but reported in
+haskell-test-framework: deterministic order, to aid diff interpretation) and filtered and
+haskell-test-framework: controlled by command line options. All of this comes with colored
+haskell-test-framework: test output, progress reporting and test statistics output.
+haskell-test-framework:
+haskell-test-framework:
+haskell-test-framework:
+haskell-test-framework:
diff --git a/haskell/haskell-test-framework/test-framework_cabal.patch b/haskell/haskell-test-framework/test-framework_cabal.patch
new file mode 100644
index 0000000000000..2bc5bb37accd7
--- /dev/null
+++ b/haskell/haskell-test-framework/test-framework_cabal.patch
@@ -0,0 +1,22 @@
+--- test-framework.cabal.orig 2011-02-04 03:59:59.000000000 +0200
++++ test-framework.cabal 2011-02-04 04:01:17.000000000 +0200
+@@ -21,6 +21,10 @@
+ Description: Build the tests
+ Default: False
+
++Flag Dynamic
++ Description: Link executable dynamically
++ Default: False
++
+
+ Library
+ Exposed-Modules: Test.Framework
+@@ -102,6 +106,8 @@
+ Cpp-Options: -DTEST
+
+ Ghc-Options: -Wall -threaded
++ if flag(Dynamic)
++ Ghc-Options: -dynamic
+
+ if impl(ghc)
+ Cpp-Options: -DCOMPILER_GHC
diff --git a/haskell/haskell-texmath/README b/haskell/haskell-texmath/README
new file mode 100644
index 0000000000000..2ea3bf86a3a9d
--- /dev/null
+++ b/haskell/haskell-texmath/README
@@ -0,0 +1,8 @@
+This is a library for Haskell programs, providing functions to convert LaTeX
+math formulas to presentation MathML. It supports basic LaTeX and AMS
+extensions, but not macros.
+
+This requires ghc, haskell-parsec and haskell-xml.
+
+When uninstalling, run the following command to unregister the package
+from the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-texmath/doinst.sh b/haskell/haskell-texmath/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-texmath/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-texmath/haskell-texmath.SlackBuild b/haskell/haskell-texmath/haskell-texmath.SlackBuild
new file mode 100644
index 0000000000000..cf3d1299c7fa7
--- /dev/null
+++ b/haskell/haskell-texmath/haskell-texmath.SlackBuild
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+# Slackware build script for texmath
+
+# Written by Peter Wang <novalazy@gmail.com>
+# Public domain.
+
+SRCNAM=texmath
+PRGNAM=haskell-$SRCNAM
+VERSION=${VERSION:-0.3.0.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e # Exit on most errors
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+# Remove false dependency on utf8-string (only for a sample CGI script).
+patch -p1 < $CWD/texmath-utf8.patch
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --libsubdir=ghc-$GHC_VERSION/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+# Remove test data.
+rm -r $PKG/usr/share
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-texmath/haskell-texmath.info b/haskell/haskell-texmath/haskell-texmath.info
new file mode 100644
index 0000000000000..a4e4ec8ec37b2
--- /dev/null
+++ b/haskell/haskell-texmath/haskell-texmath.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-texmath"
+VERSION="0.3.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/texmath"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/texmath/0.3.0.1/texmath-0.3.0.1.tar.gz"
+MD5SUM="f2ec771aaae9e678bf9106fe161efb85"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Peter Wang"
+EMAIL="novalazy@gmail.com"
+APPROVED="dsomero"
diff --git a/haskell/haskell-texmath/slack-desc b/haskell/haskell-texmath/slack-desc
new file mode 100644
index 0000000000000..ccfd1d3913a66
--- /dev/null
+++ b/haskell/haskell-texmath/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-texmath: haskell-texmath (Conversion of LaTeX math formulas to MathML)
+haskell-texmath:
+haskell-texmath: This is a library for Haskell programs, providing functions to
+haskell-texmath: convert LaTeX math formulas to presentation MathML. It supports
+haskell-texmath: basic LaTeX and AMS extensions, but not macros.
+haskell-texmath:
+haskell-texmath: http://hackage.haskell.org/package/texmath
+haskell-texmath:
+haskell-texmath:
+haskell-texmath:
+haskell-texmath:
diff --git a/haskell/haskell-texmath/texmath-utf8.patch b/haskell/haskell-texmath/texmath-utf8.patch
new file mode 100644
index 0000000000000..ab5fcf2bf0fb5
--- /dev/null
+++ b/haskell/haskell-texmath/texmath-utf8.patch
@@ -0,0 +1,28 @@
+From: John MacFarlane <jgm@berkeley.edu>
+Date: Thu, 22 Jul 2010 19:11:14 -0700
+Subject: [PATCH] Put utf8-string dependency in right place.
+
+---
+ texmath.cabal | 3 +--
+ 1 files changed, 1 insertions(+), 2 deletions(-)
+
+diff --git a/texmath.cabal b/texmath.cabal
+index f14d7dc..ad83d05 100644
+--- a/texmath.cabal
++++ b/texmath.cabal
+@@ -77,11 +77,10 @@ Executable testTeXMathML
+
+ Executable texmath-cgi
+ Main-is: cgi/texmath-cgi.hs
+- Build-depends: utf8-string
+ Ghc-Options: -Wall -fno-warn-unused-do-bind
+ Ghc-Prof-Options: -auto-all
+ if flag(cgi)
+ Buildable: True
+- Build-depends: cgi, json
++ Build-depends: cgi, json, utf8-string
+ else
+ Buildable: False
+--
+1.7.1
+
diff --git a/haskell/haskell-text/README b/haskell/haskell-text/README
new file mode 100644
index 0000000000000..2d3b2ea8de46b
--- /dev/null
+++ b/haskell/haskell-text/README
@@ -0,0 +1,7 @@
+An efficient packed, immutable Unicode text type for Haskell
+programs.
+
+This requires ghc and haskell-deepseq.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-text/doinst.sh b/haskell/haskell-text/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-text/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-text/haskell-text.SlackBuild b/haskell/haskell-text/haskell-text.SlackBuild
new file mode 100644
index 0000000000000..313c732263592
--- /dev/null
+++ b/haskell/haskell-text/haskell-text.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for text
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-text
+VERSION=${VERSION:-0.11.0.1}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE README.markdown $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-text/haskell-text.info b/haskell/haskell-text/haskell-text.info
new file mode 100644
index 0000000000000..e2b328790d956
--- /dev/null
+++ b/haskell/haskell-text/haskell-text.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-text"
+VERSION="0.11.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/text"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/text/0.11.0.1/text-0.11.0.1.tar.gz"
+MD5SUM="a073c64255b1e497a9689b2fc408772c"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="rworkman"
diff --git a/haskell/haskell-text/slack-desc b/haskell/haskell-text/slack-desc
new file mode 100644
index 0000000000000..22298daaebf72
--- /dev/null
+++ b/haskell/haskell-text/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-text: haskell-text (Fast, packed Unicode strings, using stream fusion)
+haskell-text:
+haskell-text: This package provides the Data.Text library, a library for the
+haskell-text: space-and time-efficient manipulation of Unicode text in Haskell.
+haskell-text:
+haskell-text:
+haskell-text:
+haskell-text:
+haskell-text:
+haskell-text:
+haskell-text:
diff --git a/haskell/haskell-transformers/README b/haskell/haskell-transformers/README
new file mode 100644
index 0000000000000..786e1f6189c07
--- /dev/null
+++ b/haskell/haskell-transformers/README
@@ -0,0 +1,10 @@
+This part contains the monad transformer class, the concrete monad
+transformers, operations and liftings. It can be used on its own in
+Haskell 98 code, or with the monad classes in the monads-fd or
+monads-tf packages, which automatically lift operations introduced
+by monad transformers through other transformers.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from
+the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-transformers/doinst.sh b/haskell/haskell-transformers/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-transformers/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-transformers/haskell-transformers.SlackBuild b/haskell/haskell-transformers/haskell-transformers.SlackBuild
new file mode 100644
index 0000000000000..c1a04682d0478
--- /dev/null
+++ b/haskell/haskell-transformers/haskell-transformers.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for transformers
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-transformers
+VERSION=${VERSION:-0.2.2.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-transformers/haskell-transformers.info b/haskell/haskell-transformers/haskell-transformers.info
new file mode 100644
index 0000000000000..62d6f8756c6a6
--- /dev/null
+++ b/haskell/haskell-transformers/haskell-transformers.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-transformers"
+VERSION="0.2.2.0"
+HOMEPAGE="http://hackage.haskell.org/package/transformers"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/transformers/0.2.2.0/transformers-0.2.2.0.tar.gz"
+MD5SUM="3470ac66116900cd1ba84d3744474e49"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-transformers/slack-desc b/haskell/haskell-transformers/slack-desc
new file mode 100644
index 0000000000000..8c1bf1a8eb58b
--- /dev/null
+++ b/haskell/haskell-transformers/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-transformers: haskell-transformers (Concrete functor and monad transformers)
+haskell-transformers:
+haskell-transformers: This part contains the monad transformer class, the concrete monad
+haskell-transformers: transformers, operations and liftings. It can be used on its own in
+haskell-transformers: Haskell 98 code, or with the monad classes in the monads-fd or
+haskell-transformers: monads-tf packages, which automatically lift operations introduced
+haskell-transformers: by monad transformers through other transformers.
+haskell-transformers:
+haskell-transformers: Homepage: http://hackage.haskell.org/package/transformers
+haskell-transformers:
+haskell-transformers:
diff --git a/haskell/haskell-utf8-string/README b/haskell/haskell-utf8-string/README
new file mode 100644
index 0000000000000..b138b17ef6b43
--- /dev/null
+++ b/haskell/haskell-utf8-string/README
@@ -0,0 +1,5 @@
+A UTF8 layer for IO and Strings. The utf8-string package provides
+operations for encoding UTF8 strings to Word8 lists and back, and
+for reading and writing UTF8 without truncation.
+
+This requires ghc.
diff --git a/haskell/haskell-utf8-string/doinst.sh b/haskell/haskell-utf8-string/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-utf8-string/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-utf8-string/haskell-utf8-string.SlackBuild b/haskell/haskell-utf8-string/haskell-utf8-string.SlackBuild
new file mode 100644
index 0000000000000..29d37a815e56b
--- /dev/null
+++ b/haskell/haskell-utf8-string/haskell-utf8-string.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for utf8-string
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-utf8-string
+VERSION=${VERSION:-0.3.6}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --enable-shared \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-utf8-string/haskell-utf8-string.info b/haskell/haskell-utf8-string/haskell-utf8-string.info
new file mode 100644
index 0000000000000..2d5d86647fdd6
--- /dev/null
+++ b/haskell/haskell-utf8-string/haskell-utf8-string.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-utf8-string"
+VERSION="0.3.6"
+HOMEPAGE="http://hackage.haskell.org/package/utf8-string"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/utf8-string/0.3.6/utf8-string-0.3.6.tar.gz"
+MD5SUM="be8c5ef52a0824babdc89d60c1e9b600"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-utf8-string/slack-desc b/haskell/haskell-utf8-string/slack-desc
new file mode 100644
index 0000000000000..d116c5dae0849
--- /dev/null
+++ b/haskell/haskell-utf8-string/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-utf8-string: haskell-utf8-string (Support for reading and writing UTF8 Strings)
+haskell-utf8-string:
+haskell-utf8-string: A UTF8 layer for IO and Strings. The utf8-string package provides
+haskell-utf8-string: operations for encoding UTF8 strings to Word8 lists and back, and
+haskell-utf8-string: for reading and writing UTF8 without truncation.
+haskell-utf8-string:
+haskell-utf8-string: Homepage: http://hackage.haskell.org/package/utf8-string
+haskell-utf8-string:
+haskell-utf8-string:
+haskell-utf8-string:
+haskell-utf8-string:
diff --git a/haskell/haskell-xhtml/README b/haskell/haskell-xhtml/README
new file mode 100644
index 0000000000000..c3719d151ce75
--- /dev/null
+++ b/haskell/haskell-xhtml/README
@@ -0,0 +1,7 @@
+This package provides combinators for producing XHTML 1.0, including
+the Strict, Transitional and Frameset variants, in Haskell.
+
+This requires ghc.
+
+After uninstalling, run this command to unregister the package from the ghc
+package database: ghc-pkg recache
diff --git a/haskell/haskell-xhtml/doinst.sh b/haskell/haskell-xhtml/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-xhtml/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-xhtml/haskell-xhtml.SlackBuild b/haskell/haskell-xhtml/haskell-xhtml.SlackBuild
new file mode 100644
index 0000000000000..288b27183fcc9
--- /dev/null
+++ b/haskell/haskell-xhtml/haskell-xhtml.SlackBuild
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# Slackware build script for xhtml
+
+# Written by Mikko Värri (vmj@linuxbox.fi)
+# Public domain.
+
+PRGNAM=haskell-xhtml
+VERSION=${VERSION:-3000.2.0.1}
+BUILD=${BUILD:-3}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --libsubdir=ghc-${GHC_VERSION}/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-xhtml/haskell-xhtml.info b/haskell/haskell-xhtml/haskell-xhtml.info
new file mode 100644
index 0000000000000..10f86c2f6f34e
--- /dev/null
+++ b/haskell/haskell-xhtml/haskell-xhtml.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-xhtml"
+VERSION="3000.2.0.1"
+HOMEPAGE="http://hackage.haskell.org/package/xhtml"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/xhtml/3000.2.0.1/xhtml-3000.2.0.1.tar.gz"
+MD5SUM="9e3e7d9c66618c5e29716f90e54363c9"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-xhtml/slack-desc b/haskell/haskell-xhtml/slack-desc
new file mode 100644
index 0000000000000..aa976956062a9
--- /dev/null
+++ b/haskell/haskell-xhtml/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-xhtml: haskell-xhtml (An XHTML combinator library for Haskell)
+haskell-xhtml:
+haskell-xhtml: This package provides combinators for producing XHTML 1.0, including
+haskell-xhtml: the Strict, Transitional and Frameset variants.
+haskell-xhtml:
+haskell-xhtml: http://hackage.haskell.org/package/xhtml
+haskell-xhtml:
+haskell-xhtml:
+haskell-xhtml:
+haskell-xhtml:
+haskell-xhtml:
diff --git a/haskell/haskell-xml/README b/haskell/haskell-xml/README
new file mode 100644
index 0000000000000..ee185c420a48f
--- /dev/null
+++ b/haskell/haskell-xml/README
@@ -0,0 +1,6 @@
+A simple XML library for Haskell programs.
+
+This requires ghc.
+
+When uninstalling, run the following command to unregister the package
+from the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-xml/doinst.sh b/haskell/haskell-xml/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-xml/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-xml/haskell-xml.SlackBuild b/haskell/haskell-xml/haskell-xml.SlackBuild
new file mode 100644
index 0000000000000..9660d06a1372d
--- /dev/null
+++ b/haskell/haskell-xml/haskell-xml.SlackBuild
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+# Slackware build script for xml
+
+# Written by Peter Wang <novalazy@gmail.com>
+# Public domain.
+
+SRCNAM=xml
+PRGNAM=haskell-$SRCNAM
+VERSION=${VERSION:-1.3.7}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e # Exit on most errors
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --libsubdir=ghc-$GHC_VERSION/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-xml/haskell-xml.info b/haskell/haskell-xml/haskell-xml.info
new file mode 100644
index 0000000000000..e4dca3c40b65c
--- /dev/null
+++ b/haskell/haskell-xml/haskell-xml.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-xml"
+VERSION="1.3.7"
+HOMEPAGE="http://hackage.haskell.org/package/xml"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/xml/1.3.7/xml-1.3.7.tar.gz"
+MD5SUM="fc2d7e1a321b4393dd444b16ab6ba669"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Peter Wang"
+EMAIL="novalazy@gmail.com"
+APPROVED="dsomero"
diff --git a/haskell/haskell-xml/slack-desc b/haskell/haskell-xml/slack-desc
new file mode 100644
index 0000000000000..58daafdaec62e
--- /dev/null
+++ b/haskell/haskell-xml/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-xml: haskell-xml (XML library for Haskell)
+haskell-xml:
+haskell-xml: A simple XML library for Haskell programs.
+haskell-xml:
+haskell-xml: http://hackage.haskell.org/package/xml
+haskell-xml:
+haskell-xml:
+haskell-xml:
+haskell-xml:
+haskell-xml:
+haskell-xml:
diff --git a/haskell/haskell-zip-archive/README b/haskell/haskell-zip-archive/README
new file mode 100644
index 0000000000000..20bbea1999f17
--- /dev/null
+++ b/haskell/haskell-zip-archive/README
@@ -0,0 +1,8 @@
+This is a library for Haskell programs. It provides functions for
+creating, modifying, and extracting files from zip archives.
+
+This requires ghc, haskell-binary, haskell-transformers, haskell-mtl,
+haskell-digest, haskell-zlib, and haskell-utf8-string.
+
+After uninstalling, run the following command to unregister the package
+from the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-zip-archive/doinst.sh b/haskell/haskell-zip-archive/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-zip-archive/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-zip-archive/haskell-zip-archive.SlackBuild b/haskell/haskell-zip-archive/haskell-zip-archive.SlackBuild
new file mode 100644
index 0000000000000..56955f12c9c10
--- /dev/null
+++ b/haskell/haskell-zip-archive/haskell-zip-archive.SlackBuild
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+# Slackware build script for zip-archive
+
+# Written by Peter Wang <novalazy@gmail.com>
+# Modified by Mikko Värri <vmj@linuxbox.fi>
+# Public domain.
+
+PRGNAM=haskell-zip-archive
+VERSION=${VERSION:-0.1.1.6}
+BUILD=${BUILD:-2}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e # Exit on most errors
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.lhs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --libsubdir=ghc-$GHC_VERSION/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.lhs build
+runghc Setup.lhs haddock
+runghc Setup.lhs copy --destdir=$PKG
+runghc Setup.lhs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a COPYING LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-zip-archive/haskell-zip-archive.info b/haskell/haskell-zip-archive/haskell-zip-archive.info
new file mode 100644
index 0000000000000..eab4ad52bea80
--- /dev/null
+++ b/haskell/haskell-zip-archive/haskell-zip-archive.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-zip-archive"
+VERSION="0.1.1.6"
+HOMEPAGE="http://hackage.haskell.org/package/zip-archive"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/zip-archive/0.1.1.6/zip-archive-0.1.1.6.tar.gz"
+MD5SUM="4806077be79ecb5486306432ee93e38d"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-zip-archive/slack-desc b/haskell/haskell-zip-archive/slack-desc
new file mode 100644
index 0000000000000..a97f0881ad49a
--- /dev/null
+++ b/haskell/haskell-zip-archive/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-zip-archive: haskell-zip-archive (Haskell library for zip archives)
+haskell-zip-archive:
+haskell-zip-archive: This is a library for Haskell programs. It provides functions for
+haskell-zip-archive: creating, modifying, and extracting files from zip archives.
+haskell-zip-archive:
+haskell-zip-archive:
+haskell-zip-archive:
+haskell-zip-archive:
+haskell-zip-archive:
+haskell-zip-archive:
+haskell-zip-archive:
diff --git a/haskell/haskell-zlib/README b/haskell/haskell-zlib/README
new file mode 100644
index 0000000000000..b2435f0eb25e5
--- /dev/null
+++ b/haskell/haskell-zlib/README
@@ -0,0 +1,9 @@
+This is a library for Haskell programs. It provides a pure interface for
+compressing and decompressing streams of data represented as lazy ByteStrings.
+It uses the zlib C library so it has high performance. It supports the "zlib",
+"gzip" and "raw" compression formats.
+
+This requires ghc.
+
+After uninstalling, run the following command to unregister the package
+from the ghc package database: ghc-pkg recache
diff --git a/haskell/haskell-zlib/doinst.sh b/haskell/haskell-zlib/doinst.sh
new file mode 100644
index 0000000000000..3268c238bf735
--- /dev/null
+++ b/haskell/haskell-zlib/doinst.sh
@@ -0,0 +1 @@
+chroot . /usr/bin/ghc-pkg recache
diff --git a/haskell/haskell-zlib/haskell-zlib.SlackBuild b/haskell/haskell-zlib/haskell-zlib.SlackBuild
new file mode 100644
index 0000000000000..35a5bc1f97c07
--- /dev/null
+++ b/haskell/haskell-zlib/haskell-zlib.SlackBuild
@@ -0,0 +1,88 @@
+#!/bin/sh
+
+# Slackware build script for zlib
+
+# Written by Peter Wang <novalazy@gmail.com>
+# Modified by Mikko Värri <vmj@linuxbox.fi>
+# Public domain.
+
+PRGNAM=haskell-zlib
+VERSION=${VERSION:-0.5.2.0}
+BUILD=${BUILD:-4}
+TAG=${TAG:-_SBo}
+
+SRCNAM="$( echo $PRGNAM | cut -d- -f2- )"
+
+GHC_VERSION=$(ghc --numeric-version)
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i486" ]; then
+ SLKCFLAGS="-O2 -march=i486 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e # Exit on most errors
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+runghc Setup.hs configure \
+ --prefix=/usr \
+ --enable-shared \
+ --libdir=/usr/lib$LIBDIRSUFFIX \
+ --libsubdir=ghc-$GHC_VERSION/$SRCNAM-$VERSION \
+ --docdir=/usr/doc/$PRGNAM-$VERSION
+
+runghc Setup.hs build
+runghc Setup.hs haddock
+runghc Setup.hs copy --destdir=$PKG
+runghc Setup.hs register --gen-pkg-config
+
+PKGCONFD=/usr/lib${LIBDIRSUFFIX}/ghc-${GHC_VERSION}/package.conf.d
+PKGID=$( grep -E "^id: " $SRCNAM-$VERSION.conf | cut -d" " -f2 )
+mkdir -p $PKG/$PKGCONFD
+mv $SRCNAM-$VERSION.conf $PKG/$PKGCONFD/$PKGID.conf
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a LICENSE $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/haskell/haskell-zlib/haskell-zlib.info b/haskell/haskell-zlib/haskell-zlib.info
new file mode 100644
index 0000000000000..0f4a9e24ccc01
--- /dev/null
+++ b/haskell/haskell-zlib/haskell-zlib.info
@@ -0,0 +1,10 @@
+PRGNAM="haskell-zlib"
+VERSION="0.5.2.0"
+HOMEPAGE="http://hackage.haskell.org/package/zlib"
+DOWNLOAD="http://hackage.haskell.org/packages/archive/zlib/0.5.2.0/zlib-0.5.2.0.tar.gz"
+MD5SUM="19859e241dc18ef1501a5d44d8523507"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+MAINTAINER="Mikko Värri"
+EMAIL="vmj@linuxbox.fi"
+APPROVED="dsomero"
diff --git a/haskell/haskell-zlib/slack-desc b/haskell/haskell-zlib/slack-desc
new file mode 100644
index 0000000000000..9f634083f1765
--- /dev/null
+++ b/haskell/haskell-zlib/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description. Line
+# up the first '|' above the ':' following the base package name, and the '|'
+# on the right side marks the last column you can put a character in. You must
+# make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+haskell-zlib: haskell-zlib (compression library for Haskell)
+haskell-zlib:
+haskell-zlib: This is a library for Haskell programs. It provides a pure interface
+haskell-zlib: for compressing and decompressing streams of data represented as
+haskell-zlib: lazy ByteStrings. It uses the zlib C library so it has high
+haskell-zlib: performance. It supports the "zlib", "gzip" and "raw" compression
+haskell-zlib: formats.
+haskell-zlib:
+haskell-zlib:
+haskell-zlib:
+haskell-zlib: