summaryrefslogtreecommitdiff
path: root/dev-ml/ocamlfuse
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ml/ocamlfuse')
-rw-r--r--dev-ml/ocamlfuse/Manifest3
-rw-r--r--dev-ml/ocamlfuse/files/ocamlfuse-2.7.1_p7-Wint.patch67
-rw-r--r--dev-ml/ocamlfuse/ocamlfuse-2.7.1_p7-r1.ebuild7
3 files changed, 74 insertions, 3 deletions
diff --git a/dev-ml/ocamlfuse/Manifest b/dev-ml/ocamlfuse/Manifest
index 3467047b49f0..03fa267b7473 100644
--- a/dev-ml/ocamlfuse/Manifest
+++ b/dev-ml/ocamlfuse/Manifest
@@ -1,4 +1,5 @@
+AUX ocamlfuse-2.7.1_p7-Wint.patch 1705 BLAKE2B 3e4d208a54d054803f60e9ce1ae6a8b3ca58a3807bc06744d2ed5ccda2d6bafd44f3bd071ae604dce2822d3c31de4d1f710e964dfb95c483a3879c2858ef0cdc SHA512 637b88e6241740de3b04663d3bfb53963a9b1b83cd5efca6827ae575534e83a4e0bfad96a433e6cffffad405352a437c17ca857e39cff6aa650889134c26226b
AUX ocamlfuse-2.7.1_p7-unistd.patch 259 BLAKE2B 188881834218ea5514bde2bf64f952e759997eeaa11fe0c7e6d12975e29d2274b7453ea4db23ecfe0548afdedbb10b25287b871b9d3d0898576973ecc956ffe8 SHA512 852e6d8352953294b0d5d2f6a3d10b7af4cd1f6514284221470a0ec92b51643f8afaa85ee117c1c21b12ecb8660547a2a58ef12c3cf9b57cdb6620434695acae
DIST ocamlfuse-2.7.1_p7-r1.tar.gz 21469 BLAKE2B fa587d19124c2e2d320091bb42b098644d3112e39652dbf621c88f701effdab0ce15372b6f2461709eb3afe628e2888db3a7a0c9abeab8b8a136d09c69c84ac4 SHA512 342a6ce8a81ac05d47d4458ef6e9aa750e4e7643a89d28705664852f0549e1932643e8db5d93225ba496611654b3f11fef6aca1e6e40e8d4b30064fc9c65f7fd
-EBUILD ocamlfuse-2.7.1_p7-r1.ebuild 733 BLAKE2B 4039d70e91d68f226fc3673741f6922404a0382c7d95ced5e924f36baa4ece6babe9dba7573f439a294139b1cc9d1c49d7bf1d4791e7e5de0f1b5a45aab48d70 SHA512 d6c37e896591971c39f6308802dcaf8b83c9fd17af4057e0bf4e5e2385b2a1519db3bfe71bd154ad27ae455062cebb2cfbce2b85d8428e9e0a9550f721a674c7
+EBUILD ocamlfuse-2.7.1_p7-r1.ebuild 765 BLAKE2B bda20fa259bc3d55033063b6b4dce4575c87dec99c9c06f99d198792ccc77327194d7bad66b669fe613511ede66bc60a3aea9b5072fe8d9aad7cc4e583ce473a SHA512 78838d946489b9ced94307bec17f30e64b5205a09625dff82a5bb8ecc188b8a9b36d1bf1f047f22ce9730439cc0bd6d5c1c2ed812abec656b1ca7a0010eaf523
MISC metadata.xml 990 BLAKE2B 926400ebc857a10b0e2694a7747a1c4d00668e6b123ca867bf0e16d59e69ce060dea1c41f7eb11126676dadbd34268c97c840ffea373230a0bdc5198cd510345 SHA512 d0309f117de7a59f80ee141a4bc55204d4798c69a7f73e4d967168383c236385e280cb9fde03c96570458de029e45ae1a8c24d79e19f4749d8fd15705cd96305
diff --git a/dev-ml/ocamlfuse/files/ocamlfuse-2.7.1_p7-Wint.patch b/dev-ml/ocamlfuse/files/ocamlfuse-2.7.1_p7-Wint.patch
new file mode 100644
index 000000000000..8f1e7f405bf6
--- /dev/null
+++ b/dev-ml/ocamlfuse/files/ocamlfuse-2.7.1_p7-Wint.patch
@@ -0,0 +1,67 @@
+--- a/lib/Fuse_util.c 2024-05-31 19:58:34.910818884 +0200
++++ b/lib/Fuse_util.c 2024-05-31 20:25:27.021700407 +0200
+@@ -293,7 +293,6 @@
+ }
+
+ #define FOR_ALL_OPS(MACRO) \
+- MACRO(init) \
+ MACRO(getattr) \
+ MACRO(readlink) \
+ MACRO(readdir) \
+@@ -344,12 +343,14 @@
+ #define SET_NULL_OP(OPNAME) .OPNAME = NULL,
+
+ static struct fuse_operations ops = {
++ SET_NULL_OP(init)
+ FOR_ALL_OPS(SET_NULL_OP)
+ };
+
+ static value * ocaml_list_length=NULL;
+
+ #define DECLARE_OP_CLOSURE(OPNAME) static value * OPNAME##_closure=NULL;
++DECLARE_OP_CLOSURE(init)
+ FOR_ALL_OPS(DECLARE_OP_CLOSURE)
+
+ #define init_ARGS (struct fuse_conn_info *conn)
+@@ -593,6 +594,33 @@
+ #define removexattr_CB vpath = copy_string(path); vres=callback2(*removexattr_closure,vpath,copy_string(name));
+ #define removexattr_RES
+
++static void *gm281_ops_init(struct fuse_conn_info *conn)
++{
++ CAMLparam0();
++ CAMLlocal4(vstring, vpath, vres, vtmp);
++ intptr_t res = -1;
++ vres=callback(*init_closure,Val_unit);
++ if (Tag_val(vres)==1) /* Result is not Bad */
++ {
++ res=0;
++ }
++ else
++ {
++ if (Is_block(Field(vres,0))) /* This is EUNKNOWNERR of int in ocaml */
++ res=-Int_val(Field(Field(vres,0),0));
++ else res=-ml2c_unix_error(Int_val(Field(vres,0)));
++ }
++ CAMLreturnT(void *, (void *)res);
++}
++
++static void *ops_init(struct fuse_conn_info *conn)
++{
++ leave_blocking_section();
++ void *ret = gm281_ops_init(conn);
++ enter_blocking_section();
++ return ret;
++}
++
+ #define CALLBACK(OPNAME) \
+ static OPNAME##_RTYPE gm281_ops_##OPNAME OPNAME##_ARGS \
+ {\
+@@ -634,6 +662,7 @@
+
+ void set_fuse_operations(struct fuse_operation_names const *op)
+ {
++ SET_OPERATION(init)
+ FOR_ALL_OPS(SET_OPERATION)
+ }
+
diff --git a/dev-ml/ocamlfuse/ocamlfuse-2.7.1_p7-r1.ebuild b/dev-ml/ocamlfuse/ocamlfuse-2.7.1_p7-r1.ebuild
index 63891abc2fe4..ec2cd36592e8 100644
--- a/dev-ml/ocamlfuse/ocamlfuse-2.7.1_p7-r1.ebuild
+++ b/dev-ml/ocamlfuse/ocamlfuse-2.7.1_p7-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -31,7 +31,10 @@ BDEPEND="
dev-ml/opam
"
-PATCHES=( "${FILESDIR}"/${P}-unistd.patch )
+PATCHES=(
+ "${FILESDIR}"/${P}-unistd.patch
+ "${FILESDIR}"/${P}-Wint.patch
+)
src_compile() {
tc-export CPP