Closed Bug 809697 Opened 12 years ago Closed 10 years ago

[download buttons] Offer linux64 builds to Linux x86_64 user agents

Categories

(www.mozilla.org :: Pages & Content, enhancement, P4)

x86_64
Linux
enhancement

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: trasuntopendiente, Assigned: kohei)

References

(Blocks 2 open bugs, )

Details

(Keywords: 64bit, ux-discovery, Whiteboard: [kb=1246386] )

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20100101 Firefox/16.0
Build ID: 20121024073032

Steps to reproduce:

Visit http://www.mozilla.org/en-US/firefox/fx/#desktop from a Linux x86_64 system with language en-GB
Press "Firefox Free Download" button.


Actual results:

You are directed to http://www.mozilla.org/en-US/products/download.html?product=firefox-16.0.2&os=linux&lang=en-US
After I download the build and uncompress it, I can see:

firefox$ ldd firefox
        linux-gate.so.1 =>  (0xf7779000)
        libpthread.so.0 => /lib32/libpthread.so.0 (0xf7747000)
        libdl.so.2 => /lib32/libdl.so.2 (0xf7743000)
        librt.so.1 => /lib32/librt.so.1 (0xf773a000)
        libstdc++.so.6 => not found
        libm.so.6 => /lib32/libm.so.6 (0xf7714000)
        libgcc_s.so.1 => not found
        libc.so.6 => /lib32/libc.so.6 (0xf75b6000)
        /lib/ld-linux.so.2 (0xf777a000)

This shows the build downloaded is compiled for 32 bits systems.


Expected results:

You should be directed to http://www.mozilla.org/en-US/products/download.html?product=firefox-16.0.2&os=linux64&lang=en-US

Which downloads a file with the same name, but is compiled for 64bit systems:

firefox$ ldd firefox
        linux-vdso.so.1 =>  (0x00007fff45bff000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f00a1793000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f00a158f000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f00a1386000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f00a107f000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f00a0dfd000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f00a0be6000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f00a085f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f00a19c8000)
64bit builds should only be offered if the browser's locale actually has 64bit builds available. I don't know if the "Linux x86_64" user agent is properly detected and managed (might downgrade to "Linux").

I'll run some tests to verify how deep the fix needs to go.
If the user agent is not detected, that's the priority, along with testing that supporting it doesn't break too many pages. It might require including fallbacks to plain "Linux" user agent behaviour when "Linux x86_64" is not a valid option (locale not available is the most obvious case).
OS: All → Linux
Hardware: All → x86_64
See Also: → 527907
By the way, Linux x86_64 is a tier-1 platform, but approval from Fx Product (or someone else) might be required to implement this.
https://developer.mozilla.org/en/Supported_build_configurations
Version: Trunk → other
Keywords: 64bit, ux-discovery
Severity: normal → enhancement
How is this different from bug 527907?
Bug 527907 intends to make Linux x86_64 builds accessible in a sensible way (no FTP navigation, no magic URLs), and the solution will be to include them in the Systems & Languages page.

With this bug I express my conviction that Linux x86_64 should be treated as the tier-1 platform it is, which means that every service offered to Windows/Linux/Mac users should be offered to users of supported 64bit systems. The most basic service I can think of is being able to download the latest version of Firefox from the official page without having to navigate to a secondary page few others ever need to visit.

What's more important, someday Windows 64bit will become a tier-1 platform, and Mozilla should be ready when the moment comes to offer its users a seamless experience. Implementing all this for Linux x86_64 will help find issues and test the systems currently implemented.
Summary: Offer linux64 builds to Linux x86_64 user agents if localization available → [download buttons] Offer linux64 builds to Linux x86_64 user agents if localization available
I would like to underline the fact that this might have serious consequences in Aurora/Beta usage on Linux. IIRC, this is a platform where most people use the distribution builds (which is usually the latest official release).

Detecting "Linux x86_64" in the UA string provides the 64bits tarball instead of the 32bits one might get people actually using those binaries.

I would also note that I had this issue yesterday, trying to download Aurora from mozilla.org, this isn't only for localization builds as the summary might let one think.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: [download buttons] Offer linux64 builds to Linux x86_64 user agents if localization available → [download buttons] Offer linux64 builds to Linux x86_64 user agents
I'll take the Aurora and Beta builds into account, then. These channels are partly affected by the changes I'm doing, so their fix should require little more effort (only the aurora URL construction, I think).
URLs in https://www.mozilla.org/en-US/firefox/channel/ should be:
Aurora: https://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora/firefox-18.0a2.en-US.linux-x86_64.tar.bz2
Beta: https://www.mozilla.org/products/download.html?product=firefox-17.0b6&os=linux64&lang=en-US

So far, I'm developing a fix in https://github.com/Elideb/bedrock/tree/bug-809697-offer-linux64-builds

The user agent detection was considering all Linux systems as linux. I've added a new platform linux64, which seems to work properly, and updated the tests. More testing is required for localized builds (plus Aurora and Beta), so I'm trying to build a server offering several locales.

The bug is also constrained by the product_details project. Since the Json files with platform information are generated from the PHP files used by the old PHP site, I first need to test that adding Linux x86_64 builds to those files doesn't break the pages still in use from the old site.
Once that has been tested, I can upload the PHP files with the new platform, generate their Json counterparts and roll everything out.
I've tested the channels page (https://www.mozilla.org/en-US/firefox/channel/) in my local installation of the site and, with the changes I've made, and both Beta and Aurora builds are Linux x86_64. The platform name is also nicely displayed.
I am currently unable to run the updated mozorg tests in bedrock. If someone could sync my branch (https://github.com/Elideb/bedrock/commits/bug-809697-offer-linux64-builds) and run the tests I'd be very glad. I'm trying to learn how to run them myself and any help is welcome.
Preliminary version of the fix is available at https://github.com/Elideb/bedrock. Theoretically, if no linux64 build is available for the desired locale, it should revert to en-US, x86_64. Remember to add Linux64 entries to firefox_primary_builds.json or firefox_beta_builds.json, depending on your locale.

Example:
"ach":{"19.0a2":{"Windows":{"filesize":0},"OS X":{"filesize":0},"Linux":{"filesize":0},"Linux64":{"filesize":6.1}},"18.0b7":{"Windows":{"filesize":7.8},"OS X":{"filesize":19},"Linux":{"filesize":9.6},"Linux64":{"filesize":6.1}},"17.0.1":{"Windows":{"filesize":7.8},"OS X":{"filesize":19},"Linux":{"filesize":9.6},"Linux64":{"filesize":6.1}}}

I'd be glad if other people could test it works. Due to browser and server caching I'm not sure my tests with just on computer have been thorough enough.
By the way, the fix is applied to download buttons in the desktop and channel pages.
This fix now has its own branch: https://github.com/Elideb/bedrock/tree/bug-809697-offer-linux64-builds.

I'll wait to make the pull request until a couple of fixes are accepted, because they add proper support of Linux x86_64 in product details.
Depends on: 828072
Priority: -- → P4
I'm revisiting this bug. We probably can offer linux x86 builds without adding those entries to product details. I have added ARMv6 and x86 builds for Android in Bug 776101, and I'll take a look at this.
Assignee: nobody → kohei.yoshino
Status: NEW → ASSIGNED
Whiteboard: [kb=1246386]
Attached file Pull Request on GitHub
Sent a PR.
No longer depends on: 828072
This problem still occurs on:
http://www.mozilla.org/en-US/firefox/all-aurora.html
http://www.mozilla.org/en-US/firefox/all-beta.html
It is quite disturbing especially since the beta files do not contain any information about the arch (example: firefox-27.0b9.tar.bz2) and are clearly 32 bit:

$ file firefox
firefox: ELF 32-bit LSB  executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, BuildID[sha1]=a6571d763338bbbe8df3a88dc7520376dc2eb9f6, stripped

My users agent for Firefox & Chromium:
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20131215 Firefox/24.0 Iceweasel/24.2.0
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36

Checking for x86_64 should do it.
(In reply to Sylvestre Ledru [:sylvestre] from comment #17)
> This problem still occurs on:
> http://www.mozilla.org/en-US/firefox/all-aurora.html
> http://www.mozilla.org/en-US/firefox/all-beta.html

We are working on it, and this will be resolved by
https://github.com/mozilla/bedrock/pull/1605 and
https://github.com/mozilla/bedrock/pull/1612
How are 64-bit OSX systems affected?
(In reply to Will Pittenger from comment #21)
> How are 64-bit OSX systems affected?

Firefox for OS X is already a 64-bit app; it won't be affected.

Firefox for Windows is still a 32-bit app. The 64-bit version will be added in the future. (Bug 558448)
Bug 527907 has been fixed and Linux 64 builds are now listed on the /all/ pages:

http://www.mozilla.org/en-US/firefox/all/
http://www.mozilla.org/en-US/firefox/beta/all/
http://www.mozilla.org/en-US/firefox/aurora/all/
http://www.mozilla.org/en-US/firefox/organizations/all/

This bug, for the download *buttons*, is still under review but it won't take long to be landed to the production site.
Blocks: FF2SM
I've put this change up on a demo server for testing:

https://www-demo3.allizom.org/

Raymond, would you please be able to verify the download button are working as expected on Linux, and also that this doesn't appear to affect any other systems?
Flags: needinfo?(mozbugs.retornam)
(In reply to Pascal Chevrel:pascalc from comment #25)
> It's not, I get this url on the french homepage:
> https://www-demo3.allizom.org/en-US/products/download.html?product=firefox-
> 27.0.1-SSL&os=linux64&lang=en-US
> 
> ->lang=en-US should be lang=fr

Kohei has made a change to fix this issue, so I've pushed the latest changes to demo3 again:

https://www-demo3.allizom.org/
fixed on demo3 https://www-demo3.allizom.org/en-US/products/download.html?product=firefox-27.0.1-SSL&os=linux64&lang=en-US
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Flags: needinfo?(mozbugs.retornam)
Resolution: --- → FIXED
Commits pushed to master at https://github.com/mozilla/bedrock

https://github.com/mozilla/bedrock/commit/880afdcdb6b5ff474e71e4f36829cb06e9cf1a89
Fix Bug 809697 - [download buttons] Offer linux64 builds to Linux x86_64 user agents

https://github.com/mozilla/bedrock/commit/d4d4846838c7593ed9fa2d3a9882385e3cfec772
Merge pull request #1604 from kyoshino/bug-809697-linux64-btn

Fix Bug 809697 - [download buttons] Offer linux64 builds to Linux x86_64 user agents
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: