-
Notifications
You must be signed in to change notification settings - Fork 166
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
MacOS binary distribution is slow to start on Catalina (10.15) #2422
Comments
I thought our packages were notarized already: nodejs/node#31459, nodejs/node#29216 (comment) |
Our binarys are notorized but maybe the latest build failed notorization? |
@MylesBorins can you try with previous releases? |
I think we only notarize the pkg distribution and not the tarballs. |
AFAIK we do only notarize the .pkg. @mmarchini it is my understanding that all binary releases will now be slow on Catalina due to not being notarized, I just tested with v8.9.4 and replicated the behavior (release is 2+ years old). Although I'm a bit perplexed as to why this doesn't happen with nvm which AFAIK redistributes our binaries. /cc @ljharb is nvm doing anything special? |
All nvm does is download a tarball and extract it; it's possible that using the command line doesn't check the notarization? |
@ljharb I'm using the command line, so that's what is so strange here... perhaps it is the indirection? |
OMG, it is literally just not being in the download folder 😂 Testing locally. A binary in the download folder runs super slow, one out of it doesn't WHAT! |
All of our binaries are signed, with entitlements baked in, even in the tarball. Notarization is for packages, you can't do it to a tarball (unless something's changed recently). Currently the notarization handling on the client side is through the installer process, when you're doing things like unpacking tarballs, or copying a file onto your computer from elsewhere (rsync, scp, etc.), you're bypassing all of that. I imagine Apple might want to change that over time to push everything through their notarization process but that's going to be tricky for them to pull off without annoying a lot of people and breaking their unix-ish usability. |
I had found this article about notarizing a golang binary, maybe it will be helpful. With that said it seems like the binaries are only slow the first time they are run in a directory that isn't https://www.kencochrane.com/2020/08/01/build-and-sign-golang-binaries-for-macos-with-github-actions/ |
right, but the notarization is stapled to the package, not the binary, when you install that notarization information gets extracted and associated with where the binary is installed, tarballs bypass this, they are signed but the notarization information is not included anywhere |
@rvagg thanks for clarifying. FWIW it does not seem like the signature plays a role in subsequent runs of the binary |
@MylesBorins it's also possible that files downloaded by browsers are marked with an extended attribute, and that's what makes them slow? It might be worth seeing if the presence of |
@ljharb I just downloaded via wget instead of browser, same behavior
|
This issue is stale because it has been open many days with no activity. It will be closed soon unless the stale label is removed or a comment is made. |
If you download the tarball of the MacOS binary and attempt to run on Catalina (10.15) there is a multi second delay until it starts. I believe that this is due to the binary not being notarized. We noticed something similar with the jstime binary
jstime/jstime#30
The text was updated successfully, but these errors were encountered: