From kt @ wheel.jp Thu Jun 25 01:04:40 2009 From: kt @ wheel.jp (TATEISHI Katsuyuki) Date: Thu, 25 Jun 2009 01:04:40 +0900 (JST) Subject: [Ultramonkey-l7-develop 403] Re: =?iso-2022-jp?b?YXV0b3Rvb2wgGyRCJF4kbyRqJE49JEA1JEs0WCQ5GyhC?= =?iso-2022-jp?b?GyRCJGtNV0s+GyhC?= In-Reply-To: <20090609.175358.57809164477956378.tateishi.katsuyuki@oss.ntt.co.jp> References: <20090609.175358.57809164477956378.tateishi.katsuyuki@oss.ntt.co.jp> Message-ID: <20090625.010440.75173119544288686.kt@wheel.jp> 立石@自宅です。 Autototools まわりの修正を autotools-fix ブランチとして push しました。 http の VirtualServer が動作していることを確認していますが、 興味のある方はテストしていただけるとうれしいです。 autotools-fix ブランチにおける主な変更点は以下のとおりです。 # 長くなってしまいました。すみません。要約はcommitlog(commit # 3個分くらいかな)を見てください ●ユーザから見える変更箇所 ============================================================ >> ソースコードからビルドして使っているユーザ向け ============================================================ ・configure 時 --prefix などのオプションが正しく動作するよう になりました。ただし、前のリリースと同じようにインストール するには configure 時に以下のようなオプションを渡す必要が あります。( \ で折り返していますが実際には一行です) % ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var --libdir='${prefix}/lib64' ・heartbeat-ra ブランチをマージしているため、heartbeat-ra関 連ドキュメントがインストールされます。 ・man-fix ブランチをマージしているため、man が新しくなってい ます。また、gzip されずにインストールされます。 ・新たに README が${prefix}/share/doc/ultramonkey-l7-.../ 配 下にインストールされます。 ============================================================ >> RPM を使っているユーザ向け ============================================================ ・heartbeat-ra ブランチをマージしているため、heartbeat-ra関 連ドキュメントがインストールされます。 ・man-fix ブランチをマージしているため、man が新しくなってい ます。(rpm 版の man は gzip されてインストールされます) ・README のインストール先が変わります。/usr/doc 配下から /usr/share/doc 配下になりました。 ●開発者から見える変更箇所 ============================================================ >> 全開発者向け ============================================================ ・ビルド方法 autotools で自動生成されるファイルは削除しました。 git diff や git log で本プロジェクトにとっては無意味な出力を抑 えるためです。今後、リポジトリからチェックアウトしている開 発者の方は以下のコマンドで configure スクリプトを作成してく ださい。 % autoreconf --force --install 一旦実行すれば、各ディレクトリの Makefile.am または configure.ac を編集しない限り再度実行する必要はありません。 なお、--force --install オプションはそれぞれ -f、-i でも OK です。 なお、自動生成されるファイルをリポジトリに入れない長所は上 記のとおりですが、短所として、開発者間で autotools のバージョ ンが異なっているとビルドに失敗する可能性があるという点があ ります(非常に古い場合とか)。メインのプラットフォームと思わ れる RHEL や Debian だとそんなことも起こらないだろうと思い ますので削除しましたが、何か不都合があれば教えてください。 git status の表示で生成されたファイルがうざい場合は以下のよ うな .gitignore を用意するとすっきりすると思います。 # ---------------------------------------------------------- /.gitignore # In all directories Makefile.in # In top directory only /aclocal.m4 /autom4te.cache /autoscan.log /compile /config.guess /config.h.in /config.sub /configure /configure.scan /depcomp /install-sh /ltmain.sh /missing # ---------------------------------------------------------- ・新規ソースファイル追加時の注意 Makefile.am に必要な修正は今までと同様、 sbin_PROGRAMS や _SOURCES に修正を加えれば良いのですが、注意点が 二つあります。 1. <プログラム名>_SOURCES にヘッダファイルを追加するの忘れ ないでください。現状の Makefile.am にいくつか修正が必要 でしたので、今まで意識されてないと思います。 2. <プログラム名>_SOURCESにソースファイル名やヘッダファイル 名を追加する場合、<プログラム名>_LDADD にプロジェクト内 の静的ライブラリを追加する場合には、$(top_srcdir) や $(top_builddir) からの相対パスで記述してください。 ソースツリー内にあるファイルは $(top_srcdir) か ら、./configure より後に生成されるファイルは $(top_builddir) からのパスで参照します。 新しいソースファイルを追加したときは、make distcheck を実行 すると、上記について間違った記述をしている場合、検出できま す。詳細は src/Makefile.am の書き方を参照してください。 ・環境に依存するコードを追加した場合の注意 新しいサードパーティのライブラリとリンクする場合等、 configure のチェック内容を変更したくなるはずですが、このと きは autoscan を実行し、表示内容(autoscan.logにも残ります) にしたがって configure.ac を編集します。追加する位置および 内容は autoscan で生成される configure.scan というファイル を参考にすると楽です。 ・知っておくと便利なこと 今後はソースツリーとビルドツリーを分離できます。 % tar zxf ultramonkey-l7-2.1.2-3.tar.gz % mkdir build % cd build % ../ultramonkey-l7-2.1.2-3/confiugre % make のようなことができます。使い道は想像力次第ですが・・・ アーキテクチャや configure オプション等が異なるビルドでもソー スツリーを共有できます。 ============================================================ >> リリース作業者向け ============================================================ ・バージョン番号変更作業をする場合の注意 バージョン番号を変更する場合、configure.ac あたまの m4 マ クロ定義 ---------------------------------------------------------- m4_define([UML7VERSION], 2.1.2) m4_define([UML7PATCHLV], 2) # For additional releasename (ex. m4_define([UML7RELSUFFIX], [rc1]) for rc1) m4_define([UML7RELSUFFIX], [atfix]) ---------------------------------------------------------- の該当箇所を変更してください。現状では autotools-fix ブラ ンチ向けの 2.1.2-2atfix となっています。 なお、UML7RELSUFFIX は本来 RC 版などの追加文字列用に用意し ました。 m4_define([UML7RELSUFFIX], [rc1]) とすれば 2.1.2-2rc1 のようになります。 ・ソースアーカイブ(tar玉)作成作業をする場合の注意 今後、リリース時のソースアーカイブ作成作業は configure 後、 以下のコマンドで実行できます。 % make distcheck カレントディレクトリにソースアーカイブ *.tar.gz が作成され ます。RPMについては作成されたアーカイブと configure 時にで きている ultramonkeyl7.spec ファイルで作成してください。 なお、make dist でもアーカイブを作成できますがこれは作成さ れたアーカイブが正常にビルド可能かどうかをチェックしないの でリリース用ソースアーカイブ作成の用途には使わないでくださ い。 ============================================================ >> その他各サブディレクトリ配下のメンテナ向け ============================================================ 基本的に新しい Makefile.am を眺めるといいと思いますが・・・ 1. snmpagent サブディレクトリ $(top_srcdir)/Makefile.am の SUBDIRS 記述でビルド実行するか どうかを切り替えていたようですが、サブディレクトリ snmpagent は他モジュール(logger, src)がビルド時にヘッダファ イルを参照しており、配布物に含める必要があるので、SUBDIRS に加えて make 時に降りていくようにしました。(これまでどおり ビルド、インストールはされません) 将来 snmpagent のビルド、インストールを有効にするには、 snmpagend/Makefile.am 内の check_PROGRAMS を sbin_PROGRAMS などに変更してください。 2. module サブディレクトリ 新規に動的ロードモジュールを追加する場合は Makefile.am 内の _LTLIBRARIES に指定するライブラリ名の頭に lib は不 要です。 3. man(およびdoc) サブディレクトリ doc, man については既に man-fix と heartbeat-ra ブランチに autotools 的に適合する Makefile.am が入っていますので、これ らのブランチをマージしてから作業しました。もとのブランチに 変更があれば最終的にこちらから追従しますので、これらのブラ ンチ上で作業されている人がいれば気にせず続けてください。 ●課題など 以下は作業量が膨大になる、ソースコードまで変更が入る、等の理 由で今回は見送りました。そのうち直せたらいいと思います。 ・ソースコード内の /var, /usr などの決め打ちの箇所を configure で指定された箇所を尊重するように変更したほうがよ いです。 これには該当ファイル内の修正と、スクリプトおよび設定ファイ ルの場合はソースツリー上のファイル名も変更する必要がありま す。ざっと見た限り、 l7directord/ 配下は各ファイルのパスを ほぼ決め打ちしています。 src/ 配下は各ファイルパスを parameter/ 内で管理しているよう で、makeに -D でわたすスイッチで変更できますので、ソースコー ドを変更する必要はなさそうです。が、せっかく config.h を生 成しているので、これを include する方向に変更するほうが綺 麗かも。 ・バージョン番号があまりよくありません。(別途竹林さんからア ナウンスしてもらった件です) 現在本体バージョンはx.y.z-p となっていますが、「-」が入った バージョン番号は不正なバージョン番号として rpmbuild で弾か れてしまいます。spec ファイルでは x.y.z をVersion(本体バー ジョン)、p をRelease (RPM版としてのバージョン)にして無理や りしのいでいますが、Release の目的は RPM 版としてのバージョ ンを示すためのものです。また本体バージョンも RPM 側でわざと 間違えて認識していることになってしまっています。(次期メジャー リリース時修正?) ・各サブディレクトリから別のサブディレクトリにあるヘッダファ イルを参照しています(例えば snmpagent ディレクトリを配布対 象から落とせなかったのはこれが原因)。 $(top_srcdir)/include が切ってあるので、エクスポートするべ きヘッダファイルはそちらに移したほうがいいかもしれません。 以上です。 ** ちなみに・・・ From: TATEISHI Katsuyuki Subject: [Ultramonkey-l7-develop 388] Re: autotool まわりの修正に関する要望 Date: Tue, 09 Jun 2009 17:53:58 +0900 (JST) >> もし可能であれば,boost のチェックも入れて頂けますか. > > 了解です。 > # 可能であれば・・・ たぶん動いているはずですので、試してみてください。 -- TATEISHI Katsuyuki From makoto @ kanon-net.jp Thu Jun 25 06:30:29 2009 From: makoto @ kanon-net.jp (Shinya TAKEBAYASHI) Date: Thu, 25 Jun 2009 06:30:29 +0900 Subject: [Ultramonkey-l7-develop 404] Re: =?iso-2022-jp?b?YXV0b3Rvb2wgGyRCJF4kbyRqJE49JEA1JEs0WCQ5GyhC?= =?iso-2022-jp?b?GyRCJGtNV0s+GyhC?= In-Reply-To: <20090625.010440.75173119544288686.kt@wheel.jp> References: <20090609.175358.57809164477956378.tateishi.katsuyuki@oss.ntt.co.jp> <20090625.010440.75173119544288686.kt@wheel.jp> Message-ID: 竹林です. > Autototools まわりの修正を autotools-fix ブランチとして push > しました。 ありがとうございます. お手数お掛けしました. > ・man-fix ブランチをマージしているため、man が新しくなってい > ます。また、gzip されずにインストールされます。 実はまだ l7vsadm あたりが作業終わっていない状態なので, 作業完了後に rebase する必要があります. 早めに片付けるので,もう少し待ってもらえますか. ---------------------------------------------------------------- Shinya TAKEBAYASHI E-mail(private): makoto @ kanon-net.jp GPG ID : FFD20D1F GPG FP : 7B5B E0FC B785 7457 683C 47D6 5564 DDDD FFD2 0D1F ---------------------------------------------------------------- From kt @ wheel.jp Thu Jun 25 09:14:08 2009 From: kt @ wheel.jp (TATEISHI Katsuyuki) Date: Thu, 25 Jun 2009 09:14:08 +0900 (JST) Subject: [Ultramonkey-l7-develop 405] Re: =?iso-2022-jp?b?YXV0b3Rvb2wgGyRCJF4kbyRqJE49JEA1JEs0WCQ5GyhC?= =?iso-2022-jp?b?GyRCJGtNV0s+GyhC?= In-Reply-To: References: <20090609.175358.57809164477956378.tateishi.katsuyuki@oss.ntt.co.jp> <20090625.010440.75173119544288686.kt@wheel.jp> Message-ID: <20090625.091408.737004071327925214.kt@wheel.jp> 立石です。 From: Shinya TAKEBAYASHI Subject: [Ultramonkey-l7-develop 404] Re: autotool まわりの修正に関する要望 Date: Thu, 25 Jun 2009 06:30:29 +0900 >> ・man-fix ブランチをマージしているため、man が新しくなってい >> ます。また、gzip されずにインストールされます。 > > 実はまだ l7vsadm あたりが作業終わっていない状態なので, > 作業完了後に rebase する必要があります. > > 早めに片付けるので,もう少し待ってもらえますか. 了解です。 変更があれば追従するので気にせず作業してください。 -- TATEISHI Katsuyuki