[devel] version script for glib2 [2]

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Сен 4 05:31:37 MSD 2005


На всякий случай ещё раз кратко фиксирую, "что нужно делать".

$ rpm2cpio /var/cache/apt/archives/glib2_2.6.3-alt1_i586.rpm |(mkdir 2.6.3; cd 2.6.3; cpio -idm)
3621 blocks
$ rpm2cpio /var/cache/apt/archives/glib2_2.8.1-alt1_i586.rpm |(mkdir 2.8.1; cd 2.8.1; cpio -idm)
4091 blocks
$ for f in {2.6.3,2.8.1}/usr/lib/*.so*(.); do nm -D $f |awk 'NF==3{print$2,$3}' >${f%%-*}.sym; done
$ ls -1 {2.6.3,2.8.1}/usr/lib/*.sym
2.6.3/usr/lib/libglib.sym
2.6.3/usr/lib/libgmodule.sym
2.6.3/usr/lib/libgobject.sym
2.6.3/usr/lib/libgthread.sym
2.8.1/usr/lib/libglib.sym
2.8.1/usr/lib/libgmodule.sym
2.8.1/usr/lib/libgobject.sym
2.8.1/usr/lib/libgthread.sym
$ diff -U1 -r --exclude='*.so*' {2.6.3,2.8.1}/usr/lib
diff -U1 -r --exclude='*.so*' 2.6.3/usr/lib/libglib.sym 2.8.1/usr/lib/libglib.sym
--- 2.6.3/usr/lib/libglib.sym	2005-09-04 05:17:14 +0400
+++ 2.8.1/usr/lib/libglib.sym	2005-09-04 05:17:14 +0400
@@ -1 +1,2 @@
+T g_access
 T g_allocator_free
@@ -49,3 +50,5 @@
 T g_atomic_int_exchange_and_add
+T g_atomic_int_get
 T g_atomic_pointer_compare_and_exchange
+T g_atomic_pointer_get
 T g_basename
@@ -56,3 +59,5 @@
 T g_build_filename
+T g_build_filenamev
 T g_build_path
+T g_build_pathv
 T g_byte_array_append
@@ -74,2 +79,3 @@
 T g_cache_value_foreach
+T g_chdir
 T g_child_watch_add
@@ -78,2 +84,3 @@
 T g_child_watch_source_new
+T g_chmod
 T g_clear_error
@@ -91,4 +98,6 @@
 T g_convert_with_iconv
+T g_creat
 T g_datalist_clear
 T g_datalist_foreach
+T g_datalist_get_flags
 T g_datalist_id_get_data
@@ -97,2 +106,4 @@
 T g_datalist_init
+T g_datalist_set_flags
+T g_datalist_unset_flags
 T g_dataset_destroy
@@ -164,2 +175,3 @@
 T g_file_read_link
+T g_file_set_contents
 T g_file_test
@@ -183,2 +195,3 @@
 T g_get_home_dir
+T g_get_host_name
 T g_get_language_names
@@ -346,2 +359,3 @@
 T g_list_sort_with_data
+T g_listenv
 T g_locale_from_utf8
@@ -388,2 +402,6 @@
 T g_malloc0
+T g_mapped_file_free
+T g_mapped_file_get_contents
+T g_mapped_file_get_length
+T g_mapped_file_new
 T g_markup_error_quark
@@ -412,2 +430,3 @@
 T g_mkdir
+T g_mkdir_with_parents
 T g_mkstemp
@@ -801,2 +820,3 @@
 T g_try_malloc
+T g_try_malloc0
 T g_try_realloc
@@ -841,2 +861,3 @@
 T g_utf8_collate_key
+T g_utf8_collate_key_for_filename
 T g_utf8_find_next_char
diff -U1 -r --exclude='*.so*' 2.6.3/usr/lib/libgobject.sym 2.8.1/usr/lib/libgobject.sym
--- 2.6.3/usr/lib/libgobject.sym	2005-09-04 05:17:14 +0400
+++ 2.8.1/usr/lib/libgobject.sym	2005-09-04 05:17:14 +0400
@@ -42,2 +42,3 @@
 T g_closure_unref
+T g_date_get_type
 T g_enum_complete_type_info
@@ -55,2 +56,3 @@
 T g_io_condition_get_type
+T g_object_add_toggle_ref
 T g_object_add_weak_pointer
@@ -76,2 +78,3 @@
 T g_object_ref
+T g_object_remove_toggle_ref
 T g_object_remove_weak_pointer
$

Таким образом, видно, что в libglib добавили 21 новую функцию, в
libgobject -- 3 новые функции, libgmodule и libgthread не изменились.

Мы надеемся на то, что новые функции будут добавляться только в minor,
но не в micro версиях (2.8.3 -- major.minor.micro).  Вешаем новые
функции на интерфейс GLIB_2.8.

--- RPM/SPECS/glib2.spec-	2005-08-29 22:20:22 +0000
+++ RPM/SPECS/glib2.spec	2005-09-04 00:56:00 +0000
@@ -14,6 +14,9 @@ Url: ftp://ftp.gnome.org
 
 Source: ftp://ftp.gnome.org/pub/gnome/sources/%_name/%ver_major/%_name-%version.tar.bz2
 
+Source1: %name-2.8-glib.map
+Source2: %name-2.8-gobject.map
+
 Provides: lib%name = %version-%release
 Obsoletes: lib%name
 
@@ -85,6 +88,9 @@ This package provides GLIB static librar
 %prep
 %setup -q -n %_name-%version
 
+%__install -p -m644 %SOURCE1 glib/symver.map
+%__install -p -m644 %SOURCE2 gobject/symver.map
+
 %build
 %configure \
     %{subst_enable static} \
@@ -92,7 +98,7 @@ This package provides GLIB static librar
     --enable-gtk-doc
 %endif
 
-%make_build
+%make_build LIBTOOL_EXPORT_OPTIONS=-Wl,--version-script=symver.map
 #%make -C tests check-TESTS
 
 %install
End of patch

После пересборки появляется:
Provides: libglib2 = 2.8.1-alt1, libglib-2.0.so.0, libglib-2.0.so.0(GLIB_2.8), libgmodule-2.0.so.0, libgobject-2.0.so.0, libgobject-2.0.so.0(GLIB_2.8), libgthread-2.0.so.0 

Вроде всё правильно.
----------- следующая часть -----------
GLIB_2.8 {
    global:
	g_access;
	g_atomic_int_get;
	g_atomic_pointer_get;
	g_build_filenamev;
	g_build_pathv;
	g_chdir;
	g_chmod;
	g_creat;
	g_datalist_get_flags;
	g_datalist_set_flags;
	g_datalist_unset_flags;
	g_file_set_contents;
	g_get_host_name;
	g_listenv;
	g_mapped_file_free;
	g_mapped_file_get_contents;
	g_mapped_file_get_length;
	g_mapped_file_new;
	g_mkdir_with_parents;
	g_try_malloc0;
	g_utf8_collate_key_for_filename;
    local:
	_*;
};
----------- следующая часть -----------
GLIB_2.8 {
    global:
	g_date_get_type;
	g_object_add_toggle_ref;
	g_object_remove_toggle_ref;
    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/20050904/c34e842e/attachment-0001.bin>


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