Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 340067

Summary: [GTK3] Port to GTK+ 3
Product: [Eclipse Project] Platform Reporter: Andrew Overholt <overholt>
Component: SWTAssignee: Platform-SWT-Inbox <platform-swt-inbox>
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: P3 CC: adietish, akurtakov, Alexander.Mitin, andreas.kohn, arunkumar.thondapu, caniszczyk, daniel_megert, david_williams, d_a_carver, eclipse.felipe, elreydetodo, eostroukhov, felix+eclipse, gheorghe, herrlado, hicham.haouari, irbull, jamesblackburn+eclipse, john.arthorne, Lars.Vogel, loskutov, lshanmug, mail, Mike_Wilson, mlists, niels, peter, pwebster, remy.suen, robin, s.feltman, sbasalaev, Silenio_Quarti, spektor.anatoly, steffen.pingel, sven.koehler, tadej.janez, thib
Version: 4.3Keywords: plan
Target Milestone: 4.4   
Hardware: PC   
OS: Linux   
Whiteboard:
Bug Depends on: 46025, 354978, 360872, 361004, 363956, 364760, 364761, 364762, 364763, 364764, 364765, 364766, 364767, 364768, 364769, 369149, 369150, 369151, 369152, 369183, 369184, 369186, 369225, 369226, 369227, 369228, 369623, 369624, 372741, 372742, 372748, 372905, 372906, 373434, 373435, 373436, 374217, 374218, 374219, 374220, 374221, 374222, 374555, 374556, 374557, 374558, 374559, 374560, 374561, 374562, 374754, 374994, 376546, 380287, 382384, 382391, 382402, 382407, 382626, 383270, 383303, 383333, 383335, 383842, 384507, 384651, 384658, 384749, 385066, 385069, 385070, 385309, 385315, 385347, 385602, 385939, 386145, 386401, 386594, 386759, 386769, 386772, 386778, 386779, 386847, 386893, 386931, 386953, 387133, 387144, 387149, 387315, 387641, 387993, 388012, 388026, 388247, 388252, 388265, 388347, 388352, 388369, 388461, 388528, 388757, 388778, 388856, 388869, 388883, 388953, 388991, 389056, 389066, 389085, 389093, 389096, 389381, 389552, 389727, 389729, 389741, 389749, 389910, 389937, 390034, 390041, 390044, 390242, 390260, 390569, 390683, 390726, 390727, 390864, 391050, 391112, 391263, 391267, 391370, 391398, 391404, 391408, 391413, 391477, 391730, 391821, 391838, 391937, 391992, 392009, 392083, 392122, 392210, 392212, 392223, 392366, 392389, 392420, 392447, 392569, 392610, 392616, 392700, 392774, 392784, 392785, 392786, 392811, 392839, 392841, 393156, 393351, 393681, 393689, 393723, 393724, 393726, 393727, 393728, 393729, 393792, 393793, 393919, 394227, 394422, 394572, 394583, 394670, 396303, 396305, 396306, 396313, 396316, 396320, 396324, 396493, 397107, 398176, 398748, 399522, 399543, 399545, 399547, 399548, 399551, 399560, 399562, 399564, 400339, 400579, 401802, 403102, 403191, 403474, 403887, 404062, 404163, 404448, 404946, 406808, 408503, 408505, 411452, 413950, 414643, 417601, 420180, 420771, 420989, 421127, 421834, 421836, 422316, 422940, 423870, 424343, 424596, 424891, 425999, 426694, 428170, 428852, 429086, 431160, 431162, 431330, 431890, 440116    
Bug Blocks:    
Attachments:
Description Flags
N20131207 is not usable under gnome 3.10 none

Description Andrew Overholt CLA 2011-03-15 13:37:55 EDT
I couldn't find a plan item for 4.2/3.8 so I'm creating one.  Apologies if this is a dupe.

GTK+ 3 is out:

  http://blogs.fedoraproject.org/wp/mclasen/2011/02/10/gtk-3-is-here/
  http://ftp.gnome.org/pub/GNOME/sources/gtk+/3.0/
  http://library.gnome.org/devel/gtk3/3.0/

