2010年7月19日月曜日

OpenSolaris の今後

ここ最近、OpenSolaris の新しいリリースをめぐる話題や、Oracle と OpenSolaris コミュニティとの間の微妙な話題が続いており、なかなかブログに書ける話題がありませんでした。しかし 7 月に入り、OGB ( OpenSolaris Governing Board ) が状況を動かしはじめました。

なぜこの 7 月に動きが出たのかというのは、リリースするであろうと予測されていた、 OpenSolaris の新版のリリース予定の変遷が大きく関係しています。

当初 OpenSolaris のリリースは 2010 年の 2 月に予定されていました ( 合併前に Sun が予定していた当初のリリーススケジュール ) が、リリースが間に合わなく 1 か月延期されました。この延期は当時の開発者向けビルドにおいても技術的な問題があることが知られており延期やむなしとみられていました。

しかし皆さんご存じのとおり、この時期に Oracle の Sun 合併が実行されリリースの雲行きがあやしくなってきました。その後、3月中に新バージョンがリリースされることはなく、 ML への投稿の一端や Oracle の役員によるロードマップなど断片的で非公式な情報から、2010 年 5 月 ( リリース 2010.05 という内部表現など )、2010 年 6 月 ( ロードマップ資料、 2010.1H という内部リリース表記など ) にリリースされるのではないかと期待されていたのですが、結局今日まで新バージョンがリリースされることはありませんでした。

リリース時期について予測できる情報がもうないことや開発者向けのビルドについても公開が止まっていることも相まって、OGB が解散ぶくみの選択肢も示しつつ決議をしたのが下記の内容です。(私が jposug ML に投稿したメールです)

[ug-jposug] [翻訳] OpenSolarisコミュニティの状態、2010年7月
http://mail.opensolaris.org/pipermail/ug-jposug/2010-July/002181.html

正直なところ、Oracle/Sun の「外部」の貢献者として活動してきた私にはこの OGB のメッセージは共感できる部分が大きく、多くのユーザや開発者もそう感じるのではないかと思います。合併が実行される以前は Sun の皆様が陰に陽に粋な計らいをされていたこともあり、そのおかげでコミュニティもそれなりにうまく回っていたのですが、今になってみてみると実質的な合併の後のコミュニティ運営がぎくしゃくしはじめ、うまく機能していない状況に陥ってしまったのではないかとみています。

現在のコミュニティ運営が行き詰まっているというのは、OGB の中でも認識されているようで、OGB メンバーである Peter Tribble は自身の blog で記事を書いていて

Moving OpenSolaris forward - The Trouble with Tribbles... ( Peter Tribble )
http://ptribble.blogspot.com/2010/07/moving-opensolaris-forward.html

しばらくの間岩の下で暮らしていたのでもない限り、 OpenSolaris コミュニティが健康な状態ではないことは明らかです。このプロジェクトの新しいオーナーでありスポンサーである Oracle は、見事に打ちとけないでいます。Oracle が自身の障壁の陰に引っこんでしまい、残った外部のコミュニティは内紛に従事し始めたので、OGB は完全に無力化され、単なる見物人に成り下がりました。

ですから、容易な判断ではないのですが我たちは決議しました:

OGB は OpenSolaris への理解とオープンな開発を促進し、 Oracle と共にコミュニティを代表して活動したく思っているが、それとして、OGB は 2010 年 8 月 16 日までに OpenSolaris の将来および OpenSolaris コミュニティとの相互作用について話す権限を持った連絡役をOracle が 指名することを必要としている。さもなければ、OGB は 8 月 23 日 の会議において Oracle へコミュニティの管理を返還する OGB 憲章 の条項を発動するための行動を講じる。

いまのところ、Ben には申し訳ないのですが、これは "対話を始めるか、さもなければ自分の頭を撃ち抜く" という最後通告ではありません。私たちはすでに生命維持装置につながれていますし、もし生命の兆候がなければ生命維持装置はオフにされます。

継続して、もしくは無期限に待つということは、単に嘘を永続化させます。みんな具合が悪く、そして待つということを信じていた私たちはまったくもって愚かであったのかもしれません。それをするということは、単に妄想家になるということだったのでしょう。

