==== Under the hood ==== ~~META: meta-author: t.ashula meta-tags: opera,weekly,kestrel,10092 meta-entry_id: peek_under_the_hood meta-creation_date: 2008-07-19T09:08:02+0900 ~~  [[http://my.opera.com/desktopteam/blog/2008/07/18/a-peek-under-the-hood|A peek under the hood]]ってなことで,9.52の追加修正版が来たのでさっくりとインストール. チェンジログの前にはパッケージングの話が延々と続いて,[[http://my.opera.com/operaqa/blog/|QAのblog]]ができましたで終わり. 肝心のチェンジログはとりあえず4件で * javascript: なURIでのエンコードの問題の修正. * BBC iPlayer ( RealPlayer のプラグイン)の問題の修正. * 安定性に関する修正. * GMailが読み込まれない問題に関する修正. と,こまごまとした修正. OCSP の関係で一部のEVSSLサイトでアドレス欄が緑にならないのも修正されたもよう. DTBのコメント欄とか,2chのすれをみると,「あのバグ治ってないぞ」なのもいくつかある様子. 微妙なところとしては,opera:configでのProfileフォルダ(Opera Dir)の表示が変ってるっぽい. ==== 前半部分の適当訳 ==== [[http://my.opera.com/desktopteam/blog/2008/07/18/a-peek-under-the-hood|A peek under the hood]]の適当訳 MSIのインストーラは扱った経験がないので相当アヤシイ
今日は,いつもとちょっと違ってOpera自体の話ではなく,新しいOperaがあなたに届くまでの話をしようと思います.私たちが,ソースコードの塊からいかにして,様々な環境向けに様々なオプションでコンパイルし,このブログからダウンロードしてインストールできるパッケージにするのかについて説明していきます. インストールは,それ自体複雑な処理です.インストールについて一度は考えても,二度は考えないでしょう.ですが,実際のところインストールは極めて重要な処理できちんと動作しないと,大好きなソフトを楽しむことはできません.では,どうやってソースコードを実行ファイルにしてインストーラーを作ればいいのでしょう? 基本的には,ビルドとパッケージ化の2つの処理からなり,両方を実現するためのビルドシステムがあります. まずは web 経由で関係者からの要求を集め,それぞれの要求を処理できるサーバへと投げます.次に,それぞれのOSごとに少しずつ異なるスクリプトでそれぞれのサーバでのビルドとパッケージ化が行われます. ビルドの処理自体はそれぞれのプラットフォームでもほとんど同じです.要求されたバージョンのソースコードを持ってきて,適切なオプションを付けてコンパイルして実行ファイル(とライブラリ)を生成します.コンパイル部分はソースコードが正しい限りプラットフォームごとに特有のコンパイラで処理されます. この時点で,パッケージ化の準備が全部でき,スクリプトは個々のOS用にまったく異なるものになります. ここからは,特に僕が責任を負っているWindowsでのパッケージ化について詳しく話していきます. Windows版のOperaには,[[http://www.acresso.com/products/installation/installshield.htm|InstallShield]] で作る MSI 形式のパッケージと,古いバージョンの [[http://www.wisesolutions.com/Products.aspx|WISE インストーラ]]で作る "Classic" パッケージとがあります. WISE インストーラは,専用の言語で書かれたスクリプトを用意して,それを実行するだけなので相対的に設定が容易です.Windows Vistaかどうかを検知するなど専用言語でカバーしきれない処理には,別にDLLを用意して使うこともできます.WISE インストーラは簡単な一方で,Windows98 より新しい Windows にうまく適応していない部分があります. InstallShield はより強力で,MSI インストーラの組み立てはとても複雑です.ここでは詳細を語りませんが,InstallShield のパッケージでは非常に大量の設定が可能です.MSI インストーラのスクリプトは,パッケージがすべきことを記した XML 形式の ISM ファイルをコンパイルして作ります. パッケージ化のスクリプトはインストーラの定義ファイルを開くことからはじめて,いくつかの設定処理をして,インストーラ自体の言語設定などを準備します.次に,パッケージに必要なファイルの一覧を作成して,所定の位置に配置します.その後,いくつかの調整がなされて,MSI のパッケージが出来上がります.このプロセスをそれぞれのMSIパッケージに対して行います.WISEインストーラは 英語版のMSIパッケージと一緒に作られますが,相対的にみれば大したことではありません. ビルドシステムとパッケージスクリプトの保守と改善はかなりの量の仕事だけども,重要な仕事です.もし,これらがなければ全部のビルドとパッケージ化を手動でやらなければならないのですから. 今回はOperaの開発の重要な一幕をちょっとだけおなしさせていただきました. 最後ですが,Opera の QA チームのブログを開設しました.「フードの下」にもっと詳しくは,[[http://my.opera.com/operaqa/|QA blog]]をお読みください.