summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-servers/ocsigenserver')
-rw-r--r--www-servers/ocsigenserver/Manifest2
-rw-r--r--www-servers/ocsigenserver/files/lwt.patch19
-rw-r--r--www-servers/ocsigenserver/files/lwt2.patch19
-rw-r--r--www-servers/ocsigenserver/files/lwt3.patch86
-rw-r--r--www-servers/ocsigenserver/files/ocsigenserver.confd25
-rw-r--r--www-servers/ocsigenserver/files/ocsigenserver.initd59
-rw-r--r--www-servers/ocsigenserver/metadata.xml8
-rw-r--r--www-servers/ocsigenserver/ocsigenserver-2.5-r2.ebuild91
-rw-r--r--www-servers/ocsigenserver/ocsigenserver-2.6.ebuild85
9 files changed, 394 insertions, 0 deletions
diff --git a/www-servers/ocsigenserver/Manifest b/www-servers/ocsigenserver/Manifest
new file mode 100644
index 000000000000..b387c9c5d47e
--- /dev/null
+++ b/www-servers/ocsigenserver/Manifest
@@ -0,0 +1,2 @@
+DIST ocsigenserver-2.5.tar.gz 1259472 SHA256 d9107e0543a286b2264b0f4255886cdc3670196d5453a689da2985c7e5a7df2b SHA512 8d90ce99bdda2fefdc0d22497badfa885ff310801c6cc205e0360e823964b4b01a1fecef8549121647abfd113bfe45a0b6cb306a326b26657bd95fbafaa59e72 WHIRLPOOL 9feac8009a83520d3f82c3e4162d72cdff7e54b5077af63e1b04d63da0364035480de5a30f04f23c6124e0d4dd4c6c885687d2a24e00b1432b23d572bf90f13e
+DIST ocsigenserver-2.6.tar.gz 1261542 SHA256 f70751f1a1dcc9b9021f0773e92347bdbdb50f7c90b79a95dc5a6b90e9ee6818 SHA512 56805378d375de7e7653f74b3681fe21c798df2c50ee6889bd238df8f64aa053dfdbd1df2b6396b2f8c9ed8547b8176ef9498ccbf19df4bf111469353a6d9434 WHIRLPOOL 5128a3a429db49a5f8161cf008c91020c0e40e5bd58716adeee5580222bae0393dfdd73ffa01f167626f46e699ffff3e76b1aa0fb8c91d53889dc6e15cbe1ea9
diff --git a/www-servers/ocsigenserver/files/lwt.patch b/www-servers/ocsigenserver/files/lwt.patch
new file mode 100644
index 000000000000..360b2b06e913
--- /dev/null
+++ b/www-servers/ocsigenserver/files/lwt.patch
@@ -0,0 +1,19 @@
+commit 156f8deaae2a50d8b9614b99488f34b284382eaa
+Author: Drup <drupyog@zoho.com>
+Date: Thu Dec 11 16:52:33 2014 +0100
+
+ Remove dependency to Lwt_util.
+
+diff --git a/src/server/ocsigen_server.ml b/src/server/ocsigen_server.ml
+index c5563a6..e548f5e 100644
+--- a/src/server/ocsigen_server.ml
++++ b/src/server/ocsigen_server.ml
+@@ -1040,7 +1040,7 @@ let rec wait_connection use_ssl port socket =
+ >>= decr_connected
+ in
+
+- Lwt_util.iter handle_one l >>= fun () ->
++ Lwt_list.iter_p handle_one l >>= fun () ->
+ match e with
+ | Some e -> handle_exn e
+ | None -> Lwt.return ())
diff --git a/www-servers/ocsigenserver/files/lwt2.patch b/www-servers/ocsigenserver/files/lwt2.patch
new file mode 100644
index 000000000000..9b9e1b808853
--- /dev/null
+++ b/www-servers/ocsigenserver/files/lwt2.patch
@@ -0,0 +1,19 @@
+commit faaa943aacaeaee27e5a309bb54bd539ec1a58a2
+Author: Drup <drupyog@zoho.com>
+Date: Sat Dec 6 05:08:13 2014 +0100
+
+ Replace use of the deprecated `Lwt_event` by `Lwt_react.E`.
+
+diff --git a/src/extensions/ocsigen_comet.ml b/src/extensions/ocsigen_comet.ml
+index ad7d9dd..ccc0719 100644
+--- a/src/extensions/ocsigen_comet.ml
++++ b/src/extensions/ocsigen_comet.ml
+@@ -468,7 +468,7 @@ end = struct
+ Lwt.choose
+ [ (choosed >|= fun x -> Some x);
+ (Lwt_unix.sleep (get_timeout ()) >|= fun () -> None);
+- (Lwt_event.next Security.kill >>= fun () -> Lwt.fail Kill);
++ (Lwt_react.E.next Security.kill >>= fun () -> Lwt.fail Kill);
+ ] >|= fun x ->
+ List.iter (fun c -> Channels.send_listeners c (-1)) active ;
+ let s = Messages.encode_downgoing ended x in
diff --git a/www-servers/ocsigenserver/files/lwt3.patch b/www-servers/ocsigenserver/files/lwt3.patch
new file mode 100644
index 000000000000..d2a9ca578fe2
--- /dev/null
+++ b/www-servers/ocsigenserver/files/lwt3.patch
@@ -0,0 +1,86 @@
+commit 5b60babe229189c2be999e138c500527334c3415
+Author: pveber <philippe.veber@gmail.com>
+Date: Fri Feb 27 09:24:50 2015 +0100
+
+ fix configure and Makefiles following lwt.extra deprecation
+
+ Now that lwt.extra has been deprecated [0], the configure and Makefile
+ scripts should refer directly to lwt.preemptive.
+
+ [0] https://github.com/ocsigen/lwt/commit/91d549b54397a33ed80de962771d07180c4b8d4e
+
+Index: ocsigenserver-2.5/Makefile.options
+===================================================================
+--- ocsigenserver-2.5.orig/Makefile.options
++++ ocsigenserver-2.5/Makefile.options
+@@ -26,14 +26,14 @@ endif
+ ## but also to generate src/baselib/ocsigen_config.ml and src/files/META
+
+ ifeq "$(PREEMPTIVE)" "YES"
+-LWT_EXTRA_PACKAGE:=lwt.extra
++LWT_PREEMPTIVE_PACKAGE:=lwt.preemptive
+ endif
+
+ BASE_PACKAGE := lwt ipaddr
+
+ SERVER_PACKAGE := lwt.ssl \
+- ${LWT_EXTRA_PACKAGE} \
+- ipaddr \
++ ${LWT_PREEMPTIVE_PACKAGE} \
++ ipaddr \
+ netstring \
+ netstring-pcre \
+ findlib \
+Index: ocsigenserver-2.5/configure
+===================================================================
+--- ocsigenserver-2.5.orig/configure
++++ ocsigenserver-2.5/configure
+@@ -410,7 +410,7 @@ check_library lwt "See: http://ocsigen.o
+ check_library lwt.unix "Missing support for 'unix' in lwt."
+ check_library lwt.react "Missing support for 'react' in lwt."
+ check_library lwt.ssl "Missing support for 'ssl' in lwt."
+-#check_library lwt.extra "Missing support for 'extra' in lwt."
++check_library lwt.preemptive "Missing support for 'preemptive' in lwt."
+
+ check_library netstring \
+ "See ocamlnet: http://projects.camlcity.org/projects/ocamlnet.html"
+@@ -454,12 +454,12 @@ if [ "$with_camlzip" -gt 0 ]; then
+ fi
+ fi
+
+-# Check Lwt.extra
++# Check Lwt.preemptive
+ if [ "$with_preempt" -gt 0 ]; then
+- if test_library lwt.extra; then
++ if test_library lwt.preemptive; then
+ echo -n
+ elif [ "$with_preempt" -gt 1 ]; then
+- fail_library lwt.extra "Missing support for 'extra' in lwt."
++ fail_library lwt.preemptive "Missing support for 'preemptive' in lwt."
+ else
+ with_preempt=0
+ fi
+Index: ocsigenserver-2.5/src/baselib/Makefile
+===================================================================
+--- ocsigenserver-2.5.orig/src/baselib/Makefile
++++ ocsigenserver-2.5/src/baselib/Makefile
+@@ -1,6 +1,6 @@
+ include ../../Makefile.config
+
+-LIBS := -package lwt.unix,netstring,netstring-pcre,cryptokit,findlib,tyxml,lwt.syntax,${LWT_EXTRA_PACKAGE},ipaddr
++LIBS := -package lwt.unix,netstring,netstring-pcre,cryptokit,findlib,tyxml,lwt.syntax,${LWT_PREEMPTIVE_PACKAGE},ipaddr
+ OCAMLC := $(OCAMLFIND) ocamlc${BYTEDBG} ${THREAD}
+ OCAMLOPT := $(OCAMLFIND) ocamlopt ${OPTDBG} ${THREAD}
+ OCAMLDOC := $(OCAMLFIND) ocamldoc
+Index: ocsigenserver-2.5/src/extensions/ocsipersist-dbm/Makefile
+===================================================================
+--- ocsigenserver-2.5.orig/src/extensions/ocsipersist-dbm/Makefile
++++ ocsigenserver-2.5/src/extensions/ocsipersist-dbm/Makefile
+@@ -1,6 +1,6 @@
+ include ../../../Makefile.config
+
+-PACKAGE := ${LWT_EXTRA_PACKAGE} \
++PACKAGE := ${LWT_PREEMPTIVE_PACKAGE} \
+ lwt.unix \
+ tyxml.parser \
+ dbm \
diff --git a/www-servers/ocsigenserver/files/ocsigenserver.confd b/www-servers/ocsigenserver/files/ocsigenserver.confd
new file mode 100644
index 000000000000..70638b7c8709
--- /dev/null
+++ b/www-servers/ocsigenserver/files/ocsigenserver.confd
@@ -0,0 +1,25 @@
+# /etc/conf.d/ocsigenserver : config file for /etc/init.d/ocsigenserver
+
+# Path for the ocsigen binary (add opt for native executable)
+
+#DAEMON=/usr/bin/ocsigenserver.opt
+DAEMON=/usr/bin/ocsigenserver
+
+# Name for ocsigen daemon
+
+NAME=ocsigenserver
+
+# Locstion of Ocsigen config file
+
+CONF=/etc/$NAME/ocsigenserver.conf
+
+# PID file location
+
+PIDFILE=/var/run/$NAME.pid
+
+# Add here any additional aptions for ocsigen
+
+OCSIGEN_OPTS=""
+
+# Command pipe
+COMMANDPIPE=/var/run/ocsigenserver_command
diff --git a/www-servers/ocsigenserver/files/ocsigenserver.initd b/www-servers/ocsigenserver/files/ocsigenserver.initd
new file mode 100644
index 000000000000..accf4753e179
--- /dev/null
+++ b/www-servers/ocsigenserver/files/ocsigenserver.initd
@@ -0,0 +1,59 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="depend checkconfig reload"
+
+depend() {
+ need net
+ use logger
+ after bootmist
+}
+
+
+checkconfig() {
+ if [ ! -f "$DAEMON" ] ; then
+ ewarn "Unable to find $DAEMON"
+ return 1
+ fi
+ if [ ! -f "$CONF" ] ; then
+ ewarn $CONF " does not exist."
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+
+ ebegin "Creating command pipe (${COMMANDPIPE})"
+ mkfifo -m 660 "${COMMANDPIPE}"
+ chown ocsigenserver:ocsigenserver "${COMMANDPIPE}"
+ eend $?
+
+ ebegin "Starting ocsigen"
+ start-stop-daemon --start --exec $DAEMON -- \
+ --pidfile $PIDFILE \
+ --daemon \
+ $OCSIGEN_OPTS
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ocsigen"
+ start-stop-daemon --stop --pidfile $PIDFILE
+ eend $?
+ ebegin "Removing command pipe (${COMMANDPIPE})"
+ rm -f "${COMMANDPIPE}"
+ eend $?
+}
+
+reload() {
+ if [ ! -f "$PIDFILE" ] ; then
+ ewarn "$PIDFILE not found!!"
+ ewarn "Ocsigen is not running. Not reloading."
+ return 1
+ fi
+ ebegin "Reloading ocsigen"
+ echo reload > /var/run/ocsigen_command
+ eend $?
+}
diff --git a/www-servers/ocsigenserver/metadata.xml b/www-servers/ocsigenserver/metadata.xml
new file mode 100644
index 000000000000..6c2941a2a9ed
--- /dev/null
+++ b/www-servers/ocsigenserver/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>ml</herd>
+ <upstream>
+ <remote-id type="github">ocsigen/ocsigenserver</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/www-servers/ocsigenserver/ocsigenserver-2.5-r2.ebuild b/www-servers/ocsigenserver/ocsigenserver-2.5-r2.ebuild
new file mode 100644
index 000000000000..b2a3ba40ad40
--- /dev/null
+++ b/www-servers/ocsigenserver/ocsigenserver-2.5-r2.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib findlib user
+
+DESCRIPTION="Ocaml-powered webserver and framework for dynamic web programming"
+HOMEPAGE="http://www.ocsigen.org"
+SRC_URI="https://github.com/ocsigen/ocsigenserver/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1-with-linking-exception"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE="debug doc dbm +ocamlopt +sqlite zlib"
+REQUIRED_USE="|| ( sqlite dbm )"
+RESTRICT="strip installsources"
+
+DEPEND=">=dev-ml/lwt-2.5.0:=[react,ssl]
+ >=dev-ml/react-0.9.3:=
+ zlib? ( >=dev-ml/camlzip-1.03-r1:= )
+ dev-ml/cryptokit:=
+ >=dev-ml/ocamlnet-3.6:=[pcre]
+ >=dev-ml/pcre-ocaml-6.2.5:=
+ >=dev-ml/tyxml-3.3:=
+ >=dev-lang/ocaml-3.12:=[ocamlopt?]
+ dev-ml/ocaml-ipaddr:=
+ dbm? ( || ( dev-ml/camldbm:= >=dev-lang/ocaml-3.12[gdbm] ) )
+ sqlite? ( dev-ml/ocaml-sqlite3:= )"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ enewgroup ocsigenserver
+ enewuser ocsigenserver -1 -1 /var/www ocsigenserver
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/lwt.patch"
+ epatch "${FILESDIR}/lwt2.patch"
+ epatch "${FILESDIR}/lwt3.patch"
+}
+
+src_configure() {
+ sh configure \
+ --prefix /usr \
+ --temproot "${ED}" \
+ --bindir /usr/bin \
+ --docdir /usr/share/doc/${PF} \
+ --mandir /usr/share/man/man1 \
+ --libdir /usr/$(get_libdir)/ocaml \
+ $(use_enable debug) \
+ $(use_with zlib camlzip) \
+ $(use_with sqlite) \
+ $(use_with dbm) \
+ --with-preempt \
+ --ocsigen-group ocsigenserver \
+ --ocsigen-user ocsigenserver \
+ --name ocsigenserver \
+ || die "Error : configure failed!"
+}
+
+src_compile() {
+ if use ocamlopt; then
+ emake
+ else
+ emake byte
+ fi
+ use doc && emake doc
+}
+
+src_install() {
+ findlib_src_preinst
+ if use ocamlopt; then
+ emake install
+ else
+ emake install.byte
+ fi
+ if use doc ; then
+ emake install.doc
+ fi
+ emake logrotate
+
+ newinitd "${FILESDIR}"/ocsigenserver.initd ocsigenserver || die
+ newconfd "${FILESDIR}"/ocsigenserver.confd ocsigenserver || die
+
+ dodoc README
+
+ # We create it at runtime
+ rm -f "${ED}/var/run/ocsigenserver_command" || die
+}
diff --git a/www-servers/ocsigenserver/ocsigenserver-2.6.ebuild b/www-servers/ocsigenserver/ocsigenserver-2.6.ebuild
new file mode 100644
index 000000000000..b5ef6ae2f66c
--- /dev/null
+++ b/www-servers/ocsigenserver/ocsigenserver-2.6.ebuild
@@ -0,0 +1,85 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils multilib findlib user
+
+DESCRIPTION="Ocaml-powered webserver and framework for dynamic web programming"
+HOMEPAGE="http://www.ocsigen.org"
+SRC_URI="https://github.com/ocsigen/ocsigenserver/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="LGPL-2.1-with-linking-exception"
+SLOT="0/${PV}"
+KEYWORDS="~amd64"
+IUSE="debug doc dbm +ocamlopt +sqlite zlib"
+REQUIRED_USE="|| ( sqlite dbm )"
+RESTRICT="strip installsources"
+
+DEPEND=">=dev-ml/lwt-2.5.0:=[react,ssl]
+ >=dev-ml/react-0.9.3:=
+ zlib? ( >=dev-ml/camlzip-1.03-r1:= )
+ dev-ml/cryptokit:=
+ >=dev-ml/ocamlnet-3.6:=[pcre]
+ >=dev-ml/pcre-ocaml-6.2.5:=
+ >=dev-ml/tyxml-3.3:=
+ >=dev-lang/ocaml-3.12:=[ocamlopt?]
+ dev-ml/ocaml-ipaddr:=
+ dbm? ( || ( dev-ml/camldbm:= >=dev-lang/ocaml-3.12[gdbm] ) )
+ sqlite? ( dev-ml/ocaml-sqlite3:= )"
+RDEPEND="${DEPEND}"
+
+pkg_setup() {
+ enewgroup ocsigenserver
+ enewuser ocsigenserver -1 -1 /var/www ocsigenserver
+}
+
+src_configure() {
+ sh configure \
+ --prefix /usr \
+ --temproot "${ED}" \
+ --bindir /usr/bin \
+ --docdir /usr/share/doc/${PF} \
+ --mandir /usr/share/man/man1 \
+ --libdir /usr/$(get_libdir)/ocaml \
+ $(use_enable debug) \
+ $(use_with zlib camlzip) \
+ $(use_with sqlite) \
+ $(use_with dbm) \
+ --with-preempt \
+ --ocsigen-group ocsigenserver \
+ --ocsigen-user ocsigenserver \
+ --name ocsigenserver \
+ || die "Error : configure failed!"
+}
+
+src_compile() {
+ if use ocamlopt; then
+ emake
+ else
+ emake byte
+ fi
+ use doc && emake doc
+}
+
+src_install() {
+ findlib_src_preinst
+ if use ocamlopt; then
+ emake install
+ else
+ emake install.byte
+ fi
+ if use doc ; then
+ emake install.doc
+ fi
+ emake logrotate
+
+ newinitd "${FILESDIR}"/ocsigenserver.initd ocsigenserver || die
+ newconfd "${FILESDIR}"/ocsigenserver.confd ocsigenserver || die
+
+ dodoc README.md
+
+ # We create it at runtime
+ rm -f "${ED}/var/run/ocsigenserver_command" || die
+}