rpms/exim/devel exim-4.69-dynlookup-config.patch, NONE, 1.1 exim-4.69-dynlookup.patch, NONE, 1.1 exim-4.50-config.patch, 1.6, 1.7 exim-4.62-dlopen-localscan.patch, 1.2, 1.3 exim.spec, 1.50, 1.51

David Woodhouse (dwmw2) fedora-extras-commits at redhat.com
Tue Apr 22 17:30:39 UTC 2008


Author: dwmw2

Update of /cvs/pkgs/rpms/exim/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31799

Modified Files:
	exim-4.50-config.patch exim-4.62-dlopen-localscan.patch 
	exim.spec 
Added Files:
	exim-4.69-dynlookup-config.patch exim-4.69-dynlookup.patch 
Log Message:
dynlookups

exim-4.69-dynlookup-config.patch:

--- NEW FILE exim-4.69-dynlookup-config.patch ---
diff -u exim-4.69/src/EDITME exim-4.69/src/EDITME
--- exim-4.69/src/EDITME	2008-04-19 23:48:03.000000000 +0100
+++ exim-4.69/src/EDITME	2008-04-19 23:54:46.000000000 +0100
@@ -282,15 +282,17 @@
 # LOOKUP_IBASE=yes
 LOOKUP_LDAP=yes
 LDAP_LIB_TYPE=OPENLDAP2
-LOOKUP_INCLUDE=-I/usr/include/mysql
-LOOKUP_LIBS=-lldap -llber -lsqlite3 -L/usr/$(_lib)/mysql -lmysqlclient -lpq
-LOOKUP_MYSQL=yes
+LOOKUP_LIBS=-lldap -llber -lsqlite3
+LOOKUP_MYSQL_INCLUDE=-I/usr/include/mysql
+LOOKUP_MYSQL_LIBS=-L/usr/${_lib}/mysql -lmysqlclient
+LOOKUP_PGSQL_LIBS=-lpq
+LOOKUP_MYSQL=2
 LOOKUP_NIS=yes
 LOOKUP_NISPLUS=yes
 # LOOKUP_ORACLE=yes
 LOOKUP_PASSWD=yes
-LOOKUP_PGSQL=yes
+LOOKUP_PGSQL=2
 LOOKUP_SQLITE=yes
 # LOOKUP_WHOSON=yes
 
 # These two settings are obsolete; all three lookups are compiled when

exim-4.69-dynlookup.patch:

