OpenBSD 5.4 で Firefox 29.0!

Firefox 29.0

OpenBSD 5.4 で Firefox 29.0 をビルドしました。amd64 用のを dropbox に置いときます:https://www.dropbox.com/s/benht2nh5el69mf/x86_64-unknown-openbsd54-firefox-29.0.tar.xz

日本語パッケージはこれが使えます:
ftp://ftp.mozilla.org/pub/firefox/releases/29.0/linux-x86_64/xpi/ja.xpi

about:config で general.useragent.locale に ja-JP をセットして firefox を再起動すれば日本語メニューになります。

(コウヅ)

OpenBSD 5.4 で Firefox 28.0!

firefox-28.0

OpenBSD 5.4 で Firefox 28.0 をビルドしました。amd64 用のを dropbox に置いときます:https://www.dropbox.com/s/j7llznr9lioribm/x86_64-unknown-openbsd54-firefox-28.0.tar.xz

日本語パッケージはこれが使えます:
ftp://ftp.mozilla.org/pub/firefox/releases/28.0/linux-x86_64/xpi/ja.xpi

about:config で general.useragent.locale に ja-JP をセットして firefox を再起動すれば日本語メニューになります。

(コウヅ)

OpenBSD 5.4 に Firefox 26.0 をインストール!

firefox 26.0

何だか気分が乗ってきたので、Firefox 26.0 もドカンとインストールしました!で、完成品を dropbox にアップロードしてみました。x86_64 用です。

ttps://www.dropbox.com/s/e1johyzo37gze2i/x86_64-unknown-openbsd54-firefox-26.0.tar.xz

ビルドの仕方は 25.0.1 と同じですが、いくつかつまづくポイントがありました。diff を載せておきます:

--- ipc/chromium/src/base/dir_reader_bsd.h.orig Wed Dec 11 13:44:06 2013
+++ ipc/chromium/src/base/dir_reader_bsd.h      Wed Dec 11 13:57:27 2013
@@ -59,7 +59,7 @@
     if (offset_ != size_)
       return true;
 
