-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix NFS sharing in macOS 10.15 (based on #11105) #11108
Conversation
On OS X 10.15, / is read-only and paths inside of /Users (and elsewhere) are mounted via a "firmlink" (which is a new invention in APFS). These must be resolved to their full path to be shareable via NFS. /Users/johnsmith/mycode => /System/Volumes/Data/Users/johnsmith/mycode We check to see if a path is mounted here with `df`, and prepend it. Firmlinks are only createable by the OS and this wasn't supposed to be visible to applications anyway: https://developer.apple.com/videos/play/wwdc2019/710/?time=481
…ries Using the resolve_host_path capability allows hosts to modify the shared folder directory while keeping the logic contained within the specific host implementation.
For bsd the resolve_host_path capability is a no-op. For darwin hosts, if firmlinks are defined on the system, paths will be properly resolved to real path.
Thanks, @chrisroberts! Appreciate you running with this. Isolating path resolution from the NFS class definitely feels like a cleaner approach! I saw that I tested this branch on the "GM" version of 10.15, and it works great! 🚢
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ 🍎
Any idea on when this fix will become available to the public? |
Hi @vanderlee - We are currently working on pushing out the next release of Vagrant (2.2.6) as soon as possible. Sorry I don't have an exact date. |
Vagrant 2.2.6 is out now |
I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further. |
This is a continuation of the work started in #11105
The firmlinks defined on the system can be located within
a system file (/usr/share/firmlinks). This can be read to
generate a simple map that can then be used for updating
paths as required.
Added a new host capability (resolve_host_path) which is
used by the bsd host nfs_export capability. The bsd host
implements this capability as a no-op, and the darwin
host implements this capability to handle firmlinks.