diff options
Diffstat (limited to 'net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch')
-rw-r--r-- | net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch b/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch new file mode 100644 index 000000000000..e47f61ee894a --- /dev/null +++ b/net-fs/cvmfs/files/cvmfs-2.1.20.0_p05-geoip-missing-cmake.patch @@ -0,0 +1,151 @@ +--- /dev/null ++++ cmake/Modules/FindLibGeoIP.cmake +@@ -0,0 +1,68 @@ ++# - Try to find GeoIP headers and libraries ++# ++# Usage of this module as follows: ++# ++# find_package(LibGeoIP) ++# ++# Variables used by this module, they can change the default behaviour and need ++# to be set before calling find_package: ++# ++# LibGeoIP_ROOT_DIR Set this variable to the root installation of ++# libGeoIP if the module has problems finding the ++# proper installation path. ++# ++# Variables defined by this module: ++# ++# LIBGEOIP_FOUND System has GeoIP libraries and headers ++# LibGeoIP_LIBRARY The GeoIP library ++# LibGeoIP_INCLUDE_DIR The location of GeoIP headers ++# HAVE_GEOIP_COUNTRY_EDITION_V6 Whether the API support IPv6 country edition ++# HAVE_GEOIP_CITY_EDITION_REV0_V6 Whether the API supports IPv6 city edition ++ ++find_path(LibGeoIP_ROOT_DIR ++ NAMES include/GeoIPCity.h ++) ++ ++if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ++ # the static version of the library is preferred on OS X for the ++ # purposes of making packages (libGeoIP doesn't ship w/ OS X) ++ set(libgeoip_names libGeoIp.a GeoIP) ++else () ++ set(libgeoip_names GeoIP) ++endif () ++ ++find_library(LibGeoIP_LIBRARY ++ NAMES ${libgeoip_names} ++ HINTS ${LibGeoIP_ROOT_DIR}/lib ++) ++ ++find_path(LibGeoIP_INCLUDE_DIR ++ NAMES GeoIPCity.h ++ HINTS ${LibGeoIP_ROOT_DIR}/include ++) ++ ++include(FindPackageHandleStandardArgs) ++find_package_handle_standard_args(LibGeoIP DEFAULT_MSG ++ LibGeoIP_LIBRARY ++ LibGeoIP_INCLUDE_DIR ++) ++ ++if (LIBGEOIP_FOUND) ++ include(CheckCXXSourceCompiles) ++ set(CMAKE_REQUIRED_INCLUDES ${LibGeoIP_INCLUDE_DIR}) ++ check_cxx_source_compiles(" ++ #include <GeoIPCity.h> ++ int main() { GEOIP_COUNTRY_EDITION_V6; return 0; } ++ " HAVE_GEOIP_COUNTRY_EDITION_V6) ++ check_cxx_source_compiles(" ++ #include <GeoIPCity.h> ++ int main() { GEOIP_CITY_EDITION_REV0_V6; return 0; } ++ " HAVE_GEOIP_CITY_EDITION_REV0_V6) ++ set(CMAKE_REQUIRED_INCLUDES) ++endif () ++ ++mark_as_advanced( ++ LibGeoIP_ROOT_DIR ++ LibGeoIP_LIBRARY ++ LibGeoIP_INCLUDE_DIR ++) +\ No newline at end of file +diff --git a/cmake/Modules/FindPythonModule.cmake b/cmake/Modules/FindPythonModule.cmake +new file mode 100644 +index 0000000..1a29315 +--- /dev/null ++++ cmake/Modules/FindPythonModule.cmake +@@ -0,0 +1,24 @@ ++# Find if a Python module is installed ++# Found at http://www.cmake.org/pipermail/cmake/2011-January/041666.html ++# To use do: find_python_module(PyQt4 REQUIRED) ++function(find_python_module module) ++ string(TOUPPER ${module} module_upper) ++ if(NOT PYTHON_${module_upper}) ++ include (FindPythonInterp) ++ if(ARGC GREATER 1 AND ARGV1 STREQUAL "REQUIRED") ++ set(PY_${module}_FIND_REQUIRED TRUE) ++ endif() ++ # A module's location is usually a directory, but for binary modules ++ # it's a .so file. ++ execute_process(COMMAND "${PYTHON_EXECUTABLE}" "-c" ++ "import re, ${module}; print(re.compile('/__init__.py.*').sub('',${module}.__file__))" ++ RESULT_VARIABLE _${module}_status ++ OUTPUT_VARIABLE _${module}_location ++ ERROR_QUIET ++ OUTPUT_STRIP_TRAILING_WHITESPACE) ++ if(${_${module}_status} EQUAL 0) ++ set(PYTHON_${module_upper} ${_${module}_location} CACHE STRING "Location of Python module ${module}") ++ endif(${_${module}_status} EQUAL 0) ++ endif(NOT PYTHON_${module_upper}) ++ find_package_handle_standard_args(PY_${module} DEFAULT_MSG PYTHON_${module_upper}) ++endfunction(find_python_module) +\ No newline at end of file +diff --git a/cvmfs/CMakeLists.txt b/cvmfs/CMakeLists.txt +index cb09b94..44be85e 100644 +--- cvmfs/CMakeLists.txt ++++ cvmfs/CMakeLists.txt +@@ -347,9 +347,9 @@ if (BUILD_SERVER) + # create targets with corresponding sources and static link libraries + add_executable (cvmfs_swissknife ${CVMFS_SWISSKNIFE_SOURCES}) + add_executable (cvmfs_suid_helper ${CVMFS_SUID_HELPER_SOURCES}) +- add_custom_target (geoip ALL) + + if (GEOIP_BUILTIN) ++ add_custom_target (geoip ALL) + add_dependencies (python-geoip libgeoip) + add_dependencies (geoip python-geoip) + endif (GEOIP_BUILTIN) +--- CMakeLists.txt.orig 2015-08-04 15:33:53.383868890 +0000 ++++ CMakeLists.txt 2015-08-04 15:58:03.133842858 +0000 +@@ -145,6 +145,12 @@ + endif (EXISTS "${CMAKE_SOURCE_DIR}/bootstrap.sh") + + # ++# include some common functionality ++# ++include (FindPythonModule) ++ ++ ++# + # set some default flags + # + # flags in CMAKE_C**_FLAGS are always passed to the compiler +@@ -309,13 +315,15 @@ + set (INCLUDE_DIRECTORIES ${INCLUDE_DIRECTORIES} ${GTEST_INCLUDE_DIRS}) + endif (GOOGLETEST_BUILTIN) + ++if (BUILD_SERVER OR BUILD_UNITTESTS) + if (GEOIP_BUILTIN) + include (${LIBGEOIP_BUILTIN_LOCATION}/CVMFS-CMakeLists.txt) + include (${PYTHON_GEOIP_BUILTIN_LOCATION}/CVMFS-CMakeLists.txt) + else (GEOIP_BUILTIN) +- find_package (GeoIP REQUIRED) +- find_package (python-GeoIP REQUIRED) ++ find_package (LibGeoIP REQUIRED) ++ find_python_module (GeoIP REQUIRED) + endif (GEOIP_BUILTIN) ++endif (BUILD_SERVER OR BUILD_UNITTESTS) + + # required libraries for client and libcvmfs + if (BUILD_CVMFS OR BUILD_LIBCVMFS) |