Skip to contentSkip to conversation

Add cyrus-imapd, cyrus-sasl and exim

PATCH New Luca Ceresoli 3 participants 13 messages Aug 23, 2011 – Mar 5, 2014

lore
Share & tools
lore
#0 lore raw

cover Add cyrus-imapd, cyrus-sasl and exim

Hi,

this patch series adds the Cyrus IMAP server and the exim SMTP server to Buildroot.

As I reported a couple of months ago (see
http://lists.busybox.net/pipermail/buildroot/2011-June/043672.html), I found some problems on my way.

The currently open problems are:
- cyrus-sasl: apparent CFLAGS mismatch on saslauthd;
- cyrus-sasl: makemd5 is wrongly cross-compiled;
- cyrus-imapd: imtest does not cross-compile correctly;
- cyrus-imapd: static binaries are huge, cannot build them shared;
- cyrus-imapd: choose binaries to (build and) install;

The root of these problems is in the poor buildsystem of the two packages. I could work around the blockers and end up with a system that is working for my needs, but is not perfect.

This is the best I could get out of Cyrus at the moment and I won't improve it in the near future, so I'd like to know what other Buildroot developers think, and whether the whole work could be merged even with these issues pending.

Patch overview:
- The first five patches prepare the required settings in /etc and the directories in the skeleton fs.
- Patches 6 and 7 add the Cyrus packages. Both have some workaround patches, which should be pretty understandable.
- Patch 8 simply bumps pcre.
- The last patch adds the exim SMTP server, configured to feed incoming e-mail to cyrus-imapd via LMTP over a socket file.

Luca

Luca Ceresoli (9):
fs/skeleton: add mail group
fs/skeleton: add cyrus user in group mail fs/skeleton: fix /etc/services entries for POP2/POP3 fs/skeleton: add /etc/services entries for cyrus-imapd target/generic: create directories for cyrus-imapd
cyrus-sasl: add new package
cyrus-imapd: add new package
pcre: bump to 8.12 and switch to bz2 tarball
exim: add new package

 fs/skeleton/etc/group                              |    1 +
 fs/skeleton/etc/passwd                             |    1 +
 fs/skeleton/etc/services                           |   17 +++-
 fs/skeleton/etc/shadow                             |    1 +
 package/Config.in                                  |    3 +
 package/cyrus-imapd/Config.in                      |   31 +++++++
 package/cyrus-imapd/S85cyrus                       |   27 ++++++
 .../cyrus-imapd-disable-guid-assert.patch          |   30 +++++++
 .../cyrus-imapd/cyrus-imapd-disable-imtest.patch   |   36 ++++++++
 package/cyrus-imapd/cyrus-imapd.mk                 |   59 +++++++++++++
 package/cyrus-imapd/cyrus.conf                     |   33 +++++++
 package/cyrus-imapd/imapd.conf                     |    6 ++
 package/cyrus-sasl/Config.in                       |   20 +++++
 .../cyrus-sasl-allow-disabling-saslauthd.patch     |   19 ++++
 package/cyrus-sasl/cyrus-sasl-hostcc.patch         |   27 ++++++
 package/cyrus-sasl/cyrus-sasl.mk                   |   39 +++++++++
 package/exim/Config.in                             |    9 ++
 package/exim/Local-Makefile                        |   15 +++
 package/exim/S86exim                               |   26 ++++++
 .../exim/exim-Build-buildconfig-for-the-host.patch |   23 +++++
 ...n-t-make-backup-copies-of-installed-files.patch |   40 +++++++++
 ...ip-version-check-and-symlink-installation.patch |   40 +++++++++
 package/exim/exim-configure                        |   90 ++++++++++++++++++++
 package/exim/exim.mk                               |   49 +++++++++++
 package/pcre/pcre.mk                               |    3 +-
 target/generic/device_table.txt                    |    4 +
 26 files changed, 644 insertions(+), 5 deletions(-)
 create mode 100644 package/cyrus-imapd/Config.in
 create mode 100755 package/cyrus-imapd/S85cyrus
 create mode 100644 package/cyrus-imapd/cyrus-imapd-disable-guid-assert.patch
 create mode 100644 package/cyrus-imapd/cyrus-imapd-disable-imtest.patch
 create mode 100644 package/cyrus-imapd/cyrus-imapd.mk
 create mode 100644 package/cyrus-imapd/cyrus.conf
 create mode 100644 package/cyrus-imapd/imapd.conf
 create mode 100644 package/cyrus-sasl/Config.in
 create mode 100644 package/cyrus-sasl/cyrus-sasl-allow-disabling-saslauthd.patch
 create mode 100644 package/cyrus-sasl/cyrus-sasl-hostcc.patch
 create mode 100644 package/cyrus-sasl/cyrus-sasl.mk
 create mode 100644 package/exim/Config.in
 create mode 100644 package/exim/Local-Makefile
 create mode 100644 package/exim/S86exim
 create mode 100644 package/exim/exim-Build-buildconfig-for-the-host.patch
 create mode 100644 package/exim/exim-Don-t-make-backup-copies-of-installed-files.patch
 create mode 100644 package/exim/exim-Skip-version-check-and-symlink-installation.patch
 create mode 100644 package/exim/exim-configure
 create mode 100644 package/exim/exim.mk
Signature · 1 line
1.7.4.1
#1 lore raw

PATCH 1/9 fs/skeleton: add mail group

---
 fs/skeleton/etc/group |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
fs/skeleton/etc/group +1 -0
index 311a455..dd3ea3d 100644
@@ -5,6 +5,7 @@ sys:x:3:
 adm:x:4:
 tty:x:5:
 disk:x:6:
+mail:x:8:
 wheel:x:10:root
 audio:x:29:
 utmp:x:43:
Signature · 1 line
1.7.4.1
#2 lore raw

PATCH 2/9 fs/skeleton: add cyrus user in group mail

In reply to Luca Ceresoli
---
 fs/skeleton/etc/passwd |    1 +
 fs/skeleton/etc/shadow |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)
