Imported Upstream version 0.66.1 upstream/0.66.1
authorClinton Ebadi <clinton@unknownlamer.org>
Wed, 30 Apr 2014 02:58:15 +0000 (22:58 -0400)
committerClinton Ebadi <clinton@unknownlamer.org>
Wed, 30 Apr 2014 02:58:15 +0000 (22:58 -0400)
490 files changed:
COPYING
ChangeLog
INSTALL
INSTALL.html
Makefile.am
Makefile.in
NEWS
NEWS.html
README
README.authdebug.html.in
README.authpostgres.html
README.authsqlite.html [new file with mode: 0644]
README.html
README_authlib.html.in
aclocal.m4
auth.h
auth_enumerate.3
auth_enumerate.html
auth_generic.3
auth_generic.html
auth_getoption.3
auth_getoption.html
auth_getuserinfo.3
auth_getuserinfo.html
auth_login.3
auth_login.html
auth_passwd.3
auth_passwd.html
auth_sasl.3
auth_sasl.html
auth_sasl_ex.3
authcustom.c
authdaemon.c
authdaemond.c
authdaemond.in
authdaemonlib.c
authdaemonrc.in
authdaemontest.c
authenumerate.c
authgetconfig.c [new file with mode: 0644]
authinfo.c
authldap.c
authldap.h
authldap.schema
authldapescape.c
authldaplib.c
authldaprc
authlib.3.in
authlib.html.in
authmigrate.in
authmksock.c
authmoduser2.c
authmoduser3.c
authmysql.c
authmysqllib.c
authmysqlrc
authoption.c
authpam.c
authpasswd.1
authpasswd.c
authpasswd.html
authpgsql.c
authpgsqllib.c
authpgsqlrc
authpipe.c
authpwd.c
authpwdenumerate.c
authsasl.c
authsaslclient.c
authsaslclient.h
authsaslclientcram.c
authsaslclientcrammd5.c
authsaslclientcramsha1.c
authsaslclientlogin.c
authsaslclientplain.c
authsaslcram.c
authsasllogin.c
authsaslplain.c
authshadow.c
authsqlite.c [new file with mode: 0644]
authsqlite.h [new file with mode: 0644]
authsqlitelib.c [new file with mode: 0644]
authsqliterc [new file with mode: 0644]
authsyschangepwd.c
authsyscommon.c
authsystem.passwd.in [changed mode: 0755->0644]
authtest.1
authtest.c
authtest.html
authuserdb.c
authuserdbpwd.c
authwait.h
bdbobj/aclocal.m4 [deleted file]
checkpassword.c
checkpasswordmd5.c
checkpasswordsha1.c
config.guess
config.sub
configure [moved from libltdl/configure with 57% similarity]
configure.ac [moved from configure.in with 89% similarity]
courier-authlib.lpspec
courier-authlib.lpspec.in
courier-authlib.service.in [new file with mode: 0644]
courier-authlib.spec
courier-authlib.spec.in
courier_auth_config.h
courier_auth_config.h.in
courierauth.h
courierauthdebug.h
courierauthsasl.h
courierauthsaslclient.h
courierauthstaticlist.h [moved from authstaticlist.h with 88% similarity]
cramlib.c
cramlib.h
cryptpassword.c
dbobj.config.in
dbobj.h.in
debug.c
depcomp [moved from libltdl/config/depcomp with 50% similarity]
install-sh
liblock/lockmail.1 [deleted file]
liblog/Makefile.am
liblog/Makefile.in
liblog/aclocal.m4
liblog/config.h.in
liblog/configure
liblog/configure.ac [moved from liblog/configure.in with 82% similarity]
liblog/courierlogger.1
liblog/courierlogger.html
liblog/logger.c
libltdl/COPYING.LIB [deleted file]
libltdl/Makefile.am [deleted file]
libltdl/Makefile.in [deleted file]
libltdl/README [deleted file]
libltdl/aclocal.m4 [deleted file]
libltdl/argz.c [deleted file]
libltdl/argz_.h [deleted file]
libltdl/config-h.in [deleted file]
libltdl/config/compile [deleted file]
libltdl/config/config.guess [deleted file]
libltdl/config/config.sub [deleted file]
libltdl/config/install-sh [deleted file]
libltdl/config/missing [deleted file]
libltdl/configure.ac [deleted file]
libltdl/libltdl/lt__alloc.h [deleted file]
libltdl/libltdl/lt__dirent.h [deleted file]
libltdl/libltdl/lt__glibc.h [deleted file]
libltdl/libltdl/lt__private.h [deleted file]
libltdl/libltdl/lt__strl.h [deleted file]
libltdl/libltdl/lt_dlloader.h [deleted file]
libltdl/libltdl/lt_error.h [deleted file]
libltdl/libltdl/lt_system.h [deleted file]
libltdl/libltdl/slist.h [deleted file]
libltdl/loaders/dld_link.c [deleted file]
libltdl/loaders/dlopen.c [deleted file]
libltdl/loaders/dyld.c [deleted file]
libltdl/loaders/load_add_on.c [deleted file]
libltdl/loaders/loadlibrary.c [deleted file]
libltdl/loaders/preopen.c [deleted file]
libltdl/loaders/shl_load.c [deleted file]
libltdl/lt__alloc.c [deleted file]
libltdl/lt__dirent.c [deleted file]
libltdl/lt__strl.c [deleted file]
libltdl/lt_dlloader.c [deleted file]
libltdl/lt_error.c [deleted file]
libltdl/ltdl.c [deleted file]
libltdl/ltdl.h [deleted file]
libltdl/m4/argz.m4 [deleted file]
libltdl/m4/libtool.m4 [deleted file]
libltdl/m4/ltdl.m4 [deleted file]
libltdl/m4/ltoptions.m4 [deleted file]
libltdl/m4/ltsugar.m4 [deleted file]
libltdl/m4/ltversion.m4 [deleted file]
libltdl/m4/lt~obsolete.m4 [deleted file]
libltdl/slist.c [deleted file]
libs/bdbobj/Makefile.am [moved from bdbobj/Makefile.am with 88% similarity]
libs/bdbobj/Makefile.in [moved from bdbobj/Makefile.in with 57% similarity]
libs/bdbobj/aclocal.m4 [moved from rfc822/aclocal.m4 with 78% similarity]
libs/bdbobj/bdbobj.c [moved from bdbobj/bdbobj.c with 100% similarity]
libs/bdbobj/bdbobj.h [moved from bdbobj/bdbobj.h with 97% similarity]
libs/bdbobj/bdbobj2.c [moved from bdbobj/bdbobj2.c with 98% similarity]
libs/bdbobj/bdbobj3.c [moved from bdbobj/bdbobj3.c with 96% similarity]
libs/bdbobj/config.h.in [moved from bdbobj/config.h.in with 85% similarity]
libs/bdbobj/configure [moved from bdbobj/configure with 66% similarity]
libs/bdbobj/configure.ac [moved from bdbobj/configure.in with 96% similarity]
libs/bdbobj/testbdb.C [moved from bdbobj/testbdb.C with 99% similarity]
libs/bdbobj/testsuite [moved from bdbobj/testsuite with 81% similarity]
libs/bdbobj/testsuite.txt [moved from bdbobj/testsuite.txt with 100% similarity]
libs/gdbmobj/Makefile.am [moved from gdbmobj/Makefile.am with 88% similarity]
libs/gdbmobj/Makefile.in [moved from gdbmobj/Makefile.in with 58% similarity]
libs/gdbmobj/aclocal.m4 [moved from libhmac/aclocal.m4 with 78% similarity]
libs/gdbmobj/config.h.in [moved from gdbmobj/config.h.in with 85% similarity]
libs/gdbmobj/configure [moved from gdbmobj/configure with 66% similarity]
libs/gdbmobj/configure.ac [moved from gdbmobj/configure.in with 95% similarity]
libs/gdbmobj/gdbmobj.c [moved from gdbmobj/gdbmobj.c with 97% similarity]
libs/gdbmobj/gdbmobj.h [moved from gdbmobj/gdbmobj.h with 96% similarity]
libs/gdbmobj/gdbmobj2.c [moved from gdbmobj/gdbmobj2.c with 100% similarity]
libs/gdbmobj/gdbmobj3.c [moved from gdbmobj/gdbmobj3.c with 100% similarity]
libs/gdbmobj/testgdbm.C [moved from gdbmobj/testgdbm.C with 100% similarity]
libs/gdbmobj/testsuite [moved from gdbmobj/testsuite with 82% similarity]
libs/gdbmobj/testsuite.txt [moved from gdbmobj/testsuite.txt with 100% similarity]
libs/libhmac/Makefile.am [moved from libhmac/Makefile.am with 93% similarity]
libs/libhmac/Makefile.in [moved from libhmac/Makefile.in with 60% similarity]
libs/libhmac/aclocal.m4 [moved from liblock/aclocal.m4 with 78% similarity]
libs/libhmac/config.h.in [moved from libhmac/config.h.in with 92% similarity]
libs/libhmac/configure [moved from libhmac/configure with 66% similarity]
libs/libhmac/configure.ac [moved from libhmac/configure.in with 95% similarity]
libs/libhmac/hmac.c [moved from libhmac/hmac.c with 97% similarity]
libs/libhmac/hmac.h [moved from libhmac/hmac.h with 96% similarity]
libs/libhmac/md5hmactest.c [moved from libhmac/md5hmactest.c with 96% similarity]
libs/libhmac/md5hmactest.txt [moved from libhmac/md5hmactest.txt with 100% similarity]
libs/libhmac/sha1hmactest.c [moved from libhmac/sha1hmactest.c with 96% similarity]
libs/libhmac/sha1hmactest.txt [moved from libhmac/sha1hmactest.txt with 100% similarity]
libs/liblock/Makefile.am [moved from liblock/Makefile.am with 93% similarity]
libs/liblock/Makefile.in [moved from liblock/Makefile.in with 61% similarity]
libs/liblock/aclocal.m4 [moved from gdbmobj/aclocal.m4 with 78% similarity]
libs/liblock/config.h.in [moved from liblock/config.h.in with 87% similarity]
libs/liblock/configure [moved from liblock/configure with 64% similarity]
libs/liblock/configure.ac [moved from liblock/configure.in with 97% similarity]
libs/liblock/liblock.h [moved from liblock/liblock.h with 96% similarity]
libs/liblock/lockdaemon.c [moved from liblock/lockdaemon.c with 97% similarity]
libs/liblock/lockfcntl.c [moved from liblock/lockfcntl.c with 92% similarity]
libs/liblock/lockflock.c [moved from liblock/lockflock.c with 91% similarity]
libs/liblock/locklockf.c [moved from liblock/locklockf.c with 93% similarity]
libs/liblock/lockmail.1 [new file with mode: 0644]
libs/liblock/lockmail.c [moved from liblock/lockmail.c with 97% similarity]
libs/liblock/lockmail.html [moved from liblock/lockmail.html with 78% similarity]
libs/liblock/locktest.c [moved from liblock/locktest.c with 100% similarity]
libs/liblock/mail.c [moved from liblock/mail.c with 98% similarity]
libs/liblock/mail.h [moved from liblock/mail.h with 97% similarity]
libs/makedat/Makefile.am [moved from makedat/Makefile.am with 83% similarity]
libs/makedat/Makefile.in [moved from makedat/Makefile.in with 60% similarity]
libs/makedat/aclocal.m4 [new file with mode: 0644]
libs/makedat/config.h.in [moved from unicode/unicode_config.h.in with 76% similarity]
libs/makedat/configure [moved from makedat/configure with 65% similarity]
libs/makedat/configure.ac [moved from makedat/configure.in with 86% similarity]
libs/makedat/makedat.in [moved from makedat/makedat.in with 97% similarity, mode: 0644]
libs/makedat/makedatprog.c [moved from makedat/makedatprog.c with 95% similarity]
libs/md5/Makefile.am [moved from md5/Makefile.am with 89% similarity]
libs/md5/Makefile.in [moved from md5/Makefile.in with 59% similarity]
libs/md5/aclocal.m4 [new file with mode: 0644]
libs/md5/config.h.in [moved from md5/config.h.in with 80% similarity]
libs/md5/configure [moved from md5/configure with 64% similarity]
libs/md5/configure.ac [moved from md5/configure.in with 96% similarity]
libs/md5/hmac.c [moved from md5/hmac.c with 100% similarity]
libs/md5/md5.c [moved from md5/md5.c with 98% similarity]
libs/md5/md5.h [moved from md5/md5.h with 100% similarity]
libs/md5/md5_hash.c [moved from md5/md5_hash.c with 94% similarity]
libs/md5/md5test.c [moved from md5/md5test.c with 100% similarity]
libs/md5/md5test.txt [moved from md5/md5test.txt with 100% similarity]
libs/md5/redhat-crypt-md5.c [moved from md5/redhat-crypt-md5.c with 96% similarity]
libs/numlib/Makefile.am [moved from numlib/Makefile.am with 87% similarity]
libs/numlib/Makefile.in [moved from numlib/Makefile.in with 61% similarity]
libs/numlib/aclocal.m4 [new file with mode: 0644]
libs/numlib/atotimet.c [moved from numlib/atotimet.c with 74% similarity]
libs/numlib/atouidt.c [moved from numlib/atouidt.c with 78% similarity]
libs/numlib/changeuidgid.c [moved from numlib/changeuidgid.c with 94% similarity]
libs/numlib/config.h.in [moved from numlib/config.h.in with 78% similarity]
libs/numlib/configure [moved from numlib/configure with 65% similarity]
libs/numlib/configure.ac [moved from numlib/configure.in with 69% similarity]
libs/numlib/numlib.h [moved from numlib/numlib.h with 92% similarity]
libs/numlib/strdevt.c [moved from numlib/strdevt.c with 81% similarity]
libs/numlib/strgidt.c [moved from numlib/strgidt.c with 82% similarity]
libs/numlib/strhdevt.c [moved from numlib/strhdevt.c with 84% similarity]
libs/numlib/strhinot.c [moved from numlib/strhinot.c with 84% similarity]
libs/numlib/strhpidt.c [moved from numlib/strhpidt.c with 84% similarity]
libs/numlib/strhtimet.c [moved from numlib/strhtimet.c with 84% similarity]
libs/numlib/strinot.c [moved from numlib/strinot.c with 82% similarity]
libs/numlib/strofft.c [moved from numlib/strofft.c with 55% similarity]
libs/numlib/strpidt.c [moved from numlib/strpidt.c with 82% similarity]
libs/numlib/strsize.c [moved from numlib/strsize.c with 94% similarity]
libs/numlib/strsizet.c [moved from numlib/strsizet.c with 81% similarity]
libs/numlib/strtimet.c [moved from numlib/strtimet.c with 81% similarity]
libs/numlib/struidt.c [moved from numlib/struidt.c with 82% similarity]
libs/random128/Makefile.am [moved from random128/Makefile.am with 79% similarity]
libs/random128/Makefile.in [moved from random128/Makefile.in with 59% similarity]
libs/random128/aclocal.m4 [new file with mode: 0644]
libs/random128/config.h.in [moved from random128/config.h.in with 85% similarity]
libs/random128/configure [moved from random128/configure with 65% similarity]
libs/random128/configure.ac [moved from random128/configure.in with 97% similarity]
libs/random128/random128.c [moved from random128/random128.c with 96% similarity]
libs/random128/random128.h [moved from random128/random128.h with 88% similarity]
libs/random128/random128alpha.c [moved from random128/random128alpha.c with 84% similarity]
libs/random128/random128binary.c [moved from random128/random128binary.c with 87% similarity]
libs/rfc822/ChangeLog [moved from rfc822/ChangeLog with 80% similarity]
libs/rfc822/Makefile.am [moved from rfc822/Makefile.am with 89% similarity]
libs/rfc822/Makefile.in [moved from rfc822/Makefile.in with 62% similarity]
libs/rfc822/aclocal.m4 [new file with mode: 0644]
libs/rfc822/config.h.in [moved from rfc822/config.h.in with 87% similarity]
libs/rfc822/configure [moved from rfc822/configure with 65% similarity]
libs/rfc822/configure.ac [moved from rfc822/configure.in with 95% similarity]
libs/rfc822/encode.c [moved from rfc822/encode.c with 98% similarity]
libs/rfc822/encode.h [moved from rfc822/encode.h with 75% similarity]
libs/rfc822/encodeautodetect.c [new file with mode: 0644]
libs/rfc822/imaprefs.c [moved from rfc822/imaprefs.c with 99% similarity]
libs/rfc822/imaprefs.h [moved from rfc822/imaprefs.h with 97% similarity]
libs/rfc822/imapsubj.c [moved from rfc822/imapsubj.c with 98% similarity]
libs/rfc822/reftest.c [moved from rfc822/reftest.c with 97% similarity]
libs/rfc822/reftest.txt [moved from rfc822/reftest.txt with 100% similarity]
libs/rfc822/rfc2047.c [new file with mode: 0644]
libs/rfc822/rfc2047.h [moved from rfc822/rfc2047.h with 75% similarity]
libs/rfc822/rfc2047u.c [moved from rfc822/rfc2047u.c with 93% similarity]
libs/rfc822/rfc822.3 [moved from rfc822/rfc822.3 with 55% similarity]
libs/rfc822/rfc822.c [moved from rfc822/rfc822.c with 99% similarity]
libs/rfc822/rfc822.h [moved from rfc822/rfc822.h with 98% similarity]
libs/rfc822/rfc822.html [moved from rfc822/rfc822.html with 91% similarity]
libs/rfc822/rfc822_getaddr.c [moved from rfc822/rfc822_getaddr.c with 91% similarity]
libs/rfc822/rfc822_getaddrs.c [moved from rfc822/rfc822_getaddrs.c with 96% similarity]
libs/rfc822/rfc822_mkdate.c [moved from rfc822/rfc822_mkdate.c with 95% similarity]
libs/rfc822/rfc822_parsedt.c [moved from rfc822/rfc822_parsedt.c with 79% similarity]
libs/rfc822/rfc822hdr.c [moved from rfc822/rfc822hdr.c with 69% similarity]
libs/rfc822/rfc822hdr.h [moved from rfc822/rfc822hdr.h with 81% similarity]
libs/rfc822/testsuite.c [moved from rfc822/testsuite.c with 73% similarity]
libs/rfc822/testsuite.txt [moved from rfc822/testsuite.txt with 81% similarity, mode: 0644]
libs/sha1/Makefile.am [moved from sha1/Makefile.am with 90% similarity]
libs/sha1/Makefile.in [moved from sha1/Makefile.in with 60% similarity]
libs/sha1/aclocal.m4 [new file with mode: 0644]
libs/sha1/config.h.in [moved from sha1/config.h.in with 81% similarity]
libs/sha1/configure [new file with mode: 0755]
libs/sha1/configure.ac [moved from sha1/configure.in with 98% similarity]
libs/sha1/hmac.c [moved from sha1/hmac.c with 95% similarity]
libs/sha1/sha1.c [moved from sha1/sha1.c with 97% similarity]
libs/sha1/sha1.h [moved from sha1/sha1.h with 96% similarity]
libs/sha1/sha1_hash.c [moved from sha1/sha1_hash.c with 96% similarity]
libs/sha1/sha256.c [moved from sha1/sha256.c with 98% similarity]
libs/sha1/sha256_hash.c [moved from sha1/sha256_hash.c with 91% similarity]
libs/sha1/sha512.c [moved from sha1/sha512.c with 98% similarity]
libs/sha1/sha512_hash.c [moved from sha1/sha512_hash.c with 91% similarity]
libs/sha1/testsuite.c [moved from sha1/testsuite.c with 95% similarity]
libs/sha1/testsuite.txt [moved from sha1/testsuite.txt with 100% similarity]
libs/unicode/Makefile.am [new file with mode: 0644]
libs/unicode/Makefile.in [new file with mode: 0644]
libs/unicode/README [moved from unicode/README with 100% similarity]
libs/unicode/aclocal.m4 [new file with mode: 0644]
libs/unicode/configure [new file with mode: 0755]
libs/unicode/configure.ac [new file with mode: 0644]
libs/unicode/eastasianwidth.h [moved from unicode/eastasianwidth.h with 57% similarity]
libs/unicode/enttest.c [new file with mode: 0644]
libs/unicode/graphemebreaktab.h [new file with mode: 0644]
libs/unicode/graphemetest.c [new file with mode: 0644]
libs/unicode/linebreaktab.h [new file with mode: 0644]
libs/unicode/linebreaktab_internal.h [new file with mode: 0644]
libs/unicode/linebreaktest.C [new file with mode: 0644]
libs/unicode/mkcommon.pm [new file with mode: 0644]
libs/unicode/mkeastasianwidth.pl [moved from unicode/mkeastasianwidth.pl with 100% similarity]
libs/unicode/mkgraphemebreak.pl [new file with mode: 0644]
libs/unicode/mkhtmlent.pl [new file with mode: 0644]
libs/unicode/mklinebreak.pl [new file with mode: 0644]
libs/unicode/mkultcase.pl [moved from unicode/mkultcase.pl with 92% similarity]
libs/unicode/mkwordbreak.pl [new file with mode: 0644]
libs/unicode/unicode.c [new file with mode: 0644]
libs/unicode/unicode.h [new file with mode: 0644]
libs/unicode/unicode_config.h.in [new file with mode: 0644]
libs/unicode/unicode_graphemebreak.c [new file with mode: 0644]
libs/unicode/unicode_htmlent.c [new file with mode: 0644]
libs/unicode/unicode_htmlent.h [new file with mode: 0644]
libs/unicode/unicode_linebreak.c [new file with mode: 0644]
libs/unicode/unicode_tablookup.c [new file with mode: 0644]
libs/unicode/unicode_ultcase.c [moved from unicode/unicode_ultcase.c with 85% similarity]
libs/unicode/unicode_ultcasetab.c [new file with mode: 0644]
libs/unicode/unicode_wcwidth.c [new file with mode: 0644]
libs/unicode/unicode_wordbreak.c [new file with mode: 0644]
libs/unicode/unicodebuf.c [new file with mode: 0644]
libs/unicode/unicodecpp.C [new file with mode: 0644]
libs/unicode/unicodefilter.pl [moved from unicode/unicodefilter.pl with 100% similarity]
libs/unicode/unicodetest.c [new file with mode: 0644]
libs/unicode/update.sh [moved from unicode/update.sh with 100% similarity]
libs/unicode/wordbreaktab.h [new file with mode: 0644]
libs/unicode/wordbreaktab_internal.h [new file with mode: 0644]
libs/unicode/wordbreaktest.C [new file with mode: 0644]
ltmain.sh [moved from libltdl/config/ltmain.sh with 67% similarity, mode: 0644]
makedat/aclocal.m4 [deleted file]
makedat/config.h.in [deleted file]
md5/aclocal.m4 [deleted file]
missing
numlib/aclocal.m4 [deleted file]
preauthcustom.c
preauthdaemon.c
preauthldap.c
preauthmysql.c
preauthpam.c
preauthpgsql.c
preauthpwd.c
preauthshadow.c
preauthsqlite.c [new file with mode: 0644]
preauthuserdb.c
preauthuserdbcommon.c
random128/aclocal.m4 [deleted file]
rfc822/encodeautodetect.c [deleted file]
rfc822/rfc2047.c [deleted file]
sha1/aclocal.m4 [deleted file]
sha1/configure [deleted file]
sysconftool
unicode/Makefile.am [deleted file]
unicode/Makefile.in [deleted file]
unicode/aclocal.m4 [deleted file]
unicode/big5.c [deleted file]
unicode/big5.h [deleted file]
unicode/big5.pl [deleted file]
unicode/charsetlist.pl [deleted file]
unicode/charsetlist.txt [deleted file]
unicode/configure.in [deleted file]
unicode/eucjp.c [deleted file]
unicode/gb2312.c [deleted file]
unicode/gb2312.h [deleted file]
unicode/gb2312.pl [deleted file]
unicode/ibm437.c [deleted file]
unicode/ibm775.c [deleted file]
unicode/ibm850.c [deleted file]
unicode/ibm852.c [deleted file]
unicode/ibm855.c [deleted file]
unicode/ibm857.c [deleted file]
unicode/ibm860.c [deleted file]
unicode/ibm861.c [deleted file]
unicode/ibm862.c [deleted file]
unicode/ibm863.c [deleted file]
unicode/ibm864.c [deleted file]
unicode/ibm864convert.c [deleted file]
unicode/ibm865.c [deleted file]
unicode/ibm866.c [deleted file]
unicode/ibm869.c [deleted file]
unicode/iso2022jp.c [deleted file]
unicode/iso2022jp.h [deleted file]
unicode/iso2022jp.pl [deleted file]
unicode/iso8859.c [deleted file]
unicode/iso88591.c [deleted file]
unicode/iso885910.c [deleted file]
unicode/iso885913.c [deleted file]
unicode/iso885914.c [deleted file]
unicode/iso885915.c [deleted file]
unicode/iso88592.c [deleted file]
unicode/iso88593.c [deleted file]
unicode/iso88594.c [deleted file]
unicode/iso88595.c [deleted file]
unicode/iso88596.c [deleted file]
unicode/iso88597.c [deleted file]
unicode/iso88598.c [deleted file]
unicode/iso88599.c [deleted file]
unicode/iso8859_convert.c [deleted file]
unicode/koi8r.c [deleted file]
unicode/koi8u.c [deleted file]
unicode/ksx1001.c [deleted file]
unicode/ksx1001.h [deleted file]
unicode/ksx1001.pl [deleted file]
unicode/mkibm864.pl [deleted file]
unicode/mkiso8859.pl [deleted file]
unicode/mkkoi8r.pl [deleted file]
unicode/mkkoi8u.pl [deleted file]
unicode/shiftjis.c [deleted file]
unicode/unicode.c [deleted file]
unicode/unicode.h [deleted file]
unicode/unicode2.c [deleted file]
unicode/unicode_ultcasetab.c [deleted file]
unicode/unicode_wcwidth.c [deleted file]
unicode/unicodeinfo.c [deleted file]
unicode/utf7.c [deleted file]
unicode/utf7imap.c [deleted file]
unicode/utf8.c [deleted file]
unicode/utf8_chset.c [deleted file]
unicode/windows1250.c [deleted file]
unicode/windows1251.c [deleted file]
unicode/windows1252.c [deleted file]
unicode/windows1253.c [deleted file]
unicode/windows1254.c [deleted file]
unicode/windows1255.c [deleted file]
unicode/windows1256.c [deleted file]
unicode/windows1257.c [deleted file]
unicode/windows1258.c [deleted file]
unicode/windows874.c [deleted file]
unicode/windows874u.c [deleted file]
unicode/xtest.c [deleted file]
userdb-test-cram-md5.pl.in [changed mode: 0755->0644]
userdb/Makefile.am
userdb/Makefile.in
userdb/aclocal.m4
userdb/config.h.in [new file with mode: 0644]
userdb/configure [moved from unicode/configure with 63% similarity]
userdb/configure.ac [moved from userdb/configure.in with 88% similarity]
userdb/makeuserdb.8.in
userdb/makeuserdb.html.in
userdb/makeuserdb.in
userdb/pw2userdb.in
userdb/userdb.8.in
userdb/userdb.c
userdb/userdb.h
userdb/userdb.html.in
userdb/userdb.pl.in [changed mode: 0755->0644]
userdb/userdb2.c
userdb/userdbpw.8.in
userdb/userdbpw.html.in

diff --git a/COPYING b/COPYING
index d72f9f0..af7c391 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -1,2 +1,3 @@
 This software is released under the GPL, version 3 (see COPYING.GPL).