それは Oracle が事態を収拾するために白馬に跨ると考えている一部の人にとっては良いかもしれません。もしそれが起きたとしても、それはコミュニティの現状が本質的に OpenSolaris 憲章・憲法と互換性がなく、私たちが新しい統制手法を持った新しい組織に向かって前に進む必要があるという、現実の状況を本当に変えるものではないでしょう。それを変えていくことは(どこであっても)現在の統制を吹き飛ばすことを意味します。Oracle は準備しなくてもいいのですが、OGB はその必要性を認識し最初のステップを取るのに充分勇敢です。私たちは Oracle と提携してそうしたいと思っていて、それゆえに公式な連絡役が利用できるように要求しているのです。

この動きは、現実直視とモーニングコールをもたらそうとするものでもあります。どれだけ悪い事態が起こったのか分かっていないことについて、誰も ( Oracle の内部であるか外部であるかを問わず ) いいわけすべきではないのです。

OpenSolaris は岐路に立っています。多くの道筋が開かれ、そこには利用可能な選択と下すべき決断があります。単にこの場に立ち、拳を握りしめ、そして Oracle が地図を示すのを漠然と待つという選択肢はありません。私たちをこの場所に結び付けている足かせを壊し、前進する必要があるのです。
と述べています ( 訳出は私が行ったものですので正確なところは英語オリジナルの blog 記事を参照してください )。現状で機能していない部分は認めた上で、あらためて Oracle に連絡を呼びかけた上でそれでもダメならコミュニティの再構築を行うしかないという見解です。

今回の OGB 決議は、OGB 解散ぶくみの内容が含まれているということでセンセーショナルに報じられている部分がありますが、仮に現在の OGB が解散される事態になったとしてもそれがただちに OpenSolaris の死を意味するものにはならないということを皆さんには知ってもらいたいと思います。

もちろん今後 OpenSolaris がどういった方向性を持つのか、外部開発者やコミュニティ、ディストリビューションがどうなるのかなどといった、見えない部分が非常に大きくユーザのみなさんの心配のネタがつきないのは OpenSolaris にかかわる身として心苦しい部分が大きいのですが、そういった状況だということをお酌みいただければと思います。

一言で状況を言い表すとするならば、現在は「OpenSolaris 幕末期」だといえるのではないでしょうか。

2010年5月24日月曜日

OSC2010 仙台に参加してまいりました

杜の都仙台に OSC がやってまいりました。OSC 的に仙台は私のホームでありますので、Tokyo OpenSolaris User Group 名義で先週の土曜日(2010/05/22) に オープンソース・カンファレンス 2010 in 仙台 に参加してきました。セミナー、ブース、LTと大暴れしてしまいましたが、太田さんのサポートでなんとかこなすことができました。太田さん、ありがとうございました!!

せっかくフル参加したわけですから、UST 中継録画やプレゼン資料などをまとめておきたいと思います。
IMG_5676 IMG_5678
IMG_5682 IMG_5683
IMG_5685 IMG_5688
IMG_5690 IMG_5692
IMG_5695 IMG_5698
IMG_5699 IMG_5704
SANY0031 SANY0025
SANY0034

2010年3月2日火曜日

デブサミ 2010 そして OSC 2010 Tokyo/Spring に参加してきました

OpenSolaris のコミュニティでは、なぜか山形県在住なのに Tokyo OpenSolaris User Group の Leader の1人となっている私ですが、デブサミ2010 そして OSC 2010 Tokyo/Spring に参加してきました。デブサミ2010 のほうは特にコミュニティの代表ということで、OpenSolaris のブース入りし、ライトニングトークでもちょっと喋らさせていただきました。



また、OSC 2010 Tokyo/Spring では関係者というよりも普通の参加者としてお忍び(?)で参加してさとうさんを驚かせるというネタを仕込んだのですが、一通りネタを披露した後は OpenSolaris のブースでご紹介とOpenSolaris 2009.06 の CD 配布などを手伝わせていただきました。OSC 2010 Tokyo/Spring では、ライトニングトークだけではなく、新機能の説明セッションも開催されましたが、また例によってライトニングトークの模様をYoutube にアップロードいたしました。