fs/skeleton/etc/passwd +1 -0
index ed7006a..ef34441 100644
@@ -11,6 +11,7 @@ operator:x:37:37:Operator:/var:/bin/sh
 haldaemon:x:68:68:hald:/:/bin/sh
 dbus:x:81:81:dbus:/var/run/dbus:/bin/sh
 ftp:x:83:83:ftp:/home/ftp:/bin/sh
+cyrus:x:88:8:cyrus:/home:/bin/sh
 nobody:x:99:99:nobody:/home:/bin/sh
 sshd:x:103:99:Operator:/var:/bin/sh
 default:x:1000:1000:Default non-root user:/home/default:/bin/sh
fs/skeleton/etc/shadow +1 -0
index 67b67c1..6849579 100644
@@ -9,5 +9,6 @@ halt:*:10933:0:99999:7:::
 uucp:*:10933:0:99999:7:::
 operator:*:10933:0:99999:7:::
 ftp:*:10933:0:99999:7:::
+cyrus:*:10933:0:99999:7:::
 nobody:*:10933:0:99999:7:::
 default::10933:0:99999:7:::
Signature · 1 line
1.7.4.1
#3 lore raw

PATCH 3/9 fs/skeleton: fix /etc/services entries for POP2/POP3

In reply to Luca Ceresoli

Some servers (including cyrus-imapd and qpopper) need an entry named pop3, not pop-3, to work.

---
 fs/skeleton/etc/services |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
fs/skeleton/etc/services +4 -4
index b287b63..da37240 100644
@@ -70,10 +70,10 @@ csnet-ns	105/udp		cso-ns
 #3com-tsmux	106/udp		poppassd
 rtelnet		107/tcp				# Remote Telnet
 rtelnet		107/udp
-pop-2		109/tcp		postoffice	# POP version 2
-pop-2		109/udp
-pop-3		110/tcp				# POP version 3
-pop-3		110/udp
+pop2		109/tcp		postoffice	# POP version 2
+pop2		109/udp
+pop3		110/tcp				# POP version 3
+pop3		110/udp
 sunrpc		111/tcp		portmapper	# RPC 4.0 portmapper TCP
 sunrpc		111/udp		portmapper	# RPC 4.0 portmapper UDP
 auth		113/tcp		authentication tap ident
Signature · 1 line
1.7.4.1
#4 lore raw

PATCH 4/9 fs/skeleton: add /etc/services entries for cyrus-imapd

In reply to Luca Ceresoli
---
 fs/skeleton/etc/services |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
fs/skeleton/etc/services +9 -0
index da37240..cb6b536 100644
@@ -88,6 +88,7 @@ netbios-dgm	138/tcp				# NETBIOS Datagram Service
 netbios-dgm	138/udp
 netbios-ssn	139/tcp				# NETBIOS session service
 netbios-ssn	139/udp
+imap		143/tcp
 imap2		143/tcp				# Interim Mail Access Proto v2
 imap2		143/udp
 snmp		161/udp				# Simple Net Mgmt Proto
@@ -126,18 +127,21 @@ imap3		220/tcp				# Interactive Mail Access
 imap3		220/udp				# Protocol v3
 ulistserv	372/tcp				# UNIX Listserv
 ulistserv	372/udp
+imsp		406/tcp
 https		443/tcp				# MCom
 https		443/udp				# MCom
 snpp		444/tcp				# Simple Network Paging Protocol
 snpp		444/udp				# Simple Network Paging Protocol
 saft		487/tcp				# Simple Asynchronous File Transfer
 saft		487/udp				# Simple Asynchronous File Transfer
+nntps		563/tcp
 npmp-local	610/tcp		dqs313_qmaster	# npmp-local / DQS
 npmp-local	610/udp		dqs313_qmaster	# npmp-local / DQS
 npmp-gui	611/tcp		dqs313_execd	# npmp-gui / DQS
 npmp-gui	611/udp		dqs313_execd	# npmp-gui / DQS
 hmmp-ind	612/tcp		dqs313_intercell# HMMP Indication / DQS
 hmmp-ind	612/udp		dqs313_intercell# HMMP Indication / DQS
+pop3s		995/tcp
 #
 # UNIX specific services
 #
@@ -163,10 +167,15 @@ afpovertcp	548/udp				# AFP over TCP
 remotefs	556/tcp		rfs_server rfs	# Brunhoff remote filesystem
 klogin		543/tcp				# Kerberized `rlogin' (v5)
 kshell		544/tcp		krcmd		# Kerberized `rsh' (v5)
+acap		674/tcp
 kerberos-adm	749/tcp				# Kerberos `kadmin' (v5)
 #
 webster		765/tcp				# Network dictionary
 webster		765/udp
+imaps		993/tcp
+sieve		2000/tcp
+lmtp		2003/tcp
+fud		4201/udp
 #
 # From ``Assigned Numbers'':
 #
Signature · 1 line
1.7.4.1
#5 lore raw

PATCH 5/9 target/generic: create directories for cyrus-imapd

In reply to Luca Ceresoli
---
 target/generic/device_table.txt |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
target/generic/device_table.txt +4 -0
index 12f35b2..8f06c3f 100644
@@ -10,6 +10,10 @@
 /tmp					d	1777	0	0	-	-	-	-	-
 /etc					d	755	0	0	-	-	-	-	-
 /home/default				d	2755	1000	1000	-	-	-	-	-
+/var/imap				d	750	88	8	-	-	-	-	-
+/var/imap-spool				d	750	88	8	-	-	-	-	-
+/var/imap/db				d	750	88	8	-	-	-	-	-
+/var/imap/socket 			d	750	88	8	-	-	-	-	-
 /bin/busybox				f	4755	0	0	-	-	-	-	-
 /etc/shadow				f	600	0	0	-	-	-	-	-
 /etc/passwd				f	644	0	0	-	-	-	-	-
Signature · 1 line
1.7.4.1
#6 lore raw

PATCH 6/9 cyrus-sasl: add new package

In reply to Luca Ceresoli
---
 package/Config.in                                  |    1 +
 package/cyrus-sasl/Config.in                       |   20 ++++++++++
 .../cyrus-sasl-allow-disabling-saslauthd.patch     |   19 ++++++++++
 package/cyrus-sasl/cyrus-sasl-hostcc.patch         |   27 ++++++++++++++
 package/cyrus-sasl/cyrus-sasl.mk                   |   39 ++++++++++++++++++++
 5 files changed, 106 insertions(+), 0 deletions(-)
 create mode 100644 package/cyrus-sasl/Config.in
 create mode 100644 package/cyrus-sasl/cyrus-sasl-allow-disabling-saslauthd.patch
 create mode 100644 package/cyrus-sasl/cyrus-sasl-hostcc.patch
 create mode 100644 package/cyrus-sasl/cyrus-sasl.mk
package/Config.in +1 -0
index 7112e05..397e9c1 100644
@@ -395,6 +395,7 @@ source "package/bwm-ng/Config.in"
 source "package/can-utils/Config.in"
 source "package/ctorrent/Config.in"
 source "package/cups/Config.in"
+source "package/cyrus-sasl/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 source "package/dhcp/Config.in"
 endif
