LibreOfce を Windows 上でビルドする
( LibreOfce 4.2 以降)
Tomofumi Yagi <yagitmknada[at]gmail.com>
2013-12-14 第 5 回 関西 LibreOffice 勉...
今日お話する内容
前置き
ビルド環境構築手順
ビルド手順
困っていることなど
The Document Foundation Wiki(TDF Wiki) の内容に習って
Windows 上で LibreOfce をビルドする手順を紹介します
...
前置き

3
LibreOffice Productivity Suite
必要な開発ツールについて
1.Cygwin
2.GNU Make(LibreOfce patched version)
3.Java SE Development Kit 7
4.Apache Ant
5.Visual Studio Expre...
ビルドする LibreOfce のバージョンを選ぶ
4.2 か master を選択 (2013 年 12 月時点 )

4.2 以降はビルドもデバッグも楽
依存している開発ツール類が減り、ビルド環境構築が楽になった
日本語環境でのビルドや日本...
用意する OS 、ハードウェア
OS は Windows 7 / 8 / 8.1 どれでもビルド可
32 ビット OS / 64 ビット OS のどちらもビルド可

ハードウェアは、いまどきの一般的な PC を想定

CPU はマルチコア、搭載...
ビルド環境構築手順

7
LibreOffice Productivity Suite
ビルド環境構築手順の概観
Cygwin のインストール
② GNU Make(LibreOfce patched version) のインストール
③ Java SE Development Kit 7 のインストール
④ Apache Ant...
① Cygwin のインストール
Cygwin のサイトからインストーラー (setup-x86.exe か
setup-x86_64.exe) をダウンロード
-P オプションを付けてコマンドプロンプトからインストー
ラーを実行
インストール...
② GNU Make(LibreOfce patched version) のイン

ストール

dev-www.libreofce.org で配布されているバイナリをダウン
ロードして /opt/lo/bin 等へ配置
http://dev-...
③ Java SE Development Kit 7 のインストール
Oracle のサイトから Windows x86 用 ( 必ず 32 ビット版 ) を
ダウンロードしてインストール
http://www.oracle.com/tech...
④ Apache Ant のインストール
Apache のサイトからバイナリをダウンロードして、解凍して
適当なフォルダに配置
http://ant.apache.org/

12
LibreOffice Productivity Suite
⑤ Visual Studio Express 2012 for Windows
Desktop のインストール
マイクロソフトのダウンロードセンターからダウンロードし
てインストール
http://www.microsoft.com/ja-j...
⑥ LibreOfce のソースコード取得
dev-www.libreofce.org で配布されているツールを使ってダ
ウンロード (lo-submodules-from-bundles.sh)
もちろん普通に git clone してもよい...
ビルド手順

15
LibreOffice Productivity Suite
ビルド手順の概観
autogen.sh の実行
② make
③ 実行とデバッグ
④ ビルドエラーが発生したら
①

16
LibreOffice Productivity Suite
① autogen.sh の実行
autogen.sh にオプションを指定

Windows は他の OS に比べて指定すべき項目が多い
Visual Studio Express を使うときは --disable-atl と --disabl...
② make
先ほどダウンロードした LibreOfce patched version の
make を実行
Cygwin 標準の make ではエラー!!
実は make すれば必要な処理が実行される
autogen.sh
サブモジュールの...
③ 実行とデバッグ
ビルドできたら instdir/program/sofce.exe を実行

LibreOfce が起動する
Visual Studio を起動し、 sofce.bin プロセスにアタッチしてデバッグする
ソースコードデバッ...
④ ビルドエラーが発生したら
エラーメッセージやログを見て修正

時々コミットが原因で Windows のビルドが壊れることがある
最近は、あっという間に修正される(?)

Tinderbox のビルド状況を見る

http://tinderb...
ビルドに成功するコミットハッシュ一覧( 2013 年
12 月 30 日追記)
VS Express 版 + 日本語の環境でビルドに成功するコミット
ハッシュ一覧( 2013 年 12 月 19 日〜 12 月 29 日)
master
com...
困っていることなど

22
LibreOffice Productivity Suite
その 1
Cygwin が原因のエラー

