1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-27 05:10:36 +00:00

Add New Port lang/urweb: 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.

PR:		ports/166657
Submitted by:	Timothy Beyer <beyert@cs.ucr.edu>
Feature safe:	yes
This commit is contained in:
Michael Scheidell 2012-04-06 14:36:30 +00:00
parent 3be13e4d84
commit e2e280ca6f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=294290
9 changed files with 196 additions and 0 deletions

View File

@ -366,6 +366,7 @@
SUBDIR += tuareg-mode.el
SUBDIR += twelf
SUBDIR += ucc
SUBDIR += urweb
SUBDIR += v8
SUBDIR += vala
SUBDIR += vala-vapigen

63
lang/urweb/Makefile Normal file
View File

@ -0,0 +1,63 @@
# New ports collection makefile for: urweb
# Date created: 4 Apr 2012
# Whom: Timothy Beyer <beyert@cs.ucr.edu>
#
# $FreeBSD$
PORTNAME= urweb
PORTVERSION= 20120329
CATEGORIES= lang www
MASTER_SITES= http://www.impredicative.com/ur/
EXTRACT_SUFX= .tgz
MAINTAINER= beyert@cs.ucr.edu
COMMENT= Ultimate host for embedded domain-specific languages
LICENSE= BSD
LICENSE_FILE= ${WRKDIR}/${DISTNAME}/LICENSE
BUILD_DEPENDS= mlton:${PORTSDIR}/lang/mlton
CONFIGURE_ENV= CCARGS="-I${LOCALBASE}/include"
HAS_CONFIGURE= yes
USE_GMAKE= yes
CONFIGURE_ARGS= --prefix=${PREFIX}
USE_LDCONFIG= yes
USE_OPENSSL= yes
ONLY_FOR_ARCHS= i386 amd64
OPTIONS= ELISP "Install contributed Emacs Lisp" on \
PGSQL "Enable PostgreSQL Support" on \
SQLITE "Enable Sqlite Support" off \
MYSQL "Enable Mysql Support" off
.include <bsd.port.options.mk>
.ifdef (WITH_ELISP)
PLIST_SUB+= ELISP=""
CONFIGURE_ARGS+= with_emacs=yes
.else
PLIST_SUB+= ELISP="@comment "
CONFIGURE_ARGS+= with_emacs=no
.endif
.ifdef (WITH_PGSQL)
USE_PGSQL= server
.else
CONFIGURE_ENV+= PGHEADER="no"
.endif
.ifdef (WITH_SQLITE)
USE_SQLITE= yes
.else
CONFIGURE_ENV+= SQHEADER="no"
.endif
.ifdef (WITH_MYSQL)
USE_MYSQL= yes
.else
CONFIGURE_ENV+= MSHEADER="no"
.endif
.include <bsd.port.mk>

2
lang/urweb/distinfo Normal file
View File

@ -0,0 +1,2 @@
SHA256 (urweb-20120329.tgz) = 9f6866bc5663f173157ae6e822bde728581ebdbd2aeb3bb3a1ecf0c0964e691f
SIZE (urweb-20120329.tgz) = 828756

View File

@ -0,0 +1,8 @@
--- src/c/Makefile.am.orig 2012-03-29 08:09:43.000000000 -0700
+++ src/c/Makefile.am 2012-04-04 00:52:39.000000000 -0700
@@ -7,4 +7,4 @@
liburweb_static_la_SOURCES = static.c
AM_CPPFLAGS = -I../../include @OPENSSL_INCLUDES@
-AM_CFLAGS = -Wimplicit -Wall -Werror -Wno-format-security -Wno-deprecated-declarations
+AM_CFLAGS = -Wimplicit -Wall -Wno-format-security -Wno-deprecated-declarations

View File

