CentOS4.x Postfix-2.1

Quotaパッチ適用済みPostfixのRPMの作成を行います

Postfixをバーチャルで運用すると、Maildir形式の場合メールボックスの容量制限がうまくいかなくなるらしい

ソースRPMからパッチを適用したRPMを作成する手順を示します

作業の流れ

作業はすべて一般ユーザにて行います

一般ユーザでSRPMのBUILDを行える様にするにはroot以外でRPMのbuildができる様にするを参照

  • ソースRPMの入手
  • ソースRPMのインストール
  • Quotaパッチの入手/配置
  • SPECファイルの変更
  • RPMの作成(BUILD)

注意

yumの自動更新設定等をおこなっていると、postfixの更新があると自動的に更新されてしまい、ここで行った事がすべて無効になってしまいます

yumの自動更新対象からpostfixをはずしたい場合は/etc/yum.confの[main]セクションに以下を追加します

exclude=postfix*

詳しくは、yumで自動更新しないパッケージを指定するを参照

ソースRPMの入手

postfixのSRPMを ミラーサイトより、入手します

執筆時点での最新は、postfix-2.1.5-4.2です

$ wget http://ftp.riken.jp/Linux/caos/centos/4.1/os/SRPMS/postfix-2.1.5-4.2.RHEL4.src.rpm

ソースRPMのインストール

以下を実行して、入手したソースRPMをインストール(展開)します

$ rpm -ivh postfix-2.1.5-4.2.RHEL4.src.rpm

これで、${HOME}/rpm以下にSPECファイル及びソースファイルが展開されます

Quotaパッチの入手/配置

QuotaパッチをPostfix VDAからバージョンに対応したパッチを入手します

今回試すPostfixのバージョンは2.1.5の為、postfix-2.1.5-trash.patch.gzをダウンロードし、~/rpm/SOURCES/下に配置・解凍します

$ cd ${HOME}/rpm/SOURCES
$ wget http://web.onda.com.br/nadal/postfix/VDA/postfix-2.1.5-trash.patch.gz
$ gunzip -d postfix-2.1.5-trash.patch.gz

これで、${HOME}/rpm/SOURCES/下に、postfix-2.1.5-trash.patch が作成されます

SPECファイルの変更

SPECファイルである${HOME}/rpm/SPECS/postfix.specの変更を行います

以下の様に"patch8"の部分を追加し、RPMのBUILD時にQuotaパッチを適用する様にします

%define LDAP 2
%define MYSQL 0
%define PCRE 1
%define SASL 2
%define TLS 1
%define IPV6 1
%define POSTDROP_GID 90
%define PFLOGSUMM 1
   :       :
   :       :
   :       :
   :       :
# Patches

Patch1: postfix-2.1.1-config.patch
Patch2: postfix-smtp_sasl_proto.c.patch
Patch3: postfix-alternatives.patch
Patch4: postfix-hostname-fqdn.patch
Patch5: postfix-2.1.1-pie.patch
Patch6: postfix-2.1.1-obsolete.patch
Patch7: postfix-2.1.5-aliases.patch
Patch8: postfix-2.1.5-trash.patch
   :       :
   :       :
   :       :
# Apply obligatory patches
%patch2 -p1 -b .auth
%patch3 -p1 -b .alternatives
%patch4 -p1 -b .postfix-hostname-fqdn
%patch5 -p1 -b .pie
%patch6 -p1 -b .obsolete
%patch7 -p1 -b .aliases
%patch8 -p1 -b .trash

%if %{PFLOGSUMM}
gzip -dc %{SOURCE53} | tar xf -
%endif
   :       :
   :       :
   :       :
   :       :

なお、PostgreSQLやMySQL対応も併せて行う場合は、Postfixの導入(PostgreSQL/MySQL対応)でのSPECファイルの変更の部分も合わせて修正する。

RPMの作成(BUILD)

以下を実行します。

$ cd ~/rpm/SPECS
$ rpmbuild -ba postfix.spec

正常終了すると、~/rpm/RPMS/i386/以下に以下のファイルができます

postfix-2.1.5-4.2.RHEL4.i386.rpm
postfix-pflogsumm-2.1.5-4.2.RHEL4.i386.rpm

あとは、rootになり、postfix-2.1.5-4.2.RHEL4.i386.rpmをインストールすればOKです

(*)同一バージョンが導入済みで更新できない場合は、 --force オプションを指定

$ su - 
# rpm -ivh postfix-2.1.5-4.2.RHEL4.i386.rpm             <-  新規インストール
# rpm -Uvh postfix-2.1.5-4.2.RHEL4.i386.rpm             <-  更新

関連ページ