この2つのイベント、IT系のイベントという共通項はありますが、雰囲気の異なるイベントでして、重厚(?)な雰囲気のデブサミに対して学園祭に近い賑やかさが魅力のOSCとそれぞれ異なった魅力がそれぞれのイベントにあったと思います。

一連のイベントで印象深かったのは、デブサミのほうに参加された、すくすくスクラムさんやDevLOVEさんのような現場改善をめざすグループの和気藹々ぶりが光ってたことです。どうしてもITなお仕事はバグ取りとか障害対応とか心が後ろ向きになりがちなイベントが多いのですが、コンピュータを作ってモノを作ることそのものの楽しさや意義を再確認させられました。

また OSC 懇親会でお話した @nanbuwks さん提唱の #hydrastyle が非常にクールで感動しました。そうだよ小池スタイルなんてヌルい、ヌルすぎだぜ。小池スタイルが登場してから漠然と持っていたモヤモヤを解消してくれたということでこれは個人的にツボでした。

OpenSolaris のコミュニティーという看板のようなものを掲げて遠征してきましたが、こういったイベントに出てくる方々はみなすばらしい人ばかりで色々な刺激を受けて帰ってきました。ひたすら hack にいそしむのも悪くはないのですが、こういったイベントに参加するというのも有意義なことなのかもしれません。

2010年2月23日火曜日

twitter 発(?)の IPS mirror ツール

ブログではご無沙汰になってしまいましたが、みなさんいかがお過ごしでしょうか。私は相変わらず OpenSolaris 使い込んでいます。

OpenSolaris では IPS というパッケージ管理システムが導入されて、このシステム経由でパッケージやシステム全体のアップデートを行うのですが、この IPS サーバは実はpythonでwebアプリとして書かれています。普通に使っている分にはあまり気にならないのですが、バリバリ開発していると手元にこの IPS レポジトリのミラーが欲しくなります。

IPS レポジトリについては根こそぎミラーする術は公式には用意されていないのですが、IPSサーバは OpenSolaris に組み込まれているので、配布されているものをうまく準備できればミラーを作ることが可能です。ミラーを作る術についてはこれまでにもいくつかのスクリプトが作られており、中でも Andrzej Szezo さんの ips-mirror.py スクリプトが有名です。

このスクリプトを使うと一応ミラーを作ることは可能なのですが、IPS サーバ側の事情なのかたまにファイルの一部が欠落してしまったり、そもそもダウンロードするファイルの数が膨大(リリース1つx86/sparc両方ダウンロードで大体 350,000ファイル程度)だったりと、なかなか大変な仕事だったりします。

折しもさとうさんがtwitterでこの辺のことをボヤいていたこともあり、ips-mirror.py を改造してみたら、まるで「ぶっこぬきツール」なものができて関係筋に受けてしまったので、fork という形で ipsget.py ということで公開してみました。

ipsget.py についてはさとうさんイカす記事を書かれていたので、使い方の説明はそちらに任せて、ちょっとしたポイントを紹介したいと思います。

この IPS ではファイル名を自分自身の sha1sum 値にしてさらに gzip 圧縮しているのですが、ダウンロードしたファイルを検証するために sha1sum を調べる機構が必要になります。この機構、python 2.5 以降では hashlib モジュール、 python 2.4 までは sha モジュールでそれぞれ提供されています。さらに Solaris 10 では python 2.4 のみということなので、普通に考えれば hashlib バージョンと sha バージョンを用意しなければならないということになりますが、それではちょっと残念だったりします。

じゃあどうしようかということで、苦肉の策で書いてみたのがこんな感じです。
try:
from hashlib import sha1
except ImportError:
from sha import new as sha1

(途中略)

hash = sha1(gzip.GzipFile(fileobj=sf).read()).hexdigest()

なんか微妙な技を使ってしまった気がしますが、そんなこんなで OpenSolaris と Solaris 10 の両方でなんとか動くものができました。ということで、IPSをバリバリミラーしたいという方で気が向いた方がおられましたら ipsget.py おためしください。