Corrupted libsasl2.pc file and no available methods

Stefano Sabatini stefasab at gmail.com
Wed Apr 15 07:42:30 EDT 2015


Hi,

I'm using libsasl2 compiled from code source, using latest version
2.1.26 downloaded here:
ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-2.1.26.tar.gz

and I'm facing a few issues.

1. The generated libsasl2.pc file is broken, since it reference
exec_prefix which is not defined (this is probably a bug in
pkg-config, yet the fix is to simply add a line in the .pc.in file, so
it is probably the solution to go.

The generated libsasl2.pc file is fixed by adding the lines at the
beginning of libsasl2.pc.in:
prefix = @prefix@
exec_prefix = @exec_prefix@
includedir = @includedir@
libdir = @libdir@

This problem has been reported several times, for example see:
https://trac.macports.org/ticket/41300

2. I cannot get any authentication mechanism available.

I have this simple program:
-------------------list-sasl-methods.c --------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <sasl/sasl.h>

int main(void)
{
    sasl_conn_t *conn;
    int ret;
    const char *tmp;

    if ((ret = sasl_server_init(NULL, "foo")) < 0) {
        fprintf(stderr, "Could not init SASL library: %s\n",
                sasl_errstring(ret, NULL, NULL));
        return 1;
    }

    ret = sasl_server_new("foo", /* Registered name of service */
                          NULL, /* Fully qualified domain name; NULL says use gethostname() */
                          NULL, /* The user realm used for password */
                          NULL, NULL, /* IP Address information strings */
                          NULL, /* Callbacks supported only for this connection */
                          0, /* security flags */
                          &conn);

    if (ret != SASL_OK) {
        fprintf(stderr, "SASL new server creation failed: %s\n", sasl_errstring(ret, NULL, NULL));
        return 1;
    }

    sasl_listmech(conn, NULL, NULL, "\n", NULL, &tmp, NULL, NULL);

    printf("%s", tmp);
    return 0;
}
-------------------list-sasl-methods.c ---------------------------------

If I use the system libraries this program will list all the methods.

I tried to check the config.log file to see if something was wrong
during compilation but all seem fine.

What am I missing, or in other words how can I check which
authentication mechanisms were enabled during configuration?

Thank you in advance. 


More information about the Cyrus-sasl mailing list