2011年10月05日 zaurus linux-kexecboot-2.6.39.3 [長年日記]
_ zaurus linux-kexecboot-2.6.39.3
zaurus linux-kexecboot-2.6.39.3からブートカーネルを複数登録できる。
これでカーネルの実験的ビルドがしやすくなる。
私の/boot/boot.cfg
# Show this label in kexecboot menu. #================================================== # Specify full path to the kernel. KERNEL=/boot/zImage # Label shown in menu LABEL=ARMedslack 13.1(default) # Append this tags to the kernel cmdline. APPEND=console=ttyS0,115200n8 console=tty1 noinitrd psplash=false debug # Specify full path for a custom distro-icon for the menu-item. # If not set, use device-icons as default (NAND, SD, CF, ...). #ICON=/boot/icon.xpm # Priority of item in kexecboot menu. # Items with highest priority will be shown at top of menu. # Default: 0 (lowest, ordered by device ordering) #PRIORITY=10 # #================================================== KERNEL=/boot/zImage-2.6.36.4.old LABEL=ARMedslack 13.1(old) APPEND=console=ttyS0,115200n8 console=tty1 noinitrd psplash=false debug #ICON=/boot/icon.xpm #PRIORITY=10 # #================================================== KERNEL=/boot/zImage-2.6.36.4.ORG LABEL=ARMedslack 13.1(ORG) APPEND=console=ttyS0,115200n8 console=tty1 noinitrd psplash=false debug #ICON=/boot/icon.xpm #PRIORITY=10 # #================================================== KERNEL=/boot/zImage-2.6.36.4.debug LABEL=ARMedslack 13.1(debug) APPEND=console=ttyS0,115200n8 console=tty1 noinitrd psplash=false debug #ICON=/boot/icon.xpm #PRIORITY=10 # #================================================== KERNEL=/boot/zImage-2.6.33.7 LABEL=ARMedslack 13.1(2.6.33.7) APPEND=console=ttyS0,115200n8 console=tty1 noinitrd psplash=false debug #ICON=/boot/icon.xpm #PRIORITY=10 # #================================================== KERNEL=/boot/zImage-2.6.39.1 LABEL=ARMedslack 13.1(2.6.39.1) APPEND=console=ttyS0,115200n8 console=tty1 noinitrd psplash=false debug #ICON=/boot/icon.xpm #PRIORITY=10 #
2011年10月08日 脆弱性スキャナのOpenVASをソースからインストールしてみた [長年日記]
_ 脆弱性スキャナのOpenVASをソースからインストールしてみた
Nessusがオープンソースで無くなって久しいですが、代わりにOpenVASをソースからインストール。
libmicrohttpd-0.9.15
httpサーバを実装するためのライブラリ。
- tar xvzf libmicrohttpd-0.9.15.tar.gz
- cd libmicrohttpd-0.9.15
- ./configure && make
- make install && ldconfig
openvas-libraries-4.0.5
OpenVASのライブラリ。
- tar xvzf openvas-libraries-4.0.5.tar.gz
- cd openvas-libraries-4.0.5
- cmake . && make
- make install && ldconfig
openvas-scanner-3.2.4
OpenVASのスキャナ本体。
- tar xvzf openvas-scanner-3.2.4.tar.gz
- cd openvas-scanner-3.2.4
- cmake . && make
- make install
- openvas-mkcert (OpenVASがサーバとなってSSL通信を行う必要があるので、サーバ証明書を作成する)
- http_proxy=http://ぷろきし:ぽーと/ openvas-nvt-sync --wget (定義ファイルの更新)
- openvas-adduser (クライアントから操作するためのユーザ登録)
- touch /usr/local/var/lib/openvas/users/上記で登録したユーザ名/isadmin (OpenVASの管理者として設定する)
openvas-manager-2.0.4
クライアントの要求を受けて、その要求をスキャナデーモンに仲介するデーモン。
- tar xvzf openvas-manager-2.0.4.tar.gz
- cd openvas-manager-2.0.4
- cmake . && make
- make install
- openvas-mkcert-client -n om -i (managerがscannerに接続する際のユーザ(om)の登録とクライアント証明書を作成する)
openvas-administrator-1.1.1
管理するデーモン(?)
- tar xvzf openvas-administrator-1.1.1.tar.gz
- cd openvas-administrator-1.1.1
- cmake . && make
- make install
greenbone-security-assistant-2.0.1
Webブラウザをクライアントとして利用するためのデーモン。httpsサーバとして動作する(?)。
- tar xvzf greenbone-security-assistant-2.0.1.tar.gz
- cd greenbone-security-assistant-2.0.1
- cmake . && make
- make install
gsd-1.2.0
クライアント。以前のopenvas-client-3.0.1は、プロトコルが合わなくて利用できなかった。
- tar xvzf gsd-1.2.0.tar.gz
- cd gsd-1.2.0
- cmake . && make
- make install
起動
- openvassd (スキャンデーモン openvas-scannerのバックグラウンド起動)
- openvasad (アドミンデーモン openvas-administratorのバックグラウンド起動)
- gsad (セキュリティアシスタントデーモン greenbone-security-assistantのバックグラウンド起動)
- openvasmd --rebuild (データベースを初期化する)
- openvasmd (マネージャデーモン openvas-managerのバックグラウンド起動)
- gsd (クライアント gsd greenbone-security-desktopの起動)
データベースの更新
- http_proxy=http://ぷろきし:ぽーと/ openvas-nvt-sync --wget (定義ファイルの更新)
- openvasmd --update (openvas-nvt-syncした際にデータベースを更新する?)
2011年10月11日 zaurus special kernel mirror site [長年日記]
_ zaurus special kernel mirror site
本家のページが消失っぽいので、ミラーを記録しておく。
http://katastrophos.net/zaurus/mirrors/tetsu.homelinux.org/v18h/
2011年10月20日 ffmpeg, soxを使って動画音声の音声部分のピッチ(音程)を修正した [長年日記]
_ ffmpeg, soxを使って動画音声の音声部分のピッチ(音程)を修正した
minitubeでダウンロードしたドラマ(5つに分割されている)のうち、4つめの後半と5つめの音声ピッチ(音程)が妙に低くなっていて、登場人物のセリフが全てジャイアント馬場状態になっていた。
これをなんか修正して、普通に視聴できるようにしたいと思い、以下のように行った。
ffmpeg-0.8.5のインストール
$ tar xvjf ffmpeg-0.8.5.tar.bz2 $ cd ffmpeg-0.8.5 $ ./configure && make # make install
sox-14.3.2のインストール
$ tar sox-14.3.2.tar.gz $ cd sox-14.3.2 $ patch -p0 <sox-14.3.2.diff
*** src/ffmpeg.c.ORG 2011-10-18 18:16:18.889000037 +0900 --- src/ffmpeg.c 2011-10-18 18:17:59.688000036 +0900 *************** *** 91,97 **** if (!codec || avcodec_open(enc, codec) < 0) return -1; ! if (enc->codec_type != CODEC_TYPE_AUDIO) { lsx_fail("ffmpeg CODEC %x is not an audio CODEC", enc->codec_type); return -1; } --- 91,97 ---- if (!codec || avcodec_open(enc, codec) < 0) return -1; ! if (enc->codec_type != AVMEDIA_TYPE_AUDIO) { lsx_fail("ffmpeg CODEC %x is not an audio CODEC", enc->codec_type); return -1; } *************** *** 182,188 **** /* Find audio stream (FIXME: allow different stream to be selected) */ for (i = 0; (unsigned)i < ffmpeg->ctxt->nb_streams; i++) { AVCodecContext *enc = ffmpeg->ctxt->streams[i]->codec; ! if (enc->codec_type == CODEC_TYPE_AUDIO && ffmpeg->audio_index < 0) { ffmpeg->audio_index = i; break; } --- 182,188 ---- /* Find audio stream (FIXME: allow different stream to be selected) */ for (i = 0; (unsigned)i < ffmpeg->ctxt->nb_streams; i++) { AVCodecContext *enc = ffmpeg->ctxt->streams[i]->codec; ! if (enc->codec_type == AVMEDIA_TYPE_AUDIO && ffmpeg->audio_index < 0) { ffmpeg->audio_index = i; break; } *************** *** 273,279 **** c = st->codec; c->codec_id = codec_id; ! c->codec_type = CODEC_TYPE_AUDIO; /* put sample parameters */ c->bit_rate = 256000; /* FIXME: allow specification */ --- 273,279 ---- c = st->codec; c->codec_id = codec_id; ! c->codec_type = AVMEDIA_TYPE_AUDIO; /* put sample parameters */ c->bit_rate = 256000; /* FIXME: allow specification */ *************** *** 423,429 **** av_init_packet(&pkt); pkt.size = avcodec_encode_audio(c, ffmpeg->audio_buf_aligned, AVCODEC_MAX_AUDIO_FRAME_SIZE, ffmpeg->samples); pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base, ffmpeg->audio_st->time_base); ! pkt.flags |= PKT_FLAG_KEY; pkt.stream_index = ffmpeg->audio_st->index; pkt.data = ffmpeg->audio_buf_aligned; --- 423,429 ---- av_init_packet(&pkt); pkt.size = avcodec_encode_audio(c, ffmpeg->audio_buf_aligned, AVCODEC_MAX_AUDIO_FRAME_SIZE, ffmpeg->samples); pkt.pts = av_rescale_q(c->coded_frame->pts, c->time_base, ffmpeg->audio_st->time_base); ! pkt.flags |= AV_PKT_FLAG_KEY; pkt.stream_index = ffmpeg->audio_st->index; pkt.data = ffmpeg->audio_buf_aligned;
$ ./configure && make # make install
4つめ動画の修正
- 動画部分のみ抽出
ffmpeg -i M4-4.mp4 -an -vcodec msmpeg4v2 -vb 800k M4-4.mp4.avi
- 前半音声部分(368秒まで)のみ抽出
ffmpeg -i M4-4.mp4 -t 368 -vn -acodec mp2 -ab 224k M4-4.mp4.1.mp2
- 後半音声部分(368秒以降)のみ抽出
ffmpeg -i M4-4.mp4 -ss 368 -vn -acodec mp2 -ab 224k M4-4.mp4.2.mp2
- 後半音声部分のピッチを160セント上げる。このあたりは自己判断で...。(100セントは半音)
sox M4-4.mp4.2.mp2 M4-4.mp4.2.up160.mp2 pitch 160
- 前半音声部分とピッチを上げた後半音声部分を結合
sox M4-4.mp4.1.mp2 M4-4.mp4.2.up160.mp2 M4-4.mp4.new.mp2
- 動画部分と結合後音声部分をミックス
ffmpeg -i M4-4.mp4.avi -vcodec copy -i M4-4.mp4.new.mp2 -acodec copy M4-4.new.avi
- ミックスした動画音声をx264で再エンコード(2-pass)
mencoder -oac faac -faacopts br=96 -ovc x264 -x264encopts pass=1:bitrate=396 -o /dev/null M4-4.new.avi mencoder -oac faac -faacopts br=96 -ovc x264 -x264encopts pass=2:bitrate=396 -o M4-4.new.new.avi M4-4.new.avi
(同様に)5つめ動画の修正
ffmpeg -i M4-5.mp4 -an -vcodec msmpeg4v2 -vb 800k M4-5.mp4.avi ffmpeg -i M4-5.mp4 -vn -acodec mp2 -ab 224k M4-5.mp4.mp2 sox M4-5.mp4.mp2 M4-5.mp4.up160.mp2 pitch 160 ffmpeg -i M4-5.mp4.avi -vcodec copy -i M4-5.mp4.up160.mp2 -acodec copy M4-5.new.avi mencoder -oac faac -faacopts br=96 -ovc x264 -x264encopts pass=1:bitrate=396 -o /dev/null M4-5.new.avi mencoder -oac faac -faacopts br=96 -ovc x264 -x264encopts pass=2:bitrate=396 -o M4-5.new.new.avi M4-5.new.avi
その後
- M4-1.mp4, M4-2.mp4, M4-3.mp4を、それぞれ M4-1.avi, M4-2.avi, M4-3.avi(vcodec=x264, acodec=faac)に変換(by mencoder)
- M4-1.avi, M4-2.avi, M4-3.avi, M4-4.new.new.avi, M4-5.new.new.avi を連結してM04.aviを作成(by mencoder)
2011年10月28日 Windows XP(以降?)で外字ファイルを外部から取り込むために... [長年日記]
_ WIN32APIのenableEUDC()を使ったプログラムを作った
私にしては非常に珍しく、Windows(cygwin)ネタ。
enableEUDC.c
OS(Windows)の外字使用を開始するコマンド。
#include <windows.h> typedef BOOL(WINAPI * ENABLEEUDC) (BOOL); int main() { ENABLEEUDC lpfnEnableEUDC; HINSTANCE hDll; BOOL bRet; /* EnableEUDCのアドレスの取得 */ hDll = LoadLibrary("GDI32.DLL"); if (hDll == NULL) exit(1); lpfnEnableEUDC = (ENABLEEUDC) GetProcAddress(hDll, "EnableEUDC"); if (lpfnEnableEUDC == NULL) { FreeLibrary(hDll); exit(1); } // 外字使用の開始 bRet = lpfnEnableEUDC(TRUE); if (bRet == FALSE) { FreeLibrary(hDll); exit(1); } FreeLibrary(hDll); exit(0); }
disableEUDC.c
OS(Windows)の外字使用を停止するコマンド。
#include <windows.h> typedef BOOL(WINAPI * ENABLEEUDC) (BOOL); int main() { ENABLEEUDC lpfnEnableEUDC; HINSTANCE hDll; BOOL bRet; /* EnableEUDCのアドレスの取得 */ hDll = LoadLibrary("GDI32.DLL"); if (hDll == NULL) exit(1); lpfnEnableEUDC = (ENABLEEUDC) GetProcAddress(hDll, "EnableEUDC"); if (lpfnEnableEUDC == NULL) { FreeLibrary(hDll); exit(1); } /* 外字使用の中止 */ bRet = lpfnEnableEUDC(FALSE); if (bRet == FALSE) { FreeLibrary(hDll); exit(1); } FreeLibrary(hDll); exit(0); }
Makefile
CFLAGS=-v -O -mno-cygwin -mwindows ##LDFLAGS=-lgdi32 LDFLAGS= all: enableEUDC.exe disableEUDC.exe enableEUDC.exe: enableEUDC.c cc $(CFLAGS) $(LDFLAGS) -o enableEUDC.exe enableEUDC.c disableEUDC.exe: disableEUDC.c cc $(CFLAGS) $(LDFLAGS) -o disableEUDC.exe disableEUDC.c
使い方
コマンドプロンプトをadministrator権限で起動し、
> disableEUDC > del C:\WINDOWS\FONTS\Eudc.TTE > copy Eudc.TTE C:\WINDOWS\FONTS\Eudc.TTE > enableEUDC
2011年10月30日 firefox-1.0.8 on ARMedslack (挫折) [長年日記]
_ firefox-1.0.8 on ARMedslack (挫折)
ARMedslack on zaurus(SL-C860)でブラウザとなるとw3mかdilloあたりが快適に使える限界で、軽量と言われるaroraやmidoriでも、もはや重すぎて常用するには耐えがたい状況だ。
そこで、あえて古いfirefox-1.0.x系をgtk+-1.2.xと組み合わせてビルドし、ビットマップフォントベースで利用してみようと考えた。
gtk+-1.2.10関係のインストール
glib-1.2.10
- tar xvzf glib-1.2.10.tar.gz
- cd glib-1.2.10
- patch -p0 <glib-1.2.10.diff
*** ./gstrfuncs.c.ORG 2011-10-21 20:03:01.000000000 +0900 --- ./gstrfuncs.c 2011-10-21 21:23:44.000000000 +0900 *************** *** 867,874 **** /* beware of positional parameters */ case '$': ! g_warning (G_GNUC_PRETTY_FUNCTION ! "(): unable to handle positional parameters (%%n$)"); len += 1024; /* try adding some safety padding */ break; --- 867,874 ---- /* beware of positional parameters */ case '$': ! g_warning (G_GNUC_PRETTY_FUNCTION); ! g_warning ("(): unable to handle positional parameters (%%n$)"); len += 1024; /* try adding some safety padding */ break; *************** *** 1034,1041 **** /* n . dddddddddddddddddddddddd E +- eeee */ conv_len += 1 + 1 + MAX (24, spec.precision) + 1 + 1 + 4; if (spec.mod_extra_long) ! g_warning (G_GNUC_PRETTY_FUNCTION ! "(): unable to handle long double, collecting double only"); #ifdef HAVE_LONG_DOUBLE #error need to implement special handling for long double #endif --- 1034,1041 ---- /* n . dddddddddddddddddddddddd E +- eeee */ conv_len += 1 + 1 + MAX (24, spec.precision) + 1 + 1 + 4; if (spec.mod_extra_long) ! g_warning (G_GNUC_PRETTY_FUNCTION); ! g_warning ("(): unable to handle long double, collecting double only"); #ifdef HAVE_LONG_DOUBLE #error need to implement special handling for long double #endif *************** *** 1077,1084 **** conv_done = TRUE; if (spec.mod_long) { ! g_warning (G_GNUC_PRETTY_FUNCTION ! "(): unable to handle wide char strings"); len += 1024; /* try adding some safety padding */ } break; --- 1077,1084 ---- conv_done = TRUE; if (spec.mod_long) { ! g_warning (G_GNUC_PRETTY_FUNCTION); ! g_warning ("(): unable to handle wide char strings"); len += 1024; /* try adding some safety padding */ } break; *************** *** 1108,1115 **** conv_len += format - spec_start; break; default: ! g_warning (G_GNUC_PRETTY_FUNCTION ! "(): unable to handle `%c' while parsing format", c); break; } --- 1108,1115 ---- conv_len += format - spec_start; break; default: ! g_warning (G_GNUC_PRETTY_FUNCTION); ! g_warning ("(): unable to handle `%c' while parsing format", c); break; }
- ./configure --prefix=/usr/local/gtk1
- make
- make install
libIDL-0.6.8
- tar xvzf libIDL-0.6.8.tar.gz
- cd libIDL-0.6.8
- ./configure --prefix=/usr/local/gtk1
- make
- make install
gtk+-1.2.10
- tar xvzf gtk+-1.2.10.tar.gz
- cd gtk+-1.2.10
- ./configure --prefix=/usr/local/gtk1 --with-locale=ja_JP.eucJP
- make
- make install
firefox-1.0.8 ビルド
- tar xvjf firefox-1.0.8-source.tar.bz2
- cd mozilla
- patch -p0 <firefox-1.0.8.diff
*** ./security/coreconf/rules.mk.ORG 2011-10-23 09:31:09.000000000 +0900 --- ./security/coreconf/rules.mk 2011-10-23 10:25:19.000000000 +0900 *************** *** 881,915 **** ifneq (,$(filter-out OpenVMS OS2 WIN%,$(OS_TARGET))) # Can't use sed because of its 4000-char line length limit, so resort to perl ! .DEFAULT: ! @perl -e ' \ open(MD, "< $(DEPENDENCIES)"); \ while (<MD>) { \ ! if (m@ \.*/*$< @) { \ ! $$found = 1; \ ! last; \ ! } \ } \ if ($$found) { \ ! print "Removing stale dependency $< from $(DEPENDENCIES)\n"; \ ! seek(MD, 0, 0); \ ! $$tmpname = "$(OBJDIR)/fix.md" . $$$$; \ ! open(TMD, "> " . $$tmpname); \ ! while (<MD>) { \ ! s@ \.*/*$< @ @; \ ! if (!print TMD "$$_") { \ ! unlink(($$tmpname)); \ ! exit(1); \ ! } \ ! } \ ! close(TMD); \ ! if (!rename($$tmpname, "$(DEPENDENCIES)")) { \ ! unlink(($$tmpname)); \ ! } \ } elsif ("$<" ne "$(DEPENDENCIES)") { \ ! print "$(MAKE): *** No rule to make target $<. Stop.\n"; \ ! exit(1); \ ! }' endif ############################################################################# --- 881,917 ---- ifneq (,$(filter-out OpenVMS OS2 WIN%,$(OS_TARGET))) # Can't use sed because of its 4000-char line length limit, so resort to perl ! PERL_DEPENDENCIES_PROGRAM = \ open(MD, "< $(DEPENDENCIES)"); \ while (<MD>) { \ ! if (m@ \.*/*$< @) { \ ! $$found = 1; \ ! last; \ ! } \ } \ if ($$found) { \ ! print "Removing stale dependency $< from $(DEPENDENCIES)\n"; \ ! seek(MD, 0, 0); \ ! $$tmpname = "$(OBJDIR)/fix.md" . $$$$; \ ! open(TMD, "> " . $$tmpname); \ ! while (<MD>) { \ ! s@ \.*/*$< @ @; \ ! if (!print TMD "$$_") { \ ! unlink(($$tmpname)); \ ! exit(1); \ ! } \ ! } \ ! close(TMD); \ ! if (!rename($$tmpname, "$(DEPENDENCIES)")) { \ ! unlink(($$tmpname)); \ ! } \ } elsif ("$<" ne "$(DEPENDENCIES)") { \ ! print "$(MAKE): *** No rule to make target $<. Stop.\n"; \ ! exit(1); \ ! } ! ! .DEFAULT: ! @perl -e '$(PERL_DEPENDENCIES_PROGRAM)' endif ############################################################################# *** ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp.ORG 2011-10-22 09:53:50.000000000 +0900 --- ./xpcom/reflect/xptcall/src/md/unix/xptcstubs_arm.cpp 2011-10-22 09:54:47.000000000 +0900 *************** *** 45,51 **** #endif /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */ ! static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch"); static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) --- 45,51 ---- #endif /* Specify explicitly a symbol for this function, don't try to guess the c++ mangled symbol. */ ! static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) asm("_PrepareAndDispatch") __attribute__((used)); static nsresult PrepareAndDispatch(nsXPTCStubBase* self, uint32 methodIndex, PRUint32* args) *** ./nsprpub/pr/src/misc/prdtoa.c.ORG 2011-10-24 19:13:16.000000000 +0900 --- ./nsprpub/pr/src/misc/prdtoa.c 2011-10-24 19:17:07.000000000 +0900 *************** *** 132,139 **** * is not strictly legal and can cause trouble with aggressively * optimizing compilers (e.g., gcc 2.95.1 under -O2). */ ! #if defined(__arm) || defined(__arm__) || defined(__arm26__) \ ! || defined(__arm32__) #define IEEE_ARM #elif defined(IS_LITTLE_ENDIAN) #define IEEE_8087 --- 132,139 ---- * is not strictly legal and can cause trouble with aggressively * optimizing compilers (e.g., gcc 2.95.1 under -O2). */ ! #if (defined(__arm) || defined(__arm__) || defined(__arm26__) \ ! || defined(__arm32__)) && !defined(__ARM_EABI__) && !defined(__ARMEB__) #define IEEE_ARM #elif defined(IS_LITTLE_ENDIAN) #define IEEE_8087 *** ./nsprpub/pr/include/md/_linux.h.ORG 2011-10-24 19:17:40.000000000 +0900 --- ./nsprpub/pr/include/md/_linux.h 2011-10-24 19:22:55.000000000 +0900 *************** *** 285,291 **** #error "Linux/MIPS pre-glibc2 not supported yet" #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */ ! #elif defined(__arm__) /* ARM/Linux */ #if defined(__GLIBC__) && __GLIBC__ >= 2 #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[20] --- 285,291 ---- #error "Linux/MIPS pre-glibc2 not supported yet" #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */ ! #elif defined(__arm__) && !defined(__ARM_EABI__) /* ARM/Linux */ #if defined(__GLIBC__) && __GLIBC__ >= 2 #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[20] *************** *** 295,300 **** --- 295,312 ---- #define _MD_SP_TYPE __ptr_t #else #error "ARM/Linux pre-glibc2 not supported yet" + #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */ + + #elif defined(__arm__) && defined(__ARM_EABI__) + /* ARM/Linux */ + #if defined(__GLIBC__) && __GLIBC__ >= 2 + #define _MD_GET_SP(_t) (_t)->md.context[0].__jmpbuf[8] + #define _MD_SET_FP(_t, val) ((_t)->md.context[0].__jmpbuf[7] = (val)) + #define _MD_GET_SP_PTR(_t) &(_MD_GET_SP(_t)) + #define _MD_GET_FP_PTR(_t) (&(_t)->md.context[0].__jmpbuf[7]) + #define _MD_SP_TYPE __ptr_t + #else + #error "ARM/Linux pre-glibc2 not supported yet" #endif /* defined(__GLIBC__) && __GLIBC__ >= 2 */ #else *** ./toolkit/xre/nsAppRunner.cpp.ORG 2011-10-25 12:01:00.000000000 +0900 --- ./toolkit/xre/nsAppRunner.cpp 2011-10-25 12:01:16.000000000 +0900 *************** *** 1162,1168 **** return NS_ERROR_FAILURE; char *exePath = info.name; ! #elif #error Oops, you need platform-specific code here #endif --- 1162,1168 ---- return NS_ERROR_FAILURE; char *exePath = info.name; ! #else #error Oops, you need platform-specific code here #endif *** toolkit/xre/nsXREDirProvider.cpp.ORG 2011-10-25 12:37:20.000000000 +0900 --- toolkit/xre/nsXREDirProvider.cpp 2011-10-25 12:37:56.000000000 +0900 *************** *** 181,187 **** *p = 0; return NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, getter_AddRefs(mAppDir)); ! #elif #error Oops, you need platform-specific code here #endif } --- 181,187 ---- *p = 0; return NS_NewNativeLocalFile(nsDependentCString(info.name), PR_TRUE, getter_AddRefs(mAppDir)); ! #else #error Oops, you need platform-specific code here #endif }
- vi .mozconfig
. $topsrcdir/browser/config/mozconfig ##ac_add_options --disable-debug ac_add_options --enable-debug ac_add_options --enable-optimize ac_add_options --enable-default-toolkit=gtk ac_add_options --disable-xft ac_add_options --disable-freetype2 ac_add_options --with-gtk-prefix=/usr/local/gtk1 ac_add_options --with-glib-prefix=/usr/local/gtk1 ac_add_options --with-libIDL-prefix=/usr/local/gtk1 #ac_add_options --disable-freetypetest #ac_add_options --disable-gtktest #ac_add_options --disable-mailnews #ac_add_options --disable-ldap #ac_add_options --disable-postscript #ac_add_options --disable-xprint #ac_add_options --disable-gnomevfs #ac_add_options --disable-jsd #ac_add_options --disable-plugins #ac_add_options --disable-oji #ac_add_options --disable-view-source #ac_add_options --disable-accessibility #ac_add_options --disable-xpfe-components ##MUST_DEL_ac_add_options --disable-xpinstall #ac_add_options --disable-jsloader #ac_add_options --disable-composer #ac_add_options --disable-mathml #ac_add_options --disable-installer #ac_add_options --disable-activex #ac_add_options --disable-activex-scripting #ac_add_options --disable-tests #ac_add_options --disable-logging #ac_add_options --disable-pedantic #ac_add_options --disable-auto-deps #ac_add_options --disable-md #ac_add_options --disable-static-component-loader #ac_add_options --disable-libIDLtest #ac_add_options --disable-glibtest ##MUST_DEL_ac_add_options --disable-xul #ac_add_options --disable-profilesharing #ac_add_options --disable-profilelocking #ac_add_options --disable-necko-disk-cache
- make -f client.mk build
- cd xpinstall/packager
- make MOZILLA_BIN=../../dist/bin/firefox
結果
惨敗。
なんのメッセージも吐かずに、exit code 1で終了。