After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 612484 - Does not compile with -DGSEAL_ENABLED
Does not compile with -DGSEAL_ENABLED
Status: RESOLVED FIXED
Product: vte
Classification: Core
Component: general
0.23.x
Other Linux
: Normal normal
: ---
Assigned To: VTE Maintainers
VTE Maintainers
: 621489 (view as bug list)
Depends on: 593671 627764
Blocks: 585391
 
 
Reported: 2010-03-10 20:32 UTC by André Klapper
Modified: 2010-08-24 13:14 UTC
See Also:
GNOME target: 3.0
GNOME version: 2.29/2.30


Attachments
0001-use-accessors-for-gtk-objects.patch (34.22 KB, patch)
2010-05-30 20:33 UTC, Saleem Abdulrasool
none Details | Review
0001-use-accessors-for-gtk-object.patch (33.87 KB, patch)
2010-05-30 21:52 UTC, Saleem Abdulrasool
none Details | Review
0002-use-accesors-for-setting-adjustment-values.patch (2.53 KB, patch)
2010-05-30 21:52 UTC, Saleem Abdulrasool
none Details | Review
0001-use-accessors-for-gtk-objects.patch (30.83 KB, patch)
2010-05-31 00:24 UTC, Saleem Abdulrasool
none Details | Review
simple patch (13.19 KB, patch)
2010-06-17 19:29 UTC, Richard Hughes
none Details | Review
additional patch (42.80 KB, patch)
2010-07-02 23:42 UTC, Matthias Clasen
none Details | Review

Description André Klapper 2010-03-10 20:32:37 UTC
This module does not build with -DGSEAL_ENABLED.
See http://live.gnome.org/GnomeGoals/UseGseal .

Note that maybe this report cannot be fixed yet, as GTK+ still misses some accessor functions (see bug 588389, bug 597610) needed for sealing.
Also see http://live.gnome.org/GTK%2B/3.0/PendingSealings for current status.

The jhbuild output posted here of course only lists the very first error when trying to compile.

