This also looks like it could open up the doorway to using DSO modules for loading sql drivers.

Dan Weber


Dan Weber wrote:

Over some free time I had, I made some patches to split dbmail in to libraries. This has some benefits, most notably with -fPIC it is going to reuse the library. This made the binaries smaller, and less memory consumptive. I started working at this because I plan to fork dbmail as soon as it hits a solid 2.0 release. I was going to split it more into a mail management system and take away the pop and imap. Then I would provide libraries and headers to write frontends to it. I also cleaned up the install. It now installs daemons/management tools to /usr/sbin and some other userland tools to /usr /bin. There was an ugly bug with AC_DEFINE(_GNU_SOURCE) in the configure.in which is fixed in the first patch.

Dan Weber

------------------------------------------------------------------------

#! /bin/sh -e
## 09_libtool_dbmaillib.dpatch by  <[EMAIL PROTECTED]>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

if [ $# -lt 1 ]; then
   echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
   exit 1
fi

[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"

case "$1" in
   -patch) patch -p1 ${patch_opts} < $0;;
   -unpatch) patch -R -p1 ${patch_opts} < $0;;
   *)
       echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
       exit 1;;
esac

exit 0

@DPATCH@
diff -urNad /usr/src/dbmail/dbmail-2.0/acinclude.m4 dbmail-2.0/acinclude.m4
--- /usr/src/dbmail/dbmail-2.0/acinclude.m4     2004-05-24 17:34:48.000000000 
-0400
+++ dbmail-2.0/acinclude.m4     2004-05-24 17:34:49.000000000 -0400
@@ -203,7 +203,8 @@
        AC_MSG_RESULT([$MYSQLINC])      
        AC_MSG_CHECKING([MySQL libraries])
        SQLLIB=`${mysqlconfig} --libs`
-        SQLALIB="mysql/libmysqldbmail.a"
+        SQLALIB="mysql/.libs/libmysqldbmail.a"
+       SQLLTLIB="mysql/libmysqldbmail.la"
        AC_MSG_RESULT([$SQLLIB])
   fi
else
@@ -221,7 +222,8 @@
        AC_MSG_CHECKING([PostgreSQL libraries])
        PGLIBDIR=`${pgsqlconfig} --libdir`
        SQLLIB="-L$PGLIBDIR -lpq"
-        SQLALIB="pgsql/libpgsqldbmail.a"
+        SQLALIB="pgsql/.libs/libpgsqldbmail.a"
+       SQLLTLIB="pgsql/libpgsqldbmail.la"
        AC_MSG_RESULT([$SQLLIB])
    fi
  fi
@@ -234,7 +236,8 @@
AC_ARG_WITH(sieve,[  --with-sieve=PATH    full path to libSieve header 
directory],
        sieveheadername="$withval$")
dnl This always needs to be defined
-SORTALIB="sort/libsortdbmail.a"
+SORTALIB="sort/.libs/libsortdbmail.a"
+SORTLTLIB="sort/libsortdbmail.la"

WARN=0
if test ! "${sieveheadername-x}" = "x"
@@ -309,7 +312,8 @@
AC_ARG_WITH(auth-ldap,[  --with-auth-ldap=PATH    full path to ldap header 
directory],
        authldapheadername="$withval$")
dnl This always needs to be defined
-AUTHALIB="auth/libauthdbmail.a"
+AUTHALIB="auth/.libs/libauthdbmail.a"
+AUTHLTLIB="auth/libauthdbmail.la"

WARN=0
if test ! "${authldapheadername-x}" = "x"
diff -urNad /usr/src/dbmail/dbmail-2.0/auth/Makefile.am 
dbmail-2.0/auth/Makefile.am
--- /usr/src/dbmail/dbmail-2.0/auth/Makefile.am 2004-05-24 17:34:48.000000000 
-0400
+++ dbmail-2.0/auth/Makefile.am 2004-05-24 17:34:49.000000000 -0400
@@ -18,9 +18,9 @@

AM_CFLAGS = -fomit-frame-pointer

