Package: orthanc-dicomweb
Version: 0.3+dfsg-1
Severity: normal
Tags: patch

Dear Maintainer,

Similar issue as reported for orthanc-webviewer 2.2-1 in bug #857355.

Currently the file debian/patches/cmake is removing cmake's automatic
library linking resolution and adding "missing" libraries manually,
while also unecessarily modifying a link_libraries call on
Orthanc/Resources/CMake/Compiler.cmake.

The uuid library ends up being added twice while linking
libOrthancWebViewer.so. I verified that this is no longer required.

The libraries are being added through LINK_FLAGS, which is not a good
practice. On make this would be the similar to adding libraries to
LD_FLAGS instead of LD_LIBS, which causes 'undefined reference' errors
when stric order is enabled (like in Ubuntu, where the package FTBFS).

I verified that cmake is able to successfully determine the required
gdcm libraries and that the library arguments in LINK_FLAGS can be
safely removed.

Please see the attached patch for the fix.

Regards,
Tiago Daitx

-- System Information:
Debian Release: stretch/sid
  APT prefers xenial-updates
  APT policy: (500, 'xenial-updates'), (500, 'xenial-security'), (500, 
'xenial'), (400, 'xenial-proposed'), (100, 'xenial-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.8.0-34-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru orthanc-dicomweb-0.3+dfsg/debian/patches/cmake orthanc-dicomweb-0.3+dfsg/debian/patches/cmake
--- orthanc-dicomweb-0.3+dfsg/debian/patches/cmake	2016-06-29 05:58:36.000000000 -0300
+++ orthanc-dicomweb-0.3+dfsg/debian/patches/cmake	2017-03-10 15:07:31.000000000 -0300
@@ -15,13 +15,7 @@
  
  include(${ORTHANC_ROOT}/Resources/CMake/BoostConfiguration.cmake)
  include(${ORTHANC_ROOT}/Resources/CMake/GoogleTestConfiguration.cmake)
-@@ -136,15 +136,13 @@ add_library(OrthancDicomWeb SHARED ${COR
-   ${AUTOGENERATED_SOURCES}
-   )
- 
--target_link_libraries(OrthancDicomWeb ${GDCM_LIBRARIES})
--
- message("Setting the version of the library to ${ORTHANC_DICOM_WEB_VERSION}")
+@@ -142,9 +142,9 @@ add_library(OrthancDicomWeb SHARED ${COR
  
  add_definitions(-DORTHANC_DICOM_WEB_VERSION="${ORTHANC_DICOM_WEB_VERSION}")
  
@@ -30,20 +24,7 @@
 -  SOVERSION ${ORTHANC_DICOM_WEB_VERSION}
 +set_target_properties(OrthancDicomWeb PROPERTIES
 +  NO_SONAME ON
-+  LINK_FLAGS "-lgdcmDICT -lgdcmDSED -lgdcmMSFF -lgdcmCommon -luuid -Wl,-soname,libOrthancDicomWeb.so.${ORTHANC_DICOM_WEB_VERSION}"
++  LINK_FLAGS "-Wl,-soname,libOrthancDicomWeb.so.${ORTHANC_DICOM_WEB_VERSION}"
    )
  
  install(
-Index: OrthancDicomWeb-0.3/Orthanc/Resources/CMake/Compiler.cmake
-===================================================================
---- OrthancDicomWeb-0.3.orig/Orthanc/Resources/CMake/Compiler.cmake
-+++ OrthancDicomWeb-0.3/Orthanc/Resources/CMake/Compiler.cmake
-@@ -60,7 +60,7 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux
-   # Remove the "-rdynamic" option
-   # http://www.mail-archive.com/cmake@cmake.org/msg08837.html
-   set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
--  link_libraries(uuid pthread rt)
-+  link_libraries(pthread rt)
- 
-   if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
-     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")

Reply via email to