pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/mail/exim Update exim to 4.69nb4



details:   https://anonhg.NetBSD.org/pkgsrc/rev/2deb16a5a641
branches:  trunk
changeset: 552981:2deb16a5a641
user:      abs <abs%pkgsrc.org@localhost>
date:      Mon Jan 12 18:59:24 2009 +0000

description:
Update exim to 4.69nb4
- Add support for getifaddrs() and enable on NetBSD - submitted back to
  exim bugzilla as http://bugs.exim.org/show_bug.cgi?id=802
- Increase size of addrbuf[512] used in old style ioctl() version of
  os_common_find_running_interfaces()
Fixes issue on NetBSD 5.0

diffstat:

 mail/exim/Makefile         |    4 +-
 mail/exim/distinfo         |    4 +-
 mail/exim/patches/patch-ac |  114 +++++++++++++++++++++++++++++++++++++++++++++
 mail/exim/patches/patch-ad |   12 ++++
 4 files changed, 131 insertions(+), 3 deletions(-)

diffs (163 lines):

diff -r 8ce367a013e5 -r 2deb16a5a641 mail/exim/Makefile
--- a/mail/exim/Makefile        Mon Jan 12 17:37:10 2009 +0000
+++ b/mail/exim/Makefile        Mon Jan 12 18:59:24 2009 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.93 2008/11/10 17:21:36 wiz Exp $
+# $NetBSD: Makefile,v 1.94 2009/01/12 18:59:24 abs Exp $
 
 DISTNAME=      exim-4.69
-PKGREVISION=   3
+PKGREVISION=   4
 CATEGORIES=    mail net
 MASTER_SITES=  ftp://ftp.exim.org/pub/exim/exim4/ \
                ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/exim4/ \
diff -r 8ce367a013e5 -r 2deb16a5a641 mail/exim/distinfo
--- a/mail/exim/distinfo        Mon Jan 12 17:37:10 2009 +0000
+++ b/mail/exim/distinfo        Mon Jan 12 18:59:24 2009 +0000
@@ -1,9 +1,11 @@
-$NetBSD: distinfo,v 1.39 2008/01/14 18:57:39 adam Exp $
+$NetBSD: distinfo,v 1.40 2009/01/12 18:59:24 abs Exp $
 
 SHA1 (exim-4.69.tar.bz2) = 321e238b6e6b32498110511ce72a911538305a39
 RMD160 (exim-4.69.tar.bz2) = ae97c807c63f858ba4a0ab402677225da9337d05
 Size (exim-4.69.tar.bz2) = 1658939 bytes
 SHA1 (patch-aa) = 93dca43408fb837deb95d2b22502c64559780f7c
 SHA1 (patch-ab) = 1c6e7882346974390c22e7b9e09a76c5ed670d1d
+SHA1 (patch-ac) = de96032a9cf5450101cc73d615d374ddf6817fee
+SHA1 (patch-ad) = 804ab58f454f7e100c117f2cec9cf478375c1752
 SHA1 (patch-ae) = 6cb0f00d159de7c342a55b09fb87ab533c5670bf
 SHA1 (patch-ag) = 8512795060ad913f4699c277867fd24e7a785519
