[SCM] Debian Qt/KDE packaging tools branch, master, updated. debian/0.11.4-17-gd9a9010

Modestas Vainius modax at alioth.debian.org
Wed Mar 30 13:36:10 UTC 2011


The following commit has been merged in the master branch:
commit 73ac2d014ced57ca0e55b025ec304d220577f723
Author: Modestas Vainius <modax at debian.org>
Date:   Wed Mar 30 16:26:25 2011 +0300

    DebianABIManager: modify VERSION property as well.
    
    It is not enough to change only SOVERSION property as packages might still
    conflict because they will have the same original library file.  Original
    library filename is constructed taking into account target name (or OUTPUT_NAME
    property if any) and VERSION property.
---
 cmake/DebianABIManager.cmake  |   10 ++++++++--
 cmake/README.DebianABIManager |   23 ++++++++++++++---------
 2 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/cmake/DebianABIManager.cmake b/cmake/DebianABIManager.cmake
index 8b4a21f..b7b12c9 100644
--- a/cmake/DebianABIManager.cmake
+++ b/cmake/DebianABIManager.cmake
@@ -80,10 +80,15 @@ if (CMAKE_BUILD_TYPE AND CMAKE_BUILD_TYPE STREQUAL "Debian")
             if (debabi_target)
                 set(debabi_${debabi_pkg}_CMake-Target ${debabi_target}) # for success log
 
-                # Do not add soversion suffix if ABI is 0
+                # Do not add SOVERSION / VERSION suffix if ABI is 0
                 if (${debabi_${debabi_pkg}_Debian-ABI} GREATER 0)
                     set(debabi_soversion "${debabi_origsoversion}${DEBABI_VERSION_PREFIX}${debabi_${debabi_pkg}_Debian-ABI}")
                     set_target_properties(${debabi_target} PROPERTIES SOVERSION "${debabi_soversion}")
+                    get_target_property(debabi_version ${debabi_target} VERSION)
+                    if (debabi_version)
+                        set(debabi_version "${debabi_version}.${DEBABI_VERSION_PREFIX}${debabi_${debabi_pkg}_Debian-ABI}")
+                        set_target_properties(${debabi_target} PROPERTIES VERSION "${debabi_version}")
+                    endif (debabi_version)
                 endif (${debabi_${debabi_pkg}_Debian-ABI} GREATER 0)
 
                 # Generate symbol version. Do it always even if ABI is 0. So ABI_4_0, ABI_4_1, ...
@@ -117,8 +122,9 @@ if (CMAKE_BUILD_TYPE AND CMAKE_BUILD_TYPE STREQUAL "Debian")
         message("-------------------------------------------------------------------")
         foreach (debabi_pkg ${debabi_okpkgs})
             get_target_property(debabi_soversion ${debabi_${debabi_pkg}_CMake-Target} SOVERSION)
+            get_target_property(debabi_version ${debabi_${debabi_pkg}_CMake-Target} VERSION)
             get_target_property(debabi_symver ${debabi_${debabi_pkg}_CMake-Target} DEBABI_SYMVER)
-            message("   * ${debabi_pkg} - SOVERSION: ${debabi_soversion}; SYMVER: ${debabi_symver}")
+            message("   * ${debabi_pkg} - SOVERSION: ${debabi_soversion}; VERSION: ${debabi_version}; SYMVER: ${debabi_symver}")
         endforeach (debabi_pkg ${debabi_okpkgs})
     endif (debabi_failedpkgs)
 endif (CMAKE_BUILD_TYPE AND CMAKE_BUILD_TYPE STREQUAL "Debian")
diff --git a/cmake/README.DebianABIManager b/cmake/README.DebianABIManager
index ce30bae..7c01a69 100644
--- a/cmake/README.DebianABIManager
+++ b/cmake/README.DebianABIManager
@@ -104,10 +104,11 @@ include(/usr/share/pkg-kde-tools/cmake/DebianABIManager.cmake)
 
 Internally, the script sets "ABI_<upstream SOVERSION>_<X-Debian-ABI>" version
 for all symbols of the library (via --version-script linker option). In addition,
-if X-Debian-ABI value is greater than 0, SOVERSION of the library target will
-be modified by appending the string "abi<X-Debian-ABI>" to it. As this
-effectively changes the SONAME of the library, make sure to adjust package name
-and install file accordingly.
+if X-Debian-ABI value is greater than 0, SOVERSION and VERSION properties of the
+library target will be modified by appending strings "abi<X-Debian-ABI>" and
+".abi<X-Debian-ABI>" respectively to them. As this effectively changes the
+SONAME and filename of the library, make sure to adjust package name and
+install file accordingly.
 
 Examples
 --------
@@ -118,7 +119,8 @@ Package: libfoo4
 X-Debian-ABI: 0
 
 Symbols of the library (CMake target "foo") with SONAME "libfoo.so.4" will be
-versioned as "ABI_4_0". SONAME is kept unchanged from original.
+versioned as "ABI_4_0". SONAME and library filename are kept unchanged from
+original.
 
 2) debian/control:
 
@@ -126,7 +128,8 @@ Package: libbar5abi1
 X-Debian-ABI: 1
 
 SONAME of the library (CMake target "bar") will be changed from "libbar.so.5"
-to "libbar.so.5abi1". Symbols will be versioned as "ABI_5_1".
+to "libbar.so.5abi1". Original library filename will get ".abi1" suffix due to
+modified VERSION property. Symbols will be versioned as "ABI_5_1".
 
 3) debian/control:
 
@@ -134,8 +137,10 @@ Package: libfoobaz2abi10
 X-Debian-ABI: 10
 X-CMake-Target: foobazlib
 
-SONAME of the library (CMake target "foobazlib") will be changed from "libfoobaz.so.2"
-to "libfoobaz.so.2abi10". Symbols will be versioned as "ABI_2_10".
+SONAME of the library (CMake target "foobazlib") will be changed from
+"libfoobaz.so.2" to "libfoobaz.so.2abi10". Original library filename will get
+".abi10" suffix due to modified VERSION property. Symbols will be versioned as
+"ABI_2_10".
 
 KDE Software Compiliation 4.6
 -----------------------------
@@ -159,4 +164,4 @@ popular. So let's not do this "Breaks" stuff for first release.
 [4] http://sourceware.org/git/?p=glibc.git;a=blob;f=elf/dl-lookup.c;hb=glibc-2.13#l168
 [5] /usr/share/pkg-kde-tools/cmake/DebianABIManager.cmake
 
- -- Modestas Vainius <modax at debian.org>  Fri, 25 Mar 2011 23:47:26 +0200
+ -- Modestas Vainius <modax at debian.org>  Wed, 30 Mar 2011 16:24:17 +0300

-- 
Debian Qt/KDE packaging tools



More information about the pkg-kde-commits mailing list