On Mon, Sep 05, 2005 at 01:06:22AM +0400, Alexey Tourbin wrote: > $ rpmsymver /var/cache/apt/archives/libgtk+2_2.6.7-alt1_i586.rpm /var/cache/apt/archives/libgtk+2_2.8.3-alt1_i586.rpm > --- libgtk+2_2.6.7-alt1_i586.rpm/usr/lib/libgdk-x11-2.0.so.0.sym 2005-09-05 00:53:01 +0400 > +++ libgtk+2_2.8.3-alt1_i586.rpm/usr/lib/libgdk-x11-2.0.so.0.sym 2005-09-05 00:53:01 +0400 > @@ -12,2 +12,7 @@ > T gdk_byte_order_get_type > +T gdk_cairo_create > +T gdk_cairo_rectangle > +T gdk_cairo_region > +T gdk_cairo_set_source_color > +T gdk_cairo_set_source_pixbuf > T gdk_cap_style_get_type Далее нужно проверить, какие изменения были сделаны в 2.8.1-2.8.3, то есть достаточно ли будет одного интерфейса для 2.8. $ diff -abBpruw gtk+-2.8.0 gtk+-2.8.1 >2.8.0-2.8.1.diff $ diff -abBpruw gtk+-2.8.1 gtk+-2.8.2 >2.8.1-2.8.2.diff $ diff -abBpruw gtk+-2.8.2 gtk+-2.8.3 >2.8.2-2.8.3.diff Список новых функций помещаем в файл fun: $ head fun gdk_cairo_create gdk_cairo_rectangle gdk_cairo_region gdk_cairo_set_source_color gdk_cairo_set_source_pixbuf gdk_cursor_get_image gdk_cursor_new_from_name gdk_display_warp_pointer gdk_pixmap_impl_x11_get_type gdk_screen_get_rgba_colormap $ Ищем упоминание этих функций в диффах: $ grepdiff -H -f fun 2.8.?-2.8.?.diff |grep -v 'html$' 2.8.0-2.8.1.diff:gtk+-2.8.0/ChangeLog 2.8.0-2.8.1.diff:gtk+-2.8.0/docs/reference/gdk-pixbuf/html/gdk-pixbuf.devhelp 2.8.0-2.8.1.diff:gtk+-2.8.0/gtk/gtkiconview.c 2.8.0-2.8.1.diff:gtk+-2.8.0/gtk/gtksettings.c 2.8.1-2.8.2.diff:gtk+-2.8.1/docs/reference/gdk-pixbuf/html/gdk-pixbuf.devhelp 2.8.2-2.8.3.diff:gtk+-2.8.2/ChangeLog 2.8.2-2.8.3.diff:gtk+-2.8.2/docs/reference/gdk-pixbuf/html/gdk-pixbuf.devhelp 2.8.2-2.8.3.diff:gtk+-2.8.2/gdk/x11/gdkcursor-x11.c 2.8.2-2.8.3.diff:gtk+-2.8.2/gtk/gtksettings.c $ Далее последовательно проверяем эти куски, напр: $ filterdiff -i gtk+-2.8.0/gtk/gtkiconview.c 2.8.0-2.8.1.diff --- gtk+-2.8.0/gtk/gtkiconview.c 2005-07-11 13:14:04 +0000 +++ gtk+-2.8.1/gtk/gtkiconview.c 2005-08-20 20:16:34 +0000 @@ -172,6 +173,12 @@ struct _GtkIconViewPrivate GtkTreeRowReference *dest_item; GtkIconViewDropPosition dest_pos; + /* scroll to */ + GtkTreeRowReference *scroll_to_path; + gfloat scroll_to_row_align; + gfloat scroll_to_col_align; + guint scroll_to_use_align : 1; + guint source_set : 1; guint dest_set : 1; guint reorderable : 1; ... $ Видно, что этот кусок никак не задевает ABI, хотя в нём и встречаются упоминания некоторых новых функций: $ filterdiff -i gtk+-2.8.0/gtk/gtkiconview.c 2.8.0-2.8.1.diff |grep -f fun + gtk_icon_view_scroll_to_path (icon_view, path, @@ -1712,6 +1745,7 @@ gtk_icon_view_set_cursor (GtkIconView @@ -1733,7 +1767,11 @@ gtk_icon_view_set_cursor (GtkIconView gtk_icon_view_set_cursor_item (icon_view, item, cell_pos); + gtk_icon_view_scroll_to_path (icon_view, path, @@ -3917,15 +3955,33 @@ gtk_icon_view_scroll_to_path (GtkIconVie $ Проверка других кусков показывает, что они тоже никак не задевают ABI. Значит, отдельных интерфейсов для 2.8.{1,2,3} не нужно.