vte.c: In function ‘_vte_invalidate_cells’:
vte.c:351: error: ‘GtkObject’ has no member named ‘flags’
vte.c:351: error: ‘GtkObject’ has no member named ‘flags’
vte.c:428: error: ‘GtkWidget’ has no member named ‘window’
vte.c: In function ‘_vte_invalidate_all’:
vte.c:468: error: ‘GtkObject’ has no member named ‘flags’
vte.c:468: error: ‘GtkObject’ has no member named ‘flags’
vte.c:481: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:482: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:492: error: ‘GtkWidget’ has no member named ‘window’
vte.c: In function ‘_vte_invalidate_cell’:
vte.c:649: error: ‘GtkObject’ has no member named ‘flags’
vte.c:649: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘_vte_invalidate_cursor_once’:
vte.c:702: error: ‘GtkObject’ has no member named ‘flags’
vte.c:702: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_set_cursor_from_regex_match’:
vte.c:1155: error: ‘GtkObject’ has no member named ‘flags’
vte.c:1174: error: ‘GtkWidget’ has no member named ‘window’
vte.c: In function ‘vte_terminal_emit_adjustment_changed’:
vte.c:1992: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:1993: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:1997: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:2005: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:2006: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:2010: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:2026: error: ‘GtkAdjustment’ has no member named ‘value’
vte.c:2033: error: ‘GtkAdjustment’ has no member named ‘value’
vte.c: In function ‘_vte_terminal_adjust_adjustments_full’:
vte.c:2098: error: ‘GtkAdjustment’ has no member named ‘step_increment’
vte.c:2099: error: ‘GtkAdjustment’ has no member named ‘step_increment’
vte.c:2103: error: ‘GtkAdjustment’ has no member named ‘step_increment’
vte.c:2109: error: ‘GtkAdjustment’ has no member named ‘page_size’
vte.c:2110: error: ‘GtkAdjustment’ has no member named ‘page_size’
vte.c:2114: error: ‘GtkAdjustment’ has no member named ‘page_size’
vte.c:2120: error: ‘GtkAdjustment’ has no member named ‘page_increment’
vte.c:2121: error: ‘GtkAdjustment’ has no member named ‘page_increment’
vte.c:2126: error: ‘GtkAdjustment’ has no member named ‘page_increment’
vte.c: In function ‘vte_terminal_scroll_lines’:
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:2147: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c: In function ‘_vte_terminal_set_pointer_visible’:
vte.c:2390: error: ‘GtkObject’ has no member named ‘flags’
vte.c:2397: error: ‘GtkWidget’ has no member named ‘window’
vte.c:2407: error: ‘GtkWidget’ has no member named ‘window’
vte.c:2412: error: ‘GtkWidget’ has no member named ‘window’
vte.c: In function ‘vte_terminal_set_color_internal’:
vte.c:2454: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_im_reset’:
vte.c:3578: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_process_incoming’:
vte.c:4030: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘_vte_terminal_visible_beep’:
vte.c:4662: error: ‘GtkObject’ has no member named ‘flags’
vte.c:4665: error: ‘GtkWidget’ has no member named ‘window’
vte.c:4666: error: ‘GtkWidget’ has no member named ‘style’
vte.c:4666: error: ‘GtkWidget’ has no member named ‘state’
vte.c:4669: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:4669: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c: In function ‘vte_terminal_key_press’:
vte.c:4849: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_key_release’:
vte.c:5164: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_match_hilite’:
vte.c:5712: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:5713: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c: In function ‘vte_terminal_autoscroll’:
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6774: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:6788: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c: In function ‘vte_terminal_motion_notify’:
vte.c:6856: error: ‘GtkObject’ has no member named ‘flags’
vte.c:6856: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_button_press’:
vte.c:6963: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_focus_in’:
vte.c:7147: error: ‘GtkObject’ has no member named ‘flags’
vte.c:7153: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_focus_out’:
vte.c:7174: error: ‘GtkObject’ has no member named ‘flags’
vte.c:7179: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_enter’:
vte.c:7207: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_leave’:
vte.c:7224: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_apply_metrics’:
vte.c:7335: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_set_font_full_internal’:
vte.c:7416: error: ‘GtkWidget’ has no member named ‘style’
vte.c:7456: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_handle_scroll’:
vte.c:7634: error: ‘GtkAdjustment’ has no member named ‘value’
vte.c:7639: error: ‘GtkObject’ has no member named ‘flags’
vte.c:7639: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_init’:
vte.c:7895: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_size_allocate’:
vte.c:8094: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:8095: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:8096: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:8099: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:8134: error: ‘GtkObject’ has no member named ‘flags’
vte.c:8135: error: ‘GtkWidget’ has no member named ‘window’
vte.c: In function ‘vte_terminal_unrealize’:
vte.c:8218: error: ‘GtkObject’ has no member named ‘flags’
vte.c:8223: error: ‘GtkWidget’ has no member named ‘window’
vte.c:8225: error: ‘GtkWidget’ has no member named ‘style’
vte.c:8227: error: ‘GtkWidget’ has no member named ‘window’
vte.c:8228: error: ‘GtkWidget’ has no member named ‘window’
vte.c:8229: error: ‘GtkWidget’ has no member named ‘window’
vte.c:8253: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_realize’:
vte.c:8519: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:8520: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:8521: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:8522: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:8544: error: ‘GtkWidget’ has no member named ‘window’
vte.c:8548: error: ‘GtkWidget’ has no member named ‘window’
vte.c:8551: error: ‘GtkObject’ has no member named ‘flags’
vte.c:8577: error: ‘GtkWidget’ has no member named ‘window’
vte.c:8612: error: ‘GtkWidget’ has no member named ‘style’
vte.c:8612: error: ‘GtkWidget’ has no member named ‘style’
vte.c:8612: error: ‘GtkWidget’ has no member named ‘window’
vte.c: In function ‘vte_terminal_paint_area’:
vte.c:10360: error: ‘GtkObject’ has no member named ‘flags’
vte.c:10370: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:10379: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c: In function ‘vte_terminal_paint_cursor’:
vte.c:10427: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_paint’:
vte.c:10631: error: ‘GtkWidget’ has no member named ‘window’
vte.c:10655: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:10662: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:10663: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c: In function ‘vte_terminal_expose’:
vte.c:10712: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c:10713: error: ‘GtkWidget’ has no member named ‘allocation’
vte.c: In function ‘vte_terminal_scroll’:
vte.c:10779: error: ‘GtkAdjustment’ has no member named ‘page_increment’
vte.c:10779: error: ‘GtkAdjustment’ has no member named ‘page_increment’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘page_size’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘page_size’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘page_size’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘upper’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘page_size’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c:10825: error: ‘GtkAdjustment’ has no member named ‘lower’
vte.c: In function ‘vte_terminal_im_append_menuitems’:
vte.c:12456: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_background_update’:
vte.c:12470: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_set_cursor_blinks_internal’:
vte.c:12841: error: ‘GtkObject’ has no member named ‘flags’
vte.c:12842: error: ‘GtkObject’ has no member named ‘flags’
vte.c: In function ‘vte_terminal_emit_pending_signals’:
vte.c:13938: error: ‘GtkWidget’ has no member named ‘window’
vte.c:13939: error: ‘GtkWidget’ has no member named ‘window’
vte.c:13950: error: ‘GtkWidget’ has no member named ‘window’
vte.c:13951: error: ‘GtkWidget’ has no member named ‘window’
vte.c: In function ‘update_regions’:
vte.c:14071: error: ‘GtkObject’ has no member named ‘flags’
vte.c:14071: error: ‘GtkObject’ has no member named ‘flags’
vte.c:14097: error: ‘GtkWidget’ has no member named ‘window’
vte.c:14098: error: ‘GtkWidget’ has no member named ‘window’
make[3]: *** [libvte_la-vte.lo] Error 1
make[3]: Leaving directory `/home/andre/svn-gnome/vte/src'
make[2]: *** [all] Error 2
Comment 1 André Klapper 2010-05-03 14:12:03 UTC
Currently configure.in says
  GTK_REQUIRED=2.14.0

What is an acceptable recent version to base a partial patch on? What should be using
  #if GTK_CHECK_VERSION (2, x, y)
?
Comment 2 Christian Persch 2010-05-03 15:51:12 UTC
First, I'd hate to raise the gtk req just so we can use accessors. It's fine to raise if using a new *feature*, but this isn't.

I would suggest to not use any #if GTK_CHECK_VERSION checks in the code itself at all, but just to always use the new accessor. Then add a gtk-compat.h header that #defines these new accessors to the old direct accesses if the gtk version doesn't provide them. That's how I handled this in e.g. gnome-games.

Also, in case the new accessor is called multiple times in one function, I'd suggest to introduce a new local variable holding the result, and use that. (Since the real new accessors introduce type check overhead.)
Comment 3 Saleem Abdulrasool 2010-05-30 20:33:42 UTC
Created attachment 162341 [details] [review]
0001-use-accessors-for-gtk-objects.patch

This is a partial fix.  This patch only fixes the interactions with GTK+ but does not allow VTE to build as internally, vte tries to access sealed (deprecated) fields.
Comment 4 Saleem Abdulrasool 2010-05-30 20:37:20 UTC
Minor correction, it will allow it to build, but, not with -DDISABLE_DEPRECATED.
Comment 5 Christian Persch 2010-05-30 21:12:35 UTC
+ * This is free software; you can redistribute it and/or modify it under the
+ * terms of the GNU General Purpose License as published by the Free Software
+ * Foundation; either version 2 of the license, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Seems to be some licence confusion here; there's no "General Purpose License"; 2nd paragraph says GPL while third says LGPL. For vte, this file needs to be LGPL2.1+.

The GtkAdjustment handling needs special consideration, since using the accessors instead of setting the fields directly and then using value_changed might introduce different behaviour and/or double signal emissions. (I think there's gtk discussions on this ongoing.) Can you separate these changes out into a separate commit? (should be easy using "git add -p").
Comment 6 Saleem Abdulrasool 2010-05-30 21:51:32 UTC
(In reply to comment #5)
> + * This is free software; you can redistribute it and/or modify it under the
> + * terms of the GNU General Purpose License as published by the Free Software
> + * Foundation; either version 2 of the license, or (at your option) any later
> + * version.
> + *
> + * This program is distributed in the hope that it will be useful, but WITHOUT
> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
> + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
> + * more details.
> + *
> + * You should have received a copy of the GNU Library General Public License
> + * along with this program; if not, write to the Free Software Foundation,
> + * Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> 
> Seems to be some licence confusion here; there's no "General Purpose License";
> 2nd paragraph says GPL while third says LGPL. For vte, this file needs to be
> LGPL2.1+.

Copy and paste is hard :-p.  Hopefully its correct this time (copy-and-pasted it from vte.h).

> The GtkAdjustment handling needs special consideration, since using the
> accessors instead of setting the fields directly and then using value_changed
> might introduce different behaviour and/or double signal emissions. (I think
> there's gtk discussions on this ongoing.) Can you separate these changes out
> into a separate commit? (should be easy using "git add -p").

Ive split it into two patches, the second one simply is for the gtk_adjustment_set_*, everything else remains in the first patch.  If I understand your comment correctly, the issue is simply on the set, but the gets should be fine.
Comment 7 Saleem Abdulrasool 2010-05-30 21:52:09 UTC
Created attachment 162347 [details] [review]
0001-use-accessors-for-gtk-object.patch
Comment 8 Saleem Abdulrasool 2010-05-30 21:52:49 UTC
Created attachment 162348 [details] [review]
0002-use-accesors-for-setting-adjustment-values.patch
Comment 9 Saleem Abdulrasool 2010-05-31 00:24:31 UTC
Created attachment 162353 [details] [review]
0001-use-accessors-for-gtk-objects.patch

*sigh* The change broke the vte test app.  It works again with this version of the patch.
Comment 10 André Klapper 2010-06-07 17:59:56 UTC
ping - can this soon get a review/commit please?
Comment 11 Behdad Esfahbod 2010-06-10 17:34:27 UTC
ChPe, any chance you can review / commit these?
Comment 12 Christian Persch 2010-06-13 22:00:47 UTC
*** Bug 621442 has been marked as a duplicate of this bug. ***
Comment 13 Christian Persch 2010-06-13 22:01:53 UTC
*** Bug 621489 has been marked as a duplicate of this bug. ***
Comment 14 Richard Hughes 2010-06-17 08:52:19 UTC
Ping? This is holding back a gnome-color-manager release. Thanks.
Comment 15 Christian Persch 2010-06-17 13:41:09 UTC
Someone needs to take the time to thoroughly review the patch.

BTW: g-c-m appears to be using vte conditionally only, so it's not a blocker. (And the pc name will be "vte-2.90", not "vte3", in your configure.ac.)
Comment 16 Richard Hughes 2010-06-17 14:26:28 UTC
(In reply to comment #15)
> BTW: g-c-m appears to be using vte conditionally only, so it's not a blocker.
> (And the pc name will be "vte-2.90", not "vte3", in your configure.ac.)

Sure, I added that quick hack so I could continue working on GCM. If you try to use GCM without VTE, it'll crash and burn.
Comment 17 Behdad Esfahbod 2010-06-17 18:52:44 UTC
Richard, can you attach your vte patch?
Comment 18 Richard Hughes 2010-06-17 19:29:12 UTC
Created attachment 163953 [details] [review]
simple patch

Sure, here you go.
Comment 19 Behdad Esfahbod 2010-06-17 19:32:36 UTC
I'm confused.  Is the simple patch enough?  Why is Saleem's patch much more involved then?
Comment 20 Richard Hughes 2010-06-17 20:42:57 UTC
The simple patch gets things compiling with GTK3. The other patch is the better patch as it fixes all the GSEAL issues too. Given the choice, I would go for Saleem's patch.
Comment 21 Javier Jardón (IRC: jjardon) 2010-06-20 22:32:51 UTC
@Behdad:

The Richard patch simply replaces deprecated functions. You need the Saleem patch to use accessor functions instead direct access to class structure, because they will to be removed soon.
Comment 22 André Klapper 2010-06-21 07:40:25 UTC
(In reply to comment #15)
> Someone needs to take the time to thoroughly review the patch.

Does somebody have time for reviewing it this week? We'd like to ship GNOME 2.31.4 with gtk+ 2.90 (and hence with all GSeal issues fixed).
Comment 23 Johannes Schmid 2010-06-27 18:53:24 UTC
This blocks anjuta releases for gtk+-3.0. I assumed having a --with-gtk=3.0 configure switch would mean that this would work.
Comment 24 Johannes Schmid 2010-06-27 18:55:04 UTC
Sorry, for spamming:

Why is the .pc file called vte-2.90 and not vte-3.0? Will this change before the final release?
Comment 25 Matthias Clasen 2010-07-02 23:42:23 UTC
Created attachment 165156 [details] [review]
additional patch

There is quite a bit more to be done on top of the first two patches to make vte actually compile against current GTK+ with GSEAL.
Comment 26 Kristian Høgsberg 2010-07-15 14:09:04 UTC
(In reply to comment #15)
> Someone needs to take the time to thoroughly review the patch.
> 
> BTW: g-c-m appears to be using vte conditionally only, so it's not a blocker.
> (And the pc name will be "vte-2.90", not "vte3", in your configure.ac.)

I took a look through the patches in the bug and added compat macros for the cairo_region_t changes in gtk+ 3.0 as well.  vte now builds against 2.0 and 3.0 here.  Most of this is mechanical changes, the only two subtleties were

  1) Use freeze/thaw notify around setting adjustment limits so we only send out one change.

  2) Set terminal->pvt->screen->scroll_delta = v before gtk_adjustment_set_value() so it has the right value when the signal fires (in vte_terminal_emit_adjustment_changed()).

  3) cairo region doesn't have a gdk_region_get_rectangles() equivalent, but we can emulate it using cairo_region_num_rectangles() and cairo_region_get_rectangle().

The rest is essentiall just a sed script.
Comment 27 André Klapper 2010-07-15 14:12:02 UTC
I was told that both Christian and Behdad currently do not have time to review these extensive patches; if someone "trustworthy" does a thorough review, the patches will be approved for commit, though.

Volunteers? :-P
Comment 28 Kristian Høgsberg 2010-07-15 14:25:47 UTC
(In reply to comment #27)
> I was told that both Christian and Behdad currently do not have time to review
> these extensive patches; if someone "trustworthy" does a thorough review, the
> patches will be approved for commit, though.
> 
> Volunteers? :-P

The patches have been sitting around long enough and they're trivial enough that they don't need to much review to begin with.  I reviewed and added the missing pieces and committed the result.
Comment 29 André Klapper 2010-07-15 14:35:17 UTC
Thanks.

My vte git checkout compiles fine now with -DGSEAL_ENABLE in CFLAGS.
Can we close this bug report as FIXED?
Comment 30 Behdad Esfahbod 2010-07-15 15:07:20 UTC
Thanks krh.