Add Mac OS build setup steps#287
Conversation
nickgra
left a comment
There was a problem hiding this comment.
I'm not sure what to say about developer certificates, I find most open source projects skim over how to handle getting a certificate so this might be fine?
Readme.md
Outdated
|
|
||
| VFS for macOS is still in progress. You can build it, but this will not create a macOS VFS installer the same way the current Windows build will. | ||
|
|
||
| * Ensure you have Xcode installed and have accepted the terms of use and launched Xcode at least once. |
There was a problem hiding this comment.
nit: Only use and one in this step. replace the first and with ,
nickgra
left a comment
There was a problem hiding this comment.
LGTM now, I'm curious to hear what Saeed has to say about the level of detail and certificate handling.
sanoursa
left a comment
There was a problem hiding this comment.
Thanks for putting this together! Mostly minor cleanup though we need to make sure we validate the build script changes a bit more. And keep in mind that you still have to kick off the Mac functional tests manually.
Readme.md
Outdated
|
|
||
| ## Building VFS for Git on Mac | ||
|
|
||
| VFS for macOS is still in progress. You can build it, but this will not create a macOS VFS installer the same way the current Windows build will. |
There was a problem hiding this comment.
We've been saying "VFS for Git on Mac", so stick with that for consistency. I'm open to feedback if it would be better to say "VFS for Git on macOS", but "VFS for macOS" is a whole different thing (https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/Filesystem/Filesystem.html)
Readme.md
Outdated
|
|
||
| * If you still do not have the `dotnet` cli `>= v2.1.300` installed [manually install it](https://www.microsoft.com/net/download/dotnet-core/2.1) | ||
|
|
||
| * If you are not currently an Apple Developer you will need to become one so that you can either use Microsoft certs or create your own certs for signing purposes. (If you are a Microsoft employee you must use your alias@microsoft.com when creating your Apple account.) |
There was a problem hiding this comment.
I would remove all of this and instead point to a link for managing certs in Xcode. There's no reason for anyone to use Microsoft certs, nor do we want to open that up. For local development, people just need to generate their own cert and sign their kext, and that is all.
There was a problem hiding this comment.
That page seems too high level on what a certificate is (we should point them to codesigning resources using certificates), this might be a better starting point https://developer.apple.com/support/code-signing/
In general, Xcode should be able to do all the right things for them once they're signed in.
Readme.md
Outdated
|
|
||
| * If you are not currently an Apple Developer you will need to become one so that you can either use Microsoft certs or create your own certs for signing purposes. (If you are a Microsoft employee you must use your alias@microsoft.com when creating your Apple account.) | ||
|
|
||
| * Create a `VFS` directory and Clone the VFS repo into a directory called `src` inside it: |
There was a problem hiding this comment.
There is no VFS repo :-). It's called VFSForGit.
Readme.md
Outdated
| gvfs clone URL_TO_REPOSITORY --local-cache-path ~/.gvfsCache | ||
| ``` | ||
|
|
||
| Note the current use of `--local-cache-path`. That argument prevent gvfs from running into a permissions error trying to put the cache at the root of your Mac's hard-drive. |
There was a problem hiding this comment.
... because porting of this feature is still in progress
Readme.md
Outdated
|
|
||
| * Ensure you have Xcode installed and have accepted the terms of use and launched Xcode at least once. | ||
|
|
||
| * Disable "System Integrity Protection" (for loading unsigned kexts) by booting into recovery mode (`[Win/⌘] + R` while booting). |
There was a problem hiding this comment.
You can't load an unsigned kext, period. Our kexts are not unsigned, they are just signed with developer certs.
Readme.md
Outdated
|
|
||
| * Create a `VFS` directory and Clone the VFS repo into a directory called `src` inside it: | ||
| ``` | ||
| mkdir VFS && cd VFS && git clone https://github.com/Microsoft/VFSForGit.git src && cd src |
There was a problem hiding this comment.
Please follow a similar style as the Windows section for the steps on how to clone and build.
Actually I'm not picky on what the style is, just that they be consistent.
sanoursa
left a comment
There was a problem hiding this comment.
I started reviewing this again but it looks like some of the earlier comments are still in progress. I'll stop here, and please let me know when you're ready for another look!
7385cd5 to
3f3c7cf
Compare
sanoursa
left a comment
There was a problem hiding this comment.
Thanks for the cleanup, the steps look much clearer now. A few more style things, but most importantly, we need to be super clear about the dangers of disabling SIP. This is not something we are encouraging anyone to do, and it's just for now while we're doing active development that it's a necessary step, but it is most definitely a dangerous thing to do to any production machine.
Readme.md
Outdated
|
|
||
| * Ensure you have Xcode installed, have accepted the terms of use, and have launched Xcode at least once. | ||
|
|
||
| * Disable the "System Integrity Protection" (for loading unsigned Kexts) by booting into recovery mode (`[Win/⌘] + R` while booting). |
There was a problem hiding this comment.
There's no such thing as an unsigned kext. You can't even build it if you don't have your cert set up. What we do have are dev-signed kexts and production-signed kexts.
Also please don't capitalize kext.
Readme.md
Outdated
|
|
||
| * Ensure you have Xcode installed, have accepted the terms of use, and have launched Xcode at least once. | ||
|
|
||
| * Disable the "System Integrity Protection" (for loading unsigned Kexts) by booting into recovery mode (`[Win/⌘] + R` while booting). |
There was a problem hiding this comment.
We probably want a giant warning message here that this is a Very Bad Thing for the security of your machine. We are not recommending this on any production machine, ever. This is for development and testing only. Etc etc.
40f42cf to
53f1def
Compare
sanoursa
left a comment
There was a problem hiding this comment.
Thanks for all the cleanup, I think this looks good!
These steps are the outcome of getting a working build on a Mac pro (Late 2013) with a freshly installed
Updates:
Questions: