]> git.draconx.ca Git - gentoo-draconx.git/blobdiff - net-libs/libmapi/files/libmapi-2.3-update-credentials-api.patch
gnome-extra/evolution-mapi: Bump.
[gentoo-draconx.git] / net-libs / libmapi / files / libmapi-2.3-update-credentials-api.patch
diff --git a/net-libs/libmapi/files/libmapi-2.3-update-credentials-api.patch b/net-libs/libmapi/files/libmapi-2.3-update-credentials-api.patch
new file mode 100644 (file)
index 0000000..d83487f
--- /dev/null
@@ -0,0 +1,85 @@
+From 47852d453f3119c4232a75a81c61a1af57aa6381 Mon Sep 17 00:00:00 2001
+From: Nick Bowler <nbowler@draconx.ca>
+Date: Thu, 8 Sep 2022 16:35:03 -0400
+Subject: [PATCH 1/3] Adapt for Credentials API changes in Samba.
+
+---
+ configure.ac         | 39 +++++++++++++++++++++++++++++++++++++++
+ libmapi/IProfAdmin.c | 11 +++++++++++
+ 2 files changed, 50 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 97e1d35..65793e9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -473,6 +473,45 @@ DCERPC_SERVER_MODULESDIR=`$PKG_CONFIG --variable=modulesdir dcerpc_server`
+ AC_SUBST(DCERPC_SERVER_MODULESDIR)
+ AC_MSG_RESULT($DCERPC_SERVER_MODULESDIR)
++# Probe for samba credentials.h incompatible change
++
++AC_CACHE_CHECK([whether Samba defines CRED_USE_KERBEROS_xxx],
++[oc_cv_samba_cred_use_kerberos],
++[oc_save_CFLAGS=$CFLAGS
++CFLAGS="$CFLAGS $SAMBA_CFLAGS"
++AC_COMPUTE_INT([val],
++  [CRED_USE_KERBEROS_DISABLED | CRED_USE_KERBEROS_DESIRED | CRED_USE_KERBEROS_REQUIRED],
++  [#include <credentials.h>],
++  [val=0])
++AS_CASE([$val],
++  [0], [oc_cv_samba_cred_use_kerberos=no],
++  [oc_cv_samba_cred_use_kerberos=yes])
++CFLAGS=$oc_save_CFLAGS])
++
++AS_CASE([$oc_cv_samba_cred_use_kerberos],
++  [yes], [AC_DEFINE([SAMBA_CRED_USE_KERBEROS], [1],
++    [Define to 1 if Samba provides new-style CRED_USE_KERBEROS constants])])
++
++AC_CACHE_CHECK([for Samba cli_credentials_set_kerberos_state],
++[oc_cv_samba_cli_credentials_flavour],
++[oc_cv_samba_cli_credentials_flavour=no
++oc_save_CFLAGS=$CFLAGS oc_save_LIBS=$LIBS
++CFLAGS="$CFLAGS $SAMBA_CFLAGS"
++LIBS="$LIBS $SAMBA_LIBS"
++AC_LINK_IFELSE(
++  [AC_LANG_PROGRAM([#include <credentials.h>],
++      [return cli_credentials_set_kerberos_state(0, 0, 0)])],
++  [oc_cv_samba_cli_credentials_flavour="3-arg (new-style)"],
++  [AC_LINK_IFELSE(
++    [AC_LANG_PROGRAM([#include <credentials.h>],
++      [return cli_credentials_set_kerberos_state(0, 0)])],
++    [oc_cv_samba_cli_credentials_flavour="2-arg (old-style)"])])
++CFLAGS=$oc_save_CFLAGS LIBS=$oc_save_LIBS])
++
++AS_CASE([$oc_cv_samba_cli_credentials_flavour],
++  [*new*], [AC_DEFINE([SAMBA_CRED_NEW_STYLE_SET_STATE], [1],
++    [Define to 1 if Samba cli_credentials_set_kerberos_state take 3 arguments])])
++
+ dnl ---------------------------------------------------------------------------
+ dnl Finally add libmapi to the library list
+ dnl ---------------------------------------------------------------------------
+diff --git a/libmapi/IProfAdmin.c b/libmapi/IProfAdmin.c
+index 6b853a9..a0c02d9 100644
+--- a/libmapi/IProfAdmin.c
++++ b/libmapi/IProfAdmin.c
+@@ -24,6 +24,17 @@
+ #include <ldb_errors.h>
+ #include <ldb.h>
++#if SAMBA_CRED_USE_KERBEROS
++#  define CRED_AUTO_USE_KERBEROS CRED_USE_KERBEROS_DESIRED
++#  define CRED_DONT_USE_KERBEROS CRED_USE_KERBEROS_DISABLED
++#  define CRED_MUST_USE_KERBEROS CRED_USE_KERBEROS_REQUIRED
++#endif
++
++#if SAMBA_CRED_NEW_STYLE_SET_STATE
++#define cli_credentials_set_kerberos_state(a, b) \
++      cli_credentials_set_kerberos_state(a, b, CRED_SPECIFIED)
++#endif
++
+ /**
+    \file IProfAdmin.c
+-- 
+2.35.1
+