--- NEW FILE exim-4.69-dynlookup.patch ---
diff --git a/Makefile b/Makefile
index 08d023b..9878b23 100644
--- a/Makefile
+++ b/Makefile
@@ -77,11 +77,11 @@ clean:; @echo ""; echo '*** "make clean" just removes all .o and .a files'
 	cd build-$(buildname); \
 	$(RM_COMMAND) -f *.o lookups/*.o lookups/*.a auths/*.o auths/*.a \
 	routers/*.o routers/*.a transports/*.o transports/*.a \
-	pcre/*.o pcre/*.a
+	pcre/*.o pcre/*.a lookups/*.so
 
 clean_exim:; cd build-$(buildname); \
 	 $(RM_COMMAND) -f *.o lookups/*.o lookups/*.a auths/*.o auths/*.a \
-	routers/*.o routers/*.a transports/*.o transports/*.a
+	routers/*.o routers/*.a transports/*.o transports/*.a lookups/*.so
 
 distclean:; $(RM_COMMAND) -rf build-*
 
diff --git a/OS/Makefile-Base b/OS/Makefile-Base
index a2648e5..14b0867 100644
--- a/OS/Makefile-Base
+++ b/OS/Makefile-Base
@@ -311,6 +311,7 @@ OBJ_EXIM = acl.o child.o crypt16.o daemon.o dbfn.o debug.o deliver.o \
         rda.o readconf.o receive.o retry.o rewrite.o rfc2047.o \
         route.o search.o sieve.o smtp_in.o smtp_out.o spool_in.o spool_out.o \
         store.o string.o tls.o tod.o transport.o tree.o verify.o \
+        lookups/lf_quote.o lookups/lf_check_file.o lookups/lf_sqlperform.o \
         local_scan.o $(EXIM_PERL) $(OBJ_WITH_CONTENT_SCAN) \
         $(OBJ_WITH_OLD_DEMIME) $(OBJ_EXPERIMENTAL)
 
diff --git a/scripts/Configure-Makefile b/scripts/Configure-Makefile
index 01fd316..9cd6d60 100755
--- a/scripts/Configure-Makefile
+++ b/scripts/Configure-Makefile
@@ -107,7 +107,7 @@ do   if test -r ../$f
             echo "# End of $f"
             echo ""
      fi
-done >> $mft || exit 1
+done | sed 's/^LOOKUP_/export LOOKUP_/' >> $mft || exit 1
 
 # See if there is a definition of EXIM_PERL in what we have built so far.
 # If so, run Perl to find the default values for PERL_CC, PERL_CCOPTS,
diff --git a/scripts/MakeLinks b/scripts/MakeLinks
index 257652c..f3daee2 100755
--- a/scripts/MakeLinks
+++ b/scripts/MakeLinks
@@ -204,6 +204,7 @@ ln -s ../src/mytypes.h         mytypes.h
 ln -s ../src/osfunctions.h     osfunctions.h
 ln -s ../src/store.h           store.h
 ln -s ../src/structs.h         structs.h
+ln -s ../src/lookupapi.h       lookupapi.h
 
 ln -s ../src/acl.c             acl.c
 ln -s ../src/buildconfig.c     buildconfig.c
diff --git a/src/EDITME b/src/EDITME
index 1438a38..cb2f7f7 100644
--- a/src/EDITME
+++ b/src/EDITME
@@ -248,6 +248,9 @@ TRANSPORT_SMTP=yes
 # SUPPORT_MAILSTORE=yes
 # SUPPORT_MBX=yes
 
+#------------------------------------------------------------------------------
+# See below for dynamic lookup modules.
+# LOOKUP_MODULE_DIR=/usr/lib/exim/lookups/
 
 #------------------------------------------------------------------------------
 # These settings determine which file and database lookup methods are included
@@ -257,6 +260,18 @@ TRANSPORT_SMTP=yes
 # LOOKUP_DNSDB does *not* refer to general mail routing using the DNS. It is
 # for the specialist case of using the DNS as a general database facility (not
 # common).
+# If set to "2" instead of "yes" then the corresponding lookup will be
+# built as a module and must be installed into LOOKUP_MODULE_DIR. You need to
+# add -export-dynamic -rdynamic to EXTRALIBS. You may also need to add -ldl to
+# EXTRALIBS so that dlopen() is available to Exim. You need to define
+# LOOKUP_MODULE_DIR above so the exim binary actually loads dynamic lookup
+# modules.
+# Also, instead of adding all the libraries/includes to LOOKUP_INCLUDE and
+# LOOKUP_LIBS, add them to the respective LOOKUP_*_INCLUDE and LOOKUP_*_LIBS
+# (where * is the name as given here in this list). That ensures that only
+# the dynamic library and not the exim binary will be linked against the
+# library.
+# NOTE: LDAP cannot be built as a module!
 
 LOOKUP_DBM=yes
 LOOKUP_LSEARCH=yes
diff --git a/src/config.h.defaults b/src/config.h.defaults
index ccf2696..bd271bf 100644
--- a/src/config.h.defaults
+++ b/src/config.h.defaults
@@ -90,6 +90,8 @@ it's a default value. */
 #define LOOKUP_WILDLSEARCH
 #define LOOKUP_NWILDLSEARCH
 
+#define LOOKUP_MODULE_DIR
+
 #define MAX_FILTER_SIZE           (1024*1024)
 #define MAX_LOCALHOST_NUMBER        256
 #define MAX_INCLUDE_SIZE          (1024*1024)
diff --git a/src/drtables.c b/src/drtables.c
index 426933c..dc4e15f 100644
--- a/src/drtables.c
+++ b/src/drtables.c
@@ -10,6 +10,8 @@
 
 #include "exim.h"
 
+#include <dlfcn.h>
+#include <string.h>
 
 /* This module contains tables that define the lookup methods and drivers
 that are actually included in the binary. Its contents are controlled by
@@ -31,535 +33,8 @@ even pickier compilers complaining about infinite loops. */
 
 static void dummy(int x) { dummy(x-1); }
 
