ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示

2012年11月23日金曜日

webkit w/ gtk on 64 bit Ubuntu12.04

Ubuntu12.04 (64bit)でGTK版のWebKitをビルドする時、libsecret-1-devをapt-getしようとしてもnot foundと言う事でインストール出来ない。

このライブラリはwebkit.orgでインストールを指定されているものであり、当然インストールされていない状況でWebKitをビルドしようとしても、以下の通り、エラーとなる。

> Tools/Scripts/build-webkit --gtk
.....
checking for LIBSECRET... no
configure: error: Package requirements (libsecret-1) were not met:

No package 'libsecret-1' found
.....

当然なければソースコードからインストールする必要があると言う事で、以下のサイトを参考にインストール。

http://git.gnome.org/browse/libsecret/

gitのアドレスが記載されているので、そのアドレスからソースコードを入手。

> git clone git://git.gnome.org/libsecret

その後はお決まりの手順でmake & install。

> cd libsecret
> ./autogen.sh
> make
> sudo make install

これでGTK版のWebKitはビルド出来る。

2012年3月11日日曜日

checking chromium processes structure

Linuxでプロセスを調べる場合にはpsコマンドを使うことがあるが、あんまり見やすいとは言い難い出力になる(少なくとも自分には)。
 今回プロセスの親子関係を調べたいと思って調べたら"pstree"なるコマンドがLinuxにはあって、それを使うと、

init─┬─NetworkManager─┬─dhclient
     │                └─2*[{NetworkManager}]
/* 省略 */
     ├─chromium-browse─┬─chromium-browse
     │                 └─19*[{chromium-brows}]
     ├─chromium-browse───chromium-browse───3*[{chromium-brows}]
/* 省略 */

みたいな感じでinitをルートとしたプロセスがきっちりと親子関係が分かりやすく出力してくれる(多分、上の例は等幅フォントじゃないとずれて見えると思うが)。

N*[...]で囲まれているのは、...がN個その階層に存在していることを意味し、{...}は...がスレッドであることを意味する。

つまり、上記の例で見ると1個目のchromium-browse(rが抜けている…文字制限か…)の下には1個の子プロセスと19個のスレッドがあり、2個目のchromiumは1個の子プロセスを持ち、その子プロセスには3個のスレッドがあるという事になる。

ちなみに上記例はchromium-browserを起動した直後の状態なので、Linux版chromiumは起動直後で既に4プロセス動いている訳だ。

ここでchromiumのタブを一つ追加して、再度pstreeを実行すると

/* 省略 */
     ├─chromium-browse─┬─chromium-browse
     │                 └─15*[{chromium-brows}]
     ├─chromium-browse───2*[chromium-browse───3*[{chromium-brows}]]
 /* 省略 */

と出力される。2個目のchromium-browseの子プロセスが2個に増えている事が分かる。よく見ると1個目のchromium-browserのスレッド数が19個から15個に減っているがこれだけでは理由は不明。

どちらにせよ1個目のchromium-browseがBrowser UIプロセスで、 2個目がRender Viewプロセスの様だ。おそらく親のプロセスは管理プロセスか何かではないかと推測。

またここで先ほど追加したタブを別ウィンドウとして切り離して再度pstreeを実行すると

 /* 省略 */
      ├─chromium-browse─┬─chromium-browse
     │                 └─16*[{chromium-brows}]
     ├─chromium-browse───2*[chromium-browse───3*[{chromium-brows}]]
 /* 省略 */

と出力される。Browser UIプロセスと思われるchromium-browserのスレッド数が1個増えているが、Render VIewプロセスと思われるchromium-browserの子プロセスは増えていない。

どうやらchromium-browserは複数のタブをウィンドウに分離してもBrowser UIプロセスは増やさずに管理している様子。

2012年2月21日火曜日

WebKitGtk Build on Ubuntu11.10 Part 2

pixmanが取得出来ない問題は時間帯を変えると、すんなり通った。。。
しかし、pixbufで以下のエラーが。。。

make[4]: *** `all-am' に必要なターゲット `GdkPixbuf-2.0.typelib' を make するルールがありません.  中止.
加えてlibsoupでも

make[2]: *** ターゲット `/usr/share/gobject-introspection-1.0/Makefile.introspection' を make するルールがありません.  中止.
at-spi2-coreでも

make[2]: *** `Atspi-2.0.gir' に必要なターゲット `/usr/bin/g-ir-scanner' を make するルールがありません.  中止.
こんなエラーでmakeが失敗する。。。

少なくとも/usr/share/gobject-introspection-1.0なるディレクトリは存在しない。
>  sudo apt-get install gobject-introspection
とかやってみるとインストールが始まる。。。make時のログ出力を確認すると

