bazelbuild / rules_android_ndk

Apache License 2.0
29 stars 15 forks source link

Adding downloading of NDK inside Bazel #44

Open gferon opened 1 year ago

gferon commented 1 year ago

I have a working prototype of downloading the NDK directly in Bazel for both Linux and macOS. Would that be something interesting to contribute in rules_android_ndk?

I find providing the path of the NDK via an environment variable relatively brittle and it's much easier IMO to have Bazel download the toolchain when onboarding new devs.

kkpattern commented 1 year ago

We used to do this internally, and it's very convenient. But I believe the new NDK only provides dmg files, not zip files, on macOS due to security requirements. So we switched back to the environment variable for now.

kkpattern commented 1 year ago

If we do get a zipped ndk, I think one workaround is using xattr -d com.apple.quarantine FILENAME to remove the quarantine flag from the directly downloaded executable files.

DanAlbert commented 1 year ago

But I believe the new NDK only provides dmg files, not zip files

The zip file still exists, it's just not published on the download pages because people kept downloading the wrong thing and then filing bugs about it not being compatible with gatekeeper (which is impossible to do per Apple's requirements). Just replace .dmg with .zip in the download URL.

If we do get a zipped ndk, I think one workaround is using xattr -d com.apple.quarantine FILENAME to remove the quarantine flag from the directly downloaded executable files.

Not required unless whatever tool you're using to download the zip applies the quarantine flag in the first place, fwiw. I haven't seen anything but a web browser do this, so not likely needed here.

kkpattern commented 1 year ago

That's awesome! We are definitely interested in downloading NDK inside Bazel. We can help if needed.

gferon commented 1 year ago

The zip file still exists, it's just not published on the download pages because people kept downloading the wrong thing and then filing bugs about it not being compatible with gatekeeper (which is impossible to do per Apple's requirements). Just replace .dmg with .zip in the download URL.

This is excellent news! Thanks for the tip. I'll open a PR ASAP.