On Wed, 2006-12-06 at 11:49 +0100, Adrian von Bidder wrote: > I'm just wondering if #397771 (SASL auth breaks with current postfix + cyrus > sasl from testing) shouldn't be RC. As far as I understand, basically > every postfix+sasl set up will break on sarge->etch upgrade. > > (latest bug activity: 25. November) > > Sorry to be unable to help. No, thanks for being alert! The bug is in fact going to break all postfix+sasl sarge->etch upgrades. RC or not, fortunately, the fix is actually pretty trivial, or at least it's known, but something unrelated to the fix itself doesn't go right. The problem right now is that portions of code added by 10tls.dpatch which should get built in when the SASL version is >= 2.1.22, don't get built in. Here's the compiler directive that attempts to test that the version requirement is fulfilled: #if SASL_VERSION_MAJOR >= 2 && (SASL_VERSION_MAJOR > 2 || SASL_VERSION_MINOR >= 1) && (SASL_VERSION_MAJOR > 2 || (SASL_VERSION_MINOR > 1 || SASL_VERSION_STEP >= 22)) /* ... 2.1.22-specific code ... */ #endif That's sprinkled around in xsasl_cyrus_client.c, xsasl_cyrus_common.h, xsasl_cyrus_log.c and xsasl_cyrus_server.c, all residing in src/xsasl in the postfix source tree. However, building postfix 2.3.4-2 results in a binary without the SASL >= 2.1.22 -specific code. If I remove the version check above from all places, the result is a working postfix (ie. one that sets the primary SASL configuration file path to /etc/postfix/sasl). I've tested this right down to a successful SMTP AUTH session. Is the version check broken? I've read the patch repeatedly, and have verified that all checks are the same. I even copied each version check from 10tls.dpatch into a simple test case piece of code which does #include <sasl.h> at the beginning to get the version components like the postfix code, and all the conditional code was compiled in. I fail to see the mistake. Is this due to a broken compiler? Help would be appreciated. Thanks, -- Fabian Fagerholm <fabbe@paniq.net>
Attachment:
signature.asc
Description: This is a digitally signed message part