Corrupted libsasl2.pc file and no available methods

Stefano Sabatini <[email protected]>
Newsgroups gmane.comp.security.cyrus.sasl
Message-ID <20150415114230.GC14732@barisone>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.