HEADSUP: json-c SONAME BUMP

Michael Schwendt mschwendt at gmail.com
Mon Jul 28 19:12:51 UTC 2014


On Mon, 28 Jul 2014 12:02:24 -0400 (EDT), Miloslav Trmač wrote:

> If upstream won’t use sonames or symbol versioning, it’s better for Fedora to patch the software to use them properly, even if it means having to continue to patch it.  IIRC we do have various packages that have to do this.
> 

Just for the record, they do use soname versioning,

  libjson.so.0.1.0
  libjson-c.so.2.0.1

but it may have been an accident to not bump it this time. The first thing
to do would be to contact them (two tickets have been opened already) and
talk about it.

Simply bumping the soname version at Fedora can easily lead to trouble,
e.g. if the next upstream release dropped more symbols together with
bumping the soname, Fedora would be out-of-sync again and would need to
stay incompatible with even another soname bump. That's not good and
inconvenient, too.

$ rpmsodiff json-c-0.11-6.fc20.x86_64.rpm json-c-0.12-1.fc20.x86_64.rpm 
	sonames only in json-c-0.11-6.fc20 [1]:
libjson.so.0	/usr/lib64/libjson.so.0.1.0

	common sonames:
libjson-c.so.2	/usr/lib64/libjson-c.so.2.0.1	/usr/lib64/libjson-c.so.2.0.1

--- json-c-0.11-6.fc20/libjson-c.so.2	2014-07-28 15:52:50.704003501 +0200
+++ json-c-0.12-1.fc20/libjson-c.so.2	2014-07-28 15:52:54.744786003 +0200
@@ -20,2 +20,3 @@
 json_object_array_sort	T
+json_object_free_userdata	T
 json_object_from_file	T
@@ -42,2 +43,3 @@
 json_object_new_double	T
+json_object_new_double_s	T
 json_object_new_int	T
@@ -58,2 +60,3 @@
 json_object_to_json_string_ext	T
+json_object_userdata_to_json_string	T
 json_parse_double	T
@@ -61,3 +64,2 @@
 json_tokener_error_desc	T
-json_tokener_errors	D
 json_tokener_free	T
@@ -89,3 +91,2 @@
 lh_table_resize	T
-mc_abort	T
 mc_debug	T

	2 symbols removed
D json_tokener_errors
T mc_abort

	3 symbols added
T json_object_free_userdata
T json_object_new_double_s
T json_object_userdata_to_json_string

# template for libjson-c.so.2 version script
JSON_0.12 {
    global:
	json_object_free_userdata;
	json_object_new_double_s;
	json_object_userdata_to_json_string;
};

vim:ft=diff


More information about the devel mailing list