aboutsummaryrefslogtreecommitdiff
path: root/devel/hs-mueval
diff options
context:
space:
mode:
authorGabor Pali <pgj@FreeBSD.org>2010-01-04 08:54:14 +0000
committerGabor Pali <pgj@FreeBSD.org>2010-01-04 08:54:14 +0000
commit8c6db534155e6f577a6bb9382f8116a8e4c4c922 (patch)
tree6b9f5d35e3e719501045fbf39acb43af582f7dc1 /devel/hs-mueval
parent67657f142886a09e3bafd4be383da7c71b1eb30a (diff)
downloadports-8c6db534155e6f577a6bb9382f8116a8e4c4c922.tar.gz
ports-8c6db534155e6f577a6bb9382f8116a8e4c4c922.zip
Notes
Diffstat (limited to 'devel/hs-mueval')
-rw-r--r--devel/hs-mueval/Makefile93
-rw-r--r--devel/hs-mueval/distinfo3
-rw-r--r--devel/hs-mueval/files/patch-Mueval_Interpreter.hs15
-rw-r--r--devel/hs-mueval/pkg-descr15
-rw-r--r--devel/hs-mueval/pkg-message8
-rw-r--r--devel/hs-mueval/pkg-plist20
6 files changed, 154 insertions, 0 deletions
diff --git a/devel/hs-mueval/Makefile b/devel/hs-mueval/Makefile
new file mode 100644
index 000000000000..52f807368759
--- /dev/null
+++ b/devel/hs-mueval/Makefile
@@ -0,0 +1,93 @@
+# New ports collection makefile for: hs-mueval
+# Date created: December 20 2009
+# Whom: Giuseppe Pilichi aka Jacula Modyun <jacula@gmail.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= mueval
+PORTVERSION= 0.7.1
+CATEGORIES= devel haskell
+MASTER_SITES= http://hackage.haskell.org/packages/archive/${PORTNAME}/${PORTVERSION}/
+PKGNAMEPREFIX= hs-
+
+MAINTAINER= jacula@gmail.com
+COMMENT= Safely evaluate Haskell expressions
+
+BUILD_DEPENDS+= ghc:${PORTSDIR}/lang/ghc \
+ hs-utf8-string-ghc>=0.3:${PORTSDIR}/devel/hs-utf8-string-ghc \
+ hs-show>=0.3:${PORTSDIR}/devel/hs-show \
+ hs-hint>=0.3.1:${PORTSDIR}/devel/hs-hint
+RUN_DEPENDS+= ghc:${PORTSDIR}/lang/ghc \
+ hs-utf8-string-ghc>=0.3:${PORTSDIR}/devel/hs-utf8-string-ghc \
+ hs-show>=0.3:${PORTSDIR}/devel/hs-show \
+ hs-hint>=0.3.1:${PORTSDIR}/devel/hs-hint
+LIB_DEPENDS= gmp.8:${PORTSDIR}/math/libgmp4
+
+GHC_VERSION= 6.10.4
+MUEVAL_VERSION= ${PORTVERSION}
+
+GHC_CMD= ${LOCALBASE}/bin/ghc
+SETUP_CMD= ./setup
+
+DATADIR= ${PREFIX}/share/${DISTNAME}
+PORTDATA= *
+
+DOCSDIR= ${PREFIX}/share/doc/${DISTNAME}
+MUEVAL_LIBDIR_REL= lib/${DISTNAME}
+
+PLIST_SUB= GHC_VERSION=${GHC_VERSION} \
+ MUEVAL_VERSION=${MUEVAL_VERSION} \
+ MUEVAL_LIBDIR_REL=${MUEVAL_LIBDIR_REL}
+
+.if defined(NOPORTDOCS)
+PLIST_SUB+= NOPORTDOCS=""
+.else
+PLIST_SUB+= NOPORTDOCS="@comment "
+.endif
+
+.if !defined(NOPORTDOCS)
+
+PORT_HADDOCK!= (cd ${.CURDIR}/../../lang/ghc && ${MAKE} -V PORT_HADDOCK)
+.if !empty(PORT_HADDOCK:M?0)
+BUILD_DEPENDS+= haddock:${PORTSDIR}/devel/hs-haddock
+.endif
+BUILD_DEPENDS+= HsColour:${PORTSDIR}/print/hs-hscolour
+
+HSCOLOUR_VERSION= 1.15
+HSCOLOUR_DATADIR= ${PREFIX}/share/hscolour-${HSCOLOUR_VERSION}
+
+PORTDOCS= *
+.endif
+
+.SILENT:
+
+do-configure:
+ cd ${WRKSRC} && ${GHC_CMD} --make Setup.hs -o setup -package Cabal
+.if !defined(NOPORTDATA)
+ cd ${WRKSRC} && ${SETUP_CMD} configure --haddock-options=-w --prefix=${PREFIX}
+.else
+ cd ${WRKSRC} && ${SETUP_CMD} configure --haddock-options=-w --prefix=${PREFIX} \
+ --datadir='' --datasubdir='' --docdir='${DOCSDIR}'
+.endif
+
+do-build:
+ cd ${WRKSRC} && ${SETUP_CMD} build \
+ && ${SETUP_CMD} register --gen-script
+
+.if !defined(NOPORTDOCS)
+ cd ${WRKSRC} && ${SETUP_CMD} haddock --executables --hyperlink-source \
+ --hscolour-css=${HSCOLOUR_DATADIR}/hscolour.css
+.endif
+
+do-install:
+ cd ${WRKSRC} && ${SETUP_CMD} install \
+ && ${INSTALL_SCRIPT} register.sh ${PREFIX}/${MUEVAL_LIBDIR_REL}/register.sh
+
+post-install:
+ ${RM} -f ${PREFIX}/lib/ghc-${GHC_VERSION}/package.conf.old
+ ${ECHO_MSG} -e "\a"
+ ${CAT} "${PKGMESSAGE}"
+ ${ECHO_MSG} ""
+
+.include <bsd.port.mk>
diff --git a/devel/hs-mueval/distinfo b/devel/hs-mueval/distinfo
new file mode 100644
index 000000000000..71d37836f038
--- /dev/null
+++ b/devel/hs-mueval/distinfo
@@ -0,0 +1,3 @@
+MD5 (mueval-0.7.1.tar.gz) = 3e655a1d63468b961532c164a9b31227
+SHA256 (mueval-0.7.1.tar.gz) = 8e721e207cea5fdf58ac768d03a9a038845ca48a527da0f9538c370c2aac9f25
+SIZE (mueval-0.7.1.tar.gz) = 13597
diff --git a/devel/hs-mueval/files/patch-Mueval_Interpreter.hs b/devel/hs-mueval/files/patch-Mueval_Interpreter.hs
new file mode 100644
index 000000000000..8e72073cc670
--- /dev/null
+++ b/devel/hs-mueval/files/patch-Mueval_Interpreter.hs
@@ -0,0 +1,15 @@
+--- Mueval/Interpreter.hs.orig 2009-12-26 10:51:26.000000000 +0000
++++ Mueval/Interpreter.hs 2009-12-26 10:52:08.000000000 +0000
+@@ -120,9 +120,9 @@
+
+ -- | Renders the input String including its exceptions using @exceptionMsg@
+ render :: (Control.Monad.Trans.MonadIO m) =>
+- Int -> -- ^ max number of characters to include
+- String -> -- ^ input
+- m (String, Bool) -- ^ ( output, @True@ if we found an exception )
++ Int -- ^ max number of characters to include
++ -> String -- ^ input
++ -> m (String, Bool) -- ^ ( output, @True@ if we found an exception )
+ render i xs =
+ do (out,Any b) <- runWriterT $ render' i (toStream xs)
+ return (out,b)
diff --git a/devel/hs-mueval/pkg-descr b/devel/hs-mueval/pkg-descr
new file mode 100644
index 000000000000..0733f6109464
--- /dev/null
+++ b/devel/hs-mueval/pkg-descr
@@ -0,0 +1,15 @@
+Mueval is a Haskell interpreter. It uses the GHC API to evaluate
+arbitrary Haskell expressions.
+
+Importantly, mueval takes many precautions to defang and avoid
+"evil" code. It uses resource limits, whitelisted modules, special
+Show instances for IO, threads, processes, changes of directory, and
+so on to sandbox the Haskell code.
+
+It is, in short, intended to be a standalone version of Lambdabot's
+famous evaluation functionality. For examples and explanations, please
+see the README file.
+
+Mueval is POSIX-only.
+
+WWW: http://code.haskell.org/mubot/
diff --git a/devel/hs-mueval/pkg-message b/devel/hs-mueval/pkg-message
new file mode 100644
index 000000000000..6fbb11db5505
--- /dev/null
+++ b/devel/hs-mueval/pkg-message
@@ -0,0 +1,8 @@
+=======================================================================
+ WARNING: If you installed devel/hs-transformers, then before starting
+ "mueval" you have to:
+
+ - hide it with the command: 'ghc-pkg hide transformers'
+ or
+ - pass to "mueval" the option: '-n transformers'.
+=======================================================================
diff --git a/devel/hs-mueval/pkg-plist b/devel/hs-mueval/pkg-plist
new file mode 100644
index 000000000000..3aaf55a1a25a
--- /dev/null
+++ b/devel/hs-mueval/pkg-plist
@@ -0,0 +1,20 @@
+@comment $FreeBSD$
+bin/mueval
+bin/mueval-core
+%%MUEVAL_LIBDIR_REL%%/ghc-6.10.4/HSmueval-%%MUEVAL_VERSION%%.o
+%%MUEVAL_LIBDIR_REL%%/ghc-6.10.4/Mueval/ArgsParse.hi
+%%MUEVAL_LIBDIR_REL%%/ghc-6.10.4/Mueval/Context.hi
+%%MUEVAL_LIBDIR_REL%%/ghc-6.10.4/Mueval/Interpreter.hi
+%%MUEVAL_LIBDIR_REL%%/ghc-6.10.4/Mueval/Parallel.hi
+%%MUEVAL_LIBDIR_REL%%/ghc-6.10.4/Mueval/Resources.hi
+%%MUEVAL_LIBDIR_REL%%/ghc-6.10.4/libHSmueval-%%MUEVAL_VERSION%%.a
+%%MUEVAL_LIBDIR_REL%%/register.sh
+%%NOPORTDOCS%%%%DOCSDIR%%/LICENSE
+%%NOPORTDOCS%%@dirrmtry %%DOCSDIR%%
+@dirrm %%MUEVAL_LIBDIR_REL%%/ghc-6.10.4/Mueval
+@dirrm %%MUEVAL_LIBDIR_REL%%/ghc-6.10.4
+@dirrm %%MUEVAL_LIBDIR_REL%%
+@exec /bin/sh %D/%%MUEVAL_LIBDIR_REL%%/register.sh
+@exec /bin/rm -f %D/lib/ghc-%%GHC_VERSION%%/package.conf.old
+@unexec %D/bin/ghc-pkg unregister mueval
+@unexec /bin/rm -f %D/lib/ghc-%%GHC_VERSION%%/package.conf.old