Firefox ESR60ビルド手順(iWave RainboW G20D Q7 Yocto 2.0) - webdino/meta-browser GitHub Wiki

基本的なビルドの流ればFirefox ESR52ビルド手順(iWave RainboW-G20D Q7 Yocto-2.0) に沿うが、以下の様に変更する必要がある。

BSPのビルド

ビルド環境のセットアップ

  1. Ubuntu 16.04を適当なビルドマシンにインストールする

Yoctoレシピのセットアップ

  • meta-linaroを以下のように変更する
diff --git a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
index 852a316..d3b30bb 100644
--- a/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
+++ b/meta-linaro-toolchain/recipes-devtools/gcc/gcc-linaro-4.9.inc
@@ -8,7 +8,7 @@ BINV = "4.9.4"
 
 FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/gcc-${PV}' ], d)}"
 
-SRC_URI = "https://releases.linaro.org/${MMYY}/components/toolchain/gcc-linaro/${BASEPV}/gcc-${PV}-${RELEASE}.tar.xz \
+SRC_URI = "https://releases.linaro.org/archive/${MMYY}/components/toolchain/gcc-linaro/${BASEPV}/gcc-${PV}-${RELEASE}.tar.xz \
            file://0001-gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch \
            file://0002-uclibc-conf.patch \
            file://0003-gcc-uclibc-locale-ctype_touplow_t.patch \

BSPのビルド

ビルドディレクトリ(${WORK}/build)のconf/local.confに以下の設定を追加する。

GCCVERSION_mine = "linaro-4.9"
SDKGCCVERSION ?= "${GCCVERSION_mine}"
PREFERRED_VERSION_gcc ?= "${GCCVERSION_mine}"
PREFERRED_VERSION_libgcc-initial="${GCCVERSION_mine}"
PREFERRED_VERSION_gcc-cross-${TARGET_ARCH} ?= "${GCCVERSION_mine}"
PREFERRED_VERSION_gcc-cross-initial-${TARGET_ARCH} ?= "${GCCVERSION_mine}"
PREFERRED_VERSION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "${GCCVERSION_mine}"
PREFERRED_VERSION_gcc-runtime ?= "${GCCVERSION_mine}"
PREFERRED_VERSION_gcc-sanitizers ?= "${GCCVERSION_mine}"
PREFERRED_VERSION_libgcc ?= "${GCCVERSION_mine}"

Firefoxのビルド方法

追加で以下のパッケージをホスト側にインストールする

$ sudo apt-get install clang llvm clang-3.9 llvm-3.9

meta-gecko-embedded、meta-browser(Gecko Embedded版)及びmeta-rust(Gecko Embedded版)をcloneする。

$ cd ${WORK}
$ git clone https://github.com/webdino/meta-gecko-embedded.git
$ git clone -b firefox-60esr https://github.com/webdino/meta-browser.git
$ git clone -b jethro-14.0.1_rust_1.24.1 https://github.com/webdino/meta-rust.git

ビルドディレクトリ(${WORK}/build)のconf/bblayers.confに以下を追加する。

BBLAYERS += " ${TOPDIR}/../meta-gecko-embedded/meta-poky-jethro "
BBLAYERS += " ${TOPDIR}/../meta-gecko-embedded/meta-poky-rust "
BBLAYERS += " ${TOPDIR}/../meta-browser "
BBLAYERS += " ${TOPDIR}/../meta-rust "

言語パックの導入方法

ビルドディレクトリのconf/local.confに以下を追加してブートイメージを作成する(下記は日本語の場合)。

IMAGE_INSTALL_append = " firefox-l10n-ja "

また、ブートイメージ内に以下の内容で/usr/lib/firefox/defaults/pref/lang.js(ファイル名は任意で良い)を作成する。

pref("intl.locale.requested", "ja");
pref("intl.locale.matchOS", false);