-
-/* Table of information about all possible lookup methods. The entries are
-always present, but the "open" and "find" functions are set to NULL for those
-that are not compiled into the binary. The "check" and "close" functions can
-be NULL for methods that don't need them. */
-
-#ifdef LOOKUP_CDB
-#include "lookups/cdb.h"
-#endif
-
-#ifdef LOOKUP_DBM
-#include "lookups/dbmdb.h"
-#endif
-
-#ifdef LOOKUP_DNSDB
-#include "lookups/dnsdb.h"
-#endif
-
-#ifdef LOOKUP_DSEARCH
-#include "lookups/dsearch.h"
-#endif
-
-#ifdef LOOKUP_IBASE
-#include "lookups/ibase.h"
-#endif
-
-#ifdef LOOKUP_LDAP
-#include "lookups/ldap.h"
-#endif
-
-#ifdef LOOKUP_LSEARCH
-#include "lookups/lsearch.h"
-#endif
-
-#ifdef LOOKUP_MYSQL
-#include "lookups/mysql.h"
-#endif
-
-#ifdef LOOKUP_NIS
-#include "lookups/nis.h"
-#endif
-
-#ifdef LOOKUP_NISPLUS
-#include "lookups/nisplus.h"
-#endif
-
-#ifdef LOOKUP_ORACLE
-#include "lookups/oracle.h"
-#endif
-
-#ifdef LOOKUP_PASSWD
-#include "lookups/passwd.h"
-#endif
-
-#ifdef LOOKUP_PGSQL
-#include "lookups/pgsql.h"
-#endif
-
-#ifdef EXPERIMENTAL_SPF
-#include "lookups/spf.h"
-#endif
-
-#ifdef LOOKUP_SQLITE
-#include "lookups/sqlite.h"
-#endif
-
-#ifdef LOOKUP_TESTDB
-#include "lookups/testdb.h"
-#endif
-
-#ifdef LOOKUP_WHOSON
-#include "lookups/whoson.h"
-#endif
-
-#ifdef EXPERIMENTAL_DKIM
-#include "lookups/dkim.h"
-#endif
-
-
-/* The second field in each item below is a set of bit flags:
-
[...2969 lines suppressed...]
 }
 
-#endif  /* LOOKUP_WHOSON */
+static lookup_info _lookup_info = {
+  US"whoson",                    /* lookup name */
+  lookup_querystyle,             /* query-style lookup */
+  whoson_open,                   /* open function */
+  NULL,                          /* check function */
+  whoson_find,                   /* find function */
+  NULL,                          /* no close function */
+  NULL,                          /* no tidy function */
+  NULL                           /* no quoting function */
+};
+
+#ifdef DYNLOOKUP
+#define whoson_lookup_module_info _lookup_module_info
+#endif
+
+static lookup_info *_lookup_list[] = { &_lookup_info };
+lookup_module_info whoson_lookup_module_info = { LOOKUP_MODULE_INFO_MAGIC, _lookup_list, 1 };
 
 /* End of lookups/whoson.c */
diff --git a/src/lookups/whoson.h b/src/lookups/whoson.h
deleted file mode 100644
index 3490383..0000000
--- a/src/lookups/whoson.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* $Cambridge: exim/exim-src/src/lookups/whoson.h,v 1.4 2007/01/08 10:50:19 ph10 Exp $ */
-
-/*************************************************
-*     Exim - an Internet mail transport agent    *
-*************************************************/
-
-/* Copyright (c) University of Cambridge 1995 - 2007 */
-/* See the file NOTICE for conditions of use and distribution. */
-
-/* Header for the whoson lookup */
-
-extern void *whoson_open(uschar *, uschar **);
-extern int   whoson_find(void *, uschar *, uschar *, int, uschar **, uschar **,
-               BOOL *);
-
-/* End of lookups/whoson.h */
diff --git a/src/macros.h b/src/macros.h
index 4ca353c..a70aa85 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -96,7 +96,7 @@ don't make the file descriptors two-way. */
 
 /* A macro to simplify testing bits in lookup types */
 
-#define mac_islookup(a,b) ((lookup_list[a].type & (b)) != 0)
+#define mac_islookup(a,b) ((lookup_list[a]->type & (b)) != 0)
 
 /* Debugging control */
 
