Re: [exim] Building Exim in a VServer

Top Page
Delete this message
Reply to this message
Author: Marcin Krol
Date:  
To: exim-users
Subject: Re: [exim] Building Exim in a VServer
Hello Christian,

>     cd /tmp/exim-4.69
>     make

>
> -> runs and compiles until it misses libiconv, I stopped here
>


That's easy to solve, just download
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz , and do the
usual mantra of ./configure; make; make install

(well obviously /usr/local/lib has to be added to /etc/ld.so.conf)
> Some questions:
>
>
>> ---------------->script<------------------
>> #!/bin/bash -x
>>
>>
>> mkdir /usr/sbin/bak
>> cp -p /usr/sbin/exim /usr/sbin/bak/exim_stary.bak
>> cd /usr/sbin
>> mv exi* /tmp
>>
>> cd /usr/local
>> rm -rf exim-* dlfunc
>> chmod 755 /usr/bin/wget
>> wget ftp://ftp.easynet.be/exim/exim/exim4/exim-4.68.tar.gz
>>
>> cp -v /etc/exim.conf /root/exim-`date '+m%m_d%d-%H_%M'`.save.conf
>>
>> tar xvzf exim-4.68.tar.gz
>> cd /usr/local/exim-4.68/Local
>> wget http://www.directadmin.com/Makefile
>> perl -pi -e 's/^EXTRALIBS/#EXTRALIBS/' /usr/local/exim-4.68/Local/Makefile
>> ldconfig
>>
>
> I can't imagine what 'ldconfig' would help here.
>


This is "just in case" for sake of (manually compiled and installed)
libiconv.

>> cat >> /usr/local/exim-4.68/Local/Makefile << EOF
>>
>> HAVE_ICONV=yes
>> CFLAGS=-O -I/usr/local/include -I/usr/local/exim-4.68/build-Linux-i386 -I/usr/local/exim-4.68/src
>>
>
> no need to use "-I/usr/local/exim-4.68/build-Linux-i386 -I/usr/local/exim-4.68/src"
> ( dropped -I/usr/local/include also because there was nothing to include on
> the test setup)
>


I've added that only after make weirdly complained about missing headers
in Exim source:

make[2]: Entering directory `/usr/local/exim-4.69/build-Linux-i386/lookups'
make[2]: *** No rule to make target `../config.h', needed by `cdb.o'. Stop.
make[2]: Leaving directory `/usr/local/exim-4.69/build-Linux-i386/lookups'

Apparently it couldn't find config.h in ./build-Linux-i386/pcre/config.h or
./src/pcre/config.h.


>
>> EXTRALIBS_EXIM=-L/usr/local/lib -liconv -export-dynamic -ldl
>>
>
> ( dropped -L/usr/local/lib also because there was nothing to link
> against on the test setup)
>


libiconv is there.

>
>> EXPAND_DLFUNC=yes
>>
>> EOF
>>
>> perl -pi -e "s/#define PROCESS_INFO_SIZE +256/#define PROCESS_INFO_SIZE
>> 2048/g" /usr/local/exim-4.68/src/macros.h
>>
>> cd /usr/lib
>> ln -s libperl.so.5.8.8 libperl.so
>>
>
> sure you need that? I didn't.
>


I did. At least on 64-bit host Etch / 32-bit guest Etch (on Xeon). It
just didn't work otherwise.

>
>> cd /usr/local/exim-4.68
>> make
>>
>
> ...
>
> Next thing I would try is running "strace -o /tmp/trc -f make"
> instead of just "make" and inspect the output in /tmp/trc
> for failure, esp. failed "mkdir" and "execve" system calls
>

For some reason strace -o /tmp/trc -f make fails before the original error I got (when running make without strace), I will have to investigate this issue. Anyway, I determined that building Exim with original Makefile (copied from src/EDITME) works fine, but I need to get it working with this particular Makefile and have no idea why it might fail:



WITH_CONTENT_SCAN=yes
WITH_OLD_DEMIME=yes
BIN_DIRECTORY=/usr/sbin
CONFIGURE_FILE=/etc/exim.conf
SYSTEM_ALIASES_FILE=/etc/aliases
EXIM_USER=mail
SPOOL_DIRECTORY=/var/spool/exim

ROUTER_ACCEPT=yes
ROUTER_DNSLOOKUP=yes
ROUTER_IPLITERAL=yes
ROUTER_MANUALROUTE=yes
ROUTER_QUERYPROGRAM=yes
ROUTER_REDIRECT=yes

TRANSPORT_APPENDFILE=yes
TRANSPORT_AUTOREPLY=yes
TRANSPORT_PIPE=yes
TRANSPORT_SMTP=yes
TRANSPORT_LMTP=yes

SUPPORT_MAILDIR=yes
SUPPORT_MAILSTORE=yes
SUPPORT_MBX=yes

LOOKUP_DBM=no
LOOKUP_LSEARCH=yes
LOOKUP_CDB=no




AUTH_CRAM_MD5=yes
AUTH_PLAINTEXT=yes
AUTH_SPA=yes

SUPPORT_TLS=yes
TLS_LIBS=-lssl -lcrypto
TLS_LIBS=-L/usr/local/openssl/lib -lssl -lcrypto
TLS_INCLUDE=-I/usr/local/openssl/include/ -I/usr/kerberos/include

EXTRALIBS=-static

INFO_DIRECTORY=/usr/share/info

LOG_FILE_PATH=/var/log/exim/%slog

EXICYCLOG_MAX=10

COMPRESS_COMMAND=/usr/bin/gzip
COMPRESS_SUFFIX=gz
ZCAT_COMMAND=/usr/bin/zcat

EXIM_PERL=perl.o


NO_SYMLINK=yes




LOG_DIRECTORY_MODE=0755
LOG_MODE=0644


PID_FILE_PATH=/var/run/exim.pid

SUPPORT_MOVE_FROZEN_MESSAGES=yes

HAVE_ICONV=yes
CFLAGS=-O -I/usr/local/include
EXTRALIBS_EXIM=-L/usr/local/lib -liconv -export-dynamic -ldl

EXPAND_DLFUNC=yes







--
Marcin Krol