_ [comp] MozFx GNOME/GConf 調査

MozFx から GNOME と GConf の影響を取り除いてみようと、src を眺めてみる。

  • accessible/src/atk/nsAppRootAccessible.cpp どうしようもない?
  • uriloader/exthandler/Makefile.in

      ifeq ($(MOZ_WIDGET_TOOLKIT),gtk2)
      OSHELPER        += nsGNOMERegistry.cpp
      endif
    

    コメントアウト。

  • uriloader/exthandler/unix/nsOSHelperAppService.cpp MOZ_WIDGET_GTK2 defined だと GNOME が有効になってしまうようなので、先頭で #undef MOZ_WIDGET_GTK2。
  • widget/src/gtk/{nsGtkEventHandler.cpp,nsGtkIMEHelper.cpp} widget は gtk2 なので関係ない。
  • widget/src/gtk2/nsWindow.cpp

      #ifdef ACCESSIBILITY
      (中略)
      static const char sSysPrefService [] = "@mozilla.org/system-preference-service;1";
      static const char sAccEnv [] = "GNOME_ACCESSIBILITY";
      static const char sAccessibilityKey [] = "config.use_system_prefs.accessibility";
      #endif
    

    –disable-accessibility で無効にできる模様。が、全体でやると Find As You Type も無効になってしまうのか。ここに #undef ACCESSIBILITY を追加。

  • widget/src/gtk2/nsWindow.h nsWindow.cpp で #undef ACCESSIBILITY していると、実行時に

      nsNativeComponentLoader: SelfRegisterDll(libwidget_gtk2.so)
       Load FAILED with error: /usr/local/moz/firefox-0.8/components/libwidget_gtk2.so:
       undefined symbol: _ZN8nsWindow23DispatchAccessibleEventEPP13nsIAccessible
    

    となってしまったので、ここでも #undef ACCESSIBILITY を追加。

  • extensions/pref/Makefile.in

      ifdef MOZ_ENABLE_GTK2
      DIRS            += system-pref
      endif
    

    コメントアウト。

これでいいかな。いつもは mozilla.org の official binary を使っているので、Debian の MozFB の rules を参考に make。

../configure \
        --prefix=/usr \
        --with-default-mozilla-five-home=/usr/lib/mozilla-firefox \
        --enable-default-toolkit=gtk2 \
        --with-user-appdir=.mozilla-firefox \
        --with-system-mng=/usr \
        --with-system-png=/usr \
        --with-system-jpeg=/usr \
        --disable-mailnews \
        --disable-composer \
        --disable-plaintext-editor-only \
        --enable-xprint \
        --enable-crypto \
        --enable-strip-libs \
        --enable-mathml \
        --disable-tests \
        --disable-debug \
        --enable-xft \
        --enable-optimize="-pipe -w -mcpu=i686 -march=i686 -Wall -Wstrict-prototypes -O2" \
        --with-system-zlib=/usr \
        --without-system-nspr \
        --enable-xinerama \
        --enable-extensions=default,-irc,-venkman \
        --disable-pedantic \
        --disable-long-long-warning
make

一応 make は通った。実行してみると、問題なく動くようだ。 GConf2 が入った状態で実行してみると、gconfd-2 が起動しなくなった。成功。 一方、uim-gtk2.0 を入れてみると、例の socket/pipe 増殖は起きた。てことはこの GNOME/GConf の有無は無関係か。GTK+2 回り?

_ [comp] Ported lm80 to Linux 2.6

lm80 driver が 2.6 に port されたので試してみる。.config に

CONFIG_SENSORS_LM80=m

を追加。drivers/i2c/chips/Makefile に

obj-$(CONFIG_SENSORS_LM80)      += lm80.o

を追加。include/linux/autoconf.h と include/config/sensors/lm80/module.h に

#define CONFIG_SENSORS_LM80_MODULE 1

を追加。 ここで make drivers/i2c/chips/lm80.o で module 作成。早速読み込ませてみるが、きちんとデータ取れていないような…。様子見。

_ [comp] meta refresh

間違えていたのでメモ代わりに。

<meta http-equiv="refresh" content="3;URL=/d/" \>

URL= が抜けていると、M$IE でループしたらしい。確認したことないもんで。