checking for gobject-introspection... yes
と出力されているが、うまくチェック機構が動作していないのだろうか。。。

とりあえず、状況を変更したので再度
> Tools/Scripts/update-webkitgtk-libs
を実行してみると、何故かpixbufもうまくmakeできる様になった。成功するのは良いんだけれども、原因が分からないまま成功するのは気持ちがいいモノではないなあ。その勢いで今までconfigureすら動かなかったものまで動作し始めて、また完了まで時間がかかりそうなので、今日はここまで。
(追記)
すべて正常にインストールが完了した様子。
明日はようやくWebKit本体のビルドが出来る。



2012年2月18日土曜日

WebKitGtk Build on Ubuntu11.10 Part 1

Gtk版のWebKitが欲しいので、ビルドしようとトライしていたのだが、Ubuntu10.04では必要なライブラリをインストール出来ず(正確にはインストールできるが色々な物を破壊してしまう。。)挫折。Ununtu11.04でもやってみて何とかウィンドウが表示される所までは行ったのだが、何故かページロードが出来ないし、裏では色々とエラー吐き撒くっているので、ちょっと微妙。と言う訳でビルドが出来ないのはUbuntuのバージョンが古いからという勝手な理由付けで、今回はUbuntu11.10で再チャレンジ(本当はもっとLinuxについて調べておくべきだとは思うんだが、時間がない)。
ビルド環境となるUbuntu11.10は以下の通りVirtualBox上で実行。
  • Ubuntu11.10 on VirtualBox on MacBookAir (Mac OS X 10.6.8)
ここの内容に従って環境構築。

Install the base WebKitGTK+ dependencies
apt-getはUbuntu10.04では色々とインストール出来なかったのだが、今回は特にエラーも出ずに全てインストール成功。
Install the jhbuild module dependencies
ここもapt-getはエラーなく完了。Ubuntu10.04でもエラーは出なかった筈。
ここでGitをインストールしていない、WebKitのソースコードを取得していない(^^;)のでインストールとチェックアウト。
> sudo apt-get install git-core
> cd webkit
> git clone git://git.webkit.org/WebKit.git WebKit
チェックアウトに時間がかかるので取り敢えずここまで。
(追記)
と思ったが、並行してnightly buildから取ってきて残りの手順を実施してみる。

> Tools/Scripts/update-webkitgtk-libs
どうもpixmanのwgetで応答がないので再試行を繰り返している。。。cairographics.orgにはアクセス出来ている様なのだが、ダウンロードが出来ない様子。
Firefox on Ubuntu11.10で該当URLにアクセスしてみてもやはりダウンロードできない。Chrome on MBAでもcairographics.orgにアクセス出来ず。
他のチェックアウトは成功するので、サーバメンテでもしているのだろう。あとで、pixmanのためにやり直さないと。。。
とりあえず、時間がないのでここまで。





2012年2月2日木曜日

WebKit on Ubuntu10.04

checking for BASE_DEPENDENCIES... configure: error: Package requirements (glib-2.0 >= 2.28.0 atk >= 1.30 pango >= 1.24.0 cairo >= 1.10.0 cairo-gobject >= 1.10.0 gdk-pixbuf-2.0 >= 2.22.0) were not met:

Requested 'gdk-pixbuf-2.0 >= 2.22.0' but version of GdkPixbuf is 2.20.1
上記はTools/Script/update-webkitgtk-libsを実行した時のエラー。

gdk-pixbuf-2.22.1をダウンロード。しかしconfigureでエラー。glib2.25.5以降が必要とのことだが、WebKitでは2.28.0以降が求められているので、ここからダウンロードしてビルド&インストール。

再度、gdk-pixbufにトライするがconfigureで以下のエラー。

checking for TIFFReadRGBAImageOriented in -ltiff... no
checking for TIFFWriteScanline in -ltiff... no
checking for TIFFFlushData in -ltiff34... no
configure: WARNING: *** TIFF loader will not be built (TIFF library not found) ***
configure: error:
*** Checks for TIFF loader failed. You can build without it by passing
*** --without-libtiff to configure but some programs using GTK+ may
*** not work properly
sudo apt-get install libtiff4-dev
でライブラリをインストールしてみると./configureは成功。
その後、gdk-pixbuf-2.22.1のビルド&インストールも成功。

再度、Tools/Script/update-webkitgtk-libsを実行する。
あれ?同じエラーが出る。。。パスに問題あるのか?
Requested 'gdk-pixbuf-2.0 >= 2.22.0' but version of GdkPixbuf is 2.20.1

とりあえず今日はここまで。