-lib_LIBRARIES = libauthdbmail.a
+lib_LTLIBRARIES = libauthdbmail.la
if LDAP
-libauthdbmail_a_SOURCES = authldap.c
+libauthdbmail_la_SOURCES = authldap.c
else
-libauthdbmail_a_SOURCES = authsql.c
+libauthdbmail_la_SOURCES = authsql.c
endif
diff -urNad /usr/src/dbmail/dbmail-2.0/configure.in dbmail-2.0/configure.in
--- /usr/src/dbmail/dbmail-2.0/configure.in     2004-05-24 17:34:48.000000000 
-0400
+++ dbmail-2.0/configure.in     2004-05-24 17:34:49.000000000 -0400
@@ -56,11 +56,18 @@
AC_SUBST(SQLLIB)
AC_SUBST(LDAPLIB)
AC_SUBST(SQLALIB)
+AC_SUBST(SQLLTLIB)
AC_SUBST(SORTALIB)
+AC_SUBST(SORTLTLIB)
AC_SUBST(AUTHALIB)
+AC_SUBST(AUTHLTLIB)
AC_SUBST(SIEVELIB)
AC_SUBST(MYSQLINC)
AC_SUBST(PGSQLINC)
AC_SUBST(SIEVEINC)
AC_SUBST(LDAPINC)
+
+# libtool patch
+AC_PROG_LIBTOOL
+
AC_OUTPUT(Makefile mysql/Makefile pgsql/Makefile auth/Makefile sort/Makefile)
diff -urNad /usr/src/dbmail/dbmail-2.0/imap4.c dbmail-2.0/imap4.c
--- /usr/src/dbmail/dbmail-2.0/imap4.c  2004-05-24 17:34:49.000000000 -0400
+++ dbmail-2.0/imap4.c  2004-05-24 17:34:49.000000000 -0400
@@ -45,6 +45,8 @@

#define null_free(p) { my_free(p); p = NULL; }

+struct list mimelist,smtpItems;
+
/* cache */
cache_t cached_msg;

diff -urNad /usr/src/dbmail/dbmail-2.0/maintenance.c dbmail-2.0/maintenance.c
--- /usr/src/dbmail/dbmail-2.0/maintenance.c    2004-05-24 17:34:48.000000000 
-0400
+++ dbmail-2.0/maintenance.c    2004-05-24 17:34:49.000000000 -0400
@@ -42,6 +42,8 @@
#include <time.h>
#include <string.h>

+
+struct list mimelist,smtpItems;
char *configFile = DEFAULT_CONFIG_FILE;

/* set up database login data */
diff -urNad /usr/src/dbmail/dbmail-2.0/Makefile.am dbmail-2.0/Makefile.am
--- /usr/src/dbmail/dbmail-2.0/Makefile.am      2004-05-24 17:34:49.000000000 
-0400
+++ dbmail-2.0/Makefile.am      2004-05-24 17:35:21.000000000 -0400
@@ -31,32 +31,36 @@
# CFLAGS
AM_CFLAGS = -fomit-frame-pointer

-dbmail_smtp_SOURCES = $(COMMON) $(DELIVER) main.c
-dbmail_smtp_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
+dbmail_smtp_SOURCES = main.c
+dbmail_smtp_LDADD = libdbmail.la


-dbmail_pop3d_SOURCES = $(COMMON) $(SERVER) pop3.c pop3d.c
-dbmail_pop3d_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
+dbmail_pop3d_SOURCES = pop3.c pop3d.c
+dbmail_pop3d_LDADD = libdbmail.la

-dbmail_imapd_SOURCES = $(COMMON) $(SERVER) quota.c imap4.c imaputil.c 
imapcommands.c memblock.c rfcmsg.c imapd.c dbsearch.c dbmsgbuf.c acl.c
-dbmail_imapd_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
+dbmail_imapd_SOURCES = quota.c imap4.c imaputil.c imapcommands.c memblock.c 
rfcmsg.c imapd.c dbsearch.c dbmsgbuf.c acl.c
+dbmail_imapd_LDADD = libdbmail.la

