pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
mfusepy: Add version 3.1.1
Module Name: pkgsrc-wip
Committed By: Greg Troxel <gdt%lexort.com@localhost>
Pushed By: gdt
Date: Wed Jun 3 08:34:44 2026 -0400
Changeset: 3eb0c1f61d102b41be9c687c068413474f52bdef
Added Files:
py-mfusepy/DESCR
py-mfusepy/Makefile
py-mfusepy/PLIST
py-mfusepy/TODO
py-mfusepy/distinfo
py-mfusepy/patches/patch-mfusepy.py
Log Message:
mfusepy: Add version 3.1.1
mfusepy is a Python module that provides a simple interface to FUSE
and macFUSE. It's just one file and is implemented using ctypes to use
libfuse.
mfusepy is a fork of fusepy (named py-fuse-bindings in pkgsrc). The
main differences are support for the FUSE 3 API and efficiency
improvements.
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=3eb0c1f61d102b41be9c687c068413474f52bdef
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
py-mfusepy/DESCR | 7 +++++
py-mfusepy/Makefile | 17 +++++++++++++
py-mfusepy/PLIST | 9 +++++++
py-mfusepy/TODO | 3 +++
py-mfusepy/distinfo | 6 +++++
py-mfusepy/patches/patch-mfusepy.py | 51 +++++++++++++++++++++++++++++++++++++
6 files changed, 93 insertions(+)
diffs:
diff --git a/py-mfusepy/DESCR b/py-mfusepy/DESCR
new file mode 100644
index 0000000000..52fe39eff9
--- /dev/null
+++ b/py-mfusepy/DESCR
@@ -0,0 +1,7 @@
+mfusepy is a Python module that provides a simple interface to FUSE
+and macFUSE. It's just one file and is implemented using ctypes to use
+libfuse.
+
+mfusepy is a fork of fusepy (named py-fuse-bindings in pkgsrc). The
+main differences are support for the FUSE 3 API and efficiency
+improvements.
diff --git a/py-mfusepy/Makefile b/py-mfusepy/Makefile
new file mode 100644
index 0000000000..ebd39a8e9e
--- /dev/null
+++ b/py-mfusepy/Makefile
@@ -0,0 +1,17 @@
+# $NetBSD$
+
+DISTNAME= mfusepy-3.1.1
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= filesystems python
+MASTER_SITES= ${MASTER_SITE_PYPI:=m/mfusepy/}
+
+MAINTAINER= gdt%NetBSD.org@localhost
+HOMEPAGE= https://pypi.org/project/mfusepy/
+COMMENT= Python bindings for the FUSE[23] APIs
+LICENSE= isc
+
+USE_LANGUAGES= # none
+
+.include "../../lang/python/wheel.mk"
+.include "../../mk/fuse.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-mfusepy/PLIST b/py-mfusepy/PLIST
new file mode 100644
index 0000000000..c3c6e0b54a
--- /dev/null
+++ b/py-mfusepy/PLIST
@@ -0,0 +1,9 @@
+@comment $NetBSD$
+${PYSITELIB}/${WHEEL_INFODIR}/METADATA
+${PYSITELIB}/${WHEEL_INFODIR}/RECORD
+${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENSE
+${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
+${PYSITELIB}/mfusepy.py
+${PYSITELIB}/mfusepy.pyc
+${PYSITELIB}/mfusepy.pyo
diff --git a/py-mfusepy/TODO b/py-mfusepy/TODO
new file mode 100644
index 0000000000..16158f56fe
--- /dev/null
+++ b/py-mfusepy/TODO
@@ -0,0 +1,3 @@
+ - prepare COMMIT_MSG
+ - resolve ioctl test failure
+ - test more
diff --git a/py-mfusepy/distinfo b/py-mfusepy/distinfo
new file mode 100644
index 0000000000..6447d6058d
--- /dev/null
+++ b/py-mfusepy/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+BLAKE2s (mfusepy-3.1.1.tar.gz) = a72506eb624ee8750863452c0c8c493f9ce40ddb0c27f2a196270d6f7953eece
+SHA512 (mfusepy-3.1.1.tar.gz) = 3d2b2d7531998bccd2b218e31983efd0b1d0854c9f4af3a88922fb89a55cd5c4e6972fa50031cae29f553b599686ad9dd1cb84134989fb876a9fa3b34f64547f
+Size (mfusepy-3.1.1.tar.gz) = 34549 bytes
+SHA1 (patch-mfusepy.py) = 35cb85c125ea95264e8fbabf88409870e6901d3d
diff --git a/py-mfusepy/patches/patch-mfusepy.py b/py-mfusepy/patches/patch-mfusepy.py
new file mode 100644
index 0000000000..d4eb5fc980
--- /dev/null
+++ b/py-mfusepy/patches/patch-mfusepy.py
@@ -0,0 +1,51 @@
+$NetBSD$
+
+From upstream pending PR:
+
+ https://github.com/mxmlnkn/mfusepy/pull/42
+
+with additional debugging/kludging of the refuse path. Hence this is in wip :-)
+
+--- mfusepy.py.orig 2026-03-13 00:36:12.000000000 +0000
++++ mfusepy.py
+@@ -99,6 +99,12 @@ if not _libfuse_path:
+ _libfuse_path = (
+ find_library('fuse4x') or find_library('osxfuse') or find_library('fuse') or find_library('fuse-t')
+ )
++ elif _system == 'NetBSD':
++ # On NetBSD 10+ librefuse implements FUSE 3, targetting 3.10 compatibility.
++ _libfuse_path = find_library('refuse')
++ print(f"_libfuse_path 001 is {_libfuse_path}")
++ _libfuse_path = 'librefuse.so.2'
++ print(f"_libfuse_path 002 is {_libfuse_path}")
+ elif _system == 'Windows':
+ # pytype: disable=module-attr
+ try:
+@@ -155,7 +161,7 @@ if fuse_version_major == 2 and fuse_vers
+ f"Found library {_libfuse_path} is too old: {fuse_version_major}.{fuse_version_minor}. "
+ "There have been several ABI breaks in each version. Libfuse < 2.6 is not supported!"
+ )
+-if fuse_version_major != 2 and not (fuse_version_major == 3 and _system == 'Linux'):
++if fuse_version_major != 2 and not (fuse_version_major == 3 and _system in ('Linux', 'NetBSD')):
+ raise AttributeError(
+ f"Found library {_libfuse_path} has wrong major version: {fuse_version_major}. Expected FUSE 2!"
+ )
+@@ -1379,7 +1385,8 @@ class FUSE:
+ }
+
+ argsb = [arg.encode(encoding, self.errors) for arg in args]
+- argv = (ctypes.c_char_p * len(argsb))(*argsb)
++ argc = len(argsb)
++ argv = (ctypes.c_char_p * (argc + 1))(*argsb, None) # Null terminate explicitly
+
+ alternative_callbacks = {
+ "readdir": ["readdir_with_offset"],
+@@ -1443,7 +1450,7 @@ class FUSE:
+ except ValueError:
+ old_handler = SIG_DFL
+
+- err = fuse_main_real(len(argsb), argv, ctypes.pointer(fuse_ops), ctypes.sizeof(fuse_ops), None)
++ err = fuse_main_real(argc, argv, ctypes.pointer(fuse_ops), ctypes.sizeof(fuse_ops), None)
+
+ try:
+ signal(SIGINT, old_handler)
Home |
Main Index |
Thread Index |
Old Index