编译并安装
deepfuture@ubuntu-sdp:/usr/tmp/vpopmail-5.4.30$ make
make all-recursive
make[1]: Entering directory `/usr/tmp/vpopmail-5.4.30'
Making all in cdb
make[2]: Entering directory `/usr/tmp/vpopmail-5.4.30/cdb'
( cat warn-auto.sh; \
echo CC=\'`head -1 conf-cc`\'; \
echo LD=\'`head -1 conf-ld`\'; \
cat find-systype.sh; \
) | sh > systype
/bin/sh: cannot create systype: Permission denied
make[2]: *** [systype] Error 2
make[2]: Leaving directory `/usr/tmp/vpopmail-5.4.30/cdb'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/tmp/vpopmail-5.4.30'
make: *** [all] Error 2
deepfuture@ubuntu-sdp:/usr/tmp/vpopmail-5.4.30$ sudo make
make all-recursive
make[1]: Entering directory `/usr/tmp/vpopmail-5.4.30'
Making all in cdb
make[2]: Entering directory `/usr/tmp/vpopmail-5.4.30/cdb'
( cat warn-auto.sh; \
echo CC=\'`head -1 conf-cc`\'; \
echo LD=\'`head -1 conf-ld`\'; \
cat find-systype.sh; \
) | sh > systype
( cat warn-auto.sh; \
echo 'main="$1"; shift'; \
echo 'rm -f "$main"'; \
echo 'ar cr "$main" ${1+"$@"}'; \
case "`cat systype`" in \
sunos-5.*) ;; \
unix_sv*) ;; \
irix64-*) ;; \
irix-*) ;; \
dgux-*) ;; \
hp-ux-*) ;; \
sco*) ;; \
*) echo 'ranlib "$main"' ;; \
esac \
) > makelib
chmod 755 makelib
( cat warn-auto.sh; \
echo exec "`head -1 conf-cc`" -fPIC '-c ${1+"$@"}' \
) > compile
chmod 755 compile
( cat warn-auto.sh; \
echo 'main="$1"; shift'; \
echo exec "`head -1 conf-ld`" \
'-o "$main" "$main".o ${1+"$@"}' \
) > load
chmod 755 load
( ( ./compile tryulong32.c && ./load tryulong32 && \
./tryulong32 ) >/dev/null 2>&1 \
&& cat uint32.h2 || cat uint32.h1 ) > uint32.h
rm -f tryulong32.o tryulong32
./compile cdb_hash.c
./compile cdb_unpack.c
./compile cdb_seek.c
./makelib cdb.a cdb_hash.o cdb_unpack.o cdb_seek.o
./compile cdbmake_pack.c
./compile cdbmake_hash.c
./compile cdbmake_add.c
./makelib cdbmake.a cdbmake_pack.o cdbmake_hash.o \
cdbmake_add.o
make[2]: Leaving directory `/usr/tmp/vpopmail-5.4.30/cdb'
make[2]: Entering directory `/usr/tmp/vpopmail-5.4.30'
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-vpopmail.o `test -f 'vpopmail.c' || echo './'`vpopmail.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-md5.o `test -f 'md5.c' || echo './'`md5.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-bigdir.o `test -f 'bigdir.c' || echo './'`bigdir.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-vauth.o `test -f 'vauth.c' || echo './'`vauth.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-file_lock.o `test -f 'file_lock.c' || echo './'`file_lock.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-vpalias.o `test -f 'vpalias.c' || echo './'`vpalias.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-seek.o `test -f 'seek.c' || echo './'`seek.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-vlimits.o `test -f 'vlimits.c' || echo './'`vlimits.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-maildirquota.o `test -f 'maildirquota.c' || echo './'`maildirquota.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-vutil.o `test -f 'vutil.c' || echo './'`vutil.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-vlistlib.o `test -f 'vlistlib.c' || echo './'`vlistlib.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-backfill.o `test -f 'backfill.c' || echo './'`backfill.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-client.o `test -f 'client.c' || echo './'`client.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-conf.o `test -f 'conf.c' || echo './'`conf.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -fPIC -c -o libvpopmail_a-ippp.o `test -f 'ippp.c' || echo './'`ippp.c
rm -f libvpopmail.a
ar cru libvpopmail.a libvpopmail_a-vpopmail.o libvpopmail_a-md5.o libvpopmail_a-bigdir.o libvpopmail_a-vauth.o libvpopmail_a-file_lock.o libvpopmail_a-vpalias.o libvpopmail_a-seek.o libvpopmail_a-vlimits.o libvpopmail_a-maildirquota.o libvpopmail_a-vutil.o libvpopmail_a-vlistlib.o libvpopmail_a-backfill.o libvpopmail_a-client.o libvpopmail_a-conf.o libvpopmail_a-ippp.o cdb/*.o
ranlib libvpopmail.a
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vchkpw.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -c md5.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -c hmac_md5.c
gcc -o vchkpw vchkpw.o md5.o hmac_md5.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vdelivermail.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -c maildirquota.c
gcc -o vdelivermail vdelivermail.o maildirquota.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c clearopensmtp.c
gcc -o clearopensmtp clearopensmtp.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vadddomain.c
gcc -o vadddomain vadddomain.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vdeldomain.c
gcc -o vdeldomain vdeldomain.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vpasswd.c
gcc -o vpasswd vpasswd.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vadduser.c
gcc -o vadduser vadduser.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vdeluser.c
gcc -o vdeluser vdeluser.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vaddaliasdomain.c
gcc -o vaddaliasdomain vaddaliasdomain.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vsetuserquota.c
gcc -o vsetuserquota vsetuserquota.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vpopbull.c
gcc -o vpopbull vpopbull.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vdeloldusers.c
gcc -o vdeloldusers vdeloldusers.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vmoduser.c
gcc -o vmoduser vmoduser.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c valias.c
gcc -o valias valias.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vuserinfo.c
gcc -o vuserinfo vuserinfo.o maildirquota.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vmkpasswd.c
gcc -o vmkpasswd vmkpasswd.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vipmap.c
gcc -o vipmap vipmap.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vdominfo.c
gcc -o vdominfo vdominfo.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vconvert.c
gcc -o vconvert vconvert.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vkill.c
gcc -o vkill vkill.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vmoddomlimits.c
gcc -o vmoddomlimits vmoddomlimits.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vchangepw.c
gcc -o vchangepw vchangepw.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c dotqmail2valias.c
gcc -o dotqmail2valias dotqmail2valias.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vpopmaild.c
gcc -o vpopmaild vpopmaild.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vlist.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vlistlib.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vutil.c
gcc -o vlist vlist.o vlistlib.o vutil.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c authvchkpw.c
gcc -o authvchkpw authvchkpw.o hmac_md5.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
gcc -I. -I/usr/include/mysql -I. -I. -I. -c vusagec.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -c client.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -c conf.c
gcc -I. -I/usr/include/mysql -I. -I. -I. -c ippp.c
gcc -o vusagec vusagec.o client.o conf.o ippp.o libvpopmail.a -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt
make[2]: Leaving directory `/usr/tmp/vpopmail-5.4.30'
make[1]: Leaving directory `/usr/tmp/vpopmail-5.4.30'
deepfuture@ubuntu-sdp:/usr/tmp/vpopmail-5.4.30$ sudo make install
Making install in cdb
make[1]: Entering directory `/usr/tmp/vpopmail-5.4.30/cdb'
make[1]: Nothing to be done for `install'.
make[1]: Leaving directory `/usr/tmp/vpopmail-5.4.30/cdb'
make[1]: Entering directory `/usr/tmp/vpopmail-5.4.30'
make[2]: Entering directory `/usr/tmp/vpopmail-5.4.30'
for d in bin doc etc include lib ; do \
if test ! -d /var/vpopmail/$d; then \
/usr/bin/install -c -d -g vchkpw -m 0755 -o vpopmail \
/var/vpopmail/$d ; \
fi ; \
done
/usr/bin/install -c -d -g vchkpw -m 0700 -o vpopmail \
/var/vpopmail/domains
echo "-I/var/vpopmail/include" > \
/var/vpopmail/etc/inc_deps
echo "-L/var/vpopmail/lib -lvpopmail -Xlinker -R -Xlinker /usr/lib/mysql -L/usr/lib/mysql -lmysqlclient -lz -lm -lcrypt " > \
/var/vpopmail/etc/lib_deps
if test ! -r ; then \
/usr/bin/install -c -o vpopmail -m 0644 -g vchkpw \
vusagec.conf ; \
fi
if test ! -r /var/vpopmail/etc/vlimits.default; then \
/usr/bin/install -c -o vpopmail -m 0644 -g vchkpw \
vlimits.default /var/vpopmail/etc/vlimits.default; \
fi
if test "1" = "1"; then \
if test ! -r /var/vpopmail/etc/vpopmail.mysql; then \
echo "# MYSQL CONNECTION SETTINGS FOR VPOPMAIL" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "#" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# Line 1 defines the connection to use for database reads," >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# Line 2 defines the connection to use for database updates/writes." >> /var/vpopmail/etc/vpopmail.mysql; \
echo "#" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# If you omit line 2, then the same settings will be" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# used for both read and write." >> /var/vpopmail/etc/vpopmail.mysql; \
echo "#" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# settings for each line:" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# host|port|user|password|database" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "#" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "localhost|0|root|secret|vpopmail" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "#" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# Note:" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# The value of host may be either a hostname or an IP address." >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# If host is 'localhost', then sockets (Unix) or named pipes (Windows)" >> /var/vpopmail/etc/vpopmail.mysql; \
echo "# will be used instead of TCP/IP to connect to the server." >> /var/vpopmail/etc/vpopmail.mysql; \
fi ; \
chown vpopmail /var/vpopmail/etc/vpopmail.mysql ; \
chgrp vchkpw /var/vpopmail/etc/vpopmail.mysql ; \
chmod 0640 /var/vpopmail/etc/vpopmail.mysql ; \
fi
/usr/bin/install -c -o root -m 0644 \
libvpopmail.a /var/vpopmail/lib/libvpopmail.a
/usr/bin/install -c -o root -m 0444 \
config.h /var/vpopmail/include/vpopmail_config.h
for include in vpopmail.h config.h vauth.h vlimits.h storage.h client.h conf.h ippp.h ; do \
/usr/bin/install -c -o root -m 0444 $include \
/var/vpopmail/include/ ; \
done
/usr/bin/install -c -d /var/vpopmail/doc/man_html
/usr/bin/install -c -d /var/vpopmail/doc/doc_html
/usr/bin/install -c -o vpopmail -m 0444 -g vchkpw \
doc/man_html/*.* /var/vpopmail/doc/man_html/
/usr/bin/install -c -o vpopmail -m 0444 -g vchkpw \
doc/doc_html/*.* /var/vpopmail/doc/doc_html/
test -z "/var/vpopmail/bin" || mkdir -p -- "/var/vpopmail/bin"
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vchkpw' '/var/vpopmail/bin/vchkpw'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vdelivermail' '/var/vpopmail/bin/vdelivermail'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'clearopensmtp' '/var/vpopmail/bin/clearopensmtp'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vadddomain' '/var/vpopmail/bin/vadddomain'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vdeldomain' '/var/vpopmail/bin/vdeldomain'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vpasswd' '/var/vpopmail/bin/vpasswd'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vadduser' '/var/vpopmail/bin/vadduser'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vdeluser' '/var/vpopmail/bin/vdeluser'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vaddaliasdomain' '/var/vpopmail/bin/vaddaliasdomain'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vsetuserquota' '/var/vpopmail/bin/vsetuserquota'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vpopbull' '/var/vpopmail/bin/vpopbull'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vdeloldusers' '/var/vpopmail/bin/vdeloldusers'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vmoduser' '/var/vpopmail/bin/vmoduser'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'valias' '/var/vpopmail/bin/valias'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vuserinfo' '/var/vpopmail/bin/vuserinfo'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vmkpasswd' '/var/vpopmail/bin/vmkpasswd'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vipmap' '/var/vpopmail/bin/vipmap'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vdominfo' '/var/vpopmail/bin/vdominfo'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vconvert' '/var/vpopmail/bin/vconvert'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vkill' '/var/vpopmail/bin/vkill'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vmoddomlimits' '/var/vpopmail/bin/vmoddomlimits'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vchangepw' '/var/vpopmail/bin/vchangepw'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'dotqmail2valias' '/var/vpopmail/bin/dotqmail2valias'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vpopmaild' '/var/vpopmail/bin/vpopmaild'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vlist' '/var/vpopmail/bin/vlist'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'authvchkpw' '/var/vpopmail/bin/authvchkpw'
/usr/bin/install -c -o vpopmail -m 711 -g vchkpw 'vusagec' '/var/vpopmail/bin/vusagec'
make[2]: Leaving directory `/usr/tmp/vpopmail-5.4.30'
make[1]: Leaving directory `/usr/tmp/vpopmail-5.4.30'
****************************************************
If you plan to use the vpopmail usage daemon
run the following commands:
cd vusaged && ./configure && make
Then follow the INSTALL file to install
****************************************************
deepfuture@ubuntu-sdp:/usr/tmp/vpopmail-5.4.30$ cd /var/vpopmail
deepfuture@ubuntu-sdp:/var/vpopmail$ ls
bin doc domains etc include lib
deepfuture@ubuntu-sdp:/var/vpopmail$
十一、安装tcpserver
deepfuture@ubuntu-sdp:/usr/tmp$ sudo wget http://djbware.csi.hu/patches/ucspi-tcp-0.88.a_record.patch
--2010-02-11 12:27:23-- http://djbware.csi.hu/patches/ucspi-tcp-0.88.a_record.patch
Resolving djbware.csi.hu... 141.225.8.55
Connecting to djbware.csi.hu|141.225.8.55|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1828 (1.8K) [text/plain]
Saving to: `ucspi-tcp-0.88.a_record.patch'
100%[===================================================================================>] 1,828 --.-K/s in 0.006s
2010-02-11 12:27:24 (278 KB/s) - `ucspi-tcp-0.88.a_record.patch' saved [1828/1828]
deepfuture@ubuntu-sdp:/usr/tmp$ sudo wget http://djbware.csi.hu/patches/ucspi-tcp-0.88.errno.patch
--2010-02-11 12:27:32-- http://djbware.csi.hu/patches/ucspi-tcp-0.88.errno.patch
Resolving djbware.csi.hu... 141.225.8.55
Connecting to djbware.csi.hu|141.225.8.55|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 330 [text/plain]
Saving to: `ucspi-tcp-0.88.errno.patch'
100%[===================================================================================>] 330 --.-K/s in 0s
2010-02-11 12:27:33 (14.0 MB/s) - `ucspi-tcp-0.88.errno.patch' saved [330/330]
deepfuture@ubuntu-sdp:/usr/tmp$ sudo wget http://djbware.csi.hu/patches/ucspi-tcp-0.88.nobase.patch
--2010-02-11 12:27:47-- http://djbware.csi.hu/patches/ucspi-tcp-0.88.nobase.patch
Resolving djbware.csi.hu... 141.225.8.55
Connecting to djbware.csi.hu|141.225.8.55|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 714 [text/plain]
Saving to: `ucspi-tcp-0.88.nobase.patch'
100%[===================================================================================>] 714 --.-K/s in 0s
2010-02-11 12:27:48 (30.1 MB/s) - `ucspi-tcp-0.88.nobase.patch' saved [714/714]
deepfuture@ubuntu-sdp:/usr/tmp$ wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
deepfuture@ubuntu-sdp:/usr/tmp$ sudo tar xvfz ucspi-tcp-0.88.tar.gz
ucspi-tcp-0.88
ucspi-tcp-0.88/README
ucspi-tcp-0.88/TODO
ucspi-tcp-0.88/CHANGES
ucspi-tcp-0.88/VERSION
ucspi-tcp-0.88/FILES
ucspi-tcp-0.88/SYSDEPS
ucspi-tcp-0.88/TARGETS
ucspi-tcp-0.88/Makefile
ucspi-tcp-0.88/conf-cc
ucspi-tcp-0.88/conf-ld
ucspi-tcp-0.88/conf-home
ucspi-tcp-0.88/tcpserver.c
ucspi-tcp-0.88/tcprules.c
ucspi-tcp-0.88/tcprulescheck.c
ucspi-tcp-0.88/recordio.c
ucspi-tcp-0.88/argv0.c
ucspi-tcp-0.88/tcpclient.c
ucspi-tcp-0.88/[email protected]
ucspi-tcp-0.88/[email protected]
ucspi-tcp-0.88/[email protected]
ucspi-tcp-0.88/[email protected]
ucspi-tcp-0.88/tcpcat.sh
ucspi-tcp-0.88/mconnect.sh
ucspi-tcp-0.88/mconnect-io.c
ucspi-tcp-0.88/addcr.c
ucspi-tcp-0.88/delcr.c
ucspi-tcp-0.88/fixcrio.c
ucspi-tcp-0.88/rblsmtpd.c
ucspi-tcp-0.88/remoteinfo.h
ucspi-tcp-0.88/remoteinfo.c
ucspi-tcp-0.88/timeoutconn.h
ucspi-tcp-0.88/timeoutconn.c
ucspi-tcp-0.88/rules.h
ucspi-tcp-0.88/rules.c
ucspi-tcp-0.88/rts.sh
ucspi-tcp-0.88/rts.tests
ucspi-tcp-0.88/rts.exp
ucspi-tcp-0.88/alloc.c
ucspi-tcp-0.88/alloc.h
ucspi-tcp-0.88/alloc_re.c
ucspi-tcp-0.88/auto-str.c
ucspi-tcp-0.88/auto_home.h
ucspi-tcp-0.88/buffer.c
ucspi-tcp-0.88/buffer.h
ucspi-tcp-0.88/buffer_0.c
ucspi-tcp-0.88/buffer_1.c
ucspi-tcp-0.88/buffer_2.c
ucspi-tcp-0.88/buffer_copy.c
ucspi-tcp-0.88/buffer_get.c
ucspi-tcp-0.88/buffer_put.c
ucspi-tcp-0.88/byte.h
ucspi-tcp-0.88/byte_chr.c
ucspi-tcp-0.88/byte_copy.c
ucspi-tcp-0.88/byte_cr.c
ucspi-tcp-0.88/byte_diff.c
ucspi-tcp-0.88/byte_rchr.c
ucspi-tcp-0.88/byte_zero.c
ucspi-tcp-0.88/case.h
ucspi-tcp-0.88/case_diffb.c
ucspi-tcp-0.88/case_diffs.c
ucspi-tcp-0.88/cdb.c
ucspi-tcp-0.88/cdb.h
ucspi-tcp-0.88/cdb_hash.c
ucspi-tcp-0.88/cdb_make.c
ucspi-tcp-0.88/cdb_make.h
ucspi-tcp-0.88/chkshsgr.c
ucspi-tcp-0.88/choose.sh
ucspi-tcp-0.88/commands.c
ucspi-tcp-0.88/commands.h
ucspi-tcp-0.88/dns.h
ucspi-tcp-0.88/dns_dfd.c
ucspi-tcp-0.88/dns_domain.c
ucspi-tcp-0.88/dns_dtda.c
ucspi-tcp-0.88/dns_ip.c
ucspi-tcp-0.88/dns_ipq.c
ucspi-tcp-0.88/dns_name.c
ucspi-tcp-0.88/dns_nd.c
ucspi-tcp-0.88/dns_packet.c
ucspi-tcp-0.88/dns_random.c
ucspi-tcp-0.88/dns_rcip.c
ucspi-tcp-0.88/dns_rcrw.c
ucspi-tcp-0.88/dns_resolve.c
ucspi-tcp-0.88/dns_sortip.c
ucspi-tcp-0.88/dns_transmit.c
ucspi-tcp-0.88/dns_txt.c
ucspi-tcp-0.88/env.c
ucspi-tcp-0.88/env.h
ucspi-tcp-0.88/error.c
ucspi-tcp-0.88/error.h
ucspi-tcp-0.88/error_str.c
ucspi-tcp-0.88/exit.h
ucspi-tcp-0.88/fd.h
ucspi-tcp-0.88/fd_copy.c
ucspi-tcp-0.88/fd_move.c
ucspi-tcp-0.88/find-systype.sh
ucspi-tcp-0.88/fmt.h
ucspi-tcp-0.88/fmt_ulong.c
ucspi-tcp-0.88/fork.h1
ucspi-tcp-0.88/fork.h2
ucspi-tcp-0.88/gen_alloc.h
ucspi-tcp-0.88/gen_allocdefs.h
ucspi-tcp-0.88/getln.c
ucspi-tcp-0.88/getln.h
ucspi-tcp-0.88/getln2.c
ucspi-tcp-0.88/hassgact.h1
ucspi-tcp-0.88/hassgact.h2
ucspi-tcp-0.88/hassgprm.h1
ucspi-tcp-0.88/hassgprm.h2
ucspi-tcp-0.88/hasshsgr.h1
ucspi-tcp-0.88/hasshsgr.h2
ucspi-tcp-0.88/haswaitp.h1
ucspi-tcp-0.88/haswaitp.h2
ucspi-tcp-0.88/hier.c
ucspi-tcp-0.88/install.c
ucspi-tcp-0.88/instcheck.c
ucspi-tcp-0.88/iopause.c
ucspi-tcp-0.88/iopause.h1
ucspi-tcp-0.88/iopause.h2
ucspi-tcp-0.88/ip4.h
ucspi-tcp-0.88/ip4_fmt.c
ucspi-tcp-0.88/ip4_scan.c
ucspi-tcp-0.88/ndelay.h
ucspi-tcp-0.88/ndelay_off.c
ucspi-tcp-0.88/ndelay_on.c
ucspi-tcp-0.88/open.h
ucspi-tcp-0.88/open_read.c
ucspi-tcp-0.88/open_trunc.c
ucspi-tcp-0.88/open_write.c
ucspi-tcp-0.88/openreadclose.c
ucspi-tcp-0.88/openreadclose.h
ucspi-tcp-0.88/pathexec.h
ucspi-tcp-0.88/pathexec_env.c
ucspi-tcp-0.88/pathexec_run.c
ucspi-tcp-0.88/prot.c
ucspi-tcp-0.88/prot.h
ucspi-tcp-0.88/readclose.c
ucspi-tcp-0.88/readclose.h
ucspi-tcp-0.88/readwrite.h
ucspi-tcp-0.88/scan.h
ucspi-tcp-0.88/scan_ulong.c
ucspi-tcp-0.88/seek.h
ucspi-tcp-0.88/seek_set.c
ucspi-tcp-0.88/select.h1
ucspi-tcp-0.88/select.h2
ucspi-tcp-0.88/sgetopt.c
ucspi-tcp-0.88/sgetopt.h
ucspi-tcp-0.88/sig.c
ucspi-tcp-0.88/sig.h
ucspi-tcp-0.88/sig_block.c
ucspi-tcp-0.88/sig_catch.c
ucspi-tcp-0.88/sig_pause.c
ucspi-tcp-0.88/socket.h
ucspi-tcp-0.88/socket_accept.c
ucspi-tcp-0.88/socket_bind.c
ucspi-tcp-0.88/socket_conn.c
ucspi-tcp-0.88/socket_delay.c
ucspi-tcp-0.88/socket_listen.c
ucspi-tcp-0.88/socket_local.c
ucspi-tcp-0.88/socket_opts.c
ucspi-tcp-0.88/socket_remote.c
ucspi-tcp-0.88/socket_tcp.c
ucspi-tcp-0.88/socket_udp.c
ucspi-tcp-0.88/str.h
ucspi-tcp-0.88/str_chr.c
ucspi-tcp-0.88/str_diff.c
ucspi-tcp-0.88/str_len.c
ucspi-tcp-0.88/str_start.c
ucspi-tcp-0.88/stralloc.h
ucspi-tcp-0.88/stralloc_cat.c
ucspi-tcp-0.88/stralloc_catb.c
ucspi-tcp-0.88/stralloc_cats.c
ucspi-tcp-0.88/stralloc_copy.c
ucspi-tcp-0.88/stralloc_eady.c
ucspi-tcp-0.88/stralloc_opyb.c
ucspi-tcp-0.88/stralloc_opys.c
ucspi-tcp-0.88/stralloc_pend.c
ucspi-tcp-0.88/strerr.h
ucspi-tcp-0.88/strerr_die.c
ucspi-tcp-0.88/strerr_sys.c
ucspi-tcp-0.88/subgetopt.c
ucspi-tcp-0.88/subgetopt.h
ucspi-tcp-0.88/tai.h
ucspi-tcp-0.88/tai_pack.c
ucspi-tcp-0.88/taia.h
ucspi-tcp-0.88/taia_add.c
ucspi-tcp-0.88/taia_approx.c
ucspi-tcp-0.88/taia_frac.c
ucspi-tcp-0.88/taia_less.c
ucspi-tcp-0.88/taia_now.c
ucspi-tcp-0.88/taia_pack.c
ucspi-tcp-0.88/taia_sub.c
ucspi-tcp-0.88/taia_uint.c
ucspi-tcp-0.88/trycpp.c
ucspi-tcp-0.88/trylsock.c
ucspi-tcp-0.88/trypoll.c
ucspi-tcp-0.88/trysgact.c
ucspi-tcp-0.88/trysgprm.c
ucspi-tcp-0.88/tryshsgr.c
ucspi-tcp-0.88/trysysel.c
ucspi-tcp-0.88/tryulong32.c
ucspi-tcp-0.88/tryulong64.c
ucspi-tcp-0.88/tryvfork.c
ucspi-tcp-0.88/trywaitp.c
ucspi-tcp-0.88/uint16.h
ucspi-tcp-0.88/uint16_pack.c
ucspi-tcp-0.88/uint16_unpack.c
ucspi-tcp-0.88/uint32.h1
ucspi-tcp-0.88/uint32.h2
ucspi-tcp-0.88/uint32_pack.c
ucspi-tcp-0.88/uint32_unpack.c
ucspi-tcp-0.88/uint64.h1
ucspi-tcp-0.88/uint64.h2
ucspi-tcp-0.88/wait.h
ucspi-tcp-0.88/wait_nohang.c
ucspi-tcp-0.88/wait_pid.c
ucspi-tcp-0.88/warn-auto.sh
ucspi-tcp-0.88/warn-shsgr
ucspi-tcp-0.88/x86cpuid.c
deepfuture@ubuntu-sdp:/usr/tmp$
deepfuture@ubuntu-sdp:/usr/tmp$ sudo patch -p0 <ucspi-tcp-0.88.a_record.patch
patching file ucspi-tcp-0.88/rblsmtpd.c
deepfuture@ubuntu-sdp:/usr/tmp$ sudo patch -p0 <ucspi-tcp-0.88.errno.patch
patching file ucspi-tcp-0.88/error.h
deepfuture@ubuntu-sdp:/usr/tmp$ sudo patch -p0 <ucspi-tcp-0.88.nobase.patch
patching file ucspi-tcp-0.88/rblsmtpd.c
Hunk #2 succeeded at 228 (offset 38 lines).
deepfuture@ubuntu-sdp:/usr/tmp/ucspi-tcp-0.88$ sudo make
( cat warn-auto.sh; \
echo 'main="$1"; shift'; \
echo exec "`head -1 conf-ld`" \
'-o "$main" "$main".o ${1+"$@"}' \
) > load
chmod 755 load
( cat warn-auto.sh; \
echo exec "`head -1 conf-cc`" '-c ${1+"$@"}' \
) > compile
chmod 755 compile
cat warn-auto.sh choose.sh \
| sed s}HOME}"`head -1 conf-home`"}g \
> choose
chmod 755 choose
./choose clr trypoll iopause.h1 iopause.h2 > iopause.h
./choose clr tryulong64 uint64.h1 uint64.h2 > uint64.h
./compile tcpserver.c
( ( ./compile tryulong32.c && ./load tryulong32 && \
./tryulong32 ) >/dev/null 2>&1 \
&& cat uint32.h2 || cat uint32.h1 ) > uint32.h
rm -f tryulong32.o tryulong32
./compile rules.c
./compile remoteinfo.c
./compile timeoutconn.c
( cat warn-auto.sh; \
echo CC=\'`head -1 conf-cc`\'; \
echo LD=\'`head -1 conf-ld`\'; \
cat find-systype.sh; \
) | sh > systype
( cat warn-auto.sh; \
echo 'main="$1"; shift'; \
echo 'rm -f "$main"'; \
echo 'ar cr "$main" ${1+"$@"}'; \
case "`cat systype`" in \
sunos-5.*) ;; \
unix_sv*) ;; \
irix64-*) ;; \
irix-*) ;; \
dgux-*) ;; \
hp-ux-*) ;; \
sco*) ;; \
*) echo 'ranlib "$main"' ;; \
esac \
) > makelib
chmod 755 makelib
./compile cdb.c
./compile cdb_hash.c
./compile cdb_make.c
./makelib cdb.a cdb.o cdb_hash.o cdb_make.o
./compile dns_dfd.c
./compile dns_domain.c
./compile dns_dtda.c
./compile dns_ip.c
./compile dns_ipq.c
./compile dns_name.c
./compile dns_nd.c
./compile dns_packet.c
./compile dns_random.c
./compile dns_rcip.c
./compile dns_rcrw.c
./compile dns_resolve.c
./compile dns_sortip.c
./compile dns_transmit.c
./compile dns_txt.c
./makelib dns.a dns_dfd.o dns_domain.o dns_dtda.o dns_ip.o \
dns_ipq.o dns_name.o dns_nd.o dns_packet.o dns_random.o \
dns_rcip.o dns_rcrw.o dns_resolve.o dns_sortip.o \
dns_transmit.o dns_txt.o
./choose c trysysel select.h1 select.h2 > select.h
./compile iopause.c
./compile tai_pack.c
./compile taia_add.c
./compile taia_approx.c
./compile taia_frac.c
./compile taia_less.c
./compile taia_now.c
./compile taia_pack.c
./compile taia_sub.c
./compile taia_uint.c
./makelib time.a iopause.o tai_pack.o taia_add.o \
taia_approx.o taia_frac.o taia_less.o taia_now.o \
taia_pack.o taia_sub.o taia_uint.o
./compile alloc.c
alloc.c:3: warning: conflicting types for built-in function ‘malloc’
./compile alloc_re.c
./compile buffer.c
./compile buffer_0.c
./compile buffer_1.c
./compile buffer_2.c
./compile buffer_copy.c
./compile buffer_get.c
./compile buffer_put.c
./compile env.c
./compile error.c
./compile error_str.c
./compile fd_copy.c
./compile fd_move.c
./compile getln.c
./compile getln2.c
./compile ndelay_off.c
./compile ndelay_on.c
./compile open_read.c
./compile open_trunc.c
./compile open_write.c
./compile openreadclose.c
./compile pathexec_env.c
./compile pathexec_run.c
./compile chkshsgr.c
./load chkshsgr
./chkshsgr || ( cat warn-shsgr; exit 1 )
./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
./compile prot.c
./compile readclose.c
./compile seek_set.c
./compile sgetopt.c
./compile sig.c
./choose cl trysgprm hassgprm.h1 hassgprm.h2 > hassgprm.h
./compile sig_block.c
./choose cl trysgact hassgact.h1 hassgact.h2 > hassgact.h
./compile sig_catch.c
./compile sig_pause.c
./compile socket_accept.c
./compile socket_bind.c
./compile socket_conn.c
./compile socket_delay.c
./compile socket_listen.c
./compile socket_local.c
./compile socket_opts.c
./compile socket_remote.c
./compile socket_tcp.c
./compile socket_udp.c
./compile stralloc_cat.c
./compile stralloc_catb.c
./compile stralloc_cats.c
./compile stralloc_copy.c
./compile stralloc_eady.c
./compile stralloc_opyb.c
./compile stralloc_opys.c
./compile stralloc_pend.c
./compile strerr_die.c
./compile strerr_sys.c
./compile subgetopt.c
./choose cl trywaitp haswaitp.h1 haswaitp.h2 > haswaitp.h
./compile wait_nohang.c
./compile wait_pid.c
./makelib unix.a alloc.o alloc_re.o buffer.o buffer_0.o \
buffer_1.o buffer_2.o buffer_copy.o buffer_get.o \
buffer_put.o env.o error.o error_str.o fd_copy.o fd_move.o \
getln.o getln2.o ndelay_off.o ndelay_on.o open_read.o \
open_trunc.o open_write.o openreadclose.o pathexec_env.o \
pathexec_run.o prot.o readclose.o seek_set.o sgetopt.o \
sig.o sig_block.o sig_catch.o sig_pause.o socket_accept.o \
socket_bind.o socket_conn.o socket_delay.o socket_listen.o \
socket_local.o socket_opts.o socket_remote.o socket_tcp.o \
socket_udp.o stralloc_cat.o stralloc_catb.o stralloc_cats.o \
stralloc_copy.o stralloc_eady.o stralloc_opyb.o \
stralloc_opys.o stralloc_pend.o strerr_die.o strerr_sys.o \
subgetopt.o wait_nohang.o wait_pid.o
./compile byte_chr.c
./compile byte_copy.c
./compile byte_cr.c
./compile byte_diff.c
./compile byte_rchr.c
./compile byte_zero.c
./compile case_diffb.c
./compile case_diffs.c
./compile fmt_ulong.c
./compile ip4_fmt.c
./compile ip4_scan.c
./compile scan_ulong.c
./compile str_chr.c
./compile str_diff.c
./compile str_len.c
./compile str_start.c
./compile uint16_pack.c
./compile uint16_unpack.c
./compile uint32_pack.c
./compile uint32_unpack.c
./makelib byte.a byte_chr.o byte_copy.o byte_cr.o \
byte_diff.o byte_rchr.o byte_zero.o case_diffb.o \
case_diffs.o fmt_ulong.o ip4_fmt.o ip4_scan.o scan_ulong.o \
str_chr.o str_diff.o str_len.o str_start.o uint16_pack.o \
uint16_unpack.o uint32_pack.o uint32_unpack.o
( ( ./compile trylsock.c && \
./load trylsock -lsocket -lnsl ) >/dev/null 2>&1 \
&& echo -lsocket -lnsl || exit 0 ) > socket.lib
rm -f trylsock.o trylsock
./load tcpserver rules.o remoteinfo.o timeoutconn.o cdb.a \
dns.a time.a unix.a byte.a `cat socket.lib`
./compile tcprules.c
./load tcprules cdb.a unix.a byte.a
./compile tcprulescheck.c
tcprulescheck.c: In function ‘found’:
tcprulescheck.c:19: warning: incompatible implicit declaration of built-in function ‘_exit’
tcprulescheck.c:31: warning: incompatible implicit declaration of built-in function ‘_exit’
tcprulescheck.c: In function ‘main’:
tcprulescheck.c:56: warning: incompatible implicit declaration of built-in function ‘_exit’
./load tcprulescheck rules.o cdb.a unix.a byte.a
./compile argv0.c
./load argv0 unix.a byte.a
./compile recordio.c
./load recordio time.a unix.a byte.a
./compile tcpclient.c
./load tcpclient remoteinfo.o timeoutconn.o dns.a time.a \
unix.a byte.a `cat socket.lib`
cat warn-auto.sh [email protected] \
| sed s}HOME}"`head -1 conf-home`"}g \
> who@
chmod 755 who@
cat warn-auto.sh [email protected] \
| sed s}HOME}"`head -1 conf-home`"}g \
> date@
chmod 755 date@
cat warn-auto.sh [email protected] \
| sed s}HOME}"`head -1 conf-home`"}g \
> finger@
chmod 755 finger@
cat warn-auto.sh [email protected] \
| sed s}HOME}"`head -1 conf-home`"}g \
> http@
chmod 755 http@
cat warn-auto.sh tcpcat.sh \
| sed s}HOME}"`head -1 conf-home`"}g \
> tcpcat
chmod 755 tcpcat
cat warn-auto.sh mconnect.sh \
| sed s}HOME}"`head -1 conf-home`"}g \
> mconnect
chmod 755 mconnect
./choose cl tryvfork fork.h1 fork.h2 > fork.h
./compile mconnect-io.c
./load mconnect-io unix.a byte.a
./compile addcr.c
./load addcr unix.a byte.a
./compile delcr.c
./load delcr unix.a byte.a
./compile fixcrio.c
./load fixcrio time.a unix.a byte.a
./compile rblsmtpd.c
./compile commands.c
./load rblsmtpd commands.o dns.a time.a unix.a byte.a \
`cat socket.lib`
cat warn-auto.sh rts.sh \
| sed s}HOME}"`head -1 conf-home`"}g \
> rts
chmod 755 rts
./compile install.c
./compile hier.c
./compile auto-str.c
auto-str.c:8: warning: conflicting types for built-in function ‘puts’
./load auto-str unix.a byte.a
./auto-str auto_home `head -1 conf-home` > auto_home.c
./compile auto_home.c
./load install hier.o auto_home.o unix.a byte.a
./compile instcheck.c
./load instcheck hier.o auto_home.o unix.a byte.a
十二、配置daemontools
deepfuture@ubuntu-sdp:~$ sudo mkdir /var/daemontool/service/qmail-send
deepfuture@ubuntu-sdp:~$ sudo mkdir /var/daemontool/service/qmail-smtpd
deepfuture@ubuntu-sdp:~$ sudo mkdir /var/daemontool/service/qmail-pop3d
以下命令的参数一定要注意大小写,否则daemontools启动qmail相关守护进程管理时会出现错误,导致无法启动qmail相关守护进程:
deepfuture@ubuntu-sdp:/var/vpopmail$#sudo su
root@ubuntu-sdp:/var/vpopmail$# echo ./Maildir/ >/var/qmail/control/mydelivery
deepfuture@ubuntu-sdp:/$ sudo nano /var/daemontool/service/qmail-send/run
#!/bin/sh
export PATH=$PATH:/var/qmail/bin
qmail-start "`cat /var/qmail/control/mydelivery`" &
deepfuture@ubuntu-sdp:/usr/tmp/ucspi-tcp-0.88$ sudo nano /var/daemontool/service/qmail-pop3d/run
#!/bin/sh
/usr/local/bin/tcpserver -l 0 -U -c 100 -v -R 0 pop3 /var/qmail/bin/qmail-popup deepfuture.imwork.net /bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir
deepfuture@ubuntu-sdp:/usr/tmp/ucspi-tcp-0.88$ sudo nano /var/daemontool/service/qmail-smtpd/run
#!/bin/sh
QMAILDUID='id -u vpopmail'
NOFILESGID='id -g vpopmail'
/usr/local/bin/tcpserver -H -r -c 100 -l 0 -t 1 -v -p -x /etc/tcp.smtp.cdb -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/qmail-smtpd deepfuture.imwork.net /bin/vchkpw /bin/true
deepfuture@ubuntu-sdp:/$ sudo ln -s /var/vpopmail/bin/vchkpw /bin/vchkpw
[sudo] password for deepfuture:
deepfuture@ubuntu-sdp:/$
deepfuture@ubuntu-sdp:/usr/tmp/ucspi-tcp-0.88$ sudo chmod 0755 /var/daemontool/service/qmail-send/run
deepfuture@ubuntu-sdp:/usr/tmp/ucspi-tcp-0.88$ sudo chmod 0755 /var/daemontool/service/qmail-smtpd/run
deepfuture@ubuntu-sdp:/usr/tmp/ucspi-tcp-0.88$ sudo chmod 0755 /var/daemontool/service/qmail-pop3d/run