rules_android_ndk icon indicating copy to clipboard operation
rules_android_ndk copied to clipboard

Adding downloading of NDK inside Bazel

Open gferon opened this issue 2 years ago • 6 comments

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.

gferon avatar Sep 05 '23 12:09 gferon

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 avatar Sep 05 '23 12:09 kkpattern

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.

kkpattern avatar Sep 05 '23 12:09 kkpattern

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.

DanAlbert avatar Sep 05 '23 18:09 DanAlbert

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

kkpattern avatar Sep 06 '23 02:09 kkpattern

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.

gferon avatar Sep 08 '23 08:09 gferon