ソースコード・リテラシーのススメ

第18回 ディストリビューターの日々

この記事を読むのに必要な時間:およそ 3 分

Plamo-4.2系で使っていたX11はR6(Release 6)と呼ばれるバージョンで,開発主体こそX.Org Foundationに変ったものの,ソースコードはMITのAthena Projectで開発されていた頃と同様,xcディレクトリ以下に展開された全てのファイルをmake Worldコマンドでコンパイルする形式でした。しかしながら,X Window Systemが進化してゆくにつれ,大規模で複雑なソースコードをまとめて管理することが困難になり,R7以降のX11では1つ1つのライブラリやアプリケーションを個別に管理するように変更されました。

その結果,コンパイルの方法も,かってのように make World一発で全てを作りあげるのではなく,ライブラリやアプリケーションそれぞれをcofigureスクリプトで設定してmakeし,インストールしていく形式に変更されました。この変更の結果,プロトタイプ宣言やヘッダファイル,必須のデータファイルなどを先にインストールしておかなければライブラリはコンパイルできず,ライブラリがそろわないとアプリケーションはコンパイルできない,といったX Window Systemのパッケージ内部での依存性も生じることになりました。

おかげでPlamo-4.2系で使っていたX11R6用のビルドスクリプトは使えなくなってしまい,かと言って300以上に分割されたソースコードそれぞれにビルドスクリプトを新しく作るのも大変だし,さてどうしたものか…,としばらく悩みましたが,結局開発元のX.Org Foundationが提供しているビルドスクリプトに手を加えて,Plamo用のパッケージを作成するようにしました。こういうと多少の工夫で簡単に作成できたように聞こえますが,変更履歴を見ると,ディレクトリ構成のすりあわせ等の調整のため,1月の末から2月にかけて都合3度ほど全体をビルドし直しています。

当初はX11R7.4が5月ごろに公開される予定だったから7.3はそれまでのつなぎで,R7.4が公開されたらそれに合わせてそれぞれのソースコードごとにビルドスクリプトを作ろうと考えていましたが,X11R7.4の公開はずるずると延期され,結局10月になってからようやくリリースされた模様です。

βリリース,その後

X Window Systemの更新後もKDE 4.0やGNOME 2.22といった大物の更新があったり,4月,5月は多忙で開発が進まなかったり,GNOMEやKDEの複雑な依存関係を整理するためにパッケージ群の配置やインストーラの扱いを見直したり,といった日々を重ねつつ,ようやく8月の下旬からβ版としてメーリングリスト等でアナウンスしてテスターを募集しました。

β版を公開する前には,開発者(メンテナ)の間でα版を常用環境にできる程度に調整したつもりでしたが,テスターの人数が増えると見落していた不具合がいろいろと見つかります。今回はPlamo LinuxのWikiページに4.5用の不具合情報のページを設けたこともあり,2ヵ月ほどの間に60件を超えるトラブル情報が寄せられ,その多くが正式リリース前に解決できました。

図2 PlamoWikiの不具合情報のページ

図2 PlamoWikiの不具合情報のページ

10月の上旬現在,rc(release candidate)1版のテストに入っており,今後大きな問題が発覚しなければ,10月中には正式版のリリースができそうです。

ソフトウェア開発の慣例として,βリリースの段階に入るとバグFix以外の変更は行うべきではありません。そのため,Plamo Linuxでも8月のβ版の公開以後はセキュリティ関連の修正等の緊急性の高いものを除き,収録しているパッケージの更新は停止しています。

しかしながら,OSSの進化は止まることがなく,更新を2ヵ月ほど停止しただけで,すでに古くなってしまったソフトウェアがいくつもあります。前述のようにX Window SystemはR7.4が公開されましたし,GNOMEも2.24が公開されました。その他,Pythonも新しい2.6系が公開され,GIMP-2.6など新しいバージョンのPythonを必要とするソフトウェアも増えてきたので,そろそろ対応を考えないといけません。これらをPlamo-4.5へのアップデートとして対応するか,文字コードなどを見直した新しい5.0のシリーズの開発へ軸足を移すか,しばらくは悩ましい日々が続きそうです。

ディストリビューションの開発というのはこのように終わりのない作業です。特にPlamo Linuxのようにボランティアで開発しているディストリビューションでは,開発者(メンテナ)の人たちもそれぞれ本業を持っているので,開発サイクルのリズムが合わずに調整に苦労することもしばしばです。

さまざまな苦労もありますが,苦労して作ったパッケージほど思い通りに動いた際の喜びは大きくなります。何日も悩み続けた難しいパズルが,少し視点を変えたら解法が見つかってスカッと解けた時に感じる快感,自分の投げたアイデアがメーリングリストなどで叩かれたり強化されたりしながら洗練されていく際の驚き,直接面識の無い人からネット上で届く感謝や賞賛など,金銭的には何らメリットが無くても,このような精神的な喜びがディストリビューションの,そしてその元であるOSS開発の原動力になることを実感しています。

著者プロフィール

こじまみつひろ

Plamo Linuxとりまとめ役。もともとは人類学的にハッカー文化を研究しようとしていたのが,いつの間にかミイラ取りがミイラになってOSSを仕事にするようになってしまいました。最近はスペシャリスト養成を目的とした専門職大学院で教壇に立ったりもしています。

URLhttp://www.linet.gr.jp/~kojima/Plamo/index.html