-dbmail_maintenance_SOURCES = $(COMMON) maintenance.c
-dbmail_maintenance_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
+dbmail_maintenance_SOURCES = maintenance.c
+dbmail_maintenance_LDADD = libdbmail.la

-dbmail_adduser_SOURCES = $(COMMON) user.c
-dbmail_adduser_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
+dbmail_adduser_SOURCES = user.c
+dbmail_adduser_LDADD = libdbmail.la

-dbmail_readvut_SOURCES = $(COMMON) vut2dbmail.c
-dbmail_readvut_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
+dbmail_readvut_SOURCES = vut2dbmail.c
+dbmail_readvut_LDADD = libdbmail.la

-dbmail_lmtpd_SOURCES = $(COMMON) $(SERVER) $(DELIVER) lmtp.c lmtpd.c
-dbmail_lmtpd_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
+dbmail_lmtpd_SOURCES = lmtp.c lmtpd.c
+dbmail_lmtpd_LDADD = libdbmail.la
if SIEVE -dbmail_sievecmd_SOURCES = $(COMMON) sievecmd.c -dbmail_sievecmd_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ @SIEVELIB@ +dbmail_sievecmd_SOURCES = sievecmd.c +dbmail_sievecmd_LDADD = libdbmail.la

-dbmail_timsieved_SOURCES = $(COMMON) $(SERVER) timsieve.c timsieved.c
-dbmail_timsieved_LDADD = @SQLALIB@ @SORTALIB@ @AUTHALIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
+dbmail_timsieved_SOURCES = timsieve.c timsieved.c
+dbmail_timsieved_LDADD = libdbmail.la
endif
+
+lib_LTLIBRARIES = libdbmail.la
+libdbmail_la_SOURCES = $(COMMON) $(SERVER) $(DELIVER)
+libdbmail_la_LIBADD = @SQLLTLIB@ @SORTLTLIB@ @AUTHLTLIB@ @SQLLIB@ @LDAPLIB@ 
@SIEVELIB@
diff -urNad /usr/src/dbmail/dbmail-2.0/mysql/Makefile.am 
dbmail-2.0/mysql/Makefile.am
--- /usr/src/dbmail/dbmail-2.0/mysql/Makefile.am        2004-05-24 
17:34:48.000000000 -0400
+++ dbmail-2.0/mysql/Makefile.am        2004-05-24 17:34:49.000000000 -0400
@@ -17,9 +17,9 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

if MYSQL
-AM_CFLAGS = @MYSQLINC@ -fomit-frame-pointer
+AM_CFLAGS = @MYSQLINC@ -fomit-frame-pointer
-lib_LIBRARIES = libmysqldbmail.a
+lib_LTLIBRARIES = libmysqldbmail.la

-libmysqldbmail_a_SOURCES = dbmysql.c
+libmysqldbmail_la_SOURCES = dbmysql.c
endif
diff -urNad /usr/src/dbmail/dbmail-2.0/pgsql/Makefile.am 
dbmail-2.0/pgsql/Makefile.am
--- /usr/src/dbmail/dbmail-2.0/pgsql/Makefile.am        2004-05-24 
17:34:48.000000000 -0400
+++ dbmail-2.0/pgsql/Makefile.am        2004-05-24 17:34:49.000000000 -0400
@@ -19,7 +19,7 @@

AM_CFLAGS = @PGSQLINC@ -fomit-frame-pointer

-lib_LIBRARIES = libpgsqldbmail.a
+lib_LTLIBRARIES = libpgsqldbmail.la

-libpgsqldbmail_a_SOURCES = dbpgsql.c
+libpgsqldbmail_la_SOURCES = dbpgsql.c
endif
diff -urNad /usr/src/dbmail/dbmail-2.0/pop3.c dbmail-2.0/pop3.c
--- /usr/src/dbmail/dbmail-2.0/pop3.c   2004-05-24 17:34:48.000000000 -0400
+++ dbmail-2.0/pop3.c   2004-05-24 17:34:49.000000000 -0400
@@ -54,6 +54,8 @@