I know we can't get rid of GTK+ 2.x support entirely, but it would be good to move to GTK+ 3.x where possible.  Ideally one could build and run with an entirely GTK+ 3.x stack.  This may also allow removal of some of the GNOME dependencies that SWT has at present.
Comment 1 Chris Aniszczyk CLA 2011-03-15 14:13:12 EDT
+1, this would be nice
Comment 2 Hicham HAOUARI CLA 2011-09-21 13:55:19 EDT
Is there any progress on this ?
Comment 3 John Arthorne CLA 2011-09-21 14:08:42 EDT
This is not currently in the plan for Eclipse Juno (4.2). Some progress towards this goal is being planned, covered by bug 354978.
Comment 4 Alexander Kurtakov CLA 2011-10-13 11:03:22 EDT
We (Red Hat Eclipse team) plan to look at this port. 
Initial plan is to make swt compile against gtk 2.24 without deprecation
warnings(removed in gtk3) using the following rules:
* there is a suitable replacement for the api in gtk 2.4.1(the minimum version
required by eclipse) - drop it from OS.java and the codepaths elsewhere that
use this OS.* calls. They are always guarded by OS.GTK_VERSION < OS.VERSION( 2,
4, 0) or even older gtk version so we should be pretty safe with this.
* there isn't a suitable replacement in gtk 2.x where x>=4 - make the function
binding dynamic.

Bug reports(patches) will block this one effectively making this bug a tracking
one. If someone wants to help with the effort feel free to say so here.
Comment 5 Alexander Kurtakov CLA 2011-10-14 12:35:49 EDT
Ongoing work rowards building with gtk 2.24 without too many deprecated issues is available in http://fedorapeople.org/gitweb?p=akurtakov/public_git/eclipse.platform.swt.git;a=summary old_gtk_kill branch.
Comment 6 Silenio Quarti CLA 2012-01-20 10:21:00 EST
Hi Alex, thanks for your patches. I am going to review them. Please could take a look at http://wiki.eclipse.org/Development_Resources/Handling_Git_Contributions and add the disclaimer in step four here.
Comment 7 Alexander Kurtakov CLA 2012-01-20 10:23:59 EST
(In reply to comment #6)
> Hi Alex, thanks for your patches. I am going to review them. Please could take
> a look at
> http://wiki.eclipse.org/Development_Resources/Handling_Git_Contributions and
> add the disclaimer in step four here.

I wrote all this code and have the rights to contribute it to Eclipse under the eclipse.org web site terms of use. 

It's enough to do it once here, right? Or I should do it in every bz ?
Comment 8 John Arthorne CLA 2012-01-20 10:37:53 EST
(In reply to comment #7)

> I wrote all this code and have the rights to contribute it to Eclipse under the
> eclipse.org web site terms of use. 
> 
> It's enough to do it once here, right? Or I should do it in every bz ?

I think just doing it once is fine, since you are doing a large number of small commits as part of this single plan item. We may move to Gerrit later in the year, in which case we'd get rid of this awkward process.
Comment 9 John Arthorne CLA 2013-10-27 17:04:00 EDT
Can we mark this fixed now?
Comment 10 Arun Thondapu CLA 2013-11-15 12:15:24 EST
(In reply to John Arthorne from comment #9)
> Can we mark this fixed now?

I think we should keep this open as we're still in the process of fixing some bugs for GTK+ 3. We can probably close this bug after the Luna release (by which time the GTK+ 3 port should be supported fully and all the pending bugs this bug is dependent on should get resolved).
Comment 11 Lado Kumsiashvili CLA 2013-12-10 14:41:07 EST
Created attachment 238221 [details]
N20131207 is not usable under gnome 3.10

I have downloaded today eclipse-SDK-N20131207-1500-linux-gtk-x86_64.tar.gz to test how the gtk3 support works. But the windows within eclipse remain white and the text is also not viewable as seen on the attachment. What can it be?
Comment 12 Lakshmi P Shanmugam CLA 2013-12-11 02:34:41 EST
(In reply to Lado Kumsiashvili from comment #11)
> Created attachment 238221 [details]
> N20131207 is not usable under gnome 3.10
> 
> I have downloaded today eclipse-SDK-N20131207-1500-linux-gtk-x86_64.tar.gz
> to test how the gtk3 support works. But the windows within eclipse remain
> white and the text is also not viewable as seen on the attachment. What can
> it be?
It seems to be an issue when running with the newest GTK 3.10 (pls see Bug 423420).
Comment 13 Arun Thondapu CLA 2014-06-11 09:22:44 EDT
(In reply to Arun Thondapu from comment #10)
> (In reply to John Arthorne from comment #9)
> > Can we mark this fixed now?
> 
> I think we should keep this open as we're still in the process of fixing
> some bugs for GTK+ 3. We can probably close this bug after the Luna release
> (by which time the GTK+ 3 port should be supported fully and all the pending
> bugs this bug is dependent on should get resolved).

I'm marking this bug as fixed now as this was the plan item for GTK+ 3 support which is enabled by default in Luna for GTK+ versions prior to 3.10. There is still some pending work to be completed for the GTK+ 3 port, primarily to fix issues that have cropped up in more recent GTK+ versions like 3.10 and later. All the outstanding GTK+ 3 related bugs will now be targeted for Luna SR1 (4.4.1).