From d36d5aa1816183f960280345c51e30da1feae743 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Thu, 5 Jul 2012 11:41:51 -0600 Subject: [PATCH] Add patch to fix FindPostgreSQL (bug 828467) --- cmake-FindPostgreSQL.patch | 163 +++++++++++++++++++++++++++++++++++++ cmake.spec | 10 ++- 2 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 cmake-FindPostgreSQL.patch diff --git a/cmake-FindPostgreSQL.patch b/cmake-FindPostgreSQL.patch new file mode 100644 index 0000000..213eb14 --- /dev/null +++ b/cmake-FindPostgreSQL.patch @@ -0,0 +1,163 @@ +--- cmake-2.8.8/Modules/FindPostgreSQL.cmake 2012-04-18 20:10:54.000000000 +0200 ++++ cmake-2.8.8/Modules/FindPostgreSQL.cmake 2012-07-04 23:05:30.532090522 +0200 +@@ -97,76 +97,101 @@ set( PostgreSQL_ROOT_DIRECTORIES + # + # Look for an installation. + # +-find_path(PostgreSQL_INCLUDE_DIR +- NAMES libpq-fe.h ++find_path(PostgreSQL_CONFIG_DIR ++ NAMES pg_config + PATHS + # Look in other places. + ${PostgreSQL_ROOT_DIRECTORIES} + PATH_SUFFIXES +- pgsql +- postgresql +- include ++ "" ++ bin + # Help the user find it if we cannot. +- DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}" ++ DOC "The ${PostgreSQL_ROOT_DIR_MESSAGE}" + ) + +-find_path(PostgreSQL_TYPE_INCLUDE_DIR +- NAMES catalog/pg_type.h +- PATHS +- # Look in other places. +- ${PostgreSQL_ROOT_DIRECTORIES} +- PATH_SUFFIXES +- pgsql/server +- postgresql/server +- include/server +- # Help the user find it if we cannot. +- DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}" +-) ++macro (fail_if) ++ if (${ARGV}) ++ message (SEND_ERROR "Couldn't determine PostgreSQL configuration.") ++ unset (PostgreSQL_CONFIG_DIR) ++ break () ++ endif () ++endmacro () ++ ++macro (run_pg_config arg var) ++ execute_process(COMMAND ${PostgreSQL_CONFIG_DIR}/pg_config ${arg} ++ RESULT_VARIABLE pgsql_config_result ++ OUTPUT_VARIABLE ${var} ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ ++ fail_if (NOT ${pgsql_config_result} EQUAL 0 OR NOT ${var}) ++endmacro () ++ ++foreach (once only) ++ fail_if (NOT PostgreSQL_CONFIG_DIR) ++ ++ run_pg_config (--version PostgreSQL_VERSION_STRING) ++ string (REGEX REPLACE "^PostgreSQL (.*)$" "\\1" ++ PostgreSQL_VERSION_STRING "${PostgreSQL_VERSION_STRING}") ++ fail_if (NOT PostgreSQL_VERSION_STRING) ++ ++ run_pg_config (--includedir PostgreSQL_INCLUDE_DIR) ++ fail_if (NOT EXISTS "${PostgreSQL_INCLUDE_DIR}/libpq-fe.h") ++ ++ find_path(PostgreSQL_TYPE_INCLUDE_DIR ++ NAMES catalog/pg_type.h ++ PATHS ${PostgreSQL_INCLUDE_DIR} ++ PATH_SUFFIXES ++ pgsql/server ++ postgresql/server ++ include/server ++ # Help the user find it if we cannot. ++ DOC "The ${PostgreSQL_INCLUDE_DIR_MESSAGE}" ++ ) ++ fail_if (NOT PostgreSQL_TYPE_INCLUDE_DIR) ++ ++ set (PostgreSQL_INCLUDE_DIRS ++ ${PostgreSQL_INCLUDE_DIR} ${PostgreSQL_TYPE_INCLUDE_DIR}) ++ ++ run_pg_config (--libdir PostgreSQL_LIBRARY_DIRS) ++ ++ # The PostgreSQL library. ++ set (PostgreSQL_LIBRARY_TO_FIND pq) ++ # Setting some more prefixes for the library ++ set (PostgreSQL_LIB_PREFIX "") ++ if (WIN32) ++ set (PostgreSQL_LIB_PREFIX ${PostgreSQL_LIB_PREFIX} "lib") ++ set (PostgreSQL_LIBRARY_TO_FIND ${PostgreSQL_LIB_PREFIX}${PostgreSQL_LIBRARY_TO_FIND}) ++ endif() ++ ++ find_library (PostgreSQL_LIBRARY_FOUND ++ NAMES ${PostgreSQL_LIBRARY_TO_FIND} ++ PATHS ${PostgreSQL_LIBRARY_DIRS} ++ PATH_SUFFIXES lib ++ ) ++ fail_if (NOT PostgreSQL_LIBRARY_FOUND) ++ set (PostgreSQL_LIBRARIES ${PostgreSQL_LIBRARY_TO_FIND}) + +-# The PostgreSQL library. +-set (PostgreSQL_LIBRARY_TO_FIND pq) +-# Setting some more prefixes for the library +-set (PostgreSQL_LIB_PREFIX "") +-if ( WIN32 ) +- set (PostgreSQL_LIB_PREFIX ${PostgreSQL_LIB_PREFIX} "lib") +- set ( PostgreSQL_LIBRARY_TO_FIND ${PostgreSQL_LIB_PREFIX}${PostgreSQL_LIBRARY_TO_FIND}) +-endif() +- +-find_library( PostgreSQL_LIBRARY +- NAMES ${PostgreSQL_LIBRARY_TO_FIND} +- PATHS +- ${PostgreSQL_ROOT_DIRECTORIES} +- PATH_SUFFIXES +- lib +-) +-get_filename_component(PostgreSQL_LIBRARY_DIR ${PostgreSQL_LIBRARY} PATH) +- +-if (PostgreSQL_INCLUDE_DIR AND EXISTS "${PostgreSQL_INCLUDE_DIR}/pg_config.h") +- file(STRINGS "${PostgreSQL_INCLUDE_DIR}/pg_config.h" pgsql_version_str +- REGEX "^#define[\t ]+PG_VERSION[\t ]+\".*\"") +- +- string(REGEX REPLACE "^#define[\t ]+PG_VERSION[\t ]+\"([^\"]*)\".*" "\\1" +- PostgreSQL_VERSION_STRING "${pgsql_version_str}") +- unset(pgsql_version_str) +-endif() ++endforeach () + + # Did we find anything? +-include(FindPackageHandleStandardArgs) +-find_package_handle_standard_args(PostgreSQL +- REQUIRED_VARS PostgreSQL_LIBRARY PostgreSQL_INCLUDE_DIR PostgreSQL_TYPE_INCLUDE_DIR +- VERSION_VAR PostgreSQL_VERSION_STRING) +-set( PostgreSQL_FOUND ${POSTGRESQL_FOUND}) ++include (FindPackageHandleStandardArgs) ++find_package_handle_standard_args (PostgreSQL ++ REQUIRED_VARS ++ PostgreSQL_LIBRARY_DIRS ++ PostgreSQL_CONFIG_DIR ++ PostgreSQL_INCLUDE_DIRS ++ PostgreSQL_LIBRARIES ++ VERSION_VAR ++ PostgreSQL_VERSION_STRING ++) ++set (PostgreSQL_FOUND ${POSTGRESQL_FOUND}) + + # Now try to get the include and library path. +-if(PostgreSQL_FOUND) +- +- set(PostgreSQL_INCLUDE_DIRS ${PostgreSQL_INCLUDE_DIR} ${PostgreSQL_TYPE_INCLUDE_DIR} ) +- set(PostgreSQL_LIBRARY_DIRS ${PostgreSQL_LIBRARY_DIR} ) +- set(PostgreSQL_LIBRARIES ${PostgreSQL_LIBRARY_TO_FIND}) +- +- #message("Final PostgreSQL include dir: ${PostgreSQL_INCLUDE_DIRS}") +- #message("Final PostgreSQL library dir: ${PostgreSQL_LIBRARY_DIRS}") +- #message("Final PostgreSQL libraries: ${PostgreSQL_LIBRARIES}") ++if (PostgreSQL_FOUND) ++ message (STATUS "PostgreSQL include dirs: ${PostgreSQL_INCLUDE_DIRS}") ++ message (STATUS "PostgreSQL library dirs: ${PostgreSQL_LIBRARY_DIRS}") ++ message (STATUS "PostgreSQL libraries: ${PostgreSQL_LIBRARIES}") + endif(PostgreSQL_FOUND) + +-mark_as_advanced(PostgreSQL_INCLUDE_DIR PostgreSQL_TYPE_INCLUDE_DIR PostgreSQL_LIBRARY ) ++mark_as_advanced (PostgreSQL_CONFIG_DIR PostgreSQL_LIB_DIR ++ PostgreSQL_INCLUDE_DIR PostgreSQL_TYPE_INCLUDE_DIR) diff --git a/cmake.spec b/cmake.spec index 0963b3a..c24add4 100644 --- a/cmake.spec +++ b/cmake.spec @@ -8,7 +8,7 @@ Name: cmake Version: 2.8.8 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Cross-platform make system Group: Development/Tools @@ -28,6 +28,10 @@ Patch1: cmake-pkgconfig.patch # http://public.kitware.com/Bug/view.php?id=12965 # https://bugzilla.redhat.com/show_bug.cgi?id=822796 Patch2: cmake-findruby.patch +# Patch to fix FindPostgreSQL +# https://bugzilla.redhat.com/show_bug.cgi?id=828467 +# http://public.kitware.com/Bug/view.php?id=13378 +Patch3: cmake-FindPostgreSQL.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: gcc-gfortran @@ -79,6 +83,7 @@ The %{name}-gui package contains the Qt based GUI for CMake. %patch0 -p1 -b .dcmtk %patch1 -p1 -b .pkgconfig %patch2 -p1 -b .findruby +%patch3 -p1 -b .findpostgresql %build @@ -175,6 +180,9 @@ update-mime-database %{_datadir}/mime &> /dev/null || : %changelog +* Thu Jul 5 2012 Orion Poplawski 2.8.8-5 +- Add patch to fix FindPostgreSQL (bug 828467) + * Mon May 21 2012 Orion Poplawski 2.8.8-4 - Add patch to fix FindRuby (bug 822796)