エラーが出たり出なかったり ...
ツールのバージョンを下げると改善することがある
ただし 64 ビット版はこの小細工が使えない時も ...
dash -c /opt/lo/bin/make の様にする...
その 2
ウイルス対策ソフトが反応してビルドに失敗する

BitDefender / other security tools breaking the build
https://wiki.documentfoundation.org/Dev...
その 3
インストーラー作成時のエラー対策

mergemodule.pm を 1 行だけ修正
confgure.ac か mergemodule.pm の不具合(多分)
可能な方は修正お願いします ( 私もします )

diff --git ...
Thank you …
みんなでデバッグしよう!!

All text and image content in this document is licensed under the Creative Commons Attribution-...
参考文献 / Web ページ
Windows Build Dependencies(TDF Wiki)

https://wiki.documentfoundation.org/Development/Windows_Build_Depe
nd...
Upcoming SlideShare
Loading in …5
×

LibreOfficeをWindows上でビルドする

983 views

Published on

第5回関西LibreOffice勉強会の資料です。

Published in: Technology
5 Comments
1 Like
Statistics
Notes
  • スライドを3点修正しました。

    1. 「ビルドに成功するコミットハッシュ一覧」を追記しました。
    2. Cygwin の不可解なエラーを軽減する方法について追記しました(Mogi さんありがとうございます)。
    3. --disable-ia2 は master ではエラーになるため注記しました。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 「Cygwinが原因のエラー」は、 `dash -c /opt/lo/bin/make` とすると、かなり減る印象があります。また、 VS Express + 日本語の環境でビルドが通るコミットハッシュは貴重なので、記載していただけると助かります。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • autogen.sh のオプションに --disable-ia2 を追加しました(ビルドエラー回避)。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • P14 のコマンド例を更に訂正しました。
    サブモジュールを考慮し、git のラッパーを使うようにしました。
    ーーーーー例ここからーーーーー
    $ ./g pull
    $ ./g checkout –-track remotes/origin/libreoffice-4-2
    $
    ーーーーー例ここまでーーーーー
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • 1箇所訂正させてください。
    P14 のコマンド例についてです。
    LibreOffice のソースツリーを配置するフォルダは、cygwin をインストールしたフォルダ配下にしない方が安全かも知れません(エラーになりにくい可能性がある)。
    ーーーーー例ここからーーーーー
    $ mkdir /cygdrive/c/lo/
    $ cd /cygdrive/c/lo/
    $
    ーーーーー例ここまでーーーーー
    スライドは後ほど差し替えます。
    また、もう少し調べさせてください。
    ごめんなさい。
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
983
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
2
Comments
5
Likes
1
Embeds 0
No embeds

No notes for slide

