Re: Bug#931052: unblock: webkit2gtk/2.24.2-2

2019-06-27 Thread Alberto Garcia
On Thu, Jun 27, 2019 at 03:26:32PM +0300, Adrian Bunk wrote:

> > We like to support non-sse2 on i386, but we are not comfortable
> > fixing webkit2gtk at this stage of the release.
> 
> Why is this relatively small change a problem in a package where new
> upstream versions are permitted after the release of stable?

I'll try to explain again with more detail so we all understand the
nature of the proposed changes.

- WebKitGTK has several mechanisms to run JavaScript code, in brief: a
  C-based interpreter (CLoop), an assembler-based interpreter and a
  JIT compiler.

- CLoop is the slowest but it is portable and runs in all platforms.
  It's the one selected at build time when the CPU is unsupported or
  unknown.

- The other two generate CPU-specific code. In an effort to simplify
  them upstream took recently the decision to stop supporting i386
  processors without SSE2 instructions.

- Because of that, WebKitGTK 2.24.1 added a build-time check to detect
  if the compiler can generate SSE2 instructions. For the Debian case
  I had to add -msse2 -mfpmath=sse to CFLAGS, as suggested by
  upstream.

- The consequence of this is that GCC generates SSE2 instructions when
  appropriate when compiling regular C/C++ code, causing crashes like
  the one previously reported.

- However, and this is the part that I originally overlooked, only the
  C-based interpreter is working at the moment in i386. The other two
  are less actively maintained for i386, and stopped working after
  some big changes upstream in the last few months.
  
- So it is possible to remove the compile-time check for SSE2 and
  build the package without those flags in i386.

What this all means is that the only real difference between
webkit2gtk 2.24.2-1 (in buster) and 2.24.2-2 (in sid) is that, for
i386, the former is compiled with -msse2 -mfpmath=sse and the latter
is not. So for floating point operations the former uses SSE2 and the
latter uses x87. This produces some differences in rounding in some
corner cases which could have user-visible consequences.

We don't know when it is going to happen, but once upstream brings
back JIT support to i386 again we would have to make the decision to
either:

 a) keep using CLoop in order to remain compatible with non-SSE2 CPUs
(conservative approach, I'd probably support this one).
 
 b) think of a way to support both sets of users so those with more
modern processors can benefit from the additional performance of
the JIT compiler. This could involve using e.g. /usr/lib/sse2/ for
those binaries.

I hope this clarifies the situation.

Berto



Re: Bug#931052: unblock: webkit2gtk/2.24.2-2

2019-06-27 Thread Adrian Bunk
On Thu, Jun 27, 2019 at 01:27:42PM +0200, Paul Gevers wrote:
> reassign 931052 release-notes
> retitle 931052 webkit2gtk not supported on non-sse2 i386 hardware
>...
> We like to support non-sse2 on i386, but we are not comfortable fixing
> webkit2gtk at this stage of the release.

Why is this relatively small change a problem in a package where
new upstream versions are permitted after the release of stable?

Doing a change in 2.24.2-2 prior to the release sounds less risky than
uploading the same change as part of 2.24.3-1~deb10u1 to buster-pu.

> Therefore, we will not unblock
> this change, but we want the release notes to mention this, so users are
> warned.

This means the default desktop is expected to have crashes due to this.

Many standalone applications like liferea or zenity (#930932)
are also expected to crash.

Please mention in all buster announcements that users on non-SSE i386 
should defer upgrading from stretch until this is fixed in the next 
point release of buster.

> Paul

cu
Adrian

-- 

   "Is there not promise of rain?" Ling Tan asked suddenly out
of the darkness. There had been need of rain for many days.
   "Only a promise," Lao Er said.
   Pearl S. Buck - Dragon Seed



Processed: Re: Bug#931052: unblock: webkit2gtk/2.24.2-2

2019-06-27 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

> reassign 931052 release-notes
Bug #931052 [release.debian.org] unblock: webkit2gtk/2.24.2-2
Bug reassigned from package 'release.debian.org' to 'release-notes'.
Ignoring request to alter found versions of bug #931052 to the same values 
previously set
Ignoring request to alter fixed versions of bug #931052 to the same values 
previously set
> retitle 931052 webkit2gtk not supported on non-sse2 i386 hardware
Bug #931052 [release-notes] unblock: webkit2gtk/2.24.2-2
Changed Bug title to 'webkit2gtk not supported on non-sse2 i386 hardware' from 
'unblock: webkit2gtk/2.24.2-2'.
> user release.debian@packages.debian.org
Setting user to release.debian@packages.debian.org (was elb...@debian.org).
> usertags 931052 - unblock
Usertags were: unblock.
Usertags are now: .
> thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
931052: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=931052
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems