libreoffice を windows 上でビルドする update

49
LibreOffice Windows 上でビルドする UPDATE LibreOffice 5.0/master Tomofumi Yagi <yagitmknada[at]gmail.com> 2015-7-11 10 回 関西 LibreOffice 勉強会 この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライ センスの下に提供されています。

Upload: tomofumi-yagi

Post on 09-Aug-2015

319 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: LibreOffice を Windows 上でビルドする UPDATE

LibreOfficeをWindows上でビルドする

UPDATE

(LibreOffice 5.0/master)

Tomofumi Yagi <yagitmknada[at]gmail.com> 2015-7-11 第 10 回 関西 LibreOffice 勉強会

この 作品 は クリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスの下に提供されています。

Page 2: LibreOffice を Windows 上でビルドする UPDATE

UPDATE?

Page 3: LibreOffice を Windows 上でビルドする UPDATE

3

以前、こんな発表をしました● 古くなった内容を UPDATEしたいと思います

Page 4: LibreOffice を Windows 上でビルドする UPDATE

はじめに

Page 5: LibreOffice を Windows 上でビルドする UPDATE

5

今日、お話する内容● Windows 上で LibreOffice をビルドする手順の紹介

– ビルドって何?– 自分で LibreOffice をビルドするための環境構築– 自分でビルドした LibreOffice の実行とデバッグ– その他のトピック

● Jenkins や CI に関するお話はありません。– ごめんなさい

Page 6: LibreOffice を Windows 上でビルドする UPDATE

ビルドって何?

Page 7: LibreOffice を Windows 上でビルドする UPDATE

7

LibreOffice はオープンソースのプロジェクト● ソースコードが公開されている

– ソースコード=ソフトウェアの設計図

Page 8: LibreOffice を Windows 上でビルドする UPDATE

8

ソースコード(設計図)を元に、実際に動作するソフトウェアを生成する = ビルド● 平たく言えば、 LibreOffice 公式サイトで配布されて

いるコレの中身を自分で作ります

– (備考)ビルドは LibreOffice の開発を行うには必須の作業

Page 9: LibreOffice を Windows 上でビルドする UPDATE

9

前回発表( 2013 年 12 月)以降に変わったこと● 64 ビット Windows 版 LibreOffice がビルド可能に● Visual Studio 2013 対応

– Visual Studio Community 2013でも勿論ビルド可能● Win32 GNU Make の採用

– ビルドに掛かる時間の短縮● Microsoft Visual Studio Project Integration

– これについては後ほど ...

Page 10: LibreOffice を Windows 上でビルドする UPDATE

ビルドのための環境構築

Page 11: LibreOffice を Windows 上でビルドする UPDATE

11

まず The Document Foundation ( TDF ) のWiki のページを開く

Page 12: LibreOffice を Windows 上でビルドする UPDATE

12

Development ページから

Page 13: LibreOffice を Windows 上でビルドする UPDATE

13

Windows でのビルドに関するページへ進む

Page 14: LibreOffice を Windows 上でビルドする UPDATE

14

Building LibreOffice on Windows with Cygwin and MSVC: Tips and Tricks

● https://wiki.documentfoundation.org/Development/BuildingOnWindows

● ビルドに必要な情報はここに全部書いてある● 内容が更新される

– LibreOffice のビルド方法はどんどん改良される● このスライドの内容はすぐに古くなる可能性が高いです● 自分でビルド環境を改善して、 Wiki で情報提供もできたら素敵

ですね!

Page 15: LibreOffice を Windows 上でビルドする UPDATE

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 だと短い時間でビルド可能

Page 16: LibreOffice を Windows 上でビルドする UPDATE

16

LibreOffice をビルドするため必要なもの 2/2

• 必要な開発ツール①Microsoft Visual Studio 2013

②Java SE Development Kit( JDK )③Cygwin

④Win32 GNU make

⑤Apache Ant● 今回は省略していますが可能なら JUnit も

● ⑥LibreOffice のソースコードも必要

Page 17: LibreOffice を Windows 上でビルドする UPDATE

それではビルドするための環境を構築してみます

Page 18: LibreOffice を Windows 上でビルドする UPDATE

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 は不可)● サイトからダウンロードしてインストール

– 時間が掛かります

Page 19: LibreOffice を Windows 上でビルドする UPDATE

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 をダウンロードしてインストール– どちらもビルドする人は両方

Page 20: LibreOffice を Windows 上でビルドする UPDATE

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>

Page 21: LibreOffice を Windows 上でビルドする UPDATE

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

Page 22: LibreOffice を Windows 上でビルドする UPDATE

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 $

Page 23: LibreOffice を Windows 上でビルドする UPDATE

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$

Page 24: LibreOffice を Windows 上でビルドする UPDATE

デモ

Page 25: LibreOffice を Windows 上でビルドする UPDATE

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/

Page 26: LibreOffice を Windows 上でビルドする UPDATE

ビルドとデバッグ

Page 27: LibreOffice を Windows 上でビルドする UPDATE

27

ビルドする LibreOffice のバージョンを決める● masterか最新の安定版が無難

– 新しいバージョンの方が楽にビルドできる– 最新の安定版 5.0 の系列がよりビルドし易いかも– master もビルドしやすくなったが稀にビルドが壊れる

● 必要であればブランチを切り替え– 5.0 をビルドする場合 git checkout で追跡ブランチを作

成し、このブランチに切り替えてビルドします;; Cygwin Terminal 上で実行してください$ cd core$ ./g checkout --track remotes/origin/libreoffice-5-0 ;; master 以外はブランチを切り替え$

Page 28: LibreOffice を Windows 上でビルドする UPDATE

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 が使えるようにします

デバッグに便利な幾つかの設定をまとめて行います

Page 29: LibreOffice を Windows 上でビルドする UPDATE

29

①autogen.sh を実行 2/2

● オプションの指定の仕方によってはエラーになる– エラーが出なくなるまで修正を繰り返す

● エラーが出なくなったら設定を保存する– mv autogen.lastrun autogen.input

– autogen.input に指定したオプションの内容が保存されているので、以後は autogen.input を編集

– この時 autogen.sh はオプション無しで実行● 他にも細かい設定ができる

– ./autogen.sh --help でヘルプを参照

Page 30: LibreOffice を Windows 上でビルドする UPDATE

30

②make を実行● Win32 GNU make を実行する

– Cygwin make は非推奨● 実は make すれば必要な処理が実行される

– autogen.sh 、サブモジュールの取得、ダウンロード● LibreOffice のビルドが始まるので完了するまで待つ

;; Cygwin Terminal 上で実行してください$ C:/cygwin/opt/lo/bin/make…

Page 31: LibreOffice を Windows 上でビルドする UPDATE

31

初回ビルド時の注意● ダウンロードが大量に行われるため時間が掛かる

– LibreOffice が内部的に利用するソフトウェアのダウンロードが纏めて行われる( Python, Firebird RDBMS 他external のモジュール)

● 1 時間くらい?– サブモジュール(翻訳内容など)が clone される

● translations 、 discionaries 等のサブモジュール● これも 1 時間くらい?

Page 32: LibreOffice を Windows 上でビルドする UPDATE

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$

Page 33: LibreOffice を Windows 上でビルドする UPDATE

ビルドできたので実行してみます

Page 34: LibreOffice を Windows 上でビルドする UPDATE

34

自分でビルドした LibreOffice の起動● instdir/program/soffice.exe を実行

– インストール作業不要で実行やデバッグが可能– インストーラーは

workdir/installation/LibreOffice_Dev/msi/install/en-US_ja_qtz 配下に作成される

;; Cygwin Terminal 上で実行してください$ $ instdir/program/soffice.exe

Page 35: LibreOffice を Windows 上でビルドする UPDATE

35

デバッグ● Visual Studio を起動する● soffice.bin プロセスにアタッチしてデバッグする

– ソースコードデバッグが可能(デバッグオプションを付けて autogen.sh した場合)

Page 36: LibreOffice を Windows 上でビルドする UPDATE

デモ

Page 37: LibreOffice を Windows 上でビルドする UPDATE

37

ビルドでエラーが発生したら 1/3

● エラーメッセージやログをよく見る– 可能なら修正する

● Wiki ページの Known Problems をチェックする– https://wiki.documentfoundation.org/Development/B

uildingOnWindows#Known_Problems– Building LibreOffice on Windows with Cygwin and MSVCの最後の方– ウイルス対策ソフトが原因でビルドが失敗する時の回避

方法等があります

Page 38: LibreOffice を Windows 上でビルドする UPDATE

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 でリポジトリを更新して再度ビルド

Page 39: LibreOffice を Windows 上でビルドする UPDATE

39

ビルドでエラーが発生したら 3/3

● ビルドエラーの原因と思われるコミットが適用される前の状態に戻してビルドしてみる– git log で調べてから、 git reset 等で状態を戻してみる– どのコミットがビルドエラーの原因か特定する

Page 40: LibreOffice を Windows 上でビルドする UPDATE

その他のトピック

Page 41: LibreOffice を Windows 上でビルドする UPDATE

41

ビルドと翻訳● KeyID build

– KeyID は翻訳の補助で使うための特殊な言語● UI や help の翻訳内容が Pootle 上のどこに格納されているかを特定するために使う

– RC フェーズでも自分でビルドすればいつでも KeyID build

● オフィシャルに提供されるバイナリは β 版では KeyID が利用可能だが、 RC 版は利用できない

Page 42: LibreOffice を Windows 上でビルドする UPDATE

42

ビルドに掛かる時間の短縮方法について● LibreOffice のビルドには時間が掛かる

– スペックによって数十分〜 10 時間以上● マルチコア CPU で並列ビルドする

– 効果大– デフォルトでコア数に合わせた並列ビルドの設定になる

● 更に autogen.sh の --with-parallelismオプションを使ってチューニング● 速いストレージを使う(SSD 、ストライピング、 RAM DISK )

– 効果あり● autogen.sh のオプションを追加 / 変更

– 辞書 / オフラインヘルプ /SDK/ インストーラー等の自分が必要ないものを作成しない● メモリ不足によるスワップが発生しないようにする

– と言っても極端に多くのメモリが要求される訳ではない

Page 43: LibreOffice を Windows 上でビルドする UPDATE

43

lode : LibreOffice Developement Environment

● https://wiki.documentfoundation.org/Development/lode

● ビルド環境を自動セットアップしてくれるスクリプト– Windowsの場合は PowerShell + α

● まだ発展途上?– そのうち Wiki ページの情報が更新されるかも– 今日ご紹介した内容がコマンド一発とかボタン数クリッ

クでできるようになるといいですね!!

Page 44: LibreOffice を Windows 上でビルドする UPDATE

44

Microsoft Visual Studio 2015

● 2015 年 7 月 20 日にリリース予定– 今は RC

● Community Edition もある● まだ VS2015 で LibreOffice をビルドするは

experimental

– 既にコード修正は始まっている● Let's try!

Page 45: LibreOffice を Windows 上でビルドする UPDATE

45

Microsoft Visual Studio Project Integration doesn't work

● VS 上で LibreOffice の開発が可能になる機能– Intellisense 等の便利な機能が使えるはずだが ...

● エラーが出てソリューションファイルがちゃんと生成されない– Python 得意な方、是非デバッグを– 私もデバッグ中です

Page 46: LibreOffice を Windows 上でビルドする UPDATE

みんなでデバッグしよう!!ありがとうございました

Page 47: LibreOffice を Windows 上でビルドする UPDATE

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/

Page 48: LibreOffice を Windows 上でビルドする UPDATE

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

Page 49: LibreOffice を Windows 上でビルドする UPDATE

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