Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 04 Apr 2012 21:03:57 -0700
From:      Timothy Beyer <beyert@cs.ucr.edu>
To:        FreeBSD GNATS Submit <FreeBSD-gnats-submit@FreeBSD.org>
Cc:        Timothy Beyer <beyert@cs.ucr.edu>
Subject:   ports/166657: new port: lang/urweb
Message-ID:  <878viag6z6.wl@fastmail.fm>
Resent-Message-ID: <201204050410.q354A2LS033055@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         166657
>Category:       ports
>Synopsis:       new port: lang/urweb
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 05 04:10:01 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Timothy Beyer
>Release:        FreeBSD 9.0-RELEASE i386
>Organization:
no organization
>Environment:
System: FreeBSD aeonserv.aeonnet 9.0-RELEASE FreeBSD 9.0-RELEASE #9: Fri Mar 9 00:02:30 PST 2012 root@aeonserv.aeonnet:/usr/obj/usr/src/sys/CUSTOM i386
 
>Description:

Ur is a programming language in the tradition of ML and Haskell, but featuring
a significantly richer type system. Ur is functional, pure, statically-typed,
and strict. Ur supports a powerful kind of metaprogramming based on row types.

Ur/Web is Ur plus a special standard library and associated rules for parsing
and optimization. Ur/Web supports construction of dynamic web applications
backed by SQL databases. The signature of the standard library is such that
well-typed Ur/Web programs "don't go wrong" in a very broad sense. Not only do
they not crash during particular page generations, but they also may not:

  * Suffer from any kinds of code-injection attacks
  * Return invalid HTML
  * Contain dead intra-application links
  * Have mismatches between HTML forms and the fields expected by their
    handlers
  * Include client-side code that makes incorrect assumptions about the
  * "AJAX"-style services that the remote web server provides
  * Attempt invalid SQL queries
  * Use improper marshaling or unmarshaling in communication with SQL databases
    or between browsers and web servers

>How-To-Repeat:
extract shar archive and build port

Note that when it builds, about 1-5% of the time, mlton will segfault during
the build.  If this happens, it should build on another attempt.

Also, it should build and run on both amd64 and i386, but the FreeBSD port of
mlton only supports i386.  (apparently there is support for 64-bit in newer
versions of mlton, not sure if the current version of mlton in ports is simply
marked conservatively or not)

The fastcgi (www/fcgi) port is *not* required, because it uses an
implementation of the fastcgi protocol, not the library itself.

>Fix:
    The included shar