package/cyrus-sasl/Config.in new file +20 -0
new file mode 100644
index 0000000..b16f868
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_CYRUS_SASL
+	bool "cyrus-sasl"
+	select BR2_PACKAGE_BERKELEYDB
+	help
+	  SASL (Simple Authentication Security Layer) is an Internet
+	  standards-track method for remote computers to authenticate.
+	  The Cyrus SASL library makes supporting various SASL mechanisms easy
+	  for both client and server writers.
+
+	  http://www.cyrusimap.org/
+
+if BR2_PACKAGE_CYRUS_SASL
+
+config BR2_PACKAGE_CYRUS_SASL_DBPATH
+	string "Custom SASL user database file"
+	help
+	  This is the file where cyrus-sasl stores user passwords.
+	  Leave empty to use the default.
+
+endif
package/cyrus-sasl/cyrus-sasl-allow-disabling-saslauthd.patch new file +19 -0
new file mode 100644
index 0000000..32e8e70
@@ -0,0 +1,19 @@
+configure stops with an error on saslauthd.
+This patch makes it possible to disable saslauthd to allow compiling the
+rest of cyrus-sasl at least.
+
+diff -u -r cyrus-sasl-2.1.24rc1-orig/configure cyrus-sasl-2.1.24rc1/configure
+--- cyrus-sasl-2.1.24rc1-orig/configure	2009-05-07 16:24:25.000000000 +0200
++++ cyrus-sasl-2.1.24rc1/configure	2011-05-02 15:10:36.793333728 +0200
+@@ -15542,8 +15542,10 @@
+ 
+ 
+ 
+-subdirs="$subdirs saslauthd"
+ 
++if test "$with_saslauthd" != no; then
++  subdirs="$subdirs saslauthd"
++fi
+ 
+ 
+ 
package/cyrus-sasl/cyrus-sasl-hostcc.patch new file +27 -0
new file mode 100644
index 0000000..bf940e4
@@ -0,0 +1,27 @@
+Fix HOSTCC and related variables.
+
+Patch inspired by:
+http://tech.dir.groups.yahoo.com/group/nslu2-linux/message/4044?var=0
+
+diff -r -u cyrus-sasl-2.1.24rc1-orig//include/Makefile.in cyrus-sasl-2.1.24rc1/include/Makefile.in
+--- cyrus-sasl-2.1.24rc1-orig/include/Makefile.in	2009-05-07 16:24:46.000000000 +0200
++++ cyrus-sasl-2.1.24rc1/include/Makefile.in	2011-05-05 12:29:38.036844027 +0200
+@@ -266,12 +266,12 @@
+ depcomp = $(SHELL) $(top_srcdir)/config/depcomp
+ am__depfiles_maybe = depfiles
+ @AMDEP_TRUE at DEP_FILES = ./$(DEPDIR)/makemd5.Po
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
+-	$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
++COMPILE = $(HOSTCC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
++	$(CPPFLAGS) $(AM_CFLAGS) $(HOSTCFLAGS)
++LTCOMPILE = $(LIBTOOL) --mode=compile $(HOSTCC) $(DEFS) $(DEFAULT_INCLUDES) \
++	$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(HOSTCFLAGS)
++CCLD = $(HOSTCC)
++LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(HOSTCFLAGS) \
+ 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+ DIST_SOURCES = $(makemd5_SOURCES)
+ DATA = $(frameheader_DATA)
package/cyrus-sasl/cyrus-sasl.mk new file +39 -0
new file mode 100644
index 0000000..5cdc575
@@ -0,0 +1,39 @@
+#############################################################
+#
+# cyrus-sasl
+#
+#############################################################
+
+CYRUS_SASL_VERSION = 2.1.24rc1
+CYRUS_SASL_SOURCE = cyrus-sasl-$(CYRUS_SASL_VERSION).tar.gz
+CYRUS_SASL_SITE = ftp://ftp.cyrusimap.org/cyrus-sasl
+CYRUS_SASL_DEPENDENCIES = berkeleydb
+
+# The --program-prefix='' parameter is needed to avoid cyrus-sasl to install
+# executable files prefixed with the tuple name (e.g. arm-linux-saslpasswd2)
+CYRUS_SASL_CONF_OPT = \
+	--disable-dependency-tracking \
+	--disable-sample \
+	--disable-checkapop \
+	--enable-login \
+	--disable-otp \
+	--disable-srp \
+	--disable-gssapi \
+	--disable-cram \
+	--disable-anon \
+	--disable-digest \
+	--disable-ntlm \
+	--disable-passdss \
+	--without-saslauthd \
+	--without-des \
+	--without-openssl \
+	--program-prefix=''
+
+CYRUS_SASL_INSTALL_STAGING = YES
+
+ifneq ($(call qstrip,$(BR2_PACKAGE_CYRUS_SASL_DBPATH)),)
+CYRUS_SASL_CONF_OPT += \
+	--with-dbpath="$(call qstrip,$(BR2_PACKAGE_CYRUS_SASL_DBPATH))"
+endif
+
+$(eval $(call AUTOTARGETS,package,cyrus-sasl))
Signature · 1 line
1.7.4.1
#7 lore raw

PATCH 7/9 cyrus-imapd: add new package

In reply to Luca Ceresoli
---
 package/Config.in                                  |    1 +
 package/cyrus-imapd/Config.in                      |   31 ++++++++++
 package/cyrus-imapd/S85cyrus                       |   27 +++++++++
 .../cyrus-imapd-disable-guid-assert.patch          |   30 ++++++++++
 .../cyrus-imapd/cyrus-imapd-disable-imtest.patch   |   36 ++++++++++++
 package/cyrus-imapd/cyrus-imapd.mk                 |   59 ++++++++++++++++++++
 package/cyrus-imapd/cyrus.conf                     |   33 +++++++++++
 package/cyrus-imapd/imapd.conf                     |    6 ++
 8 files changed, 223 insertions(+), 0 deletions(-)
 create mode 100644 package/cyrus-imapd/Config.in
 create mode 100755 package/cyrus-imapd/S85cyrus
 create mode 100644 package/cyrus-imapd/cyrus-imapd-disable-guid-assert.patch
 create mode 100644 package/cyrus-imapd/cyrus-imapd-disable-imtest.patch
 create mode 100644 package/cyrus-imapd/cyrus-imapd.mk
 create mode 100644 package/cyrus-imapd/cyrus.conf
 create mode 100644 package/cyrus-imapd/imapd.conf
package/Config.in +1 -0
index 397e9c1..4a8c120 100644
@@ -395,6 +395,7 @@ source "package/bwm-ng/Config.in"
 source "package/can-utils/Config.in"
 source "package/ctorrent/Config.in"
 source "package/cups/Config.in"
+source "package/cyrus-imapd/Config.in"
 source "package/cyrus-sasl/Config.in"
 if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 source "package/dhcp/Config.in"
package/cyrus-imapd/Config.in new file +31 -0
new file mode 100644
index 0000000..f6fec50
@@ -0,0 +1,31 @@
+config BR2_PACKAGE_CYRUS_IMAPD
+	bool "cyrus-imapd"
+	select BR2_PACKAGE_BERKELEYDB
+	select BR2_PACKAGE_CYRUS_SASL
+	help
+	  Cyrus IMAP is an IMAP (and POP3) mail server.
+
+	  http://www.cyrusimap.org/
+
+if BR2_PACKAGE_CYRUS_IMAPD
+
+config BR2_PACKAGE_CYRUS_IMAPD_CONFIG_DIR
+	string "Custom config directory"
+	help
+	  This is the directory where cyrus-imapd stores information about the
+	  IMAP server as a whole.
+	  Leave empty to use the default.
+
+config BR2_PACKAGE_CYRUS_IMAPD_SPOOL_DIR
+	string "Custom spool directory"
+	help
+	  This is the directory where the mailboxes are stored.
+	  Leave empty to use the default.
+
+config BR2_PACKAGE_CYRUS_IMAPD_LMTP_SOCKET
+	string "Custom LMTP socket file"
+	help
+	  This is the socket used for delivering incoming e-mail to cyrus-imapd.
+	  Leave empty to use the default.
+
+endif
package/cyrus-imapd/S85cyrus new file +27 -0
new file mode 100755
index 0000000..84df708
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# Start/stop cyrus master
+#
+
+MASTER=/usr/cyrus/bin/master
+
+case "$1" in
+  start)
+	echo "Starting cyrus..."
+	start-stop-daemon -S -b -x $MASTER
+	;;
+  stop)
+	echo -n "Stopping cyrus..."
+	start-stop-daemon -K -x $MASTER
+	;;
+  restart|reload)
+	"$0" stop
+	"$0" start
+	;;
+  *)
+	echo $"Usage: $0 {start|stop|restart}"
+	exit 1
+esac
+
+exit $?
+
package/cyrus-imapd/cyrus-imapd-disable-guid-assert.patch new file +30 -0
new file mode 100644
index 0000000..509447e
@@ -0,0 +1,30 @@
+Fix message reception when built without openssl
+
+Revert commit
+
+  commit e88cfbdbe442cb10c71ae93a64610d505e57f05d
+  Author: Bron Gondwana <[email protected]>
+  Date:   Thu Jun 23 15:27:08 2011 +0200
+
+  mailbox: ensure appended GUID is not all zeros
+
+which raised unwanted assertion failures when cyrus-imapd is built without
+openssl, whus blocking mail reception. Fix suggested by Bron Gondwana:
+http://lists.andrew.cmu.edu/pipermail/info-cyrus/2011-July/035133.html
+
+Signed-off-by: Luca Ceresoli <[email protected]>
+
+diff --git a/imap/mailbox.c b/imap/mailbox.c
+index 45c5656..dfc2f3a 100644
+--- a/imap/mailbox.c
++++ b/imap/mailbox.c
+@@ -2140,9 +2140,6 @@ int mailbox_append_index_record(struct mailbox *mailbox,
+     /* Append MUST have a message with data */
+     assert(record->size);
+ 
+-    /* GUID must not be null */
+-    assert(!message_guid_isnull(&record->guid));
+-
+     /* belt AND suspenders - check the previous record too */
+     if (mailbox->i.num_records) {
+ 	struct index_record prev;
package/cyrus-imapd/cyrus-imapd-disable-imtest.patch new file +36 -0
new file mode 100644
index 0000000..68d5f69
@@ -0,0 +1,36 @@
+imtest does not cross-compile correctly, and cannot be disabled with configure
+parameters, so disable it manually.
+
+diff -r -u cyrus-imapd-2.4.9-orig/configure cyrus-imapd-2.4.9/configure
+--- cyrus-imapd-2.4.9-orig/configure	2011-04-13 16:53:15.000000000 +0200
++++ cyrus-imapd-2.4.9/configure	2011-05-05 15:56:23.840843998 +0200
+@@ -10906,7 +10906,7 @@
+ 
+ 
+ 
+-ac_config_files="$ac_config_files man/Makefile master/Makefile lib/Makefile imap/Makefile imtest/Makefile netnews/Makefile perl/Makefile $EXTRA_OUTPUT Makefile"
++ac_config_files="$ac_config_files man/Makefile master/Makefile lib/Makefile imap/Makefile netnews/Makefile perl/Makefile $EXTRA_OUTPUT Makefile"
+ 
+ cat >confcache <<\_ACEOF
+ # This file is a shell script that caches the results of configure
+diff -r -u cyrus-imapd-2.4.9-orig/configure.in cyrus-imapd-2.4.9/configure.in
+--- cyrus-imapd-2.4.9-orig/configure.in	2011-04-13 16:35:22.000000000 +0200
++++ cyrus-imapd-2.4.9/configure.in	2011-05-05 15:58:31.316844009 +0200
+@@ -1465,4 +1465,4 @@
+ ])
+ 
+ dnl make sure that Makefile is the last thing output
+-AC_OUTPUT(man/Makefile master/Makefile lib/Makefile imap/Makefile imtest/Makefile netnews/Makefile perl/Makefile $EXTRA_OUTPUT Makefile)
++AC_OUTPUT(man/Makefile master/Makefile lib/Makefile imap/Makefile netnews/Makefile perl/Makefile $EXTRA_OUTPUT Makefile)
+diff -r -u cyrus-imapd-2.4.9-orig/Makefile.in cyrus-imapd-2.4.9/Makefile.in
+--- cyrus-imapd-2.4.9-orig/Makefile.in	2011-04-13 16:35:22.000000000 +0200
++++ cyrus-imapd-2.4.9/Makefile.in	2011-05-05 15:58:31.616843997 +0200
+@@ -42,7 +42,7 @@
+ #
+ 
+ SUBDIRS = man @PRE_SUBDIRS@ lib @SIEVE_SUBDIRS@ @SERVER_SUBDIRS@ \
+-	imtest @SNMP_SUBDIRS@ @EXTRA_SUBDIRS@
++	@SNMP_SUBDIRS@ @EXTRA_SUBDIRS@
+ DISTSUBDIRS = doc
+ 
+ srcdir = @srcdir@
package/cyrus-imapd/cyrus-imapd.mk new file +59 -0

