forked from pool/openvas-smb
95 lines
3.3 KiB
Diff
95 lines
3.3 KiB
Diff
From 2dec4204de81f79922c8b77f54404983172360a8 Mon Sep 17 00:00:00 2001
|
|
From: Martin Hauke <mardnh@gmx.de>
|
|
Date: Sun, 14 Apr 2019 20:40:10 +0200
|
|
Subject: [PATCH] Fix heimdal gssapi dependencies
|
|
|
|
libheimdal on openSUSE does not provide a pkg-config file for gssapi.
|
|
---
|
|
CMakeLists.txt | 7 +++----
|
|
cmake/Modules/FindGSSAPI.cmake | 34 ++++++++++++++++++++++++++++++++++
|
|
samba/CMakeLists.txt | 2 +-
|
|
3 files changed, 38 insertions(+), 5 deletions(-)
|
|
create mode 100644 cmake/Modules/FindGSSAPI.cmake
|
|
|
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 021b08f..e9515c5 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -30,6 +30,8 @@ project(openvas-smb
|
|
|
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|
|
|
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
|
|
+
|
|
find_package(Perl REQUIRED)
|
|
|
|
include (FindPkgConfig)
|
|
@@ -144,12 +146,9 @@ endif (NOT INCLUDEDIR)
|
|
message ("-- Install prefix: ${CMAKE_INSTALL_PREFIX}")
|
|
|
|
pkg_check_modules (GNUTLS REQUIRED gnutls>=3.2.15)
|
|
-pkg_check_modules (GSSAPI REQUIRED heimdal-gssapi>=1.6.0)
|
|
+find_package(GSSAPI REQUIRED heimdal-gssapi>=1.6.0)
|
|
pkg_check_modules (POPT REQUIRED popt)
|
|
|
|
-if(${GSSAPI_VERSION} VERSION_LESS "7.5.0")
|
|
- add_definitions(-DOLD_HEIMDAL)
|
|
-endif()
|
|
set (CMAKE_C_FLAGS "-fPIC -O2 -D_FORTIFY_SOURCE=2 -fstack-protector ${CMAKE_C_FLAGS}")
|
|
set (CMAKE_C_FLAGS "-Wno-unused-result -fno-strict-aliasing ${CMAKE_C_FLAGS}")
|
|
set (LINKER_HARDENING_FLAGS "-Wl,-z,relro -Wl,-z,now")
|
|
diff --git a/cmake/Modules/FindGSSAPI.cmake b/cmake/Modules/FindGSSAPI.cmake
|
|
new file mode 100644
|
|
index 0000000..6dcf570
|
|
--- /dev/null
|
|
+++ b/cmake/Modules/FindGSSAPI.cmake
|
|
@@ -0,0 +1,34 @@
|
|
+INCLUDE(FindPkgConfig)
|
|
+PKG_CHECK_MODULES(PC_GSSAPI "gssapi")
|
|
+
|
|
+FIND_PATH(GSSAPI_INCLUDE_DIRS
|
|
+ NAMES gssapi/gssapi.h
|
|
+ HINTS ${PC_GSSAPI_INCLUDE_DIR}
|
|
+ ${CMAKE_INSTALL_PREFIX}/include
|
|
+ ${LIBGSSAPI_INSTALL_PREFIX}/include
|
|
+ PATHS
|
|
+ /usr/local/include
|
|
+ /usr/include
|
|
+)
|
|
+
|
|
+FIND_LIBRARY(GSSAPI_LIBRARIES
|
|
+ NAMES gssapi libgssapi
|
|
+ HINTS ${PC_GSSAPI_LIBDIR}
|
|
+ ${CMAKE_INSTALL_PREFIX}/lib
|
|
+ ${CMAKE_INSTALL_PREFIX}/lib64
|
|
+ PATHS
|
|
+ /usr/local/lib
|
|
+ /usr/lib
|
|
+)
|
|
+
|
|
+if (GSSAPI_LIBRARIES AND GSSAPI_INCLUDE_DIRS)
|
|
+ set(LIBGSSAPI_FOUND TRUE CACHE INTERNAL "gssapi")
|
|
+ message(STATUS "Found gssapi: ${GSSAPI_INCLUDE_DIRS}, ${GSSAPI_LIBRARIES}")
|
|
+else (GSSAPI_LIBRARIES AND GSSAPI_INCLUDE_DIRS)
|
|
+ set(LIBGSSAPI_FOUND FALSE CACHE INTERNAL "gssapi found")
|
|
+ message(STATUS "gssapi not found")
|
|
+endif (GSSAPI_LIBRARIES AND GSSAPI_INCLUDE_DIRS)
|
|
+
|
|
+INCLUDE(FindPackageHandleStandardArgs)
|
|
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSSAPI DEFAULT_MSG GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIRS)
|
|
+MARK_AS_ADVANCED(GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIRS)
|
|
diff --git a/samba/CMakeLists.txt b/samba/CMakeLists.txt
|
|
index 82f55e6..b8eef7f 100644
|
|
--- a/samba/CMakeLists.txt
|
|
+++ b/samba/CMakeLists.txt
|
|
@@ -450,5 +450,5 @@ add_custom_command(
|
|
add_library(samba-static STATIC ${RPC_GEN_SRC} ${SAMBA_SRC} ${RPC_GEN_HEADERS})
|
|
# Link against static heimdal-gssapi ldflags returned by pkg-config
|
|
# Link against libhdb as well since it is missing from the list
|
|
-target_link_libraries (samba-static ${GSSAPI_STATIC_LDFLAGS} hdb)
|
|
+target_link_libraries (samba-static com_err asn1 krb5 gssapi hdb)
|
|
set_target_properties (samba-static PROPERTIES CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
|
--
|
|
2.16.4
|
|
|