Opened 9 months ago

Last modified 2 weeks ago

#21704 needs_review enhancement

Warn users when installing Tor Browser based on ESR 52 on not SSE2 capable Windows machines

Reported by: gk Owned by: boklm
Priority: High Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: ff52-esr, tbb-7.0-must, TorBrowserTeam201712R
Cc: boklm, tbb-team, mcs, brade Actual Points:
Parent ID: Points:
Reviewer: Sponsor: Sponsor4

Description (last modified by gk)

We should be proactive and warn users of installing Tor Browser 52 on Windows machines not capable of SSE 2. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1271759 installer adaptions Mozilla made. We can check that in our Linux start script later with the advent of ESR 59 based Tor Browsers as well (see: comment:2:ticket:19316).

Child Tickets

Attachments (1)

0001-Tor-bug-21704-Abort-install-if-CPU-is-missing-SSE2-s.patch (1.1 KB) - added by boklm 7 months ago.

Download all attachments as: .zip

Change History (26)

comment:1 Changed 9 months ago by gk

Summary: Warn users when installing Tor Browser based on ESR 52 on not SSE 2 capable machinesWarn users when installing Tor Browser based on ESR 52 on not SSE2 capable machines

comment:2 Changed 9 months ago by cypherpunks

Well, it seems you've decided to follow Mozilla blindly in all its decisions, good or bad. But it's a cul-de-sac.
Is there any chance that you could change your mind?
If Mozilla is doing something wrong in a hurry, and you see it, why don't you tell them about it?
If they want to make supplementary things mandatory (e.g. SSE2), when other FOSS devs are doing the opposite, why don't you mind?
If they advertise the worst proprietary things in history (SSE2, needed to be "fixed" by SSE3, and Pentium 4, yes, even Intel confirmed that) in 2017(!), why nobody asks what's going on?
So, having ESR52-based TBB cross-compiled and operational (w/o SSE2), why do you still drag those ### patches into Tor Browser, even when Mozilla requires them for Windows only?
Don't break the rules, please.

comment:3 in reply to:  2 ; Changed 9 months ago by gk

Replying to cypherpunks:

Well, it seems you've decided to follow Mozilla blindly in all its decisions, good or bad. But it's a cul-de-sac.
Is there any chance that you could change your mind?
If Mozilla is doing something wrong in a hurry, and you see it, why don't you tell them about it?
If they want to make supplementary things mandatory (e.g. SSE2), when other FOSS devs are doing the opposite, why don't you mind?
If they advertise the worst proprietary things in history (SSE2, needed to be "fixed" by SSE3, and Pentium 4, yes, even Intel confirmed that) in 2017(!), why nobody asks what's going on?
So, having ESR52-based TBB cross-compiled and operational (w/o SSE2), why do you still drag those ### patches into Tor Browser, even when Mozilla requires them for Windows only?
Don't break the rules, please.

Thanks for pointing this out. Actually, we only want to have this for Windows right now, as Linux at least won't break until ESR 59 (https://bugzilla.mozilla.org/show_bug.cgi?id=1274196). I am updating the ticket accordingly.

comment:4 Changed 9 months ago by gk

Description: modified (diff)
Summary: Warn users when installing Tor Browser based on ESR 52 on not SSE2 capable machinesWarn users when installing Tor Browser based on ESR 52 on not SSE2 capable Windows machines

comment:5 Changed 9 months ago by yawning

#13018 would be a compelling reason to drop non-SSE2 support everywhere since the situation would be considerably less bad.

Edit: Though I guess if the system libm ends up using gcc defaults, horrible things will happen anyway.

Last edited 9 months ago by yawning (previous) (diff)

comment:6 in reply to:  3 ; Changed 9 months ago by cypherpunks

Replying to gk:

Replying to cypherpunks:

Well, it seems you've decided to follow Mozilla blindly in all its decisions, good or bad. But it's a cul-de-sac.
Is there any chance that you could change your mind?
If Mozilla is doing something wrong in a hurry, and you see it, why don't you tell them about it?
If they want to make supplementary things mandatory (e.g. SSE2), when other FOSS devs are doing the opposite, why don't you mind?
If they advertise the worst proprietary things in history (SSE2, needed to be "fixed" by SSE3, and Pentium 4, yes, even Intel confirmed that) in 2017(!), why nobody asks what's going on?
So, having ESR52-based TBB cross-compiled and operational (w/o SSE2), why do you still drag those ### patches into Tor Browser, even when Mozilla requires them for Windows only?
Don't break the rules, please.

Thanks for pointing this out. Actually, we only want to have this for Windows right now, as Linux at least won't break until ESR 59 (https://bugzilla.mozilla.org/show_bug.cgi?id=1274196). I am updating the ticket accordingly.

Huh, it's not a surprise actually that you prefer not to answer complex questions... Let's hope it's just because of lack of time, though...
There are a lot of MoCo decisions recently which require public discussion, but we all know that Mozilla is ignoring the community, thus forking instead of ESR59 looks more and more actual.
As for your decision to break only Windows now, it looks no good. Despite your communication with mozdevs, it seems you don't know the story about this design decision, but you may ask to tell you about it.
Shortly, Windows won't break until ESR59 too, because it was required for MSVS 2015u2 and opt-in Rust (msvs target available only).

comment:7 in reply to:  5 Changed 9 months ago by cypherpunks

Replying to yawning:

#13018 would be a compelling reason to drop non-SSE2 support everywhere since the situation would be considerably less bad.

Only lamers from google chrome think so. Look at their discussions for fun ;) Just because of such geniuses JS is not suitable for floating point computations.

comment:8 in reply to:  6 ; Changed 9 months ago by gk

Replying to cypherpunks:

Replying to gk:

Replying to cypherpunks:

Well, it seems you've decided to follow Mozilla blindly in all its decisions, good or bad. But it's a cul-de-sac.
Is there any chance that you could change your mind?
If Mozilla is doing something wrong in a hurry, and you see it, why don't you tell them about it?
If they want to make supplementary things mandatory (e.g. SSE2), when other FOSS devs are doing the opposite, why don't you mind?
If they advertise the worst proprietary things in history (SSE2, needed to be "fixed" by SSE3, and Pentium 4, yes, even Intel confirmed that) in 2017(!), why nobody asks what's going on?
So, having ESR52-based TBB cross-compiled and operational (w/o SSE2), why do you still drag those ### patches into Tor Browser, even when Mozilla requires them for Windows only?
Don't break the rules, please.

Thanks for pointing this out. Actually, we only want to have this for Windows right now, as Linux at least won't break until ESR 59 (https://bugzilla.mozilla.org/show_bug.cgi?id=1274196). I am updating the ticket accordingly.

Huh, it's not a surprise actually that you prefer not to answer complex questions... Let's hope it's just because of lack of time, though...
There are a lot of MoCo decisions recently which require public discussion, but we all know that Mozilla is ignoring the community, thus forking instead of ESR59 looks more and more actual.
As for your decision to break only Windows now, it looks no good. Despite your communication with mozdevs, it seems you don't know the story about this design decision, but you may ask to tell you about it.
Shortly, Windows won't break until ESR59 too, because it was required for MSVS 2015u2 and opt-in Rust (msvs target available only).

Have you tried to compile it with non-MSVC? If you e.g. use mingw-w64 you'd see pretty fast that that statement is wrong: https://bugzilla.mozilla.org/show_bug.cgi?id=1331335. Thus, we need SSE2 support unless we want to specifically patch code for non-SSE2 support. In addition to that, not following Mozilla here has the great risk of getting security fixes that rely in their Windows variant on SSE2. We'd have to backport those fixes as well while being under time pressure which I think we don't want to risk.

Last edited 9 months ago by gk (previous) (diff)

comment:9 in reply to:  8 Changed 9 months ago by gk

Replying to gk:

Replying to cypherpunks:

Replying to gk:

Replying to cypherpunks:

Well, it seems you've decided to follow Mozilla blindly in all its decisions, good or bad. But it's a cul-de-sac.
Is there any chance that you could change your mind?
If Mozilla is doing something wrong in a hurry, and you see it, why don't you tell them about it?
If they want to make supplementary things mandatory (e.g. SSE2), when other FOSS devs are doing the opposite, why don't you mind?
If they advertise the worst proprietary things in history (SSE2, needed to be "fixed" by SSE3, and Pentium 4, yes, even Intel confirmed that) in 2017(!), why nobody asks what's going on?
So, having ESR52-based TBB cross-compiled and operational (w/o SSE2), why do you still drag those ### patches into Tor Browser, even when Mozilla requires them for Windows only?
Don't break the rules, please.

Thanks for pointing this out. Actually, we only want to have this for Windows right now, as Linux at least won't break until ESR 59 (https://bugzilla.mozilla.org/show_bug.cgi?id=1274196). I am updating the ticket accordingly.

Huh, it's not a surprise actually that you prefer not to answer complex questions... Let's hope it's just because of lack of time, though...
There are a lot of MoCo decisions recently which require public discussion, but we all know that Mozilla is ignoring the community, thus forking instead of ESR59 looks more and more actual.
As for your decision to break only Windows now, it looks no good. Despite your communication with mozdevs, it seems you don't know the story about this design decision, but you may ask to tell you about it.
Shortly, Windows won't break until ESR59 too, because it was required for MSVS 2015u2 and opt-in Rust (msvs target available only).

Have you tried to compile it with non-MSVC? If you e.g. use mingw-w64 you'd see pretty fast that that statement is wrong: https://bugzilla.mozilla.org/show_bug.cgi?id=1331335. Thus, we need SSE2 support unless we want to specifically patch code for non-SSE2 support. In addition to that, not following Mozilla here has the great risk of getting security fixes that rely in their Windows variant on SSE2. We'd have to backport those fixes as well while being under time pressure which I think we don't want to risk.

Actually, scratch the first argument (pointing to the SSE2 compilation bug) we can fix that by not taking Jacek's patch (which would make SSE2 mandatory in that part). The other one still holds and has been the important one anyway.

comment:10 in reply to:  8 Changed 9 months ago by cypherpunks

Replying to gk:

Replying to cypherpunks:

Replying to gk:

Replying to cypherpunks:

Well, it seems you've decided to follow Mozilla blindly in all its decisions, good or bad. But it's a cul-de-sac.
Is there any chance that you could change your mind?
If Mozilla is doing something wrong in a hurry, and you see it, why don't you tell them about it?
If they want to make supplementary things mandatory (e.g. SSE2), when other FOSS devs are doing the opposite, why don't you mind?
If they advertise the worst proprietary things in history (SSE2, needed to be "fixed" by SSE3, and Pentium 4, yes, even Intel confirmed that) in 2017(!), why nobody asks what's going on?
So, having ESR52-based TBB cross-compiled and operational (w/o SSE2), why do you still drag those ### patches into Tor Browser, even when Mozilla requires them for Windows only?
Don't break the rules, please.

Thanks for pointing this out. Actually, we only want to have this for Windows right now, as Linux at least won't break until ESR 59 (https://bugzilla.mozilla.org/show_bug.cgi?id=1274196). I am updating the ticket accordingly.

Huh, it's not a surprise actually that you prefer not to answer complex questions... Let's hope it's just because of lack of time, though...
There are a lot of MoCo decisions recently which require public discussion, but we all know that Mozilla is ignoring the community, thus forking instead of ESR59 looks more and more actual.
As for your decision to break only Windows now, it looks no good. Despite your communication with mozdevs, it seems you don't know the story about this design decision, but you may ask to tell you about it.
Shortly, Windows won't break until ESR59 too, because it was required for MSVS 2015u2 and opt-in Rust (msvs target available only).

