Project

General

Profile

Actions

Bug #6555

closed

gtk3 does not appear to be usable

Added by Alex Viskovatoff over 5 years ago. Updated over 5 years ago.

Status:
Resolved
Priority:
Normal
Category:
OI-Userland
Target version:
Start date:
2016-01-14
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

gtk3 is now delivered by hipster. As far as I am aware, no hipster packages use this library yet. One candidate for use of gtk3 is recent versions of Transmission, the current version of which is 2.84. I built this version of Transmission against the gtk3 at hipster using the userland Makefile available here:

https://github.com/herzen/oi-userland/blob/c53efaba4a3cf6ad1d809ea73fb1751d94834ab5/components/transmission/Makefile

I also took Alexander Pyhalov's patches to gtk3 and its dependencies and created specs using them at SFE. Using the resulting packages, I built Transmission 2.84 on Solaris 11.3. The reason I am submitting this issue is to report that the resulting transmission-gtk binary is considerably more stable on Solaris than it is on hipster. This is even though at SFE, we keep all the system-provided gtk-related packages, and place the libraries we build in /usr/g++/lib.

On Solaris, Transmission 2.84 crashes for reasons yet to be determined. However, it starts, and only crashes when you try to open a window (or rather, close a window you have opened). This appears to involve some kind of permission rules conflict between gtk2 and gtk3. However, running Transmission as root, or (apparently) tweaking gtk desktop settings, makes Transmission reasonably stable and usable. (I am using it right now, but no one else has tested it yet, and I do not understand what the issue involves.)

When I try to start Transmission 2.84 on hipster, it does not even launch (its window never appears), so that the bug is different and does not involve gtk permissions. Also, the same crash results even if I run Transmission as root. Here is the error reported:

@# transmission-gtk &
[1] 4131

  1. (transmission-gtk:4131): GLib-GObject-WARNING **: The property GtkSettings:gtk-menu-images is deprecated and shouldn't be used anymore. It will be removed in a future version.

(transmission-gtk:4131): GLib-GObject-WARNING **: The property GtkWidget:margin-left is deprecated and shouldn't be used anymore. It will be removed in a future version.

(transmission-gtk:4131): GLib-GObject-WARNING **: The property GtkAlignment:xalign is deprecated and shouldn't be used anymore. It will be removed in a future version.

(transmission-gtk:4131): GLib-GObject-WARNING **: The property GtkAlignment:yalign is deprecated and shouldn't be used anymore. It will be removed in a future version.

(transmission-gtk:4131): GLib-GObject-WARNING **: The property GtkCellRendererPixbuf:stock-id is deprecated and shouldn't be used anymore. It will be removed in a future version.

  • (transmission-gtk:4131): WARNING **: Failed to create proxy for org.freedesktop.Notifications

(transmission-gtk:4131): Gdk-ERROR **: The program 'transmission-gtk' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadLength (poly request too large or internal Xlib length erro'.
(Details: serial 1298 error_code 16 request_code 131 (XInputExtension) minor_code 51)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the GDK_SYNCHRONIZE environment
variable to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)

change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)@

My proposal is that others build this version of Transmission on hipster and try to fix this bug. (Version 2.60 built against gtk3 exhibits the same behavior.) Attacking this problem is as good a way to get gtk3 up and running on hipster as any I know of. And I believe that this version of Transmission built against the same versions of gtk-related libraries and patches on Solaris more or less working is useful information.

(Actually, not exactly the same versions. hipster is at glib2 2.43.4, whereas I used 2.44.1 for SFE. So it is probably worth bumping glib2 on hipster.)

Actions #1

Updated by Alexander Pyhalov over 5 years ago

I've build Transmission 2.60 against GTK 3. It seems to be working, however, perhaps something is wrong with theme, one icon is missing.

Actions #2

Updated by Alexander Pyhalov over 5 years ago

After integration of https://github.com/OpenIndiana/oi-userland/pull/1646 and https://github.com/OpenIndiana/oi-userland/pull/1647 transmission 2.84 looks almost sane, however there's issue with missing icon in all chooser dialogs. The same issue can be seen in Solaris 11 version, but there "missing" icon is not so ugly.

Actions #3

Updated by Alexander Pyhalov over 5 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100
  • Difficulty changed from Hard to Medium

There are some issues with current GTK themes. They don't contain all necessary icons. It seems that by default GTK3 searches icons in gnome-icon-theme-symbolic. So, until nimbus GTK3 theme and default Gnome themes are properly updated, we deliver some crafted files in gnome-icon-theme-symbolic and make GTK3 dependent on gnome-icon-theme-symbolic.

The fix was tested on sample GTK programs and Transmission 2.84.

Actions

Also available in: Atom PDF