2019/07/01

NetBSDのエミュレーション環境でLinux版firefox 67.0.4は動かなかった

dynabook SS SX/15AにNetBSD/i386を入れ、MATEデスクトップ環境を利用しています。使用しているアプリケーションはpkgsrcから入れました。もう1年以上も更新していなかったので、6月上旬にpkg_rolling-replaceを使って全更新をおこなおうと試みたのですが、いろいろなトラブルに見舞われ環境が崩壊してしまいました。pkg_rolling-replaceは諦めてpkginで何とか全更新を仕上げましたが、まだ崩壊前と同等になったとは言えません。

最優先で復活させたいのがfirefoxです。

pkgin search firefoxで確認すると、firefox 66.0.1の言語パックがあるのに、本体が存在しないという不思議な状態になっています。
  • firefox-l10n-66.0.1  Language packs for www/firefox (version 66)
  • firefox36-l10n-3.6.28  Language packs for www/firefox36 (version 3.6.x)
  • firefox45-45.9.0nb18  Web browser with support for extensions (version 45)
  • firefox45-l10n-45.9.0  Language packs for www/firefox (version 45)
  • firefox52-52.9.0nb12  Web browser with support for extensions (version 52)
  • firefox52-l10n-52.9.0  Language packs for www/firefox (version 52)
  • firefox60-l10n-60.6.1  Language packs for www/firefox60 (version 60)
pkgsrcから自前でビルドすれば良いのかもしれませんが、どうも面白くありません。例えばLibreOfficeはLinux用のRPMを展開しただけ(+α)ですから、Firefoxも同じように出来ないのでしょうか。Mozillaのサイトに行けば、Linuxのディストリビューションとは無関係のバイナリが置いてあります。これを、NetBSDのLinuxエミュレーション環境で動かせることが出来れば、文句なしです。

そこで実験してみました。LibreOffice6が導入済みなので、Linuxエミュレーション環境も出来ています。openSUSE 13.1相当というのが旧いとは思いますが、仕方ありません。Mozillaのサイトから拾ってきた「firefox-67.0.4.tar.bz2」を/usr/pkg/optに展開しました。展開するとfirefoxというディレクトリができますが、firefox-67.0.4に変えておきました。

 ここで共有ライブラリの参照状況を確認してみます。
# /usr/pkg/emul/linux/usr/bin/ldd  /usr/pkg/opt/firefox-67.0.4/firefox
        libpthread.so.0 => /lib/libpthread.so.0 (0xbbab9000)
        libdl.so.2 => /lib/libdl.so.2 (0xbbab4000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xbb9c7000)
        libm.so.6 => /lib/libm.so.6 (0xbb982000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xbb965000)
        libc.so.6 => /lib/libc.so.6 (0xbb7ee000)
        /lib/ld-linux.so.2 (0xbbadd000)

not foundが出ていないので、もしかしたら動作するかと思いましたが、動かしてみると不足している共有ライブラリがあるようです。メッセージに出てきたら、RPMを追加し、また動かしてみるという作業を続けました。その結果、以下のRPMを追加しました。
  1. libatk-bridge-2_0-0-2.12.1-2.5.i586.rpm
  2. libatomic1-4.8.1_20130909-3.2.1.i586.rpm
  3. libatspi0-2.12.0-2.5.i586.rpm
  4. libcairo-gobject2-1.15.2-3.2.i586.rpm
  5. libgtk-3-0-3.12.2-1.110.i586.rpm

この状態でfirefoxを動かしてみると、動かない訳ではないのですが、まだ何か問題があるようです。
# /usr/pkg/opt/firefox-67.0.4/firefox --version
Mozilla Firefox 67.0.4
# /usr/pkg/opt/firefox-67.0.4/firefox --help
Usage: /usr/pkg/opt/firefox-67.0.4/firefox [ options ... ] [URL]
       where options include:

X11 options
  --display=DISPLAY  X display to use
  --sync             Make X calls synchronous
  --g-fatal-warnings Make all warnings fatal

Firefox options
  -h or --help       Print this message.
  -v or --version    Print Firefox version.
  -P <profile>       Start with <profile>.
  --profile <path>   Start with profile at <path>.
  --migration        Start with migration wizard.
  --ProfileManager   Start with ProfileManager.
  --no-remote        Do not accept or send remote commands; implies
                     --new-instance.
  --new-instance     Open new instance, not a new window in running instance.
  --UILocale <locale> Start with <locale> resources as UI Locale.
  --safe-mode        Disables extensions and themes for this session.
  --allow-downgrade  Allows downgrading a profile.
  -MOZ_LOG=<modules> Treated as MOZ_LOG=<modules> environment variable, overrides it.
  -MOZ_LOG_FILE=<file> Treated as MOZ_LOG_FILE=<file> environment variable, overrides it.
                     If MOZ_LOG_FILE is not specified as an argument or as an environment variable,
                     logging will be written to stdout.
  --headless         Run without a GUI.
  --save-recordings  Save recordings for all content processes to a directory.
ExceptionHandler::GenerateDump cloned child ExceptionHandler::WaitForContinueSignal waiting for continue signal...
2288
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
[ 6100.7246708] sorry, pid 2122 was killed: orphaned traced process
[1]   Killed                  /usr/pkg/opt/firefox-67.0.4/firefox --help

あと一歩という感じなので、なんとか解決させたいところです。しかし、あと一歩だと思って調査を続けていったら、ゴールは無限の彼方という可能性もないわけではありません。ここは一端撤退しようかと思います。

0 件のコメント:

コメントを投稿