Didier 'OdyX' Raboud wrote:

> Hi,
> 
> as I noticed new apiextractor tarballs, I launched "new upstream" builds
> of apiextractor.
> 
> Very unfortunately, I noticed the following : apiextractor 0.5.0 breaks
> the public API with regards to apiextractor 0.4.0. Although that might not
> be a problem per se (and I very much understand the possible reasons
> behind the breakage), from a distributor point of view it is a very
> serious issue:
> 
> libapiextractor0 (SONAME: 0) was shipped in its 0.4.0 version with certain
> symbols: binaries dynamically linking against libapiextractor0 are now
> expecting that same set of symbols, no matter what further version they
> might get, which is not the case with 0.5.0.
> 
> The symbols of 0.4.0:
> 
> http://git.debian.org/?p=collab-
> 
maint/apiextractor.git;a=blob;f=debian/libapiextractor0.symbols;hb=debian/0.4.0-3
> 
> (there were already some "optional" symbols appearing on some arches and
> not on others)
> 
> The symbols of 0.5.0:
>  http://pastebin.com/y9eu8ixt (the diff is from line 1520)
> 
> The only reasonable thing to do seems to be to bump the SONAME from 0 to 1
> and by such, releasing apiextractor 0.5.0 which would be shipping
> libapiextractor1 .
> 
> Thanks for considering,
> 
> OdyX, Debian packager for PySide

FYI, the attached patch solves this by forcing the SONAME to be 0.5 (which 
is fine for me).

Cheers, OdyX
Description: Forces a SONAME bump to libapiextractor as upstream broke the API
Author: Didier Raboud <[email protected]>
Origin: vendor
Last-Update: 2010-05-04

Index: apiextractor/CMakeLists.txt
===================================================================
--- apiextractor.orig/CMakeLists.txt	2010-05-04 12:15:54.000000000 +0200
+++ apiextractor/CMakeLists.txt	2010-05-04 12:16:16.000000000 +0200
@@ -23,6 +23,7 @@
 set(apiextractor_MICRO_VERSION 0)
 set(apiextractor_VERSION "${apiextractor_MAJOR_VERSION}.${apiextractor_MINOR_VERSION}.${apiextractor_MICRO_VERSION}")
 configure_file(apiextractorversion.h.in ${CMAKE_CURRENT_BINARY_DIR}/apiextractorversion.h @ONLY)
+set(apiextractor_SOVERSION ${apiextractor_MAJOR_VERSION}.${apiextractor_MINOR_VERSION})
 set(QT_USE_QTCORE 1)
 set(QT_USE_QTXML 1)
 include(${QT_USE_FILE})
@@ -84,7 +85,7 @@
 
 add_library(apiextractor SHARED ${apiextractor_SRC} ${apiextractor_RCCS_SRC})
 target_link_libraries(apiextractor ${LIBXSLT_LIBRARIES} ${LIBXML2_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTXMLPATTERNS_LIBRARY} ${QT_QTXML_LIBRARY})
-set_target_properties(apiextractor PROPERTIES VERSION ${apiextractor_VERSION} SOVERSION ${apiextractor_MAJOR_VERSION})
+set_target_properties(apiextractor PROPERTIES VERSION ${apiextractor_VERSION} SOVERSION ${apiextractor_SOVERSION})
 
 # create pkg-config file
 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/apiextractor.pc.in"

_______________________________________________
PySide mailing list
[email protected]
http://lists.openbossa.org/listinfo/pyside

Reply via email to