extern int pop_before_smtp;

+struct list mimelist,smtpItems;
+
int pop3(void *stream, char *buffer, char *client_ip,
         PopSession_t * session);

diff -urNad /usr/src/dbmail/dbmail-2.0/sort/Makefile.am 
dbmail-2.0/sort/Makefile.am
--- /usr/src/dbmail/dbmail-2.0/sort/Makefile.am 2004-05-24 17:34:48.000000000 
-0400
+++ dbmail-2.0/sort/Makefile.am 2004-05-24 17:34:49.000000000 -0400
@@ -16,11 +16,11 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

-lib_LIBRARIES = libsortdbmail.a
+lib_LTLIBRARIES = libsortdbmail.la

if SIEVE
-libsortdbmail_a_SOURCES = sort.c sortsieve.c
+libsortdbmail_la_SOURCES = sort.c sortsieve.c
CFLAGS += -DSIEVE
else
-libsortdbmail_a_SOURCES = sort.c
+libsortdbmail_la_SOURCES = sort.c
endif
diff -urNad /usr/src/dbmail/dbmail-2.0/user.c dbmail-2.0/user.c
--- /usr/src/dbmail/dbmail-2.0/user.c   2004-05-05 04:59:02.000000000 -0400
+++ dbmail-2.0/user.c   2004-05-24 17:35:37.000000000 -0400
@@ -43,6 +43,8 @@
#endif
#include "dbmd5.h"

+struct list mimelist,smtpItems;
+
char *configFile = DEFAULT_CONFIG_FILE;

#define SHADOWFILE "/etc/shadow"
diff -urNad /usr/src/dbmail/dbmail-2.0/vut2dbmail.c dbmail-2.0/vut2dbmail.c
--- /usr/src/dbmail/dbmail-2.0/vut2dbmail.c     2004-03-19 13:36:59.000000000 
-0500
+++ dbmail-2.0/vut2dbmail.c     2004-05-24 17:35:54.000000000 -0400
@@ -39,6 +39,7 @@
#define MAXLINESIZE 1024
#define DEF_MAXMAILSIZE 1024

+struct list mimelist,smtpItems;
char *configFile = DEFAULT_CONFIG_FILE;

char line[MAXLINESIZE];
------------------------------------------------------------------------

#! /bin/sh -e
## 10_sbin_install.dpatch by  <[EMAIL PROTECTED]>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.

if [ $# -lt 1 ]; then
   echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
   exit 1
fi

[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"

case "$1" in
   -patch) patch -p1 ${patch_opts} < $0;;
   -unpatch) patch -R -p1 ${patch_opts} < $0;;
   *)
       echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
       exit 1;;
esac

exit 0

@DPATCH@
diff -urNad /usr/src/dbmail/dbmail-2.0/Makefile.am dbmail-2.0/Makefile.am
--- /usr/src/dbmail/dbmail-2.0/Makefile.am      2004-05-24 20:00:26.000000000 
-0400
+++ dbmail-2.0/Makefile.am      2004-05-24 20:02:46.000000000 -0400
@@ -21,8 +21,9 @@
SIEVEPROGS = dbmail-sievecmd dbmail-timsieved
endif

-bin_PROGRAMS = dbmail-smtp dbmail-pop3d dbmail-imapd dbmail-maintenance 
dbmail-adduser dbmail-readvut dbmail-lmtpd $(SIEVEPROGS)
-bin_SCRIPTS = install-dbmail.sh
+bin_PROGRAMS = dbmail-readvut $(SIEVEPROGS)
+sbin_SCRIPTS = install-dbmail.sh
+sbin_PROGRAMS = dbmail-smtp dbmail-pop3d dbmail-imapd dbmail-maintenance dbmail-adduser dbmail-lmtpd
COMMON = config.c debug.c list.c dbmd5.c md5.c db.c misc.c mime.c
SERVER = server.c serverchild.c pool.c
------------------------------------------------------------------------

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev@dbmail.org
http://twister.fastxs.net/mailman/listinfo/dbmail-dev

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to