Setting of firefox-gtk2 on Linux box

参照回数[counter]

firefox-1.0.x系とgtk+-1.2.xの組合せで長らくやってきた のですが、firefox-1.5.0.x系以降に なって、gtk+-1.2.x系との組合せだと日本語の印刷(postscript出力)が□(豆腐)に化ける という現象が出て、どうにもなりませんでした( 追記 2006/08/07 )。ですので今後は、firefox-1.5.0.x系以降 + gtk+-2.8.x系 の組合せで行こうと思います。

追記 2006/08/07 : 解決策を編み出された方が現れました(^o^)/。 詳細は UNIX に関するメモ等より!。

事前準備

実は最初、firefox-1.5.0.x + gtk+-2.6.10 + XFree86-4.5.0 の組合せでビルドしたのですが、 どうしても、いわゆる「半角」文字が、いわゆる「全角」文字と同じ幅で表示されてしまうという 症状が出て対処できませんでしが、結論としては、 X11R6.9 by X.Orgに入れ換える ことでその問題は解消されました。おそらくXft2やfontconfigが新しくなった事が功を奏したと 思われます。

gtk+-2.6系列のインストール

glib-2.2.3.tar.bz2

atk-1.9.0.tar.bz2

pango-1.8.2.tar.bz2

gtk+-2.6.10.tar.bz2

gtk+-2.8系列のインストール

firefox-1.0.x + gtk+-1.2.x から firefox-1.5.0.x + gtk+-2.6.x にバージョンアップ したところ、頻繁にクラッシュしてしまうようになった...。 gtk+-2.8.xにバージョンアップして様子を見ようと思う。

cairo-1.2.0.tar.gz

glib-2.8.6.tar.bz2

atk-1.10.3.tar.bz2

pango-1.10.4.tar.bz2

gtk+-2.8.20.tar.bz2

firefoxのビルド

ところがビルド失敗!

実は、firefox-3.0系列をビルドするためにcairo-1.2.6をインストールしてたのが影響している様子。
c++ -o nsCanvasRenderingContext2D.o -c  -DMOZILLA_INTERNAL_API -DOSTYPE=\"Linux2.4.36\" -DOSARCH=\"Linux\" -DBUILD_ID=0000000000 -D_IMPL_NS_LAYOUT  -I../../../dist/include/xpcom -I../../../dist/include/string -I../../../dist/include/gfx -I../../../dist/include/layout -I../../../dist/include/widget -I../../../dist/include/dom -I../../../dist/include/js -I../../../dist/include/locale -I../../../dist/include/unicharutil -I../../../dist/include/webshell -I../../../dist/include/uriloader -I../../../dist/include/htmlparser -I../../../dist/include/necko -I../../../dist/include/view -I../../../dist/include/pref -I../../../dist/include/docshell -I../../../dist/include/xpconnect -I../../../dist/include/xuldoc -I../../../dist/include/caps -I../../../dist/include/editor -I../../../dist/include/imglib2 -I../../../dist/include/mimetype -I../../../dist/include/exthandler -I../../../dist/include/uconv -I../../../dist/include/intl -I../../../dist/include/plugin -I../../../dist/include/cairo -I../../../dist/include/libpixman -I../../../dist/include/content -I../../../dist/include -I../../../dist/include/nspr    -I../../../dist/sdk/include -I/usr/X11R6/include   -fPIC  -I/usr/X11R6/include -fno-rtti-fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O -I../../../dist/include/cairo -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libpng12 -I/usr/include/freetype2 -I/usr/X11R6/include    -I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../../mozilla-config.h -Wp,-MD,.deps/nsCanvasRenderingContext2D.pp nsCanvasRenderingContext2D.cpp
In file included from /usr/local/include/gtk-2.0/gdk/gdkcairo.h:25,
                 from /usr/local/include/gtk-2.0/gdk/gdk.h:30,
                 from nsCanvasRenderingContext2D.cpp:147:
