Closed Bug 1186003 Opened 4 years ago Closed 4 years ago

Switch automated builds to GTK3

Categories

(Core :: Widget: Gtk, defect)

Unspecified
Linux
defect
Not set

Tracking

()

VERIFIED FIXED
mozilla42
Tracking Status
firefox42 --- disabled
firefox43 --- disabled
firefox44 --- disabled
firefox45 --- disabled
firefox46 --- verified
relnote-firefox --- 46+

People

(Reporter: acomminos, Assigned: glandium)

References

(Depends on 4 open bugs, Blocks 1 open bug)

Details

Attachments

(2 files)

GTK3 builds now pass all of our Linux test suites (https://treeherder.mozilla.org/#/jobs?repo=elm). We should enable it by default on trunk.
Set the default widget toolkit to cairo-gtk3.
Attachment #8636569 - Flags: review?(mh+mozilla)
Comment on attachment 8636569 [details] [diff] [review]
Enable GTK3 builds by default.

Review of attachment 8636569 [details] [diff] [review]:
-----------------------------------------------------------------

There are multiple things involved in doing Gtk3 builds, one of which is this, but the most important part is that Gtk3 dependencies need to be installed. For local development, that means mach bootstrap needs to be installing those dependencies. For automation, that means pulling the gtk3 package from tooltool.

Let's go with the latter to switch to Gtk3 on automation, and deal with the former (along with changing the default in configure.in) in a followup. Essentially, we should just land the patch from bug 1016641 (or, for more security, because I'm not sure it's up-to-date, take the actual diff for elm, filtered-out of the things used for updates). I will do this in a moment,
Attachment #8636569 - Flags: review?(mh+mozilla) → review-
The build-gtk3.sh script contains the script used to generate the tooltool
packages.
Assignee: acomminos → mh+mozilla
Attachment #8636826 - Flags: review?(mshal)
Blocks: 1186229
Comment on attachment 8636826 [details] [diff] [review]
Switch automated builds to Gtk+3

>+"filename": "gtk.tar.xz",

I think you want to name these "gtk3.tar.xz" so that tooltool will rm -rf the previous package correctly. I filed bug 1186234 since this is annoying.

I didn't review the build-gtk3.sh script too closely, but it looks reasonable.
Attachment #8636826 - Flags: review?(mshal) → review+
relnote-firefox: --- → ?
Keywords: relnote
https://hg.mozilla.org/mozilla-central/rev/939320b957c5
https://hg.mozilla.org/mozilla-central/rev/3b6c42c745ca
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
Blocks: 1186748
I guess that means bug 1179818 doesn't need to worry about gtk?
Blocks: 1186717
Depends on: 1187006
Depends on: 1189526
No longer using this keyword
Keywords: relnote
Depends on: 1187203
Mike, could you please fill out the release note request template below? This will help me draft the release notes. Thanks!

Release Note Request (optional, but appreciated)
[Why is this notable]: ???
[Suggested wording]: ???
[Links (documentation, blog post, etc)]: ???
Flags: needinfo?(mh+mozilla)
I'm sure graphics people have more to say than I would.
Flags: needinfo?(mh+mozilla) → needinfo?(acomminos)
Release Note Request (optional, but appreciated)
[Why is this notable]: GTK3 provides richer theme support, hidpi widget drawing, better support for input devices, and reduces our dependency on X11. From a graphics perspective, its main advantage is being able to draw widgets onto any kind of system cairo supported surface without readback.
[Suggested wording]: Use GTK+3 for Linux builds
[Links (documentation, blog post, etc)]: Not sure if anyone has written about user-visible changes in Firefox as a result of GTK3.
Flags: needinfo?(acomminos)
Added relnote to FF41 Beta in Nucleus
This should not be in FF41 release notes but in FF42 instead. Re-setting the flag to ensure it gets look at when the time comes to draft FF42 release notes.
The Linux system requirements also need updating in various places if this is now required.
Added to the release notes of 42 aurora with the wording "GTK3 integration (GNU/Linux only)".
In case this gets delayed to another release, we will update the release notes.
Depends on: 1194067
Depends on: 1190380
Depends on: 1195505
Depends on: 1195002
Depends on: 1194044
No longer depends on: 1194044
Depends on: 1190621
Hi, has this been delayed to 43 ? There is no reference to GTK3 in the 42 beta release notes.
(In reply to u544734 from comment #17)
> Hi, has this been delayed to 43 ? There is no reference to GTK3 in the 42
> beta release notes.
Yes, it has been delayed. See bug 1186003.
I just added this item into the 43 release notes but kept the 42 aurora item as it was on during this whole cycle.
(In reply to Sylvestre Ledru [:sylvestre] from comment #18)
> (In reply to u544734 from comment #17)
> > Hi, has this been delayed to 43 ? There is no reference to GTK3 in the 42
> > beta release notes.
> Yes, it has been delayed. See bug 1186003.

This is bug 1186003.
Depends on: 1212139
Depends on: 1211892
Depends on: 1219717
Noting that we disabled gtk3 for 43, last week, here: https://bugzilla.mozilla.org/show_bug.cgi?id=1227024 as there are unresolved update issues.  I'm setting the flags for 42 and 43 to "disabled" on this bug for clarity (since they were enabled for a while on pre-release versions), and re-setting the relnote flag to ?.
44 is disabled too. Let's say that we will try to ship it in 45.
Added to the 45 release notes
What is missing to ship it?
Itself, the feature is ready.
The problem that we need to address is the update window for system without gtk3.
See bug 1227023.
I have two questions:
1) Could we ship two versions and update people without GTK3 to the GTK2 version?
2) Could we ship beta and aurora with GTK3, so we have a larger population of testers for the GTK3 version?

Sorry if this has already been asked/answered before.
(In reply to Marco Castelluccio [:marco] from comment #24)
> I have two questions:
> 1) Could we ship two versions and update people without GTK3 to the GTK2
> version?
We could but this would complexify our work and processes.

> 2) Could we ship beta and aurora with GTK3, so we have a larger population
> of testers for the GTK3 version?
It is what we do. 42 beta, 43 beta and 44 aurora had GTK3 enabled by default.
So will 45 aurora (at least).
As a side note, will be bug 1227023 statistic available anywhere in public?
I think this info will be useful for other projects in the same situation.
You should ask in the bug itself.
(In reply to Marco Castelluccio [:marco] from comment #24)
> I have two questions:
> 1) Could we ship two versions and update people without GTK3 to the GTK2
> version?

Once we have the detection in the update URL, we could do that in theory. I expect the GTK2-only population to be very small nowadays though, and given that Linux is already a very small chunk of our users, people getting builds from Mozilla is only a small chunk of Linux users (as most do get builds from their distros), having special builds for yet again a small chunk out of that population probably doesn't make sense, it's better to just unsupport those, and that's the current plan.
Oops... It seems the right bug to comment on; not 627699 . My bad. Here is a copy/paste of my comment

Hello, I now have a problem launching Firefox at all. This seems to be a gtk3 issue on my system, because even zenity or gtk3-demo won't start on it.
Bissected the issue to https://hg.mozilla.org/integration/mozilla-inbound/rev/939320b957c5 with mozregression. I just want you to be aware of some problems caused by the transition to gtk3.

I will try to work with gtk developers to get this fixed, but I can't use any updated Firefox version in the meanwhile.
mayeul, thanks for the report!  Rather than discussing this as an afterthought on a fixed-weeks-ago-bug, could you file a new bug here for the issue you're seeing:
  https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Widget:%20Gtk
...and please note the bug number here so that people involved here can take a look on your new bug if they like?

Thanks!
If you can't even run the gtk3-demo, I doubt there's an actionable bug in Firefox. Your system doesn't have Gtk+3, or is broken in some way. If you get it in a shape where gtk3-demo works but Firefox doesn't, then you can open a new bug.
Depends on: 847204
Blocks: 1208372
Depends on: 1255747
Summary: Enable GTK3 builds by default → Switch automated builds to GTK3
Depends on: 1192805
Mike, is this something manual QE should be looking into for 46? We've done spot checks in the past, the most recent one being on Fx45, for the switch back to gtk2. 

If you think there's value in manually testing gtk3 builds, any tips would help -- we're usually focusing on toolbars, menus, panels, doorhangers and infobars.
Flags: qe-verify?
Flags: needinfo?(mh+mozilla)
(In reply to Andrei Vaida, QA [:avaida] from comment #33)
> Mike, is this something manual QE should be looking into for 46? We've done
> spot checks in the past, the most recent one being on Fx45, for the switch
> back to gtk2. 
> 
> If you think there's value in manually testing gtk3 builds, any tips would
> help -- we're usually focusing on toolbars, menus, panels, doorhangers and
> infobars.

That seems sensible. You can also pay attention to form elements in web pages.
Flags: needinfo?(mh+mozilla)
(In reply to Mike Hommey [:glandium] from comment #34)
> That seems sensible. You can also pay attention to form elements in web
> pages.

Thanks, we'll make sure this gets looked at during the beta cycle.
Flags: qe-verify? → qe-verify+
Blocks: 1261791
(In reply to Andrei Vaida, QA [:avaida] from comment #35)
> (In reply to Mike Hommey [:glandium] from comment #34)
> > That seems sensible. You can also pay attention to form elements in web
> > pages.
> 
> Thanks, we'll make sure this gets looked at during the beta cycle.

We did some Exploratory testing on Ubuntu 12.04 and 14.04 using Firefox 46 beta 6 and we did found a few issues, but none of them major. More information can be seen in this raport: https://goo.gl/XBuIH4. Marking as verified fixed on 46 based on our testing.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
Depends on: 694570
Depends on: 1280720
Blocks: 1282560
No longer blocks: 1282560
Depends on: 1282560
Depends on: 1287278
See Also: → 1297246
See Also: → 1296963
Depends on: 1297246
See Also: 1297246
You need to log in before you can comment on or make changes to this bug.