SlideShare a Scribd company logo
1 of 27
Download to read offline
LibreOfce を Windows 上でビルドする
( LibreOfce 4.2 以降)
Tomofumi Yagi <yagitmknada[at]gmail.com>
2013-12-14 第 5 回 関西 LibreOffice 勉強会

1
LibreOffice Productivity Suite
今日お話する内容
前置き
ビルド環境構築手順
ビルド手順
困っていることなど
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
LibreOffice Productivity Suite
必要な開発ツールについて
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
ビルドする LibreOfce のバージョンを選ぶ
4.2 か master を選択 (2013 年 12 月時点 )

4.2 以降はビルドもデバッグも楽
依存している開発ツール類が減り、ビルド環境構築が楽になった
日本語環境でのビルドや日本語 UI のビルドがやりやすい

ビルド環境はどんどん改善される

古いバージョンをビルドするのは時間の無駄(?)
恐らく、このスライドの内容 (2013 年 12 月時点 ) も、あっという間に古くな
ります
Building LibreOfce from an IDE,etc...

5
LibreOffice Productivity Suite
用意する OS 、ハードウェア
OS は Windows 7 / 8 / 8.1 どれでもビルド可
32 ビット OS / 64 ビット OS のどちらもビルド可

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

CPU はマルチコア、搭載メモリは 4GB 以上、ストレージの空きも 100GB く
らいありますよね ...

6
LibreOffice Productivity Suite
ビルド環境構築手順

7
LibreOffice Productivity Suite
ビルド環境構築手順の概観
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
① 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
② 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
③ Java SE Development Kit 7 のインストール
Oracle のサイトから Windows x86 用 ( 必ず 32 ビット版 ) を
ダウンロードしてインストール
http://www.oracle.com/technetwork/java/javase/downloads/index.html

11
LibreOffice Productivity Suite
④ Apache Ant のインストール
Apache のサイトからバイナリをダウンロードして、解凍して
適当なフォルダに配置
http://ant.apache.org/

12
LibreOffice Productivity Suite
⑤ 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
⑥ 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
LibreOffice Productivity Suite
ビルド手順の概観
autogen.sh の実行
② make
③ 実行とデバッグ
④ ビルドエラーが発生したら
①

16
LibreOffice Productivity Suite
① 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
② make
先ほどダウンロードした LibreOfce patched version の
make を実行
Cygwin 標準の make ではエラー!!
実は make すれば必要な処理が実行される
autogen.sh
サブモジュールの取得
ダウンロード

パッケージ、翻訳ファイル、辞書、ヘルプ

LibreOfce のビルドが始まる
時間が掛かるのでしばし待つ
$ /opt/lo/bin/make
…
$

18
LibreOffice Productivity Suite
③ 実行とデバッグ
ビルドできたら 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
④ ビルドエラーが発生したら
エラーメッセージやログを見て修正

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

Tinderbox のビルド状況を見る

http://tinderbox.libreofce.org/MASTER/status.html

ビルドエラー修正のコミットがないかリポジトリを見る
http://cgit.freedesktop.org/libreofce/core/

20
LibreOffice Productivity Suite
ビルドに成功するコミットハッシュ一覧( 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
LibreOffice Productivity Suite
その 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
その 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
その 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
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
参考文献 / 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

More Related Content

What's hot

What's EasyHacks? / EasyHacksについて
What's EasyHacks? / EasyHacksについてWhat's EasyHacks? / EasyHacksについて
What's EasyHacks? / EasyHacksについてNaruhiko Ogasawara
 
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版Keiichiro Shikano
 
Yocto Project ハンズオン / 参加者用資料
Yocto Project ハンズオン / 参加者用資料Yocto Project ハンズオン / 参加者用資料
Yocto Project ハンズオン / 参加者用資料Nobuhiro Iwamatsu
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Kazuyuki Mori
 
Docker + Checkpoint/Restore
Docker + Checkpoint/RestoreDocker + Checkpoint/Restore
Docker + Checkpoint/Restorekawamuray
 
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpSphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpTakeshi Komiya
 
βが取れたBluemixのDockerを使ってみる(基本編)
βが取れたBluemixのDockerを使ってみる(基本編)βが取れたBluemixのDockerを使ってみる(基本編)
βが取れたBluemixのDockerを使ってみる(基本編)Shisei Hanai
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on LinuxTakayoshi Tanaka
 
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方wata2ki
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話gree_tech
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話mdome
 
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...Naruhiko Ogasawara
 
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話Takayuki Shimizukawa
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステムl_b__
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Masahito Zembutsu
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみたwata2ki
 

What's hot (20)

What's EasyHacks? / EasyHacksについて
What's EasyHacks? / EasyHacksについてWhat's EasyHacks? / EasyHacksについて
What's EasyHacks? / EasyHacksについて
 
ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版ドキュメントシステムはこれを使え2015年版
ドキュメントシステムはこれを使え2015年版
 
Yocto Project ハンズオン / 参加者用資料
Yocto Project ハンズオン / 参加者用資料Yocto Project ハンズオン / 参加者用資料
Yocto Project ハンズオン / 参加者用資料
 
Docker meetup tokyo_public_r001
Docker meetup tokyo_public_r001Docker meetup tokyo_public_r001
Docker meetup tokyo_public_r001
 
Docker入門
Docker入門Docker入門
Docker入門
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
 
Docker + Checkpoint/Restore
Docker + Checkpoint/RestoreDocker + Checkpoint/Restore
Docker + Checkpoint/Restore
 
Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpSphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
 
βが取れたBluemixのDockerを使ってみる(基本編)
βが取れたBluemixのDockerを使ってみる(基本編)βが取れたBluemixのDockerを使ってみる(基本編)
βが取れたBluemixのDockerを使ってみる(基本編)
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
Introduce React Native
Introduce React NativeIntroduce React Native
Introduce React Native
 
YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方YoctoをつかったDistroの作り方とハマり方
YoctoをつかったDistroの作り方とハマり方
 
Dockerの基本的な話
Dockerの基本的な話Dockerの基本的な話
Dockerの基本的な話
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
さらばデスクトップ?モバイル・クラウド時代のLibreOfficeの挑戦/LibreOffice current status, or the chall...
 
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
執筆中のPythonプロフェッショナルプログラミング第2版でsphinxを使っている話
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステム
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみた
 
20170124 linux basic_2
20170124 linux basic_220170124 linux basic_2
20170124 linux basic_2
 

Similar to LibreOfficeをWindows上でビルドする

Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」aitc_jp
 
Hyper-V + Linux {which Microsoft Loves}
Hyper-V + Linux {which Microsoft Loves}Hyper-V + Linux {which Microsoft Loves}
Hyper-V + Linux {which Microsoft Loves}Norio Sashizaki
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET するm ishizaki
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#Yuta Matsumura
 
App Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートApp Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートMicrosoft Azure Japan
 
Displaylink : Reloaded
Displaylink : ReloadedDisplaylink : Reloaded
Displaylink : ReloadedMasataka Kondo
 
Flameにfirefox os2.1を入れてみた+α
Flameにfirefox os2.1を入れてみた+αFlameにfirefox os2.1を入れてみた+α
Flameにfirefox os2.1を入れてみた+αNaoki Takahashi
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修Suguru Yazawa
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CDYuta Matsumura
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築Hideharu MATSUFUJI
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)Masanori Ishigami
 
Minecraft modding 01
Minecraft modding 01Minecraft modding 01
Minecraft modding 01Takunology
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-Hiroki Kondo
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今Yuki Igarashi
 
解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 UpdateTomokazu Kizawa
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Atsushi Nakamura
 
120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundryTakayoshi Tanaka
 

Similar to LibreOfficeをWindows上でビルドする (20)

Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
2017年05月27日 AITCシニア技術者勉強会 第6回「OpenCV入門」
 
Hyper-V + Linux {which Microsoft Loves}
Hyper-V + Linux {which Microsoft Loves}Hyper-V + Linux {which Microsoft Loves}
Hyper-V + Linux {which Microsoft Loves}
 
Visual Studio を使わず .NET する
Visual Studio を使わず .NET するVisual Studio を使わず .NET する
Visual Studio を使わず .NET する
 
The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
 
App Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデートApp Service の DevOps と Visual Studio Team Services 最新アップデート
App Service の DevOps と Visual Studio Team Services 最新アップデート
 
Displaylink : Reloaded
Displaylink : ReloadedDisplaylink : Reloaded
Displaylink : Reloaded
 
Flameにfirefox os2.1を入れてみた+α
Flameにfirefox os2.1を入れてみた+αFlameにfirefox os2.1を入れてみた+α
Flameにfirefox os2.1を入れてみた+α
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CD
 
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
まっつんチャレンジ OSC出張編 45分でわかる PHP+Eclipseによるテスト駆動開発環境の構築
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
Team Foundation Server/Visual Studio Onlineアップデート(2015/07/22)
 
Minecraft modding 01
Minecraft modding 01Minecraft modding 01
Minecraft modding 01
 
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
成長できるエンタープライズシステムを目指して-OSGiによるモジュール型アーキテクチャの実現-
 
.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
Embedded Master2
Embedded Master2Embedded Master2
Embedded Master2
 
解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update
 
Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0Desktop app dev strategy for .net core 3.0
Desktop app dev strategy for .net core 3.0
 
120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry120315 cloud founry_java_ironfoundry
120315 cloud founry_java_ironfoundry
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

LibreOfficeをWindows上でビルドする

  • 1. LibreOfce を Windows 上でビルドする ( LibreOfce 4.2 以降) Tomofumi Yagi <yagitmknada[at]gmail.com> 2013-12-14 第 5 回 関西 LibreOffice 勉強会 1 LibreOffice Productivity Suite
  • 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
  • 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. ビルドする LibreOfce のバージョンを選ぶ 4.2 か master を選択 (2013 年 12 月時点 ) 4.2 以降はビルドもデバッグも楽 依存している開発ツール類が減り、ビルド環境構築が楽になった 日本語環境でのビルドや日本語 UI のビルドがやりやすい ビルド環境はどんどん改善される 古いバージョンをビルドするのは時間の無駄(?) 恐らく、このスライドの内容 (2013 年 12 月時点 ) も、あっという間に古くな ります Building LibreOfce from an IDE,etc... 5 LibreOffice Productivity Suite
  • 6. 用意する OS 、ハードウェア OS は Windows 7 / 8 / 8.1 どれでもビルド可 32 ビット OS / 64 ビット OS のどちらもビルド可 ハードウェアは、いまどきの一般的な PC を想定 CPU はマルチコア、搭載メモリは 4GB 以上、ストレージの空きも 100GB く らいありますよね ... 6 LibreOffice Productivity Suite
  • 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. ① 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. ② 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. ③ Java SE Development Kit 7 のインストール Oracle のサイトから Windows x86 用 ( 必ず 32 ビット版 ) を ダウンロードしてインストール http://www.oracle.com/technetwork/java/javase/downloads/index.html 11 LibreOffice Productivity Suite
  • 12. ④ Apache Ant のインストール Apache のサイトからバイナリをダウンロードして、解凍して 適当なフォルダに配置 http://ant.apache.org/ 12 LibreOffice Productivity Suite
  • 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. ⑥ 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
  • 16. ビルド手順の概観 autogen.sh の実行 ② make ③ 実行とデバッグ ④ ビルドエラーが発生したら ① 16 LibreOffice Productivity Suite
  • 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. ② make 先ほどダウンロードした LibreOfce patched version の make を実行 Cygwin 標準の make ではエラー!! 実は make すれば必要な処理が実行される autogen.sh サブモジュールの取得 ダウンロード パッケージ、翻訳ファイル、辞書、ヘルプ LibreOfce のビルドが始まる 時間が掛かるのでしばし待つ $ /opt/lo/bin/make … $ 18 LibreOffice Productivity Suite
  • 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. ④ ビルドエラーが発生したら エラーメッセージやログを見て修正 時々コミットが原因で Windows のビルドが壊れることがある 最近は、あっという間に修正される(?) Tinderbox のビルド状況を見る http://tinderbox.libreofce.org/MASTER/status.html ビルドエラー修正のコミットがないかリポジトリを見る http://cgit.freedesktop.org/libreofce/core/ 20 LibreOffice Productivity Suite
  • 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
  • 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. その 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. その 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. 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. 参考文献 / 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