59 lines not on this page · raw message

package/cyrus-imapd/cyrus.conf new file +33 -0
new file mode 100644
index 0000000..047997c
@@ -0,0 +1,33 @@
+# standard standalone server implementation
+
+START {
+  # do not delete this entry!
+  recover	cmd="ctl_cyrusdb -r"
+
+  # this is only necessary if using idled for IMAP IDLE
+#  idled		cmd="idled"
+}
+
+# UNIX sockets start with a slash and are put into /var/imap/sockets
+SERVICES {
+  # add or remove based on preferences
+  imap		cmd="imapd" listen="imap" prefork=0
+  pop3		cmd="pop3d" listen="pop3" prefork=0
+
+  # LMTP is required for delivery
+  lmtpunix	cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0
+
+  # this is only necessary if using notifications
+#  notify	cmd="notifyd" listen="/var/imap/socket/notify" proto="udp" prefork=1
+}
+
+EVENTS {
+  # this is required
+  checkpoint	cmd="ctl_cyrusdb -c" period=30
+
+  # this is only necessary if using duplicate delivery suppression
+  delprune	cmd="ctl_deliver -E 3" at=0400
+
+  # this is only necessary if caching TLS sessions
+  tlsprune	cmd="tls_prune" at=0400
+}
package/cyrus-imapd/imapd.conf new file +6 -0
new file mode 100644
index 0000000..2cc2f31
@@ -0,0 +1,6 @@
+configdirectory: /var/imap
+partition-default: /var/imap-spool
+admins: cyradm
+allowplaintext: yes
+allowplainwithouttls: yes
+plaintextloginpause: 0
Signature · 1 line
1.7.4.1
#8 lore raw

