summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2019-01-27 01:03:25 +0100
committerSlávek Banko <slavek.banko@axis.cz>2019-02-04 11:40:37 +0100
commit08fd4a51ed2390a7af803faca81108e0a6a91c0f (patch)
treecac71c83e27d308f3b2d28f76c4aed57d29f8bf8
parent6d8d495faf0a8670d1657ec4dc0fb84f3e3d249a (diff)
downloadlibtdeldap-08fd4a51ed2390a7af803faca81108e0a6a91c0f.tar.gz
libtdeldap-08fd4a51ed2390a7af803faca81108e0a6a91c0f.zip
Update CMake rules
+ Prefer Heimdal during Kerberos detection. + Add a check whether the Kerberos is Heimdal. + Add a check whether the compiler supports the option -fpermissive. + Add an option for the user to specify SYSTEM_CA_STORE_REGENERATE_COMMAND. + Set the library version to 1.0.0. Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-rw-r--r--CMakeLists.txt5
-rw-r--r--ConfigureChecks.cmake19
-rw-r--r--src/CMakeLists.txt6
-rw-r--r--src/libtdeldap.cpp2
4 files changed, 26 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5992725..f4aeb28 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -55,7 +55,8 @@ option( BUILD_TRANSLATIONS "Build translations" ${BUILD_ALL} )
set( KDE_CONFDIR "/etc/trinity" CACHE STRING "TDE Settings Directory" )
set( KRB5_FILE "/etc/krb5.conf" CACHE STRING "Kerberos config file" )
-set( SYSTEM_CA_STORE_CERT_LOCATION "/usr/local/share/ca-certificates/" CACHE STRING "Location of ca-certificates" )
+set( SYSTEM_CA_STORE_CERT_LOCATION "/usr/local/share/ca-certificates/" CACHE STRING "Location of ca-certificates" )
+set( SYSTEM_CA_STORE_REGENERATE_COMMAND "update-ca-certificates" CACHE STRING "Command to update ca-certificates" )
set( CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_OPENLDAP_RELOAD_COMMAND "/etc/init.d/slapd force-reload" CACHE STRING "Cron command to update openLDAP" )
@@ -66,7 +67,7 @@ include( ConfigureChecks.cmake )
###### global compiler settings
-add_definitions( -DHAVE_CONFIG_H -UTQT_NO_ASCII_CAST -fpermissive )
+add_definitions( -DHAVE_CONFIG_H -UTQT_NO_ASCII_CAST ${ENABLE_PERMISSIVE_FLAG} )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" )
set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" )
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
index e8b007b..3aa03f9 100644
--- a/ConfigureChecks.cmake
+++ b/ConfigureChecks.cmake
@@ -39,10 +39,10 @@ endif( NOT HAVE_LIBLDAP )
##### check for krb5
-pkg_search_module( KRB5 krb5 )
+pkg_search_module( KRB5 heimdal-krb5 krb5 )
if( NOT KRB5_FOUND)
if( NOT DEFINED KRB5_CONFIG_EXECUTABLE )
- find_program( KRB5_CONFIG_EXECUTABLE NAMES krb5-config )
+ find_program( KRB5_CONFIG_EXECUTABLE NAMES krb5-config.heimdal krb5-config )
if( NOT KRB5_CONFIG_EXECUTABLE )
tde_message_fatal( "krb5 library is required but not found on your system" )
endif( )
@@ -62,3 +62,18 @@ if( NOT KRB5_FOUND)
set( KRB5_FOUND 1 )
endif( )
endif( )
+
+find_file( KRB5_ASN1_H
+ NAMES krb5_asn1.h
+ HINTS ${KRB5_INCLUDE_DIRS}
+)
+if( "${KRB5_ASN1_H}" STREQUAL "KRB5_ASN1_H-NOTFOUND" )
+ tde_message_fatal( "Heimdal Kerberos is required, but was not found on our system" )
+endif( )
+
+
+# check compiler permissive flag
+check_cxx_compiler_flag( -fpermissive HAVE_PERMISSIVE_SUPPORT )
+if( HAVE_PERMISSIVE_SUPPORT )
+ set( ENABLE_PERMISSIVE_FLAG "-fpermissive" )
+endif( )
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a8db41b..8395331 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -11,6 +11,7 @@ include_directories(
link_directories(
${TQT_LIBRARY_DIRS}
${TDE_LIB_DIR}
+ ${KRB5_LIBRARY_DIRS}
)
@@ -30,9 +31,10 @@ tde_add_library( tdeldap SHARED AUTOMOC
tdesu
krb5 kadm5clnt kadm5srv hdb lber
ldap
-
+
+ VERSION 1.0.0
DESTINATION ${LIB_INSTALL_DIR}
-)
+)
##### headers
diff --git a/src/libtdeldap.cpp b/src/libtdeldap.cpp
index 236f307..0c130bd 100644
--- a/src/libtdeldap.cpp
+++ b/src/libtdeldap.cpp
@@ -124,7 +124,9 @@ extern "C" {
#define SYSTEM_CA_STORE_CERT_LOCATION "/usr/local/share/ca-certificates/"
#endif
+#ifndef SYSTEM_CA_STORE_REGENERATE_COMMAND
#define SYSTEM_CA_STORE_REGENERATE_COMMAND "update-ca-certificates"
+#endif
#ifndef CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_OPENLDAP_RELOAD_COMMAND
#define CRON_UPDATE_PRIMARY_REALM_CERTIFICATES_OPENLDAP_RELOAD_COMMAND "/etc/init.d/slapd force-reload"