Have you tried to compile it with non-MSVC? If you e.g. use mingw-w64 you'd see pretty fast that that statement is wrong: https://bugzilla.mozilla.org/show_bug.cgi?id=1331335. Thus, we need SSE2 support unless we want to specifically patch code for non-SSE2 support. In addition to that, not following Mozilla here has the great risk of getting security fixes that rely in their Windows variant on SSE2. We'd have to backport those fixes as well while being under time pressure which I think we don't want to risk.

Those were just the claims of mozdevs... so we can't trust them, you see. (But, actually, ANGLE is a google's bug.)
Unfortunately, Mozilla started to break everything before the ESR, but it doesn't mean we should join...
The risk of sec patches adding unconditional SSE2-specific code rewritten for Win only is almost zero.

comment:11 Changed 7 months ago by gk

Keywords: TorBrowserTeam201706 added

boklm: Can you put that on your plate? It might be a bit late for 7.0 but we'll want that for our installer, too.

comment:12 Changed 7 months ago by gk

Keywords: tbb-7.0-must added
Priority: MediumHigh

comment:13 Changed 7 months ago by boklm

Cc: tbb-team added
Owner: changed from tbb-team to boklm
Status: newassigned

comment:14 Changed 7 months ago by boklm

I attached a patch for tbb-windows-installer.git that I think should abort installation with a message if the CPU does not support SSE2.

The line using kernel32::IsProcessorFeaturePresent to check whether the SSE2 instruction set is available was taken from the firefox installer in browser/installer/windows/nsis/installer.nsi.

I made a build with this patch:
https://people.torproject.org/~boklm/bug_21704/torbrowser-install-7.0a4_en-US.exe
https://people.torproject.org/~boklm/bug_21704/torbrowser-install-7.0a4_en-US.exe.asc

On my Windows VM with SSE2 support, the installation is working as before. Unfortunately I don't have a machine without SSE2 support to check that the message is displayed and installation aborted in that case.

comment:15 Changed 7 months ago by gk

Cc: mcs brade added
Status: assignedneeds_information

Hm. I wonder how we could test that. mcs/brade do you have by chance a really old computer with Windows running?

comment:16 in reply to:  15 Changed 7 months ago by mcs

Replying to gk:

Hm. I wonder how we could test that. mcs/brade do you have by chance a really old computer with Windows running?

Unfortunately, the oldest one we have uses a Pentium 4 processor (which was one of the first to include SSE2). I did boot it up and run the installer from comment:14 and it installed and ran fine (the OS is Windows XP, so I do not boot it up very often).

comment:17 Changed 7 months ago by gk

Keywords: TorBrowserTeam201706R added; TorBrowserTeam201706 removed
Status: needs_informationneeds_review

comment:18 Changed 6 months ago by gk

Keywords: TorBrowserTeam201707 added

Moving Tickets to July 2017.

comment:19 Changed 6 months ago by gk

Keywords: TorBrowserTeam201707R added; TorBrowserTeam201706R removed

Moving the review tickets to July 2017 as well.

comment:20 Changed 6 months ago by gk

Keywords: TorBrowserTeam201707 removed

comment:21 Changed 5 months ago by gk

Keywords: TorBrowserTeam201708R added; TorBrowserTeam201707R removed

Moving review tickets to August.

comment:22 Changed 4 months ago by gk

Keywords: TorBrowserTeam201709R added; TorBrowserTeam201708R removed

Moving reviews to September.

comment:23 Changed 3 months ago by gk

Keywords: TorBrowserTeam201710R added; TorBrowserTeam201709R removed

Moving reviews to October.

comment:24 Changed 6 weeks ago by gk

Keywords: TorBrowserTeam201711R added; TorBrowserTeam201710R removed

Moving review to November

comment:25 Changed 2 weeks ago by gk

Keywords: TorBrowserTeam201712R added; TorBrowserTeam201711R removed

Moving review tickets over to December

Note: See TracTickets for help on using tickets.