おがさわらなるひこのオープンソースとかプログラミングとか印刷技術とか

おがさわらなるひこ @naru0ga が技術系で興味を持ったりなんだりしたことをたまーに書くブログです。最近はてなダイアリー放置しすぎて記事書くたびにはてな記法忘れるのではてなブログに移行しました。

クリエイティブ・コモンズ・ライセンス
特に断りがない場合は、本ブログの筆者によるコンテンツは クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

Ricoh Americas Corporationという会社のLinux印刷への貢献について

なんだか体調が悪くて、どーしても今書くべき文章がまとまらないので、リハビリというわけでもないけど、ちょっと前々から書こうと思ってた雑文を書いて頭をほぐします。

えーと、Ricoh Americas Corporation (以下 RAC) という会社は想像の通り私の前職の関連会社で北米のブランチなんですが、仕事で付き合いがあったという関係はともかく、彼らが Linux 印刷に対して行った貢献というのはもっと知られていいと思うので、ここで勝手に宣伝します。
私の前職が Linux Foundation のメンバー入りしたときに北米の会社はプレスリリース出すことすらしてくれなくて、その理由は私にはよくわからないのですが*1、私を含め日本でやっていた活動なんかより遥かに意義がある活動を彼らがやっていたので、そういうことをアピールしておきたいな、と。

なお、本来はもっと書きたいんだけど守秘義務の壁に阻まれて書けないこともあるので、それについてはすんません。ここに書くことは Web 見たり ML 読んだりすれば分かる公知の事実だけです*2

OpenPrinting Database への貢献

リコーの海外向け機種は PCL5/6 は全機種標準 (一部ローエンド機を除く)、プリンター単体機については PostScript も標準 (だったはず) なんですが、前者は Ghostscript の標準ドライバーを用い、後者はフィルター不要で、どちらも PPD のみを供給すれば Linux からの印刷が可能になります。

ということで、まだ OpenPrinting が Linux Foundation の下部組織になる前、今のマネージャーで当時は Mandriva の QA ラボにいた Till Kamppeter*3 と Kurt Pfeifle *4 が二人で立ちあげた linuxprinting.org というサイトの頃から、RAC のメンバーは新機種が出てから長くても4ヶ月以内という割と早いスパンでほとんど全機種の PPD を供給しつづけたんですね。あくまでもコミュニティへのボランタリーな貢献として。

ここに置いてある PPD が Debian/Ubuntu であれば openrprinting-ppds というパッケージとして収録されてます。他のディストリビューションも同様なので、リコーの海外ブランドのプリンターについては特別なインストール不要で「つなげば使える」を実現してるんですねー。素敵♪

話はそれますが、Lexmark とかの海外のプリンタベンダーだと、PCL か PS で統一されてるわけだから、OpenPrinting Database に PPD を供給すればみんな幸せになるわけで、いいよなーって日本の人間としては思ってしまいますね。

OpenPrinting Forum での活躍

Linux に印刷ソリューションを提供しているベンダーであっても、「原則サポートはなし」というスタンスです。Linux 印刷について、もっとも力を入れていると思われる HP についていうと、HPLIP については「FAQ 読んで、分かんなかったらフォームから連絡をくれ」となってます*5 が、これはかなり特別なケースといえるでしょう。
そこで OpenPrinting では互助会的なフォーラムを用意しています*6

当然、互助会的なフォーラムなので、質問する人も答える人もそのユーザー同士なんですけど、HP みたいにうじゃうじゃユーザーがいればともかく、必ずしも答えが得られるわけではないですよね。そこでリコーの機種のフォーラムについては、RAC の有志のメンバーがそれぞれ答えて、よくある質問については FAQ でまとめていたりしたわけです。

社内でサポートアドレスを用意して個別に回答するというやり方より、オープンな場で情報をみんなに公開するって方がオープンソース流だと思うので、それができてたってことは、やってたメンバーとその周りを評価していいことだと思うのです。

コードでのコミット

さっきから説明なしに出している PPD というもの。
CUPS では PPD というファイルで印刷設定項目などを指定できるんですが、古来の PPD は基本的に「選択肢」しか用意してないんですね。例えば数値パラメータを入力したいとか、なにかのIDを自由入力したいとかそういうことができないと。まぁほとんどの場合は困らないんですが、こういう機能が欲しいときってあるんですよね。
ということで、CUPS 1.4 以降では、PPD の構文*7 が拡張されていて、ここらへんの機能が追加されてるんですね。とはいえ、PPD の設定を使って UI を出すのはアプリケーション側の責務なので、せっかく拡張されても CUPS の WEB UI でしか設定できないとなると嬉しさも中ぐらいなりってかんじですよねー。

そんなわけで、多くのアプリケーションが利用している GTK-Print (例えば Evince や gedit が使ってますね) というダイアログに対してここらへんのコードをコミットしたのは RAC メンバーだったりするんですね。

それ以外にも、Ubuntu で導入された system-config-printer によるドライバー自動ダウンロードについて、「既に OpenPrinting に上がっている PPD についてもダウンロードできないとおかしい」といってコードをコミットしたということもやってます。

もちろん、RAC が OpenPrinting に公開した PPD が CUPS 拡張を使っているという理由、自動ダウンロードは OpenPrinting にあげさええすればユーザーが恩恵に預かれるということで RAC の想定ユーザーに利益をもたらすためという理由はあるわけですが、「標準活動に手を動かして貢献する」という姿勢を見せたことは、とてもよいことだと私は思います。プロプラなコードを書いたり、要望は出すけど人手は出さない、という選択肢だってあるわけですから。

おわりに

えーとお断りしておきたいのは、私は Linux というか Windows 以外の印刷システムについてかじったのはせいぜい5年ぐらい前、その活動の中でコミュニティへはいり込んで貢献するということの意義を知ったのはせいぜい3年ぐらい前なので、その前から努力してたいろんなベンダーさんのことは存じ上げません。ただ、そういうベンダーさんの頑張りがあって、今、制約はあるとしても Linux でなんとか印刷できるという現状にたどり着いたのだと思います。

このエントリーは RAC 礼賛というわけじゃなくて、あくまでも自分の目につきやすかった RAC メンバーの活動を紹介することで、「ベンダーの中の人たちの頑張り」を感じて、応援して欲しいということにあります。と共に、そういう人たちの活動が報われるような世の中になって欲しいな、と。

あんまりまとめになってませんが、ま、雑文なので許してください。

*1:おぼろげながら推測はできるけど、そういうこと書いてもしょうがないし。

*2:と、私は思っているのですが、もし守秘義務踏んでたら指摘ください。って誰にお願いしてるんだ。

*3:関係ないけど、彼の苗字の綴りをよく間違えるのは私です……某誌に書いたときにも思いっきり間違えました。ごめんよ Till。

*4:彼が活躍していたころはぼくはまだ FLOSS 印刷に関わっていなかったので、正直彼のことはよく知らないのです。

*5:どうでもいいですが、HPLIP の質問やバグレポって Launchpad で管理されてるんですね。知らなかった。

*6:前の kernel.org や linuxfoundation.org のトラブルの影響か、まだ復活してません><;

*7:正確にいうと構文ではなく「キーワード」なんですがまぁいいとして。