diff options
Diffstat (limited to 'dev-ml/ocamlnet')
-rw-r--r-- | dev-ml/ocamlnet/Manifest | 8 | ||||
-rw-r--r-- | dev-ml/ocamlnet/files/ocaml405.patch | 145 | ||||
-rw-r--r-- | dev-ml/ocamlnet/metadata.xml | 12 | ||||
-rw-r--r-- | dev-ml/ocamlnet/ocamlnet-4.1.2.ebuild | 81 | ||||
-rw-r--r-- | dev-ml/ocamlnet/ocamlnet-4.1.3.ebuild | 77 | ||||
-rw-r--r-- | dev-ml/ocamlnet/ocamlnet-4.1.4.ebuild | 77 |
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 +} |