-
+Additionally, compiling, linking, and/or using the OpenSSL toolkit in
+conjunction with this software is allowed.
index 4f7c780..b9cf43e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,83 @@
+2013-10-08  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * Makefile.am: run sysconftool on authsqliterc, in install-configure.
+       Remove .la files for authentication modules, keep then for actual
+       API libraries. Install them in the -devel RPM package.
+
+       * userdb/Makefile.am: Stub for the pw2userdb(8) man page.
+
+       * courier-authlib.service.in: Added Install target.
+
+0.66
+
+2013-03-02  Eray Aslan <eray.aslan@caf.com.tr>
+
+       * sqlite fixes.
+
+2013-02-24  Lutz Behnke <cypherfox@users.sourceforge.net>
+
+       * authldaplib.c (ldapopen): Added LDAP_INITBIND option.
+
+2013-01-06  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * Makefile.am: chmod $(pkglibexecdir) explicitly to 755
+
+2012-10-25  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * courier-authlib.spec.in: Typo.
+
+0.65.0
+
+2012-10-06  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * New authsqlite authentication module.
+
+       * Fixed: when using authpgsql, if the Postgres server goes down
+       authpgsql will then start leaking memory.
+
+       * Fixed error codes returned by several authentication modules that
+       prevent certain combinations of authentication modules from being
+       used together.
+
+0.64.0
+
+2012-04-23  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * authpam.c (callback_pam): Call pam_end() after an authentication
+       attempt.
+
+2011-08-02  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * Makefile.am: Renamed authstaticlist.h to courierauthstaticlist.h, and
+       added it to the list of header files that 'make install' puts into
+       includedir.
+
+2011-06-19  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * Fix gcc 4.6 warnings
+
+       * courier.spec.in: switch to systemd.
+
+2011-05-25  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * Fix autoconf warnings.
+
+2010-03-08  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * courier-authlib.spec: Make rmplint happy.
+
+0.63.1
+
+2010-03-06  Sam Varshavchik  <mrsam@courier-mta.com>
+
+       * Remove the bundled libtdl library. Require the system-installed
+       libltdl library.
+
+2010-01-31  Brian Costello <dolemite@gmail.com>
+
+       * authmysqllib.c (auth_mysql_setpass): Fix crash if DEFAULT_DOMAIN
+       is not set in the config file.
+
 0.63.0
 
 2009-12-17  Sam Varshavchik  <mrsam@courier-mta.com>
diff --git a/INSTALL b/INSTALL
index 4d771d1..358be1b 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -3,14 +3,14 @@
    In this document (see INSTALL.html for the formatted version of this
    INSTALL file):
 
-     * [1]Requirements
-     * [2]Installation overview
-     * [3]Dependencies
-     * [4]What gets installed
-     * [5]For more information
-     * [6]Starting and stopping the authentication daemon
-     * [7]Building RPMs
-     * [8]Guidelines for using other package managers
+     * [1]Requirements
+     * [2]Installation overview
+     * [3]Dependencies
+     * [4]What gets installed
+     * [5]For more information
+     * [6]Starting and stopping the authentication daemon
+     * [7]Building RPMs
+     * [8]Guidelines for using other package managers
 
 Requirements
 
@@ -18,11 +18,14 @@ Requirements
    following software should be installed before building the Courier
    authentication library:
 