LibreOfficeをWindows上でビルドする

  1. 1. LibreOfce を Windows 上でビルドする ( LibreOfce 4.2 以降) Tomofumi Yagi <yagitmknada[at]gmail.com> 2013-12-14 第 5 回 関西 LibreOffice 勉強会 1 LibreOffice Productivity Suite
  2. 2. 今日お話する内容 前置き ビルド環境構築手順 ビルド手順 困っていることなど The Document Foundation Wiki(TDF Wiki) の内容に習って Windows 上で LibreOfce をビルドする手順を紹介します https://wiki.documentfoundation.org/Development/Wind ows_Build_Dependencies ※LibreOfce 4.2 以降が対象です 2 LibreOffice Productivity Suite
  3. 3. 前置き 3 LibreOffice Productivity Suite
  4. 4. 必要な開発ツールについて 1.Cygwin 2.GNU Make(LibreOfce patched version) 3.Java SE Development Kit 7 4.Apache Ant 5.Visual Studio Express 2012 for Windows Desktop ※ 一部の機能を無効にしてビルドすることで環境構築を簡略化します 4 LibreOffice Productivity Suite
  5. 5. ビルドする LibreOfce のバージョンを選ぶ 4.2 か master を選択 (2013 年 12 月時点 ) 4.2 以降はビルドもデバッグも楽 依存している開発ツール類が減り、ビルド環境構築が楽になった 日本語環境でのビルドや日本語 UI のビルドがやりやすい ビルド環境はどんどん改善される 古いバージョンをビルドするのは時間の無駄(?) 恐らく、このスライドの内容 (2013 年 12 月時点 ) も、あっという間に古くな ります Building LibreOfce from an IDE,etc... 5 LibreOffice Productivity Suite
  6. 6. 用意する OS 、ハードウェア OS は Windows 7 / 8 / 8.1 どれでもビルド可 32 ビット OS / 64 ビット OS のどちらもビルド可 ハードウェアは、いまどきの一般的な PC を想定 CPU はマルチコア、搭載メモリは 4GB 以上、ストレージの空きも 100GB く らいありますよね ... 6 LibreOffice Productivity Suite
  7. 7. ビルド環境構築手順 7 LibreOffice Productivity Suite
  8. 8. ビルド環境構築手順の概観 Cygwin のインストール ② GNU Make(LibreOfce patched version) のインストール ③ Java SE Development Kit 7 のインストール ④ Apache Ant のインストール ⑤ Visual Studio Express 2012 for Windows Desktop のイン ストール ⑥ LibreOfce のソースコード取得 ① 8 LibreOffice Productivity Suite
  9. 9. ① Cygwin のインストール Cygwin のサイトからインストーラー (setup-x86.exe か setup-x86_64.exe) をダウンロード -P オプションを付けてコマンドプロンプトからインストー ラーを実行 インストールするパッケージのリストを指定して楽します パッケージのリストは TDF Wiki に書かれている方が汎用的かも ... GUI のインストーラーが起動するので続けて操作 REM コマンドプロンプト上で実行してください REM 実際は一行です C:¥tmp> setup-x86.exe -P autoconf,automake,bison,doxygen,flex,gcc4-g++,git,gperf, make,patch,perl,python,pkg-config,unzip,zip,curl,wget, perl-Archive-Zip C:¥tmp> 9 LibreOffice Productivity Suite
  10. 10. ② GNU Make(LibreOfce patched version) のイン ストール dev-www.libreofce.org で配布されているバイナリをダウン ロードして /opt/lo/bin 等へ配置 http://dev-www.libreofce.org/bin/cygwin/make このバイナリは 64 ビット版の cygwin で使えないので注意(自分でソースか らビルドする) ;; Cygwin Terminal 上で実行してください $ mkdir -p /opt/lo/bin $ cd /opt/lo/bin $ curl -O http://dev-www.libreoffice.org/bin/cygwin/make $ chmod +x make $ /opt/lo/bin/make -v GNU Make 4.0 … LibreOffice patched version $ 10 LibreOffice Productivity Suite
  11. 11. ③ Java SE Development Kit 7 のインストール Oracle のサイトから Windows x86 用 ( 必ず 32 ビット版 ) を ダウンロードしてインストール http://www.oracle.com/technetwork/java/javase/downloads/index.html 11 LibreOffice Productivity Suite
  12. 12. ④ Apache Ant のインストール Apache のサイトからバイナリをダウンロードして、解凍して 適当なフォルダに配置 http://ant.apache.org/ 12 LibreOffice Productivity Suite
  13. 13. ⑤ Visual Studio Express 2012 for Windows Desktop のインストール マイクロソフトのダウンロードセンターからダウンロードし てインストール http://www.microsoft.com/ja-jp/download/details.aspx?id=34673 Visual Studio 2012 の更新プログラムを適用 ビルドしてできたバイナリを XP 上で実行したいなら必須 なぜ Visual Studio Express 2012 for Windows Desktop ? SDK 類が一緒にインストールされるので楽 Windows SDK 、 DirectX SDK 、 .NET Framework Express 版でもごく一部の機能を除けばビルド可能 13 LibreOffice Productivity Suite
  14. 14. ⑥ LibreOfce のソースコード取得 dev-www.libreofce.org で配布されているツールを使ってダ ウンロード (lo-submodules-from-bundles.sh) もちろん普通に git clone してもよい それなりに時間が掛かる。 4.2 をビルドする場合は、 ./g checkout してブランチを切り替え $ mkdir  /cygdrive/c/lo/ $ cd  /cygdrive/c/lo/ $ wget http://cgit.freedesktop.org/libreoffice/contrib/ dev-tools/plain/lo-submodules-from-bundles.sh $ chmod u+x lo-submodules-from-bundles.sh $ ./lo-submodules-from-bundles.sh -t core transrations help dictionaries $ cd core $ ./g pull $ ./g checkout --track remotes/origin/libreoffice-4-2 $ 14 LibreOffice Productivity Suite
  15. 15. ビルド手順 15 LibreOffice Productivity Suite
  16. 16. ビルド手順の概観 autogen.sh の実行 ② make ③ 実行とデバッグ ④ ビルドエラーが発生したら ① 16 LibreOffice Productivity Suite
  17. 17. ① autogen.sh の実行 autogen.sh にオプションを指定 Windows は他の OS に比べて指定すべき項目が多い Visual Studio Express を使うときは --disable-atl と --disable-activex を追加 エラーが解消したら mv autogen.lastrun autogen.input しておく ;; 実際は 1 行です。私が使っている設定です。 $ ./autogen.sh --with-lang=ja --enable-debug --enable-dbgutil --with-distro=LibreOfficeWin32 --with-jdk-home=”/cygdrive/c/Program Files/Java/jdk1.7” --with-ant-home=”/cygdrive/c/ant” --disable-win-mozab-driver --disable-ia2 は --disable-ia2 4.2 のみ指定してください。 --disable-atl master ではエラーになります。 --disable-activex --enable-pch --disable-ccache 17 LibreOffice Productivity Suite
  18. 18. ② make 先ほどダウンロードした LibreOfce patched version の make を実行 Cygwin 標準の make ではエラー!! 実は make すれば必要な処理が実行される autogen.sh サブモジュールの取得 ダウンロード パッケージ、翻訳ファイル、辞書、ヘルプ LibreOfce のビルドが始まる 時間が掛かるのでしばし待つ $ /opt/lo/bin/make … $ 18 LibreOffice Productivity Suite
  19. 19. ③ 実行とデバッグ ビルドできたら instdir/program/sofce.exe を実行 LibreOfce が起動する Visual Studio を起動し、 sofce.bin プロセスにアタッチしてデバッグする ソースコードデバッグが可能なはず インストーラー (msi) は workdir/installation/LibreOfce_Dev/msi/install/en-US_ja_qtz 配下にある $ ./instdir/program/soffice.exe … 19 LibreOffice Productivity Suite
  20. 20. ④ ビルドエラーが発生したら エラーメッセージやログを見て修正 時々コミットが原因で Windows のビルドが壊れることがある 最近は、あっという間に修正される(?) Tinderbox のビルド状況を見る http://tinderbox.libreofce.org/MASTER/status.html ビルドエラー修正のコミットがないかリポジトリを見る http://cgit.freedesktop.org/libreofce/core/ 20 LibreOffice Productivity Suite
  21. 21. ビルドに成功するコミットハッシュ一覧( 2013 年 12 月 30 日追記) VS Express 版 + 日本語の環境でビルドに成功するコミット ハッシュ一覧( 2013 年 12 月 19 日〜 12 月 29 日) master commit commit commit commit commit commit commit 4.2 1542a655ea21da4cdcd4b836283e44fba5f35059 f0c03edd639fd792b36d1bfc5fe54a52d67c9dee 5d3b3b9fc15bac8bba286e64a6a0e28f2dbb8529 46205b2e4c16938a158cf3b2ae16107e34f7793 dbd8a631bb23c588f52102e5dd2a61c9cd854bc3 32a32d572c91cddc156cd91fbb35f01fd3c56d97 f039d36ec5404f76c5472d04593e04096bf4252d ただし mergemodule.pm の修正が必要です(後述)。 12/20 のこことか、 12/29 のここはビルドに失敗しました。 commit dbd8709af0545b0372c28c5f36efba68bca580  - 12/19 12/20 12/23 12/24 12/27 12/28 12/29 - 12/27 ただし mergemodule.pm の修正が必要です(後述)。 4.2 ブランチの先端は大抵ビルド可能だと思われます。 21 LibreOffice Productivity Suite
  22. 22. 困っていることなど 22 LibreOffice Productivity Suite
  23. 23. その 1 Cygwin が原因のエラー エラーが出たり出なかったり ... ツールのバージョンを下げると改善することがある ただし 64 ビット版はこの小細工が使えない時も ... dash -c /opt/lo/bin/make の様にすると良いそうです( Mogi さんより) $ /opt/lo/bin/make … $ [build LEX] unoidl/source/sourceprovider-scanner 0 [main] bison 6960 fhandler_disk_file::fixup_mmap_after_fork: requested 0xFFEA0000 != 0x0 mem alloc base 0xFFEA0000, state 0x1000, size 20480, Win32 error 487 238 [main] bison 6960 C:cygwinbinbison.exe: *** fatal error in forked process recreate_mmaps_after_fork_failed 857 [main] bison 6960 open_stackdumpfile: Dumping stack trace to bison.exe.stackdump 1 [main] bison 1120 fork: child -1 - forked process 6960 died unexpectedly, retry 0, exit code 0x100, errno 11 bison: m4 サブプロセスが失敗しました : Resource temporarily unavailable F:/lo4mas/core/solenv/gbuild/LinkTarget.mk:249: recipe for target 'F:/lo4mas/core/workdir/YaccTarget/unoidl/source/sourceprovider-parser.done' failed make[1]: *** [F:/lo4mas/core/workdir/YaccTarget/unoidl/source/sourceprovider-parser.done] Error 1 make[1]: *** Waiting for unfinished jobs.... Makefile:219: recipe for target 'build' failed make: *** [build] Error 2 23 LibreOffice Productivity Suite
  24. 24. その 2 ウイルス対策ソフトが反応してビルドに失敗する BitDefender / other security tools breaking the build https://wiki.documentfoundation.org/Development/Windows_Build_De pendencies ※Wiki ページの最後の方 対策 Cygwin のテンポラリに作られる該当ファイルをウイルス対策ソフトのス キャン対象から除外する autogen.sh のオプションに --disable-cve-tests を指定 24 LibreOffice Productivity Suite
  25. 25. その 3 インストーラー作成時のエラー対策 mergemodule.pm を 1 行だけ修正 confgure.ac か mergemodule.pm の不具合(多分) 可能な方は修正お願いします ( 私もします ) diff --git a/solenv/bin/modules/installer/windows/mergemodule.pm  b/solenv/bin/modules/installer/windows/mergemodule.pm index 8922f7c..4ba2a88 100644 --- a/solenv/bin/modules/installer/windows/mergemodule.pm +++ b/solenv/bin/modules/installer/windows/mergemodule.pm @@ -75,7 +75,7 @@ sub merge_mergemodules_into_msi_database foreach $mergemodule ( @{$mergemodules} ) { my $filename = $mergemodule->{'Name'}; my $mergefile = $ENV{'MSM_PATH'} . $filename; + my $mergefile = $ENV{'MSM_PATH'} . $installer::globals::separator . $filename; if ( ! -f $mergefile ) { installer::exiter::exit_program("ERROR: msm file not found: $filename ($mergefile)!", "mer my $completesource = $mergefile; 25 LibreOffice Productivity Suite
  26. 26. Thank you … みんなでデバッグしよう!! All text and image content in this document is licensed under the Creative Commons Attribution-Share Alike 3.0 License (unless otherwise specified). "LibreOffice" and "The Document Foundation" are registered trademarks. Their respective logos and icons are subject to international copyright laws. The use of these therefore is subject to the trademark policy. 26 LibreOffice Productivity Suite
  27. 27. 参考文献 / Web ページ Windows Build Dependencies(TDF Wiki) https://wiki.documentfoundation.org/Development/Windows_Build_Depe ndencies Tinderbox Status Page http://tinderbox.libreofce.org/MASTER/status.html http://tinderbox.libreofce.org/libreofce-4-2/status.html libreofce/core main, development code repository http://cgit.freedesktop.org/libreofce/core/ Dev-tools misc. useful libreofce development tools http://cgit.freedesktop.org/libreofce/contrib/dev-tools/ 27 LibreOffice Productivity Suite

×