/usr/local/include/pango-1.0/pango/pangocairo.h:71: error: `cairo_font_type_t' was not declared in this scope
/usr/local/include/pango-1.0/pango/pangocairo.h:73: error: `cairo_font_type_t' does not name a type
/usr/local/include/pango-1.0/pango/pangocairo.h:73: error: extra `;'
nsCanvasRenderingContext2D.cpp:198: 警告: 'PRBool FloatValidate(double, double, double)' defined but not used
gmake[5]: *** [nsCanvasRenderingContext2D.o] エラー 1
gmake[5]: Leaving directory `/home/m-ito/tmp/mozilla/content/canvas/src'
gmake[4]: *** [libs] エラー 2
gmake[4]: Leaving directory `/home/m-ito/tmp/mozilla/content/canvas'
gmake[3]: *** [libs] エラー 2
gmake[3]: Leaving directory `/home/m-ito/tmp/mozilla/content'
gmake[2]: *** [tier_9] エラー 2
gmake[2]: Leaving directory `/home/m-ito/tmp/mozilla'
make[1]: *** [default] エラー 2
make[1]: Leaving directory `/home/m-ito/tmp/mozilla'
make: *** [build] エラー 2
早速、情報収集すると、こんなページが...。

.mozconfigを以下の様に修正(最下行に1行追加しただけ)。

. $topsrcdir/browser/config/mozconfig
ac_add_options --disable-debug
ac_add_options --enable-optimize
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-system-cairo
    
再度ビルド開始!

ビルド失敗!(2)

今度は、
c++ -I/usr/X11R6/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wno-long-long -pedantic -fshort-wchar -pthread -pipe  -DNDEBUG -DTRIMMED -O -fPIC -shared -Wl,-z,defs -Wl,-h,libgklayout.so -o libgklayout.so  nsLayoutModule.o nsContentHTTPStartup.o nsContentDLF.o nsLayoutStatics.o       -Wl,--whole-archive ../../dist/lib/libgkbase_s.a ../../dist/lib/libgkgeneric_s.a ../../dist/lib/libgkforms_s.a ../../dist/lib/libgkstyle_s.a ../../dist/lib/libgkprinting_s.a ../../dist/lib/libgktable_s.a ../../dist/lib/libgkxulbase_s.a ../../dist/lib/libgkconbase_s.a ../../dist/lib/libgkconcvs_s.a ../../dist/lib/libgkconevents_s.a ../../dist/lib/libgkconhtmlcon_s.a ../../dist/lib/libgkconhtmldoc_s.a ../../dist/lib/libgkconxmlcon_s.a ../../dist/lib/libgkconxmldoc_s.a ../../dist/lib/libgkconxbl_s.a ../../dist/lib/libgkconxulcon_s.a ../../dist/lib/libgkconxuldoc_s.a ../../dist/lib/libgkview_s.a ../../dist/lib/libjsdombase_s.a ../../dist/lib/libjsdomevents_s.a ../../dist/lib/libjsurl_s.a ../../dist/lib/libjsdomstorage_s.a  ../../dist/lib/libgkxultree_s.a ../../dist/lib/libgkxulgrid_s.a ../../dist/lib/libgkconxultmpl_s.a  ../../dist/lib/libinspector_s.a  ../../dist/lib/libgkmathmlcon_s.a ../../dist/lib/libgkmathmlbase_s.a  ../../dist/lib/libgkcontentxtf_s.a ../../dist/lib/libgkxtfbase_s.a  -Wl,--no-whole-archive -L../../dist/bin -L../../dist/lib -lgkgfx ../../dist/lib/libunicharutil_s.a -L../../dist/bin -lxpcom -lxpcom_core  -L../../dist/bin -L../../dist/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -L../../dist/bin -lmozjs  -L/usr/local/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0    -L/usr/local/lib   -lcairo    -Wl,--version-script -Wl,../../build/unix/gnu-ld-scripts/components-version-script -Wl,-Bsymbolic -ldl -lm
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0xa89): In function `nsCanvasRenderingContext2D::Destroy()':
: undefined reference to `XFreePixmap'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x1553): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XRenderFindStandardFormat'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x1579): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XListPixmapFormats'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x159c): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XFree'
../../dist/lib/libgkconcvs_s.a(nsCanvasRenderingContext2D.o)(.text+0x15df): In function `nsCanvasRenderingContext2D::SetDimensions(int, int)':
: undefined reference to `XCreatePixmap'
collect2: ld はステータス 1 で終了しました
gmake[4]: *** [libgklayout.so] エラー 1
gmake[4]: Leaving directory `/home/m-ito/tmp/mozilla/layout/build'
gmake[3]: *** [libs] エラー 2
gmake[3]: Leaving directory `/home/m-ito/tmp/mozilla/layout'
gmake[2]: *** [tier_9] エラー 2
gmake[2]: Leaving directory `/home/m-ito/tmp/mozilla'
make[1]: *** [default] エラー 2
make[1]: Leaving directory `/home/m-ito/tmp/mozilla'
make: *** [build] エラー 2
なんやら、単純にlibX11が見えてない様子...。quick hackにて、
*** configure.ORG       2008-07-22 18:26:32.000000000 +0900
--- configure   2008-07-22 19:30:44.000000000 +0900
***************
*** 19330,19336 ****
    fi

        MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS
!       MOZ_CAIRO_LIBS=$CAIRO_LIBS
     fi
  fi

--- 19330,19337 ----
    fi

        MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS
! ##      MOZ_CAIRO_LIBS=$CAIRO_LIBS
!       MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $CAIRO_LIBS $XLDFLAGS -lXrender $XLIBS -lfontconfig -lfreetype"
     fi
  fi

の内容で configureスクリプトを修正。それでもって、再々ビルド開始! -> 結果OK

インストール

インストール for 2.0.0.8の場合だけ?

2.0.0.8では上記の方法でインストールしたところ、一部の スクリプト(run-mozilla.sh)やファイルのパーミッションが正しく設定されて いないらしく、
Cannot find mozilla runtime directory. Exiting.
のエラーメッセージを出して、 root以外では実行できなかったので、以下の コマンドでパーミッションを設定し直した。 2007.11.07 追記 : 2.0.0.9では直ってました。

gecko-sdkのインストール

たぶんもっとスマートなやり方が有るとは思うのですが...

プロファイルの作成

複数バージョンの firefox を併用する場合、プロファイルの共有が 出来ない事があります。その場合、プロファイルをバージョンごとに 用意する必要があります。

`firefox -P' で起動するとプロファイルマネージャが起動しますので、 適当な名前で新しいプロファイルを作成して下さい。

新しいプロファイルを使って firefox を起動する場合は、 `firefox -P [新しいプロファイル名称]' のように起動します。

日本語化

メニュー等の日本語化対応を行います。

日本語入力の問題点

日本語入力が突然出来なくなる

CTRL-Oでkinput2の変換窓([ あ ])を表示し、単語を入力した後に何度か スペースキーを押し、変換候補をいくつか表示させて確定させてしまうと、 その後からはCTRL-Oを押してもkinput2が立ち上がらない現象が発生しました。 google先生に尋ねてみると、そのもの ずばりのページにヒットしました。結論だけを言うと、
*SeparateConversion.input: false
*selectionShell.input: false
*auxShell.input: false
を~/.Xresources等に記述すれば解消しました。

over-the-spot入力できない

gtk+-1.2.x系までは、~/.mozilla/firefox/ほげほげ/prefs.jsに
user_pref("xim.input_style", "over-the-spot");
を入れておけば「その場変換(over-the-spot)」が出来たのですが、 なんとgtk+-2.x系ではover-the-spotがサポートされないようです。 kinput2を捨てて他のIMに変えればなんとかなるという情報もあるよう なのですが、現在調査中です。

プラグイン設定

mplayerplug-in

ここで、エラー発生。

Using new (v1.7+) gecko-sdk
checking for xpidl... no
configure: error: xpidl compiler not found
「xpidlが見つからない」と言ってる...。ちょっと調べてみて、直接xpidlのありかを 指定するといけると判断。

なんやら警告が出ている。

config.status: creating config.h
/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/bin/xpidl -w -m header -I  -I Source -e Source/nsIScriptableMplayerPlugin.h Source/nsIScriptableMplayerPlugin.idl

** (process:16594): WARNING **: Parse of Source failed: Is a directory
が、とりあえず先に進んでみる。

やっぱり、エラー発生。