diff -r 8ce367a013e5 -r 2deb16a5a641 mail/exim/patches/patch-ac
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/exim/patches/patch-ac        Mon Jan 12 18:59:24 2009 +0000
@@ -0,0 +1,114 @@
+$NetBSD: patch-ac,v 1.12 2009/01/12 18:59:24 abs Exp $
+
+--- src/os.c.orig      2007-01-08 10:50:18.000000000 +0000
++++ src/os.c
+@@ -463,6 +463,75 @@ calls the common function; on Linux it c
+ This function finds the addresses of all the running interfaces on the machine.
+ A chain of blocks containing the textual form of the addresses is returned.
+ 
++getifaddrs() provides a sane consistent way to query this on modern OSs,
++otherwise fall back to a maze of twisty ioctl() calls
++
++Arguments:    none
++Returns:      a chain of ip_address_items, each pointing to a textual
++              version of an IP address, with the port field set to zero
++*/
++
++
++#ifndef NO_FIND_INTERFACES
++
++#ifdef HAVE_GETIFADDRS
++
++#include <ifaddrs.h>
++
++ip_address_item *
++os_common_find_running_interfaces(void)
++{
++struct ifaddrs *ifalist = NULL;
++ip_address_item *yield = NULL;
++ip_address_item *last = NULL;
++ip_address_item  *next;
++
++if (getifaddrs(&ifalist) != 0)
++  log_write(0, LOG_PANIC_DIE, "Unable to call getifaddrs: %d %s",
++    errno, strerror(errno));
++
++struct ifaddrs *ifa;
++for (ifa = ifalist; ifa != NULL; ifa = ifa->ifa_next)
++  {
++  if (ifa->ifa_addr->sa_family != AF_INET
++#if HAVE_IPV6
++    && ifa->ifa_addr->sa_family != AF_INET6
++#endif /* HAVE_IPV6 */
++    )
++    continue;
++
++  if ( !(ifa->ifa_flags & IFF_UP) ) /* Only want 'UP' interfaces */
++    continue;
++
++  /* Create a data block for the address, fill in the data, and put it on the
++  chain. */
++
++  next = store_get(sizeof(ip_address_item));
++  next->next = NULL;
++  next->port = 0;
++  (void)host_ntoa(-1, ifa->ifa_addr, next->address, NULL);
++
++  if (yield == NULL)
++    yield = last = next;
++  else
++    {
++    last->next = next;
++    last = next;
++    }
++
++  DEBUG(D_interface) debug_printf("Actual local interface address is %s (%s)\n",
++    last->address, ifa->ifa_name);
++  }
++
++/* free the list of addresses, and return the chain of data blocks. */
++
++freeifaddrs (ifalist);
++return yield;
++}
++
++#else /* HAVE_GETIFADDRS */
++
++/*
+ Problems:
+ 
+   (1) Solaris 2 has the SIOGIFNUM call to get the number of interfaces, but
+@@ -486,15 +555,8 @@ Problems:
+   the former, calling the latter does no harm, but it causes grief on Linux and
+   BSD systems in the case of IP aliasing, so a means of cutting it out is
+   provided.
+-
+-Arguments:    none
+-Returns:      a chain of ip_address_items, each pointing to a textual
+-              version of an IP address, with the port field set to zero
+ */
+ 
+-
+-#ifndef NO_FIND_INTERFACES
+-
+ /* If there is IPv6 support, and SIOCGLIFCONF is defined, define macros to
+ use these new, longer versions of the old IPv4 interfaces. Otherwise, define
+ the macros to use the historical versions. */
+@@ -556,7 +618,7 @@ char *cp;
+ char buf[MAX_INTERFACES*sizeof(struct V_ifreq)];
+ struct sockaddr *addrp;
+ size_t len = 0;
+-char addrbuf[256];
++char addrbuf[512];
+ 
+ /* We have to create a socket in order to do ioctls on it to find out
+ what we want to know. */
+@@ -701,6 +763,8 @@ for (cp = buf; cp < buf + ifc.V_ifc_len;
+ return yield;
+ }
+ 
++#endif /* HAVE_GETIFADDRS */
++
+ #else  /* NO_FIND_INTERFACES */
+ 
+ /* Some experimental or developing OS (e.g. GNU/Hurd) do not have the ioctls,
diff -r 8ce367a013e5 -r 2deb16a5a641 mail/exim/patches/patch-ad
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/mail/exim/patches/patch-ad        Mon Jan 12 18:59:24 2009 +0000
@@ -0,0 +1,12 @@
+$NetBSD: patch-ad,v 1.11 2009/01/12 18:59:24 abs Exp $
+
+--- OS/os.h-NetBSD.orig        2007-06-27 09:46:28.000000000 +0100
++++ OS/os.h-NetBSD
+@@ -3,6 +3,7 @@
+ /* Exim: OS-specific C header file for NetBSD */
+ 
+ #define HAVE_BSD_GETLOADAVG
++#define HAVE_GETIFADDRS
+ #define HAVE_MMAP
+ #define HAVE_SYS_MOUNT_H
+ #define SIOCGIFCONF_GIVES_ADDR



Home | Main Index | Thread Index | Old Index