_ [debian] 続々々々・Tab Mix Plus 変

ふと Ubuntu の Firefox 2.0.0.5+2-0ubuntu2 を手元でビルドして試してみようと思い立つ。tar-in-tar なのがうざいけど quilt でパッチ管理されてるのがいい感じ。Ubuntu 由来のパッチをいろいろ取り外し。 vd_bugzilla-org_bug-255990_attachment-213337_iceweasel-2.0.0.4.patch と衝突するので、bz7969-a-thai-patch.patch は取り外し。 fontconfig が #299697 のパッチが当たって FC_ANY_METRICS という値が追加されていることを期待されているので、deb299697-lp42559-use-FC_ANY_METRICS.patch は取り外し。 これでビルドできたのは普通に Tab Mix Plus が使えた。やはり決定的な違いがあるはず。 今度はできたバイナリ同士でファイルをいろいろ交換してみることにする。Ubuntu の /etc/firefox と Debian の /etc/iceweasel は取り替えても違いはなかった。次は Ubuntu の /usr/share/firefox/chrome と Debian の /usr/share/iceweasel/chrome を取り替えてみると…これが的中。Ubuntu Firefox と Debian Iceweasel で Tab Mix Plus の動作が逆になった。ということで両者の中身を比較してみる。Ubuntu の chrome は jar で固められていたので、これはばらす。*.manifest も書き直して、diff を取る。うーむ、動作に大きく影響を与えそうな違いはない…。 ここで Ubuntu Firefox を起動すると、何故か Tab Mix Plus がきちんと動かない。あれ、と思って見てみると、jar をばらしたままだった。…まさか jar で固まってるかバラになってるか、それが動作に影響を与えてる? ということで Debian Iceweasel の chrome も jar で固めて *.manifest も書き直して、これで実行してみると… Tab Mix Plus がちゃんと動くじゃないか。パッチの問題ではなく、パッケージングの問題? 見てみると、Ubuntu でも Tab Mix Plus が動作しなかった firefox 2.0.0.4+1-0ubuntu1 は chrome がバラになっていた。 chrome を jar で固めるかバラにするかはどこで決めてるんだろう? と探してみると、どうやら configure オプションのこれっぽい。

  --enable-chrome-format=jar|flat|both|symlink
                          Select FORMAT of chrome files (default=jar)

これを flat にするとバラになるのかな。default=jar なのに何でわざわざバラにしてるんだろう…。

  • config/config.mk, config/make-jars.pl, configure.in, security/nss/lib/fortcrypt/swfort/pkcs11/config.mk, extensions/inspector/Makefile.in: Allow building without zip when building flat chrome.

  • debian/rules: Build flat chrome.

ref. /usr/share/doc/iceweasel/changelog.Debian.gz

そんなことで…。こうなったのは firefox (1.5.dfsg+1.5.0.1-3) Sun, 26 Feb 2006 11:45:15 -0500、1年半近く前の話。これ flat にするって何かいいことあるんだろうか。それと flat にしたらおかしくなるアドオンのが問題なんだろうか。bugzilla で何か情報がないか探してみると、

flat-chrome builds are for debugging, I don’t see any need to support them in universal configurations

ref. Bug 328845 – An universal build with –enable-chrome-format=flat fails with an error

Flat chrome is supported for debugging only, and should not be used in installed environments. This adds a makefile error to that effect. That debian uses flat chrome is a longstanding bug in their distribution.

ref. Bug 371253 – firefox won’t start if compiled with –enable-chrome-format=flat

ということで flat は debug 用途に使うもので、通常利用では jar にしておくべきのようだ。#432970 に –enable-chrome-format=jar に戻してもらうように要請。

_ [debian] iceweasel 2.0.0.5-2vd2

などのパッチ

  • vd_iceweasel-2.0.0.4_without-gconf.patch
  • vd_iceweasel-2.0.0.4_bug-jp-4575+3106_bug-org_337036+221583.patch
  • vd_bugzilla-org_bug-255990_attachment-213337_iceweasel-2.0.0.1.patch
  • bugzilla-org_bug-330852_attachment-215418.patch

を当て、–enable-chrome-format=jar にして作成。