g++ -c -o plugin.o -Wall -DXP_UNIX -DMOZ_X11 -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/plugin -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/xpcom -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/nspr -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/string -I/usr/local/gecko-sdk-2.0.0.18/gecko-sdk/include/java -g -O2  -I/usr/X11R6/include   -g -O2  -Iinclude -fPIC -DXPCOM_GLUE -DMOZILLA_STRICT_API -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libpng12 -I/usr/include/freetype2 -I/usr/X11R6/include   -I/usr/local/include/gtk-2.0 -I/usr/local/lib/gtk-2.0/include -I/usr/local/include/atk-1.0 -I/usr/local/include/cairo -I/usr/local/include/pango-1.0 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/libpng12 -I/usr/include/freetype2 -I/usr/X11R6/include   -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include   -DGTK_ENABLED   Source/plugin.cpp
In file included from Source/nsScriptablePeer.h:48,
                 from Source/plugin.h:54,
                 from Source/plugin.cpp:37:
Source/nsIScriptableMplayerPlugin.h:28:60: macro "NS_DEFINE_STATIC_IID_ACCESSOR" requires 2 arguments, but only 1 given
In file included from Source/nsScriptablePeer.h:48,
                 from Source/plugin.h:54,
                 from Source/plugin.cpp:37:
Source/nsIScriptableMplayerPlugin.h:31: error: ISO C++ forbids declaration of `NS_DEFINE_STATIC_IID_ACCESSOR' with no type
Source/nsIScriptableMplayerPlugin.h:31: error: expected `;' before "virtual"
Source/nsIScriptableMplayerPlugin.h:123:64: macro "NS_DEFINE_STATIC_IID_ACCESSOR" requires 2 arguments, but only 1 given
Source/nsIScriptableMplayerPlugin.h:126: error: ISO C++ forbids declaration of `NS_DEFINE_STATIC_IID_ACCESSOR' with no type
Source/nsIScriptableMplayerPlugin.h:126: error: expected `;' before "virtual"
make: *** [plugin.o] Error 1

xpidlの警告を無視してはいけませんでした。

Source/nsIScriptableMplayerPlugin.hのオリジナルソースのNS_DEFINE_STATIC_IID_ACCESSORマクロ定義が、 指定してるgecko-sdkの定義と食い違っているのが原因なのですが、 本来は、正しくxpidlが動作すれば、Source/nsIScriptableMplayerPlugin.hが正しい姿に再生成出来て問題ないはずです。 で、今一度、xpidlの警告メッセージをよく見ると、

〜 -I  -I Source 〜
とincludeディレクトリを指定するオプション(-I)の1つ目の指定が無いようです。 Makefileによると、GECKO_IDLDIRでgecko-sdkのidlディレクトリを指定すれば よさそうです。

今度は、xpidlの警告も無く、無事make出来ました。

注意 : なぜかyahoo動画を見ると最後の方まで 再生してfirefoxごとフリーズしてしまう...

realplayer10

java

flashplayer7

flashplayer9

※ flash player 9 からOSS(Open Sound System)のドライバはサポート せれていません。事前にALSA(Advanced Linux Sound Architecture)の ドライバを利用できるようにしておかなければなりません。

acrobat reader(7.0.9)

tar-1.15.1.tar.gz

acrobat reader(7.0.x)のインストールに先だって、tar-1.13からtar-1.15.1 にバージョンアップする必要があった。

AdobeReader_enu-7.0.9-1.i386.tar.gz

AdobeReader(8.1.1)

AdobeReader-8.1.1が出ているのだけれども、TLS(Thread Local Storage)機能 が有効なglibcが前提のようで、そうするとカーネル2.6以上が自然と要求 される事になるのだけれども、カーネルを2.4から2.6に上げるのはなかなか 勇気が要るので、しばらくはAdobeReader-7.0.9で我慢しようと思っている。

plugger(汎用プラグイン)


最近(2011年ごろ)のfirefox

Slackware-13.37での作業。

ビルド

インストール(firefox)

インストール(gecko-sdk)

flashplayer

Adobe Reader9

上記の作業でプラグイン(nppdf.so)が、/usr/lib/mozilla/plugins/にコピーされる。楽ちん。

Java

http://web.kyoto-inet.or.jp/people/m-ito/linux/java.htmlを参照!。

plugin for mplayer

gnome-mplayer-1.0.4

gecko-mediaplayer-1.0.4


Return
Introduction of Kyoto internet people
[更新]