# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../autofs/autofs-5.0.5-heimdal.patch # Copyright (C) 2011 The OpenSDE Project # # More information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # --- SDE-COPYRIGHT-NOTE-END --- Description: Fix to build against heimdal Origin: Gentoo Linux http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-fs/autofs/files/autofs-5.0.3-heimdal.patch --- autofs-5.0.5/modules/cyrus-sasl.c.orig 2011-03-08 12:17:15.342696284 +0100 +++ autofs-5.0.5/modules/cyrus-sasl.c 2011-03-08 12:28:46.326696273 +0100 @@ -64,6 +64,15 @@ #endif #endif +/** + * The type of a principal is different for MIT Krb5 and Heimdal. + * These macros are provided by Heimdal, and introduced here for MIT. + */ +#ifndef krb5_realm_length +#define krb5_realm_length(r) ((r).length) +#define krb5_realm_data(r) ((r).data) +#endif + /* * Once a krb5 credentials cache is setup, we need to set the KRB5CCNAME * environment variable so that the library knows where to find it. @@ -451,11 +460,11 @@ /* setup a principal for the ticket granting service */ ret = krb5_build_principal_ext(ctxt->krb5ctxt, &tgs_princ, - krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->length, - krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->data, + krb5_realm_length(*krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)), + krb5_realm_data(*krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)), strlen(KRB5_TGS_NAME), KRB5_TGS_NAME, - krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->length, - krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)->data, + krb5_realm_length(*krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)), + krb5_realm_data(*krb5_princ_realm(ctxt->krb5ctxt, krb5_client_princ)), 0); if (ret) { error(logopt,