Some very smart person - I'm REALLY sorry I cannot easily find the link to give proper credit - posted this patch "out there" a few weeks ago. I don't think it's become mainstream yet, but I literally just went through the same problem with authlib 0.59.3 and vpopmail 5.4.17. Yes, the patch works; no I don't know why.
the patch I used came from discussion here: http://www.mail-archive.com/vchkpw@inter7.com/msg24923.html I tried to google for the filename of the patch below but I think it's a filename I made up... I was in a rush to get something built, so my notes are incomplete. Bad dog, I know. Meanwhile, here's the patch code =============== --- courier-authlib-0.59.3/authvchkpw.c 2007-04-22 20:53:30.000000000 +0200 +++ courier-authlib-0.59.3b/authvchkpw.c 2007-04-25 17:53:58.908980669 +0200 @@ -55,16 +55,19 @@ return (*i->callback_func)(a, i->callback_arg); } #if HAVE_HMACLIB #include "libhmac/hmac.h" #include "cramlib.h" +static int auth_vchkpw_login(const char *service, char *authdata, + int (*callback_func)(struct authinfo *, void *), void *callback_arg); + static int auth_vchkpw_cram(const char *service, const char *authtype, char *authdata, int (*callback_func)(struct authinfo *, void *), void *callback_arg) { struct cram_callback_info cci; =================================================== And how I build the authlib for my system cd /usr/src/qmail wget http://superb-west.dl.sourceforge.net/sourceforge/courier/courier-authlib-0.59.3.tar.bz2 bunzip2 courier-authlib-0.59.3.tar.bz2 tar xf courier-authlib-0.59.3.tar chown -R root.root courier-authlib-0.59.3 cd courier-authlib-0.59.3 wget http://www.dermanagement.com/qmail/courier-0.59.3-authvchkpw.patch patch < courier-0.59.3-authvchkpw.patch ./configure \ --prefix=/usr/local/courier-authlib \ --without-authpam \ --without-authldap \ --without-authpwd \ --without-authmysql \ --without-authpgsql \ --without-authshadow \ --without-authuserdb \ --without-authcustom \ --without-authcram \ --without-authpipe \ --with-authdaemon \ --with-redhat \ --with-authvchkpw Good luck. Dave. > I can compile courier-authlib version 0.59.2 or lower just fine with > vpopmail > 5.4.17 but I cannot get newer versions to compile. I tried asking on the > courier-imap list but they say "not our problem." > > Here's the errors: > > -- > > authvchkpw.c: In function 'auth_vchkpw_login': > authvchkpw.c:40: warning: empty declaration > authvchkpw.c:43: error: expected '=', ',', ';', 'asm' or '__attribute__' > before '{' token > In file included from authvchkpw.c:63: > libhmac/hmac.h:15: error: storage class specified for parameter > 'hmac_h_rcsid' > libhmac/hmac.h:15: error: parameter 'hmac_h_rcsid' is initialized > libhmac/hmac.h:50: warning: empty declaration > libhmac/hmac.h:54: error: storage class specified for parameter 'hmac_md5' > libhmac/hmac.h:54: error: storage class specified for parameter > 'hmac_sha1' > libhmac/hmac.h:54: error: storage class specified for parameter > 'hmac_sha256' > libhmac/hmac.h:61: error: storage class specified for parameter > 'hmac_list' > In file included from authvchkpw.c:64: > cramlib.h:17: warning: empty declaration > cramlib.h:19: error: storage class specified for > parameter 'auth_cram_callback' > cramlib.h:26: warning: empty declaration > authvchkpw.c:71: error: expected '=', ',', ';', 'asm' or '__attribute__' > before '{' token > authvchkpw.c:87: error: expected '=', ',', ';', 'asm' or '__attribute__' > before '{' token > authvchkpw.c:106: error: expected '=', ',', ';', 'asm' or '__attribute__' > before '{' token > authvchkpw.c:170: error: expected '=', ',', ';', 'asm' or '__attribute__' > before '{' token > authvchkpw.c:177: error: expected '=', ',', ';', 'asm' or '__attribute__' > before '{' token > authvchkpw.c:227: error: parameter 'authvchkpw_info' is initialized > authvchkpw.c:229: error: 'auth_vchkpw' undeclared (first use in this > function) > authvchkpw.c:229: error: (Each undeclared identifier is reported only once > authvchkpw.c:229: error: for each function it appears in.) > authvchkpw.c:231: error: 'authvchkpwclose' undeclared (first use in this > function) > authvchkpw.c:232: error: 'auth_vchkpw_changepass' undeclared (first use in > this function) > authvchkpw.c:238: error: expected '=', ',', ';', 'asm' or '__attribute__' > before '{' token > authvchkpw.c:240: error: old-style parameter declarations in prototyped > function definition > authvchkpw.c:240: error: expected '{' at end of input > make[2]: *** [authvchkpw.lo] Error 1 > make[2]: Leaving directory `/netsrc/courier-authlib-0.59.3.20070721' > > -- > > This is NOT just for the pre-release, before anyone asks. I tried it > because > they mentioned some authvchkpw fixes. > > -- > -- > Cheers, > Steve >