-     * A modern version of gcc ([9]http://www.gnu.org/software/gcc/)
-     * The GNU linker ([10]http://www.gnu.org/software/binutils/)
-     * Libtool ([11]http://www.gnu.org/software/libtool/)
-     * GNU make ([12]http://www.gnu.org/software/make/)
-     * The "expect" command. expect is usually included with most systems.
+     * A modern version of gcc ([9]http://www.gnu.org/software/gcc/)
+     * The GNU linker ([10]http://www.gnu.org/software/binutils/)
+     * Libtool ([11]http://www.gnu.org/software/libtool/). Additional,
+       libtool's libltdl library, and its development files, must be
+       installed. On some platforms this is a separate package. On Fedora,
+       this is the libtool-ltdl-devel package, for example.
+     * GNU make ([12]http://www.gnu.org/software/make/)
+     * The "expect" command. expect is usually included with most systems.
        Expect can be downloaded from http://expect.nist.gov/ if it's not
        installed on your system. This utility is used to change system login
        passwords, by scripting the passwd command. If you do not have expect
@@ -30,13 +33,8 @@ Requirements
        However non-system authentication modules (LDAP, PostgreSQL, and
        others) will work.
 
-   Courier-authlib uses Libtool to build shared libraries. Libtool is not
-   strictly required, but Libtool should be installed unless a good -- a
-   very-very good -- reason exists not to. If Libtool is not installed, a
-   copy of Libtool in courier-authlib's source will be used. However, this
-   may cause problems later down the road, if either another Libtool-using
-   package is installed later, or if Libtool itself is installed. Bottom
-   line: install Libtool.
+   Courier-authlib uses Libtool to build shared libraries. Libtool must be
+   installed, together with its libltdl library and its header files.
 
    On non-Linux platforms the GNU linker is also required. Courier-authlib's
    build script uses some GNU linker-specific options. It's possible to
@@ -52,9 +50,9 @@ Requirements
    courier-authlib. Still, try the following before giving up if problems
    occur when building this package:
 
-    1. Install a recent version of the GNU linker
-    2. Install the current version of Libtool
-    3. Install the current version of gcc
+    1. Install a recent version of the GNU linker
+    2. Install the current version of Libtool
+    3. Install the current version of gcc
 
 Installation overview
 
@@ -145,14 +143,14 @@ Installation overview
    of Courier and/or this authentication library. The default userid and
    groupid are computed as follows:
 
-     * If an earlier version of the Courier authentication library is already
+     * If an earlier version of the Courier authentication library is already
        installed in the same directory, the userid and the groupid is the
        same as the earlier version, otherwise:
-     * If an earlier version of the Courier package is installed (only the
+     * If an earlier version of the Courier package is installed (only the
        Courier package, the Courier-IMAP and SqWebMail packages do not carry
        this information), the userid and the groupid is the same as the ones
        used to configure Courier, otherwise:
-     * The userid is the first userid from the following list which exists in
+     * The userid is the first userid from the following list which exists in
        the system: courier, daemon, adm, bin, root; and the groupid is the
        first groupid from the following list which exists in the system:
        courier, daemon, adm, sys, root.
@@ -218,33 +216,34 @@ Dependencies
      usually a separate package, that must be installed in addition to the
      package that adds alleged support for the following software libraries.
 
-     * GDBM or Berkeley DB library - The userdb authentication module will be
+     * GDBM or Berkeley DB library - The userdb authentication module will be
        built if either library is installed. The userdb authentication module
        includes Perl scripts that maintain a list of available accounts in
        plain text files. A Perl script then compiles the account list into a
        binary database, either GDBM or DB, which is then used to look up
        account information.
-     * OpenLDAP - The LDAP authentication modules requires OpenLDAP client
+     * OpenLDAP - The LDAP authentication modules requires OpenLDAP client
        libraries to be installed. Sometimes there's some confusion when
        commercial LDAP servers are used, which come with their own
        development toolkits, which use a different API than OpenLDAP. Even if
        a commercial LDAP server is used to provide LDAP services, OpenLDAP is
        still required to enable LDAP services in Courier.
-     * MySQL/PostgreSQL - The MySQL and PostgreSQL authentication modules
-       require, obviously, MySQL/PostgreSQL development libraries.
+     * MySQL, PostgreSQL, and SQLite - The MySQL, PostgreSQL, and SQLite
+       authentication modules require, obviously, MySQL/PostgreSQL/SQLite
+       development libraries.
 
 What gets installed
 
-     * /usr/local/etc/authlib - the configuration files.
-     * /usr/local/sbin - the authdaemond startup script; several utility
+     * /usr/local/etc/authlib - the configuration files.
+     * /usr/local/sbin - the authdaemond startup script; several utility
        programs (courierlogger, authconfig, authtest, authenumerate); and
        userdb scripts.
-     * /usr/local/lib/courier-authlib - various authentication modules, as
+     * /usr/local/lib/courier-authlib - various authentication modules, as
        shared libraries.
-     * /usr/local/libexec/courier-authlib - some miscellaneous stuff.
-     * /usr/local/var/authdaemon - a subdirectory that contains the
+     * /usr/local/libexec/courier-authlib - some miscellaneous stuff.
+     * /usr/local/var/authdaemon - a subdirectory that contains the
        filesystem socket which authdaemond listens on.
-     * /usr/local/include - a header file that Courier packages will use to
+     * /usr/local/include - a header file that Courier packages will use to
        build against courier-authlib.
 
    Toolchain options to the configure script may be used to select
@@ -295,42 +294,44 @@ Building RPMs
      NOTE:
 
      RPM will refuse to build the Courier authentication library unless all
-     prerequisite development libraries for LDAP, MySQL, and PostgreSQL are
-     installed. Do not try to hack the RPM build script to ignore these
-     dependencies! For simplicity's and maintainability sake the RPM build
-     script creates all available authentication modules. All extra
+     prerequisite development libraries for LDAP, MySQL, PostgreSQL, and
+     SQLite are installed. Do not try to hack the RPM build script to ignore
+     these dependencies! For simplicity's and maintainability sake the RPM
+     build script creates all available authentication modules. All extra
      authentication modules will be built as optional subpackages. They do
-     not have to be installed at runtime. Install the LDAP, MySQL, and
-     PostgreSQL development libraries only for the duration of building
-     binary RPMs. They can be uninstalled afterwards.
+     not have to be installed at runtime. Install the LDAP, MySQL,
+     PostgreSQL, and SQLite development libraries only for the duration of
+     building binary RPMs. They can be uninstalled afterwards.
 
 Guidelines for using other package managers
 
    The recommended way to build packages can be inferred from the RPM build
    script. It is summarized here for convenience:
 
-     * Decide whether or not Courier-specific userid and groupid needs to be
+     * Decide whether or not Courier-specific userid and groupid needs to be
        created, and, if so, make the necessary arrangements.
-     * Ensure that all prerequisite development libraries are available.
-     * Run the configure script, run make, then make install as usual.
-     * Copy the "sysconftool" script somewhere into the installation tree. A
+     * Ensure that all prerequisite development libraries are available.
+     * Run the configure script, run make, then make install as usual.
+     * Copy the "sysconftool" script somewhere into the installation tree. A
        good place would be %libexecdir%/courier-authlib. This is the 'make
        install-upgrade' command. Don't run this at build time. Instead,
        arrange for the package installation script to run the "sysconftool
        %sysconfdir%/authlib/*.dist" after the package is installed OR
        UPGRADED.
-     * The "authdaemond", "authenumerate", and "authtest" commands can be
+     * The "authdaemond", "authenumerate", and "authtest" commands can be
        renamed, to avoid name clashes.
-     * Remove all static libraries from %libdir%/courier-authlib.
+     * Remove all static libraries from %libdir%/courier-authlib.
 
    Now, create the installable packages, as follows:
 
-     * %libdir%/courier-authlib/libauthldap* goes into the LDAP subpackage.
-     * %libdir%/courier-authlib/libauthmysql* goes into the MySQL subpackage.
-     * %libdir%/courier-authlib/libauthpgsql* goes into the PostgreSQL
+     * %libdir%/courier-authlib/libauthldap* goes into the LDAP subpackage.
+     * %libdir%/courier-authlib/libauthmysql* goes into the MySQL subpackage.
+     * %libdir%/courier-authlib/libauthsqlite* goes into the SQLite
        subpackage.
-     * %libdir%/courier-authlib/libauthuserdb* goes into the userdb
+     * %libdir%/courier-authlib/libauthpgsql* goes into the PostgreSQL
        subpackage.
-     * Everything else can go into the main package. Optionally, the
+     * %libdir%/courier-authlib/libauthuserdb* goes into the userdb
+       subpackage.
+     * Everything else can go into the main package. Optionally, the
        courierauthconfig binary, stuff in %includedir%, and in %mandir%/man3,
        can go into a devel subpackage.
index 85093cc..08d3ab1 100644 (file)
@@ -4,12 +4,10 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content=
-  "text/html; charset=utf-8" />
+  "text/html; charset=us-ascii" />
 
   <title>INSTALL</title>
-  <meta name="generator" content="Bluefish 1.0.7"/>
-  <!-- $Id: INSTALL.html,v 1.8 2008/08/07 22:40:49 mrsam Exp $ -->
-  <!-- Copyright 2004 Double Precision, Inc.  See COPYING for -->
+  <!-- Copyright 2004-2012 Double Precision, Inc.  See COPYING for -->
   <!-- distribution information. -->
 </head>
 
     "http://www.gnu.org/software/binutils/">http://www.gnu.org/software/binutils/</a>)</li>
 
     <li>Libtool (<a onclick="" href=
-    "http://www.gnu.org/software/libtool/">http://www.gnu.org/software/libtool/</a>)</li>
+    "http://www.gnu.org/software/libtool/">http://www.gnu.org/software/libtool/</a>).
+    Additional, libtool's <tt>libltdl</tt> library, and its
+    development files, must be installed. On some platforms this is
+    a separate package. On Fedora, this is the
+    <tt>libtool-ltdl-devel</tt> package, for example.</li>
 
     <li>GNU make (<a onclick="" href=
     "http://www.gnu.org/software/make/">http://www.gnu.org/software/make/</a>)</li>
   </ul>
 
   <p>Courier-authlib uses Libtool to build shared libraries.
-  Libtool is not strictly required, but Libtool should be installed
-  unless a good -- a very-very good -- reason exists not to. If
-  Libtool is not installed, a copy of Libtool in courier-authlib's
-  source will be used. However, this may cause problems later down
-  the road, if either another Libtool-using package is installed
-  later, or if Libtool itself is installed. Bottom line: install
-  Libtool.</p>
+  Libtool must be installed, together with its <tt>libltdl</tt>
+  library and its header files.</p>
 
   <p>On non-Linux platforms the GNU linker is also required.
   Courier-authlib's build script uses some GNU linker-specific
@@ -335,9 +332,10 @@ make install-configure
     is used to provide LDAP services, OpenLDAP is still required to
     enable LDAP services in Courier.</li>
 
-    <li><strong>MySQL/PostgreSQL</strong> - The MySQL and
-    PostgreSQL authentication modules require, obviously,
-    MySQL/PostgreSQL development libraries.<br /></li>
+    <li><strong>MySQL</strong>, <strong>PostgreSQL</strong>, and
+    <strong>SQLite</strong> - The MySQL, PostgreSQL, and SQLite
+    authentication modules require, obviously,
+    MySQL/PostgreSQL/SQLite development libraries.<br /></li>
   </ul>
 
   <h2><a name="What" id="What">What gets installed</a></h2>
@@ -427,15 +425,15 @@ make install-configure
 
     <p>RPM will refuse to build the Courier authentication library
     unless all prerequisite development libraries for LDAP, MySQL,
-    and PostgreSQL are installed. <strong>Do not try to hack the
-    RPM build script to ignore these dependencies!</strong> For
-    simplicity's and maintainability sake the RPM build script
-    creates all available authentication modules. All extra
-    authentication modules will be built as <em>optional</em>
-    subpackages. They do not have to be installed at runtime.
-    Install the LDAP, MySQL, and PostgreSQL development libraries
-    only for the duration of building binary RPMs. They can be
-    uninstalled afterwards.</p>
+    PostgreSQL, and SQLite are installed. <strong>Do not try to
+    hack the RPM build script to ignore these
+    dependencies!</strong> For simplicity's and maintainability
+    sake the RPM build script creates all available authentication
+    modules. All extra authentication modules will be built as
+    <em>optional</em> subpackages. They do not have to be installed
+    at runtime. Install the LDAP, MySQL, PostgreSQL, and SQLite
+    development libraries only for the duration of building binary
+    RPMs. They can be uninstalled afterwards.</p>
   </blockquote>
 
   <h2><a name="Guidelines" id="Guidelines">Guidelines for using
@@ -482,6 +480,9 @@ make install-configure
     <li><code>%libdir%/courier-authlib/libauthmysql*</code> goes
     into the MySQL subpackage.</li>
 
+    <li><code>%libdir%/courier-authlib/libauthsqlite*</code> goes
+    into the SQLite subpackage.</li>
+
     <li><code>%libdir%/courier-authlib/libauthpgsql*</code> goes
     into the PostgreSQL subpackage.</li>
 
index 01ac10c..e827aca 100644 (file)
@@ -1,17 +1,16 @@
-# $Id: Makefile.am,v 1.146 2009/12/25 21:53:37 mrsam Exp $
 #
 # Copyright 1998 - 2009 Double Precision, Inc.  See COPYING for
 # distribution information.
 
 AUTOMAKE_OPTIONS=dist-bzip2
 
-SUBDIRS=libltdl gdbmobj bdbobj md5 sha1 libhmac numlib makedat userdb unicode rfc822 random128 liblock liblog
+SUBDIRS=libs/gdbmobj libs/bdbobj libs/md5 libs/sha1 libs/libhmac libs/numlib libs/makedat userdb libs/unicode libs/rfc822 libs/random128 libs/liblock liblog
 
-INCLUDES = $(LTDLINCL)
+AM_CPPFLAGS=-I liblock $(LTDLINCL)
 
 modules=@LIBAUTHUSERDB@ \
        @LIBAUTHPAM@ @LIBAUTHPWD@ @LIBAUTHSHADOW@ \
-       @LIBAUTHPGSQL@ @LIBAUTHLDAP@ @LIBAUTHMYSQL@ \
+       @LIBAUTHPGSQL@ @LIBAUTHLDAP@ @LIBAUTHMYSQL@ @LIBAUTHSQLITE@ \
        @LIBAUTHCUSTOM@ @LIBAUTHPIPE@
 
 pkglibexecdir=$(libexecdir)/courier-authlib
@@ -29,10 +28,11 @@ EXTRA_LTLIBRARIES=libauthuserdb.la \
        libauthpgsql.la \
        libauthldap.la \
        libauthmysql.la \
+       libauthsqlite.la \
        libauthcustom.la \
        libauthpipe.la
 
-CLEANFILES=authldaprc.h authmysqlrc.h authdaemonrc.h \
+CLEANFILES=authldaprc.h authmysqlrc.h authsqliterc.h authdaemonrc.h \
        authpgsqlrc.h authpiperc.h authdaemon \
        authlib.3 authlib.html packageversion.h \
        authchangepwdir.h sbindir.h pkglibdir.h pkgincludedir.h \
@@ -48,9 +48,10 @@ commonlibadd=libcourierauthcommon.la
 libcourierauthcommon_t=@CRYPTLIBS@
 libcourierauthcommon_la_SOURCES= \
        auth.h courierauth.h \
+       authgetconfig.c \
        authpwdenumerate.c \
        authsaslfrombase64.c authsasltobase64.c \
-       authstaticlist.h \
+       courierauthstaticlist.h \
        authsyschangepwd.c authsyscommon.c \
        authldapescape.c \
        cramlib.c cramlib.h \
@@ -65,8 +66,8 @@ libcourierauth_la_SOURCES=authdaemon.c authdaemonlib.c preauthdaemon.c \
        authmoduser2.c authmoduser3.c debug.c \
        courierauthdebug.h \
        authoption.c
-libcourierauth_la_LIBADD=libhmac/libhmac.la md5/libmd5.la sha1/libsha1.la numlib/libnumlib.la \
-       random128/librandom128.la rfc822/libencode.la
+libcourierauth_la_LIBADD=libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la libs/numlib/libnumlib.la \
+       libs/random128/librandom128.la libs/rfc822/libencode.la
 libcourierauth_la_LDFLAGS=@NETLIBS@ -avoid-version
 
 # The userdb module
@@ -205,6 +206,39 @@ endif
 authmysqlrc.h:
        echo "#define AUTHMYSQLRC \"@authmysqlrc@\"" >authmysqlrc.h
 
+# The authsqlite module
+
+libauthsqlite_t=@SQLITE_LIBS@ @NETLIBS@
+
+libauthsqlite_la_SOURCES=authsqlite.c preauthsqlite.c authsqlitelib.c authsqlite.h
+libauthsqlite_la_DEPENDENCIES=$(commonlibdep)
+libauthsqlite_la_LIBADD=$(commonlibadd) $(libauthsqlite_t)
+libauthsqlite_la_LDFLAGS=$(commonldflags)
+
+authsqlitelib.lo: authsqlitelib.c authsqliterc.h
+
+if HAVE_AUTHSQLITE
+install-authsqliterc:
+       $(mkinstalldirs) $(DESTDIR)`dirname @authsqliterc@` || :
+       $(INSTALL_DATA) -m 660 $(srcdir)/authsqliterc \
+               $(DESTDIR)@authsqliterc@.dist
+       -chown @mailuser@ $(DESTDIR)@authsqliterc@.dist
+       -chgrp @mailgroup@ $(DESTDIR)@authsqliterc@.dist
+
+uninstall-authsqliterc:
+       rm -f $(DESTDIR)@authsqliterc@.dist
+
+else
+install-authsqliterc:
+       @:
+
+uninstall-authsqliterc:
+       @:
+endif
+
+authsqliterc.h:
+       echo "#define AUTHSQLITERC \"@authsqliterc@\"" >authsqliterc.h
+
 # The authcustom module
 
 libauthcustom_la_SOURCES=authcustom.c preauthcustom.c authcustom.h
@@ -251,12 +285,12 @@ authdaemonrc.h:
        echo "#define AUTHDAEMONLOCK AUTHDAEMONVAR \"/lock\"" >>authdaemonrc.h
 
 HTMLFILES=README.html NEWS.html INSTALL.html \
-               README.authmysql.html README.authpostgres.html
+       README.authsqlite.html README.authmysql.html README.authpostgres.html
 
 EXTRA_DIST=$(HTMLFILES) sysconftool COPYING COPYING.GPL\
        authldap.schema \
        authldap.ldif \
-       authldaprc authmysqlrc authpgsqlrc README.ldap \
+       authldaprc authmysqlrc authpgsqlrc authsqliterc README.ldap \
        README.authmysql.myownquery \
        README.authdebug.html.in \
        courier-authlib.spec \
@@ -287,8 +321,8 @@ libcourierauthsasl_la_SOURCES=\
        authsasl.c courierauthsasl.h \
        authsaslcram.c authsasllogin.c authsaslplain.c \
        authsaslfrombase64.c authsasltobase64.c
-libcourierauthsasl_la_LIBADD=libcourierauth.la
-libcourierauthsasl_la_LDFLAGS=-export-symbols-regex '^auth_sasl|auth_sasl_ex$$' -avoid-version
+libcourierauthsasl_la_LIBADD=libcourierauthcommon.la libcourierauth.la
+libcourierauthsasl_la_LDFLAGS=-export-symbols-regex '^auth_sasl|auth_sasl_ex|auth_sasl_extract_userid$$' -avoid-version
 
 libcourierauthsaslclient_la_SOURCES=courierauthsaslclient.h \
        authsaslclient.c authsaslclient.h authsaslclientcram.c \
@@ -300,13 +334,13 @@ libcourierauthsaslclient_la_LIBADD=libcourierauth.la
 libcourierauthsaslclient_la_LDFLAGS=-export-symbols-regex '^auth_sasl_client$$' -avoid-version
 
 include_HEADERS=courier_auth_config.h courierauth.h courierauthsasl.h \
-       courierauthsaslclient.h courierauthdebug.h
+       courierauthsaslclient.h courierauthdebug.h courierauthstaticlist.h
 
 courierauthconfig_SOURCES=authinfo.c
 
 authpasswd_SOURCES=authpasswd.c
 authpasswd_LDADD=libcourierauthcommon.la \
-        libhmac/libhmac.la md5/libmd5.la sha1/libsha1.la rfc822/libencode.la
+        libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la libs/rfc822/libencode.la
 
 authtest_SOURCES=authtest.c
 authtest_DEPENDENCIES=libcourierauth.la
@@ -314,9 +348,9 @@ authtest_LDADD=libcourierauth.la
 
 authenumerate_SOURCES=authenumerate.c
 authenumerate_DEPENDENCIES = libcourierauth.la \
-       numlib/libnumlib.la
+       libs/numlib/libnumlib.la
 authenumerate_LDADD = libcourierauth.la \
-       numlib/libnumlib.la
+       libs/numlib/libnumlib.la
 authenumerate_LDFLAGS=
 
 #
@@ -324,12 +358,12 @@ authenumerate_LDFLAGS=
 
 authdaemondprog_SOURCES=authdaemond.c
 authdaemondprog_DEPENDENCIES=libcourierauthcommon.la \
-       liblock/liblock.la $(modules) \
-       libhmac/libhmac.la md5/libmd5.la sha1/libsha1.la \
-       rfc822/libencode.la numlib/libnumlib.la
-authdaemondprog_LDADD=$(LIBLTDL) libcourierauthcommon.la liblock/liblock.la \
-       libhmac/libhmac.la md5/libmd5.la sha1/libsha1.la \
-       rfc822/libencode.la numlib/libnumlib.la
+       libs/liblock/liblock.la $(modules) \
+       libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la \
+       libs/rfc822/libencode.la libs/numlib/libnumlib.la
+authdaemondprog_LDADD=$(LIBLTDL) libcourierauthcommon.la libs/liblock/liblock.la \
+       libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la \
+       libs/rfc822/libencode.la libs/numlib/libnumlib.la
 authdaemondprog_LDFLAGS=-export-dynamic $(modules:%=-dlopen %) @NETLIBS@
 
 authdaemontest_SOURCES=authdaemontest.c
@@ -380,20 +414,23 @@ dist-hook:
 # automake still a bit stupid...
 
 install-data-hook: install-authdaemonrc install-authpgsqlrc \
-       install-authldaprc install-authmysqlrc
+       install-authldaprc install-authmysqlrc install-authsqliterc
        :
 
 install-exec-hook:
        $(mkinstalldirs) $(DESTDIR)$(bindir) || :
        $(mkinstalldirs) $(DESTDIR)$(sbindir) || :
        $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir) || :
+       chmod 755 $(DESTDIR)$(pkglibexecdir)
+       -chown @mailuser@ $(DESTDIR)$(pkglibexecdir)
+       -chgrp @mailgroup@ $(DESTDIR)$(pkglibexecdir)
        $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) authdaemondprog $(DESTDIR)$(pkglibexecdir)/authdaemond
        $(mkinstalldirs) $(DESTDIR)@authdaemonvar@ || :
        chmod 750 $(DESTDIR)@authdaemonvar@
        -chown @mailuser@ $(DESTDIR)@authdaemonvar@
        -chgrp @mailgroup@ $(DESTDIR)@authdaemonvar@
        test "@LIBAUTHUSERDB@" = "" && exit 0 ;\
-               $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) makedat/makedatprog \
+               $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) libs/makedat/makedatprog \
                                $(DESTDIR)$(pkglibexecdir)/makedatprog ; \
                $(INSTALL_SCRIPT) userdb/pw2userdb \
                                $(DESTDIR)$(sbindir)/pw2userdb ; \
@@ -405,10 +442,8 @@ install-exec-hook:
                                $(DESTDIR)$(sbindir)/userdbpw ; \
                $(INSTALL_SCRIPT) userdb-test-cram-md5.pl \
                                $(DESTDIR)$(sbindir)/userdb-test-cram-md5
-       for f in $(pkglib_LTLIBRARIES); do . ./$$f; rm -f $(DESTDIR)$(pkglibdir)/$$dlname.0 $(DESTDIR)$(pkglibdir)/$$dlname.0.0; ln -s $$dlname $(DESTDIR)$(pkglibdir)/$$dlname.0; done
-
 
-uninstall-hook: uninstall-authldaprc uninstall-authdaemonrc uninstall-authmysqlrc uninstall-authpgsqlrc
+uninstall-hook: uninstall-authldaprc uninstall-authdaemonrc uninstall-authmysqlrc uninstall-authpgsqlrc uninstall-authsqliterc
        rm -f $(DESTDIR)$(pkglibexecdir)/authdaemond
        test "@AUTHUSERDB@" = "" && exit 0 ;\
                rm -f $(DESTDIR)$(pkglibexecdir)/makedatprog \
@@ -417,7 +452,6 @@ uninstall-hook: uninstall-authldaprc uninstall-authdaemonrc uninstall-authmysqlr
                                $(DESTDIR)$(sbindir)/userdb \
                                $(DESTDIR)$(sbindir)/userdbpw \
                                $(DESTDIR)$(sbindir)/userdb-test-cram-md5
-       for f in $(pkglib_LTLIBRARIES); do . ./$$f; rm -f $(DESTDIR)$(pkglibdir)/$$dlname.0; done
 
 authlib.html: authlib.html.in
        $(SHELL) ./config.status --file=authlib.html
@@ -426,69 +460,69 @@ authlib.3: authlib.3.in
        $(SHELL) ./config.status --file=authlib.3
 
 if HAVE_SGML
-authpasswd.html: authpasswd.sgml docbook/sgml2html
-       docbook/sgml2html authpasswd.sgml authpasswd.html
+authpasswd.html: authpasswd.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html authpasswd.sgml authpasswd.html
 
-authpasswd.1: authpasswd.sgml docbook/sgml2man
-       docbook/sgml2man authpasswd.sgml authpasswd.1
+authpasswd.1: authpasswd.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man authpasswd.sgml authpasswd.1
 
-authtest.html: authtest.sgml docbook/sgml2html
-       docbook/sgml2html authtest.sgml authtest.html
+authtest.html: authtest.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html authtest.sgml authtest.html
 
-authtest.1: authtest.sgml docbook/sgml2man
-       docbook/sgml2man authtest.sgml authtest.1
+authtest.1: authtest.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man authtest.sgml authtest.1
 
-authlib.html.in: authlib.sgml docbook/sgml2html
-       docbook/sgml2html authlib.sgml authlib.html.in
+authlib.html.in: authlib.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html authlib.sgml authlib.html.in
 
-authlib.3.in: authlib.sgml docbook/sgml2man
-       docbook/sgml2man authlib.sgml authlib.3.in
+authlib.3.in: authlib.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man authlib.sgml authlib.3.in
        mv authlib.3 authlib.3.in
 
-README_authlib.html.in: README_authlib.sgml docbook/sgml2html
-       docbook/sgml2html README_authlib.sgml README_authlib.html.in
+README_authlib.html.in: README_authlib.sgml optionlist.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html README_authlib.sgml README_authlib.html.in
 
-auth_generic.html: auth_generic.sgml authcallback.sgml docbook/sgml2html
-       docbook/sgml2html auth_generic.sgml auth_generic.html
+auth_generic.html: auth_generic.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html auth_generic.sgml auth_generic.html
 
-auth_generic.3: auth_generic.sgml authcallback.sgml docbook/sgml2man
-       docbook/sgml2man auth_generic.sgml auth_generic.3
+auth_generic.3: auth_generic.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man auth_generic.sgml auth_generic.3
 
-auth_login.html: auth_login.sgml authcallback.sgml docbook/sgml2html
-       docbook/sgml2html auth_login.sgml auth_login.html
+auth_login.html: auth_login.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html auth_login.sgml auth_login.html
 
-auth_login.3: auth_login.sgml authcallback.sgml docbook/sgml2man
-       docbook/sgml2man auth_login.sgml auth_login.3
+auth_login.3: auth_login.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man auth_login.sgml auth_login.3
 
-auth_getuserinfo.html: auth_getuserinfo.sgml authcallback.sgml docbook/sgml2html
-       docbook/sgml2html auth_getuserinfo.sgml auth_getuserinfo.html
+auth_getuserinfo.html: auth_getuserinfo.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html auth_getuserinfo.sgml auth_getuserinfo.html
 
-auth_getuserinfo.3: auth_getuserinfo.sgml authcallback.sgml docbook/sgml2man
-       docbook/sgml2man auth_getuserinfo.sgml auth_getuserinfo.3
+auth_getuserinfo.3: auth_getuserinfo.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man auth_getuserinfo.sgml auth_getuserinfo.3
 
-auth_enumerate.html: auth_enumerate.sgml docbook/sgml2html
-       docbook/sgml2html auth_enumerate.sgml auth_enumerate.html
+auth_enumerate.html: auth_enumerate.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html auth_enumerate.sgml auth_enumerate.html
 
-auth_enumerate.3: auth_enumerate.sgml docbook/sgml2man
-       docbook/sgml2man auth_enumerate.sgml auth_enumerate.3
+auth_enumerate.3: auth_enumerate.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man auth_enumerate.sgml auth_enumerate.3
 
-auth_passwd.html: auth_passwd.sgml docbook/sgml2html
-       docbook/sgml2html auth_passwd.sgml auth_passwd.html
+auth_passwd.html: auth_passwd.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html auth_passwd.sgml auth_passwd.html
 
-auth_passwd.3: auth_passwd.sgml docbook/sgml2man
-       docbook/sgml2man auth_passwd.sgml auth_passwd.3
+auth_passwd.3: auth_passwd.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man auth_passwd.sgml auth_passwd.3
 
-auth_getoption.html: auth_getoption.sgml docbook/sgml2html
-       docbook/sgml2html auth_getoption.sgml auth_getoption.html
+auth_getoption.html: auth_getoption.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html auth_getoption.sgml auth_getoption.html
 
-auth_getoption.3: auth_getoption.sgml docbook/sgml2man
-       docbook/sgml2man auth_getoption.sgml auth_getoption.3
+auth_getoption.3: auth_getoption.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man auth_getoption.sgml auth_getoption.3
 
-auth_sasl.html: auth_sasl.sgml docbook/sgml2html
-       docbook/sgml2html auth_sasl.sgml auth_sasl.html
+auth_sasl.html: auth_sasl.sgml libs/docbook/sgml2html
+       libs/docbook/sgml2html auth_sasl.sgml auth_sasl.html
 
-auth_sasl.3: auth_sasl.sgml docbook/sgml2man
-       docbook/sgml2man auth_sasl.sgml auth_sasl.3
+auth_sasl.3: auth_sasl.sgml libs/docbook/sgml2man
+       libs/docbook/sgml2man auth_sasl.sgml auth_sasl.3
 
 auth_sasl_ex.3: auth_sasl.3
        touch $@
@@ -516,24 +550,19 @@ install-configure:
        test -f $(DESTDIR)@authmysqlrc@.dist && @SYSCONFTOOL@ $(DESTDIR)@authmysqlrc@.dist || true
        test -f $(DESTDIR)@authpgsqlrc@.dist && @SYSCONFTOOL@ $(DESTDIR)@authpgsqlrc@.dist || true
        test -f $(DESTDIR)@authldaprc@.dist && @SYSCONFTOOL@ $(DESTDIR)@authldaprc@.dist || true
+       test -f $(DESTDIR)@authsqliterc@.dist && @SYSCONFTOOL@ $(DESTDIR)@authsqliterc@.dist || true
 
 # For maintainer's use only
 
 distrelease:
        umask 022; $(MAKE) distcheck
        $(MAKE) rpm
-       socksify cvs commit
-       socksify cvs tag -F @PACKAGE@-latest
        $(MAKE)
        $(MAKE)
        rm -f @PACKAGE@.spec @PACKAGE@.lpspec
        $(MAKE) @PACKAGE@.spec @PACKAGE@.lpspec
        $(MAKE) dist
 
-tagrelease:
-       socksify cvs tag -F -r @PACKAGE@-latest \
-               `echo @PACKAGE@-@VERSION@ | tr '.' '-'`
-
 rpm: rpm-build
 
 rpm-build:
@@ -610,25 +639,16 @@ upload-beta:
        test -z "$(SFPASSWD)" && exit 1; exit 0
        rm -f @PACKAGE@-@VERSION@.tar.bz2.sig; gpg --detach-sign --default-key mrsam@courier-mta.com @PACKAGE@-@VERSION@.tar.bz2; test -f @PACKAGE@-@VERSION@.tar.bz2.sig || exit 1
        socksify ssh grace.speakeasy.net echo @PACKAGE@-@VERSION@.tar.bz2 `ls -l @PACKAGE@-@VERSION@.tar.bz2 | awk ' { print $$5 } '` \>courier-mta.org/@PACKAGE@.beta
-       ../sftools/release.pl mrsam $(SFPASSWD) courier authlib-devel `echo @VERSION@|sed 's/.*\(........\)/\1/'` @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
+       ~/src/sftools/release.pl mrsam $(SFPASSWD) courier authlib-devel `echo @VERSION@|sed 's/.*\(........\)/\1/'` @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
 
 upload-dist:
-       rm -f @PACKAGE@-@VERSION@.tar.bz2.sig; gpg --detach-sign --default-key mrsam@courier-mta.com @PACKAGE@-@VERSION@.tar.bz2; test -f @PACKAGE@-@VERSION@.tar.bz2.sig || exit 1
-       socksify cvs tag -F -r @PACKAGE@-latest \
-               `echo @PACKAGE@-@VERSION@ | tr '.' '-'`
-       socksify ../sftools/release.pl mrsam $(SFPASSWD) courier authlib @VERSION@ @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
-       socksify ssh grace.speakeasy.net rm -f courier-mta.org/@PACKAGE@.beta
-
-release-dist:
        test -z "$(SFPASSWD)" && exit 1; exit 0
-       ./changelog.pl >changelog.txt
-       emacs releasenotes.txt
-       test -f releasenotes.txt || exit 1
-       socksify ../sftools/release.pl mrsam $(SFPASSWD) courier authlib @VERSION@ releasenotes.txt changelog.txt @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
-       socksify ssh grace.speakeasy.net rm -f courier-mta.org/@PACKAGE@.beta
+       rm -f @PACKAGE@-@VERSION@.tar.bz2.sig; gpg --detach-sign --default-key mrsam@courier-mta.com @PACKAGE@-@VERSION@.tar.bz2; test -f @PACKAGE@-@VERSION@.tar.bz2.sig || exit 1
+       set -e; v="@PACKAGE@/@VERSION@/`date +%Y%m%d%H%M%S`"; git tag -s $$v -m 'Tag version @VERSION@'; cd libs; git tag -s $$v -m 'Tag version @VERSION@'
+       socksify ~/src/sftools/release.pl mrsam $(SFPASSWD) courier authlib @VERSION@ @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
 
 HTMLDOCFILES=$(HTMLFILES) README.authdebug.html README_authlib.html \
-       $(man3:%.3=%.html) $(man1:%.1=%.html)
+       $(man3:%.3=%.html) $(man1:%.1=%.html) userdb/userdb.html userdb/makeuserdb.html userdb/userdbpw.html
 
 htmldoc: $(HTMLDOCFILES)
-       for f in $^; do d=`basename $$f`; test "$$d" = "README.html" && d="index2.html"; tidy -i -q --tidy-mark no --doctype transitional --input-encoding utf8 --output-encoding utf8 -asxml <$$f >$$f.tmp ; xsltproc --nonet $$HOME/www/www.courier-mta.org/xsl/authlib.xsl $$f.tmp | perl -ne 's~\$(id):.*\$$~\$(id):'"$$h"'\$$~; print' >html/$$d; rm -f $$f.tmp; done
+       for f in $^; do d=`basename $$f`; test "$$d" = "README.html" && d="index.html"; tidy -i -q --tidy-mark no --doctype transitional --input-encoding utf8 --output-encoding utf8 -asxml <$$f >$$f.tmp ; xsltproc --nonet $$HOME/www/www.courier-mta.org/xsl/authlib.xsl $$f.tmp | perl -ne 's~\$(id):.*\$$~\$(id):'"$$h"'\$$~; print' >$$HOME/www/www.courier-mta.org/authlib/$$d; rm -f $$f.tmp; done
index e5abbc9..50bc6a0 100644 (file)
@@ -1,9 +1,8 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
-# Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,7 +14,6 @@
 
 @SET_MAKE@
 
-# $Id: Makefile.am,v 1.146 2009/12/25 21:53:37 mrsam Exp $
 #
 # Copyright 1998 - 2009 Double Precision, Inc.  See COPYING for
 # distribution information.
 
 
 VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \  ]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -48,20 +91,21 @@ bin_PROGRAMS = courierauthconfig$(EXEEXT)
 noinst_PROGRAMS = authdaemontest$(EXEEXT) authmksock$(EXEEXT) \
        authdaemondprog$(EXEEXT)
 subdir = .
-DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
-       $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/README.authdebug.html.in $(srcdir)/authdaemond.in \
-       $(srcdir)/authdaemonrc.in $(srcdir)/authmigrate.in \
-       $(srcdir)/authsystem.passwd.in \
-       $(srcdir)/courier-authlib.lpspec.in \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+       $(top_srcdir)/configure $(am__configure_deps) \
+       $(srcdir)/courier_auth_config.h.in $(srcdir)/authdaemond.in \
+       $(srcdir)/authdaemonrc.in $(srcdir)/authsystem.passwd.in \
+       $(srcdir)/README.authdebug.html.in $(srcdir)/dbobj.config.in \
+       $(srcdir)/dbobj.h.in $(srcdir)/authmigrate.in \
        $(srcdir)/courier-authlib.spec.in \
+       $(srcdir)/courier-authlib.lpspec.in \
        $(srcdir)/courier-authlib.sysvinit.in \
-       $(srcdir)/courier_auth_config.h.in $(srcdir)/dbobj.config.in \
-       $(srcdir)/dbobj.h.in $(srcdir)/userdb-test-cram-md5.pl.in \
-       $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
-       config.guess config.sub depcomp install-sh ltmain.sh missing
+       $(srcdir)/courier-authlib.service.in \
+       $(srcdir)/userdb-test-cram-md5.pl.in depcomp \
+       $(include_HEADERS) AUTHORS COPYING ChangeLog INSTALL NEWS \
+       README config.guess config.sub install-sh missing ltmain.sh
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -71,7 +115,8 @@ CONFIG_HEADER = courier_auth_config.h
 CONFIG_CLEAN_FILES = authdaemond authdaemonrc authsystem.passwd \
        README.authdebug.html dbobj.config dbobj.h authmigrate \
        courier-authlib.spec courier-authlib.lpspec \
-       courier-authlib.sysvinit userdb-test-cram-md5.pl
+       courier-authlib.sysvinit courier-authlib.service \
+       userdb-test-cram-md5.pl
 CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -94,6 +139,12 @@ am__nobase_list = $(am__nobase_strip_setup); \
 am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
 am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(bindir)" \
        "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(pkglibexecdir)" \
        "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man1dir)" \
@@ -101,81 +152,105 @@ am__installdirs = "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(bindir)" \
 LTLIBRARIES = $(pkglib_LTLIBRARIES)
 am_libauthcustom_la_OBJECTS = authcustom.lo preauthcustom.lo
 libauthcustom_la_OBJECTS = $(am_libauthcustom_la_OBJECTS)
-libauthcustom_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libauthcustom_la_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+libauthcustom_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libauthcustom_la_LDFLAGS) $(LDFLAGS) \
+       -o $@
 am__DEPENDENCIES_1 =
 am_libauthldap_la_OBJECTS = authldap.lo preauthldap.lo authldaplib.lo
 libauthldap_la_OBJECTS = $(am_libauthldap_la_OBJECTS)
-libauthldap_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libauthldap_la_LDFLAGS) $(LDFLAGS) -o $@
+libauthldap_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libauthldap_la_LDFLAGS) $(LDFLAGS) -o \
+       $@
 am_libauthmysql_la_OBJECTS = authmysql.lo preauthmysql.lo \
        authmysqllib.lo
 libauthmysql_la_OBJECTS = $(am_libauthmysql_la_OBJECTS)
-libauthmysql_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libauthmysql_la_LDFLAGS) $(LDFLAGS) -o $@
+libauthmysql_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libauthmysql_la_LDFLAGS) $(LDFLAGS) \
+       -o $@
 am_libauthpam_la_OBJECTS = authpam.lo preauthpam.lo
 libauthpam_la_OBJECTS = $(am_libauthpam_la_OBJECTS)
-libauthpam_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+libauthpam_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(libauthpam_la_LDFLAGS) $(LDFLAGS) -o $@
 am_libauthpgsql_la_OBJECTS = authpgsql.lo preauthpgsql.lo \
        authpgsqllib.lo
 libauthpgsql_la_OBJECTS = $(am_libauthpgsql_la_OBJECTS)
-libauthpgsql_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libauthpgsql_la_LDFLAGS) $(LDFLAGS) -o $@
+libauthpgsql_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libauthpgsql_la_LDFLAGS) $(LDFLAGS) \
+       -o $@
 am_libauthpipe_la_OBJECTS = authpipe.lo authpipelib.lo
 libauthpipe_la_OBJECTS = $(am_libauthpipe_la_OBJECTS)
-libauthpipe_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libauthpipe_la_LDFLAGS) $(LDFLAGS) -o $@
+libauthpipe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libauthpipe_la_LDFLAGS) $(LDFLAGS) -o \
+       $@
 am_libauthpwd_la_OBJECTS = authpwd.lo preauthpwd.lo
 libauthpwd_la_OBJECTS = $(am_libauthpwd_la_OBJECTS)
-libauthpwd_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+libauthpwd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(libauthpwd_la_LDFLAGS) $(LDFLAGS) -o $@
 am_libauthshadow_la_OBJECTS = authshadow.lo preauthshadow.lo
 libauthshadow_la_OBJECTS = $(am_libauthshadow_la_OBJECTS)
-libauthshadow_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libauthshadow_la_LDFLAGS) $(LDFLAGS) -o $@
+libauthshadow_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libauthshadow_la_LDFLAGS) $(LDFLAGS) \
+       -o $@
+am_libauthsqlite_la_OBJECTS = authsqlite.lo preauthsqlite.lo \
+       authsqlitelib.lo
+libauthsqlite_la_OBJECTS = $(am_libauthsqlite_la_OBJECTS)
+libauthsqlite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libauthsqlite_la_LDFLAGS) $(LDFLAGS) \
+       -o $@
 am__DEPENDENCIES_2 = userdb/libuserdb.la
 am_libauthuserdb_la_OBJECTS = authuserdb.lo preauthuserdb.lo \
        preauthuserdbcommon.lo authuserdbpwd.lo
 libauthuserdb_la_OBJECTS = $(am_libauthuserdb_la_OBJECTS)
-libauthuserdb_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libauthuserdb_la_LDFLAGS) $(LDFLAGS) -o $@
-libcourierauth_la_DEPENDENCIES = libhmac/libhmac.la md5/libmd5.la \
-       sha1/libsha1.la numlib/libnumlib.la random128/librandom128.la \
-       rfc822/libencode.la
+libauthuserdb_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libauthuserdb_la_LDFLAGS) $(LDFLAGS) \
+       -o $@
+libcourierauth_la_DEPENDENCIES = libs/libhmac/libhmac.la \
+       libs/md5/libmd5.la libs/sha1/libsha1.la \
+       libs/numlib/libnumlib.la libs/random128/librandom128.la \
+       libs/rfc822/libencode.la
 am_libcourierauth_la_OBJECTS = authdaemon.lo authdaemonlib.lo \
        preauthdaemon.lo authmoduser2.lo authmoduser3.lo debug.lo \
        authoption.lo
 libcourierauth_la_OBJECTS = $(am_libcourierauth_la_OBJECTS)
-libcourierauth_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libcourierauth_la_LDFLAGS) $(LDFLAGS) -o $@
-am_libcourierauthcommon_la_OBJECTS = authpwdenumerate.lo \
-       authsaslfrombase64.lo authsasltobase64.lo authsyschangepwd.lo \
-       authsyscommon.lo authldapescape.lo cramlib.lo checkpassword.lo \
-       cryptpassword.lo checkpasswordmd5.lo checkpasswordsha1.lo
+libcourierauth_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libcourierauth_la_LDFLAGS) $(LDFLAGS) \
+       -o $@
+am_libcourierauthcommon_la_OBJECTS = authgetconfig.lo \
+       authpwdenumerate.lo authsaslfrombase64.lo authsasltobase64.lo \
+       authsyschangepwd.lo authsyscommon.lo authldapescape.lo \
+       cramlib.lo checkpassword.lo cryptpassword.lo \
+       checkpasswordmd5.lo checkpasswordsha1.lo
 libcourierauthcommon_la_OBJECTS =  \
        $(am_libcourierauthcommon_la_OBJECTS)
-libcourierauthcommon_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libcourierauthcommon_la_LDFLAGS) $(LDFLAGS) -o $@
-libcourierauthsasl_la_DEPENDENCIES = libcourierauth.la
+libcourierauthcommon_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libcourierauthcommon_la_LDFLAGS) \
+       $(LDFLAGS) -o $@
+libcourierauthsasl_la_DEPENDENCIES = libcourierauthcommon.la \
+       libcourierauth.la
 am_libcourierauthsasl_la_OBJECTS = authsasl.lo authsaslcram.lo \
        authsasllogin.lo authsaslplain.lo authsaslfrombase64.lo \
        authsasltobase64.lo
 libcourierauthsasl_la_OBJECTS = $(am_libcourierauthsasl_la_OBJECTS)
-libcourierauthsasl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(libcourierauthsasl_la_LDFLAGS) $(LDFLAGS) -o $@
+libcourierauthsasl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(libcourierauthsasl_la_LDFLAGS) \
+       $(LDFLAGS) -o $@
 libcourierauthsaslclient_la_DEPENDENCIES = libcourierauth.la
 am_libcourierauthsaslclient_la_OBJECTS = authsaslclient.lo \
        authsaslclientcram.lo authsaslclientcrammd5.lo \
@@ -184,24 +259,26 @@ am_libcourierauthsaslclient_la_OBJECTS = authsaslclient.lo \
        authsaslfrombase64.lo authsasltobase64.lo
 libcourierauthsaslclient_la_OBJECTS =  \
        $(am_libcourierauthsaslclient_la_OBJECTS)
-libcourierauthsaslclient_la_LINK = $(LIBTOOL) --tag=CC \
+libcourierauthsaslclient_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
        $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
        $(AM_CFLAGS) $(CFLAGS) $(libcourierauthsaslclient_la_LDFLAGS) \
        $(LDFLAGS) -o $@
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) $(sbin_PROGRAMS)
 am_authdaemondprog_OBJECTS = authdaemond.$(OBJEXT)
 authdaemondprog_OBJECTS = $(am_authdaemondprog_OBJECTS)
-authdaemondprog_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(authdaemondprog_LDFLAGS) $(LDFLAGS) -o $@
+authdaemondprog_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(authdaemondprog_LDFLAGS) $(LDFLAGS) \
+       -o $@
 am_authdaemontest_OBJECTS = authdaemontest.$(OBJEXT)
 authdaemontest_OBJECTS = $(am_authdaemontest_OBJECTS)
-authdaemontest_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(authdaemontest_LDFLAGS) $(LDFLAGS) -o $@
+authdaemontest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+       $(AM_CFLAGS) $(CFLAGS) $(authdaemontest_LDFLAGS) $(LDFLAGS) -o \
+       $@
 am_authenumerate_OBJECTS = authenumerate.$(OBJEXT)
 authenumerate_OBJECTS = $(am_authenumerate_OBJECTS)
-authenumerate_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+authenumerate_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(authenumerate_LDFLAGS) $(LDFLAGS) -o $@
 am_authmksock_OBJECTS = authmksock.$(OBJEXT)
@@ -209,32 +286,55 @@ authmksock_OBJECTS = $(am_authmksock_OBJECTS)
 authmksock_DEPENDENCIES =
 am_authpasswd_OBJECTS = authpasswd.$(OBJEXT)
 authpasswd_OBJECTS = $(am_authpasswd_OBJECTS)
-authpasswd_DEPENDENCIES = libcourierauthcommon.la libhmac/libhmac.la \
-       md5/libmd5.la sha1/libsha1.la rfc822/libencode.la
+authpasswd_DEPENDENCIES = libcourierauthcommon.la \
+       libs/libhmac/libhmac.la libs/md5/libmd5.la \
+       libs/sha1/libsha1.la libs/rfc822/libencode.la
 am_authtest_OBJECTS = authtest.$(OBJEXT)
 authtest_OBJECTS = $(am_authtest_OBJECTS)
 am_courierauthconfig_OBJECTS = authinfo.$(OBJEXT)
 courierauthconfig_OBJECTS = $(am_courierauthconfig_OBJECTS)
 courierauthconfig_LDADD = $(LDADD)
 SCRIPTS = $(pkglibexec_SCRIPTS) $(sbin_SCRIPTS)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
 DEFAULT_INCLUDES = -I.@am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
 am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
        $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
 CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-       --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-       $(LDFLAGS) -o $@
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
 SOURCES = $(libauthcustom_la_SOURCES) $(libauthldap_la_SOURCES) \
        $(libauthmysql_la_SOURCES) $(libauthpam_la_SOURCES) \
        $(libauthpgsql_la_SOURCES) $(libauthpipe_la_SOURCES) \
        $(libauthpwd_la_SOURCES) $(libauthshadow_la_SOURCES) \
-       $(libauthuserdb_la_SOURCES) $(libcourierauth_la_SOURCES) \
+       $(libauthsqlite_la_SOURCES) $(libauthuserdb_la_SOURCES) \
+       $(libcourierauth_la_SOURCES) \
        $(libcourierauthcommon_la_SOURCES) \
        $(libcourierauthsasl_la_SOURCES) \
        $(libcourierauthsaslclient_la_SOURCES) \
@@ -246,7 +346,8 @@ DIST_SOURCES = $(libauthcustom_la_SOURCES) $(libauthldap_la_SOURCES) \
        $(libauthmysql_la_SOURCES) $(libauthpam_la_SOURCES) \
        $(libauthpgsql_la_SOURCES) $(libauthpipe_la_SOURCES) \
        $(libauthpwd_la_SOURCES) $(libauthshadow_la_SOURCES) \
-       $(libauthuserdb_la_SOURCES) $(libcourierauth_la_SOURCES) \
+       $(libauthsqlite_la_SOURCES) $(libauthuserdb_la_SOURCES) \
+       $(libcourierauth_la_SOURCES) \
        $(libcourierauthcommon_la_SOURCES) \
        $(libcourierauthsasl_la_SOURCES) \
        $(libcourierauthsaslclient_la_SOURCES) \
@@ -254,13 +355,19 @@ DIST_SOURCES = $(libauthcustom_la_SOURCES) $(libauthldap_la_SOURCES) \
        $(authenumerate_SOURCES) $(authmksock_SOURCES) \
        $(authpasswd_SOURCES) $(authtest_SOURCES) \
        $(courierauthconfig_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-       html-recursive info-recursive install-data-recursive \
-       install-dvi-recursive install-exec-recursive \
-       install-html-recursive install-info-recursive \
-       install-pdf-recursive install-ps-recursive install-recursive \
-       installcheck-recursive installdirs-recursive pdf-recursive \
-       ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+       ctags-recursive dvi-recursive html-recursive info-recursive \
+       install-data-recursive install-dvi-recursive \
+       install-exec-recursive install-html-recursive \
+       install-info-recursive install-pdf-recursive \
+       install-ps-recursive install-recursive installcheck-recursive \
+       installdirs-recursive pdf-recursive ps-recursive \
+       tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
 man1dir = $(mandir)/man1
 man3dir = $(mandir)/man3
 NROFF = nroff
@@ -269,19 +376,44 @@ DATA = $(noinst_DATA)
 HEADERS = $(include_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-       $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
-       distdir dist dist-all distcheck
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+       cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+       $(LISP)courier_auth_config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+CSCOPE = cscope
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d "$(distdir)" \
-    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr "$(distdir)"; }; }
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
 am__relativize = \
   dir0=`pwd`; \
   sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -309,11 +441,15 @@ am__relativize = \
   reldir="$$dir2"
 DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2
 GZIP_ENV = --best
+DIST_TARGETS = dist-bzip2 dist-gzip
 distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
 pkglibexecdir = $(libexecdir)/courier-authlib
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
 AR = @AR@
 ARGZ_H = @ARGZ_H@
 AUTHPAMCRYPT = @AUTHPAMCRYPT@
@@ -331,6 +467,7 @@ CRYPTLIBS = @CRYPTLIBS@
 CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
 DSYMUTIL = @DSYMUTIL@
 DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
@@ -362,6 +499,7 @@ LIBAUTHPGSQL = @LIBAUTHPGSQL@
 LIBAUTHPIPE = @LIBAUTHPIPE@
 LIBAUTHPWD = @LIBAUTHPWD@
 LIBAUTHSHADOW = @LIBAUTHSHADOW@
+LIBAUTHSQLITE = @LIBAUTHSQLITE@
 LIBAUTHUSERDB = @LIBAUTHUSERDB@
 LIBDB = @LIBDB@
 LIBDL = @LIBDL@
@@ -381,6 +519,7 @@ LT_CONFIG_H = @LT_CONFIG_H@
 LT_DLLOADERS = @LT_DLLOADERS@
 LT_DLPREOPEN = @LT_DLPREOPEN@
 MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MYSQL_CONFIG = @MYSQL_CONFIG@
 MYSQL_LIBS = @MYSQL_LIBS@
@@ -396,6 +535,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PASSWD = @PASSWD@
 PATH_SEPARATOR = @PATH_SEPARATOR@
@@ -408,6 +548,7 @@ SED = @SED@
 SET_MAKE = @SET_MAKE@
 SHADOWLIBS = @SHADOWLIBS@
 SHELL = @SHELL@
+SQLITE_LIBS = @SQLITE_LIBS@
 STRIP = @STRIP@
 SYSCONFTOOL = @SYSCONFTOOL@
 SYSCONFTOOL_PERL = @SYSCONFTOOL_PERL@
@@ -418,6 +559,7 @@ abs_builddir = @abs_builddir@
 abs_srcdir = @abs_srcdir@
 abs_top_builddir = @abs_top_builddir@
 abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
 ac_ct_CC = @ac_ct_CC@
 ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
 am__include = @am__include@
@@ -431,6 +573,7 @@ authdaemonvar = @authdaemonvar@
 authldaprc = @authldaprc@
 authmysqlrc = @authmysqlrc@
 authpgsqlrc = @authpgsqlrc@
+authsqliterc = @authsqliterc@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -457,7 +600,6 @@ libdir = @libdir@
 libexecdir = @libexecdir@
 localedir = @localedir@
 localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
 ltdl_LIBOBJS = @ltdl_LIBOBJS@
 ltdl_LTLIBOBJS = @ltdl_LTLIBOBJS@
 mailgroup = @mailgroup@
@@ -481,11 +623,11 @@ top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 userdb = @userdb@
 AUTOMAKE_OPTIONS = dist-bzip2
-SUBDIRS = libltdl gdbmobj bdbobj md5 sha1 libhmac numlib makedat userdb unicode rfc822 random128 liblock liblog
-INCLUDES = $(LTDLINCL)
+SUBDIRS = libs/gdbmobj libs/bdbobj libs/md5 libs/sha1 libs/libhmac libs/numlib libs/makedat userdb libs/unicode libs/rfc822 libs/random128 libs/liblock liblog
+AM_CPPFLAGS = -I liblock $(LTDLINCL)
 modules = @LIBAUTHUSERDB@ \
        @LIBAUTHPAM@ @LIBAUTHPWD@ @LIBAUTHSHADOW@ \
-       @LIBAUTHPGSQL@ @LIBAUTHLDAP@ @LIBAUTHMYSQL@ \
+       @LIBAUTHPGSQL@ @LIBAUTHLDAP@ @LIBAUTHMYSQL@ @LIBAUTHSQLITE@ \
        @LIBAUTHCUSTOM@ @LIBAUTHPIPE@
 
 pkglibexec_SCRIPTS = authsystem.passwd
@@ -499,10 +641,11 @@ EXTRA_LTLIBRARIES = libauthuserdb.la \
        libauthpgsql.la \
        libauthldap.la \
        libauthmysql.la \
+       libauthsqlite.la \
        libauthcustom.la \
        libauthpipe.la
 
-CLEANFILES = authldaprc.h authmysqlrc.h authdaemonrc.h \
+CLEANFILES = authldaprc.h authmysqlrc.h authsqliterc.h authdaemonrc.h \
        authpgsqlrc.h authpiperc.h authdaemon \
        authlib.3 authlib.html packageversion.h \
        authchangepwdir.h sbindir.h pkglibdir.h pkgincludedir.h \
@@ -516,9 +659,10 @@ commonlibadd = libcourierauthcommon.la
 libcourierauthcommon_t = @CRYPTLIBS@
 libcourierauthcommon_la_SOURCES = \
        auth.h courierauth.h \
+       authgetconfig.c \
        authpwdenumerate.c \
        authsaslfrombase64.c authsasltobase64.c \
-       authstaticlist.h \
+       courierauthstaticlist.h \
        authsyschangepwd.c authsyscommon.c \
        authldapescape.c \
        cramlib.c cramlib.h \
@@ -533,8 +677,8 @@ libcourierauth_la_SOURCES = authdaemon.c authdaemonlib.c preauthdaemon.c \
        courierauthdebug.h \
        authoption.c
 
-libcourierauth_la_LIBADD = libhmac/libhmac.la md5/libmd5.la sha1/libsha1.la numlib/libnumlib.la \
-       random128/librandom128.la rfc822/libencode.la
+libcourierauth_la_LIBADD = libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la libs/numlib/libnumlib.la \
+       libs/random128/librandom128.la libs/rfc822/libencode.la
 
 libcourierauth_la_LDFLAGS = @NETLIBS@ -avoid-version
 
@@ -588,6 +732,13 @@ libauthmysql_la_DEPENDENCIES = $(commonlibdep)
 libauthmysql_la_LIBADD = $(commonlibadd) $(libauthmysql_t)
 libauthmysql_la_LDFLAGS = $(commonldflags)
 
+# The authsqlite module
+libauthsqlite_t = @SQLITE_LIBS@ @NETLIBS@
+libauthsqlite_la_SOURCES = authsqlite.c preauthsqlite.c authsqlitelib.c authsqlite.h
+libauthsqlite_la_DEPENDENCIES = $(commonlibdep)
+libauthsqlite_la_LIBADD = $(commonlibadd) $(libauthsqlite_t)
+libauthsqlite_la_LDFLAGS = $(commonldflags)
+
 # The authcustom module
 libauthcustom_la_SOURCES = authcustom.c preauthcustom.c authcustom.h
 libauthcustom_la_DEPENDENCIES = $(commonlibdep)
@@ -600,12 +751,12 @@ libauthpipe_la_DEPENDENCIES = $(commonlibdep)
 libauthpipe_la_LIBADD = $(commonlibadd)
 libauthpipe_la_LDFLAGS = $(commonldflags)
 HTMLFILES = README.html NEWS.html INSTALL.html \
-               README.authmysql.html README.authpostgres.html
+       README.authsqlite.html README.authmysql.html README.authpostgres.html
 
 EXTRA_DIST = $(HTMLFILES) sysconftool COPYING COPYING.GPL\
        authldap.schema \
        authldap.ldif \
-       authldaprc authmysqlrc authpgsqlrc README.ldap \
+       authldaprc authmysqlrc authpgsqlrc authsqliterc README.ldap \
        README.authmysql.myownquery \
        README.authdebug.html.in \
        courier-authlib.spec \
@@ -628,8 +779,8 @@ libcourierauthsasl_la_SOURCES = \
        authsaslcram.c authsasllogin.c authsaslplain.c \
        authsaslfrombase64.c authsasltobase64.c
 
-libcourierauthsasl_la_LIBADD = libcourierauth.la
-libcourierauthsasl_la_LDFLAGS = -export-symbols-regex '^auth_sasl|auth_sasl_ex$$' -avoid-version
+libcourierauthsasl_la_LIBADD = libcourierauthcommon.la libcourierauth.la
+libcourierauthsasl_la_LDFLAGS = -export-symbols-regex '^auth_sasl|auth_sasl_ex|auth_sasl_extract_userid$$' -avoid-version
 libcourierauthsaslclient_la_SOURCES = courierauthsaslclient.h \
        authsaslclient.c authsaslclient.h authsaslclientcram.c \
        authsaslclientcrammd5.c authsaslclientcramsha1.c \
@@ -640,22 +791,22 @@ libcourierauthsaslclient_la_SOURCES = courierauthsaslclient.h \
 libcourierauthsaslclient_la_LIBADD = libcourierauth.la
 libcourierauthsaslclient_la_LDFLAGS = -export-symbols-regex '^auth_sasl_client$$' -avoid-version
 include_HEADERS = courier_auth_config.h courierauth.h courierauthsasl.h \
-       courierauthsaslclient.h courierauthdebug.h
+       courierauthsaslclient.h courierauthdebug.h courierauthstaticlist.h
 
 courierauthconfig_SOURCES = authinfo.c
 authpasswd_SOURCES = authpasswd.c
 authpasswd_LDADD = libcourierauthcommon.la \
-        libhmac/libhmac.la md5/libmd5.la sha1/libsha1.la rfc822/libencode.la
+        libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la libs/rfc822/libencode.la
 
 authtest_SOURCES = authtest.c
 authtest_DEPENDENCIES = libcourierauth.la
 authtest_LDADD = libcourierauth.la
 authenumerate_SOURCES = authenumerate.c
 authenumerate_DEPENDENCIES = libcourierauth.la \
-       numlib/libnumlib.la
+       libs/numlib/libnumlib.la
 
 authenumerate_LDADD = libcourierauth.la \
-       numlib/libnumlib.la
+       libs/numlib/libnumlib.la
 
 authenumerate_LDFLAGS = 
 
@@ -663,13 +814,13 @@ authenumerate_LDFLAGS =
 # The main daemon.
 authdaemondprog_SOURCES = authdaemond.c
 authdaemondprog_DEPENDENCIES = libcourierauthcommon.la \
-       liblock/liblock.la $(modules) \
-       libhmac/libhmac.la md5/libmd5.la sha1/libsha1.la \
-       rfc822/libencode.la numlib/libnumlib.la
+       libs/liblock/liblock.la $(modules) \
+       libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la \
+       libs/rfc822/libencode.la libs/numlib/libnumlib.la
 
-authdaemondprog_LDADD = $(LIBLTDL) libcourierauthcommon.la liblock/liblock.la \
-       libhmac/libhmac.la md5/libmd5.la sha1/libsha1.la \
-       rfc822/libencode.la numlib/libnumlib.la
+authdaemondprog_LDADD = $(LIBLTDL) libcourierauthcommon.la libs/liblock/liblock.la \
+       libs/libhmac/libhmac.la libs/md5/libmd5.la libs/sha1/libsha1.la \
+       libs/rfc822/libencode.la libs/numlib/libnumlib.la
 
 authdaemondprog_LDFLAGS = -export-dynamic $(modules:%=-dlopen %) @NETLIBS@
 authdaemontest_SOURCES = authdaemontest.c
@@ -692,28 +843,28 @@ BUILT1 = authlib.html authldaprc.h authmysqlrc.h authpgsqlrc.h authpiperc.h \
 BUILT_SOURCES = $(BUILT1) $(man3:%.3=%.html) $(man1:%.1=%.html)
 noinst_DATA = $(BUILT_SOURCES)
 HTMLDOCFILES = $(HTMLFILES) README.authdebug.html README_authlib.html \
-       $(man3:%.3=%.html) $(man1:%.1=%.html)
+       $(man3:%.3=%.html) $(man1:%.1=%.html) userdb/userdb.html userdb/makeuserdb.html userdb/userdbpw.html
 
 all: $(BUILT_SOURCES) courier_auth_config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
-am--refresh:
+am--refresh: Makefile
        @:
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
            *$$dep*) \
-             echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \
-             $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \
+             echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+             $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
                && exit 0; \
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu Makefile
+         $(AUTOMAKE) --foreign Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -735,10 +886,8 @@ $(ACLOCAL_M4):  $(am__aclocal_m4_deps)
 $(am__aclocal_m4_deps):
 
 courier_auth_config.h: stamp-h1
-       @if test ! -f $@; then \
-         rm -f stamp-h1; \
-         $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
-       else :; fi
+       @if test ! -f $@; then rm -f stamp-h1; else :; fi
+       @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
 
 stamp-h1: $(srcdir)/courier_auth_config.h.in $(top_builddir)/config.status
        @rm -f stamp-h1
@@ -770,11 +919,13 @@ courier-authlib.lpspec: $(top_builddir)/config.status $(srcdir)/courier-authlib.
        cd $(top_builddir) && $(SHELL) ./config.status $@
 courier-authlib.sysvinit: $(top_builddir)/config.status $(srcdir)/courier-authlib.sysvinit.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
+courier-authlib.service: $(top_builddir)/config.status $(srcdir)/courier-authlib.service.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
 userdb-test-cram-md5.pl: $(top_builddir)/config.status $(srcdir)/userdb-test-cram-md5.pl.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
+
 install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
        @$(NORMAL_INSTALL)
-       test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
        @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
        list2=; for p in $$list; do \
          if test -f $$p; then \
@@ -782,6 +933,8 @@ install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
          else :; fi; \
        done; \
        test -z "$$list2" || { \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \
          echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
          $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
        }
@@ -797,48 +950,71 @@ uninstall-pkglibLTLIBRARIES:
 
 clean-pkglibLTLIBRARIES:
        -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
-       @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
-         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
-         test "$$dir" != "$$p" || dir=.; \
-         echo "rm -f \"$${dir}/so_locations\""; \
-         rm -f "$${dir}/so_locations"; \
-       done
-libauthcustom.la: $(libauthcustom_la_OBJECTS) $(libauthcustom_la_DEPENDENCIES) 
-       $(libauthcustom_la_LINK)  $(libauthcustom_la_OBJECTS) $(libauthcustom_la_LIBADD) $(LIBS)
-libauthldap.la: $(libauthldap_la_OBJECTS) $(libauthldap_la_DEPENDENCIES) 
-       $(libauthldap_la_LINK)  $(libauthldap_la_OBJECTS) $(libauthldap_la_LIBADD) $(LIBS)
-libauthmysql.la: $(libauthmysql_la_OBJECTS) $(libauthmysql_la_DEPENDENCIES) 
-       $(libauthmysql_la_LINK)  $(libauthmysql_la_OBJECTS) $(libauthmysql_la_LIBADD) $(LIBS)
-libauthpam.la: $(libauthpam_la_OBJECTS) $(libauthpam_la_DEPENDENCIES) 
-       $(libauthpam_la_LINK)  $(libauthpam_la_OBJECTS) $(libauthpam_la_LIBADD) $(LIBS)
-libauthpgsql.la: $(libauthpgsql_la_OBJECTS) $(libauthpgsql_la_DEPENDENCIES) 
-       $(libauthpgsql_la_LINK)  $(libauthpgsql_la_OBJECTS) $(libauthpgsql_la_LIBADD) $(LIBS)
-libauthpipe.la: $(libauthpipe_la_OBJECTS) $(libauthpipe_la_DEPENDENCIES) 
-       $(libauthpipe_la_LINK)  $(libauthpipe_la_OBJECTS) $(libauthpipe_la_LIBADD) $(LIBS)
-libauthpwd.la: $(libauthpwd_la_OBJECTS) $(libauthpwd_la_DEPENDENCIES) 
-       $(libauthpwd_la_LINK)  $(libauthpwd_la_OBJECTS) $(libauthpwd_la_LIBADD) $(LIBS)
-libauthshadow.la: $(libauthshadow_la_OBJECTS) $(libauthshadow_la_DEPENDENCIES) 
-       $(libauthshadow_la_LINK)  $(libauthshadow_la_OBJECTS) $(libauthshadow_la_LIBADD) $(LIBS)
-libauthuserdb.la: $(libauthuserdb_la_OBJECTS) $(libauthuserdb_la_DEPENDENCIES) 
-       $(libauthuserdb_la_LINK)  $(libauthuserdb_la_OBJECTS) $(libauthuserdb_la_LIBADD) $(LIBS)
-libcourierauth.la: $(libcourierauth_la_OBJECTS) $(libcourierauth_la_DEPENDENCIES) 
-       $(libcourierauth_la_LINK) -rpath $(pkglibdir) $(libcourierauth_la_OBJECTS) $(libcourierauth_la_LIBADD) $(LIBS)
-libcourierauthcommon.la: $(libcourierauthcommon_la_OBJECTS) $(libcourierauthcommon_la_DEPENDENCIES) 
-       $(libcourierauthcommon_la_LINK) -rpath $(pkglibdir) $(libcourierauthcommon_la_OBJECTS) $(libcourierauthcommon_la_LIBADD) $(LIBS)
-libcourierauthsasl.la: $(libcourierauthsasl_la_OBJECTS) $(libcourierauthsasl_la_DEPENDENCIES) 
-       $(libcourierauthsasl_la_LINK) -rpath $(pkglibdir) $(libcourierauthsasl_la_OBJECTS) $(libcourierauthsasl_la_LIBADD) $(LIBS)
-libcourierauthsaslclient.la: $(libcourierauthsaslclient_la_OBJECTS) $(libcourierauthsaslclient_la_DEPENDENCIES) 
-       $(libcourierauthsaslclient_la_LINK) -rpath $(pkglibdir) $(libcourierauthsaslclient_la_OBJECTS) $(libcourierauthsaslclient_la_LIBADD) $(LIBS)
+       @list='$(pkglib_LTLIBRARIES)'; \
+       locs=`for p in $$list; do echo $$p; done | \
+             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+             sort -u`; \
+       test -z "$$locs" || { \
+         echo rm -f $${locs}; \
+         rm -f $${locs}; \
+       }
+
+libauthcustom.la: $(libauthcustom_la_OBJECTS) $(libauthcustom_la_DEPENDENCIES) $(EXTRA_libauthcustom_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthcustom_la_LINK)  $(libauthcustom_la_OBJECTS) $(libauthcustom_la_LIBADD) $(LIBS)
+
+libauthldap.la: $(libauthldap_la_OBJECTS) $(libauthldap_la_DEPENDENCIES) $(EXTRA_libauthldap_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthldap_la_LINK)  $(libauthldap_la_OBJECTS) $(libauthldap_la_LIBADD) $(LIBS)
+
+libauthmysql.la: $(libauthmysql_la_OBJECTS) $(libauthmysql_la_DEPENDENCIES) $(EXTRA_libauthmysql_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthmysql_la_LINK)  $(libauthmysql_la_OBJECTS) $(libauthmysql_la_LIBADD) $(LIBS)
+
+libauthpam.la: $(libauthpam_la_OBJECTS) $(libauthpam_la_DEPENDENCIES) $(EXTRA_libauthpam_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthpam_la_LINK)  $(libauthpam_la_OBJECTS) $(libauthpam_la_LIBADD) $(LIBS)
+
+libauthpgsql.la: $(libauthpgsql_la_OBJECTS) $(libauthpgsql_la_DEPENDENCIES) $(EXTRA_libauthpgsql_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthpgsql_la_LINK)  $(libauthpgsql_la_OBJECTS) $(libauthpgsql_la_LIBADD) $(LIBS)
+
+libauthpipe.la: $(libauthpipe_la_OBJECTS) $(libauthpipe_la_DEPENDENCIES) $(EXTRA_libauthpipe_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthpipe_la_LINK)  $(libauthpipe_la_OBJECTS) $(libauthpipe_la_LIBADD) $(LIBS)
+
+libauthpwd.la: $(libauthpwd_la_OBJECTS) $(libauthpwd_la_DEPENDENCIES) $(EXTRA_libauthpwd_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthpwd_la_LINK)  $(libauthpwd_la_OBJECTS) $(libauthpwd_la_LIBADD) $(LIBS)
+
+libauthshadow.la: $(libauthshadow_la_OBJECTS) $(libauthshadow_la_DEPENDENCIES) $(EXTRA_libauthshadow_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthshadow_la_LINK)  $(libauthshadow_la_OBJECTS) $(libauthshadow_la_LIBADD) $(LIBS)
+
+libauthsqlite.la: $(libauthsqlite_la_OBJECTS) $(libauthsqlite_la_DEPENDENCIES) $(EXTRA_libauthsqlite_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthsqlite_la_LINK)  $(libauthsqlite_la_OBJECTS) $(libauthsqlite_la_LIBADD) $(LIBS)
+
+libauthuserdb.la: $(libauthuserdb_la_OBJECTS) $(libauthuserdb_la_DEPENDENCIES) $(EXTRA_libauthuserdb_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libauthuserdb_la_LINK)  $(libauthuserdb_la_OBJECTS) $(libauthuserdb_la_LIBADD) $(LIBS)
+
+libcourierauth.la: $(libcourierauth_la_OBJECTS) $(libcourierauth_la_DEPENDENCIES) $(EXTRA_libcourierauth_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libcourierauth_la_LINK) -rpath $(pkglibdir) $(libcourierauth_la_OBJECTS) $(libcourierauth_la_LIBADD) $(LIBS)
+
+libcourierauthcommon.la: $(libcourierauthcommon_la_OBJECTS) $(libcourierauthcommon_la_DEPENDENCIES) $(EXTRA_libcourierauthcommon_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libcourierauthcommon_la_LINK) -rpath $(pkglibdir) $(libcourierauthcommon_la_OBJECTS) $(libcourierauthcommon_la_LIBADD) $(LIBS)
+
+libcourierauthsasl.la: $(libcourierauthsasl_la_OBJECTS) $(libcourierauthsasl_la_DEPENDENCIES) $(EXTRA_libcourierauthsasl_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libcourierauthsasl_la_LINK) -rpath $(pkglibdir) $(libcourierauthsasl_la_OBJECTS) $(libcourierauthsasl_la_LIBADD) $(LIBS)
+
+libcourierauthsaslclient.la: $(libcourierauthsaslclient_la_OBJECTS) $(libcourierauthsaslclient_la_DEPENDENCIES) $(EXTRA_libcourierauthsaslclient_la_DEPENDENCIES) 
+       $(AM_V_CCLD)$(libcourierauthsaslclient_la_LINK) -rpath $(pkglibdir) $(libcourierauthsaslclient_la_OBJECTS) $(libcourierauthsaslclient_la_LIBADD) $(LIBS)
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
        @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+       fi; \
        for p in $$list; do echo "$$p $$p"; done | \
        sed 's/$(EXEEXT)$$//' | \
-       while read p p1; do if test -f $$p || test -f $$p1; \
-         then echo "$$p"; echo "$$p"; else :; fi; \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
        done | \
-       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
            -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
        sed 'N;N;N;s,\n, ,g' | \
        $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -859,7 +1035,8 @@ uninstall-binPROGRAMS:
        @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
        files=`for p in $$list; do echo "$$p"; done | \
          sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-             -e 's/$$/$(EXEEXT)/' `; \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
        test -n "$$list" || exit 0; \
        echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -883,14 +1060,19 @@ clean-noinstPROGRAMS:
        rm -f $$list
 install-sbinPROGRAMS: $(sbin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
        @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
+       fi; \
        for p in $$list; do echo "$$p $$p"; done | \
        sed 's/$(EXEEXT)$$//' | \
-       while read p p1; do if test -f $$p || test -f $$p1; \
-         then echo "$$p"; echo "$$p"; else :; fi; \
+       while read p p1; do if test -f $$p \
+        || test -f $$p1 \
+         ; then echo "$$p"; echo "$$p"; else :; fi; \
        done | \
-       sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+       sed -e 'p;s,.*/,,;n;h' \
+           -e 's|.*|.|' \
            -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
        sed 'N;N;N;s,\n, ,g' | \
        $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -911,7 +1093,8 @@ uninstall-sbinPROGRAMS:
        @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
        files=`for p in $$list; do echo "$$p"; done | \
          sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-             -e 's/$$/$(EXEEXT)/' `; \
+             -e 's/$$/$(EXEEXT)/' \
+       `; \
        test -n "$$list" || exit 0; \
        echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(sbindir)" && rm -f $$files
@@ -924,31 +1107,41 @@ clean-sbinPROGRAMS:
        list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
        echo " rm -f" $$list; \
        rm -f $$list
-authdaemondprog$(EXEEXT): $(authdaemondprog_OBJECTS) $(authdaemondprog_DEPENDENCIES) 
+
+authdaemondprog$(EXEEXT): $(authdaemondprog_OBJECTS) $(authdaemondprog_DEPENDENCIES) $(EXTRA_authdaemondprog_DEPENDENCIES) 
        @rm -f authdaemondprog$(EXEEXT)
-       $(authdaemondprog_LINK) $(authdaemondprog_OBJECTS) $(authdaemondprog_LDADD) $(LIBS)
-authdaemontest$(EXEEXT): $(authdaemontest_OBJECTS) $(authdaemontest_DEPENDENCIES) 
+       $(AM_V_CCLD)$(authdaemondprog_LINK) $(authdaemondprog_OBJECTS) $(authdaemondprog_LDADD) $(LIBS)
+
+authdaemontest$(EXEEXT): $(authdaemontest_OBJECTS) $(authdaemontest_DEPENDENCIES) $(EXTRA_authdaemontest_DEPENDENCIES) 
        @rm -f authdaemontest$(EXEEXT)
-       $(authdaemontest_LINK) $(authdaemontest_OBJECTS) $(authdaemontest_LDADD) $(LIBS)
-authenumerate$(EXEEXT): $(authenumerate_OBJECTS) $(authenumerate_DEPENDENCIES) 
+       $(AM_V_CCLD)$(authdaemontest_LINK) $(authdaemontest_OBJECTS) $(authdaemontest_LDADD) $(LIBS)
+
+authenumerate$(EXEEXT): $(authenumerate_OBJECTS) $(authenumerate_DEPENDENCIES) $(EXTRA_authenumerate_DEPENDENCIES) 
        @rm -f authenumerate$(EXEEXT)
-       $(authenumerate_LINK) $(authenumerate_OBJECTS) $(authenumerate_LDADD) $(LIBS)
-authmksock$(EXEEXT): $(authmksock_OBJECTS) $(authmksock_DEPENDENCIES) 
+       $(AM_V_CCLD)$(authenumerate_LINK) $(authenumerate_OBJECTS) $(authenumerate_LDADD) $(LIBS)
+
+authmksock$(EXEEXT): $(authmksock_OBJECTS) $(authmksock_DEPENDENCIES) $(EXTRA_authmksock_DEPENDENCIES) 
        @rm -f authmksock$(EXEEXT)
-       $(LINK) $(authmksock_OBJECTS) $(authmksock_LDADD) $(LIBS)
-authpasswd$(EXEEXT): $(authpasswd_OBJECTS) $(authpasswd_DEPENDENCIES) 
+       $(AM_V_CCLD)$(LINK) $(authmksock_OBJECTS) $(authmksock_LDADD) $(LIBS)
+
+authpasswd$(EXEEXT): $(authpasswd_OBJECTS) $(authpasswd_DEPENDENCIES) $(EXTRA_authpasswd_DEPENDENCIES) 
        @rm -f authpasswd$(EXEEXT)
-       $(LINK) $(authpasswd_OBJECTS) $(authpasswd_LDADD) $(LIBS)
-authtest$(EXEEXT): $(authtest_OBJECTS) $(authtest_DEPENDENCIES) 
+       $(AM_V_CCLD)$(LINK) $(authpasswd_OBJECTS) $(authpasswd_LDADD) $(LIBS)
+
+authtest$(EXEEXT): $(authtest_OBJECTS) $(authtest_DEPENDENCIES) $(EXTRA_authtest_DEPENDENCIES) 
        @rm -f authtest$(EXEEXT)
-       $(LINK) $(authtest_OBJECTS) $(authtest_LDADD) $(LIBS)
-courierauthconfig$(EXEEXT): $(courierauthconfig_OBJECTS) $(courierauthconfig_DEPENDENCIES) 
+       $(AM_V_CCLD)$(LINK) $(authtest_OBJECTS) $(authtest_LDADD) $(LIBS)
+
+courierauthconfig$(EXEEXT): $(courierauthconfig_OBJECTS) $(courierauthconfig_DEPENDENCIES) $(EXTRA_courierauthconfig_DEPENDENCIES) 
        @rm -f courierauthconfig$(EXEEXT)
-       $(LINK) $(courierauthconfig_OBJECTS) $(courierauthconfig_LDADD) $(LIBS)
+       $(AM_V_CCLD)$(LINK) $(courierauthconfig_OBJECTS) $(courierauthconfig_LDADD) $(LIBS)
 install-pkglibexecSCRIPTS: $(pkglibexec_SCRIPTS)
        @$(NORMAL_INSTALL)
-       test -z "$(pkglibexecdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)"
        @list='$(pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(pkglibexecdir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(pkglibexecdir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
@@ -976,13 +1169,14 @@ uninstall-pkglibexecSCRIPTS:
        @list='$(pkglibexec_SCRIPTS)'; test -n "$(pkglibexecdir)" || exit 0; \
        files=`for p in $$list; do echo "$$p"; done | \
               sed -e 's,.*/,,;$(transform)'`; \
-       test -n "$$list" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(pkglibexecdir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(pkglibexecdir)" && rm -f $$files
+       dir='$(DESTDIR)$(pkglibexecdir)'; $(am__uninstall_files_from_dir)
 install-sbinSCRIPTS: $(sbin_SCRIPTS)
        @$(NORMAL_INSTALL)
-       test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
        @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
@@ -1010,9 +1204,7 @@ uninstall-sbinSCRIPTS:
        @list='$(sbin_SCRIPTS)'; test -n "$(sbindir)" || exit 0; \
        files=`for p in $$list; do echo "$$p"; done | \
               sed -e 's,.*/,,;$(transform)'`; \
-       test -n "$$list" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(sbindir)" && rm -f $$files
+       dir='$(DESTDIR)$(sbindir)'; $(am__uninstall_files_from_dir)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -1026,6 +1218,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authdaemonlib.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authdaemontest.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authenumerate.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authgetconfig.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authinfo.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authldap.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authldapescape.Plo@am__quote@
@@ -1058,6 +1251,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authsaslplain.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authsasltobase64.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authshadow.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authsqlite.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authsqlitelib.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authsyschangepwd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authsyscommon.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/authtest.Po@am__quote@
@@ -1077,29 +1272,30 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preauthpgsql.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preauthpwd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preauthshadow.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preauthsqlite.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preauthuserdb.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/preauthuserdbcommon.Plo@am__quote@
 
 .c.o:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c $<
 
 .c.obj:
-@am__fastdepCC_TRUE@   $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
-@am__fastdepCC_TRUE@   $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
 
 mostlyclean-libtool:
        -rm -f *.lo
@@ -1111,11 +1307,18 @@ distclean-libtool:
        -rm -f libtool config.lt
 install-man1: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
-       @list=''; test -n "$(man1dir)" || exit 0; \
-       { for i in $$list; do echo "$$i"; done; \
-       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
-         sed -n '/\.1[a-z]*$$/p'; \
+       @list1=''; \
+       list2='$(man_MANS)'; \
+       test -n "$(man1dir)" \
+         && test -n "`echo $$list1$$list2`" \
+         || exit 0; \
+       echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+       $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+       { for i in $$list1; do echo "$$i"; done;  \
+       if test -n "$$list2"; then \
+         for i in $$list2; do echo "$$i"; done \
+           | sed -n '/\.1[a-z]*$$/p'; \
+       fi; \
        } | while read p; do \
          if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; echo "$$p"; \
@@ -1144,16 +1347,21 @@ uninstall-man1:
          sed -n '/\.1[a-z]*$$/p'; \
        } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
              -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-       test -z "$$files" || { \
-         echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
-         cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+       dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 install-man3: $(man_MANS)
        @$(NORMAL_INSTALL)
-       test -z "$(man3dir)" || $(MKDIR_P) "$(DESTDIR)$(man3dir)"
-       @list=''; test -n "$(man3dir)" || exit 0; \
-       { for i in $$list; do echo "$$i"; done; \
-       l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
-         sed -n '/\.3[a-z]*$$/p'; \
+       @list1=''; \
+       list2='$(man_MANS)'; \
+       test -n "$(man3dir)" \
+         && test -n "`echo $$list1$$list2`" \
+         || exit 0; \
+       echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \
+       $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \
+       { for i in $$list1; do echo "$$i"; done;  \
+       if test -n "$$list2"; then \
+         for i in $$list2; do echo "$$i"; done \
+           | sed -n '/\.3[a-z]*$$/p'; \
+       fi; \
        } | while read p; do \
          if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; echo "$$p"; \
@@ -1182,13 +1390,14 @@ uninstall-man3:
          sed -n '/\.3[a-z]*$$/p'; \
        } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
              -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
-       test -z "$$files" || { \
-         echo " ( cd '$(DESTDIR)$(man3dir)' && rm -f" $$files ")"; \
-         cd "$(DESTDIR)$(man3dir)" && rm -f $$files; }
+       dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir)
 install-includeHEADERS: $(include_HEADERS)
        @$(NORMAL_INSTALL)
-       test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
        @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
+       if test -n "$$list"; then \
+         echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
+         $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
+       fi; \
        for p in $$list; do \
          if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
          echo "$$d$$p"; \
@@ -1202,27 +1411,28 @@ uninstall-includeHEADERS:
        @$(NORMAL_UNINSTALL)
        @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
        files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       test -n "$$files" || exit 0; \
-       echo " ( cd '$(DESTDIR)$(includedir)' && rm -f" $$files ")"; \
-       cd "$(DESTDIR)$(includedir)" && rm -f $$files
+       dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
 
 # This directory's subdirectories are mostly independent; you can cd
-# into them and run `make' without going through this Makefile.
-# To change the values of `make' variables: instead of editing Makefiles,
-# (1) if the variable is set in `config.status', edit `config.status'
-#     (which will cause the Makefiles to be regenerated when you run `make');
-# (2) otherwise, pass the desired values on the `make' command line.
-$(RECURSIVE_TARGETS):
-       @failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+#     (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+       @fail=; \
+       if $(am__make_keepgoing); then \
+         failcom='fail=yes'; \
+       else \
+         failcom='exit 1'; \
+       fi; \
        dot_seen=no; \
        target=`echo $@ | sed s/-recursive//`; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       for subdir in $$list; do \
          echo "Making $$target in $$subdir"; \
          if test "$$subdir" = "."; then \
            dot_seen=yes; \
@@ -1237,57 +1447,12 @@ $(RECURSIVE_TARGETS):
          $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
        fi; test -z "$$fail"
 
-$(RECURSIVE_CLEAN_TARGETS):
-       @failcom='exit 1'; \
-       for f in x $$MAKEFLAGS; do \
-         case $$f in \
-           *=* | --[!k]*);; \
-           *k*) failcom='fail=yes';; \
-         esac; \
-       done; \
-       dot_seen=no; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       rev=''; for subdir in $$list; do \
-         if test "$$subdir" = "."; then :; else \
-           rev="$$subdir $$rev"; \
-         fi; \
-       done; \
-       rev="$$rev ."; \
-       target=`echo $@ | sed s/-recursive//`; \
-       for subdir in $$rev; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done && test -z "$$fail"
-tags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-       done
-ctags-recursive:
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-       done
+ID: $(am__tagged_files)
+       $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
-       mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) courier_auth_config.h.in $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
        set x; \
        here=`pwd`; \
        if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -1303,12 +1468,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) courier_auth_config.h.in $(TAGS_DEPEN
              set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
          fi; \
        done; \
-       list='$(SOURCES) $(HEADERS) courier_auth_config.h.in $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       $(am__define_uniq_tagged_files); \
        shift; \
        if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
          test -n "$$unique" || unique=$$empty_fix; \
@@ -1320,15 +1480,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) courier_auth_config.h.in $(TAGS_DEPEN
              $$unique; \
          fi; \
        fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) courier_auth_config.h.in $(TAGS_DEPENDENCIES) \
-               $(TAGS_FILES) $(LISP)
-       list='$(SOURCES) $(HEADERS) courier_auth_config.h.in $(LISP) $(TAGS_FILES)'; \
-       unique=`for i in $$list; do \
-           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-         done | \
-         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-             END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+       $(am__define_uniq_tagged_files); \
        test -z "$(CTAGS_ARGS)$$unique" \
          || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
             $$unique
@@ -1337,24 +1493,33 @@ GTAGS:
        here=`$(am__cd) $(top_builddir) && pwd` \
          && $(am__cd) $(top_srcdir) \
          && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+       test ! -s cscope.files \
+         || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+       -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+       list='$(am__tagged_files)'; \
+       case "$(srcdir)" in \
+         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+         *) sdir=$(subdir)/$(srcdir) ;; \
+       esac; \
+       for i in $$list; do \
+         if test -f "$$i"; then \
+           echo "$(subdir)/$$i"; \
+         else \
+           echo "$$sdir/$$i"; \
+         fi; \
+       done >> $(top_builddir)/cscope.files
 
 distclean-tags:
        -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
 
 distdir: $(DISTFILES)
-       @list='$(MANS)'; if test -n "$$list"; then \
-         list=`for p in $$list; do \
-           if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-           if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
-         if test -n "$$list" && \
-           grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
-           echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
-           grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
-           echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
-           echo "       typically \`make maintainer-clean' will remove them" >&2; \
-           exit 1; \
-         else :; fi; \
-       else :; fi
        $(am__remove_distdir)
        test -d "$(distdir)" || mkdir "$(distdir)"
        @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -1388,13 +1553,10 @@ distdir: $(DISTFILES)
        done
        @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
          if test "$$subdir" = .; then :; else \
-           test -d "$(distdir)/$$subdir" \
-           || $(MKDIR_P) "$(distdir)/$$subdir" \
-           || exit 1; \
-         fi; \
-       done
-       @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
+           $(am__make_dryrun) \
+             || test -d "$(distdir)/$$subdir" \
+             || $(MKDIR_P) "$(distdir)/$$subdir" \
+             || exit 1; \
            dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
            $(am__relativize); \
            new_distdir=$$reldir; \
@@ -1418,43 +1580,43 @@ distdir: $(DISTFILES)
          top_distdir="$(top_distdir)" distdir="$(distdir)" \
          dist-hook
        -test -n "$(am__skip_mode_fix)" \
-       || find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+       || find "$(distdir)" -type d ! -perm -755 \
+               -exec chmod u+rwx,go+rx {} \; -o \
          ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
          ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
          ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
        || chmod -R a+r "$(distdir)"
 dist-gzip: distdir
        tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 dist-bzip2: distdir
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-       $(am__remove_distdir)
+       tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+       $(am__post_remove_distdir)
 
-dist-lzma: distdir
-       tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
-       $(am__remove_distdir)
+dist-lzip: distdir
+       tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+       $(am__post_remove_distdir)
 
 dist-xz: distdir
-       tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
-       $(am__remove_distdir)
+       tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+       $(am__post_remove_distdir)
 
 dist-tarZ: distdir
        tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-shar: distdir
        shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
 dist-zip: distdir
        -rm -f $(distdir).zip
        zip -rq $(distdir).zip $(distdir)
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
 
-dist dist-all: distdir
-       tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
-       tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
-       $(am__remove_distdir)
+dist dist-all:
+       $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+       $(am__post_remove_distdir)
 
 # This target untars the dist file and tries a VPATH configuration.  Then
 # it guarantees that the distribution is self-contained by making another
@@ -1462,23 +1624,23 @@ dist dist-all: distdir
 distcheck: dist
        case '$(DIST_ARCHIVES)' in \
        *.tar.gz*) \
-         GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+         GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
        *.tar.bz2*) \
-         bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
-       *.tar.lzma*) \
-         unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+         bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+       *.tar.lz*) \
+         lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
        *.tar.xz*) \
          xz -dc $(distdir).tar.xz | $(am__untar) ;;\
        *.tar.Z*) \
          uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
        *.shar.gz*) \
