[qpid-cpp] Fixed adding the soversion to shared libraries.

Darryl L. Pierce mcpierce at fedoraproject.org
Tue Jul 2 17:55:42 UTC 2013


commit 11c1e9825459b3d3858ea748b73edf7040bb572e
Author: Darryl L. Pierce <mcpierce at gmail.com>
Date:   Tue Jul 2 13:55:14 2013 -0400

    Fixed adding the soversion to shared libraries.
    
    - Resolves: BZ#980364

 ...25-Add-SOVERSION-link-to-shared-libraries.patch |  163 ++++++++++++++++++++
 qpid-cpp.spec                                      |    8 +-
 2 files changed, 170 insertions(+), 1 deletions(-)
---
diff --git a/07-QPID-4825-Add-SOVERSION-link-to-shared-libraries.patch b/07-QPID-4825-Add-SOVERSION-link-to-shared-libraries.patch
new file mode 100644
index 0000000..0b02906
--- /dev/null
+++ b/07-QPID-4825-Add-SOVERSION-link-to-shared-libraries.patch
@@ -0,0 +1,163 @@
+From 4c73a4d03d4ebbdd128ee78bdfcec3a9f3da72ae Mon Sep 17 00:00:00 2001
+From: "Darryl L. Pierce" <mcpierce at apache.org>
+Date: Fri, 10 May 2013 08:21:47 +0000
+Subject: [PATCH] QPID-4825: Add SOVERSION link to shared libraries
+
+Contributed by Irina Boverman <iboverma at redhat.com>
+
+git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1480927 13f79535-47bb-0310-9956-ffa450edef68
+---
+ qpid/cpp/src/CMakeLists.txt | 31 ++++++++++++++++++++++---------
+ qpid/cpp/src/rdma.cmake     |  3 ++-
+ qpid/cpp/src/ssl.cmake      |  1 +
+ qpid/cpp/src/versions.cmake | 13 +++++++++++++
+ 4 files changed, 38 insertions(+), 10 deletions(-)
+
+diff --git a/qpid/cpp/src/CMakeLists.txt b/qpid/cpp/src/CMakeLists.txt
+index 2a3cfcf..71b2c17 100644
+--- a/qpid/cpp/src/CMakeLists.txt
++++ b/qpid/cpp/src/CMakeLists.txt
+@@ -989,7 +989,8 @@ target_link_libraries (qpidcommon qpidtypes
+                        ${qpidcommon_platform_LIBS}
+                        ${qpidcommon_sasl_lib})
+ set_target_properties (qpidcommon PROPERTIES
+-                       VERSION ${qpidcommon_version})
++                       VERSION ${qpidcommon_version} 
++                       SOVERSION ${qpidcommon_version_major})
+ install (TARGETS qpidcommon
+          DESTINATION ${QPID_INSTALL_LIBDIR}
+          COMPONENT ${QPID_COMPONENT_COMMON})
+@@ -1004,7 +1005,9 @@ set(qpidtypes_SOURCES
+ add_msvc_version (qpidtypes library dll)
+ add_library(qpidtypes SHARED ${qpidtypes_SOURCES})
+ target_link_libraries(qpidtypes ${qpidtypes_platform_LIBS})
+-set_target_properties (qpidtypes PROPERTIES VERSION ${qpidtypes_version})
++set_target_properties (qpidtypes PROPERTIES 
++                       VERSION ${qpidtypes_version}
++                       SOVERSION ${qpidtypes_version_major})
+ install(TARGETS qpidtypes
+   DESTINATION ${QPID_INSTALL_LIBDIR}
+   COMPONENT ${QPID_COMPONENT_COMMON})
+@@ -1051,7 +1054,8 @@ add_msvc_version (qpidclient library dll)
+ 
+ add_library (qpidclient SHARED ${qpidclient_SOURCES})
+ target_link_libraries (qpidclient qpidcommon ${qpidclient_platform_LIBS})
+-set_target_properties (qpidclient PROPERTIES VERSION ${qpidclient_version})
++set_target_properties (qpidclient PROPERTIES VERSION ${qpidclient_version}
++SOVERSION ${qpidclient_version_major})
+ install (TARGETS qpidclient
+          DESTINATION ${QPID_INSTALL_LIBDIR}
+          COMPONENT ${QPID_COMPONENT_CLIENT})
+@@ -1118,7 +1122,9 @@ add_msvc_version (qpidmessaging library dll)
+ 
+ add_library (qpidmessaging SHARED ${qpidmessaging_SOURCES})
+ target_link_libraries (qpidmessaging qpidclient)
+-set_target_properties (qpidmessaging PROPERTIES VERSION ${qpidmessaging_version})
++set_target_properties (qpidmessaging PROPERTIES 
++                       VERSION ${qpidmessaging_version} 
++                       SOVERSION ${qpidmessaging_version_major})
+ install (TARGETS qpidmessaging
+          DESTINATION ${QPID_INSTALL_LIBDIR}
+          COMPONENT ${QPID_COMPONENT_CLIENT})
+@@ -1244,7 +1250,10 @@ set (qpidbroker_SOURCES
+ add_msvc_version (qpidbroker library dll)
+ add_library (qpidbroker SHARED ${qpidbroker_SOURCES})
+ target_link_libraries (qpidbroker qpidcommon ${qpidbroker_platform_LIBS})
+-set_target_properties (qpidbroker PROPERTIES VERSION ${qpidbroker_version} COMPILE_DEFINITIONS _IN_QPID_BROKER)
++set_target_properties (qpidbroker PROPERTIES 
++                       VERSION ${qpidbroker_version}
++                       SOVERSION ${qpidbroker_version_major} 
++                       COMPILE_DEFINITIONS _IN_QPID_BROKER)
+ if (MSVC)
+   set_target_properties (qpidbroker PROPERTIES COMPILE_FLAGS /wd4290)
+ endif (MSVC)
+@@ -1290,7 +1299,8 @@ add_msvc_version (qmf library dll)
+ add_library (qmf SHARED ${qmf_SOURCES})
+ target_link_libraries (qmf qmfengine)
+ set_target_properties (qmf PROPERTIES
+-                       VERSION ${qmf_version})
++                       VERSION ${qmf_version} 
++                       SOVERSION ${qmf_version_major})
+ install (TARGETS qmf OPTIONAL
+          DESTINATION ${QPID_INSTALL_LIBDIR}
+          COMPONENT ${QPID_COMPONENT_QMF})
+@@ -1371,7 +1381,8 @@ if(NOT WIN32)
+     add_library (qmf2 SHARED ${qmf2_SOURCES})
+     target_link_libraries (qmf2 qpidmessaging qpidtypes qpidclient qpidcommon)
+     set_target_properties (qmf2 PROPERTIES
+-                        VERSION ${qmf2_version})
++                           VERSION ${qmf2_version} 
++                           SOVERSION ${qmf2_version_major})
+     install (TARGETS qmf2 OPTIONAL
+             DESTINATION ${QPID_INSTALL_LIBDIR}
+             COMPONENT ${QPID_COMPONENT_QMF})
+@@ -1436,7 +1447,8 @@ add_msvc_version (qmfengine library dll)
+ add_library (qmfengine SHARED ${qmfengine_SOURCES})
+ target_link_libraries (qmfengine qpidclient)
+ set_target_properties (qmfengine PROPERTIES
+-                       VERSION ${qmfengine_version})
++                       VERSION ${qmfengine_version} 
++                       SOVERSION ${qmfengine_version_major})
+ install (TARGETS qmfengine OPTIONAL
+          DESTINATION ${QPID_INSTALL_LIBDIR}
+          COMPONENT ${QPID_COMPONENT_QMF})
+@@ -1474,7 +1486,8 @@ add_msvc_version (qmfconsole library dll)
+ add_library (qmfconsole SHARED ${qmfconsole_SOURCES})
+ target_link_libraries (qmfconsole qpidclient)
+ set_target_properties (qmfconsole PROPERTIES
+-                       VERSION ${qmfconsole_version})
++                       VERSION ${qmfconsole_version}
++                       SOVERSION ${qmfconsole_version_major})
+ install (TARGETS qmfconsole
+          DESTINATION ${QPID_INSTALL_LIBDIR}
+          COMPONENT ${QPID_COMPONENT_QMF})
+diff --git a/qpid/cpp/src/rdma.cmake b/qpid/cpp/src/rdma.cmake
+index 1d355e7..8c01902 100644
+--- a/qpid/cpp/src/rdma.cmake
++++ b/qpid/cpp/src/rdma.cmake
+@@ -66,7 +66,8 @@ if (BUILD_RDMA)
+   target_link_libraries (rdmawrap qpidcommon rdmacm ibverbs)
+   set_target_properties (rdmawrap PROPERTIES
+                          LINK_FLAGS "${CATCH_UNDEFINED}"
+-                         VERSION ${rdmawrap_version})
++                         VERSION ${rdmawrap_version} 
++                         SOVERSION ${rdmawrap_version_major})
+   if (CMAKE_COMPILER_IS_GNUCXX)
+     set_target_properties(rdmawrap PROPERTIES
+                           COMPILE_FLAGS -Wno-missing-field-initializers)
+diff --git a/qpid/cpp/src/ssl.cmake b/qpid/cpp/src/ssl.cmake
+index b7ad58b..c95a0d6 100644
+--- a/qpid/cpp/src/ssl.cmake
++++ b/qpid/cpp/src/ssl.cmake
+@@ -75,6 +75,7 @@ if (BUILD_SSL)
+     target_link_libraries (sslcommon qpidcommon)
+     set_target_properties (sslcommon PROPERTIES
+                            VERSION ${sslcommon_version}
++                           SOVERSION ${sslcommon_version_major}
+                            COMPILE_FLAGS ${NSS_COMPILE_FLAGS}
+                            LINK_FLAGS ${NSS_LINK_FLAGS})
+ 
+diff --git a/qpid/cpp/src/versions.cmake b/qpid/cpp/src/versions.cmake
+index f7e42e3..ac20e9e 100644
+--- a/qpid/cpp/src/versions.cmake
++++ b/qpid/cpp/src/versions.cmake
+@@ -36,3 +36,16 @@ set (qpidtypes_version 1.0.0)
+ set (rdmawrap_version 2.0.0)
+ set (sslcommon_version 2.0.0)
+ set (legacystore_version 1.0.0)
++
++string(REGEX MATCH "[0-9]*" qmf_version_major ${qmf_version})
++string(REGEX MATCH "[0-9]*" qmf2_version_major ${qmf2_version})
++string(REGEX MATCH "[0-9]*" qmfconsole_version_major ${qmfconsole_version})
++string(REGEX MATCH "[0-9]*" qmfengine_version_major ${qmfengine_version})
++string(REGEX MATCH "[0-9]*" qpidbroker_version_major ${qpidbroker_version})
++string(REGEX MATCH "[0-9]*" qpidclient_version_major ${qpidclient_version})
++string(REGEX MATCH "[0-9]*" qpidcommon_version_major ${qpidcommon_version})
++string(REGEX MATCH "[0-9]*" qpidmessaging_version_major ${qpidmessaging_version})
++string(REGEX MATCH "[0-9]*" qpidtypes_version_major ${qpidtypes_version})
++string(REGEX MATCH "[0-9]*" rdmawrap_version_major ${rdmawrap_version})
++string(REGEX MATCH "[0-9]*" sslcommon_version_major ${sslcommon_version})
++string(REGEX MATCH "[0-9]*" legacystore_version_major ${legacystore_version})
+-- 
+1.8.1.4
+
diff --git a/qpid-cpp.spec b/qpid-cpp.spec
index f1b5e78..c06da60 100644
--- a/qpid-cpp.spec
+++ b/qpid-cpp.spec
@@ -25,7 +25,7 @@
 
 Name:          qpid-cpp
 Version:       0.22
