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>