1) Instalar pacotes de pré-requisitos para compilação e funcionamento:
- Suíte para compilação: gcc, make, autoconf, automake, patch, patchutils etc.
- Módulos do Perl: libdigest-hmac-perl, libdigest-sha1-perl, libnet-dns-perl, libhtml-parser-perl, libhtml-tagset-perl
- Outros pacotes: libssl-dev, debconf, dpkg-dev, fakeroot, sudo, groff-base
2) Fazer download manual dos pacotes qmail-src e ucspi-tcp-src (apenas AMD64):
http://http.us.debian.org/debian/pool/non-free/q/qmail/qmail-src_1.03-38_all.deb
http://http.us.debian.org/debian/pool/.../ucspi-tcp-src_0.88-9_all.deb
3) Remover o MTA default (Exim ou Postfix), ignorando as dependências, já que depois o Qmail irá atendê-las:
# dpkg --ignore-depends=exim4 --purge exim4
# dpkg --ignore-depends=exim4-daemon-light --purge exim4-daemon-light
# dpkg --ignore-depends=exim4-daemon-light --purge exim4-base
# dpkg --ignore-depends=exim4-daemon-light --purge exim4-config
ou
# dpkg --ignore-depends=postfix --purge postfix
4) Opcional: limpar spool e logs antigos, se o dpkg já não o tiver feito.
5) Opcional: exportar variáveis de ambiente CFLAGS e CXXFLAGS para compilação otimizada para a máquina (maior performance).
6) Compilar e instalar o ucspi-tcp-src:
# dpkg -i ucspi-tcp-src_0.88-9_all.deb
# build-ucspi-tcp
7) Puxar e descompactar os patches do Qmail do seguinte endereço:
http://megaz.arbuz.com/download/qmail_patches.tar.gz
Vamos aplicar os seguintes patches:
- qmail-big-ext-todo.patch
- qmail-big-concurrency.patch
- qmail-doublebounce-trim.patch
- qmail-1.03-pop3d-stat.patch
- qmail-bounce.patch
- qmail-bouncecontrol-1.03.patch
- qmail-accept-5xx.patch
Para uma descrição e justificativa de cada patch, leia os sites de referência e o código-fonte do patch. Outros patches já foram aplicados "automagicamente" pelo build-qmail. Com isso, o Qmail passa a ter todos os patches recomendados pelo autor, além de alguns outros para incrementar ainda mais suas funcionalidades.
8) Compilar e instalar o qmail-src:
# dpkg -i qmail-src_1.03-38_all.deb
# build-qmail
Na parte "This can take long time, depending on your machine", não aperte ENTER, aguarde.
9) Aplicar os patches:
Abra uma outra shell como root, para aplicarmos os patches. Mude para o diretório de compilação do Qmail:
# cd /tmp/qmail/qmail-1.03
Aplique os patches, de acordo com o local onde foram descompactados. No meu caso:
# patch < /root/qmail/qmail_patches/qmail-big-ext-todo.patch
E assim por diante com os demais patches.
10) Alterar arquivos na árvore do Qmail para correta compilação e geração do pacote .deb:
a) conf-spawn: alterar a primeira linha para 500.
b) debian/debianize-binary-tree: adicionar "|qmail-todo" após "sendmail".
11) Continuar com o build do Qmail, na shell original. Instale o pacote após o build.
PRONTO! Qmail + patches corretamente compilado e instalado, "the Debian way", em arquitetura AMD64!
12) Configuração do Qmail e "performance tuning" para um sistema com alta taxa de envio de e-mails. Esta é apenas uma referência, ajuste os parâmetros de acordo com suas necessidades. Leia a documentação do Qmail e dos patches para entender o por quê de tais parâmetros. Talvez você precise alterar outros arquivos de configuração do Qmail; leia o manual e verifique se estão corretos. O Debian geralmente já os configura corretamente.
# echo 400 >concurrencylocal
# echo 400 >concurrencyremote
# echo 10000 >bouncemaxbytes
13) Opcional: desabilitar o log do Qmail (apenas para sistemas que não precisam deles), e remover (ou aumentar) o "ulimit" na inicialização do mesmo. Somente faça isso se você tiver certeza do que está fazendo!
Editar o arquivo /etc/init.d/qmail, e:
a) Comentar todas as linhas "logger".
b) Remover todas as referências à variável "$logger".
c) Comentar a linha "ulimit -v 16384" (ou aumentar o valor).
14) Opcional: otimize todo o seu sistema, desde o kernel, já que a performance do Qmail (e qualquer outro serviço) depende disso. Há várias configurações a fazer; isso eu deixo para seu divertimento.
Referências