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
>


Reply via email to