Bug 1159775

Summary: Switch of mozjs60 to i686 causes issues
Product: [openSUSE] openSUSE Tumbleweed Reporter: Dominique Leuenberger <dimstar>
Component: FirefoxAssignee: Frederic Crozat <fcrozat>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: fcrozat, wolfgang
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Dominique Leuenberger 2019-12-25 09:45:15 UTC
Recently, the library mozjs60 was changed to be built as i686 instead of i586. This causes major problems, as for example polkit is an i586 binary, now no longer finding the corresponding arch of the library it links to.

This gives for example:

dvd.group:    <!-- patterns-base-enhanced_base uninstallable: nothing provides libmozjs-60.so needed by polkit-0.116-3.1.i586-->

This was introduced with https://build.opensuse.org/request/show/758572
(change will need to be reverted short term in Factory to not block snapshots forever)
Comment 1 Wolfgang Rosenauer 2019-12-25 10:20:52 UTC
@fcrozat, can you take care of this?

The build definition seems to come from the Firefox package. Firefox uses certain features only available on i686. I'm not totally sure about the JS engine though. It might be also the case so when certain functions are used from the JS lib we may still run into a runtime issue but at least the lib consumers still can and link against the lib.

Not sure what the longer term solution might be though.
glibc also is i686 so I guess i586 binaries should still be able to use i686 libs? Not sure what is required to make this work.
Also question is if a component like mozjs (being used by Gnome AFAIK) can be i686 w/o starting to require i686 hardware as a baseline for the whole distribution?
Comment 2 Frederic Crozat 2019-12-30 09:08:24 UTC
(In reply to Dominique Leuenberger from comment #0)
> Recently, the library mozjs60 was changed to be built as i686 instead of
> i586. This causes major problems, as for example polkit is an i586 binary,
> now no longer finding the corresponding arch of the library it links to.
> 
> This gives for example:
> 
> dvd.group:    <!-- patterns-base-enhanced_base uninstallable: nothing
> provides libmozjs-60.so needed by polkit-0.116-3.1.i586-->
> 
> This was introduced with https://build.opensuse.org/request/show/758572
> (change will need to be reverted short term in Factory to not block
> snapshots forever)

Sorry about that.

I switched mozjs60 to i686 because it was the only way to get it to pass properly all its testsuite succesfully on 32bit intel (and this is what Fedora is also doing).

I'll revert this change and will have to disable some tests on i586 :(
Comment 3 Frederic Crozat 2019-12-30 12:02:08 UTC
(In reply to Frederic Crozat from comment #2)
> (In reply to Dominique Leuenberger from comment #0)
> > Recently, the library mozjs60 was changed to be built as i686 instead of
> > i586. This causes major problems, as for example polkit is an i586 binary,
> > now no longer finding the corresponding arch of the library it links to.
> > 
> > This gives for example:
> > 
> > dvd.group:    <!-- patterns-base-enhanced_base uninstallable: nothing
> > provides libmozjs-60.so needed by polkit-0.116-3.1.i586-->
> > 
> > This was introduced with https://build.opensuse.org/request/show/758572
> > (change will need to be reverted short term in Factory to not block
> > snapshots forever)
> 
> Sorry about that.
> 
> I switched mozjs60 to i686 because it was the only way to get it to pass
> properly all its testsuite succesfully on 32bit intel (and this is what
> Fedora is also doing).
> 
> I'll revert this change and will have to disable some tests on i586 :(

Sorry, I didn't notice the change was already done in devel project. It would have been better to not change the past history in the package changelog but add another changelog entry (those changes were already in SLE 15 SP2 / Leap 15.2).

Closing as fixed
Comment 4 Frederic Crozat 2019-12-30 13:34:41 UTC
reopened, dropping i686 without fixing testsuite is not the best idea..
Comment 5 Wolfgang Rosenauer 2019-12-30 13:45:05 UTC
Sorry, this is what I noticed and where I didn't yet proceed.
Feel free to fix the test suite. But as said in the earlier comment building for i586 will mean the possibility for runtime errors due to missing SSE stuff and at the same time I would hope/expect that we could handle mozjs similar to glibc. I have no clue what can or would need to be done though.
Comment 6 Frederic Crozat 2019-12-30 13:48:17 UTC
(In reply to Wolfgang Rosenauer from comment #5)
> Sorry, this is what I noticed and where I didn't yet proceed.
> Feel free to fix the test suite.

In progress.

> But as said in the earlier comment building
> for i586 will mean the possibility for runtime errors due to missing SSE
> stuff and at the same time I would hope/expect that we could handle mozjs
> similar to glibc. I have no clue what can or would need to be done though.

Well, the failure are in floating point handling and so far, nobody has complained (since tests were not enabled, nobody noticed until I made sure they were enabled on all possible platforms). For now, I'll keep the previous state by disabling the tests on i586.
Comment 7 Frederic Crozat 2019-12-30 16:42:24 UTC
fixed now with sr#760063

please accept it.