[devel] Re: version script for libgtk+2

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пт Сен 9 12:33:31 MSD 2005


On Fri, Sep 09, 2005 at 08:24:19AM +0400, Alexey Tourbin wrote:
> Проверка других кусков показывает, что они тоже никак не задевают ABI.
> Значит, отдельных интерфейсов для 2.8.{1,2,3} не нужно.

Может, мне сделать NMU?  Какие библиотеки ещё стоит посмотреть?
Лучше подгадать к "значимому" релизу, т.е. напр. 2.6.7 -> 2.8.0.

--- RPM/SPECS/libgtk2.spec-	2005-08-29 21:07:45 +0000
+++ RPM/SPECS/libgtk2.spec	2005-09-09 05:15:50 +0000
@@ -16,6 +16,11 @@
 
 Icon: gtk+-logo.xpm
 Source: ftp://ftp.gnome.org/pub/gnome/sources/%_name/%ver_major/%_name-%version.tar.bz2
+
+Source1: %name-2.8-gdk.map
+Source2: %name-2.8-gdk_pixbuf.map
+Source3: %name-2.8-gtk.map
+
 Patch: gtk+-2.6.5-Lai-gtkfilesel.patch.bz2
 Patch1: gtk+-2.2.4-Lai-images_types-2004.04.04.patch.gz
 
@@ -104,6 +109,9 @@
 
 %prep
 %setup -q -n %_name-%version
+%__install -p -m644 %SOURCE1 gdk/symver.map
+%__install -p -m644 %SOURCE2 gdk-pixbuf/symver.map
+%__install -p -m644 %SOURCE3 gtk/symver.map
 %patch -p1
 %patch1 -p1
 
@@ -119,7 +127,7 @@
     --enable-fbmanager
 
 # SMP-incompatible build
-%make
+%make LIBTOOL_EXPORT_OPTIONS=-Wl,--version-script=symver.map
 
 %install
 %makeinstall
End of patch

Получается вот что (по пакету libgtk+2):

PreReq: glib2 >= 2.7.1
Requires: libglib-2.0.so.0
Provides: libgdk-x11-2.0.so.0(GDK_2.8),
	libgdk-x11-2.0.so.0(GDK_PRIVATE),
	libgdk_pixbuf-2.0.so.0(GDK_2.8),
	libgtk-x11-2.0.so.0(GTK_2.8)

Это уже собрано в среде с libglib-2.0.so.0(GLIB_2.8).  Т.к. зависимость
на новый интерфейc glib2 не проставилась, то, возможно, вручную
проставленная зависимость на glib2 >= 2.7.1 является необоснованной.
----------- следующая часть -----------
GDK_PRIVATE {
    global:
	gdk_*_libgtk_only;
    local:
	_*;
};
GDK_2.8 {
    global:
	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;
	gdk_screen_get_rgba_visual;
	gdk_window_move_region;
	gdk_window_set_urgency_hint;
	gdk_x11_display_get_user_time;
	gdk_x11_display_set_cursor_theme;
	gdk_x11_window_move_to_current_desktop;
};
----------- следующая часть -----------
GDK_2.8 {
    global:
	gdk_pixbuf_simple_anim_add_frame;
	gdk_pixbuf_simple_anim_get_type;
	gdk_pixbuf_simple_anim_iter_get_type;
	gdk_pixbuf_simple_anim_new;
    local:
	_*;
};
----------- следующая часть -----------
GTK_2.8 {
    global:
	gtk_about_dialog_get_wrap_license;
	gtk_about_dialog_set_wrap_license;
	gtk_action_get_accel_closure;
	gtk_dialog_get_response_for_widget;
	gtk_drag_set_icon_name;
	gtk_drag_source_set_icon_name;
	gtk_entry_completion_get_popup_set_width;
	gtk_entry_completion_get_popup_single_match;
	gtk_entry_completion_set_popup_set_width;
	gtk_entry_completion_set_popup_single_match;
	gtk_file_chooser_confirmation_get_type;
	gtk_file_chooser_get_do_overwrite_confirmation;
	gtk_file_chooser_set_do_overwrite_confirmation;
	gtk_file_system_get_bookmark_label;
	gtk_file_system_set_bookmark_label;
	gtk_icon_view_create_drag_icon;
	gtk_icon_view_drop_position_get_type;
	gtk_icon_view_enable_model_drag_dest;
	gtk_icon_view_enable_model_drag_source;
	gtk_icon_view_get_cursor;
	gtk_icon_view_get_dest_item_at_pos;
	gtk_icon_view_get_drag_dest_item;
	gtk_icon_view_get_item_at_pos;
	gtk_icon_view_get_reorderable;
	gtk_icon_view_get_visible_range;
	gtk_icon_view_scroll_to_path;
	gtk_icon_view_set_cursor;
	gtk_icon_view_set_drag_dest_item;
	gtk_icon_view_set_reorderable;
	gtk_icon_view_unset_model_drag_dest;
	gtk_icon_view_unset_model_drag_source;
	gtk_image_clear;
	gtk_menu_bar_get_child_pack_direction;
	gtk_menu_bar_get_pack_direction;
	gtk_menu_bar_set_child_pack_direction;
	gtk_menu_bar_set_pack_direction;
	gtk_menu_shell_get_take_focus;
	gtk_menu_shell_set_take_focus;
	gtk_pack_direction_get_type;
	gtk_scrolled_window_get_hscrollbar;
	gtk_scrolled_window_get_vscrollbar;
	gtk_size_group_get_ignore_hidden;
	gtk_size_group_set_ignore_hidden;
	gtk_stock_set_translate_func;
	gtk_text_iter_backward_visible_line;
	gtk_text_iter_backward_visible_lines;
	gtk_text_iter_forward_visible_line;
	gtk_text_iter_forward_visible_lines;
	gtk_tool_button_get_icon_name;
	gtk_tool_button_set_icon_name;
	gtk_tree_row_reference_get_model;
	gtk_tree_view_column_queue_resize;
	gtk_tree_view_get_visible_range;
	gtk_window_get_urgency_hint;
	gtk_window_present_with_time;
	gtk_window_set_urgency_hint;
    local:
	_*;
};
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20050909/71494871/attachment-0001.bin>


Подробная информация о списке рассылки Devel