Source: dcmtk
Version: 3.6.2-3
Severity: minor
Tags: patch upstream
User: helm...@debian.org
Usertags: rebootstrap

While trying to make dcmtk cross buildable, I found a little bug in the
build system. It assumes that CMAKE_SYSTEM_VERSION is non-empty. This is
true most of the time, but CMakeDetermineSyste.cmake says:

# CMAKE_SYSTEM_VERSION - on unix this is uname -r, for windows it is empty

It also happens to break cross building as debhelper does not presently
pass this variable.

I think the best way out here would be to quote the variable to avoid
any issues. Please consider applying the attached patch.

Helmut
--- dcmtk-3.6.2.orig/CMake/dcmtkPrepare.cmake
+++ dcmtk-3.6.2/CMake/dcmtkPrepare.cmake
@@ -380,7 +380,7 @@
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_XOPEN_SOURCE_EXTENDED -D_XOPEN_SOURCE=500 -D_NETBSD_SOURCE -D_DEFAULT_SOURCE -D_BSD_COMPAT -D_OSF_SOURCE -D_POSIX_C_SOURCE=199506L")
     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE_EXTENDED -D_XOPEN_SOURCE=500 -D_NETBSD_SOURCE -D_DEFAULT_SOURCE -D_BSD_COMPAT -D_OSF_SOURCE -D_POSIX_C_SOURCE=199506L")
   # Solaris, FreeBSD and newer versions of OpenBSD fail with these flags
-  ELSEIF(NOT ${CMAKE_SYSTEM_NAME} MATCHES "SunOS" AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" AND (NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD" OR ${CMAKE_SYSTEM_VERSION} VERSION_LESS 4))
+  ELSEIF(NOT "${CMAKE_SYSTEM_NAME}" MATCHES "SunOS" AND NOT "${CMAKE_SYSTEM_NAME}" MATCHES "FreeBSD" AND (NOT "${CMAKE_SYSTEM_NAME}" MATCHES "OpenBSD" OR "${CMAKE_SYSTEM_VERSION}" VERSION_LESS 4))
     # Compiler flags for all other non-Windows systems
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_XOPEN_SOURCE_EXTENDED -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_BSD_COMPAT -D_OSF_SOURCE -D_POSIX_C_SOURCE=199506L")
     SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE_EXTENDED -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_DEFAULT_SOURCE -D_BSD_COMPAT -D_OSF_SOURCE -D_POSIX_C_SOURCE=199506L")

Reply via email to