Re: More cdebconf patches
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
> Looking at it, it seems the following part of the diff is strange
> (src/modules/frontend/gtk/screenshot.c): | width =
> gdk_window_get_width(gdk_window); | height =
> gdk_window_get_height(gdk_window); | +#if GTK_CHECK_VERSION(3,0,0)
> | pixbuf = gdk_pixbuf_get_from_drawable( | NULL /*
> allocate a new pixbuf */, gdk_window, |
> gdk_colormap_get_system(), 0 /* src_x */, 0 /* src_y */, | +#else |
> + pixbuf = gdk_pixbuf_get_from_window(gdk_window, | +#endif |
> 0 /* dest_x */, 0 /* dest_y */, width, height);
>
> Contrary to other hunks, the if/else seems inverted: the else
> (gtk2) bit is getting the new code while the if (gtk3) gets the old
> one. nm seems to confirm this:
> /usr/lib/x86_64-linux-gnu/libgtk-3.so → U
> gdk_pixbuf_get_from_window
> /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so → U
> gdk_pixbuf_get_from_drawable
Indeed it is inverted. And with the screenshot feature not getting
built for deb, I managed to miss it. Combined with the fact I've had
to disable -Werror because of some gcc warning flags.
I'll try to see if I can fix the warnings, unfortunately we use
asprintf quite a lot.
> The black screen seems easily explained by some missing symbols,
> leading to a UI crash (nothing shows up when grepping for gtk in
> /proc/*/maps).
Actually, what happens is that dlopen() fails to load the plugin
because all symbols cannot be resolved (been there with my tests). But
that's more informative.
> Inverting the logic fixes the black screen with gtk2, so I'm about
> to commit it.
Thanks, that was definitely the right thing to do, as it would
otherwise break gtk2 as well.
> Going back to a gtk3 build, I'm again getting a black screen,
> because something is trying to open libGL.so.1; the only hit in the
> temporary build tree is libepoxy (unsurprisingly, since that's an
> OpenGL wrapper).
Oh dear. that sounds... big. But unsurprising, with dlopen failing,
just like in the previous case.
> I'll be poking the libgtk-3-0-udeb bug report to see if we could
> do without pulling libepoxy/libGL…
Well, that's at least one thing this patch will have been useful to
find out and try to track.
Thanks a lot for the prompt testing and bug fixing.
Regis
Reply to: