Friday Dec 19, 2008

OpenSolaris : Mozilla Firefox や SeaMonkey をビルドする

OpenSolaris にしてからしばらく Mozilla 関係はビルドしていませんでしたが SeaMonkey を使いたかったので自分でビルドしてみることにしました。通常の Solaris と違い IPS になっているのでインストールしないといけないパッケージも違ってきます。 developer.mozilla.org には Solaris 用のページがちゃんと用意されているのですね。すばらしい!
$ pfexec pkg install SUNWhea SUNWsvn SUNWmercurial SUNWsfwhea SUNWxwinc SUNWxorg-headers SUNWgm4 SUNWgnome-common-devel SUNWcvs SUNWgmake sunstudio
開発環境の java-dev, ss-dev, ruby-dev, amp-dev などをインストールしてあるのであれば追加で必要なのは SUNWsfwhea, SUNWxwinc, SUNWxorg-headers, SUNWgnome-common-devel です。

ソース:
ちょうど 1.1.4 が出たばかりなのでそれを使います。

ビルドオプションを設定して configure を走らせます。Sun Studio Express を使うので次のように $CC と $CXX を設定します。

環境設定:
export CC=/opt/SunStudioExpress/bin/cc
export CXX=/opt/SunStudioExpress/bin/CC
export LDFLAGS="-L/usr/sfw/lib -R/usr/sfw/lib"
.mozconfig:
Firefox をビルドする場合には suite を browser にします。
ac_add_options --enable-application=suite
ac_add_options --disable-optimize
ac_add_options --disable-debug
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-xft
ac_add_options --disable-freetype2
ac_add_options --disable-svg
ac_add_options --disable-canvas
ac_add_options --disable-auto-deps
ac_add_options --disable-tests
これで configure して gmake を走らせればビルドできます。

Thursday Aug 23, 2007

Patches for Sun Studio 12

Sun Studio 12 のパッチが出ていますね。

Tuesday Jul 24, 2007

Solaris Express Developer Edition : 開発ツール群を後から入れるには

Solaris Express, Devloper Release (SXDE) はもうインストールして使ってみましたか? 最新の C/C++ 開発環境 Sun Studio 12 や Java の開発環境の NetBeans 5.5 などが入っていてこれ1枚インストールしただけですぐに使い始められます。

インストールは sasanuma さんのインストールガイドを見ていただくとして、

開発ツール担当の私としてはその中で特に知っておいてほしい点を!!

メモリが足りない場合などやネットワークインストールなどで Solaris Express を選んでインストールした場合は以下にあるように開発ツールがインストールされません。



そのような時は後から開発ツールをインストールしましょう。install_devtools.sh を実行します。


Tuesday Jun 05, 2007

Sun Studio 12 が正式リリース, Sun Studio Express も 2007年6月ビルドを公開

Sun の C, C++, Fortran の統合開発環境 Sun Studio 12 が正式にリリースされました。Solaris と Linux をサポートしています。ダウンロードや詳細な情報は以下を参考にしてください。(日本語版っていつでしたっけ? > 大野さん)
また開発途中のビルドを定期的に提供している Sun Studio Express もアップデートがあったようです。
IDE は NetBeans 5.5.1 IDEC/C++ Pack がベースとなっています。これは前に Sun Studio Express を紹介した時にも書きました。以下の製品情報では IDE のビルドは 200704122300 でこれは 5.5.1 の正式版ですね。



やはり正式版になってしっかりと書かれてきたのはサポートするプラットフォームです。 リリースノートを見ると Linux に関するプラットフォームは以下の二つです。
  • SuSE Linux Enterprise Server 9 with Service Pack 3
  • RedHat Enterprise Linux 4
Solaris に関しても正式版では「 Solaris OS 9 and 10 1/06」のような書き方がされていますね。

Sun Studio Express はそれ自体開発ビルドということもあり、リリースノートの以下の記述にあるように開発が進んでいるプラットフォームでもどんどん使ってほしいということだと思います。

If you want to try Sun Studio Express on a Solaris Express build (Solaris Express, Developer Edition; OpenSolaris, etc.), or on any Linux distribution which minimally has the 2.6.X Linux kernel and 2.3.3+ glibc, we would very much like to receive your input.

Tuesday Mar 13, 2007

Sun Studio Express 4 - February 2007 Build

C/C++ の開発環境 Sun Studio Express 4 が出ています。NetBeans IDE 5.5.1C/C++ アドオンパックをベースとしています。詳しくは以下のページ、README をご覧ください。
前回は単なるファイルの tar でしたが今回はインストーラもダウンロードできるようになったんですね。



まだインストールして Mozilla SeaMonkey をビルドしてみただけですが前回 Sun Studio Express 3 の時に SeaMonkey のビルドでへくった問題、バグ 6513361 無事に修正されていることを確認しました。

Tuesday Jan 30, 2007

Linux Sun C/C++ コンパイラで SeaMonkey のビルドを試みましたが…

残念ながら力不足で Sun Studio Express 3 の Linux 用 Sun C/C++ コンパイラを使って Mozilla SeaMonkey はビルドできませんでした。コンパイラの問題というわけではなくて、そもそも Mozilla のビルドシステムは Linux ならば GCC を前提としているようです。

結局最後までいかなかったわけですが、2つほどコンパイラの問題に遭遇したのでメモしておきます。
  • 6449991 : __i386__ macro is not defined by compiler when using -Ox flag with -m32
-Ox フラグをつけると __i386__ マクロが定義されないみたいです。これ最初ずいぶん悩んでしまいました…
  • 6509190 : Problem with __nonnull macro
Developer Forums にも載っていた問題です。私は Fedora Core 6 で試していたんですが /usr/include/string.h 内でこけてしまうというものです。バグ自体は直っているらしいのですがフォーラムに載っていたパッチ (string.h 側の) をあてました。

Wednesday Jan 17, 2007

Building Mozilla SeaMonkey with new Sun Studio Compiler on Solaris Nevada x86

Solaris Nevada x86 上で Sun Studio Express 3 を使って Mozilla SeaMonkey をビルドしてみました。

普通に Sun Studio 11 と同様の 手順でビルドは成功しました。以下は about:buildconfig の結果です。



3つほど注意点をメモしておきます。

Mozilla 側のバグ、
  • Bugzilla 323562: Should find Xrender, freetype2, fontconfig using pkg-config
は直っていません。-L/usr/sfw/lib の追加が必要でした。

Solaris Nevada は Sun OS 5.11 なので次のファイルが必要でした。
ただこのファイルはなぜか SeaMonkey 1.0.7 のソース tarball には入っていませんでした。なのでソースは cvs から引っ張ってきたものを使うことにしました。

Sun Studio 11 でも最初のリリースで発生していたのですが -xO3 付きだとコンパイラ自体がエラーになる箇所がありました。これはバグ 6513361 としてバグレポートしておきました。このファイルだけは -xO をはずしてコンパイルしました。
  • content/xslt/src/xpath/txMozillaXPathTreeWalker.cpp

ビルドに使用したオプションの詳細は次の通りです。 以下のように環境変数を設定しました。
set path=(. /opt/SUNWspro/bin /usr/sfw/bin /opt/sfw/bin /usr/ccs/bin /usr/bin)

setenv MOZ_CO_PROJECT suite
setenv CC /opt/SUNWspro/bin/cc
setenv CXX /opt/SUNWspro/bin/CC
setenv MAKE /usr/sfw/bin/gmake
.mozconfig です。SeaMonkey なので suite と指定します。デフォルトのツールキットは今まで gtk2 を指定していたのですが cairo-gtk2 を指定できるようですね。
mk_add_options MOZ_CO_PROJECT=suite
ac_add_options --enable-application=suite
#
ac_add_options --enable-xft
ac_add_options --enable-svg
ac_add_options --enable-canvas
ac_add_options --enable-optimize=-xO3
ac_add_options --enable-default-toolkit=cairo-gtk2
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-shared
ac_add_options --disable-auto-deps
ac_add_options --disable-freetype2
ldd の結果です。
% ldd seamonkey-bin
	libpthread.so.1 =>	 /lib/libpthread.so.1
	libxpcom_core.so =>	 ./libxpcom_core.so
	libplc4.so =>	 ./libplc4.so
	libnspr4.so =>	 ./libnspr4.so
	libdl.so.1 =>	 /lib/libdl.so.1
	libgtk-x11-2.0.so.0 =>	 /usr/lib/libgtk-x11-2.0.so.0
	libgdk-x11-2.0.so.0 =>	 /usr/lib/libgdk-x11-2.0.so.0
	libX11.so.4 =>	 /usr/openwin/lib/libX11.so.4
	libCrun.so.1 =>	 /usr/lib/libCrun.so.1
	libc.so.1 =>	 /lib/libc.so.1
	libplds4.so =>	 ./libplds4.so
	libm.so.2 =>	 /lib/libm.so.2
	libthread.so.1 =>	 /lib/libthread.so.1
	librt.so.1 =>	 /lib/librt.so.1
	libsocket.so.1 =>	 /lib/libsocket.so.1
	libnsl.so.1 =>	 /lib/libnsl.so.1
	libgdk_pixbuf-2.0.so.0 =>	 /usr/lib/libgdk_pixbuf-2.0.so.0
	libgmodule-2.0.so.0 =>	 /usr/lib/libgmodule-2.0.so.0
	libglib-2.0.so.0 =>	 /usr/lib/libglib-2.0.so.0
	libgobject-2.0.so.0 =>	 /usr/lib/libgobject-2.0.so.0
	libatk-1.0.so.0 =>	 /usr/lib/libatk-1.0.so.0
	libcairo.so.2 =>	 /usr/lib/libcairo.so.2
	libpango-1.0.so.0 =>	 /usr/lib/libpango-1.0.so.0
	libpangocairo-1.0.so.0 =>	 /usr/lib/libpangocairo-1.0.so.0
	libXrandr.so.2 =>	 /usr/X11/lib/libXrandr.so.2
	libXrender.so.1 =>	 /usr/sfw/lib/libXrender.so.1
	libXi.so.5 =>	 /usr/lib/libXi.so.5
	libXext.so.0 =>	 /usr/lib/libXext.so.0
	libfontconfig.so.1 =>	 /usr/lib/libfontconfig.so.1
	libmlib.so.2 =>	 /usr/lib/libmlib.so.2
	libXau.so.6 =>	 /usr/openwin/lib/libXau.so.6
	libmp.so.2 =>	 /lib/libmp.so.2
	libmd.so.1 =>	 /lib/libmd.so.1
	libscf.so.1 =>	 /lib/libscf.so.1
	libfreetype.so.6 =>	 /usr/sfw/lib/libfreetype.so.6
	libpng12.so.0 =>	 /usr/lib/libpng12.so.0
	libz.so.1 =>	 /usr/lib/libz.so.1
	libpangoft2-1.0.so.0 =>	 /usr/lib/libpangoft2-1.0.so.0
	libexpat.so.0 =>	 /usr/sfw/lib/libexpat.so.0
	libuutil.so.1 =>	 /lib/libuutil.so.1
	libgen.so.1 =>	 /lib/libgen.so.1
	/usr/lib/libmlib/libmlib_sse2.so.2
% 

Thursday Dec 28, 2006

Sun Studio Express : NetBeans 5.5.1 ベースの Sun Studio

おっと、大野さん、Sun Studio にも Express というのがあるんですね、すでに 3 回目だそうですが前の2回は気がつきませんでした。
Sun Compiler が Linux でも使えるので Fedora Core 6 にインストールしてみました。インストールといっても StudioExpress-linux-2006-12.tar.bz2 を展開するだけなのですが…。

Linux は README を読むと 2.6.X Linux Kernal、2.3.3+ glibc 以降に対応とあります。また元になっている NetBeans は NetBeans 5.5.1 とありますね。 ディレクトリは 5.5_mars です。

$ ls /opt/sun
netbeans-5.5_mars/  sunstudiomars/
$ 

Sun Studio を起動してバージョンを確認すると、NetBeans IDE のクラスタ、C/C++ Pack のクラスタ (cnd1)、それに Sun Studio のクラスタでしょうか、atd1 と prod が入っていることがわかります。



コンパイラのバージョンは 5.9 Build35_2 ですね。
$ CC -V
CC: Sun C++ 5.9 Linux_i386 Build35_2 2006/12/04

$ cc -V
cc: Sun C 5.9 Linux_i386 Build35_2 2006/12/04
usage: cc [ options] files.  Use 'cc -flags' for details
コンパイラはまったく詳しくないのですが、これで Mozilla Seamonkey をビルドしてみようかな〜と思っています。 Fedora Core と Solaris Nevada x86 でやってみたいと思います。さてさてうまくいくでしょうか。

Sunday Mar 19, 2006

Two tips for compiling Mozilla by Sun Studio 11 on Solaris 10

今日時点のツリーで SeaMonkey や Firefox を Solaris で Studio 11ビ ルドするとおそらく以下の2つの問題でビルド自体が止まってしまうと思います。

Bugzilla 323562: Should find Xrender, freetype2, fontconfig using pkg-config

pkg-config を使っていないために /usr/sfw/lib が -L で追加されず起こる問題のようです。configure の後、config/autoconf.mk の MOZ_CAIRO_LIBS に -L/usr/sfw/lib を追加しましょう。

MOZ_CAIRO_LIBS = -L$(LIBXUL_DIST)/lib -lmozcairo -lmozlibpixman \\
-L/usr/sfw/lib -lXrender -lfreetype -lfontconfig

Cairo 関係なのですが私は Cairo についてはよくわかりません。

6372230 x86, ube, Assert has been violated at '.../ube/graphs/src/scregion.c 305' with using -xO\* option

これは Studio 11 の問題です。x86 だけで発生する問題ですが -xO オプションを使うと js/src/jsinterp.c のビルドでエラーが出てしまうものです。これは Studio 11 の 最 新のパッチ を入れることで解決します。120759 で直っています。

SeaMonkey の Solaris での ビルド方法の詳細は以前のエントリを参照してください。

Wednesday Feb 01, 2006

SeaMonkey 1.0 を Solaris 10 + Sun Studio 11 でビルドしよう!!

SeaMonkey 1.0 が出ました。"Mozilla Application Suite" と呼ばれるものでブラウザ、メーラー、コンポーザーがひとつになったものです。Firefox, Thunderbird のようにブラウザ機能、メーラー機能を別にしたものではなく本来の Mozilla ブラウザと思っていただければいいかと思います。私は FirefoxThunderbird も使いますしブログに色々書いていますが実はこの Mozilla Suite が一番好きだったりします。慣れているからかもしれませんが、やっぱり全部1つに入っていた方が便利ですよね。Firefox を使っているときに左下のステータスバーにある「メール」アイコンをついつい探してしまいます。「ブラウザが落ちてしまって 書きかけのメールもどこかにいってしまった…ブラウザとメーラーは分けて欲しい…」なんて話を聞きますが…それは落ちてしまうのが悪いわけで、落ちなければ一 体化していたほうがやっぱり便利ですよね。

前から Mozilla のビルド方法を書きたいと思っていたのですが、今回は SeaMonkey 1.0 リリース記念に Solaris 10 + Sun Studio 11 のコンパイラで SeaMonkey をビルドしてみましょう!

1. ビルドについての概要

UNIX あるいは Linux でどのようにビルドしたらよいかというのは以下のドキュメントに詳しく書かれています。ビルドのオプションも一通りではありませんから読んでみるのもおも しろいと思います。ここでは一番簡単なオプションでいきましょう。

Linux Build Prerequisites

Sun Studio でコンパイルするにはほんの少しだけ環境を変更する必要があります。

2. 必要なソフトウェアをそろえる

Solaris 10 は「開発者」以上でインストールしてある必要があります。


3. 環境設定

パス

次のものはパスに通しておきましょう。Sun Studio 11 の bin/ と /usr/sfw/bin を入れる必要があります。

/opt/sunstudio11/bin/
/usr/ccs/bin
/usr/sfw/bin

コンパイラ、make コマンド

コンパイラは Sun Studio の cc と CC を使います。また make コマンドは gmake を使う必要があります。gmake は /usr/sfw/bin に入っているはずです。 次のように環境変数を設定しておきましょう。

setenv CC cc
setenv CXX CC
setenv MAKE gmake

4. .mozconfig ファイル

Mozilla をビルドするときには $HOME/.mozconfig ファイルにビルドオプションを書いておくのが一般的です。


いろんなオプションがありますね。またオンラインで項目を選んでいくと .mozconfig を自動生成してくれる Unix Build Configurator というのがあります。これも試してみるといいかもしれません。


ここでは Solaris 10 JDS で使うための一番簡単なオプションを指定することにしますね。今回私が使った .mozconfig ファイルです。
enable-application には suite を指定します。ここが Firefox や Thunderbird では変わってきます。enable-default-toolkit で指定したのは JDS で使われている gtk2 です。

# Options for 'configure' (same as command-line options).
ac_add_options --enable-application=suite
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --disable-tests
ac_add_options --disable-debug

5. configure を走らす

準備が出来たら SeaMonkey のソースを展開したところで configure を実行してみましょう。環境設定に問題なければ無事に終了するはずです。ビルドフラグやオプションが正しく効いているのか、 config/autoconf.mk を見てみましょう。

コンパイラは Sun Studio のを見に行っているようです。

CC                  = cc
CXX                 = CC

ホストの情報です。

HOST_OS_ARCH    = SunOS
host_cpu        = i386
host_vendor     = pc
host_os         = solaris2.10

make コマンドは /usr/sfw/bin の gmake です。

MAKE            = /usr/sfw/bin/gmake

ツールキットは GTK ではなく GTK2 をちゃんと見てくれているようですね。

MOZ_ENABLE_GTK          =
MOZ_ENABLE_GTK2         = 1

Xft が有効になっています。これも JDS ではデフォルトです。

MOZ_ENABLE_XFT          = 1

6. gmake をたたこう!

さて、準備が出来ました。ここで gmake を走らせましょう。

7. 実行してみる

バイナリは dist/bin 以下に作成されます。

% ./seamonkey

で起動しましょう。普段使っている Mozilla のプロファイルを使いたくなければ -ProfileManager オプションで起動するか、以下のようにテスト用のプロファイルを作って起動するのもいいかもしれません。

% ./seamonkey -CreateProfile seamonkey_profile
% ./seamonkey -P seamonkey_profile

できたてほやほや SeaMonkey 1.0
Seamonkey on Solaris 10!

8. いろいろしてみる

さてここまで出来たらいろいろ出来ますね。ビルドオプションを変更してみるのもいいでしょうし、ソースコードをハックしてみるのもいいです。

注意点:
1つ、ビルドしてみて気が付いたところがあります。modules/libpr0n/decoders/icon/gtk の nsIconChannel.cpp の build deps が非常に非常に時間がかかってしまいます。なぜだか私にはわからないのですが時間がかかるだけでビルド自体は正しく出来ます。\\

Sunday Jan 15, 2006

Solaris 10 で Sun Studio 11 日本語版を使おう

せっかく Solaris にしたのだからもう一度デベロッパーを目指して久しぶりに Mozilla をビルドしてみようと思っていました。 Solaris 10 には gcc が入っていますが、フリーで手に入る Sun Studio 11 を使わない手はないですよね!

ダウンロード

Sun Studio 11 は


からダウンロードできます。

日本語と Simplified Chinese にローカライズされています

Sun Studio 11 は日本語と Simplified Chinese にローカライズされています。ダウンロードサイトで Multilanguage 版を確認できます。



インストーラ

簡単にインストーラを使ってインストールできます。もちろん日本語になっています。

インストーラ

IDE

IDE は次のコマンドで起動できます。

% /opt/SUNWspro/bin/sunstudio

起動した直後の画面です。どこかで見た画面だな~と思われる方もいるかもしれませんね。そうです、Studio は NetBeans をベースにして作られています。

開始画面

デバッグ

Mozilla のパッチのレビューを今頼まれていてちょうど落ちてしまった箇所があるのでデバックしてみました。

デバッグデバッグ♪

参考ドキュメント

インストールや Sun Studio 11 の概要は以下のドキュメントが参考になります。


About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today