Closed kivikakk closed 5 years ago
Reworked this PR on top of master ✅
First of all, a huge thank-you @kivikakk for pulling my WIP apart into logical commits and creating this PR!
This all looks great so far -- I'm just reading through the last commit, which is the main one, and I will need to experiment with your customized libfuse.
Hey @kivikakk -- one challenge which may present itself with the /tmp
test-dir stuff in 6f462ffe54870a084ab573cda11440d9085f62c4 is that, at least on my Linux desktop, by default xattr support is unavailable for user.*
xattrs in tmpfs, which is what I'm using for that mount.
The tmpfs filesystem supports extended attributes (see xattr(7)), but
user extended attributes are not permitted.
Might I suggest that, for now at least, we just note in our docs that (a) xattr support is required on the lower filesystem, and (b) we don't expect Docker on Mac or Windows to work, and recommend only a fully native Linux system or VM, and then come back to this in a more comprehensive way later.
(For example, checking for xattr support at mount time and exiting gracefully when it's not available, which is a good enhancement anyway, and also revisiting whether the existing TEST_*
env vars are sufficient that someone could build on a no-xattr FS but then ask the test suite to use a different xattr-enabled FS for its test mounts.)
(And going over the test suite docs today, I think one may be able to use --root=...
to control where the test mounts actually run.)
Thanks for the very helpful comments here; have made it choose the correct mountpoint based on whether or not it's executing in docker.
Fixes #1. Stacked on #3.
/cc @chrisd8088: here's a stacked PR with the projection WIP implemented in high-level so far! Please feel free to push commits to this branch that you think are ready for review.
In commit 58ad5ae we use features added to FUSE in our fork at https://github.com/libfuse/libfuse/compare/master...kivikakk:context-node-userdata (https://github.com/libfuse/libfuse/pull/346), to cache data which is persisted in xattrs.