長南です。 # 前のメールの引用はなくてもよいけれど、実行なさったコマンドや、 # 出たエラーはもっと詳しくお書きになった方がたすかります。 さて、postfix-2.2.10-0vl6.src.rpm のリビルドでエラーが出たというのは、 こんな感じだったのではないでしょうか。 gcc -shared -Wl,-soname,dict_mysql.so -o dict_mysql.so dict_mysql.o -lmysqlclient -L. -lutil -lglobal /usr/bin/ld: cannot find -lmysqlclient collect2: ld はステータス 1 で終了しました make: *** [dict_mysql.so] エラー 1 make: *** [update] エラー 1 エラー: /var/tmp/rpm-tmp.27959 の不正な終了ステータス (%build) 当方でも spec ファイルの AUXLIBS に -L/usr/lib/mysql を書き足して みるとか、いろいろやってみたのですが、このエラーがどうしてもなくなり ません。どうするのが本手かわかりませんが、面等臭いので、/usr/lib に /usr/lib/mysql/libmysqlclient.so のリンクを作ってしまいました。 それで当面このエラーは回避できました。しかし、今度は、 gcc -shared -Wl,-soname,dict_pgsql.so -o dict_pgsql.so dict_pgsql.o -lpq -L. -lutil -lglobal /usr/bin/ld: cannot find -lpq collect2: ld はステータス 1 で終了しました make: *** [dict_pgsql.so] エラー 1 make: *** [update] エラー 1 エラー: /var/tmp/rpm-tmp.4887 の不正な終了ステータス (%build) というエラーが出てしまうのです。こちらは postgresql-libs と postgresql-devel パッケージを入れると消えました。postgresqlを 使わないのに、なんで postgresql-libs などをインストールしなければ ならないのか、わかりませんけれど。 しかし、このやりかたでは postfix postfix-pcre postfix-ldap はできる けれど、お目当ての postfix-mysql (/usr/lib/postfix/dict_mysql.so が 入っている) ができません。なぜだろうかと、postfix-2.2.10-0vl6.src.rpm のスペックファイルを睨んでいると、このへんがおかしそうです。 %if %build_pgsql %files mysql %defattr(-,root,root) %{_libdir}/postfix/dict_mysql.so %endif これは %if %build_mysqll タイプミスでしょうね。 そこを変更した postfix.spec はこんな状態。 $ diff postfix.spec postfix.spec.org 16c16 < Release: 0vl6a --- > Release: 0vl6 419c419 < %if %build_mysql --- > %if %build_pgsql これで以下を実行すると、 $ rpmbuild -bb --define '_with_mysql 1' postfix.spec 2>&1 |tee postfix.log ---- (中略) ---- 書き込み完了: /home/hoge/rpm/RPMS/i386/postfix-2.2.10-0vl6a.i386.rpm 書き込み完了: /home/hoge/rpm/RPMS/i386/postfix-mysql-2.2.10-0vl6a.i386.rpm 書き込み完了: /home/hoge/rpm/RPMS/i386/postfix-ldap-2.2.10-0vl6a.i386.rpm 書き込み完了: /home/hoge/rpm/RPMS/i386/postfix-pcre-2.2.10-0vl6a.i386.rpm 一応はできたようです。この postfix-* が実際に使えるかどうかは わかりませんけれど。 -- 長南洋一