Most of the fixes and test/CI improvements were contributed by Thomas Waldmann. Many thanks!
NetBSD is still work-in-progress.
API
- Add many more missing type hints.
Features
- Add `mfusepy.ENOATTR` to be used as the correct value for `getxattr` and `removexattr`.
- Make path decode/encode error policy configurable and switch from `strict` to `surrogateescape`.
- Add `readdir_with_offset` implementable interface method, which takes an additional `offset` argument.
Does not work correctly on OpenBSD. Help would be welcome.
- Translate some of the libfuse2-only options (`use_ino`, `direct_io`, `nopath`, ...) to the libfuse3 config struct.
- Allow to set fuse library name via `FUSE_LIBRARY_NAME` environment variable.
- Automatically test and therefore support Ubuntu 22.04/24.04 aarch64/x86_64, macOS 14/15 Intel/ARM,
FreeBSD 14.3, OpenBSD 7.7, NetBSD 10.1.
Fixes
- Fix type definitions and examples on OpenBSD, FreeBSD, NetBSD, macOS, and others.
- `readdir`: Also forward `st_ino` in case `use_ino` is set to True.
- Avoid `readdir` infinite loop by ignoring the offset and returning offset 0, to trigger non-offset mode.
Overwrite `readdir_with_offset` to actually make use of offsets.
- `getattr_fuse_3`: pass argument `fip` to `fgetattr`.
- Avoid null pointer dereferences for `fip` in `ftruncate`, `fgetattr`, and `lock`.