PATCH 8/9 pcre: bump to 8.12 and switch to bz2 tarball

In reply to Luca Ceresoli
---
 package/pcre/pcre.mk |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
package/pcre/pcre.mk +2 -1
index d2a1331..395a6d1 100644
@@ -4,7 +4,8 @@
 #
 #############################################################
 
-PCRE_VERSION = 7.9
+PCRE_VERSION = 8.12
+PCRE_SOURCE = pcre-$(PCRE_VERSION).tar.bz2
 PCRE_SITE = ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre
 PCRE_INSTALL_STAGING = YES
 
Signature · 1 line
1.7.4.1
#9 lore raw

PATCH 9/9 exim: add new package

In reply to Luca Ceresoli
---
 package/Config.in                                  |    1 +
 package/exim/Config.in                             |    9 ++
 package/exim/Local-Makefile                        |   15 +++
 package/exim/S86exim                               |   26 ++++++
 .../exim/exim-Build-buildconfig-for-the-host.patch |   23 +++++
 ...n-t-make-backup-copies-of-installed-files.patch |   40 +++++++++
 ...ip-version-check-and-symlink-installation.patch |   40 +++++++++
 package/exim/exim-configure                        |   90 ++++++++++++++++++++
 package/exim/exim.mk                               |   49 +++++++++++
 9 files changed, 293 insertions(+), 0 deletions(-)
 create mode 100644 package/exim/Config.in
 create mode 100644 package/exim/Local-Makefile
 create mode 100644 package/exim/S86exim
 create mode 100644 package/exim/exim-Build-buildconfig-for-the-host.patch
 create mode 100644 package/exim/exim-Don-t-make-backup-copies-of-installed-files.patch
 create mode 100644 package/exim/exim-Skip-version-check-and-symlink-installation.patch
 create mode 100644 package/exim/exim-configure
 create mode 100644 package/exim/exim.mk
package/Config.in +1 -0
index 4a8c120..f77a703 100644
@@ -404,6 +404,7 @@ source "package/dhcpdump/Config.in"
 source "package/dnsmasq/Config.in"
 source "package/dropbear/Config.in"
 source "package/ebtables/Config.in"
+source "package/exim/Config.in"
 source "package/ethtool/Config.in"
 source "package/hostapd/Config.in"
 source "package/ifplugd/Config.in"
