Download - LibreOffice を Windows 上でビルドする UPDATE
LibreOfficeをWindows上でビルドする
UPDATE
(LibreOffice 5.0/master)
Tomofumi Yagi <yagitmknada[at]gmail.com> 2015-7-11 第 10 回 関西 LibreOffice 勉強会
この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。
UPDATE?
3
以前、こんな発表をしました● 古くなった内容を UPDATEしたいと思います
はじめに
5
今日、お話する内容● Windows 上で LibreOffice をビルドする手順の紹介
+α
– ビルドって何?– 自分で LibreOffice をビルドするための環境構築– 自分でビルドした LibreOffice の実行とデバッグ– その他のトピック
● Jenkins や CI に関するお話はありません。– ごめんなさい
ビルドって何?
7
LibreOffice はオープンソースのプロジェクト● ソースコードが公開されている
– ソースコード=ソフトウェアの設計図
8
ソースコード(設計図)を元に、実際に動作するソフトウェアを生成する = ビルド● 平たく言えば、 LibreOffice 公式サイトで配布されて
いるコレの中身を自分で作ります
– (備考)ビルドは LibreOffice の開発を行うには必須の作業
9
前回発表( 2013 年 12 月)以降に変わったこと● 64 ビット Windows 版 LibreOffice がビルド可能に● Visual Studio 2013 対応
– Visual Studio Community 2013でも勿論ビルド可能● Win32 GNU Make の採用
– ビルドに掛かる時間の短縮● Microsoft Visual Studio Project Integration
– これについては後ほど ...
ビルドのための環境構築
11
まず The Document Foundation ( TDF ) のWiki のページを開く
12
Development ページから
13
Windows でのビルドに関するページへ進む
14
Building LibreOffice on Windows with Cygwin and MSVC: Tips and Tricks
● https://wiki.documentfoundation.org/Development/BuildingOnWindows
● ビルドに必要な情報はここに全部書いてある● 内容が更新される
– LibreOffice のビルド方法はどんどん改良される● このスライドの内容はすぐに古くなる可能性が高いです● 自分でビルド環境を改善して、 Wiki で情報提供もできたら素敵
ですね!
15
LibreOffice をビルドするため必要なもの 1/2
● 必要な OS
– Windows 7 / 8 / 8.1 ● Windows 10 Insider Preview でもビルドできました
– 32 ビット /64 ビットいずれも● ただし 64 ビット版 LibreOffice は 64 ビット OS 上でのみビルド可能
● 必要なハードウェア– マルチコア CPU 、搭載メモリ 4GB 以上、十分大きなストレージ
● LibreOffice のソースコードやバイナリ等の格納に 30GB 強の空きが必要● NTFS 圧縮が効果あり
● 多分、一般家庭にある今時の PC ならビルドできる– 高スペックな PC だと短い時間でビルド可能
16
LibreOffice をビルドするため必要なもの 2/2
• 必要な開発ツール①Microsoft Visual Studio 2013
②Java SE Development Kit( JDK )③Cygwin
④Win32 GNU make
⑤Apache Ant● 今回は省略していますが可能なら JUnit も
● ⑥LibreOffice のソースコードも必要
それではビルドするための環境を構築してみます
18
①Microsoft Visual Studio のインストール ● https://www.visualstudio.com/products/visual-stu
dio-community-vs● Visual Studio Community を使おう!
– 今は Visual Studio Community 2013
– LibreOffice のビルドに必要な SDK 等は全て入っている● もう Express 版みたいに ATL を無効とかしなくていい
– 5.0 以降のビルドには VS2013 必須( VS2012 は不可)● サイトからダウンロードしてインストール
– 時間が掛かります
19
②Java SE Development Kit のインストール● http://www.oracle.com/technetwork/java/java
se/downloads/index.html● 今だと JDK8
● 32 ビット版の LibreOffice をビルドしたい時はWindows x86 をダウンロードしてインストール
● 64 ビット版の LibreOffice をビルドしたい時はWindows x64 をダウンロードしてインストール– どちらもビルドする人は両方
20
③Cygwin のインストール● http://www.cygwin.com/● OS が 32 ビットの場合は setup-x86.exe を、 64
ビットの場合は setup-x86_64.exe をダウンロード● パッケージをたくさんインストールする必要がある
– setup 起動時にイストールしたいパッケージを指定してしまう
REM コマンドプロンプト上で実行してくださいREM 実際は一行ですC:Downloads> setup-x86.exe -P autoconf -P automake -P bison -P doxygen -P flex -P gcc-g++ -P git -P gperf -P make -P nasm -P patch -P perl-Archive-Zip -P pkg-config -P python -P python3 -P unzip -P wget -P zipC:Downloads>
21
④Win32 GNU make のインストール● http://dev-www.libreoffice.org/bin/cygwin/m
ake-85047eb-msvc.exe● Cygwin 付属の make では警告が出る
– ビルドが凄く遅くなる– 以前利用していたパッチ適用済 Cygwin make も非推奨
● TDF から提供されているバイナリをダウンロード– 32 ビット /64 ビット共通バイナリ;; Cygwin Terminal 上で実行してください$ mkdir -p /opt/lo/bin$ cd /opt/lo/bin$ wget http://dev-www.libreoffice.org/bin/cygwin/make-85047eb-msvc.exe$ mv make-85047eb-msvc.exe make.exe$ chmod +x make$ /opt/lo/bin/make -vGNU Make 4.0Built for Windows32
22
⑤Apache Ant のインストール● http://ant.apache.org/
● Apache のサイトからバイナリをダウンロードして解凍
;; Cygwin Terminal 上で実行してください$ cd /opt$ wget http://www.us.apache.org/dist/ant/binaries/apache-ant-1.9.5-bin.tar.bz2$ tar xvf apache-ant-1.9.5-bin.tar.bz2$ mv apache-ant-1.9.5-bin ant $
23
⑥LibreOffice のソースコード(リポジトリ)取得● git clone を実行して LibreOffice のソースコード
(リポジトリ)を取ってくる– LibreOffice のソースコードは git で管理される
● gitは Linux のソースコードを管理するために作られた分散型バージョン管理システム
● 時間が掛かります;; Cygwin Terminal 上で実行してください$ mkdir /cygdrive/c/lo$ cd /cygdrive/c/lo$ git clone git://gerrit.libreoffice.org/core...$ cd core$
デモ
25
補足● Mozilla Address Book connectorを有効にする方法(ちょっと面倒臭い)
– https://wiki.documentfoundation.org/Development/BuildingOnWindows#Optional_requirements_to_build_Mozilla_Address_Book_connector
● JUnitも可能ならインストールしましょう– https://wiki.documentfoundation.org/Development/BuildingOnWindows#Install_ant_and_junit
● LibreOfficeのソースコード取得時、ネットワークやサーバーの問題でgit cloneが失敗するようなら bundleファイルをダウンロードすると良いかも– 遣り方は前回のプレゼン資料を見てください
● ビルド用のディレクトリはソースコードのあるディレクトリと別の場所にすることもできます– https://wiki.documentfoundation.org/Development/BuildingOnWindows#Create_build_directory_and_confi
gure_and_build_the_code
● nasmが必要– TDF から提供されるバイナリを使うか、 Cygwin のパッケージを使いましょう– http://dev-www.libreoffice.org/bin/cygwin/
ビルドとデバッグ
27
ビルドする LibreOffice のバージョンを決める● masterか最新の安定版が無難
– 新しいバージョンの方が楽にビルドできる– 最新の安定版 5.0 の系列がよりビルドし易いかも– master もビルドしやすくなったが稀にビルドが壊れる
● 必要であればブランチを切り替え– 5.0 をビルドする場合 git checkout で追跡ブランチを作
成し、このブランチに切り替えてビルドします;; Cygwin Terminal 上で実行してください$ cd core$ ./g checkout --track remotes/origin/libreoffice-5-0 ;; master 以外はブランチを切り替え$
28
①autogen.sh を実行 1/2
● ビルドに必要になるファイル群を生成( Makefile 等)● 設定のためのオプションを渡す
– 下記は日本語 UI とソースコードデバッグを有効にする例;; 実際は 1 行です。私が使っている設定です。$ ./autogen.sh--with-distro=LibreOfficeWin32 --disable-win-mozab-driver--with-ant-home=”/opt/ant” --with-lang=ja--enable-debug
TDF 公式ビルドの設定を借りてきますMozilla Address Book connector を無効化 (環境構築を簡単にするため)日本語 UI が使えるようにします
デバッグに便利な幾つかの設定をまとめて行います
29
①autogen.sh を実行 2/2
● オプションの指定の仕方によってはエラーになる– エラーが出なくなるまで修正を繰り返す
● エラーが出なくなったら設定を保存する– mv autogen.lastrun autogen.input
– autogen.input に指定したオプションの内容が保存されているので、以後は autogen.input を編集
– この時 autogen.sh はオプション無しで実行● 他にも細かい設定ができる
– ./autogen.sh --help でヘルプを参照
30
②make を実行● Win32 GNU make を実行する
– Cygwin make は非推奨● 実は make すれば必要な処理が実行される
– autogen.sh 、サブモジュールの取得、ダウンロード● LibreOffice のビルドが始まるので完了するまで待つ
;; Cygwin Terminal 上で実行してください$ C:/cygwin/opt/lo/bin/make…
31
初回ビルド時の注意● ダウンロードが大量に行われるため時間が掛かる
– LibreOffice が内部的に利用するソフトウェアのダウンロードが纏めて行われる( Python, Firebird RDBMS 他external のモジュール)
● 1 時間くらい?– サブモジュール(翻訳内容など)が clone される
● translations 、 discionaries 等のサブモジュール● これも 1 時間くらい?
32
ビルド完了● ビルド中は大量のメッセージが表示される● 最終的に、コマンド入力状態に戻ってくる
libreofficekit linginguistic lotuswordpro nlpsolver o3tl odk offapi officecfg oovbaapi ackage postprocess pyuno readlicense_oo registry remotebridges reporortdesign ridljar rsc sal salhelper sax sc scaddins sccomp scp2 scrixt setup_native sfx2 shell slideshow smoketest solenv soltools sot s store svgio svl svtools svx sw swext sysui test testtools toolkit tcb ucbhelper udkapi unodevtools unoidl unoil unotest unotools unoxmlhelper vcl winaccessibility wizards writerfilter writerperfect xmergloff xmlreader xmlscript xmlsecurity[build PRL] CustomTarget/instsetoo_native/install/install.phony[build SLC] writerperfect[build SLC] sc[build SLC] chart2[build SLC] sw[build SLC] libreoffice[build CHK] sd[build CHK] libreoffice[build CUS] instsetoo_native/install[build BIN] instsetoo_native[build MOD] instsetoo_native[build MOD] libreoffice[build BIN] top level modules: libreoffice[build ALL] top level modules: build-non-l10n-only build-l10n-only$
ビルドできたので実行してみます
34
自分でビルドした LibreOffice の起動● instdir/program/soffice.exe を実行
– インストール作業不要で実行やデバッグが可能– インストーラーは
workdir/installation/LibreOffice_Dev/msi/install/en-US_ja_qtz 配下に作成される
;; Cygwin Terminal 上で実行してください$ $ instdir/program/soffice.exe
35
デバッグ● Visual Studio を起動する● soffice.bin プロセスにアタッチしてデバッグする
– ソースコードデバッグが可能(デバッグオプションを付けて autogen.sh した場合)
デモ
37
ビルドでエラーが発生したら 1/3
● エラーメッセージやログをよく見る– 可能なら修正する
● Wiki ページの Known Problems をチェックする– https://wiki.documentfoundation.org/Development/B
uildingOnWindows#Known_Problems– Building LibreOffice on Windows with Cygwin and MSVCの最後の方– ウイルス対策ソフトが原因でビルドが失敗する時の回避
方法等があります
38
ビルドでエラーが発生したら 2/3
● 他の人たちのビルド状況を見る (Build Status (Tinderboxes))– http://tinderbox.libreoffice.org/MASTER/status.html
● ビルドエラー修正のコミットがないかリポジトリを見る– https://gerrit.libreoffice.org/gitweb?p=core.git;a=shortlog;h=refs/heads/master– https://gerrit.libreoffice.org/gitweb?p=core.git;a=shortlog;h=refs/heads/libreoff
ice-5-0– もしあれば ./g pull でリポジトリを更新して再度ビルド
39
ビルドでエラーが発生したら 3/3
● ビルドエラーの原因と思われるコミットが適用される前の状態に戻してビルドしてみる– git log で調べてから、 git reset 等で状態を戻してみる– どのコミットがビルドエラーの原因か特定する
その他のトピック
41
ビルドと翻訳● KeyID build
– KeyID は翻訳の補助で使うための特殊な言語● UI や help の翻訳内容が Pootle 上のどこに格納されているかを特定するために使う
– RC フェーズでも自分でビルドすればいつでも KeyID build
● オフィシャルに提供されるバイナリは β 版では KeyID が利用可能だが、 RC 版は利用できない
42
ビルドに掛かる時間の短縮方法について● LibreOffice のビルドには時間が掛かる
– スペックによって数十分〜 10 時間以上● マルチコア CPU で並列ビルドする
– 効果大– デフォルトでコア数に合わせた並列ビルドの設定になる
● 更に autogen.sh の --with-parallelismオプションを使ってチューニング● 速いストレージを使う(SSD 、ストライピング、 RAM DISK )
– 効果あり● autogen.sh のオプションを追加 / 変更
– 辞書 / オフラインヘルプ /SDK/ インストーラー等の自分が必要ないものを作成しない● メモリ不足によるスワップが発生しないようにする
– と言っても極端に多くのメモリが要求される訳ではない
43
lode : LibreOffice Developement Environment
● https://wiki.documentfoundation.org/Development/lode
● ビルド環境を自動セットアップしてくれるスクリプト– Windowsの場合は PowerShell + α
● まだ発展途上?– そのうち Wiki ページの情報が更新されるかも– 今日ご紹介した内容がコマンド一発とかボタン数クリッ
クでできるようになるといいですね!!
44
Microsoft Visual Studio 2015
● 2015 年 7 月 20 日にリリース予定– 今は RC
● Community Edition もある● まだ VS2015 で LibreOffice をビルドするは
experimental
– 既にコード修正は始まっている● Let's try!
45
Microsoft Visual Studio Project Integration doesn't work
● VS 上で LibreOffice の開発が可能になる機能– Intellisense 等の便利な機能が使えるはずだが ...
● エラーが出てソリューションファイルがちゃんと生成されない– Python 得意な方、是非デバッグを– 私もデバッグ中です
みんなでデバッグしよう!!ありがとうございました
47
参考文献 / Web ページ● Building LibreOffice on Windows with Cygwin
and MSVC: Tips and Tricks(TDF Wiki)– https://wiki.documentfoundation.org/Development/Bu
ildingOnWindows● Visual Studio Community 2013 Download
page– https://www.visualstudio.com/products/visual-studio-c
ommunity-vs● Java SE Downloads
– http://www.oracle.com/technetwork/java/javase/downloads/index.html
● This is the home of the Cygwin project– http://www.cygwin.com/
48
参考文献 / Web ページ● Dev-tools misc. useful libreoffice
development tools ( Win32 GNU make
download )– http://dev-www.libreoffice.org/bin/cygwin/
● THE APACHE ANT PROJECT HOMEPAGE– http://ant.apache.org/
● Tinderbox Status Page– http://tinderbox.libreoffice.org/MASTER/status.html– http://tinderbox.libreoffice.org/libreoffice-4-4/status.htm
l
49
参考文献 / Web ページ● libreoffice/core main, development code
repository– https://gerrit.libreoffice.org/gitweb?p=core.git;a=shortlog;h=refs/heads/master– https://gerrit.libreoffice.org/gitweb?p=core.git;a=shortlog;h=refs/heads/libreoff
ice-5-0● lode : LibreOffice Developement Environment
– https://wiki.documentfoundation.org/Development/lode● LibreOffice を Windows 上でビルドする( 2013-
12-14 第 5 回 関西 LibreOffice 勉強会)– http://www.slideshare.net/tomofumiyagi/libreoffice-bu
ildytmkndshortver-29235268