summaryrefslogtreecommitdiff
path: root/dev-ml/ocamlnet
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ml/ocamlnet')
-rw-r--r--dev-ml/ocamlnet/Manifest8
-rw-r--r--dev-ml/ocamlnet/files/ocaml405.patch145
-rw-r--r--dev-ml/ocamlnet/metadata.xml12
-rw-r--r--dev-ml/ocamlnet/ocamlnet-4.1.2.ebuild81
-rw-r--r--dev-ml/ocamlnet/ocamlnet-4.1.3.ebuild77
-rw-r--r--dev-ml/ocamlnet/ocamlnet-4.1.4.ebuild77
6 files changed, 400 insertions, 0 deletions
diff --git a/dev-ml/ocamlnet/Manifest b/dev-ml/ocamlnet/Manifest
new file mode 100644
index 000000000000..b70f0747a7fc
--- /dev/null
+++ b/dev-ml/ocamlnet/Manifest
@@ -0,0 +1,8 @@
+AUX ocaml405.patch 4761 BLAKE2B eb6a2fabcbcda0676652e4010e28edc8fd82b0d2307fb5d847105aff775e405b3399854d13be13660255aaf0a55627ab0d307545fbb7d91076a50ff103b97d34 SHA512 79378c0cb59ca4abc2280932045ca80e5d7e3ff47919067c363f96d32e24899825f79a83bcf0abfc600513eecc8e046382a42937545b4b62f9b5f992d8d29480
+DIST ocamlnet-4.1.2.tar.gz 4623183 BLAKE2B 7e8d5cdc823b9e924258f75f00957ba185d49555377ba2a2d960c47e2ea958059e1ab62e27be63770bb4f547e1fa0cb788a54c3e698180b2b15f0097fe84455a SHA512 69f42042a54efd662db2217224da53513fc7e72c7b2313d4a4a1128f1b4624f4f6298434f5b19f354b832119ff151abc81e85eb0108d6eb24f30f82d176e0b4d
+DIST ocamlnet-4.1.3.tar.gz 4553037 BLAKE2B 177d2a3b947e6123bdef0ee180c612f832a22dfd90fe0c44b60ba2ebea3629103db9730eb1b926b7d7bf39b489934b8949b0fd08e5155c7f41e3c065c215558c SHA512 683ab6f529639c9da01478ba8ba7a1bf89a418ad3872331bb3e29067c0a75ddc0db996630ce5a5dd116967d6e3e756ade02d9a78b865bbc226f95d01af9e3956
+DIST ocamlnet-4.1.4.tar.gz 4552969 BLAKE2B 3dfedcd09eb91d1ca8e13b7a87dfe70cfb88d57d0b4fa970fe6179affa05ba3fdeaad0dfbb6ac267e7a6530c289408b1a8ad66a805226245f80fe66770addad5 SHA512 ca502444f81898ccda27d61760a357aad59624cf3c4c025d49dd1c2e7bc3ef497c199634247ba7731e016c234e5cd92d2599d1ef9ecd55c3b6e7a64fc4773ee0
+EBUILD ocamlnet-4.1.2.ebuild 1713 BLAKE2B 5a6e9a1cd7c5becf722f624ba2abfd443c2b9d94c7a9d74ed07c092b63aa9449cf44d267527fb1b520f662e85db4da7de236f98989296929277717a92da7c8fa SHA512 1f6038416a3bf9dd50659dff33c8ebaf200dd732497bd14cfdcaece78829e21073a1b3ec3f49f030f410748ffd6c77b14ec7b4aebef8276f977605cb2d28c63b
+EBUILD ocamlnet-4.1.3.ebuild 1661 BLAKE2B d31f9c05eebcb05038d63b9e736ee1e5a9f0ab794492cafc8d82f70d48ae469e53732f095e601517ec71e9fca11be88179d248cd6cbc68cffe8a3c703b06c8c1 SHA512 062da5d5273fbbe357a24e6273b7d6009b976aaf5112eda40fde4038b6d5fc199165b3325c5e10709610f3f639c5acdd430335f36615966e21be90497f5f02fa
+EBUILD ocamlnet-4.1.4.ebuild 1661 BLAKE2B d31f9c05eebcb05038d63b9e736ee1e5a9f0ab794492cafc8d82f70d48ae469e53732f095e601517ec71e9fca11be88179d248cd6cbc68cffe8a3c703b06c8c1 SHA512 062da5d5273fbbe357a24e6273b7d6009b976aaf5112eda40fde4038b6d5fc199165b3325c5e10709610f3f639c5acdd430335f36615966e21be90497f5f02fa
+MISC metadata.xml 418 BLAKE2B 2a25461a3b2b546cd0d3ffba308e482bf5e6db5c06c95c5b48d4d603a05eb79b31b29c2534db4d9bacdf63f85ca9f26e0d0bbc921fb7e50bbb06478779de9f6d SHA512 fc37f93cd3e0ff137825c24b36d564842bad46e4f34a080a6fcbcfdb307fa7a23f8fc82f0edb2a5a08a08e39be866e7f395d28119b8bc595d3af4a11ef1d7578
diff --git a/dev-ml/ocamlnet/files/ocaml405.patch b/dev-ml/ocamlnet/files/ocaml405.patch
new file mode 100644
index 000000000000..a112d1fb4473
--- /dev/null
+++ b/dev-ml/ocamlnet/files/ocaml405.patch
@@ -0,0 +1,145 @@
+commit f3d451b81c4caa8cce7f55af6463ec685e79e227
+Author: Gerd Stolpmann <gerd@gerd-stolpmann.de>
+Date: Sun Feb 26 21:04:49 2017 +0100
+
+ ocaml-4.05: support for O_KEEPEXEC
+
+diff --git a/code/src/netsys/Makefile b/code/src/netsys/Makefile
+index cbc1ce2..cb70a09 100644
+--- a/code/src/netsys/Makefile
++++ b/code/src/netsys/Makefile
+@@ -56,7 +56,7 @@ OCAMLC_OPTIONS_FOR_netsys_c_xdr.c = -ccopt -O
+ OCAMLC_OPTIONS += $(STRING_OPTS)
+ OCAMLOPT_OPTIONS += $(STRING_OPTS)
+
+-PP_OPTIONS = -pp "$(CPPO) $(DEF_O_SHARE_DELETE) $(DEF_O_CLOEXEC) $(PP_BYTES) $(PP_DEPRECATED)"
++PP_OPTIONS = -pp "$(CPPO) $(DEF_O_SHARE_DELETE) $(DEF_O_CLOEXEC) $(DEF_O_KEEPEXEC) $(PP_BYTES) $(PP_DEPRECATED)"
+
+ INSTALL_EXTRA += netsys_c_event.h $(OOH_OBJECT)
+
+diff --git a/code/src/netsys/configure b/code/src/netsys/configure
+index 1325843..f4dbc09 100755
+--- a/code/src/netsys/configure
++++ b/code/src/netsys/configure
+@@ -437,6 +437,21 @@ else
+ echo "no"
+ fi
+
++######################################################################
++
++printf "Checking for O_KEEPEXEC... "
++mkdir -p tmp
++cat <<_EOF_ >tmp/t.ml
++let x = Unix.O_KEEPEXEC;;
++_EOF_
++
++def_o_keepexec="-D NO_O_KEEPEXEC"
++if ocaml unix.cma tmp/t.ml >/dev/null 2>/dev/null; then
++ echo "yes"
++ def_o_keepexec="-D HAVE_O_KEEPEXEC"
++else
++ echo "no"
++fi
+
+ ######################################################################
+
+@@ -445,6 +460,7 @@ cat <<EOF >Makefile.conf
+ NETSYS_LINK_OPTIONS = $netsys_link_options
+ DEF_O_SHARE_DELETE = $def_o_share_delete
+ DEF_O_CLOEXEC = $def_o_cloexec
++DEF_O_KEEPEXEC = $def_o_keepexec
+ OOH_OBJECT = $def_ooh_object
+ EOF
+
+diff --git a/code/src/netsys/netsys_c.c b/code/src/netsys/netsys_c.c
+index a8b16be..4c30873 100644
+--- a/code/src/netsys/netsys_c.c
++++ b/code/src/netsys/netsys_c.c
+@@ -448,32 +448,43 @@ static int at_flags_table[] = {
+ #ifndef O_RSYNC
+ #define O_RSYNC 0
+ #endif
+-#ifndef O_CLOEXEC
+-#define NEED_CLOEXEC_EMULATION
+-#define O_CLOEXEC 0
+-#endif
+
+ static int open_flag_table[] = {
+ O_RDONLY, O_WRONLY, O_RDWR, O_NONBLOCK, O_APPEND, O_CREAT, O_TRUNC, O_EXCL,
+- O_NOCTTY, O_DSYNC, O_SYNC, O_RSYNC, 0 /* O_SHARE_DELETE */, O_CLOEXEC
++ O_NOCTTY, O_DSYNC, O_SYNC, O_RSYNC,
++ 0 /* O_SHARE_DELETE */, 0 /* O_CLOEXEC */, 0 /* O_KEEPEXEC */
+ };
+
+-#ifdef NEED_CLOEXEC_EMULATION
++enum { CLOEXEC = 1, KEEPEXEC = 2 };
++
+ static int open_cloexec_table[] = {
+- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1
++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CLOEXEC, KEEPEXEC
+ };
++#ifndef HAVE_O_KEEPEXEC
++#define unix_cloexec_default 0
+ #endif
++
+ #endif
+
+ CAMLprim value netsys_openat(value dirfd, value path, value flags, value perm)
+ {
+ #ifdef HAVE_AT
+ CAMLparam4(dirfd, path, flags, perm);
+- int ret, cv_flags;
++ int ret, cv_flags, clo_flags, cloexec;
+ char * p;
+
+ /* shamelessly copied from ocaml distro */
+ cv_flags = convert_flag_list(flags, open_flag_table);
++ clo_flags = convert_flag_list(flags, open_cloexec_table);
++ if (clo_flags & CLOEXEC)
++ cloexec = 1;
++ else if (clo_flags & KEEPEXEC)
++ cloexec = 0;
++ else
++ cloexec = unix_cloexec_default;
++#if defined(O_CLOEXEC)
++ if (cloexec) cv_flags |= O_CLOEXEC;
++#endif
+ p = stat_alloc(string_length(path) + 1);
+ strcpy(p, String_val(path));
+ enter_blocking_section();
+@@ -481,8 +492,8 @@ CAMLprim value netsys_openat(value dirfd, value path, value flags, value perm)
+ leave_blocking_section();
+ stat_free(p);
+ if (ret == -1) uerror("openat", path);
+-#if defined(NEED_CLOEXEC_EMULATION) && defined(FD_CLOEXEC)
+- if (convert_flag_list(flags, open_cloexec_table) != 0) {
++#if !defined(O_CLOEXEC)
++ {
+ int flags = fcntl(Int_val(dirfd), F_GETFD, 0);
+ if (flags == -1 || fcntl(Int_val(dirfd), F_SETFD, flags | FD_CLOEXEC) == -1)
+ uerror("openat", path);
+diff --git a/code/src/netsys/netsys_posix.ml b/code/src/netsys/netsys_posix.ml
+index 602ceae..3bf3e7c 100644
+--- a/code/src/netsys/netsys_posix.ml
++++ b/code/src/netsys/netsys_posix.ml
+@@ -715,6 +715,12 @@ type at_flag = AT_EACCESS | AT_SYMLINK_NOFOLLOW | AT_SYMLINK_FOLLOW |
+ AT_REMOVEDIR
+
+ (* The stubs assume these type definitions: *)
++#ifdef HAVE_O_KEEPEXEC
++type open_flag1 = Unix.open_flag =
++ O_RDONLY | O_WRONLY | O_RDWR | O_NONBLOCK | O_APPEND | O_CREAT | O_TRUNC
++ | O_EXCL | O_NOCTTY | O_DSYNC | O_SYNC | O_RSYNC | O_SHARE_DELETE
++ | O_CLOEXEC | O_KEEPEXEC
++#else
+ #ifdef HAVE_O_CLOEXEC
+ type open_flag1 = Unix.open_flag =
+ O_RDONLY | O_WRONLY | O_RDWR | O_NONBLOCK | O_APPEND | O_CREAT | O_TRUNC
+@@ -731,6 +737,7 @@ type open_flag1 = Unix.open_flag =
+ | O_EXCL | O_NOCTTY | O_DSYNC | O_SYNC | O_RSYNC
+ #endif
+ #endif
++#endif
+
+ type access_permission1 = Unix.access_permission =
+ R_OK | W_OK | X_OK | F_OK
diff --git a/dev-ml/ocamlnet/metadata.xml b/dev-ml/ocamlnet/metadata.xml
new file mode 100644
index 000000000000..196389cbbc7c
--- /dev/null
+++ b/dev-ml/ocamlnet/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>ml@gentoo.org</email>
+ <name>Gentoo ML Project</name>
+ </maintainer>
+<use>
+ <flag name="httpd">Enables net-httpd web server component</flag>
+ <flag name="zip">Enables netzip support to read/write gzip data using object channels</flag>
+</use>
+</pkgmetadata>
diff --git a/dev-ml/ocamlnet/ocamlnet-4.1.2.ebuild b/dev-ml/ocamlnet/ocamlnet-4.1.2.ebuild
new file mode 100644
index 000000000000..6d89e100f0ec
--- /dev/null
+++ b/dev-ml/ocamlnet/ocamlnet-4.1.2.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils findlib
+
+MY_P=${P/_beta/test}
+DESCRIPTION="Modules for OCaml application-level Internet protocols"
+HOMEPAGE="http://projects.camlcity.org/projects/ocamlnet.html"
+SRC_URI="http://download.camlcity.org/download/${MY_P}.tar.gz"
+
+LICENSE="ZLIB GPL-2+"
+SLOT="0/${PV}"
+KEYWORDS="amd64 ppc x86 x86-fbsd"
+IUSE="gtk kerberos tk httpd +ocamlopt +pcre ssl zip"
+RESTRICT="installsources"
+
+# the auth-dh compile flag has been disabled as well, since it depends on
+# ocaml-cryptgps, which is not available.
+
+RDEPEND=">=dev-ml/findlib-1.0
+ pcre? ( >=dev-ml/pcre-ocaml-5:= )
+ >=dev-lang/ocaml-3.10.2:=[ocamlopt?]
+ tk? ( dev-ml/labltk:= )
+ ssl? ( net-libs/gnutls:= )
+ gtk? ( >=dev-ml/lablgtk-2:= )
+ kerberos? ( virtual/krb5 )
+ zip? ( dev-ml/camlzip:= )
+ "
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ epatch "${FILESDIR}/ocaml405.patch"
+}
+
+ocamlnet_use_with() {
+ if use $1; then
+ echo "-with-$2"
+ else
+ echo "-without-$2"
+ fi
+}
+
+ocamlnet_use_enable() {
+ if use $1; then
+ echo "-enable-$2"
+ else
+ echo "-disable-$2"
+ fi
+}
+
+src_configure() {
+ ./configure \
+ -bindir /usr/bin \
+ -datadir /usr/share/${PN} \
+ $(ocamlnet_use_enable ssl gnutls) \
+ $(ocamlnet_use_enable gtk gtk2) \
+ $(ocamlnet_use_enable kerberos gssapi) \
+ $(ocamlnet_use_enable pcre pcre) \
+ $(ocamlnet_use_enable tk tcl) \
+ $(ocamlnet_use_enable zip zip) \
+ $(ocamlnet_use_with httpd nethttpd) \
+ || die "Error : econf failed!"
+}
+
+src_compile() {
+ emake -j1 all
+ if use ocamlopt; then
+ emake -j1 opt
+ fi
+}
+
+src_install() {
+ export STRIP_MASK="*/bin/*"
+ findlib_src_install
+}
diff --git a/dev-ml/ocamlnet/ocamlnet-4.1.3.ebuild b/dev-ml/ocamlnet/ocamlnet-4.1.3.ebuild
new file mode 100644
index 000000000000..1460d03f5cc4
--- /dev/null
+++ b/dev-ml/ocamlnet/ocamlnet-4.1.3.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils findlib
+
+MY_P=${P/_beta/test}
+DESCRIPTION="Modules for OCaml application-level Internet protocols"
+HOMEPAGE="http://projects.camlcity.org/projects/ocamlnet.html"
+SRC_URI="http://download.camlcity.org/download/${MY_P}.tar.gz"
+
+LICENSE="ZLIB GPL-2+"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
+IUSE="gtk kerberos tk httpd +ocamlopt +pcre ssl zip"
+RESTRICT="installsources"
+
+# the auth-dh compile flag has been disabled as well, since it depends on
+# ocaml-cryptgps, which is not available.
+
+RDEPEND=">=dev-ml/findlib-1.0
+ pcre? ( >=dev-ml/pcre-ocaml-5:= )
+ >=dev-lang/ocaml-3.10.2:=[ocamlopt?]
+ tk? ( dev-ml/labltk:= )
+ ssl? ( net-libs/gnutls:= )
+ gtk? ( >=dev-ml/lablgtk-2:= )
+ kerberos? ( virtual/krb5 )
+ zip? ( dev-ml/camlzip:= )
+ "
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+S=${WORKDIR}/${MY_P}
+
+ocamlnet_use_with() {
+ if use $1; then
+ echo "-with-$2"
+ else
+ echo "-without-$2"
+ fi
+}
+
+ocamlnet_use_enable() {
+ if use $1; then
+ echo "-enable-$2"
+ else
+ echo "-disable-$2"
+ fi
+}
+
+src_configure() {
+ ./configure \
+ -bindir /usr/bin \
+ -datadir /usr/share/${PN} \
+ $(ocamlnet_use_enable ssl gnutls) \
+ $(ocamlnet_use_enable gtk gtk2) \
+ $(ocamlnet_use_enable kerberos gssapi) \
+ $(ocamlnet_use_enable pcre pcre) \
+ $(ocamlnet_use_enable tk tcl) \
+ $(ocamlnet_use_enable zip zip) \
+ $(ocamlnet_use_with httpd nethttpd) \
+ || die "Error : econf failed!"
+}
+
+src_compile() {
+ emake -j1 all
+ if use ocamlopt; then
+ emake -j1 opt
+ fi
+}
+
+src_install() {
+ export STRIP_MASK="*/bin/*"
+ findlib_src_install
+}
diff --git a/dev-ml/ocamlnet/ocamlnet-4.1.4.ebuild b/dev-ml/ocamlnet/ocamlnet-4.1.4.ebuild
new file mode 100644
index 000000000000..1460d03f5cc4
--- /dev/null
+++ b/dev-ml/ocamlnet/ocamlnet-4.1.4.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+
+inherit eutils findlib
+
+MY_P=${P/_beta/test}
+DESCRIPTION="Modules for OCaml application-level Internet protocols"
+HOMEPAGE="http://projects.camlcity.org/projects/ocamlnet.html"
+SRC_URI="http://download.camlcity.org/download/${MY_P}.tar.gz"
+
+LICENSE="ZLIB GPL-2+"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd"
+IUSE="gtk kerberos tk httpd +ocamlopt +pcre ssl zip"
+RESTRICT="installsources"
+
+# the auth-dh compile flag has been disabled as well, since it depends on
+# ocaml-cryptgps, which is not available.
+
+RDEPEND=">=dev-ml/findlib-1.0
+ pcre? ( >=dev-ml/pcre-ocaml-5:= )
+ >=dev-lang/ocaml-3.10.2:=[ocamlopt?]
+ tk? ( dev-ml/labltk:= )
+ ssl? ( net-libs/gnutls:= )
+ gtk? ( >=dev-ml/lablgtk-2:= )
+ kerberos? ( virtual/krb5 )
+ zip? ( dev-ml/camlzip:= )
+ "
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+"
+
+S=${WORKDIR}/${MY_P}
+
+ocamlnet_use_with() {
+ if use $1; then
+ echo "-with-$2"
+ else
+ echo "-without-$2"
+ fi
+}
+
+ocamlnet_use_enable() {
+ if use $1; then
+ echo "-enable-$2"
+ else
+ echo "-disable-$2"
+ fi
+}
+
+src_configure() {
+ ./configure \
+ -bindir /usr/bin \
+ -datadir /usr/share/${PN} \
+ $(ocamlnet_use_enable ssl gnutls) \
+ $(ocamlnet_use_enable gtk gtk2) \
+ $(ocamlnet_use_enable kerberos gssapi) \
+ $(ocamlnet_use_enable pcre pcre) \
+ $(ocamlnet_use_enable tk tcl) \
+ $(ocamlnet_use_enable zip zip) \
+ $(ocamlnet_use_with httpd nethttpd) \
+ || die "Error : econf failed!"
+}
+
+src_compile() {
+ emake -j1 all
+ if use ocamlopt; then
+ emake -j1 opt
+ fi
+}
+
+src_install() {
+ export STRIP_MASK="*/bin/*"
+ findlib_src_install
+}