package/exim/Config.in new file +9 -0
new file mode 100644
index 0000000..70038a2
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_EXIM
+	bool "exim"
+	select BR2_PACKAGE_PCRE
+	select BR2_PACKAGE_BERKELEYDB
+	help
+	  Exim is a message transfer agent (MTA) developed at the University of
+	  Cambridge for use on Unix systems connected to the Internet.
+
+	  http://www.exim.org/
package/exim/Local-Makefile new file +15 -0
new file mode 100644
index 0000000..01089d2
@@ -0,0 +1,15 @@
+BIN_DIRECTORY=/usr/sbin
+CONFIGURE_FILE=/etc/exim/configure
+EXIM_USER=ref:cyrus
+EXIM_GROUP=mail
+SPOOL_DIRECTORY=/var/spool/exim
+ROUTER_ACCEPT=yes
+TRANSPORT_LMTP=yes
+LOOKUP_DBM=yes
+LOOKUP_LSEARCH=yes
+PCRE_LIBS=-lpcre
+FIXED_NEVER_USERS=root
+HEADERS_CHARSET="ISO-8859-1"
+HAVE_ICONV=no
+SYSLOG_LOG_PID=yes
+TMPDIR="/tmp"
package/exim/S86exim new file +26 -0
new file mode 100644
index 0000000..0b3e18f
@@ -0,0 +1,26 @@
+#!/bin/sh
+#
+# Start/stop exim
+#
+
+PIDFILE=/var/lock/exim/exim-daemon.pid
+
+case "$1" in
+  start)
+	echo "Starting exim..."
+	start-stop-daemon -S -x exim -- -bd
+	;;
+  stop)
+	echo -n "Stopping exim..."
+	start-stop-daemon -K -o -p $PIDFILE
+	;;
+  restart|reload)
+	"$0" stop
+	"$0" start
+	;;
+  *)
+	echo $"Usage: $0 {start|stop|restart}"
+	exit 1
+esac
+
+exit $?
package/exim/exim-Build-buildconfig-for-the-host.patch new file +23 -0
new file mode 100644
index 0000000..a926fbd
@@ -0,0 +1,23 @@
+buildconfig is meant to be executed on the host, so it has to be compiled
+using $(HOSTCC), not $(CC).
+
+Signed-off-by: Luca Ceresoli <[email protected]>
+---
+ OS/Makefile-Base |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/OS/Makefile-Base b/OS/Makefile-Base
+index 29a6ad3..420ba60 100644
+--- a/OS/Makefile-Base
++++ b/OS/Makefile-Base
+@@ -114,8 +114,8 @@ allexim: config.h $(EXIM_MONITOR) exicyclog exinext exiwhat \
+ 
+ # Targets for special-purpose configuration header builders
+ buildconfig: buildconfig.c
+-	@echo "$(CC) buildconfig.c"
+-	$(FE)$(CC) $(CFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS)
++	@echo "$(HOSTCC) buildconfig.c"
++	$(FE)$(HOSTCC) $(HOSTCFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS)
+ 
+ 
+ # Target for the exicyclog utility script
package/exim/exim-Don-t-make-backup-copies-of-installed-files.patch new file +40 -0
new file mode 100644
index 0000000..0cdaa74
@@ -0,0 +1,40 @@
+If exim had already been installed, the install script makes backup
+copies of the pre-existing executables with a ".0" suffix.
+
+This leads to useless duplicated files on the target, so disable this
+piece of code.
+
+Signed-off-by: Luca Ceresoli <[email protected]>
+---
+ scripts/exim_install |   18 +++++++++---------
+ 1 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/scripts/exim_install b/scripts/exim_install
+index 616ab3c..e68e7d5 100755
+--- a/scripts/exim_install
++++ b/scripts/exim_install
+@@ -344,15 +344,15 @@ while [ $# -gt 0 ]; do
+ 
+   else
+     if ../scripts/newer ${name} ${BIN_DIRECTORY}/${name}; then
+-      if [ -f ${BIN_DIRECTORY}/${name} ]; then
+-        echo ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
+-        ${real} ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
+-        if [ $? -ne 0 ]; then
+-          echo $com ""
+-          echo $com "*** Exim installation ${ver}failed ***"
+-          exit 1
+-        fi
+-      fi
++#      if [ -f ${BIN_DIRECTORY}/${name} ]; then
++#        echo ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
++#        ${real} ${CP} ${BIN_DIRECTORY}/${name} ${BIN_DIRECTORY}/${name}.O
++#        if [ $? -ne 0 ]; then
++#          echo $com ""
++#          echo $com "*** Exim installation ${ver}failed ***"
++#          exit 1
++#        fi
++#      fi
+       echo ${CP} ${name} ${BIN_DIRECTORY}
+       ${real} ${CP} ${name} ${BIN_DIRECTORY}
+       if [ $? -ne 0 ]; then
package/exim/exim-Skip-version-check-and-symlink-installation.patch new file +40 -0
new file mode 100644
index 0000000..94d21ae
@@ -0,0 +1,40 @@
+The exim install script installs a binary named exim-<version>, plus a symlink
+to it named exim.
+In order to achieve this "feature" (of dubious usefulness) it runs the
+executable (on the host) and then filters its output to grab the version number.
+This clearly cannot work if the executable is cross-compiled, so get rid of all
+of it and just install an executable file called exim.
+
+Inspired by:
+http://patch-tracker.debian.org/patch/series/view/exim4/4.76-2/35_install.dpatch
+
+Signed-off-by: Luca Ceresoli <[email protected]>
+---
+ scripts/exim_install |    7 +++++--
+ 1 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/exim_install b/scripts/exim_install
+index e68e7d5..487a4e1 100755
+--- a/scripts/exim_install
++++ b/scripts/exim_install
+@@ -59,6 +59,8 @@ while [ $# -gt 0 ] ; do
+   shift
+ done
+ 
++do_symlink=no
++
+ # Get the values of BIN_DIRECTORY, CONFIGURE_FILE, INFO_DIRECTORY, NO_SYMLINK,
+ # SYSTEM_ALIASES_FILE, and EXE from the global Makefile (in the build
+ # directory). EXE is empty except in the Cygwin environment. In each case, keep
+@@ -218,8 +220,9 @@ while [ $# -gt 0 ]; do
+   # The exim binary is handled specially
+ 
+   if [ $name = exim${EXE} ]; then
+-    version=exim-`./exim -bV -C /dev/null | \
+-      awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
++    version=exim
++#    version=exim-`./exim -bV -C /dev/null | \
++#      awk '/Exim version/ { OFS=""; print $3,"-",substr($4,2,length($4)-1) }'`${EXE}
+ 
+     if [ "${version}" = "exim-${EXE}" ]; then
+       echo $com ""
package/exim/exim-configure new file +90 -0

90 lines not on this page · raw message

package/exim/exim.mk new file +49 -0

49 lines not on this page · raw message

Signature · 1 line
1.7.4.1
#10 lore raw

PATCH 9/9 exim: add new package

Luca Ceresoli <[email protected]> wrote in news:1314127033-14861-10-git-send-email-luca at lucaceresoli.net:

package/exim/exim.mk line 7

Quoted 13 lines
package/exim/exim.mk new file +7 -0
new file mode 100644
index 0000000..a12f5a2
@@ -0,0 +1,49 @@
+#############################################################
+#
+# exim
+#
+#############################################################
+
+EXIM_VERSION = 4.76

Hi,

quoting a mail from Aug 23rd, 2011 ;)

Is there still interest in having Exim in buildroot?

I have package files for my personal needs which deliver Exim 4.80.1 (, based on the quoted package, update to 4.82 is pending), Dovecot 2.2.12, dovecot- pigeonhole 0.4.2, fetchmail 6.3.26 and clamav 0.98.1 which are used on a production system using uClibc/i386 for several months now.

Regards, Bernd

#11 lore raw

PATCH 9/9 exim: add new package

Dear Bernd Kuhls,

Quoted 8 lines · Bernd Kuhls

quoting a mail from Aug 23rd, 2011 ;)

Is there still interest in having Exim in buildroot?

I have package files for my personal needs which deliver Exim 4.80.1 (, based on the quoted package, update to 4.82 is pending), Dovecot 2.2.12, dovecot- pigeonhole 0.4.2, fetchmail 6.3.26 and clamav 0.98.1 which are used on a production system using uClibc/i386 for several months now.

If those packages are working for you, then please submit them. I don't see a reason for not including them if they work and they are used in production.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#12 lore raw

PATCH 9/9 exim: add new package

In reply to Bernd Kuhls

Hi Bernd,

Bernd Kuhls wrote:> Luca Ceresoli <[email protected]> wrote in

Quoted 18 lines

news:1314127033-14861-10-git-send-email-luca at lucaceresoli.net:

package/exim/exim.mk line 7

Quoted 13 lines
package/exim/exim.mk new file +7 -0
new file mode 100644
index 0000000..a12f5a2
@@ -0,0 +1,49 @@
+#############################################################
+#
+# exim
+#
+#############################################################
+
+EXIM_VERSION = 4.76

Hi,

Quoted 3 lines

quoting a mail from Aug 23rd, 2011 ;)

Is there still interest in having Exim in buildroot?

I am still actively using exim in my own configs, and with time I updated to 4.80.1 as well.

So yes, there is interest.

My original patchset aimed at including exim and cyrus-imapd along with their dependencies, which include cyrus-sasl. However this set of packages required a lot of patches in order to work properly, and some of those I made were not of good quality. Exim has no nice build system, and the Cyrus stuff is even worse AFAIR.

At that time I prarably was the only one here interested in these packages and there was no (sufficient) review from other developers.

So in the end I just forgot about it and did not try to mainline it after all.

Quoted 2 lines

I have package files for my personal needs which deliver Exim 4.80.1

(, based

Quoted 1 line

on the quoted package, update to 4.82 is pending), Dovecot 2.2.12,

dovecot-

Quoted 2 lines

pigeonhole 0.4.2, fetchmail 6.3.26 and clamav 0.98.1 which are used on a production system using uClibc/i386 for several months now.

Is your exim implementation changing anything relevant, apart from the version number?

I'll try to find a little time to resubmit and updated version. Please send yours, so we can compare them and maybe merge them into a better one!

Signature · 1 line
Luca