Cyrus on Linksys NSLU2

Ian G Batten I.G.Batten at ftel.co.uk
Thu Feb 24 12:49:03 EST 2005


I've compiled 2.2.12 on a Linksys NSLU2.  It appears to work --- I can
rsync a mailbox on from a Sun and access it correctly.  I've also got
Sendmail 8.13.3 built and awaiting a config file, so I can start
delivering mail to the slug soonest.

I have real work for this, honest, and it's not just geekery: we want
low-maintenance mail servers in our branch offices.

I did the compilation actually on the slug, as building a
cross-compilation environment faithful enough to handle a full-scale
configure, especially given my preferred development environment being
Solaris 10 on Sparc, seemed too much like hard work.

I had to hack a few bits and pieces to get it to build, notably
xversion.sh (as perl isn't present, awk appears to be somewhat broken,
printf is missing and echo doesn't have \n properly).  Obviously I
haven't got perl, so I skipped the cyradm build.  

xversion.sh reads as follows:

#!/bin/sh
echo "/* Generated automatically by xversion.sh */" > xversion.h
echo "#define CYRUS_CVSDATE \"unknown\"" >> xversion.h

It loses versioning information, obviously.  I'll write a better
solution in C when I have a chance.

Also, a `make clean' is a bit of a catastrophe, as some things are
supplied in the source kit that are scrubbed by a clean and require perl
to rebuild (imapopts, notably).

I used ipkg to install a whole stack of stuff: diffutils, the compilers,
ssl, sasl, db and so on.  The slug I'm compiling and testing on has the
following packages installed:

cpio crosstool-native-arch-bin crosstool-native-arch-inc
crosstool-native-arch-lib crosstool-native-bin crosstool-native-inc
crosstool-native-lib cyrus-sasl diffutils findutils ipkg less
libc6-unslung libdb libgcc libipkg m4 make ncurses nfs-utils
nslu2-linksys-libs ntpclient openssh openssl portmap rsync slingbox
strace unslung-standard-rootfs wget zlib

Not all are required for the build, but I'm not about to start randomly
removing packages and seeing if it'll still build!

The compilation was done with:

# CC=/opt/armeb/bin/armv5b-softfloat-linux-gcc export CC
# CFLAGS=-O export CFLAGS
# ./configure --build=armv5b-softfloat-linux \
      --with-bdb-libdir=/opt/lib --with-bdb-incdir=/opt/include \
      --without-perl --with-cyrus-user=mail --with-cyrus-group=mail \
      --prefix=/opt/cyrus --with-cyrus-prefix=/opt/cyrus
# make

I used mail:mail as the uid because it's there, and adding users into
/etc/passed is painful on a slug.  /opt/cyrus isn't big enough (unless
you're using non-standard partitioning) so I made it a symlink into
/share/hdd/data/cyrus.  

ian



---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list