前回,Plamo Linux 4.7について紹介したばかりですが,4.7のリリースに間に合わなかったパッケージや公開後にセキュリティアップデートがあったパッケージをまとめたPlamo Linux 4.71を11月の下旬に公開しました。
4.71というバージョン番号が示すように,今回の更新はメンテナンス・リリースという位置づけで,必要なパッケージを個別にアップデートしても追従できるレベルの変更です。そのため,4.7をインストールした人向けに,4.7から更新したパッケージのみをまとめてみました。
更新したパッケージはインストーラのカテゴリ分けに従って分類されているので,更新したいカテゴリのみを適用することも可能です。
更新したパッケージを確認
% ls 00_base/ 02_x11/ 05_kde/ 07_tex/ 09_webdb/ md5sum 01_minimum/ 03_ext/ 06_gnome/ 08_kernel/ README % ls -R ./00_base: bash-3.2.50-i586-P1.tgz openssl-0.9.8l-i586-P1.tgz dhcp-3.1.3-i586-P1.tgz readline5-5.2.14-i386-P1.tgz kernel-2.6.31.6_plamoSMP-i586-P1.tgz update-4.71-noarch-P6.tgz openssh-5.3p1-i586-P1.tgz update.sh* ./01_minimum: bc-1.06-i586-P3.tgz kernel_headers-2.6.31.6_plamoSMP-i386-P1.tgz ...
それぞれのディレクトリには簡単なアップデート用のスクリプト(update.sh)を用意し,このスクリプトを実行すればそのディレクトリにあるパッケージが更新されるようになっています。
これらのディレクトリに入っているのは4.7から更新されたパッケージだけなので,Plamo-4.7でインストールしていないカテゴリーを選んでも必要なパッケージは揃いません。インストール時に選ばなかったカテゴリーを追加する場合は,いったん4.7のインストール用CD/DVDから追加したいカテゴリーのパッケージをインストールした上で,更新を行ってください。
4.7のリリースから1ヵ月半くらいしか経っていないので,それほど大きな規模にはならないだろうとタカをくくっていたのですが,実際にまとめてみるとパッケージ数で185,約1GBほどのサイズにも達していました。
パッケージ数的には細かくモジュール化されて個数が増えたxorgサーバを更新した結果,サイズ的にはptetexやKDEといった大物が更新された結果で,今回の特殊事情という部分も大きいのですが,昨今のOSS開発の活発さを改めて印象づけられることになりました。
PlamoBuildスクリプトとメタ・ビルドスクリプト
前回紹介したように,最近のソフトウェアはたいていGNUのautoconf/automakeシステムを採用しているので,テンプレート化されたPlamoBuildスクリプトを用いれば,ヘッダ部分の修正のみでほとんどの場合に対応できます。しかし,XウィンドウやGNOMEデスクトップ環境など,構成するソフトウェアが200本近い規模のシステムでは,いちいちテンプレートファイルをコピーしてヘッダ部分を修正するだけでも大変な作業になります。
一方,ヘッダ部分に必要な情報のうち,パッケージ名やバージョン番号といった情報はソースコードのファイル名等から生成できますし,README等のドキュメントファイルも,たいてい同じような名前になっているので,ソースコードに含まれているそれらしいファイルを拾えば揃えることができます。
このように考えて,最近ではPlamoBuildスクリプトを作るためのスクリプトというのを用意して,PlamoBuildスクリプトも自動生成するようにしています。
このPlamoBuildスクリプトを作るためのスクリプト(正式な名称はつけていないので,以下ではとりあえず「メタ・ビルドスクリプト」と称しておきます)はPythonで書いてあり,こちらから入手することができます。
メタ・ビルドスクリプト(make_PlamoBuild.py)はソースコードの書庫ファイル名(tar.gz/tar.bz2ファイル)かソースコードを展開したディレクトリ名を引数に取り,そのソースコードをビルドするために必要なPlamoBuildスクリプトを生成します。
make_PlamoBuild.pyの使い方
% ls xwd-1.0.3.tar.bz2 % /share/Srcs/make_PlamoBuild.py xwd-1.0.3.tar.bz2 dirname = xwd-1.0.3 making PlamoBuild.xwd-1.0.3 ... % ls PlamoBuild.xwd-1.0.3* xwd-1.0.3/ xwd-1.0.3.tar.bz2
生成されたPlamoBuildスクリプト(PlamoBuild.xwd-1.0.3)のヘッダ部はこのようになっていて,先頭のurl行(ソースコードの入手先のURL)以外の情報は自動的に生成されます。
PlamoBuildスクリプトのヘッダ部
#!/bin/sh
##############################################################
url='input sourcecode url here'
pkgbase=xwd
vers=1.0.3
arch=i586
build=P1
src=xwd-1.0.3
OPT_CONFIG='--build=i586-pc-linux --disable-static'
DOCS='AUTHORS COPYING ChangeLog INSTALL NEWS README'
patchfiles=''
##############################################################
....
生成したPlamoBuildスクリプトは,前回紹介したようにconfigやbuildを指定して段階ごとの実行もできますし,引数を指定せずに一気にパッケージ生成まで進めることも可能です。
PlamoBuildスクリプトの実行例
% ./PlamoBuild.xwd-1.0.3 configure: WARNING: unrecognized options: --disable-static checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p ... make[1]: ディレクトリ `/home/kojima/Test/build' に入ります CC clientwin.o CC dsimple.o ... make[1]: ディレクトリ `/home/kojima/Test/build' から出ます Do you want to package as root? [y/N] n make[1]: ディレクトリ `/home/kojima/Test/build' に入ります ... pruning symlink in /home/kojima/Test/work/usr/share/man/mann Making ../xwd-1.0.3-i586-P1.tgz... % ls PlamoBuild.xwd-1.0.3* i.et pivot/ xwd-1.0.3/ xwd-1.0.3.tar.bz2 build/ i.st work/ xwd-1.0.3-i586-P1.tgz
メタ・ビルドスクリプトでは,ファイル名等から生成できないソースコードの入手先は空欄にしていますが,この部分はブラウザやFTPクライアントでダウンロードしたURLをcut&pasteすればいいので,PlamoBuildスクリプト作成の手間はずいぶん省けます。