diff --git a/src/search.c b/src/search.c
index 8181285..3510d33 100644
--- a/src/search.c
+++ b/src/search.c
@@ -71,7 +71,7 @@ int top = lookup_list_count;
 while (top > bot)
   {
   int mid = (top + bot)/2;
-  int c = Ustrncmp(name, lookup_list[mid].name, len);
+  int c = Ustrncmp(name, lookup_list[mid]->name, len);
 
   /* If c == 0 we have matched the incoming name with the start of the search
   type name. However, some search types are substrings of others (e.g. nis and
@@ -81,9 +81,9 @@ while (top > bot)
   are testing. By leaving c == 0 when the lengths are different, and doing a
   > 0 test below, this all falls out correctly. */
 
-  if (c == 0 && Ustrlen(lookup_list[mid].name) == len)
+  if (c == 0 && Ustrlen(lookup_list[mid]->name) == len)
     {
-    if (lookup_list[mid].find != NULL) return mid;
+    if (lookup_list[mid]->find != NULL) return mid;
     search_error_message  = string_sprintf("lookup type \"%.*s\" is not "
       "available (not in the binary - check buildtime LOOKUP configuration)",
       len, name);
@@ -237,8 +237,8 @@ if (t->left != NULL) tidyup_subtree(t->left);
 if (t->right != NULL) tidyup_subtree(t->right);
 if (c != NULL &&
     c->handle != NULL &&
-    lookup_list[c->search_type].close != NULL)
-  lookup_list[c->search_type].close(c->handle);
+    lookup_list[c->search_type]->close != NULL)
+  lookup_list[c->search_type]->close(c->handle);
 }
 
 
@@ -270,7 +270,7 @@ open_filecount = 0;
 /* Call the general tidyup entry for any drivers that have one. */
 
 for (i = 0; i < lookup_list_count; i++)
-  if (lookup_list[i].tidy != NULL) (lookup_list[i].tidy)();
+  if (lookup_list[i]->tidy != NULL) (lookup_list[i]->tidy)();
 
 if (search_reset_point != NULL) store_reset(search_reset_point);
 search_reset_point = NULL;
@@ -335,7 +335,7 @@ search_open(uschar *filename, int search_type, int modemask, uid_t *owners,
 void *handle;
 tree_node *t;
 search_cache *c;
-lookup_info *lk = lookup_list + search_type;
+lookup_info *lk = lookup_list[search_type];
 uschar keybuffer[256];
 int old_pool = store_pool;
 
@@ -388,7 +388,7 @@ if (lk->type == lookup_absfile && open_filecount >= lookup_open_max)
       ((search_cache *)(open_bot->data.ptr))->down = NULL;
     else
       open_top = NULL;
-    ((lookup_list + c->search_type)->close)(c->handle);
+    ((lookup_list[c->search_type])->close)(c->handle);
     c->handle = NULL;
     open_filecount--;
     }
@@ -480,7 +480,7 @@ search_find_defer = FALSE;
 
 DEBUG(D_lookup) debug_printf("internal_search_find: file=\"%s\"\n  "
   "type=%s key=\"%s\"\n", filename,
-  lookup_list[search_type].name, keystring);
+  lookup_list[search_type]->name, keystring);
 
 /* Insurance. If the keystring is empty, just fail. */
 
@@ -511,7 +511,7 @@ if ((t = tree_search(c->item_cache, keystring)) == NULL)
   like FAIL, except that search_find_defer is set so the caller can
   distinguish if necessary. */
 