-         GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+         GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
        *.zip*) \
          unzip $(distdir).zip ;;\
        esac
-       chmod -R a-w $(distdir); chmod a+w $(distdir)
-       mkdir $(distdir)/_build
-       mkdir $(distdir)/_inst
+       chmod -R a-w $(distdir)
+       chmod u+w $(distdir)
+       mkdir $(distdir)/_build $(distdir)/_inst
        chmod a-w $(distdir)
        test -d $(distdir)/_build || exit 0; \
        dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -1486,6 +1648,7 @@ distcheck: dist
          && am__cwd=`pwd` \
          && $(am__cd) $(distdir)/_build \
          && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+           $(AM_DISTCHECK_CONFIGURE_FLAGS) \
            $(DISTCHECK_CONFIGURE_FLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) \
          && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -1509,13 +1672,21 @@ distcheck: dist
          && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
          && cd "$$am__cwd" \
          || exit 1
-       $(am__remove_distdir)
+       $(am__post_remove_distdir)
        @(echo "$(distdir) archives ready for distribution: "; \
          list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
          sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-       @$(am__cd) '$(distuninstallcheck_dir)' \
-       && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+       @test -n '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: trying to run $@ with an empty' \
+              '$$(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       $(am__cd) '$(distuninstallcheck_dir)' || { \
+         echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+         exit 1; \
+       }; \
+       test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
           || { echo "ERROR: files left after uninstall:" ; \
                if test -n "$(DESTDIR)"; then \
                  echo "  (check DESTDIR support)"; \
@@ -1552,10 +1723,15 @@ install-am: all-am
 
 installcheck: installcheck-recursive
 install-strip:
-       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-         `test -z '$(STRIP)' || \
-           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+       if test -z '$(STRIP)'; then \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+             install; \
+       else \
+         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+       fi
 mostlyclean-generic:
 
 clean-generic:
@@ -1655,31 +1831,31 @@ uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \
        $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
 uninstall-man: uninstall-man1 uninstall-man3
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all check \
-       ctags-recursive install install-am install-data-am \
-       install-exec-am install-strip tags-recursive uninstall-am
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-       all all-am am--refresh check check-am clean clean-binPROGRAMS \
-       clean-generic clean-libtool clean-noinstPROGRAMS \
-       clean-pkglibLTLIBRARIES clean-sbinPROGRAMS ctags \
-       ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \
-       dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \
-       distclean distclean-compile distclean-generic distclean-hdr \
-       distclean-libtool distclean-tags distcleancheck distdir \
-       distuninstallcheck dvi dvi-am html html-am info info-am \
-       install install-am install-binPROGRAMS install-data \
-       install-data-am install-data-hook install-dvi install-dvi-am \
-       install-exec install-exec-am install-exec-hook install-html \
-       install-html-am install-includeHEADERS install-info \
-       install-info-am install-man install-man1 install-man3 \
-       install-pdf install-pdf-am install-pkglibLTLIBRARIES \
+.MAKE: $(am__recursive_targets) all check install install-am \
+       install-data-am install-exec-am install-strip uninstall-am
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+       am--refresh check check-am clean clean-binPROGRAMS \
+       clean-cscope clean-generic clean-libtool clean-noinstPROGRAMS \
+       clean-pkglibLTLIBRARIES clean-sbinPROGRAMS cscope \
+       cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+       dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
+       dist-zip distcheck distclean distclean-compile \
+       distclean-generic distclean-hdr distclean-libtool \
+       distclean-tags distcleancheck distdir distuninstallcheck dvi \
+       dvi-am html html-am info info-am install install-am \
+       install-binPROGRAMS install-data install-data-am \
+       install-data-hook install-dvi install-dvi-am install-exec \
+       install-exec-am install-exec-hook install-html install-html-am \
+       install-includeHEADERS install-info install-info-am \
+       install-man install-man1 install-man3 install-pdf \
+       install-pdf-am install-pkglibLTLIBRARIES \
        install-pkglibexecSCRIPTS install-ps install-ps-am \
        install-sbinPROGRAMS install-sbinSCRIPTS install-strip \
        installcheck installcheck-am installdirs installdirs-am \
        maintainer-clean maintainer-clean-generic mostlyclean \
        mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-       pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
        uninstall-binPROGRAMS uninstall-hook uninstall-includeHEADERS \
        uninstall-man uninstall-man1 uninstall-man3 \
        uninstall-pkglibLTLIBRARIES uninstall-pkglibexecSCRIPTS \
@@ -1749,6 +1925,27 @@ authmysqllib.lo: authmysqllib.c authmysqlrc.h
 authmysqlrc.h:
        echo "#define AUTHMYSQLRC \"@authmysqlrc@\"" >authmysqlrc.h
 
+authsqlitelib.lo: authsqlitelib.c authsqliterc.h
+
+@HAVE_AUTHSQLITE_TRUE@install-authsqliterc:
+@HAVE_AUTHSQLITE_TRUE@ $(mkinstalldirs) $(DESTDIR)`dirname @authsqliterc@` || :
+@HAVE_AUTHSQLITE_TRUE@ $(INSTALL_DATA) -m 660 $(srcdir)/authsqliterc \
+@HAVE_AUTHSQLITE_TRUE@         $(DESTDIR)@authsqliterc@.dist
+@HAVE_AUTHSQLITE_TRUE@ -chown @mailuser@ $(DESTDIR)@authsqliterc@.dist
+@HAVE_AUTHSQLITE_TRUE@ -chgrp @mailgroup@ $(DESTDIR)@authsqliterc@.dist
+
+@HAVE_AUTHSQLITE_TRUE@uninstall-authsqliterc:
+@HAVE_AUTHSQLITE_TRUE@ rm -f $(DESTDIR)@authsqliterc@.dist
+
+@HAVE_AUTHSQLITE_FALSE@install-authsqliterc:
+@HAVE_AUTHSQLITE_FALSE@        @:
+
+@HAVE_AUTHSQLITE_FALSE@uninstall-authsqliterc:
+@HAVE_AUTHSQLITE_FALSE@        @:
+
+authsqliterc.h:
+       echo "#define AUTHSQLITERC \"@authsqliterc@\"" >authsqliterc.h
+
 authpipelib.lo: authpipelib.c authpipelib.h authpiperc.h
 
 authpiperc.h:
@@ -1806,20 +2003,23 @@ dist-hook:
 # automake still a bit stupid...
 
 install-data-hook: install-authdaemonrc install-authpgsqlrc \
-       install-authldaprc install-authmysqlrc
+       install-authldaprc install-authmysqlrc install-authsqliterc
        :
 
 install-exec-hook:
        $(mkinstalldirs) $(DESTDIR)$(bindir) || :
        $(mkinstalldirs) $(DESTDIR)$(sbindir) || :
        $(mkinstalldirs) $(DESTDIR)$(pkglibexecdir) || :
+       chmod 755 $(DESTDIR)$(pkglibexecdir)
+       -chown @mailuser@ $(DESTDIR)$(pkglibexecdir)
+       -chgrp @mailgroup@ $(DESTDIR)$(pkglibexecdir)
        $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) authdaemondprog $(DESTDIR)$(pkglibexecdir)/authdaemond
        $(mkinstalldirs) $(DESTDIR)@authdaemonvar@ || :
        chmod 750 $(DESTDIR)@authdaemonvar@
        -chown @mailuser@ $(DESTDIR)@authdaemonvar@
        -chgrp @mailgroup@ $(DESTDIR)@authdaemonvar@
        test "@LIBAUTHUSERDB@" = "" && exit 0 ;\
-               $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) makedat/makedatprog \
+               $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) libs/makedat/makedatprog \
                                $(DESTDIR)$(pkglibexecdir)/makedatprog ; \
                $(INSTALL_SCRIPT) userdb/pw2userdb \
                                $(DESTDIR)$(sbindir)/pw2userdb ; \
@@ -1831,9 +2031,8 @@ install-exec-hook:
                                $(DESTDIR)$(sbindir)/userdbpw ; \
                $(INSTALL_SCRIPT) userdb-test-cram-md5.pl \
                                $(DESTDIR)$(sbindir)/userdb-test-cram-md5
-       for f in $(pkglib_LTLIBRARIES); do . ./$$f; rm -f $(DESTDIR)$(pkglibdir)/$$dlname.0 $(DESTDIR)$(pkglibdir)/$$dlname.0.0; ln -s $$dlname $(DESTDIR)$(pkglibdir)/$$dlname.0; done
 
-uninstall-hook: uninstall-authldaprc uninstall-authdaemonrc uninstall-authmysqlrc uninstall-authpgsqlrc
+uninstall-hook: uninstall-authldaprc uninstall-authdaemonrc uninstall-authmysqlrc uninstall-authpgsqlrc uninstall-authsqliterc
        rm -f $(DESTDIR)$(pkglibexecdir)/authdaemond
        test "@AUTHUSERDB@" = "" && exit 0 ;\
                rm -f $(DESTDIR)$(pkglibexecdir)/makedatprog \
@@ -1842,7 +2041,6 @@ uninstall-hook: uninstall-authldaprc uninstall-authdaemonrc uninstall-authmysqlr
                                $(DESTDIR)$(sbindir)/userdb \
                                $(DESTDIR)$(sbindir)/userdbpw \
                                $(DESTDIR)$(sbindir)/userdb-test-cram-md5
-       for f in $(pkglib_LTLIBRARIES); do . ./$$f; rm -f $(DESTDIR)$(pkglibdir)/$$dlname.0; done
 
 authlib.html: authlib.html.in
        $(SHELL) ./config.status --file=authlib.html
@@ -1850,69 +2048,69 @@ authlib.html: authlib.html.in
 authlib.3: authlib.3.in
        $(SHELL) ./config.status --file=authlib.3
 
-@HAVE_SGML_TRUE@authpasswd.html: authpasswd.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html authpasswd.sgml authpasswd.html
+@HAVE_SGML_TRUE@authpasswd.html: authpasswd.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html authpasswd.sgml authpasswd.html
 
-@HAVE_SGML_TRUE@authpasswd.1: authpasswd.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man authpasswd.sgml authpasswd.1
+@HAVE_SGML_TRUE@authpasswd.1: authpasswd.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man authpasswd.sgml authpasswd.1
 
-@HAVE_SGML_TRUE@authtest.html: authtest.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html authtest.sgml authtest.html
+@HAVE_SGML_TRUE@authtest.html: authtest.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html authtest.sgml authtest.html
 
-@HAVE_SGML_TRUE@authtest.1: authtest.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man authtest.sgml authtest.1
+@HAVE_SGML_TRUE@authtest.1: authtest.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man authtest.sgml authtest.1
 
-@HAVE_SGML_TRUE@authlib.html.in: authlib.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html authlib.sgml authlib.html.in
+@HAVE_SGML_TRUE@authlib.html.in: authlib.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html authlib.sgml authlib.html.in
 
-@HAVE_SGML_TRUE@authlib.3.in: authlib.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man authlib.sgml authlib.3.in
+@HAVE_SGML_TRUE@authlib.3.in: authlib.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man authlib.sgml authlib.3.in
 @HAVE_SGML_TRUE@       mv authlib.3 authlib.3.in
 
-@HAVE_SGML_TRUE@README_authlib.html.in: README_authlib.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html README_authlib.sgml README_authlib.html.in
+@HAVE_SGML_TRUE@README_authlib.html.in: README_authlib.sgml optionlist.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html README_authlib.sgml README_authlib.html.in
 
-@HAVE_SGML_TRUE@auth_generic.html: auth_generic.sgml authcallback.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html auth_generic.sgml auth_generic.html
+@HAVE_SGML_TRUE@auth_generic.html: auth_generic.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html auth_generic.sgml auth_generic.html
 
-@HAVE_SGML_TRUE@auth_generic.3: auth_generic.sgml authcallback.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man auth_generic.sgml auth_generic.3
+@HAVE_SGML_TRUE@auth_generic.3: auth_generic.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man auth_generic.sgml auth_generic.3
 
-@HAVE_SGML_TRUE@auth_login.html: auth_login.sgml authcallback.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html auth_login.sgml auth_login.html
+@HAVE_SGML_TRUE@auth_login.html: auth_login.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html auth_login.sgml auth_login.html
 
-@HAVE_SGML_TRUE@auth_login.3: auth_login.sgml authcallback.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man auth_login.sgml auth_login.3
+@HAVE_SGML_TRUE@auth_login.3: auth_login.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man auth_login.sgml auth_login.3
 
-@HAVE_SGML_TRUE@auth_getuserinfo.html: auth_getuserinfo.sgml authcallback.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html auth_getuserinfo.sgml auth_getuserinfo.html
+@HAVE_SGML_TRUE@auth_getuserinfo.html: auth_getuserinfo.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html auth_getuserinfo.sgml auth_getuserinfo.html
 
-@HAVE_SGML_TRUE@auth_getuserinfo.3: auth_getuserinfo.sgml authcallback.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man auth_getuserinfo.sgml auth_getuserinfo.3
+@HAVE_SGML_TRUE@auth_getuserinfo.3: auth_getuserinfo.sgml authcallback.sgml optionlist.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man auth_getuserinfo.sgml auth_getuserinfo.3
 
-@HAVE_SGML_TRUE@auth_enumerate.html: auth_enumerate.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html auth_enumerate.sgml auth_enumerate.html
+@HAVE_SGML_TRUE@auth_enumerate.html: auth_enumerate.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html auth_enumerate.sgml auth_enumerate.html
 
-@HAVE_SGML_TRUE@auth_enumerate.3: auth_enumerate.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man auth_enumerate.sgml auth_enumerate.3
+@HAVE_SGML_TRUE@auth_enumerate.3: auth_enumerate.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man auth_enumerate.sgml auth_enumerate.3
 
-@HAVE_SGML_TRUE@auth_passwd.html: auth_passwd.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html auth_passwd.sgml auth_passwd.html
+@HAVE_SGML_TRUE@auth_passwd.html: auth_passwd.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html auth_passwd.sgml auth_passwd.html
 
-@HAVE_SGML_TRUE@auth_passwd.3: auth_passwd.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man auth_passwd.sgml auth_passwd.3
+@HAVE_SGML_TRUE@auth_passwd.3: auth_passwd.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man auth_passwd.sgml auth_passwd.3
 
-@HAVE_SGML_TRUE@auth_getoption.html: auth_getoption.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html auth_getoption.sgml auth_getoption.html
+@HAVE_SGML_TRUE@auth_getoption.html: auth_getoption.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html auth_getoption.sgml auth_getoption.html
 
-@HAVE_SGML_TRUE@auth_getoption.3: auth_getoption.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man auth_getoption.sgml auth_getoption.3
+@HAVE_SGML_TRUE@auth_getoption.3: auth_getoption.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man auth_getoption.sgml auth_getoption.3
 
-@HAVE_SGML_TRUE@auth_sasl.html: auth_sasl.sgml docbook/sgml2html
-@HAVE_SGML_TRUE@       docbook/sgml2html auth_sasl.sgml auth_sasl.html
+@HAVE_SGML_TRUE@auth_sasl.html: auth_sasl.sgml libs/docbook/sgml2html
+@HAVE_SGML_TRUE@       libs/docbook/sgml2html auth_sasl.sgml auth_sasl.html
 
-@HAVE_SGML_TRUE@auth_sasl.3: auth_sasl.sgml docbook/sgml2man
-@HAVE_SGML_TRUE@       docbook/sgml2man auth_sasl.sgml auth_sasl.3
+@HAVE_SGML_TRUE@auth_sasl.3: auth_sasl.sgml libs/docbook/sgml2man
+@HAVE_SGML_TRUE@       libs/docbook/sgml2man auth_sasl.sgml auth_sasl.3
 
 @HAVE_SGML_TRUE@auth_sasl_ex.3: auth_sasl.3
 @HAVE_SGML_TRUE@       touch $@
@@ -1937,24 +2135,19 @@ install-configure:
        test -f $(DESTDIR)@authmysqlrc@.dist && @SYSCONFTOOL@ $(DESTDIR)@authmysqlrc@.dist || true
        test -f $(DESTDIR)@authpgsqlrc@.dist && @SYSCONFTOOL@ $(DESTDIR)@authpgsqlrc@.dist || true
        test -f $(DESTDIR)@authldaprc@.dist && @SYSCONFTOOL@ $(DESTDIR)@authldaprc@.dist || true
+       test -f $(DESTDIR)@authsqliterc@.dist && @SYSCONFTOOL@ $(DESTDIR)@authsqliterc@.dist || true
 
 # For maintainer's use only
 
 distrelease:
        umask 022; $(MAKE) distcheck
        $(MAKE) rpm
-       socksify cvs commit
-       socksify cvs tag -F @PACKAGE@-latest
        $(MAKE)
        $(MAKE)
        rm -f @PACKAGE@.spec @PACKAGE@.lpspec
        $(MAKE) @PACKAGE@.spec @PACKAGE@.lpspec
        $(MAKE) dist
 
-tagrelease:
-       socksify cvs tag -F -r @PACKAGE@-latest \
-               `echo @PACKAGE@-@VERSION@ | tr '.' '-'`
-
 rpm: rpm-build
 
 rpm-build:
@@ -2031,25 +2224,16 @@ upload-beta:
        test -z "$(SFPASSWD)" && exit 1; exit 0
        rm -f @PACKAGE@-@VERSION@.tar.bz2.sig; gpg --detach-sign --default-key mrsam@courier-mta.com @PACKAGE@-@VERSION@.tar.bz2; test -f @PACKAGE@-@VERSION@.tar.bz2.sig || exit 1
        socksify ssh grace.speakeasy.net echo @PACKAGE@-@VERSION@.tar.bz2 `ls -l @PACKAGE@-@VERSION@.tar.bz2 | awk ' { print $$5 } '` \>courier-mta.org/@PACKAGE@.beta
-       ../sftools/release.pl mrsam $(SFPASSWD) courier authlib-devel `echo @VERSION@|sed 's/.*\(........\)/\1/'` @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
+       ~/src/sftools/release.pl mrsam $(SFPASSWD) courier authlib-devel `echo @VERSION@|sed 's/.*\(........\)/\1/'` @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
 
 upload-dist:
-       rm -f @PACKAGE@-@VERSION@.tar.bz2.sig; gpg --detach-sign --default-key mrsam@courier-mta.com @PACKAGE@-@VERSION@.tar.bz2; test -f @PACKAGE@-@VERSION@.tar.bz2.sig || exit 1
-       socksify cvs tag -F -r @PACKAGE@-latest \
-               `echo @PACKAGE@-@VERSION@ | tr '.' '-'`
-       socksify ../sftools/release.pl mrsam $(SFPASSWD) courier authlib @VERSION@ @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
-       socksify ssh grace.speakeasy.net rm -f courier-mta.org/@PACKAGE@.beta
-
-release-dist:
        test -z "$(SFPASSWD)" && exit 1; exit 0
-       ./changelog.pl >changelog.txt
-       emacs releasenotes.txt
-       test -f releasenotes.txt || exit 1
-       socksify ../sftools/release.pl mrsam $(SFPASSWD) courier authlib @VERSION@ releasenotes.txt changelog.txt @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
-       socksify ssh grace.speakeasy.net rm -f courier-mta.org/@PACKAGE@.beta
+       rm -f @PACKAGE@-@VERSION@.tar.bz2.sig; gpg --detach-sign --default-key mrsam@courier-mta.com @PACKAGE@-@VERSION@.tar.bz2; test -f @PACKAGE@-@VERSION@.tar.bz2.sig || exit 1
+       set -e; v="@PACKAGE@/@VERSION@/`date +%Y%m%d%H%M%S`"; git tag -s $$v -m 'Tag version @VERSION@'; cd libs; git tag -s $$v -m 'Tag version @VERSION@'
+       socksify ~/src/sftools/release.pl mrsam $(SFPASSWD) courier authlib @VERSION@ @PACKAGE@-@VERSION@.tar.bz2 @PACKAGE@-@VERSION@.tar.bz2.sig
 
 htmldoc: $(HTMLDOCFILES)
-       for f in $^; do d=`basename $$f`; test "$$d" = "README.html" && d="index2.html"; tidy -i -q --tidy-mark no --doctype transitional --input-encoding utf8 --output-encoding utf8 -asxml <$$f >$$f.tmp ; xsltproc --nonet $$HOME/www/www.courier-mta.org/xsl/authlib.xsl $$f.tmp | perl -ne 's~\$(id):.*\$$~\$(id):'"$$h"'\$$~; print' >html/$$d; rm -f $$f.tmp; done
+       for f in $^; do d=`basename $$f`; test "$$d" = "README.html" && d="index.html"; tidy -i -q --tidy-mark no --doctype transitional --input-encoding utf8 --output-encoding utf8 -asxml <$$f >$$f.tmp ; xsltproc --nonet $$HOME/www/www.courier-mta.org/xsl/authlib.xsl $$f.tmp | perl -ne 's~\$(id):.*\$$~\$(id):'"$$h"'\$$~; print' >$$HOME/www/www.courier-mta.org/authlib/$$d; rm -f $$f.tmp; done
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/NEWS b/NEWS
dissimilarity index 92%
index fac4684..cb33478 100644 (file)
--- a/NEWS
+++ b/NEWS
-                         Courier Authentication Library
-
-   The Courier Authentication Library is a required component that must be
-   set up before installing other Courier packages: the Courier Mail Server
-   or its components (Courier-IMAP, SqWebMail, or maildrop).
-
-   The authentication library used to be included as a part of these
-   packages, it is now a standalone library.
-
-   Upgrading from older versions of Courier packages that used to include
-   this authentication library internally should be as simple as:
-
- ./configure
- make
- make install
- make install-migrate
- make install-configure
-
-Requirements
-
-   The Courier authentication library should not have any more requirements
-   than the older Courier packages it used to be a part of. There may be an
-   exception on some less-common platforms. They may require some additional
-   stuff to be loaded before courier-authlib can be installed. This is
-   because courier-authlib now uses libtool, which is a new requirement.
-   Courier-authlib now uses shared libraries in the place of separate
-   authdaemond binaries in the previous versions. Some less-common platforms
-   may require additional software to be installed because of that, see
-   INSTALL for more information.
-
-The pluses
-
-   This new, self-sustaining Courier authentication library offers the
-   following benefits:
-
-     * Upgrading from Courier-IMAP or SqWebMail to the full Courier package
-       does not require authentication re-configuration.
-     * Consolidated documentation. Instructions for setting up MySQL,
-       PostgreSQL, and the rest, are currently duplicated twice, making it a
-       maintenance pain. Now, the documentation will be in one place, and can
-       be easily improved, and overhauled. There will be an initial hump to
-       ride over, to reconcile the minor differences in the authentication
-       documentation in Courier, Courier-IMAP, and SqWebMail. Going forward,
-       though, everything will be in one place.
-     * The authentication API appears to be fairly stable and robust. It will
-       not be necessary to update the courier-authlib package with every
-       upgrade. Updates to courier-authlib are expected to be very
-       infrequent.
-     * There is a small minority of established systems that use the
-       standalone SqWebMail and Courier-IMAP packages. The consolidated
-       courier-authlib library will, as a bonus, provide an official way to
-       use only one set of config files, in this configuration.
-
-The minuses
-
-   I can only see one possible drawback. Only the daemonized configuration
-   will now be possible. This new version of the Courier authentication
-   library is, for all intents and purposes, the daemonized configuration of
-   the previous authentication library. The non-daemonized version of the
-   authentication library is no longer implemented. That code has been
-   removed for the simple reason that it can no longer be implemented, as a
-   standalone library. It's been clearly shown that the daemonized
-   configuration is the more flexible configuration, and is the only way to
-   go. The daemonized configuration was the default configuration for several
-   years.
-
-   I can only see the following minuses from losing the non-daemonized
-   configuration. I believe the minuses are greatly outranked by the pluses.
-
-     * There are some third party configuration libraries that only work in a
-       non-daemonized configuration. I'm aware of one such library, vmailmgr.
-       Unless it's been updated to work in daemonized mode, it will no longer
-       work.
-     * There are also some other third-party hacks that also only work in a
-       non-daemonized configuration. There's at least one relay-after-imap or
-       relay-after-pop hack for qmail, that only works in a daemonized
-       configuration. I believe that relay-after-X hacks have been obsolete
-       for several years now. Every mail client worth mentioning these days
-       implemented authenticated SMTP, and the relay-after-X hacks need to
-       go.
-
-   Currently, there are also some borderline configurations possible in a
-   non-daemonized configuration, such as using different authentication
-   modules completely for imap and pop3, or different authentication modules
-   for non-encrypted and encrypted connections. This will no longer be
-   possible, but I doubt that there's any valid reason to use such an unusual
-   setup.
-
-Testing
-
-   The 'make install-migrate' command tries to import the authentication
-   configuration from any existing installed Courier package. The
-   configuration files for courier-authlib will end up in
-   /usr/local/lib/courier-authlib/etc/authlib. The existing Courier packages
-   don't really know how to use courier-authlib just yet. This will be the
-   next step.
-
-   However, after installing courier-authlib you should be able to do some
-   rudimentary testing by running 'authdaemond start' (where authdaemond is
-   what's in the /usr/local/lib/courier-authlib/sbin directory). The
-   following commands should now work (make sure the authdaemond and authtest
-   programs are the ones from /usr/local/lib/courier-authlib/sbin directory,
-   and not any existing Courier directory):
-
- authtest userid
- authtest userid password
- authtest userid password newpassword
- authenumerate
-
-   The first command displays the account's home directory, userid, groupid,
-   and other related data. The second command verifies whether the password
-   is valid, or not. The third command changes the password on the account
-   (be careful with that).
-
-   The goal is that everything should work automatically. In some cases, it
-   might be necessary to modify the new authdaemonrc configuration file
-   (unlike all othe configuration files, the install-migrate script won't
-   copy the existing authdaemonrc, a new one will be installed). Manually
-   edit it, and remove all authentication modules that are not needed,
-   leaving only the actual ones that are used.
-
-Debugging
-
-   To generate additional debugging messages, edit the authdaemond startup
-   script (installed in /usr/local/bin by default), and add the following to
-   the script:
-
- DEBUG_LOGIN=2
- export DEBUG_LOGIN
-
-   Debugging messages from the authentication daemon processes will be sent
-   to the syslog facility, and recorded in whatever log file syslog is
-   configured to use (usually /var/log/messages or /var/log/maillog).
+                         Courier Authentication Library
+
+   A new SQLite authentication module has been added to the Courier
+   Authentication Library. It's considered to be in experimental or testing
+   status.
+
+Debugging
+
+   To generate additional debugging messages, edit the authdaemond startup
+   script (installed in /usr/local/bin by default), and add the following to
+   the script:
+
+ DEBUG_LOGIN=2
+ export DEBUG_LOGIN
+
+   Debugging messages from the authentication daemon processes will be sent
+   to the syslog facility, and recorded in whatever log file syslog is
+   configured to use (usually /var/log/messages or /var/log/maillog).
dissimilarity index 88%
index bdfabcf..bf5f8db 100644 (file)
--- a/NEWS.html
+++ b/NEWS.html
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-  <meta http-equiv="Content-Type" content=
-  "text/html; charset=utf-8" />
-
-  <title>NEWS</title>
-  <meta name="generator" content="Bluefish 1.0.7"/>
-</head>
-
-<body>
-  <h1>Courier Authentication Library</h1>
-
-  <p>The Courier Authentication Library is a required component
-  that must be set up before installing other Courier packages: the
-  Courier Mail Server or its components (Courier-IMAP, SqWebMail,
-  or maildrop).</p>
-
-  <p>The authentication library used to be included as a part of
-  these packages, it is now a standalone library.</p>
-
-  <p>Upgrading from older versions of Courier packages that used to
-  include this authentication library internally should be as
-  simple as:</p>
-  <pre>
-./configure
-make
-make install
-make install-migrate
-make install-configure
-</pre>
-
-  <h2>Requirements</h2>
-
-  <p>The Courier authentication library should not have any more
-  requirements than the older Courier packages it used to be a part
-  of. There may be an exception on some less-common platforms. They
-  may require some additional stuff to be loaded before
-  courier-authlib can be installed. This is because courier-authlib
-  now uses <code>libtool</code>, which is a new requirement.
-  Courier-authlib now uses shared libraries in the place of
-  separate authdaemond binaries in the previous versions. Some
-  less-common platforms may require additional software to be
-  installed because of that, see INSTALL for more information.</p>
-
-  <h2>The pluses</h2>
-
-  <p>This new, self-sustaining Courier authentication library
-  offers the following benefits:</p>
-
-  <ul>
-    <li>Upgrading from Courier-IMAP or SqWebMail to the full
-    Courier package does not require authentication
-    re-configuration.</li>
-
-    <li>Consolidated documentation. Instructions for setting up
-    MySQL, PostgreSQL, and the rest, are currently duplicated
-    twice, making it a maintenance pain. Now, the documentation
-    will be in one place, and can be easily improved, and
-    overhauled. There will be an initial hump to ride over, to
-    reconcile the minor differences in the authentication
-    documentation in Courier, Courier-IMAP, and SqWebMail. Going
-    forward, though, everything will be in one place.</li>
-
-    <li>The authentication API appears to be fairly stable and
-    robust. It will not be necessary to update the courier-authlib
-    package with every upgrade. Updates to courier-authlib are
-    expected to be very infrequent.</li>
-
-    <li>There is a small minority of established systems that use
-    the standalone SqWebMail and Courier-IMAP packages. The
-    consolidated courier-authlib library will, as a bonus, provide
-    an official way to use only one set of config files, in this
-    configuration.</li>
-  </ul>
-
-  <h2>The minuses</h2>
-
-  <p>I can only see one possible drawback. Only the daemonized
-  configuration will now be possible. This new version of the
-  Courier authentication library is, for all intents and purposes,
-  the daemonized configuration of the previous authentication
-  library. The non-daemonized version of the authentication library
-  is no longer implemented. That code has been removed for the
-  simple reason that it can no longer be implemented, as a
-  standalone library. It's been clearly shown that the daemonized
-  configuration is the more flexible configuration, and is the only
-  way to go. The daemonized configuration was the default
-  configuration for several years.</p>
-
-  <p>I can only see the following minuses from losing the
-  non-daemonized configuration. I believe the minuses are greatly
-  outranked by the pluses.</p>
-
-  <ul>
-    <li>There are some third party configuration libraries that
-    only work in a non-daemonized configuration. I'm aware of one
-    such library, vmailmgr. Unless it's been updated to work in
-    daemonized mode, it will no longer work.</li>
-
-    <li>There are also some other third-party hacks that also only
-    work in a non-daemonized configuration. There's at least one
-    relay-after-imap or relay-after-pop hack for qmail, that only
-    works in a daemonized configuration. I believe that
-    relay-after-X hacks have been obsolete for several years now.
-    Every mail client worth mentioning these days implemented
-    authenticated SMTP, and the relay-after-X hacks need to
-    go.</li>
-  </ul>
-
-  <p>Currently, there are also some borderline configurations
-  possible in a non-daemonized configuration, such as using
-  different authentication modules completely for imap and pop3, or
-  different authentication modules for non-encrypted and encrypted
-  connections. This will no longer be possible, but I doubt that
-  there's any valid reason to use such an unusual setup.</p>
-
-  <h2>Testing</h2>
-
-  <p>The '<code>make install-migrate</code>' command tries to
-  import the authentication configuration from any existing
-  installed Courier package. The configuration files for
-  courier-authlib will end up in
-  <code>/usr/local/lib/courier-authlib/etc/authlib</code>. The
-  existing Courier packages don't really know how to use
-  courier-authlib just yet. This will be the next step.</p>
-
-  <p>However, after installing courier-authlib you should be able
-  to do some rudimentary testing by running '<code>authdaemond
-  start</code>' (where authdaemond is what's in the
-  <code>/usr/local/lib/courier-authlib/sbin</code> directory). The
-  following commands should now work (make sure the
-  <code>authdaemond</code> and <code>authtest</code> programs are
-  the ones from <code>/usr/local/lib/courier-authlib/sbin</code>
-  directory, and not any existing Courier directory):</p>
-  <pre>
-authtest userid
-authtest userid password
-authtest userid password newpassword
-authenumerate
-</pre>
-
-  <p>The first command displays the account's home directory,
-  userid, groupid, and other related data. The second command
-  verifies whether the password is valid, or not. The third command
-  changes the password on the account (be careful with that).</p>
-
-  <p>The goal is that everything should work automatically. In some
-  cases, it might be necessary to modify the new authdaemonrc
-  configuration file (unlike all othe configuration files, the
-  <code>install-migrate</code> script won't copy the existing
-  <code>authdaemonrc</code>, a new one will be installed). Manually
-  edit it, and remove all authentication modules that are not
-  needed, leaving only the actual ones that are used.</p>
-
-  <h2>Debugging</h2>
-
-  <p>To generate additional debugging messages, edit the
-  authdaemond startup script (installed in /usr/local/bin by
-  default), and add the following to the script:</p>
-  <pre>
-DEBUG_LOGIN=2
-export DEBUG_LOGIN
-</pre>
-
-  <p>Debugging messages from the authentication daemon processes
-  will be sent to the syslog facility, and recorded in whatever log
-  file syslog is configured to use (usually
-  <code>/var/log/messages</code> or
-  <code>/var/log/maillog</code>).</p>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+
+  <title>NEWS</title>
+  <meta name="generator" content="Bluefish 2.2.3" />
+</head>
+
+<body>
+  <h1>Courier Authentication Library</h1>
+
+  <p>A new SQLite authentication module has been added to the
+  Courier Authentication Library. It's considered to be in
+  experimental or testing status.</p>
+
+  <h2>Debugging</h2>
+
+  <p>To generate additional debugging messages, edit the
+  authdaemond startup script (installed in /usr/local/bin by
+  default), and add the following to the script:</p>
+  <pre>
+DEBUG_LOGIN=2
+export DEBUG_LOGIN
+</pre>
+
+  <p>Debugging messages from the authentication daemon processes
+  will be sent to the syslog facility, and recorded in whatever log
+  file syslog is configured to use (usually
+  <code>/var/log/messages</code> or
+  <code>/var/log/maillog</code>).</p>
+</body>
+</html>
diff --git a/README b/README
index 22d23d1..5257554 100644 (file)
--- a/README
+++ b/README
@@ -1,17 +1,6 @@
                          Courier Authentication Library
 
-   This is the Courier authentication library. Copies of this library code
-   used to exist in other tarballs: Courier, Courier-IMAP, and SqWebMail.
-   Building and installing any of these packages would've automatically
-   installed this authentication code.
-
-   The authentication library is now a separate, standalone package. This
-   authentication library must now be installed, separately, before upgrading
-   to the following builds (or if installing them for the first time):
-   Courier 0.48, Courier-IMAP 4.0, and SqWebMail 5.0. See [1]NEWS for more
-   information.
-
-   Download: [2]http://www.courier-mta.org/download.php#authlib
+   Download: [1]http://www.courier-mta.org/download.html#authlib
 
 Overview
 
@@ -19,48 +8,49 @@ Overview
    other Courier applications. In this context, the term "authentication"
    refers to the following functions:
 
-    1. Take a userid or a loginid, and a password. Determine whether the
+    1. Take a userid or a loginid, and a password. Determine whether the
        loginid and the password are valid.
-    2. Given a userid, obtain the following information about the userid:
+    2. Given a userid, obtain the following information about the userid:
 
-         A. The account's home directory.
-         B. The numeric system userid and groupid that owns all files
+         A. The account's home directory.
+         B. The numeric system userid and groupid that owns all files
             associated with this account.
-         C. The location of the account's maildir.
-         D. Any maildir quota defined for this account. See the Courier
+         C. The location of the account's maildir.
+         D. Any maildir quota defined for this account. See the Courier
             documentation for more information on maildir quotas.
-         E. Other miscellaneous account-specific options.
+         E. Other miscellaneous account-specific options.
 
-    3. Change the password associated with a loginid.
-    4. Obtain a complete list of all loginids.
+    3. Change the password associated with a loginid.
+    4. Obtain a complete list of all login ids.
 
    The Courier authentication library provides alternative implementations of
    these authentication services:
 
-    1. Use the traditional system password files: /etc/passwd and
+    1. Use the traditional system password files: /etc/passwd and
        /etc/shadow, possibly in conjunction with the PAM library.
-    2. Maintain all this information in a GDBM or a DB database. The GDBM or
+    2. Maintain all this information in a GDBM or a DB database. The GDBM or
        the DB database is compiled from plain text files. Perl scripts
        provide a simple interface for creating and editing the authentication
        information, then a script compiles the plain text files into a
        database.
-    3. Use an LDAP server for authentication.
-    4. Use a table in a MySQL database for authentication.
-    5. Use a table in a PostgreSQL database for authentication.
+    3. Use an LDAP server for authentication.
+    4. Use a table in a MySQL database for authentication.
+    5. Use a table in a PostgreSQL database for authentication.
+    6. Use a table in an SQLite file for authentication.
 
    All Courier components that use this authentication library, therefore,
    will be able to authenticate E-mail accounts using any of the above
    methods.
 
-   Additional information can be found in the [3]INSTALL file.
+   Additional information can be found in the [2]INSTALL file.
 
-   The authentication API is [4]documented.
+   The authentication API is [3]documented.
 
 Further resources
 
-   Subscribe to the [5]courier-users mailing list. Go to
+   Subscribe to the [4]courier-users mailing list. Go to
    http://lists.sourceforge.net/mailman/listinfo/courier-users to subscribe
    to courier-users, or send a message to
    <courier-users-request@lists.sourceforge.net> and put "subscribe" in the
    subject line. Search the list archives at
-   [6]http://markmail.org/browse/net.sourceforge.lists.courier-users.
+   [5]http://markmail.org/browse/net.sourceforge.lists.courier-users.
index cb31a5c..b549a6b 100644 (file)
@@ -237,10 +237,8 @@ or
 </pre>
 
   <p>If you are using userdb authentication, you definitely need to
-  read <a href="http://www.courier-mta.org/makeuserdb.html">man
-  makeuserdb</a>, <a href=
-  "http://www.courier-mta.org/userdb.html">man userdb</a>, and
-  <a href="http://www.courier-mta.org/userdbpw.html">man
+  read <a href="makeuserdb.html">man makeuserdb</a>, <a href=
+  "userdb.html">man userdb</a>, and <a href="userdbpw.html">man
   userdbpw</a>.</p>
 
   <h2>5. Use the mailing list</h2>
index cbc0701..a69e20f 100644 (file)
@@ -1,20 +1,23 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <title>Courier PostgreSQL authentication module</title>
   <meta name="MSSmartTagsPreventParsing" content="TRUE" />
 </head>
 
-<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B"
-alink="#FF0000">
-<h1>Courier PostgreSQL authentication module</h1>
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink=
+"#551A8B" alink="#FF0000">
+  <h1>Courier PostgreSQL authentication module</h1>
 
-<p>Please read <a href="README.authmysql.html">README.authmysql.html</a>
-since almost all information there applies to postgres as well, but with
-postgres change the schema to:</p>
-<pre>CREATE TABLE passwd (
+  <p>Please read <a href=
+  "README.authmysql.html">README.authmysql.html</a> since almost
+  all information there applies to postgres as well, but with
+  Postgres change the schema to:</p>
+  <pre>
+CREATE TABLE passwd (
         id                    varchar(128) DEFAULT '' NOT NULL,
         crypt                 varchar(128) DEFAULT '' NOT NULL,
         clear                 varchar(128) DEFAULT '' NOT NULL,
@@ -26,6 +29,7 @@ postgres change the schema to:</p>
         defaultdelivery       varchar(255) DEFAULT '' NOT NULL,
         quota                 varchar(255) DEFAULT '' NOT NULL,
         CONSTRAINT id PRIMARY KEY (id)
-);</pre>
+);
+</pre>
 </body>
 </html>
diff --git a/README.authsqlite.html b/README.authsqlite.html
new file mode 100644 (file)
index 0000000..7128bf5
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <title>Courier SQLite authentication module</title>
+  <meta name="MSSmartTagsPreventParsing" content="TRUE" />
+</head>
+
+<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink=
+"#551A8B" alink="#FF0000">
+  <h1>Courier SQLite authentication module</h1>
+
+  <p>Please read <a href=
+  "README.authmysql.html">README.authmysql.html</a> since almost
+  all information there applies to SQLite as well, and see the
+  comments in the <tt>authsqliterc</tt> configuration file
+  regarding the SQLite-specific syntax. The notable differences are
+  only the names of the settings in the <tt>authsqliterc</tt>, and
+  there's just one connection parameter, the filename.</p>
+</body>
+</html>
index bca1ffd..cb8624e 100644 (file)
@@ -4,29 +4,16 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
   <meta http-equiv="Content-Type" content=
-  "text/html; charset=utf-8" />
+  "text/html; charset=us-ascii" />
 
-  <title>README</title>
+  <title>Courier Authentication Library</title>
 </head>
 
 <body>
   <h1>Courier Authentication Library</h1>
 
-  <p>This is the Courier authentication library. Copies of this
-  library code used to exist in other tarballs: Courier,
-  Courier-IMAP, and SqWebMail. Building and installing any of these
-  packages would've automatically installed this authentication
-  code.</p>
-
-  <p>The authentication library is now a separate, standalone
-  package. This authentication library must now be installed,
-  separately, before upgrading to the following builds (or if
-  installing them for the first time): Courier 0.48, Courier-IMAP
-  4.0, and SqWebMail 5.0. See <a href="NEWS.html">NEWS</a> for more
-  information.</p>
-
   <p>Download: <a target="_blank" href=
-  "http://www.courier-mta.org/download.php#authlib">http://www.courier-mta.org/download.php#authlib</a></p>
+  "http://www.courier-mta.org/download.html#authlib">http://www.courier-mta.org/download.html#authlib</a></p>
 
   <h2>Overview</h2>
 
@@ -59,7 +46,7 @@
 
     <li>Change the password associated with a loginid.</li>
 
-    <li>Obtain a complete list of all loginids.</li>
+    <li>Obtain a complete list of all login ids.</li>
   </ol>
 
   <p>The Courier authentication library provides alternative
@@ -82,6 +69,8 @@
 
     <li>Use a table in a PostgreSQL database for
     authentication.</li>
+
+    <li>Use a table in an SQLite file for authentication.</li>
   </ol>
 
   <p>All Courier components that use this authentication library,
index 23862b3..af35da0 100644 (file)
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
-<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>Courier Authentication Library</title><link rel="stylesheet" href="style.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"/><link rel="home" href="#authlib" title="Courier Authentication Library"/><link rel="next" href="#authpwd" title="The authpwd authentication module"/><link xmlns="" rel="stylesheet" type="text/css" href="manpage.css"/><meta xmlns="" name="MSSmartTagsPreventParsing" content="TRUE"/><link xmlns="" rel="icon" href="icon.gif" type="image/gif"/><!--
+<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>Courier Authentication Library</title><link rel="stylesheet" type="text/css" href="style.css"/><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/><link rel="home" href="#authlib" title="Courier Authentication Library"/><link rel="next" href="#authpwd" title="The authpwd authentication module"/><link xmlns="" rel="stylesheet" type="text/css" href="manpage.css"/><meta xmlns="" name="MSSmartTagsPreventParsing" content="TRUE"/><link xmlns="" rel="icon" href="icon.gif" type="image/gif"/><!--
 
 Copyright 1998 - 2009 Double Precision, Inc.  See COPYING for distribution
 information.
 
---></head><body><div class="chapter" lang="en" xml:lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="authlib" shape="rect"> </a>Courier Authentication Library</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="#authpwd" shape="rect">The <code class="literal">authpwd</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authshadow" shape="rect">The <code class="literal">authshadow</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authpam" shape="rect">The <code class="literal">authpam</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authpipe" shape="rect">The <code class="literal">authpipe</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authpipeproto" shape="rect">The <code class="literal">authpipe</code> protocol</a></span></dt><dt><span class="sect1"><a href="#authuserdb" shape="rect">The <code class="literal">authuserdb</code> authentication module</a></span></dt><dd><dl><dt><span class="sect2"><a href="#userdbprimer" shape="rect">A brief <code class="literal">userdb</code> primer</a></span></dt><dt><span class="sect2"><a href="#userdbsimple" shape="rect">A simple userdb setup</a></span></dt><dt><span class="sect2"><a href="#userdbcomplex" shape="rect">Large virtual domain farm</a></span></dt><dt><span class="sect2"><a href="#moreuserdb" shape="rect">Beyond <code class="literal">userdb</code></a></span></dt></dl></dd><dt><span class="sect1"><a href="#authmysql" shape="rect">The <code class="literal">authmysql</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authpgsql" shape="rect">The <code class="literal">authpgsql</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authldap" shape="rect">The <code class="literal">authldap</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authcustom" shape="rect"><code class="literal">authcustom</code></a></span></dt><dt><span class="sect1"><a href="#options" shape="rect">Account options</a></span></dt><dt><span class="sect1"><a href="#authtest" shape="rect">Running <span class="command"><strong>authtest</strong></span></a></span></dt><dd><dl><dt><span class="sect2"><a href="#pwchange" shape="rect">Changing account passwords</a></span></dt></dl></dd><dt><span class="sect1"><a href="#internals" shape="rect">Authentication internals</a></span></dt><dt><span class="sect1"><a href="#files" shape="rect">FILES</a></span></dt><dt><span class="sect1"><a href="#seealso" shape="rect">SEE ALSO</a></span></dt></dl></div><p>
+--></head><body><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="authlib" shape="rect"> </a>Courier Authentication Library</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="sect1"><a href="#authpwd" shape="rect">The <code class="literal">authpwd</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authshadow" shape="rect">The <code class="literal">authshadow</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authpam" shape="rect">The <code class="literal">authpam</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authpipe" shape="rect">The <code class="literal">authpipe</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authpipeproto" shape="rect">The <code class="literal">authpipe</code> protocol</a></span></dt><dt><span class="sect1"><a href="#authuserdb" shape="rect">The <code class="literal">authuserdb</code> authentication module</a></span></dt><dd><dl><dt><span class="sect2"><a href="#userdbprimer" shape="rect">A brief <code class="literal">userdb</code> primer</a></span></dt><dt><span class="sect2"><a href="#userdbsimple" shape="rect">A simple userdb setup</a></span></dt><dt><span class="sect2"><a href="#userdbcomplex" shape="rect">Large virtual domain farm</a></span></dt><dt><span class="sect2"><a href="#moreuserdb" shape="rect">Beyond <code class="literal">userdb</code></a></span></dt></dl></dd><dt><span class="sect1"><a href="#authmysql" shape="rect">The <code class="literal">authmysql</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authpgsql" shape="rect">The <code class="literal">authpgsql</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authsqlite" shape="rect">The <code class="literal">authsqlite</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authldap" shape="rect">The <code class="literal">authldap</code> authentication module</a></span></dt><dt><span class="sect1"><a href="#authcustom" shape="rect"><code class="literal">authcustom</code></a></span></dt><dt><span class="sect1"><a href="#options" shape="rect">Account options</a></span></dt><dt><span class="sect1"><a href="#authtest" shape="rect">Running <span class="command"><strong>authtest</strong></span></a></span></dt><dd><dl><dt><span class="sect2"><a href="#pwchange" shape="rect">Changing account passwords</a></span></dt></dl></dd><dt><span class="sect1"><a href="#internals" shape="rect">Authentication internals</a></span></dt><dt><span class="sect1"><a href="#files" shape="rect">FILES</a></span></dt><dt><span class="sect1"><a href="#seealso" shape="rect">SEE ALSO</a></span></dt></dl></div><p>
 This library is used for two purposes:</p><p>
 1. Read the name of a mail account.
 Determine the local account's home directory, and system userid and
@@ -17,7 +17,7 @@ to either one of these two functions.
 The library contains several alternative authentication modules to choose
 from, described below.</p><p>
 The configuration file <code class="filename">@authdaemonrc@</code> contains several
-settings.  The most important of them are:</p><div class="itemizedlist"><ul type="disc"><li><p>
+settings.  The most important of them are:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
 A list of authentication modules to activate.
 By default, this list includes all available authentication modules,
 even if some are not actually installed at the moment.
@@ -31,13 +31,14 @@ optional sub-packages.
 Installing the sub-package is the only action needed to make use of it.</p><p>
 The only time the list of authentication modules need to be adjusted is
 when an available authentication module must be disabled for some reason.
-This should only be needed in the most unusual circumstances.</p></li><li><p>
+This should only be needed in the most unusual circumstances.</p></li><li class="listitem"><p>
 Number of authentication processes.
 The default setting is to start five authentication processes, which should be
 sufficient for normal usage.
 Try increasing this setting if its taking too long to log into an account,
 and you have determined that this is not due to a bottleneck in the whatever
-authentication database you're using (LDAP, MySQL, or PostgreSQL).</p><p>
+authentication database you're using (LDAP, MySQL, SQLite,
+or PostgreSQL).</p><p>
 An authentication request must be completed within thirty seconds, otherwise
 it gets rejected.
 When authentication requests come in faster than all five authentication
@@ -45,17 +46,17 @@ processes can get to them, delays build up, and the timer is ticking.
 If all the activity maxes out the CPU or I/O bandwidth,
 nothing can be done about it, short
 of getting another server.  However if there's plenty of available CPU and
-I/O, increasing the number of processes will do the trick.</p></li></ul></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpwd" shape="rect"> </a>The <code class="literal">authpwd</code> authentication module</h2></div></div></div><p>
+I/O, increasing the number of processes will do the trick.</p></li></ul></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpwd" shape="rect"> </a>The <code class="literal">authpwd</code> authentication module</h2></div></div></div><p>
 This modules obtains account information and passwords from the
 <code class="filename">/etc/passwd</code> file.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
 This module doesn't actually read the <code class="filename">/etc/passwd</code>
 file, it uses the C library's getpw() functions.
 The C library implementation could use any mechanism to obtain the equivalent
-information.</p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authshadow" shape="rect"> </a>The <code class="literal">authshadow</code> authentication module</h2></div></div></div><p>
+information.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authshadow" shape="rect"> </a>The <code class="literal">authshadow</code> authentication module</h2></div></div></div><p>
 This module is a version of the <code class="literal">authpwd</code> module that
 reads passwords
 from <code class="filename">/etc/shadow</code> (the C library's getsp()
-functions).</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpam" shape="rect"> </a>The <code class="literal">authpam</code> authentication module</h2></div></div></div><p>
+functions).</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpam" shape="rect"> </a>The <code class="literal">authpam</code> authentication module</h2></div></div></div><p>
 This modules uses the system's PAM library
 (pluggable authentication modules) for authentication.
 This is, essentially, a way to use existing PAM modules for authentication.
@@ -68,7 +69,7 @@ functions, like <code class="literal">pam_krb5</code> will not work with Courier
 Additional configuration steps will be required to set up
 the PAM library to authenticate Courier's services.
 Courier's IMAP and POP3 servers, for example, require that the
-“<span class="quote">imap</span>” and “<span class="quote">pop3</span>” PAM service to be
+<span class="quote">“<span class="quote">imap</span>”</span> and <span class="quote">“<span class="quote">pop3</span>”</span> PAM service to be
 configured.</p><p>
 The specific configuration steps differ from system to system.
 Consult the system documentation for more information.
@@ -118,7 +119,7 @@ pop3  account required        pam_unix.so
 Some PAM libraries use
 <code class="filename">pam_pwdb.so</code> instead of
 <code class="filename">pam_unix.so</code>; consult the PAM library's
-documentation for more information.</p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpipe" shape="rect"> </a>The <code class="literal">authpipe</code> authentication module</h2></div></div></div><p>This is a generic plug-in module that runs an external script,
+documentation for more information.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpipe" shape="rect"> </a>The <code class="literal">authpipe</code> authentication module</h2></div></div></div><p>This is a generic plug-in module that runs an external script,
 or a program, in response to authentication requests.</p><p>The external program reads from stdin and writes to stdout. It
 can be persistent and handle many authentication requests. Only one request
 will be sent to it at a time; each authdaemon process starts its own copy of
@@ -126,13 +127,13 @@ the external script.</p><p>The location of the external program is set by the
 <code class="literal">--with-pipeprog</code> configure option,
 which defaults to
 <code class="filename">@sysconfdir@/authlib/authProg</code>. A sample program
-is included in the courier-authlib source.</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpipeproto" shape="rect"> </a>The <code class="literal">authpipe</code> protocol</h2></div></div></div><p>
+is included in the courier-authlib source.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpipeproto" shape="rect"> </a>The <code class="literal">authpipe</code> protocol</h2></div></div></div><p>
 authpipe uses the same protocol as authdaemon clients use to communicate
 with authdaemond.</p><p>There are four possible requests: <code class="literal">PRE</code>,
 <code class="literal">AUTH</code>, <code class="literal">PASSWD</code> and
 <code class="literal">ENUMERATE</code>. Apart from <code class="literal">AUTH</code>, each
 request is a single line terminated by newline.
-</p><div class="variablelist"><dl><dt><span class="term">PRE . <em class="replaceable"><code>authservice</code></em> <em class="replaceable"><code>username</code></em> <span class="emphasis"><em>&lt;newline&gt;</em></span></span></dt><dd><p>Look up data for an account.
+</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">PRE . <em class="replaceable"><code>authservice</code></em> <em class="replaceable"><code>username</code></em> <span class="emphasis"><em>&lt;newline&gt;</em></span></span></dt><dd><p>Look up data for an account.
       <em class="replaceable"><code>authservice</code></em> identifies the service the
       user is trying to use - e.g. pop3, imap, webmail etc.</p><p>If the account exists, return the account
       data as a series of ATTR=value newline-terminated lines, followed by a
@@ -206,7 +207,7 @@ request is a single line terminated by newline.
     such as a database being down or an error occuring mid-way through
     returning account data, authProg should terminate before sending
     the terminating period.
-    </p></dd></dl></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authuserdb" shape="rect"> </a>The <code class="literal">authuserdb</code> authentication module</h2></div></div></div><p>
+    </p></dd></dl></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authuserdb" shape="rect"> </a>The <code class="literal">authuserdb</code> authentication module</h2></div></div></div><p>
 This module
 uses a GDBM or a DB-based
 <a class="ulink" href="userdb.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">userdb</span>(8)</span></a> database.
@@ -243,7 +244,7 @@ scan <code class="filename">/etc/passwd</code> in order to look up an account.
 Instead, a fast database lookup can retrieve the same information from the
 database file.
 Review the included manual pages, starting with
-<a class="ulink" href="userdb.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">userdb</span>(8)</span></a>, for more information.</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="userdbprimer" shape="rect"> </a>A brief <code class="literal">userdb</code> primer</h3></div></div></div><p>
+<a class="ulink" href="userdb.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">userdb</span>(8)</span></a>, for more information.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="userdbprimer" shape="rect"> </a>A brief <code class="literal">userdb</code> primer</h3></div></div></div><p>
 <code class="literal">userdb</code> is a way to implement many virtual mailboxes - many
 mailboxes that do not have to have a separate system userid allocated for
 each one, and there is no system login associated with each mailbox.
@@ -251,7 +252,7 @@ each one, and there is no system login associated with each mailbox.
 maildirs. It should be scalable to thousands of mailboxes. It can also be
 used to replace linear searches of <code class="filename">/etc/passwd</code> with a database
 lookup, see
-<a class="ulink" href="pw2userdb.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">pw2userdb</span>(8)</span></a>.</p><p>
+<a class="ulink" href="userdb.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">userdb</span>(8)</span></a>.</p><p>
 Note - you still MUST use some valid system userid and groupid that is
 shared by all virtual mailboxes. Instead of allocating a single userid and
 groupid per each mailbox, the same userid and groupid is used for all of
@@ -264,7 +265,7 @@ be installed in <code class="filename">@sbindir@</code>, so look for them there.
 The best way to describe how <code class="literal">userdb</code> works is to try to create
 one virtual mail account. As mentioned before, virtual mailboxes still need
 one system account to be used for uid/gid purposes. Let's call this system
-account "vmail".</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="userdbsimple" shape="rect"> </a>A simple userdb setup</h3></div></div></div><p>
+account "vmail".</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="userdbsimple" shape="rect"> </a>A simple userdb setup</h3></div></div></div><p>
 This approach should be used if you do not have many virtual mailboxes.
 It's very simple, but quickly becomes cumbersome if you administer many
 virtual mailboxes.</p><p>Create an empty <code class="filename">@userdb@</code> file:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
@@ -318,8 +319,8 @@ $ exit
 You may need to specify a full path to your <span class="command"><strong>maildirmake</strong></span>
 program. The end result is that you created
 <code class="filename">$HOME/john-example</code> in vmail's account, which
-can be thought of as a “<span class="quote">virtual home directory</span>” for
-“<span class="quote">john@example.com</span>”, that contains the account's maildir
+can be thought of as a <span class="quote">“<span class="quote">virtual home directory</span>”</span> for
+<span class="quote">“<span class="quote">john@example.com</span>”</span>, that contains the account's maildir
 mailbox.</p><p>
 Now, let's connect the dots here, and create an entry in
 <code class="filename">@userdb@</code> for <code class="filename">john@example.com</code>:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
@@ -330,7 +331,7 @@ This command runs the script named <code class="filename">userdb</code> , which
 installed, by default in <code class="filename">@sbindir@</code>. Replace UUU and
 GGG with the userid and groupid of the vmail account. If you now look in
 <code class="filename">@userdb@</code>, you will see that a new record for
-“<span class="quote">john@example.com</span>”
+<span class="quote">“<span class="quote">john@example.com</span>”</span>
 has been appended to the end of the file.</p><p>
 One more detail: we need to set the IMAP password for this
 mailbox:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
@@ -361,7 +362,7 @@ Courier reads <code class="filename">@userdb@.dat</code> and
 <code class="filename">@userdb@shadow.dat</code> only. The plain text source,
 <code class="filename">@userdb@</code> is not read by Courier itself. Changes take
 effect
-only when <span class="command"><strong>makeuserdb</strong></span> runs.</p></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="userdbcomplex" shape="rect"> </a>Large virtual domain farm</h3></div></div></div><p>
+only when <span class="command"><strong>makeuserdb</strong></span> runs.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="userdbcomplex" shape="rect"> </a>Large virtual domain farm</h3></div></div></div><p>
 The previous approach used a single flat file, <code class="filename">@userdb@</code>.
 This
 will work for up to a couple of hundred accounts.
@@ -404,29 +405,36 @@ $ userdbpw | userdb "example-com/john@example.com" set imappw
 </pre></div><p>
 This sets the IMAP access password for this account. Finally:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
 $ makeuserdb
-</pre></div></div><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="moreuserdb" shape="rect"> </a>Beyond <code class="literal">userdb</code></h3></div></div></div><p>
+</pre></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="moreuserdb" shape="rect"> </a>Beyond <code class="literal">userdb</code></h3></div></div></div><p>
 <code class="literal">userdb</code> is a simple, straightforward solution that scales
 to a couple of thousand of mail accounts, depending on the hardware.
 Beyond that, one of database-based modules will need to be used,
 such as
 <code class="literal">authldap</code>,
 <code class="literal">authmysql</code>,
+<code class="literal">authsqlite</code>,
 <code class="literal">authpgsql</code>.
 Since <code class="literal">userdb</code> is maintained as plain text files that
 are easily parsed by a script, migrating data from userdb will not be
-difficult.</p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authmysql" shape="rect"> </a>The <code class="literal">authmysql</code> authentication module</h2></div></div></div><p>
+difficult.</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authmysql" shape="rect"> </a>The <code class="literal">authmysql</code> authentication module</h2></div></div></div><p>
 This module reads
 the list of mail accounts and passwords from a table in a
 MySQL database.
 The <code class="filename">@authmysqlrc@</code> configuration file defines the
 particular details regarding the MySQL database and the schema of the
-mail account table.</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpgsql" shape="rect"> </a>The <code class="literal">authpgsql</code> authentication module</h2></div></div></div><p>
+mail account table.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authpgsql" shape="rect"> </a>The <code class="literal">authpgsql</code> authentication module</h2></div></div></div><p>
 This module reads
 the list of mail accounts and passwords from a table in a
 PostgreSQL database.
 The <code class="filename">@authpgsqlrc@</code> configuration file defines the
 particular details regarding the PostgreSQL database and the schema of the
-mail account table.</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authldap" shape="rect"> </a>The <code class="literal">authldap</code> authentication module</h2></div></div></div><p>
+mail account table.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authsqlite" shape="rect"> </a>The <code class="literal">authsqlite</code> authentication module</h2></div></div></div><p>
+This module reads
+the list of mail accounts and passwords from a table in a
+SQLite database file.
+The <code class="filename">@authsqliterc@</code> configuration file defines the
+particular details regarding the SQLite database file and the schema of the
+mail account table.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authldap" shape="rect"> </a>The <code class="literal">authldap</code> authentication module</h2></div></div></div><p>
 This module reads
 the list of mail accounts and passwords from an LDAP directory.
 The <code class="filename">@authldaprc@</code> configuration file defines the
@@ -434,28 +442,28 @@ particular details regarding the LDAP directory layout.</p><p>
 A suggested LDAP schema can be found in the file
 <code class="filename">authldap.schema</code>, 
 which is included in Courier authentication library's source code, and
-may be installed on your system.</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authcustom" shape="rect"> </a><code class="literal">authcustom</code></h2></div></div></div><p>
+may be installed on your system.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authcustom" shape="rect"> </a><code class="literal">authcustom</code></h2></div></div></div><p>
 This is a do-nothing module where custom authentication code
 can be added.
 This authentication module is just a stub that doesn't really do anything.
 It's purpose is to serve as a placeholder where custom authentication code
-can be easily implement.</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="options" shape="rect"> </a>Account options</h2></div></div></div><p>
+can be easily implement.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="options" shape="rect"> </a>Account options</h2></div></div></div><p>
 The authentication library has a facility for keep arbitrary
-“<span class="quote">name=value</span>”-type settings,
-called “<span class="quote">options</span>”, for individual accounts. This feature is
+<span class="quote">“<span class="quote">name=value</span>”</span>-type settings,
+called <span class="quote">“<span class="quote">options</span>”</span>, for individual accounts. This feature is
 only available with
 <code class="literal">userdb</code>,
-<code class="literal">LDAP</code>, <code class="literal">MySQL</code>, and
+<code class="literal">LDAP</code>, <code class="literal">MySQL</code>, <code class="literal">SQLite</code> and
 <code class="literal">PostgresSQL</code>
 modules. Individual account options are not supported with
 system-based authentication modules (password/shadow files, or PAM).</p><p>
-See the
+See
 <a class="ulink" href="auth_generic.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">auth_generic</span>(3)</span></a>
 for a description of option names used by various Courier packages.
 Other applications can make up names for their own settings, and
 use them in the same way.</p><p>
 Account options are specified via the authentication modules in the
-following manner:</p><div class="variablelist"><dl><dt><span class="term"><code class="literal">userdb</code></span></dt><dd><p>
+following manner:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="literal">userdb</code></span></dt><dd><p>
 Use the <span class="command"><strong>userdb</strong></span> command to set a field called
 "<code class="literal">options</code>". Example:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
 userdb user1@example.com set options=disableimap=1,sharedgroup=44
@@ -479,21 +487,24 @@ of LDAP attributes to account settings. A <code class="literal">LDAP_AUXOPTIONS<
 of "shared=sharedgroup,disableimap" means that the LDAP attribute
 called "shared" contains the "sharedgroup" setting, as described
 previously; and an LDAP attribute of disableimap contains the setting
-of the same name.</p></dd><dt><span class="term"><span class="application">MySQL</span>, and <span class="application">PostgreSQL</span></span></dt><dd><p>
-Account options are defined by <code class="literal">MYSQL_AUXOPTIONS_FIELD</code>
+of the same name.</p></dd><dt><span class="term"><span class="application">MySQL</span>,
+<span class="application">SQLite</span>, and <span class="application">PostgreSQL</span></span></dt><dd><p>
+Account options are defined by <code class="literal">MYSQL_AUXOPTIONS_FIELD</code>,
+<code class="literal">SQLITE_AUXOPTIONS_FIELD</code>,
 or <code class="literal">POSTGRESQL_AUXOPTIONS_FIELD</code>, in its corresponding
 configuration file. In the most simplest case, add a character field to
 the database, and put the field name into the
-<code class="literal">MYSQL_AUXOPTIONS_FIELD</code> or
+<code class="literal">MYSQL_AUXOPTIONS_FIELD</code>,
+<code class="literal">SQLITE_AUXOPTIONS_FIELD</code>, or
 <code class="literal">POSTGRESQL_AUXOPTIONS_FIELD</code> configuration file setting.
 For each account, the character field should contain the literal option
 string. Yes, you'll just put "shared=sharedgroup,disableimap"
 literally, in that field.</p><p>
 Fortunately, there is a cleaner way to do this, which avoid driving
 a database designer batty. Keep in mind that the contents of
-<code class="literal">MYSQL_AUXOPTIONS_FIELD</code>/<code class="literal">POSTGRESQL_AUXOPTIONS_FIELD</code>
+<code class="literal">MYSQL_AUXOPTIONS_FIELD</code>/<code class="literal">SQLITE_AUXOPTIONS_FIELD</code>/<code class="literal">POSTGRESQL_AUXOPTIONS_FIELD</code>
 are simply inserted directly into the SQL query that fetches the
-account information. Both MySQL and PostgreSQL have a rich SQL that can
+account information. MySQL, SQLite, and PostgreSQL have a rich SQL that can
 be used to manufacture a suitable option string from plain,
 garden-variety, database fields. That is, you may define individual
 table fields like "disableimap", and "disablepop3", then provide a
@@ -501,7 +512,41 @@ suitable (albeit ugly) SQL fragment that combines them together into
 the expected option string. An example of such an SQL string is
 provided in the comments portion of the configuration file.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
 When using the alternative custom query option, the option string
-        is the last field that the custom SQL query should return.</p></div></dd></dl></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authtest" shape="rect"> </a>Running <span class="command"><strong>authtest</strong></span></h2></div></div></div><p>
+        is the last field that the custom SQL query should return.</p></div></dd></dl></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+The following list of account options is a combined list of implemented
+options supported by Courier, Courier-IMAP, and
+SqWebMail packages. Some of the following information is obviously
+not applicable for a particular package.
+The inapplicable bits should be obvious.</p></div><p>
+The following options are recognized by the various Courier
+packages:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="literal">disableimap=</code><em class="replaceable"><code>n</code></em></span></dt><dd><p>
+If "n" is 1, IMAP access to this account should be disabled.</p></dd><dt><span class="term"><code class="literal">disablepop3=</code><em class="replaceable"><code>n</code></em></span></dt><dd><p>
+If "n" is 1, POP3 access to this account should be disabled.</p></dd><dt><span class="term"><code class="literal">disableinsecureimap=</code><em class="replaceable"><code>n</code></em></span></dt><dd><p>
+If "n" is 1, unencrypted IMAP access to this account should be disabled.</p></dd><dt><span class="term"><code class="literal">disableinsecurepop3=</code><em class="replaceable"><code>n</code></em></span></dt><dd><p>
+If "n" is 1, unencrypted POP3 access to this account should be disabled.</p></dd><dt><span class="term"><code class="literal">disablewebmail=</code><em class="replaceable"><code>n</code></em></span></dt><dd><p>
+If "n" is 1, webmail access to this account should be disabled.</p></dd><dt><span class="term"><code class="literal">disableshared=</code><em class="replaceable"><code>n</code></em></span></dt><dd><p>
+If "n" is 1, this account should not have access to shared folders or be able
+to share its own folders with other people.</p></dd><dt><span class="term"><code class="literal">group=</code><em class="replaceable"><code>name</code></em></span></dt><dd><p>
+This option is used by Courier-IMAP in calculating access control lists.
+This option places the account as a member of access group
+<em class="replaceable"><code>name</code></em>.
+Instead of granting access rights on individual mail folders to individual
+accounts, the access rights can be granted to an access group
+<span class="quote">“<span class="quote">name</span>”</span>, and all members of this group get the specified access
+rights.</p><p>
+The access group name <span class="quote">“<span class="quote">administrators</span>”</span> is a reserved group.
+All accounts in the <code class="literal">administrators</code> group automatically
+receive all rights to all accessible folders.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
+This option may be specified multiple times to specify that the account
+belongs to multiple account groups.</p></div></dd><dt><span class="term"><code class="literal">sharedgroup=</code><em class="replaceable"><code>name</code></em></span></dt><dd><p>
+Another option used by Courier-IMAP.
+Append "name" to the name of the top level virtual shared folder
+index file. This setting restricts which virtual shared folders this
+account could possibly access (and that's on top of whatever else the
+access control lists say). See the virtual shared folder documentation
+for more information.</p><p>
+For technical reasons, group names may not include comma, tab, "/" or "|"
+characters.</p></dd></dl></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="authtest" shape="rect"> </a>Running <span class="command"><strong>authtest</strong></span></h2></div></div></div><p>
 The <span class="command"><strong>authtest</strong></span> command may be used to verify that the
 authentication library is working:</p><div class="informalexample"><pre class="programlisting" xml:space="preserve">
 authtest userid
@@ -525,8 +570,10 @@ The three argument form of the
 command attemps to change the account's password.
 The second argument is the old password, the third argument is the
 new password.</p><p>
-See <a class="ulink" href="README.authdebug.html" target="_top" shape="rect"><code class="filename">README.authdebug.html</code></a> for more information.</p><div class="sect2" lang="en" xml:lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="pwchange" shape="rect"> </a>Changing account passwords</h3></div></div></div><p>For the virtual domain modules (<code class="literal">authldap</code>,
-<code class="literal">authmysql</code>, <code class="literal">authpgsql</code> and friends) changing the
+See <a class="ulink" href="README.authdebug.html" target="_top" shape="rect"><code class="filename">README.authdebug.html</code></a> for more information.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="pwchange" shape="rect"> </a>Changing account passwords</h3></div></div></div><p>For the virtual domain modules (<code class="literal">authldap</code>,
+<code class="literal">authmysql</code>,
+<code class="literal">authsqlite</code>,
+<code class="literal">authpgsql</code> and friends) changing the
 login is a no-brainer. The tricky situation is when SqWebMail uses system
 passwords to log in (the <code class="literal">authpwd</code>, <code class="literal">authshadow</code>, or
 <code class="literal">authpam</code> authentication module). Different systems use different
@@ -566,8 +613,8 @@ working, but you won't be the wiser. For security reasons, the actual
 messages from <span class="command"><strong>passwd</strong></span> will not be shown by.</p><p>
 The <span class="command"><strong>expect</strong></span> script is installed as
 <code class="filename">/usr/local/libexec/courier-authlib/authsystem.passwd</code>
-(assuming default options to the <span class="command"><strong>configure</strong></span> script).</p></div></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="internals" shape="rect"> </a>Authentication internals</h2></div></div></div><p>
-The following structure describes an authentication module:</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="authstaticinfo" shape="rect"> </a><p class="title"><b>Example 1. struct authstaticinfo</b></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
+(assuming default options to the <span class="command"><strong>configure</strong></span> script).</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="internals" shape="rect"> </a>Authentication internals</h2></div></div></div><p>
+The following structure describes an authentication module:</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="authstaticinfo" shape="rect"> </a><p class="title"><strong>Example 1. struct authstaticinfo</strong></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
 struct authstaticinfo {
        const char *auth_name;
        int (*auth_func)(const char *, const char *, char *, int,
@@ -596,14 +643,14 @@ struct authstaticinfo {
 </pre></div></div><br class="example-break" clear="none"/></blockquote></div><p>
 An authentication module is a shared library that defines a single function
 called
-“<span class="quote">courier_auth_<em class="replaceable"><code>NAME</code></em>_init</span>”, where
-“<span class="quote">NAME</span>” is the name of the authentication module.
+<span class="quote">“<span class="quote">courier_auth_<em class="replaceable"><code>NAME</code></em>_init</span>”</span>, where
+<span class="quote">“<span class="quote">NAME</span>”</span> is the name of the authentication module.
 The shared library does not need to export any other symbols, this is the
 only function that needs to be exported.
 The function returns a pointer to the <span class="structname">authstaticinfo</span>
 structure.
 For example, the relevant code from the <code class="literal">authmysql</code> module is:
-</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="authmysqlex" shape="rect"> </a><p class="title"><b>Example 2. authmysql</b></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
+</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="authmysqlex" shape="rect"> </a><p class="title"><strong>Example 2. authmysql</strong></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
 static struct authstaticinfo authmysql_info={
        "authmysql",
        auth_mysql,
@@ -620,24 +667,24 @@ struct authstaticinfo *courier_authmysql_init()
 }
 </pre></div></div><br class="example-break" clear="none"/></blockquote></div><p>
 <code class="function">auth_func</code> points to a function that handles an
-authentication request.  The function is invoked as follows:</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="auth_func" shape="rect"> </a><p class="title"><b>Example 3. auth_func</b></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
+authentication request.  The function is invoked as follows:</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="auth_func" shape="rect"> </a><p class="title"><strong>Example 3. auth_func</strong></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
 int result=auth_func(const char *service, const char *authtype,
                        const char *authdata,
                        int (*callback_func)(struct authinfo *, void *),
                        void *callback_arg);
 </pre></div></div><br class="example-break" clear="none"/></blockquote></div><p>
-“<span class="quote">service</span>” is the name of the service being authenticated,
-such as “<span class="quote"><code class="literal">imap</code></span>” or
-“<span class="quote"><code class="literal">pop3</code></span>”.
-“<span class="quote">authtype</span>” defines the authentication format,
-and “<span class="quote">authdata</span>” is the actual authentication request.</p><p>
+<span class="quote">“<span class="quote">service</span>”</span> is the name of the service being authenticated,
+such as <span class="quote">“<span class="quote"><code class="literal">imap</code></span>”</span> or
+<span class="quote">“<span class="quote"><code class="literal">pop3</code></span>”</span>.
+<span class="quote">“<span class="quote">authtype</span>”</span> defines the authentication format,
+and <span class="quote">“<span class="quote">authdata</span>”</span> is the actual authentication request.</p><p>
 Two authentication formats are defined at this time.
-The “<span class="quote">authtype</span>” string is set to one of the following
-strings:</p><div class="variablelist"><dl><dt><span class="term">“<span class="quote">login</span>”</span></dt><dd><p>
+The <span class="quote">“<span class="quote">authtype</span>”</span> string is set to one of the following
+strings:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="quote">“<span class="quote">login</span>”</span></span></dt><dd><p>
 Tradition userid/password authentication.
 <code class="literal">authdata</code> points to a string that consists of:
 the userid; a newline character; the password; a final newline
-character.</p></dd><dt><span class="term">“<span class="quote">cram-md5</span>”, or “<span class="quote">cram-sha1</span>”</span></dt><dd><p>
+character.</p></dd><dt><span class="term"><span class="quote">“<span class="quote">cram-md5</span>”</span>, or <span class="quote">“<span class="quote">cram-sha1</span>”</span></span></dt><dd><p>
 Challenge/response authentication.
 <code class="literal">authdata</code> points to a string that consists of:
 the base64-encoded challenge; a newline character;
@@ -669,11 +716,11 @@ The authentication module is responsible for allocating this structure.
 After the callback function returns this structure can be deallocated.
 The authentication module initializes the following fields:</p><p>
 <code class="function">auth_pre_func</code> points to a function that obtains
-account information.  The function is invoked as follows:</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="auth_pre_func" shape="rect"> </a><p class="title"><b>Example 4. auth_pre_func</b></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
+account information.  The function is invoked as follows:</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="auth_pre_func" shape="rect"> </a><p class="title"><strong>Example 4. auth_pre_func</strong></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
 int auth_pre_func(const char *user, const char *service,
                   int (*callback)(struct authinfo *, void *), void *arg);
 </pre></div></div><br class="example-break" clear="none"/></blockquote></div><p>
-This function does the same thing as “<span class="quote">auth_func</span>” except that
+This function does the same thing as <span class="quote">“<span class="quote">auth_func</span>”</span> except that
 the password is not actually verified.
 If the account exists, the callback function is invoked with the
 same callback arguments.</p><p>
@@ -687,12 +734,12 @@ connections, so that they do not get shut down by the server, for inactivity,
 resulting in an error the next time an authentication request is
 received.</p><p>
 <code class="function">auth_changepwd</code> points to a function that will be
-invoked to change a password on an account, as follows.</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="auth_changepwd" shape="rect"> </a><p class="title"><b>Example 5. auth_changepwd</b></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
+invoked to change a password on an account, as follows.</p><div class="blockquote"><blockquote class="blockquote"><div class="example"><a id="auth_changepwd" shape="rect"> </a><p class="title"><strong>Example 5. auth_changepwd</strong></p><div class="example-contents"><pre class="programlisting" xml:space="preserve">
 int auth_changepwd(const char *service, const char *user,
                        const char *oldpw, const char *newpw);
 </pre></div></div><br class="example-break" clear="none"/></blockquote></div><p>
 <code class="literal">service</code> is the name of the service whose password is to
-be changed (such as “<span class="quote">imap</span>” or “<span class="quote">pop3</span>”).
+be changed (such as <span class="quote">“<span class="quote">imap</span>”</span> or <span class="quote">“<span class="quote">pop3</span>”</span>).
 <code class="function">auth_changepwd</code> should return 0 if the password was
 changed succesfully, a negative value if <code class="literal">user</code> is invalid
 (the next authentication module will be tried), or a positive value if
@@ -709,11 +756,12 @@ After enumerating all login IDs <code class="function">auth_enumerate</code> cal
 the callback function one last time, with a NULL pointer for the login ID,
 then returns.  If an error is encountered while enumerating the login IDs,
 <code class="function">auth_enumerate</code> terminates without invoking
-the callback function with a NULL login ID.</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="files" shape="rect"> </a>FILES</h2></div></div></div><p>
+the callback function with a NULL login ID.</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="files" shape="rect"> </a>FILES</h2></div></div></div><p>
 <code class="filename"> @authdaemonrc@</code> - <span class="command"><strong>authdaemond</strong></span> configuration file</p><p>
 <code class="filename"> @authldaprc@</code> - <span class="command"><strong>authldap</strong></span> configuration file</p><p>
 <code class="filename"> @authmysqlrc@</code> - <span class="command"><strong>authmysql</strong></span> configuration file</p><p>
-<code class="filename"> @authpgsqlrc@</code> - <span class="command"><strong>authpgsql</strong></span> configuration file</p></div><div class="sect1" lang="en" xml:lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="seealso" shape="rect"> </a>SEE ALSO</h2></div></div></div><p>
+<code class="filename"> @authsqliterc@</code> - <span class="command"><strong>authsqlite</strong></span> configuration file</p><p>
+<code class="filename"> @authpgsqlrc@</code> - <span class="command"><strong>authpgsql</strong></span> configuration file</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="seealso" shape="rect"> </a>SEE ALSO</h2></div></div></div><p>
 <a class="ulink" href="courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">courier</span>(8)</span></a>,
  
 <a class="ulink" href="userdb.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">userdb</span>(8)</span></a></p></div></div></body></html>
index 1b0d2ad..b9082cd 100644 (file)
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
-To do so, use the procedure documented by the package, typically `autoreconf'.])])
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
 # Portability macros for glibc argz.                    -*- Autoconf -*-
 #
@@ -87,7 +88,7 @@ AS_IF([test -z "$ARGZ_H"],
           ;; #(
         *) lt_cv_sys_argz_works=yes ;;
         esac]])
