iWA's 雑記
[2004年12月] | [2004年] | [最新] | [TOP]
2004-12-27
#1 LANDISK (その14)
(半)自動ビルドの仕組みを検討してみる。
やりたいことー。
- 手許のソースパッケージが最新かどうかを確かめる。古ければ新しいソースパッケージを取得する。
- 手許のパッケージにローカルパッチが当たっているかどうかを確かめる。
- ローカルパッチが当たっている場合、ビルドスクリプトが存在すればこれを起動し、存在しなければ更新通知を出して次に進む。
- 展開したソースパッケージに対して、ビルド時のパッケージ依存性を確かめる。パッケージ構成を変更する必要がなければビルドする。
- 導入/削除すべきパッケージがあれば、パッケージ構成を変更してビルドする。一連のビルドが終わった後は元に戻す。
- ビルドしたバイナリパッケージを所定のディレクトリに移動する。
- ビルドしたソースパッケージを所定のディレクトリに移動する。
- 古いバイナリパッケージを消す。
- 古いソースパッケージを消す。
- ビルドすべきパッケージがなくなったらsourceforge.jpと同期する。
- 処理手順は部分的に再実行可能にする。
しょりてじゅん
- ソースパッケージディレクトリでの処理。
- 事前にapt-get updateしておく。
- *.dsc ファイルを全部読み出す。
- パッケージ毎に、(バージョン番号, ローカルパッチの有無, ソースパッケージ構成ファイルリスト, バイナリパッケージファイルリスト)のリストを作る。
- 最新バージョン以外については削除対象としてリストアップしておく。ローカルパッチがある場合、適用済みと適用なしの両方のパッケージを残す。
- aptのデータベースに記録されているソースパッケージバージョンを比較し、更新されたパッケージをリストアップする。
- ビルド用ディレクトリに移動しての処理。
- リストアップしたパッケージを取得する。
- ローカルパッチが当たっていないパッケージについて、パッケージのビルド依存性をチェックする。
- 追加のパッケージが不要なものをまとめてビルドする。
- 追加のパッケージが必要のものを、ビルド対象パッケージ毎にパッケージの導入/削除を行い、ビルドを行う。
- ローカルパッチが当たっているパッケージについて、自動ビルドスクリプトがあればこれを起動する。なければソースパッケージが更新された旨を記録する。
- パッケージの導入状態を元に戻す。
- パッケージがビルド済みならば、ソースパッケージをソースパッケージディレクトリに、バイナリパッケージをバイナリパッケージディレクトリに移動する。
- ソース/バイナリパッケージ一覧ファイルを再構築する。
- sourceforge.jpとrsyncする。
[コメント]
[2004年12月] | [2004年] | [最新] | [TOP]