-  if (lookup_list[search_type].find(c->handle, filename, keystring, keylength,
+  if (lookup_list[search_type]->find(c->handle, filename, keystring, keylength,
       &data, &search_error_message, &do_cache) == DEFER)
     {
     search_find_defer = TRUE;
@@ -622,7 +622,7 @@ DEBUG(D_lookup)
 that opens real files. */
 
 if (open_top != (tree_node *)handle &&
-    lookup_list[t->name[0]-'0'].type == lookup_absfile)
+    lookup_list[t->name[0]-'0']->type == lookup_absfile)
   {
   search_cache *c = (search_cache *)(t->data.ptr);
   tree_node *up = c->up;
diff --git a/src/structs.h b/src/structs.h
index 2000e04..915e100 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -322,34 +322,7 @@ typedef struct router_info {
 
 /* Structure for holding information about a lookup type. */
 
-typedef struct lookup_info {
-  uschar *name;                   /* e.g. "lsearch" */
-  int type;                       /* query/singlekey/abs-file */
-  void *(*open)(                  /* open function */
-    uschar *,                     /* file name for those that have one */
-    uschar **);                   /* for error message */
-  BOOL (*check)(                  /* file checking function */
-    void *,                       /* handle */
-    uschar *,                     /* file name */
-    int,                          /* modemask for file checking */
-    uid_t *,                      /* owners for file checking */
-    gid_t *,                      /* owngroups for file checking */
-    uschar **);                   /* for error messages */
-  int (*find)(                    /* find function */
-    void *,                       /* handle */
-    uschar *,                     /* file name or NULL */
-    uschar *,                     /* key or query */
-    int,                          /* length of key or query */
-    uschar **,                    /* for returning answer */
-    uschar **,                    /* for error message */
-    BOOL *);                      /* to request cache cleanup */
-  void (*close)(                  /* close function */
-    void *);                      /* handle */
-  void (*tidy)(void);             /* tidy function */
-  uschar *(*quote)(               /* quoting function */
-    uschar *,                     /* string to quote */
-    uschar *);                    /* additional data from quote name */
-} lookup_info;
+#include "lookupapi.h"
 
 
 /* Structure for holding information about the configured authentication
diff --git a/src/verify.c b/src/verify.c
index fcbcd04..95bcc73 100644
--- a/src/verify.c
+++ b/src/verify.c
@@ -2219,7 +2219,7 @@ if (iplookup)
     }
   else   /* Single-key style */
     {
-    int sep = (Ustrcmp(lookup_list[search_type].name, "iplsearch") == 0)?
+    int sep = (Ustrcmp(lookup_list[search_type]->name, "iplsearch") == 0)?
       ':' : '.';
     insize = host_aton(cb->host_address, incoming);
     host_mask(insize, incoming, mlen);

exim-4.50-config.patch:

Index: exim-4.50-config.patch
===================================================================
RCS file: /cvs/pkgs/rpms/exim/devel/exim-4.50-config.patch,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- exim-4.50-config.patch	6 Feb 2007 18:08:56 -0000	1.6
+++ exim-4.50-config.patch	22 Apr 2008 17:30:01 -0000	1.7
@@ -1,5 +1,5 @@
---- exim-4.50/Local/Makefile.conf	2005-02-22 19:12:14.000000000 +0000
-+++ exim-4.50/Local/Makefile	2005-02-22 19:15:10.000000000 +0000
+--- exim-4.50/src/EDITME	2005-02-22 19:12:14.000000000 +0000
++++ exim-4.50/src/EDITME	2005-02-22 19:15:10.000000000 +0000
 @@ -100,7 +100,7 @@
  # /usr/local/sbin. The installation script will try to create this directory,
  # and any superior directories, if they do not exist.

exim-4.62-dlopen-localscan.patch:

Index: exim-4.62-dlopen-localscan.patch
===================================================================
RCS file: /cvs/pkgs/rpms/exim/devel/exim-4.62-dlopen-localscan.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- exim-4.62-dlopen-localscan.patch	6 Feb 2007 18:08:56 -0000	1.2
+++ exim-4.62-dlopen-localscan.patch	22 Apr 2008 17:30:01 -0000	1.3
@@ -10,8 +10,8 @@
 Marc MERLIN <marc_soft at merlins.org>
 
 diff -urN exim-4.14-0/src/EDITME exim-4.14-1/src/EDITME
---- exim-4.14-0/Local/Makefile	Tue Mar 11 04:20:18 2003
-+++ exim-4.14-1/Local/Makefile	Sun Mar 23 15:34:15 2003
+--- exim-4.14-0/src/EDITME	Tue Mar 11 04:20:18 2003
++++ exim-4.14-1/src/EDITME	Sun Mar 23 15:34:15 2003
 @@ -388,6 +388,20 @@
  
  


Index: exim.spec
===================================================================
RCS file: /cvs/pkgs/rpms/exim/devel/exim.spec,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- exim.spec	18 Mar 2008 15:45:12 -0000	1.50
+++ exim.spec	22 Apr 2008 17:30:01 -0000	1.51
@@ -12,7 +12,7 @@
 Summary: The exim mail transfer agent
 Name: exim
 Version: 4.69
-Release: 4%{?dist}
+Release: 5%{?dist}
 License: GPLv2+
 Url: http://www.exim.org/
 Group: System Environment/Daemons
@@ -51,6 +51,8 @@
 Patch21: exim-4.63-localhost-is-local.patch
 Patch22: exim-4.66-greylist-conf.patch
 Patch23: exim-4.67-smarthost-config.patch
+Patch24: exim-4.69-dynlookup.patch
+Patch25: exim-4.69-dynlookup-config.patch
 
 Requires: /etc/aliases
 Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
@@ -70,10 +72,23 @@
 mail. Exim can be installed in place of sendmail, although the
 configuration of exim is quite different to that of sendmail.
 
+%package mysql
+Summary: MySQL lookup support for Exim
+Group: System Environment/Daemons
+
+%description mysql
+This package contains the MySQL lookup module for Exim
+
+%package pgsql
+Summary: PostgreSQL lookup support for Exim
+Group: System Environment/Daemons
+
+%description pgsql
+This package contains the PostgreSQL lookup module for Exim
+
 %package mon
-Summary: X11 monitor application for exim
+Summary: X11 monitor application for Exim
 Group: Applications/System
-License: GPL
 
 %description mon
 The Exim Monitor is an optional supplement to the Exim package. It
@@ -146,8 +161,6 @@
 %if 0%{?buildsa}
 %setup -q -T -D -a 13
 %endif
-cp src/EDITME Local/Makefile
-cp exim_monitor/EDITME Local/eximon.conf
 
 %patch4 -p1 -b .rhl
 %patch6 -p1 -b .config
@@ -163,13 +176,21 @@
 %patch21 -p1 -b .localhost
 %patch22 -p1 -b .grey
 %patch23 -p1 -b .smarthost
+%patch24 -p1 -b .dynlookup
+%patch25 -p1 -b .dynconfig
+
+cp src/EDITME Local/Makefile
+sed -i 's@^# LOOKUP_MODULE_DIR=.*@LOOKUP_MODULE_DIR=%{_libdir}/exim/%{version}-%{release}/lookups@' Local/Makefile
+cp exim_monitor/EDITME Local/eximon.conf
+
 
 %build
 %ifnarch s390 s390x sparc sparcv9 sparcv9v sparc64 sparc64v
-	make CFLAGS="$RPM_OPT_FLAGS -fpie" LFLAGS=-pie _lib=%{_lib}
+	PIE=-fpie
 %else
-	make CFLAGS="$RPM_OPT_FLAGS -fPIE" LFLAGS=-pie _lib=%{_lib}
+	PIE=-fPIE
 %endif
+make CFLAGS="$RPM_OPT_FLAGS $PIE" LFLAGS=-pie _lib=%{_lib} FULLECHO=
 
 %if 0%{?buildsa}
 # build sa-exim
@@ -198,6 +219,13 @@
 	install -m 0755 $i $RPM_BUILD_ROOT%{_sbindir}
 done
 
+mkdir -p $RPM_BUILD_ROOT%{_libdir}/exim/%{version}-%{release}/lookups
+for i in mysql.so pgsql.so
+do 
+	install -m755 lookups/$i \
+	 $RPM_BUILD_ROOT%{_libdir}/exim/%{version}-%{release}/lookups
+done
+
 cd ..
 
 install -m 0644 src/configure.default $RPM_BUILD_ROOT%{_sysconfdir}/exim/exim.conf
@@ -382,6 +410,7 @@
 %{_bindir}/newaliases.exim
 /usr/lib/sendmail.exim
 %{_mandir}/*/*
+%dir %{_libdir}/exim/%{version}-%{release}/lookups
 
 %defattr(-,exim,exim)
 %dir %{_var}/spool/exim
@@ -406,6 +435,12 @@
 %attr(0600,root,root) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) /etc/pki/tls/certs/exim.pem
 %attr(0600,root,root) %ghost %config(missingok,noreplace) %verify(not md5 size mtime) /etc/pki/tls/private/exim.pem
 
+%files mysql
+%{_libdir}/exim/%{version}-%{release}/lookups/mysql.so
+
+%files pgsql
+%{_libdir}/exim/%{version}-%{release}/lookups/pgsql.so
+
 %files mon
 %defattr(-,root,root)
 %{_sbindir}/eximon
@@ -448,10 +483,13 @@
 %{_sysconfdir}/cron.daily/greylist-tidy.sh
 
 %changelog
-* Tue Mar 18 2008 Tom "spot" Callaway <tcallawa at redhat.com> 4.59-4
+* Sat Apr 19 2008 David Woodhouse <dwmw2 at infradead.org> 4.69-5
+- Add dynamic lookup patch, split into subpackages (#199256)
+
+* Tue Mar 18 2008 Tom "spot" Callaway <tcallawa at redhat.com> 4.69-4
 - add Requires for versioned perl (libperl.so)
 
-* Mon Mar 17 2008 David Woodhouse <dwmw2 at infradead.org> 4.59-3
+* Mon Mar 17 2008 David Woodhouse <dwmw2 at infradead.org> 4.69-3
 - Rebuild for new perl
 
 * Mon Feb 04 2008 Dennis Gilmore <dennis at ausil.us> 4.69-2




More information about the fedora-extras-commits mailing list