@ -0,0 +1,11 @@
--- src/c/Makefile.in.orig 2012-03-29 08:09:43.000000000 -0700
+++ src/c/Makefile.in 2012-04-04 00:52:43.000000000 -0700
@@ -254,7 +254,7 @@
liburweb_fastcgi_la_SOURCES = fastcgi.c
liburweb_static_la_SOURCES = static.c
AM_CPPFLAGS = -I../../include @OPENSSL_INCLUDES@
-AM_CFLAGS = -Wimplicit -Wall -Werror -Wno-format-security -Wno-deprecated-declarations
+AM_CFLAGS = -Wimplicit -Wall -Wno-format-security -Wno-deprecated-declarations
all: all-am
.SUFFIXES:

View File

@ -0,0 +1,20 @@
--- configure.orig 2012-03-29 08:09:43.000000000 -0700
+++ configure 2012-04-04 03:59:35.000000000 -0700
@@ -12583,14 +12583,14 @@
if test -z $PGHEADER; then
- for ac_header in postgresql/libpq-fe.h
+ for ac_header in libpq-fe.h
do :
- ac_fn_c_check_header_mongrel "$LINENO" "postgresql/libpq-fe.h" "ac_cv_header_postgresql_libpq_fe_h" "$ac_includes_default"
+ ac_fn_c_check_header_mongrel "$LINENO" "libpq-fe.h" "ac_cv_header_postgresql_libpq_fe_h" "$ac_includes_default"
if test "x$ac_cv_header_postgresql_libpq_fe_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_POSTGRESQL_LIBPQ_FE_H 1
_ACEOF
- PGHEADER=postgresql/libpq-fe.h
+ PGHEADER=libpq-fe.h
fi
done

View File

@ -0,0 +1,16 @@
--- src/c/urweb.c.orig 2012-03-29 08:09:43.000000000 -0700
+++ src/c/urweb.c 2012-04-04 00:55:17.000000000 -0700
@@ -160,12 +160,7 @@
static unsigned n_clients;
static pthread_mutex_t clients_mutex =
- #ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER
- PTHREAD_RECURSIVE_MUTEX_INITIALIZER
- #else
- PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
- #endif
- ;
+PTHREAD_MUTEX_INITIALIZER;
size_t uw_messages_max = SIZE_MAX;
size_t uw_clients_max = SIZE_MAX;

22
lang/urweb/pkg-descr Normal file
View File

@ -0,0 +1,22 @@
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
WWW: http://www.impredicative.com/ur/

53
lang/urweb/pkg-plist Normal file
View File

@ -0,0 +1,53 @@
bin/urweb
include/urweb/config.h
include/urweb/queue.h
include/urweb/request.h
include/urweb/types.h
include/urweb/urweb.h
lib/liburweb.a
lib/liburweb.la
lib/liburweb.so
lib/liburweb.so.0
lib/liburweb_cgi.a
lib/liburweb_cgi.la
lib/liburweb_cgi.so
lib/liburweb_cgi.so.0
lib/liburweb_fastcgi.a
lib/liburweb_fastcgi.la
lib/liburweb_fastcgi.so
lib/liburweb_fastcgi.so.0
lib/liburweb_http.a
lib/liburweb_http.la
lib/liburweb_http.so
lib/liburweb_http.so.0
lib/liburweb_static.a
lib/liburweb_static.la
lib/liburweb_static.so
lib/liburweb_static.so.0
lib/urweb/js/urweb.js
lib/urweb/ur/basis.urs
lib/urweb/ur/char.ur
lib/urweb/ur/char.urs
lib/urweb/ur/list.ur
lib/urweb/ur/list.urs
lib/urweb/ur/listPair.ur
lib/urweb/ur/listPair.urs
lib/urweb/ur/monad.ur
lib/urweb/ur/monad.urs
lib/urweb/ur/option.ur
lib/urweb/ur/option.urs
lib/urweb/ur/string.ur
lib/urweb/ur/string.urs
lib/urweb/ur/top.ur
lib/urweb/ur/top.urs
%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-compat.el
%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-defs.el
%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-mode-startup.el
%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-mode.el
%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-move.el
%%ELISP%%share/emacs/site-lisp/urweb-mode/urweb-util.el
%%ELISP%%@dirrm share/emacs/site-lisp/urweb-mode
@dirrm lib/urweb/ur
@dirrm lib/urweb/js
@dirrm lib/urweb
@dirrm include/urweb