--- urweb.shar begins here ---
# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	urweb
#	urweb/Makefile
#	urweb/distinfo
#	urweb/pkg-descr
#	urweb/pkg-plist
#	urweb/files
#	urweb/files/patch-configure
#	urweb/files/patch-Makefile.am
#	urweb/files/patch-Makefile.in
#	urweb/files/patch-urweb.c
#
echo c - urweb
mkdir -p urweb > /dev/null 2>&1
echo x - urweb/Makefile
sed 's/^X//' >urweb/Makefile << '433027df481ac24040166d1bee4dfa6c'
X# New ports collection makefile for:	urweb
X# Date created:		4 Apr 2012
X# Whom:			Timothy Beyer <beyert@cs.ucr.edu>
X#
X# $FreeBSD$
X
XPORTNAME=	urweb
XPORTVERSION=	20120329
XCATEGORIES=	lang www
XMASTER_SITES=	http://www.impredicative.com/ur/
XEXTRACT_SUFX=	.tgz
X
XMAINTAINER=	beyert@cs.ucr.edu
XCOMMENT=	Ultimate host for embedded domain-specific languages
X
XLICENSE=	BSD
XLICENSE_FILE=	${WRKDIR}/${DISTNAME}/LICENSE
X
XBUILD_DEPENDS=	mlton:${PORTSDIR}/lang/mlton
X
XCONFIGURE_ENV=	CCARGS="-I${LOCALBASE}/include"
X
XHAS_CONFIGURE=	yes
XUSE_GMAKE=	yes
XCONFIGURE_ARGS=	--prefix=${PREFIX}
XUSE_LDCONFIG=	yes
XUSE_OPENSSL=	yes
XONLY_FOR_ARCHS=	i386 amd64
X
XOPTIONS=	ELISP "Install contributed Emacs Lisp" on \
X		PGSQL "Enable PostgreSQL Support" on \
X		SQLITE "Enable Sqlite Support" off \
X		MYSQL "Enable Mysql Support" off
X
X.include <bsd.port.options.mk>
X
X.ifdef (WITH_ELISP)
XPLIST_SUB+=	ELISP=""
XCONFIGURE_ARGS+=	with_emacs=yes
X.else
XPLIST_SUB+=	ELISP="@comment "
XCONFIGURE_ARGS+=	with_emacs=no
X.endif
X
X.ifdef (WITH_PGSQL)
XUSE_PGSQL=	server
X.else
XCONFIGURE_ENV+=	PGHEADER="no"
X.endif
X
X.ifdef (WITH_SQLITE)
XUSE_SQLITE=	yes
X.else
XCONFIGURE_ENV+=	SQHEADER="no"
X.endif
X
X.ifdef (WITH_MYSQL)
XUSE_MYSQL=	yes
X.else
XCONFIGURE_ENV+=	MSHEADER="no"
X.endif
X
X.include <bsd.port.mk>
433027df481ac24040166d1bee4dfa6c
echo x - urweb/distinfo
sed 's/^X//' >urweb/distinfo << 'f826b63141fe0a69b6e8be455bee12a2'
XSHA256 (urweb-20120329.tgz) = 9f6866bc5663f173157ae6e822bde728581ebdbd2aeb3bb3a1ecf0c0964e691f
XSIZE (urweb-20120329.tgz) = 828756
f826b63141fe0a69b6e8be455bee12a2
echo x - urweb/pkg-descr
sed 's/^X//' >urweb/pkg-descr << 'a7b318246fa09027baf99e890906f4c8'
XUr is a programming language in the tradition of ML and Haskell, but featuring
Xa significantly richer type system. Ur is functional, pure, statically-typed,
Xand strict. Ur supports a powerful kind of metaprogramming based on row types.
X
XUr/Web is Ur plus a special standard library and associated rules for parsing
Xand optimization. Ur/Web supports construction of dynamic web applications
Xbacked by SQL databases. The signature of the standard library is such that
Xwell-typed Ur/Web programs "don't go wrong" in a very broad sense. Not only do
Xthey not crash during particular page generations, but they also may not:
X
X  * Suffer from any kinds of code-injection attacks
X  * Return invalid HTML
X  * Contain dead intra-application links
X  * Have mismatches between HTML forms and the fields expected by their
X    handlers
X  * Include client-side code that makes incorrect assumptions about the
X  * "AJAX"-style services that the remote web server provides
X  * Attempt invalid SQL queries
X  * Use improper marshaling or unmarshaling in communication with SQL databases
X    or between browsers and web servers
X
XWWW: http://www.impredicative.com/ur/
a7b318246fa09027baf99e890906f4c8
echo x - urweb/pkg-plist
sed 's/^X//' >urweb/pkg-plist << '56b60823454f9e780875533895fd5dcc'
Xbin/urweb
Xinclude/urweb/config.h
Xinclude/urweb/queue.h
Xinclude/urweb/request.h
Xinclude/urweb/types.h
Xinclude/urweb/urweb.h
Xlib/liburweb.a
Xlib/liburweb.la
Xlib/liburweb.so
Xlib/liburweb.so.0
Xlib/liburweb_cgi.a
Xlib/liburweb_cgi.la
Xlib/liburweb_cgi.so
Xlib/liburweb_cgi.so.0
Xlib/liburweb_fastcgi.a
Xlib/liburweb_fastcgi.la
Xlib/liburweb_fastcgi.so
Xlib/liburweb_fastcgi.so.0
Xlib/liburweb_http.a
Xlib/liburweb_http.la
Xlib/liburweb_http.so
Xlib/liburweb_http.so.0
Xlib/liburweb_static.a
Xlib/liburweb_static.la
Xlib/liburweb_static.so
Xlib/liburweb_static.so.0
Xlib/urweb/js/urweb.js
Xlib/urweb/ur/basis.urs
Xlib/urweb/ur/char.ur
Xlib/urweb/ur/char.urs
Xlib/urweb/ur/list.ur
Xlib/urweb/ur/list.urs
Xlib/urweb/ur/listPair.ur
Xlib/urweb/ur/listPair.urs
Xlib/urweb/ur/monad.ur
Xlib/urweb/ur/monad.urs
Xlib/urweb/ur/option.ur
Xlib/urweb/ur/option.urs
Xlib/urweb/ur/string.ur
Xlib/urweb/ur/string.urs
Xlib/urweb/ur/top.ur
Xlib/urweb/ur/top.urs
X%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-compat.el
X%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-defs.el
X%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-mode-startup.el
X%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-mode.el
X%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-move.el
X%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-util.el
X%%ELISP%%@dirrm share/emacs/site-lisp/urweb-mode
X@dirrm lib/urweb/ur
X@dirrm lib/urweb/js
X@dirrm lib/urweb
X@dirrm include/urweb
56b60823454f9e780875533895fd5dcc
echo c - urweb/files
mkdir -p urweb/files > /dev/null 2>&1
echo x - urweb/files/patch-configure
sed 's/^X//' >urweb/files/patch-configure << 'b1941e0f4d44430a97815e348f4b7a6d'
X--- configure.orig	2012-03-29 08:09:43.000000000 -0700
X+++ configure	2012-04-04 03:59:35.000000000 -0700
X@@ -12583,14 +12583,14 @@
X 
X 
X if test -z $PGHEADER; then
X-   for ac_header in postgresql/libpq-fe.h
X+   for ac_header in libpq-fe.h
X do :
X-  ac_fn_c_check_header_mongrel "$LINENO" "postgresql/libpq-fe.h" "ac_cv_header_postgresql_libpq_fe_h" "$ac_includes_default"
X+  ac_fn_c_check_header_mongrel "$LINENO" "libpq-fe.h" "ac_cv_header_postgresql_libpq_fe_h" "$ac_includes_default"
X if test "x$ac_cv_header_postgresql_libpq_fe_h" = xyes; then :
X   cat >>confdefs.h <<_ACEOF
X #define HAVE_POSTGRESQL_LIBPQ_FE_H 1
X _ACEOF
X- PGHEADER=postgresql/libpq-fe.h
X+ PGHEADER=libpq-fe.h
X fi
X 
X done
b1941e0f4d44430a97815e348f4b7a6d
echo x - urweb/files/patch-Makefile.am
sed 's/^X//' >urweb/files/patch-Makefile.am << '42f12e37750ab8769c2e56e34917cec4'
X--- src/c/Makefile.am.orig	2012-03-29 08:09:43.000000000 -0700
X+++ src/c/Makefile.am	2012-04-04 00:52:39.000000000 -0700
X@@ -7,4 +7,4 @@
X liburweb_static_la_SOURCES = static.c
X 
X AM_CPPFLAGS = -I../../include @OPENSSL_INCLUDES@
X-AM_CFLAGS = -Wimplicit -Wall -Werror -Wno-format-security -Wno-deprecated-declarations
X+AM_CFLAGS = -Wimplicit -Wall -Wno-format-security -Wno-deprecated-declarations
42f12e37750ab8769c2e56e34917cec4
echo x - urweb/files/patch-Makefile.in
sed 's/^X//' >urweb/files/patch-Makefile.in << '81a1cd42c455fd3ac4d5294be14ff0b5'
X--- src/c/Makefile.in.orig	2012-03-29 08:09:43.000000000 -0700
X+++ src/c/Makefile.in	2012-04-04 00:52:43.000000000 -0700
X@@ -254,7 +254,7 @@
X liburweb_fastcgi_la_SOURCES = fastcgi.c
X liburweb_static_la_SOURCES = static.c
X AM_CPPFLAGS = -I../../include @OPENSSL_INCLUDES@
X-AM_CFLAGS = -Wimplicit -Wall -Werror -Wno-format-security -Wno-deprecated-declarations
X+AM_CFLAGS = -Wimplicit -Wall -Wno-format-security -Wno-deprecated-declarations
X all: all-am
X 
X .SUFFIXES:
81a1cd42c455fd3ac4d5294be14ff0b5
echo x - urweb/files/patch-urweb.c
sed 's/^X//' >urweb/files/patch-urweb.c << '9b1a712460194f7cbd1b43ba6a95597f'
X--- src/c/urweb.c.orig	2012-03-29 08:09:43.000000000 -0700
X+++ src/c/urweb.c	2012-04-04 00:55:17.000000000 -0700
X@@ -160,12 +160,7 @@
X static unsigned n_clients;
X 
X static pthread_mutex_t clients_mutex =
X-    #ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER
X-        PTHREAD_RECURSIVE_MUTEX_INITIALIZER
X-    #else
X-        PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
X-    #endif
X-    ;
X+PTHREAD_MUTEX_INITIALIZER;
X size_t uw_messages_max = SIZE_MAX;
X size_t uw_clients_max = SIZE_MAX;
X 
9b1a712460194f7cbd1b43ba6a95597f
exit

--- urweb.shar ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?878viag6z6.wl>