-    const int r = getdents(fd_, buf_, sizeof(buf_));
+    const int r = getdirentries(fd_, buf_, sizeof(buf_), basep_);
     if (r == 0)
       return false;
     if (r == -1) {
@@ -91,6 +91,7 @@
  private:
   const int fd_;
   char buf_[512];
+  off_t *basep_;
   size_t offset_, size_;
 
   DISALLOW_COPY_AND_ASSIGN(DirReaderBSD);

↑ は以前からある問題みたいです。
https://bugzilla.mozilla.org/show_bug.cgi?id=909005
https://hg.mozilla.org/integration/mozilla-inbound/rev/66991961691d

--- media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc.orig    Wed Dec 11 14:17:30 2013
+++ media/webrtc/trunk/webrtc/modules/audio_device/audio_device_impl.cc Wed Dec 11 14:37:25 2013
@@ -40,7 +40,7 @@
     #include "audio_device_utility_android.h"
     #include "audio_device_jni_android.h"
 #elif defined(WEBRTC_LINUX) || defined(WEBRTC_BSD)
-    #include "audio_device_utility_linux.h"
+    #include "/home/me/src/mozilla-release-26.0/media/webrtc/trunk/webrtc/modules/audio_device/linux/audio_device_utility_linux.h"
 #elif defined(WEBRTC_IOS)
     #include "audio_device_utility_ios.h"
     #include "audio_device_ios.h"

↑ヘッダファイルが見つからない、というエラーが出たので、投げやりにフルパスを書きました。

--- media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp.orig  Wed Dec 11 14:40:21 2013
+++ media/webrtc/trunk/webrtc/system_wrappers/source/spreadsortlib/spreadsort.hpp       Wed Dec 11 14:57:30 2013
@@ -21,6 +21,8 @@
 #include <vector>
 #include "webrtc/system_wrappers/source/spreadsortlib/constants.hpp"
 
+#define getchar boost_getchar
+
 namespace boost {
   namespace detail {
        //This only works on unsigned data types

これも以前からある問題みたいです。
http://lists.freebsd.org/pipermail/freebsd-gecko/2013-April/003248.html

インストールしたら、起動する前に ~/.mozilla を削除しないと変なエラーが出て Firefox がおっ死にます。

(コウヅ)

OpenBSD 5.4 に Firefox 25.0.1 をインストール!

About Firefox 25.0.1

何と!本日 Firefox 26.0 がリリースされました。やっと 25.0.1 がビルドできたと喜んでたのに…。

ともあれ、この経験は決して無駄にならないはず。激闘の記録をここに残します。

まず、ビルドに必要なマシン。ネットブックはお呼びでないです。VirtualBox でメモリは 4GB 割り当てました。それ以下だとメモリ不足でビルドできません。スワップは 8GB 用意しましたが、どれくらい実際に使ったのか不明です。ディスクの空き容量は 10GB 以上必要です。ビルドにかかる時間は MacBook Air (Core i5 1.8GHz) 上の VirtualBox (CPU コア1個割り当て) で 5, 6 時間といったところでしょうか。ファンがうなりまくってうるさいです。

ビルドに必要なパッケージ。g++-4.8.1p0, gcc-4.8.1p2, gmake, gtar, zip, unzip, yasm.

ビルドの仕方。こんな感じでやってみました:

# bash を使ってます
mkdir ~/src
cd ~/src
# Firefox のソース tar ボールを予めダウンロードしておいてね
gtar -C src -xvjf firefox-25.0.1.source.tar.bz2
# ビルドの作業用ディレクトリを作ってそこに移動します
mkdir firefox-25.0.1
cd firefox-25.0.1
# OpenBSD の tar コマンドが make の途中でずっこけるので、gtar を使わせます
sudo ln -sf /usr/local/bin/gtar /usr/local/bin/tar
export PATH=/usr/local/bin:$PATH
# 標準の gcc 4.2.1 だと古すぎるようなので、4.8.1 を指定してみました
export CC=/usr/local/bin/x86_64-unknown-openbsd5.4-gcc-4.8.1
export CXX=/usr/local/bin/x86_64-unknown-openbsd5.4-eg++
# とにかくメモリが大量に必要です
ulimit -d 4000000
# 上で解凍した Firefox のソースディレクトリ内の configure を実行します
../mozilla-release/configure
# OpenBSD 標準の make だとまともに動かないので、GNU make を使います
gmake
sudo gmake install

インストールしたら、日本語パックの ja.xpi をダウンロードします。どこからダウンロードできるのかよく分かりませんでしたが、これが使えました:
ftp://ftp.mozilla.org/pub/firefox/releases/25.0.1/linux-x86_64/xpi/ja.xpi

ja.xpi のインストール方法。Firefox のウインドウに向かって ja.xpi ファイルをファイルマネージャからドラッグアンドドロップ!続いてアドレスバーに about:config と入力し、general.useragent.locale に ja-JP という値を設定して Firefox を再起動します。

Installing ja.xpi

出来上がったブツを xz で圧縮してみたら、309 MB もありました。気軽にアップロードしかねる大きさです。ビルド自体は OpenBSD 5.4 上ならカンタンだと分かったので、次は 26.0 のビルドに挑戦しよう!?

(コウヅ)

フグも愛せよ! OpenBSD 5.4 をデスクトップ PC として使っちゃおう!

openbsd54_xfce4

さて、OpenBSD です。トゲトゲだらけのキモカワイイ、パフィー君がマスコットの怪しい OS です。ルーター用の OS として人気があるような気がします。PF (Packet Filter) は FreeBSD にも移植されました。

かつてはインストールするだけでも大変!て感じだった気がしますが、今はどうなのか、いっちょ試してみました。結果から言うと、VirtualBox は何ら問題なし。MSI の U135DX というネットブック(すでに懐かしい響き!)にも USB メモリ経由でインストールできちゃいました。拍子抜けするほど簡単!ただ、パーティショニングを自動にすると、異様に細かく分けようと提案してくるので、/usr/* は全部 /usr にまとめました。

※ live usb イメージは http://liveusb-openbsd.sourceforge.net/ で入手できます。

せっかくインストールしたので、表題の通り、デスクトップ PC としての環境を整えてみます。

まず Ports ツリーを /usr/ports に展開します。*BSD 系ではお馴染みの仕組みらしいですが、要は色んなソフトウェアの依存関係を調べて必要なソースコードをダウンロードしてコンパイルしてインストール、という一連の作業を自動化してくれる仕組みです。中身は Makefile. 詳しくはマニュアルを読んでね!

Ports を展開したら PKG_PATH 環境変数に最寄りの OpenBSD ミラーサイトを設定します。僕はとりあえず /etc/profile に書いておきました。なんちゃって root なので、こういうのってどこに書くべきか悩んじゃいます。ついでに LANG に ja_JP.UTF-8 を設定しておきます。ともあれ、 PKG_PATH を設定すると、pkg_add コマンドでバイナリパッケージをズバッとインストールできます。要は yum とか aptitude みたいなもんですね。パッケージの検索は /usr/pots で make search key=hoge とするようです。 詳しくはマニュアルを読んでね!

どんなデスクトップ環境(Gnome, KDE, Xfce 等々)を選ぶか、ですが、軽量そうな Xfce にしました。インストールは至って簡単で、pkg_add -v xfce-4.10 とするだけ。すごい!で、VirtualBox やら物理マシンやらの画面で直接 Xfce を起動するなら、~/.xsession に startxfce4 と書いて XDM を起動すれば良いんですが(LANG とかもついでに書いとくといいと思います)、今回は VNC でリモートマシンから操作できるようにします。

最初は Xvnc を使って XDM だか GDM だかの画面も VNC に表示させようと思ったんですが、何故か OpenBSD 5.x には Xvnc が用意されてないみたいです。しょうがないので、OpenBSD コミュニティおすすめ(?)の方法、Xvfb + x11vnc を執ってみました。

以下のスクリプトを用意します:

export DISPLAY=:1
Xvfb :1 -screen 0 1152x864x24 &
/usr/local/bin/startxfce4 &
x11vnc -display :1 -bg -nopw -listen localhost -xkb

Xvfb で仮想的なスクリーンを用意して、そこに Xfce を描画して、そのスクリーンに VNC クライアントから接続できるよう x11vnc で待ち受ける、ということみたいです。で、この OpenBSD マシンに接続するクライアント PC からは、まず以下のように ssh で接続します:

ssh -L 5900:localhost:5900 <ユーザー名>@<openbsdのアドレス>

Windows の場合は putty で同じことができます。確か port forward だかなんだかいう項目があったはず。ssh でログインしたら、上のスクリプトを起動します。 あとはローカルの VNC クライアントを起動して、自分自身 (localhost) に接続すると、あら不思議、Xfce の画面が表示されます。

そのままだと日本語のフォントがヒドイので、フォントを設定します。/usr/ports/fonts/ に ja-* というパッケージがあるので、pkg_add でインストールしましょう。それから Xfce のコントロールパネルで appearance の設定です。IPA UI ゴシックが無難です。

日本語の入力は anthy にしてみました。xfce を起動すると iBus も一緒に起動するので、ibus-anthy-1.5.0 をインストールし、iBus のコントロールパネルで anthy と Japanese を追加しましょう。Ctrl+space で日本語入力(anthy)と直接入力 (Japanese) が切り替えられます。

ノート PC に OpenBSD をインストールした場合、電池の残量が表示されると便利です。xfce4-battery-1.0.5p1 というパッケージがあるので、これをインストールして、Xfce4 のパネルの上で右クリックし、パネルの追加を選択、バッテリー残量のパネルを選択して下さい。他にも CPU 使用率やらメモリ使用率やらを表示するパネルがあるので、入れてみると良いかもしれません。

Web ブラウザは firefox-22.0 のパッケージが利用できます。日本語化するには、firefox-i18n-ja-22.0 もインストールします。するとご親切に言語の切り替え方を案内してくれます。Firefox を起動し、アドオンの一覧を表示します。言語の一覧から Japanese を有効にします。続いてアドレスバーに about:config と入力し、 general.useragent.locale に ja-JP をセットします。そして Firefox を再起動すると、メニューが日本語になります。

openbsd54_firefox

Firefox の最新版は 25.0.1 なので、何とかこれをビルドしたいんですが、どうなるやら。

※ Firefox 25.0.1 をビルドしました!
OpenBSD 5.4 に Firefox 25.0.1 をインストール!

(コウヅ)