お久しぶりです。研究開発チームの千原です。
Tizen2.0 Magnoliaが先日リリースされました!
Magnoliaはモクレン(属)ですね。
Tizen1.0 Larkspurは飛燕草。
どうやら植物で攻めるようです。
次はABC順だとNなので、Nymphaeaのスイレン(属)とか?発音しにくい・・・
少し脱線してしまいましたが、現在Tizenの実動作環境を作るためにパッケージのビルドに奮闘中であります。
なかなか簡単にビルドが通らず(エラーが連発)、ゴールも見えず・・・
今回はビルド環境の構築手順についてまとめようと思います。
環境は引き続きUbuntu12.10です。
手順については、公式ヘルプページのPlatform Development Environmentを参考にしました。
01. 事前準備
Tizenのソースを取得するにはアカウントが必要になります。右上のREGISTERボタンから登録しましょう!
次にgerritアクセスし、作成したアカウントでログインしましょう。ログインすると次の画面になります。
Gerritで行うことはアカウント情報の設定と、SSHキーの登録の2つです。
右上のSettingsからContact Informationを選択し、Full Nameを入力します。
Register New Email …を押してアカウント作成で登録したEmailアドレスを入力します。認証メールが届くので、メールに記載されたURLにアクセスすると認証完了です。
次にSSHキーの登録を行います。
まずはUbuntu上でSSHキーを作成します。<Full Name>と<Email>は上で設定したものを入力です。
ssh-keygen -t rsa -C “<Full Name> <Email>”
例: ssh-keygen -t rsa -C “Hiroyuki Chihara chihara@a-creation.jp”
~/.ssh/id_rsa.pub が生成されていれば、成功です。
~/.ssh/configを作成して以下の情報を記載します。
vi ~/.ssh/config
Host review.tizen.org
Hostname review.tizen.org
IdentityFile ~/.ssh/id_rsa
User chihara
Port 29418
Userにはアカウント名を記載します。
再びGerritに戻り、右上のSettingsからSSH Public Keysを選択します。
~/.ssh/id_rsa.pubの内容を丸ごとコピペしてAddを押します。
次のコマンドを実行してgitの設定を行います。<Full Name>と<Email>はGerritで設定したものを入力です。
git config --global user.name “<Full Name>”
git config --global user.email “<Email>”
ここまで設定するとsshでアクセスできるようになっています。
接続確認は以下のコマンドでできます。
ssh review.tizen.org
準備完了です!
02. ツールのインストール
環境構築に必要なツールをUbuntuにインストールするので、まず、Tizenのダウンロードサイトをリポジトリに追加します。
sudo apt-add-repository “deb http://download.tizen.org/tools/latest-release/Ubuntu_12.10/ /”
sudo apt-get update
sudo apt-get install gbs mic curl
gbsをインストールした後、buildを入れ直す必要があるようなので、以下の手順で再インストールします。
sudo dpkg -r --force-depends build
sudo apt-get update
sudo apt-get install build
03. パッケージ情報の取得
ソースを落とすにも、ビルドをするにもパッケージ名が分からないと何もできないので・・・
次のコマンドでManifestを落としてきます。
何かに使ったりはしていません。パッケージ名を知るために取得しているので、パッケージ名分かるよって方は不要かも。
git clone git://gitorious.org/tizen-toys/tizen-manifest.git
toysさんが公開されているManifestを参照しました。
ただ、リポジトリの構成が頻繁に変わったりするようなので、100%信用できないようです・・・
作ろうとしている環境が車載向けでは無いので、ivi系は要らないような気がします!
04. 参照リポジトリの設定
一度gbs buildを実行すると~/.gbs.confが作成されますので、内容を編集します。
gbs build
vi ~/.gbs.conf
[general]
tmpdir = /var/tmp
[build]
build_cmd = /usr/bin/build
build_root = /var/tmp/build-root-gbs
su-wrapper = sudo
distconf = /usr/share/gbs/tizen-1.0.conf
; optional, repos definitions
repo1.url = https://download.tizen.org/releases/latest/2.0/repos/main/armv7l/packages/
repo1.user =
repo1.passwdx =
; one more repo
repo2.url = https://download.tizen.org/releases/latest/2.0/repos/main/armv7l/packages/
repo2.user =
repo2.passwdx =
05. リポジトリの取得
Manifestの中にパッケージ名が書いてありますので、その名前を使ってソースを取得します。
今回はブラウザを取得してビルドを試してみます。
ブラウザのパッケージ名はapps/web/browserです。
git clone review.tizen.org:apps/web/browser apps/web/browser
git clone [package] [output-path]で指定します。
[output-path]を指定しないときは、カレントにディレクトリを作って放り込まれます。
06. パッケージビルド
ビルドはgbsを使います。
gbs build -A armv7l apps/web/browser
リポジトリとなんやかんや通信しつつビルドが始まります。
が!
どうもうまくいきません・・・
たくさんのパッケージがlibblkid.soというライブラリの参照しているバージョンが食い違っているという内容のエラーで失敗してしまいます。
info: generate repositories ...
info: build conf has been downloaded at:
/var/tmp/chihara-gbs/tizen2.0.conf
info: start building packages from: /home/chihara/tmp/apps/web/browser (git)
info: prepare sources...
info: retrieving repo metadata...
info: parsing package data...
info: building repo metadata ...
info: package dependency resolving ...
info: next pass:
org.tizen.browser
info: *** [1/1] building org.tizen.browser-0.0.1-1 armv7l tizen2.0 (worker: 0) ***
--repository /home/chihara/GBS-ROOT/local/repos/tizen2.0/armv7l/RPMS --repository http://download.tizen.org/releases/latest/2.0/repos/main/armv7l/packages --repository http://download.tizen.org/releases/latest/2.0/repos/base/armv7l/packages
logging output to /home/chihara/GBS-ROOT/local/scratch.armv7l.0/.build.log...
[ 0s] Memory limit set to 21222168KB
[ 0s] Using BUILD_ROOT=/home/chihara/GBS-ROOT/local/scratch.armv7l.0
[ 0s] Using BUILD_ARCH=armv7l:armv7el:armv6l:armv5tejl:armv5tel:armv5l:armv4tl:armv4l:armv3l:noarch
[ 0s]
[ 0s]
[ 0s] A-2013-01-H started "build org.tizen.browser.spec" at Wed Feb 27 06:04:41 UTC 2013.
[ 0s]
[ 0s]
[ 0s] processing specfile /home/chihara/GBS-ROOT/local/sources/tizen2.0/org.tizen.browser-0.0.1-1/org.tizen.browser.spec ...
[ 0s] init_buildsystem --configdir /var/tmp/chihara-gbs --cachedir /home/chihara/GBS-ROOT/local/cache --repository /home/chihara/GBS-ROOT/local/repos/tizen2.0/armv7l/RPMS --repository http://download.tizen.org/releases/latest/2.0/repos/main/armv7l/packages --repository http://download.tizen.org/releases/latest/2.0/repos/base/armv7l/packages --clean --use-system-qemu /home/chihara/GBS-ROOT/local/sources/tizen2.0/org.tizen.browser-0.0.1-1/org.tizen.browser.spec ...
[ 0s] initializing /home/chihara/GBS-ROOT/local/scratch.armv7l.0/.srcfiles.cache ...
[ 0s] /usr/lib/build/createrpmdeps /home/chihara/GBS-ROOT/local/repos/tizen2.0/armv7l/RPMS
[ 0s] /usr/lib/build/createrepomddeps --cachedir=/home/chihara/GBS-ROOT/local/cache http://download.tizen.org/releases/latest/2.0/repos/main/armv7l/packages
[ 1s] /usr/lib/build/createrepomddeps --cachedir=/home/chihara/GBS-ROOT/local/cache http://download.tizen.org/releases/latest/2.0/repos/base/armv7l/packages
[ 2s] expanding package dependencies...
[ 2s] expansion error
[ 2s] nothing provides libblkid.so.1(BLKID_2.18) needed by util-linux
[ 2s] nothing provides libblkid.so.1(BLKID_2.17) needed by util-linux
[ 2s] nothing provides libblkid.so.1(BLKID_2.20) needed by util-linux
warning: build failed, Leaving the logs in /home/chihara/GBS-ROOT/local/repos/tizen2.0/armv7l/logs/fail/org.tizen.browser-0.0.1-1/log
error: *** Error Summary ***
=== the following packages failed to build due to rpmbuild issue ===
org.tizen.browser-tizen2.0-armv7l: /home/chihara/GBS-ROOT/local/repos/tizen2.0/armv7l/logs/fail/org.tizen.browser-0.0.1-1/log
error: <gbs>rpmbuild fails
ホームアプリと思われるmenu-screenなどはビルドが成功するので、リポジトリ側の問題のような気がするのですが、どうなのでしょうか。
引き続き調査が必要なようです。