[kdelibs] FindKdcraw.cmake fixes(kde#311936)
Rex Dieter
rdieter at fedoraproject.org
Sat Dec 29 12:34:03 UTC 2012
commit e242148dec743395fad95081f9f8bd93c4fa6f52
Author: Rex Dieter <rdieter at math.unl.edu>
Date: Sat Dec 29 06:34:19 2012 -0600
FindKdcraw.cmake fixes(kde#311936)
kdelibs-FindKdcraw.patch | 246 ++++++++++++++++++++++++++++++++++++++++++++++
kdelibs.spec | 8 ++-
2 files changed, 253 insertions(+), 1 deletions(-)
---
diff --git a/kdelibs-FindKdcraw.patch b/kdelibs-FindKdcraw.patch
new file mode 100644
index 0000000..9012bb5
--- /dev/null
+++ b/kdelibs-FindKdcraw.patch
@@ -0,0 +1,246 @@
+diff --git a/cmake/modules/FindKdcraw.cmake b/cmake/modules/FindKdcraw.cmake
+index 518033d..1d1a2ac 100644
+--- a/cmake/modules/FindKdcraw.cmake
++++ b/cmake/modules/FindKdcraw.cmake
+@@ -1,124 +1,157 @@
+-# - Try to find the Kdcraw library
++# Try to find the Kdcraw library
+ #
+-# If you have put a local version of libkdcraw into your source tree,
+-# set KDCRAW_LOCAL_DIR to the relative path to the local directory.
++# Parameters:
++# KDCRAW_LOCAL_DIR - If you have put a local version of libkdcraw into
++# your source tree, set KDCRAW_LOCAL_DIR to the
++# relative path from the root of your source tree
++# to the libkdcraw local directory.
+ #
+ # Once done this will define
+ #
+-# KDCRAW_FOUND - system has libkdcraw
+-# KDCRAW_INCLUDE_DIR - the libkdcraw include directory
++# KDCRAW_FOUND - System has libkdcraw
++# KDCRAW_INCLUDE_DIR - The libkdcraw include directory/directories (for #include <libkdcraw/...> style)
+ # KDCRAW_LIBRARIES - Link these to use libkdcraw
+ # KDCRAW_DEFINITIONS - Compiler switches required for using libkdcraw
++# KDCRAW_VERSION - Version of libkdcraw which was found
+ #
+-
+-# Copyright (c) 2008, Gilles Caulier, <caulier.gilles at gmail.com>
++# Copyright (c) 2008-2011, Gilles Caulier, <caulier.gilles at gmail.com>
++# Copyright (c) 2011, Michael G. Hansen, <mike at mghansen.de>
+ #
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
++# Kdcraw_FIND_QUIETLY and Kdcraw_FIND_REQUIRED may be defined by CMake.
+
+-if (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES AND KDCRAW_DEFINITIONS)
++if (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES AND KDCRAW_DEFINITIONS AND KDCRAW_VERSION)
+
+- message(STATUS "Found Kdcraw library in cache: ${KDCRAW_LIBRARIES}")
++ if (NOT Kdcraw_FIND_QUIETLY)
++ message(STATUS "Found Kdcraw library in cache: ${KDCRAW_LIBRARIES}")
++ endif (NOT Kdcraw_FIND_QUIETLY)
+
+ # in cache already
+ set(KDCRAW_FOUND TRUE)
+
+-else (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES AND KDCRAW_DEFINITIONS)
+-
+- message(STATUS "Check Kdcraw library in local sub-folder...")
++else (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES AND KDCRAW_DEFINITIONS AND KDCRAW_VERSION)
+
+- # Check if library is not in local sub-folder
++ if (NOT Kdcraw_FIND_QUIETLY)
++ message(STATUS "Check for Kdcraw library in local sub-folder...")
++ endif (NOT Kdcraw_FIND_QUIETLY)
+
++ # Check for a local version of the library.
+ if (KDCRAW_LOCAL_DIR)
+- set (KDCRAW_LOCAL_FOUND TRUE)
++ find_file(KDCRAW_LOCAL_FOUND libkdcraw/version.h.cmake ${CMAKE_SOURCE_DIR}/${KDCRAW_LOCAL_DIR} NO_DEFAULT_PATH)
++ if (NOT KDCRAW_LOCAL_FOUND)
++ message(WARNING "KDCRAW_LOCAL_DIR specified as \"${KDCRAW_LOCAL_DIR}\" but libkdcraw could not be found there.")
++ endif (NOT KDCRAW_LOCAL_FOUND)
+ else (KDCRAW_LOCAL_DIR)
+- find_file(KDCRAW_LOCAL_FOUND libkdcraw/kdcraw.h ${CMAKE_SOURCE_DIR}/libkdcraw ${CMAKE_SOURCE_DIR}/libs/libkdcraw NO_DEFAULT_PATH)
+-
++ find_file(KDCRAW_LOCAL_FOUND libkdcraw/version.h.cmake ${CMAKE_SOURCE_DIR}/libkdcraw NO_DEFAULT_PATH)
+ if (KDCRAW_LOCAL_FOUND)
+- # Was it found in libkdcraw/ or in libs/libkdcraw?
+- find_file(KDCRAW_LOCAL_FOUND_IN_LIBS libkdcraw/kdcraw.h ${CMAKE_SOURCE_DIR}/libs/libkdcraw NO_DEFAULT_PATH)
+- if (KDCRAW_LOCAL_FOUND_IN_LIBS)
+- set(KDCRAW_LOCAL_DIR libs/libkdcraw)
+- else (KDCRAW_LOCAL_FOUND_IN_LIBS)
+- set(KDCRAW_LOCAL_DIR libkdcraw)
+- endif (KDCRAW_LOCAL_FOUND_IN_LIBS)
++ set(KDCRAW_LOCAL_DIR libkdcraw)
++ endif (KDCRAW_LOCAL_FOUND)
++ find_file(KDCRAW_LOCAL_FOUND libkdcraw/version.h.cmake ${CMAKE_SOURCE_DIR}/libs/libkdcraw NO_DEFAULT_PATH)
++ if (KDCRAW_LOCAL_FOUND)
++ set(KDCRAW_LOCAL_DIR libs/libkdcraw)
+ endif (KDCRAW_LOCAL_FOUND)
+ endif (KDCRAW_LOCAL_DIR)
+
+ if (KDCRAW_LOCAL_FOUND)
+-
+- # we need two include directories: because the version.h file is put into the build directory
++ # We need two include directories: because the version.h file is put into the build directory
+ # TODO KDCRAW_INCLUDE_DIR sounds like it should contain only one directory...
+ set(KDCRAW_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/${KDCRAW_LOCAL_DIR} ${CMAKE_BINARY_DIR}/${KDCRAW_LOCAL_DIR})
+ set(KDCRAW_DEFINITIONS "-I${CMAKE_SOURCE_DIR}/${KDCRAW_LOCAL_DIR}" "-I${CMAKE_BINARY_DIR}/${KDCRAW_LOCAL_DIR}")
+ set(KDCRAW_LIBRARIES kdcraw)
+- message(STATUS "Found Kdcraw library in local sub-folder: ${CMAKE_SOURCE_DIR}/${KDCRAW_LOCAL_DIR}")
++ if (NOT Kdcraw_FIND_QUIETLY)
++ message(STATUS "Found Kdcraw library in local sub-folder: ${CMAKE_SOURCE_DIR}/${KDCRAW_LOCAL_DIR}")
++ endif (NOT Kdcraw_FIND_QUIETLY)
+ set(KDCRAW_FOUND TRUE)
+- mark_as_advanced(KDCRAW_INCLUDE_DIR KDCRAW_LIBRARIES KDCRAW_DEFINITIONS)
+
+- else(KDCRAW_LOCAL_FOUND)
++ set(kdcraw_version_h_filename "${CMAKE_BINARY_DIR}/${KDCRAW_LOCAL_DIR}/libkdcraw/version.h")
+
+- message(STATUS "Check Kdcraw library using pkg-config...")
++ else (KDCRAW_LOCAL_FOUND)
+ if (NOT WIN32)
+- # use pkg-config to get the directories and then use these values
+- # in the FIND_PATH() and FIND_LIBRARY() calls
+- include(UsePkgConfig)
+-
+- PKGCONFIG(libkdcraw _KDCRAWIncDir _KDCRAWLinkDir _KDCRAWLinkFlags _KDCRAWCflags)
+-
+- if (_KDCRAWLinkFlags)
+- # query pkg-config asking for a libkdcraw >= 0.2.0
+- exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=0.2.0 libkdcraw RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
+- if (_return_VALUE STREQUAL "0")
+- message(STATUS "Found libkdcraw release >= 0.2.0")
+- set(KDCRAW_VERSION_GOOD_FOUND TRUE)
+- else (_return_VALUE STREQUAL "0")
+- message(STATUS "Found libkdcaw release < 0.2.0, too old")
+- set(KDCRAW_VERSION_GOOD_FOUND FALSE)
+- set(KDCRAW_FOUND FALSE)
+- endif (_return_VALUE STREQUAL "0")
+- else (_KDCRAWLinkFlags)
++ if (NOT Kdcraw_FIND_QUIETLY)
++ message(STATUS "Check Kdcraw library using pkg-config...")
++ endif (NOT Kdcraw_FIND_QUIETLY)
++
++ # use FindPkgConfig to get the directories and then use these values
++ # in the find_path() and find_library() calls
++ include(FindPkgConfig)
++
++ pkg_check_modules(PC_KDCRAW libkdcraw)
++
++ if (PC_KDCRAW_FOUND)
++ # make sure the version is >= 0.2.0
++ # TODO: WHY?
++ if (PC_KDCRAW_VERSION VERSION_LESS 0.2.0)
++ message(STATUS "Found libkdcraw release < 0.2.0, too old")
++ set(KDCRAW_VERSION_GOOD_FOUND FALSE)
++ set(KDCRAW_FOUND FALSE)
++ else (PC_KDCRAW_VERSION VERSION_LESS 0.2.0)
++ set(KDCRAW_VERSION "${PC_KDCRAW_VERSION}")
++ if (NOT Kdcraw_FIND_QUIETLY)
++ message(STATUS "Found libkdcraw release ${KDCRAW_VERSION}")
++ endif (NOT Kdcraw_FIND_QUIETLY)
++ set(KDCRAW_VERSION_GOOD_FOUND TRUE)
++ endif (PC_KDCRAW_VERSION VERSION_LESS 0.2.0)
++ else (PC_KDCRAW_FOUND)
+ set(KDCRAW_VERSION_GOOD_FOUND FALSE)
+- set(KDCRAW_FOUND FALSE)
+- endif (_KDCRAWLinkFlags)
++ endif (PC_KDCRAW_FOUND)
+ else (NOT WIN32)
++ # TODO: Why do we just assume the version is good?
+ set(KDCRAW_VERSION_GOOD_FOUND TRUE)
+ endif (NOT WIN32)
+
+ if (KDCRAW_VERSION_GOOD_FOUND)
+- set(KDCRAW_DEFINITIONS "${_KDCRAWCflags}")
+-
+- find_path(KDCRAW_INCLUDE_DIR libkdcraw/version.h
+- ${_KDCRAWIncDir}
+- )
+-
+- find_library(KDCRAW_LIBRARIES NAMES kdcraw
+- PATHS
+- ${_KDCRAWLinkDir}
+- )
+-
+- if (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES)
+- set(KDCRAW_FOUND TRUE)
+- endif (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES)
+- endif (KDCRAW_VERSION_GOOD_FOUND)
+- if (KDCRAW_FOUND)
+- if (NOT Kdcraw_FIND_QUIETLY)
+- message(STATUS "Found libkdcraw: ${KDCRAW_LIBRARIES}")
+- endif (NOT Kdcraw_FIND_QUIETLY)
+- else (KDCRAW_FOUND)
+- if (Kdcraw_FIND_REQUIRED)
+- if (NOT KDCRAW_INCLUDE_DIR)
+- message(FATAL_ERROR "Could NOT find libkdcraw header files")
+- endif (NOT KDCRAW_INCLUDE_DIR)
+- if (NOT KDCRAW_LIBRARIES)
+- message(FATAL_ERROR "Could NOT find libkdcraw library")
+- endif (NOT KDCRAW_LIBRARIES)
+- endif (Kdcraw_FIND_REQUIRED)
+- endif (KDCRAW_FOUND)
+-
+- mark_as_advanced(KDCRAW_INCLUDE_DIR KDCRAW_LIBRARIES KDCRAW_DEFINITIONS)
+-
+- endif(KDCRAW_LOCAL_FOUND)
+-
+-endif (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES AND KDCRAW_DEFINITIONS)
++ set(KDCRAW_DEFINITIONS "${PC_KDCRAW_CFLAGS_OTHER}")
++
++ find_path(KDCRAW_INCLUDE_DIR libkdcraw/version.h ${PC_KDCRAW_INCLUDE_DIRS})
++ set(kdcraw_version_h_filename "${KDCRAW_INCLUDE_DIR}/libkdcraw/version.h")
++
++ find_library(KDCRAW_LIBRARIES NAMES kdcraw HINTS ${PC_KDCRAW_LIBRARY_DIRS})
++
++ if (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES)
++ set(KDCRAW_FOUND TRUE)
++ else (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES)
++ set(KDCRAW_FOUND FALSE)
++ endif (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES)
++ endif (KDCRAW_VERSION_GOOD_FOUND)
++
++ if (KDCRAW_FOUND)
++ if (NOT Kdcraw_FIND_QUIETLY)
++ message(STATUS "Found libkdcraw: ${KDCRAW_LIBRARIES}")
++ endif (NOT Kdcraw_FIND_QUIETLY)
++ else (KDCRAW_FOUND)
++ if (Kdcraw_FIND_REQUIRED)
++ if (NOT KDCRAW_INCLUDE_DIR)
++ message(FATAL_ERROR "Could NOT find libkdcraw header files.")
++ else(NOT KDCRAW_INCLUDE_DIR)
++ message(FATAL_ERROR "Could NOT find libkdcraw library.")
++ endif (NOT KDCRAW_INCLUDE_DIR)
++ endif (Kdcraw_FIND_REQUIRED)
++ endif (KDCRAW_FOUND)
++
++ endif (KDCRAW_LOCAL_FOUND)
++
++ if (KDCRAW_FOUND)
++ # Find the version information, unless that was reported by pkg_search_module.
++ if (NOT KDCRAW_VERSION)
++ file(READ "${kdcraw_version_h_filename}" kdcraw_version_h_content)
++ # This is the line we are trying to find: static const char kdcraw_version[] = "1.22.4-beta_5+dfsg";
++ string(REGEX REPLACE ".*char +kdcraw_version\\[\\] += +\"([^\"]+)\".*" "\\1" KDCRAW_VERSION "${kdcraw_version_h_content}")
++ unset(kdcraw_version_h_content)
++
++ endif (NOT KDCRAW_VERSION)
++ unset(kdcraw_version_h_filename)
++ endif (KDCRAW_FOUND)
++
++ if (KDCRAW_FOUND)
++ mark_as_advanced(KDCRAW_INCLUDE_DIR KDCRAW_LIBRARIES KDCRAW_DEFINITIONS KDCRAW_VERSION KDCRAW_FOUND)
++ else (KDCRAW_FOUND)
++ # The library was not found, reset all related variables.
++ unset(KDCRAW_INCLUDE_DIR)
++ unset(KDCRAW_LIBRARIES)
++ unset(KDCRAW_DEFINITIONS)
++ unset(KDCRAW_VERSION)
++ endif (KDCRAW_FOUND)
++
++endif (KDCRAW_INCLUDE_DIR AND KDCRAW_LIBRARIES AND KDCRAW_DEFINITIONS AND KDCRAW_VERSION)
diff --git a/kdelibs.spec b/kdelibs.spec
index 4cdadd8..9fe38f8 100644
--- a/kdelibs.spec
+++ b/kdelibs.spec
@@ -23,7 +23,7 @@
Summary: KDE Libraries
Version: 4.9.95
-Release: 2%{?dist}
+Release: 3%{?dist}
Name: kdelibs
Epoch: 6
@@ -145,6 +145,8 @@ Patch56: kdelibs-4.9.1-FindKipi-libkipi2.patch
Patch59: kdelibs-4.9.3-kcm_ssl.patch
## upstream
+# FindKdcraw.cmake fixes
+Patch100: kdelibs-FindKdcraw.patch
## security fix
# Not Upstreamed? why not ? -- Rex
@@ -315,6 +317,7 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
%patch59 -p1 -b .filter
# upstream patches
+%patch100 -p1 -b .FindKdcraw
# security fixes
%patch200 -p1 -b .CVE-2009-2702
@@ -555,6 +558,9 @@ gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
%changelog
+* Sat Dec 29 2012 Rex Dieter <rdieter at fedoraproject.org> 6:4.9.95-3
+- FindKdcraw.cmake fixes(kde#311936)
+
* Thu Dec 20 2012 Rex Dieter <rdieter at fedoraproject.org> 6:4.9.95-2
- Conflicts: kdelibs3 < 3.5.10-42
More information about the scm-commits
mailing list