]> git.draconx.ca Git - gentoo-draconx.git/blob - 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
1 From 47852d453f3119c4232a75a81c61a1af57aa6381 Mon Sep 17 00:00:00 2001
2 From: Nick Bowler <nbowler@draconx.ca>
3 Date: Thu, 8 Sep 2022 16:35:03 -0400
4 Subject: [PATCH 1/3] Adapt for Credentials API changes in Samba.
5
6 ---
7  configure.ac         | 39 +++++++++++++++++++++++++++++++++++++++
8  libmapi/IProfAdmin.c | 11 +++++++++++
9  2 files changed, 50 insertions(+)
10
11 diff --git a/configure.ac b/configure.ac
12 index 97e1d35..65793e9 100644
13 --- a/configure.ac
14 +++ b/configure.ac
15 @@ -473,6 +473,45 @@ DCERPC_SERVER_MODULESDIR=`$PKG_CONFIG --variable=modulesdir dcerpc_server`
16  AC_SUBST(DCERPC_SERVER_MODULESDIR)
17  AC_MSG_RESULT($DCERPC_SERVER_MODULESDIR)
18  
19 +# Probe for samba credentials.h incompatible change
20 +
21 +AC_CACHE_CHECK([whether Samba defines CRED_USE_KERBEROS_xxx],
22 +[oc_cv_samba_cred_use_kerberos],
23 +[oc_save_CFLAGS=$CFLAGS
24 +CFLAGS="$CFLAGS $SAMBA_CFLAGS"
25 +AC_COMPUTE_INT([val],
26 +  [CRED_USE_KERBEROS_DISABLED | CRED_USE_KERBEROS_DESIRED | CRED_USE_KERBEROS_REQUIRED],
27 +  [#include <credentials.h>],
28 +  [val=0])
29 +AS_CASE([$val],
30 +  [0], [oc_cv_samba_cred_use_kerberos=no],
31 +  [oc_cv_samba_cred_use_kerberos=yes])
32 +CFLAGS=$oc_save_CFLAGS])
33 +
34 +AS_CASE([$oc_cv_samba_cred_use_kerberos],
35 +  [yes], [AC_DEFINE([SAMBA_CRED_USE_KERBEROS], [1],
36 +    [Define to 1 if Samba provides new-style CRED_USE_KERBEROS constants])])
37 +
38 +AC_CACHE_CHECK([for Samba cli_credentials_set_kerberos_state],
39 +[oc_cv_samba_cli_credentials_flavour],
40 +[oc_cv_samba_cli_credentials_flavour=no
41 +oc_save_CFLAGS=$CFLAGS oc_save_LIBS=$LIBS
42 +CFLAGS="$CFLAGS $SAMBA_CFLAGS"
43 +LIBS="$LIBS $SAMBA_LIBS"
44 +AC_LINK_IFELSE(
45 +  [AC_LANG_PROGRAM([#include <credentials.h>],
46 +      [return cli_credentials_set_kerberos_state(0, 0, 0)])],
47 +  [oc_cv_samba_cli_credentials_flavour="3-arg (new-style)"],
48 +  [AC_LINK_IFELSE(
49 +    [AC_LANG_PROGRAM([#include <credentials.h>],
50 +      [return cli_credentials_set_kerberos_state(0, 0)])],
51 +    [oc_cv_samba_cli_credentials_flavour="2-arg (old-style)"])])
52 +CFLAGS=$oc_save_CFLAGS LIBS=$oc_save_LIBS])
53 +
54 +AS_CASE([$oc_cv_samba_cli_credentials_flavour],
55 +  [*new*], [AC_DEFINE([SAMBA_CRED_NEW_STYLE_SET_STATE], [1],
56 +    [Define to 1 if Samba cli_credentials_set_kerberos_state take 3 arguments])])
57 +
58  dnl ---------------------------------------------------------------------------
59  dnl Finally add libmapi to the library list
60  dnl ---------------------------------------------------------------------------
61 diff --git a/libmapi/IProfAdmin.c b/libmapi/IProfAdmin.c
62 index 6b853a9..a0c02d9 100644
63 --- a/libmapi/IProfAdmin.c
64 +++ b/libmapi/IProfAdmin.c
65 @@ -24,6 +24,17 @@
66  #include <ldb_errors.h>
67  #include <ldb.h>
68  
69 +#if SAMBA_CRED_USE_KERBEROS
70 +#  define CRED_AUTO_USE_KERBEROS CRED_USE_KERBEROS_DESIRED
71 +#  define CRED_DONT_USE_KERBEROS CRED_USE_KERBEROS_DISABLED
72 +#  define CRED_MUST_USE_KERBEROS CRED_USE_KERBEROS_REQUIRED
73 +#endif
74 +
75 +#if SAMBA_CRED_NEW_STYLE_SET_STATE
76 +#define cli_credentials_set_kerberos_state(a, b) \
77 +       cli_credentials_set_kerberos_state(a, b, CRED_SPECIFIED)
78 +#endif
79 +
80  /**
81     \file IProfAdmin.c
82  
83 -- 
84 2.35.1
85