-     AS_IF([test $lt_cv_sys_argz_works = yes],
+     AS_IF([test "$lt_cv_sys_argz_works" = yes],
         [AC_DEFINE([HAVE_WORKING_ARGZ], 1,
                    [This value is set to 1 to indicate that the system argz facility works])],
         [ARGZ_H=argz.h
@@ -102,7 +103,8 @@ AC_DEFUN([gl_PREREQ_ARGZ], [:])
 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 # This file is free software; the Free Software Foundation gives
@@ -111,7 +113,8 @@ AC_DEFUN([gl_PREREQ_ARGZ], [:])
 
 m4_define([_LT_COPYING], [dnl
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008 Free Software Foundation, Inc.
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
 #   Written by Gordon Matzigkeit, 1996
 #
 #   This file is part of GNU Libtool.
@@ -138,7 +141,7 @@ m4_define([_LT_COPYING], [dnl
 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 ])
 
-# serial 56 LT_INIT
+# serial 57 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -167,6 +170,7 @@ esac
 # ------------------
 AC_DEFUN([LT_INIT],
 [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
 AC_BEFORE([$0], [LT_LANG])dnl
 AC_BEFORE([$0], [LT_OUTPUT])dnl
 AC_BEFORE([$0], [LTDL_INIT])dnl
@@ -183,6 +187,8 @@ AC_REQUIRE([LTVERSION_VERSION])dnl
 AC_REQUIRE([LTOBSOLETE_VERSION])dnl
 m4_require([_LT_PROG_LTMAIN])dnl
 
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
 dnl Parse OPTIONS
 _LT_SET_OPTIONS([$0], [$1])
 
@@ -219,7 +225,7 @@ m4_defun([_LT_CC_BASENAME],
     *) break;;
   esac
 done
-cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
 ])
 
 
@@ -239,6 +245,11 @@ m4_defun([_LT_FILEUTILS_DEFAULTS],
 m4_defun([_LT_SETUP],
 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
 _LT_DECL([], [host_alias], [0], [The host system])dnl
 _LT_DECL([], [host], [0])dnl
 _LT_DECL([], [host_os], [0])dnl
@@ -261,10 +272,13 @@ _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
 dnl
 m4_require([_LT_FILEUTILS_DEFAULTS])dnl
 m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
 m4_require([_LT_CMD_RELOAD])dnl
 m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
 m4_require([_LT_CMD_OLD_ARCHIVE])dnl
 m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
 
 _LT_CONFIG_LIBTOOL_INIT([
 # See if we are running on zsh, and set the options which allow our
@@ -280,7 +294,6 @@ fi
 _LT_CHECK_OBJDIR
 
 m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
 
 case $host_os in
 aix3*)
@@ -294,23 +307,6 @@ aix3*)
   ;;
 esac
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
 # Global variables:
 ofile=libtool
 can_build_shared=yes
@@ -351,6 +347,28 @@ _LT_CONFIG_COMMANDS
 ])# _LT_SETUP
 
 
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
 # _LT_PROG_LTMAIN
 # ---------------
 # Note that this code is called both from `configure', and `config.status'
@@ -503,7 +521,7 @@ m4_define([_lt_decl_all_varnames],
 # declaration there will have the same value as in `configure'.  VARNAME
 # must have a single quote delimited value for this to work.
 m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "X$][$1" | $Xsed -e "$delay_single_quote_subst"`'])
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
 
 
 # _LT_CONFIG_STATUS_DECLARATIONS
@@ -513,7 +531,7 @@ m4_define([_LT_CONFIG_STATUS_DECLARE],
 # embedded single quotes properly.  In configure, this macro expands
 # each variable declared with _LT_DECL (and _LT_TAGDECL) into:
 #
-#    <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
 m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
 [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
     [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
@@ -612,12 +630,20 @@ LTCC='$LTCC'
 LTCFLAGS='$LTCFLAGS'
 compiler='$compiler_DEFAULT'
 
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
 # Quote evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -628,9 +654,9 @@ done
 # Double-quote double-evaled strings.
 for var in lt_decl_all_varnames([[ \
 ]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
     *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
       ;;
     *)
       eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
@@ -638,16 +664,38 @@ for var in lt_decl_all_varnames([[ \
     esac
 done
 
-# Fix-up fallback echo if it was mangled by the above quoting rules.
-case \$lt_ECHO in
-*'\\\[$]0 --fallback-echo"')dnl "
-  lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\[$]0 --fallback-echo"\[$]/\[$]0 --fallback-echo"/'\`
-  ;;
-esac
-
 _LT_OUTPUT_LIBTOOL_INIT
 ])
 
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
 
 # LT_OUTPUT
 # ---------
@@ -657,20 +705,11 @@ _LT_OUTPUT_LIBTOOL_INIT
 AC_DEFUN([LT_OUTPUT],
 [: ${CONFIG_LT=./config.lt}
 AC_MSG_NOTICE([creating $CONFIG_LT])
-cat >"$CONFIG_LT" <<_LTEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate a libtool stub with the current configuration.
-
-lt_cl_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_LTEOF
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
 
 cat >>"$CONFIG_LT" <<\_LTEOF
-AS_SHELL_SANITIZE
-_AS_PREPARE
-
-exec AS_MESSAGE_FD>&1
+lt_cl_silent=false
 exec AS_MESSAGE_LOG_FD>>config.log
 {
   echo
@@ -696,7 +735,7 @@ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
 m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
 configured by $[0], generated by m4_PACKAGE_STRING.
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2011 Free Software Foundation, Inc.
 This config.lt script is free software; the Free Software Foundation
 gives unlimited permision to copy, distribute and modify it."
 
@@ -741,15 +780,13 @@ chmod +x "$CONFIG_LT"
 # appending to config.log, which fails on DOS, as config.log is still kept
 # open by configure.  Here we exec the FD to /dev/null, effectively closing
 # config.log, so it can be properly (re)opened and appended to by config.lt.
-if test "$no_create" != yes; then
-  lt_cl_success=:
-  test "$silent" = yes &&
-    lt_config_lt_args="$lt_config_lt_args --quiet"
-  exec AS_MESSAGE_LOG_FD>/dev/null
-  $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-  exec AS_MESSAGE_LOG_FD>>config.log
-  $lt_cl_success || AS_EXIT(1)
-fi
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
 ])# LT_OUTPUT
 
 
@@ -812,15 +849,12 @@ _LT_EOF
   # if finds mixed CR/LF and LF-only lines.  Since sed operates in
   # text mode, it properly converts lines to CR/LF.  This bash problem
   # is reportedly fixed, but why not run on old versions too?
-  sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
 
-  _LT_PROG_XSI_SHELLFNS
+  _LT_PROG_REPLACE_SHELLFNS
 
-  sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" ||
+   mv -f "$cfgfile" "$ofile" ||
     (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
   chmod +x "$ofile"
 ],
@@ -865,6 +899,7 @@ AC_DEFUN([LT_LANG],
 m4_case([$1],
   [C],                 [_LT_LANG(C)],
   [C++],               [_LT_LANG(CXX)],
+  [Go],                        [_LT_LANG(GO)],
   [Java],              [_LT_LANG(GCJ)],
   [Fortran 77],                [_LT_LANG(F77)],
   [Fortran],           [_LT_LANG(FC)],
@@ -886,6 +921,29 @@ m4_defun([_LT_LANG],
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_GO], [
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
 # _LT_LANG_DEFAULT_CONFIG
 # -----------------------
 m4_defun([_LT_LANG_DEFAULT_CONFIG],
@@ -916,6 +974,10 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
        m4_ifdef([LT_PROG_GCJ],
        [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
 
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
@@ -926,11 +988,13 @@ AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
 AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
 AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
 AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
 dnl aclocal-1.4 backwards compatibility:
 dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
 dnl AC_DEFUN([AC_LIBTOOL_F77], [])
 dnl AC_DEFUN([AC_LIBTOOL_FC], [])
 dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
 
 
 # _LT_TAG_COMPILER
@@ -1016,7 +1080,13 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
          -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
         _lt_result=$?
-       if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&AS_MESSAGE_LOG_FD
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
          lt_cv_apple_cc_single_mod=yes
        else
          cat conftest.err >&AS_MESSAGE_LOG_FD
@@ -1024,6 +1094,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        rm -rf libconftest.dylib*
        rm -f conftest.*
       fi])
+
     AC_CACHE_CHECK([for -exported_symbols_list linker flag],
       [lt_cv_ld_exported_symbols_list],
       [lt_cv_ld_exported_symbols_list=no
@@ -1035,6 +1106,34 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
        [lt_cv_ld_exported_symbols_list=no])
        LDFLAGS="$save_LDFLAGS"
     ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
     case $host_os in
     rhapsody* | darwin1.[[012]])
       _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -1062,7 +1161,7 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
     else
       _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
     fi
-    if test "$DSYMUTIL" != ":"; then
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
       _lt_dsymutil='~$DSYMUTIL $lib || :'
     else
       _lt_dsymutil=
@@ -1072,8 +1171,8 @@ m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
 ])
 
 
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
 # Checks for linker and compiler features on darwin
 m4_defun([_LT_DARWIN_LINKER_FEATURES],
 [
@@ -1082,7 +1181,13 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   _LT_TAGVAR(hardcode_direct, $1)=no
   _LT_TAGVAR(hardcode_automatic, $1)=yes
   _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
   _LT_TAGVAR(link_all_deplibs, $1)=yes
   _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
   case $cc_basename in
@@ -1090,7 +1195,7 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
      *) _lt_dar_can_shared=$GCC ;;
   esac
   if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=echo
+    output_verbose_link_cmd=func_echo_all
     _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
     _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
     _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
@@ -1106,203 +1211,142 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES],
   fi
 ])
 
-# _LT_SYS_MODULE_PATH_AIX
-# -----------------------
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
 # Links a minimal program and checks the executable
 # for the system default hardcoded library path. In most cases,
 # this is /usr/lib:/lib, but when the MPI compilers are used
 # the location of the communication and MPI libs are included too.
 # If we don't find anything, use the default library path according
 # to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
 m4_defun([_LT_SYS_MODULE_PATH_AIX],
 [m4_require([_LT_DECL_SED])dnl
-AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-lt_aix_libpath_sed='
-    /Import File Strings/,/^$/ {
-       /^0/ {
-           s/^0  *\(.*\)$/\1/
-           p
-       }
-    }'
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then
-  aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
 ])# _LT_SYS_MODULE_PATH_AIX
 
 
 # _LT_SHELL_INIT(ARG)
 # -------------------
 m4_define([_LT_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-            [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-        [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_SHELL_INIT
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
 
 
 # _LT_PROG_ECHO_BACKSLASH
 # -----------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
 m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[_LT_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$lt_ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$lt_ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-ECHO=${lt_ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $ECHO works!
-  :
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
 else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<_LT_EOF
-[$]*
-_LT_EOF
-  exit 0
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
 fi
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test -z "$lt_ECHO"; then
-  if test "X${echo_test_string+set}" != Xset; then
-    # find a string as large as possible, as long as the shell can cope with it
-    for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-      # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-      if { echo_test_string=`eval $cmd`; } 2>/dev/null &&
-        { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null
-      then
-        break
-      fi
-    done
-  fi
-
-  if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-     echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-     test "X$echo_testing_string" = "X$echo_test_string"; then
-    :
-  else
-    # The Solaris, AIX, and Digital Unix default echo programs unquote
-    # backslashes.  This makes it impossible to quote backslashes using
-    #   echo "$something" | sed 's/\\/\\\\/g'
-    #
-    # So, first we look for a working echo in the user's PATH.
-
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for dir in $PATH /usr/ucb; do
-      IFS="$lt_save_ifs"
-      if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-         test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        ECHO="$dir/echo"
-        break
-      fi
-    done
-    IFS="$lt_save_ifs"
-
-    if test "X$ECHO" = Xecho; then
-      # We didn't find a better echo, so look for alternatives.
-      if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' &&
-         echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` &&
-         test "X$echo_testing_string" = "X$echo_test_string"; then
-        # This shell has a builtin print -r that does the trick.
-        ECHO='print -r'
-      elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } &&
-          test "X$CONFIG_SHELL" != X/bin/ksh; then
-        # If we have ksh, try running configure again with it.
-        ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-        export ORIGINAL_CONFIG_SHELL
-        CONFIG_SHELL=/bin/ksh
-        export CONFIG_SHELL
-        exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-      else
-        # Try using printf.
-        ECHO='printf %s\n'
-        if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' &&
-          echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` &&
-          test "X$echo_testing_string" = "X$echo_test_string"; then
-         # Cool, printf works
-         :
-        elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-         export CONFIG_SHELL
-         SHELL="$CONFIG_SHELL"
-         export SHELL
-         ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-            test "X$echo_testing_string" = 'X\t' &&
-            echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-            test "X$echo_testing_string" = "X$echo_test_string"; then
-         ECHO="$CONFIG_SHELL [$]0 --fallback-echo"
-        else
-         # maybe with a smaller string...
-         prev=:
-
-         for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-           if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null
-           then
-             break
-           fi
-           prev="$cmd"
-         done
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
 
-         if test "$prev" != 'sed 50q "[$]0"'; then
-           echo_test_string=`eval $prev`
-           export echo_test_string
-           exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-         else
-           # Oops.  We lost completely, so just stick with echo.
-           ECHO=echo
-         fi
-        fi
-      fi
-    fi
-  fi
-fi
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
 
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-lt_ECHO=$ECHO
-if test "X$lt_ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   lt_ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
 
-AC_SUBST(lt_ECHO)
-])
 _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1],
-    [An echo program that does not interpret backslashes])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
 ])# _LT_PROG_ECHO_BACKSLASH
 
 
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
 # _LT_ENABLE_LOCK
 # ---------------
 m4_defun([_LT_ENABLE_LOCK],
@@ -1331,7 +1375,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
@@ -1362,7 +1406,7 @@ ia64-*-hpux*)
   rm -rf conftest*
   ;;
 
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
@@ -1376,7 +1420,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
          x86_64-*linux*)
            LD="${LD-ld} -m elf_i386"
            ;;
-         ppc64-*linux*|powerpc64-*linux*)
+         powerpcle-*linux*)
+           LD="${LD-ld} -m elf32lppclinux"
+           ;;
+         powerpc-*linux*)
            LD="${LD-ld} -m elf32ppclinux"
            ;;
          s390x-*linux*)
@@ -1395,7 +1442,10 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
          x86_64-*linux*)
            LD="${LD-ld} -m elf_x86_64"
            ;;
-         ppc*-*linux*|powerpc*-*linux*)
+         powerpcle-*linux*)
+           LD="${LD-ld} -m elf64lppc"
+           ;;
+         powerpc-*linux*)
            LD="${LD-ld} -m elf64ppc"
            ;;
          s390*-*linux*|s390*-*tpf*)
@@ -1424,14 +1474,27 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
     CFLAGS="$SAVE_CFLAGS"
   fi
   ;;
-sparc*-*solaris*)
+*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
   if AC_TRY_EVAL(ac_compile); then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
       *)
        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
          LD="${LD-ld} -64"
@@ -1449,14 +1512,47 @@ need_locks="$enable_libtool_lock"
 ])# _LT_ENABLE_LOCK
 
 
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       AC_TRY_EVAL([lt_ar_try])
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
 # _LT_CMD_OLD_ARCHIVE
 # -------------------
 m4_defun([_LT_CMD_OLD_ARCHIVE],
-[AC_CHECK_TOOL(AR, ar, false)
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1])
+[_LT_PROG_AR
 
 AC_CHECK_TOOL(STRIP, strip, :)
 test -z "$STRIP" && STRIP=:
@@ -1475,18 +1571,27 @@ old_postuninstall_cmds=
 if test -n "$RANLIB"; then
   case $host_os in
   openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
     ;;
   *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
     ;;
   esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
 fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
 _LT_DECL([], [old_postinstall_cmds], [2])
 _LT_DECL([], [old_postuninstall_cmds], [2])
 _LT_TAGDECL([], [old_archive_cmds], [2],
     [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
 ])# _LT_CMD_OLD_ARCHIVE
 
 
@@ -1511,15 +1616,15 @@ AC_CACHE_CHECK([$1], [$2],
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
        $2=yes
@@ -1559,7 +1664,7 @@ AC_CACHE_CHECK([$1], [$2],
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
          $2=yes
@@ -1622,6 +1727,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=8192;
     ;;
 
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
   amigaos*)
     # On AmigaOS with pdksh, this test takes hours, literally.
     # So we just punt and use a minimum line length of 8192.
@@ -1647,6 +1757,11 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
     lt_cv_sys_max_cmd_len=196608
     ;;
 
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
   osf*)
     # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
     # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
@@ -1686,8 +1801,8 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
       # If test is not a shell built-in, we'll probably end up computing a
       # maximum length that is only half of the actual maximum length, but
       # we can't tell.
-      while { test "X"`$SHELL [$]0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \
-                = "XX$teststring$teststring"; } >/dev/null 2>&1 &&
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
              test $i != 17 # 1/2 MB should be enough
       do
         i=`expr $i + 1`
@@ -1738,7 +1853,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-[#line __oline__ "configure"
+[#line $LINENO "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -1779,7 +1894,13 @@ else
 #  endif
 #endif
 
-void fnord() { int i=42;}
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord