はじめに
フリーソフトウェアのリリースとひとくちに言っても、プロダクトごとにその実態はさまざまです。 単にタグを打つだけのこともあれば、ソースコードのアーカイブをアップロードするまでだったり、独自リポジトリを用意してパッケージを提供するところまで実施するものもあります。 あるいは独自リポジトリではなく、ディストリビューション向けにパッケージングしてリリースしているものもあります。
今回は、Debian向けにパッケージングするメリットについて、とあるフリーソフトウェア(growl-for-linux)を例に紹介します。
growl-for-linuxとは?
アプリケーションからの通知のために使われるものとして、Growlがあります。 Windows版としてGrowl for Windowsが開発されるなど、一定の支持があるようです。 今ではOS Xに通知センターが標準搭載されたこともあり、以前ほどの勢いはありません。
growl-for-linuxは名前からもわかるように、GrowlのLinux版です。 「Growl For Linux is Linux-compatible of Growl」とあるように、Growl Notification Transport Protocol(GNTP)を採用しているので、Growlと互換性があります。
growl-for-linuxはいくつかのディスプレイスタイル(テーマのようなもの)をサポートしています。
-
balloon
-
fog
-
nico2
-
libnotify
必要ならば、プラグインとして上記に加えて独自のスタイルを追加することができるようになっています。 また、他のソフトウェアと連携することができるようにもなっています。例えば、標準でRhythmboxと連携できるようになっています。
通知を送るには、GNTPをサポートしているクライアントを用います。例えば、コマンドラインから送るにはgntp-sendを使います。
growl-for-linuxのリリースについて
growl-for-linuxは、これまでPPAとして、パッケージが提供されていました。 開発者自らパッケージを提供していたのですが、2014年5月の0.8.1のリリースを最後に、しばらく動きがありませんでした。(したがって、最新のパッケージの提供はtrustyまでの対応。この記事を書いている時点の最新版であるxenialには未対応)
Ubuntuユーザーであれば、そういう場合PPAで新しいリリースに対応して欲しいという要望をあげたりするところですが、Debianユーザーであったため、これを機会にDebian公式リポジトリへとパッケージを持っていくことにしました。
パッケージ化で見つかった課題
growl-for-linuxをDebianへと持っていくにあたり、いくつか課題が見つかりました。
-
データベースのスキーマやクエリに誤字がある
-
Debianのパッケージングポリシーに合致していない
-
使用している画像がGrowl由来のもの
パッケージングポリシーに関しては、それまでUbuntu向けにパッケージを提供していたのでやむを得ない部分ではあります。しかし、使用している画像(アイコン)などがGrowl由来のままというのは問題でした。この点を開発者に確認したところ、新しい画像に切り替わりました。
シンプルかつわかりやすいアイコンが採用されました。
パッケージ化のメリットとデメリット
Debianへとパッケージへ持っていくことのメリットはいくつかあります。これはgrowl-for-linuxに限定されません。
-
パッケージングポリシーに従うことで行儀のよいパッケージにできる(基準が明確なので、メンテナンスしやすくなる)
-
debian/copyright 1 の厳しいチェックが入るので、今回のような使用画像の問題を解決できる(PPAでずっとパッケージを提供していたら気づきにくい問題)
-
Debianの派生ディストリビューションでも使えるようになる(すでにUbuntu側に同期されているので何もしなくてもUbuntu 16.10以降で使えるようになる)
一方で、メリットの別の側面としては以下の点があげられます。
-
パッケージングポリシーに従うのが大変(知識や慣れの問題とはいえ敷居が高い場合がある)
-
debian/copyrightの整備が大変(他のプロダクトの成果物をソースアーカイブにとりこんでいるとライセンスの総点検が必要な場合がある)
-
依存パッケージが多いと大変(依存しているパッケージをパッケージングするところからはじめないといけない場合がある)
大変な部分もあるのですが、得られるものも多いです。 パッケージング過程でDebian開発者からのフィードバックを得たり、パッケージ公開後もユーザーからバグ報告してもらえたりします。これらはパッケージをよりよくすることにつながります。
まとめ
今回はDebian向けにパッケージングするメリットについて、growl-for-linuxというフリーソフトウェアを例に紹介しました。 growl-for-linux、gntp-sendどちらもDebian(unstable)入りして間もないですが、将来リリースされるDebian stretchやUbuntu 16.10(yakkety)には含まれるようなので、機会があれば使ってみてください。
もしPPAでしかパッケージを提供していないフリーソフトウェアがあれば、Debianへとパッケージを持っていくのをおすすめします。過去にそのあたりの記事を書いたので参考にしてみてください。
-
ライセンスをファイル単位で記述していくためのパッケージングのお約束。 ↩