ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] version script for glib2 [2]
@ 2005-09-04  1:31 Alexey Tourbin
  2005-09-04 14:10 ` Dmitry V. Levin
  0 siblings, 1 reply; 3+ messages in thread
From: Alexey Tourbin @ 2005-09-04  1:31 UTC (permalink / raw)
  To: devel


[-- Attachment #1.1: Type: text/plain, Size: 4248 bytes --]

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

$ 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 

Вроде всё правильно.

[-- Attachment #1.2: glib2-2.8-glib.map --]
[-- Type: text/plain, Size: 454 bytes --]

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:
	_*;
};

[-- Attachment #1.3: glib2-2.8-gobject.map --]
[-- Type: text/plain, Size: 115 bytes --]

GLIB_2.8 {
    global:
	g_date_get_type;
	g_object_add_toggle_ref;
	g_object_remove_toggle_ref;
    local:
	_*;
};

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [devel] version script for glib2 [2]
  2005-09-04  1:31 [devel] version script for glib2 [2] Alexey Tourbin
@ 2005-09-04 14:10 ` Dmitry V. Levin
  2005-09-04 15:21   ` [devel] " Alexey Tourbin
  0 siblings, 1 reply; 3+ messages in thread
From: Dmitry V. Levin @ 2005-09-04 14:10 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 519 bytes --]

On Sun, Sep 04, 2005 at 05:31:37AM +0400, Alexey Tourbin wrote:
> На всякий случай ещё раз кратко фиксирую, "что нужно делать".

На всякий случай напоминаю, что пока upstream не прозрел, это нужно делать
перед упаковкой каждой новой версии.

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

Даже если эти надежды не оправдаются, ничего страшного не произойдёт.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [devel] Re: version script for glib2 [2]
  2005-09-04 14:10 ` Dmitry V. Levin
@ 2005-09-04 15:21   ` Alexey Tourbin
  0 siblings, 0 replies; 3+ messages in thread
From: Alexey Tourbin @ 2005-09-04 15:21 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1821 bytes --]

On Sun, Sep 04, 2005 at 06:10:13PM +0400, Dmitry V. Levin wrote:
> On Sun, Sep 04, 2005 at 05:31:37AM +0400, Alexey Tourbin wrote:
> > На всякий случай ещё раз кратко фиксирую, "что нужно делать".
> На всякий случай напоминаю, что пока upstream не прозрел, это нужно делать
> перед упаковкой каждой новой версии.

И даже если прозреет. :)

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

В release announcement обычно пишут, какие новые функции добавлены.
http://mail.gnome.org/archives/gnome-announce-list/2005-August/msg00048.html
http://mail.gnome.org/archives/gnome-announce-list/2005-August/msg00073.html

Апстрим по-своему прав, потому что использует libtool, а libtool
поддерживает только --export-symbols FILE и --export-symbols REGEX,
что апстримом и используется.

Я как-будто краем глаза в google search видел, что libtool-2.0
поддерживает --version-script.  А сейчас он только генерить его умеет:

/usr/bin/libtool-1.5:
   212  archive_expsym_cmds="\$echo \\\"{ global:\\\" > \$output_objdir/\$libname.ver~
   213    cat \$export_symbols | sed -e \\\"s/\\\\(.*\\\\)/\\\\1;/\\\" >> \$output_objdir/\$libname.ver~
   214    \$echo \\\"local: *; };\\\" >> \$output_objdir/\$libname.ver~
   215            \$CC -shared \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib"

Ну вот нафига так делать?  Почему генерат делать умеет, а нормальный
version-script брать не умеет?  Эти GNU'тые поделия отчего-то меня
иногда очень раздражают.  По-моему, это не я выпендриваюсь, а libtool
выпендривается.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2005-09-04 15:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-09-04  1:31 [devel] version script for glib2 [2] Alexey Tourbin
2005-09-04 14:10 ` Dmitry V. Levin
2005-09-04 15:21   ` [devel] " Alexey Tourbin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git