Add cyrus-imapd, cyrus-sasl and exim
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
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
@@ -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
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
@@ -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
@@ -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
PATCH 3/9 fs/skeleton: fix /etc/services entries for POP2/POP3
In reply to Luca CeresoliSome 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
@@ -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
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
@@ -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
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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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@@ -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
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
PATCH 9/9 exim: add new package
In reply to Bernd KuhlsHi 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@@ -0,0 +1,49 @@ +############################################################# +# +# exim +# +############################################################# + +EXIM_VERSION = 4.76Hi,
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