Hi!

Is any of the maintainers of the package looking into fixing this?

The cause of the problem is that a function declared in a header file in
the heimdal package has changed its signature.

The old header said:

krb5_error_code
hdb_generate_key_set_password (
        krb5_context /*context*/,
        krb5_principal /*principal*/,
        const char */*password*/,
        Key **/*keys*/,
        size_t */*num_keys*/);

The new version says:

krb5_error_code
hdb_generate_key_set_password (
        krb5_context /*context*/,
        krb5_principal /*principal*/,
        const char */*password*/,
        krb5_key_salt_tuple */*ks_tuple*/,
        int /*n_ks_tuple*/,
        Key **/*keys*/,
        size_t */*num_keys*/);

So there are two new arguments added in the middle at positions 4 and
5. The openldap code calls this function in one location in the file
contrib/slapd-modules/smbk5pwd/smbk5pwd.c on line 470-471:

        ret = hdb_generate_key_set_password(context, ent.principal,
                qpw->rs_new.bv_val, &ent.keys.val, &nkeys);

Without any knowledge about what this function does and what the
smbk5pwd module is, the best I can do is to add a NULL and a 0 for the
two new arguments:

        ret = hdb_generate_key_set_password(context, ent.principal,
                qpw->rs_new.bv_val, NULL, 0, &ent.keys.val, &nkeys);

Adding a patch implementing this change makes the package compile. But
since I have no idea what the module does, I also can not test if works
with this patch. A package that builds at all is better than a package
that is FTBFS though.

Does anyone have a better idea?

        Mattias

--- openldap-2.4.28.orig/contrib/slapd-modules/smbk5pwd/smbk5pwd.c	2011-11-25 19:52:29.000000000 +0100
+++ openldap-2.4.28/contrib/slapd-modules/smbk5pwd/smbk5pwd.c	2012-03-30 10:03:14.035984880 +0200
@@ -468,7 +468,7 @@
 		}
 
 		ret = hdb_generate_key_set_password(context, ent.principal,
-			qpw->rs_new.bv_val, &ent.keys.val, &nkeys);
+			qpw->rs_new.bv_val, NULL, 0, &ent.keys.val, &nkeys);
 		ent.keys.len = nkeys;
 		hdb_seal_keys(context, db, &ent);
 		krb5_free_principal( context, ent.principal );

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to