-
Notifications
You must be signed in to change notification settings - Fork 62
Add Linux ARM builds to downloads #420
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
Conversation
kjarosh
commented
May 28, 2025
Just bikeshedding: hmm, did you write Intel/AMD because the average user might not know what x86_64 is? If so, should they know that this refers to the CPU, not the GPU? Should it not say anything on the x86 one? 🤔 |
dunno, up to you (plural) |
I personally prefer the second version, but originally I wrote it this way to make it simpler to understand by users |
I also prefer the second version. To make it simpler for users, we could detect the CPU architecture from the user agent and show only the relevant Linux download under the Desktop Application heading, right? |
Also, I find ARM64 more understandable than AArch64, though IDK if others would agree. |
Looked into that, there's no trivial way to do so (react-detect that we use does not support detecting CPU architecture).
Should we also change x86_64 to AMD64 and/or x86 to i386? |
The terms I'm personally most familiar with are x86_64 (or just 64-bit in the Windows context) and ARM64 (in the Linux context) |
AFAIK the UserAgent (as exposed to websites), is deprecated, and should be hardcoded to a well known constant everywhere (regardless of the actual user agent). |
I'm not aware of that, and the library we use for device info detection already uses the user agent string. The user agent string shouldn't be used to decide what web features or polyfills to activate on your website (feature detection is a better approach) but detecting device info to show the relevant application download seems like a perfect use case for the UA string IMO. |
The modern way to check the architecture and bit-ness is this: if (navigator.userAgentData?.getHighEntropyValues) {
await navigator.userAgentData.getHighEntropyValues([ "architecture", "bitness" ]);
} https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUAData/getHighEntropyValues#architecture |
Unfortunately it's Chromium-only right now. On Chromium, I did this: const architectureInfo = await navigator.userAgentData.getHighEntropyValues([ "architecture", "bitness" ]);
console.log(architectureInfo.architecture);
console.log(architectureInfo.bitness) This logs, for me, "x86" and "64". |
So the conclusion is just to change the Linux download labels to x86_64 and ARM64, right? Here's an example of this terminology "in the wild" (the Zen Browser download page) As @danielhjacobs pointed out on Discord, we wouldn't be able to detect the processor architecture from Firefox's user agent string anyway on Linux, so we can scratch that part of the discussion. |
Yeah, I'm okay with x86_64 and ARM64, and it does match what's on https://zen-browser.app/download/. Even though it's somewhat mixing and matching terms, I think it's fine, and ultimately I feel like it's more important to get this on the website than bike-shed further anyway. The x86_64 build is still the one that appears on the website so this isn't urgent, but that's mainly down to luck. More specifically, I assume it's that the GitHub API returns the release assets in alphabetical order of their names or URLs and x86_64 comes after aarch64 alphabetically, and a |
Arguable about changing the Windows names imo |
I prefer not to change the Windows download labels because 64-bit and 32-bit are more commonly used/understood by Windows users and the architecture distinction is not relevant thanks to WOW64 and built-in x86 emulation on ARM. Also, notice that the Zen Browser download page labels its Windows x86_64 build "64-bit". |
Yes that looks good to me! |