-Release:       1.1%{?dist}
+Release:       2%{?dist}
 Summary:       Libraries for Qpid C++ client applications
 License:       ASL 2.0
 URL:           http://qpid.apache.org
@@ -69,6 +69,7 @@ Patch3: 03-QPID-4843-Fixed-the-Perl-spout.pl-example.patch
 Patch4: 04-QPID-4857-Fixed-passing-Perl-Message-to-C-code.patch
 Patch5: 05-QPID-4885-C-examples-install-to-qpid-examples.patch
 Patch6: 06-QPID-4889-Only-installs-the-Swig-descriptors-in-usr-.patch
+Patch7: 07-QPID-4825-Add-SOVERSION-link-to-shared-libraries.patch
 
 
 %description
@@ -566,6 +567,7 @@ Management and diagnostic tools for Apache Qpid brokers and clients.
 %patch4 -p2
 %patch5 -p2
 %patch6 -p2
+%patch7 -p2
 
 %global perftests "qpid-perftest qpid-topic-listener qpid-topic-publisher qpid-latency-test qpid-client-test qpid-txtest"
 
@@ -675,6 +677,10 @@ rm -rf %{buildroot}
 
 
 %changelog
+* Tue Jul  2 2013 Darryl L. Pierce <dpierce at redhat.com> - 0.22-2
+- Fixed adding the soversion to shared libraries.
+- Resolves: BZ#980364
+
 * Thu Jun 13 2013 Darryl L. Pierce <dpierce at redhat.com> - 0.22-1
 - Rebased on Qpid 0.22.
 - The package now uses the CMake build system from Qpid.


More information about the scm-commits mailing list