SlideShare a Scribd company logo
1 of 32
Download to read offline
1
LibreOffice Study Party around Hamanako / 2016.1.24
LibreOffice をビルドしてみよう
LibreOffice Study Party around Hamanako
Masataka KONDO : LibreOffice Japanese Team
January 24th, 2016
2
LibreOffice Study Party around Hamanako / 2016.1.24
なぜビルドが望まれるのか
「誰でもビルドできる」ことで開発の活性化を目指す
ビルドしやすい開発環境
入手容易なコンパイラその他の情報共有
ビルド手順の簡略化 e.g. autogen.sh
ソースコードの最適化
脆弱性にいちはやく対応する
アルゴリズムなどの見直しによる高速化
カスタマイズ・フォークの推進
フォークビルドの機能が本家に逆輸入 ( されるかも )
3
LibreOffice Study Party around Hamanako / 2016.1.24
仮想環境構築のすすめ
バグレポートの報告など英語環境が必要になる状況
ログアウトだけで言語を切り替えられるのは Linux だけ
「ビルドが最も容易な環境」を手元に用意
全環境ビルドに成功しましたが、依然として Linux が最も楽
( バグレポートの例 )
Title : Writer crashes when push “Navigator” button
with “Gallery” opened.
Build 5.0, with Linux Mint 17.1(64bit)
(1) Open Writer
(2) Open “Gallery” from sidebar
(3) Push “Navigator” button
(4) Writer is crashed.
This crashing was also represented with
both of MacOS 10.10, Windows/64bit.
4
LibreOffice Study Party around Hamanako / 2016.1.24
基本的な進め方
基本的に
(1) git clone で LibreOffice のソースコードを入手
(2) 設定ファイルを走らせる (autogen.sh)
(3) コンパイラでビルド
の流れですが、 Windows の場合 (3) の事前準備が大変
処理をするシェル環境、ツール→ Cygwin
コンパイラ → Visual Studio 2013 Community
(Linux や Mac OS X では最初から用意されている )
Linux および Mac OS X は OSC 広島で報告した資料参照
http://www.slideshare.net/masatakakondo16/libreoffice-in-osc-2015-hiroshima-52982186
5
LibreOffice Study Party around Hamanako / 2016.1.24
TDF の Wiki に情報がまとまってます
ビルドに限らずいろいろな情報はここから
https://wiki.documentfoundation.org/Main_Page
6
LibreOffice Study Party around Hamanako / 2016.1.24
ビルド情報は「 Development 」から
Linux/BSD, Windows, Mac OS X, Android もあり
https://wiki.documentfoundation.org/Development
7
LibreOffice Study Party around Hamanako / 2016.1.24
Q : コンパイルにかかる時間は?
コード規模の大きなソフトなので不安なのはわかります。
長くとも朝出かける前に仕掛けたら、夕方帰宅時に
出来上がっている感じです。最近のマシンなら数時間も
現実的な結果です。
ASUS X550ZE ではだいたい 4 時間で完了しました
(Memory 4GB→16GB に増設 / HDD→SSD への換装済 )
OSC 広島で報告したビルド時間計測結果 :
(ASUS U38N : A10-4655M, 10GB RAM / 500GB SSD)
% time make 2>&1 | tee build.log
real 262m42.345s
user 920m58.154s
sys 71m4.023s
8
LibreOffice Study Party around Hamanako / 2016.1.24
Q : オフラインではビルドできないのですか?
手順の中にソースコードを入手する工程が含まれます
また、 make 起動後も外部ツール・ライブラリを取りに行っています
... ので、基本的にネットワーク接続が必要ですが
画面に「 [build CXX] ... 」のようなのが表示されていれば
以降は外部へのアクセスを行わないのでオフラインでも OK
( 実際にこの手順を踏んで出先でコンパイルもしていました )
9
LibreOffice Study Party around Hamanako / 2016.1.24
Q : 毎回 git clone する時間が勿体無いんですが
Wiki 等では git を使える前提として特に説明がありません
初回は git clone でソースコードを入手しますが
2回目以降は git pull で対応可能です
テストだけならリリース版のブランチを使う手もあります
後述するビルド手順は都合によりリリースブランチを使用します
% cd ~/libreoffice
% git pull
remote: Counting objects: 17637, done.
Receiving objects: 34% (2170/6381), 644.00 KiB|66.00 KiB/s
...
(~/libreoffice に Current のソースコードがあるとして )
10
LibreOffice Study Party around Hamanako / 2016.1.24
Mac OS X におけるビルドの概要
Development Wiki をご参照ください
https://wiki.documentfoundation.org/Development/BuildingOnMac
そこで推奨されている「 LODE 」を使用します
説明の手順通りですが、2ヶ所問題になる箇所が存在します
コンパイラが LLVM のため、 ccache が悪さをします
autogen.sh 実行時に「 --disable-ccache 」を付加
ユニットテストで止まるケースが存在します
Oracle JDK の他に Apple の JRE が必要なケース有
.bash_profile が必要になるのでパスを通す際には要注意!
ビルド完了したら、 instdir/ にある LibreOfficeDev.app を
アプリケーションにコピーします
詳細は前述の OSC 広島の発表資料参照
11
LibreOffice Study Party around Hamanako / 2016.1.24
Linux におけるビルドの概要
こちらも Development Wiki をご参照ください
https://wiki.documentfoundation.org/Development/BuildingOnLinux
Build dependencies の項目には各ディストリビューションごと
の依存性解消ステップが記述されています。
例えば、 openSUSE では zypper を呼び出します
BSD (FreeBSD / NetBSD / Dragonfly) にも対応しています
あえて自力でライブラリをインストールすることも可能ですが
推奨はしません ( 理解を深めたいならやってもよいと思います )
インストールは sudo make install です
メニューなどへの登録はディストロごとで違うので省略
私の資料は「自力でライブラリをインストール」のため非推奨
12
LibreOffice Study Party around Hamanako / 2016.1.24
Windows でのビルド手順
手順が確立され、また最初から開発環境が含まれてい
る Linux や Mac OS X では比較的楽にビルドが実現
可能です。一方、 Windows では開発環境を準備する
必要があり、まずそこでつまづく人が多いようです。今
回の発表は自分がつまづいた経験をもとに話をさせて
いただきます。
13
LibreOffice Study Party around Hamanako / 2016.1.24
基本的な進め方
Windows については、八木さんの資料が参考になります。
http://www.slideshare.net/tomofumiyagi/libreoffice-buildytmkndupdate
http://www.slideshare.net/tomofumiyagi/libreoffice-buildytmkndshortver-29235268
ここでは、 Windows でビルドを行う際の
「ハマりどころ」を説明していきます。
ディスクの空き容量は 100GB 程度を目安にしてください。
特に Visual Studio の必要容量が問題となります
( 強制的に C: ドライブにインストールされるという問題があります )
ソース・作業スペースは外部ディスクでも OK です
( アクセス速度に効いてくるのでそのあたりはまぁ色々
14
LibreOffice Study Party around Hamanako / 2016.1.24
以降、 Wiki の情報も参考にしてください
基本的にここに書かれてる内容に沿っていけば成功するはず
https://wiki.documentfoundation.org/Development/BuildingOnWindows
15
LibreOffice Study Party around Hamanako / 2016.1.24
(1) Cygwin のインストール
コンパイルの実行環境として、各種コマンドを呼び出す関係上
Cygwin が必要
32bit 環境、 64bit 環境に合わせたバイナリを適用
「 -P 」オプションでインストールするコマンドを指定
32bit と 64bit ではパッケージ名が微妙に違う点に注意
詳細は Wiki を確認してください
setup-x86_64.exe -P autoconf -P automake -P bison ^
-P cabextract -P doxygen -P flex -P gcc-g++ ^
-P git -P gnupg -P gperf -P make -P mintty ^
-P nasm -P openssh -P openssl -P patch -P perl ^
-P python -P python3 -P pkg-config -P rsync ^
-P unzip -P vim -P wget -P zip -P perl-Archive-Zip
16
LibreOffice Study Party around Hamanako / 2016.1.24
Cygwin の Website から入手します
32bit
64bit
17
LibreOffice Study Party around Hamanako / 2016.1.24
(2) JDK のインストール
オプションで Java 不要にすることも可能ですが、
必要になるケースも多いので (Base の運用など ) 入れます
64bit 版をビルドする際には 64bit 版の JDK を選択します
18
LibreOffice Study Party around Hamanako / 2016.1.24
(3) Visual Studio 2013 のインストール
無料で使える Community 版をインストールします
何かと2015をインストールさせようとするので次ページ以降
に注意してインストールを進めてください
19
LibreOffice Study Party around Hamanako / 2016.1.24
トラップその 1
Wiki のインストーラへのリンクは 2015 です
20
LibreOffice Study Party around Hamanako / 2016.1.24
トラップその 2
ダウンロードページのいちばん目立つボタンも 2015 です
21
LibreOffice Study Party around Hamanako / 2016.1.24
おめでとう! 正しいブツを選べたようだね
22
LibreOffice Study Party around Hamanako / 2016.1.24
(4) TDF 版 GNU make のインストール
Cygwin の make ではかなり遅くなるそうです
これによってビルドの閾値がぐっとさがりました
これ以降の操作は Cygwin Shell から行います
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
chmod a+x make
23
LibreOffice Study Party around Hamanako / 2016.1.24
(5) Java 関連ツールのインストール
具体的には「 Ant 」と「 junit 」をインストールします
mkdir -p /cygdrive/c/sources
cd /cygdrive/c/sources
wget https://archive.apache.org/dist/ant/binaries
apache-ant-1.9.5-bin.tar.bz2
tar -xjvf apache-ant-1.9.5-bin.tar.bz2
wget http://downloads.sourceforge.net/project/junit
junit/4.10/junit-4.10.jar
24
LibreOffice Study Party around Hamanako / 2016.1.24
(6) ソースコードの入手
Wiki の手順に従って Current のソースを入手します
時間がかかりますがご了承ください
( 回線によりますが 2 〜 3 時間程度 )
cd /cygdrive/c/sources
git clone git://gerrit.libreoffice.org/core libo-core
この部分は好きな名前をつけていただいて構いません
( 日本語ディレクトリ名は保証しませんが )
25
LibreOffice Study Party around Hamanako / 2016.1.24
(7) autogen.sh による makefile の作成
他 OS の場合と同様にまず autogen.sh スクリプトで設定を
行います。
カレントディレクトリにパスが通ってないので面倒ですが
フルパスでの指定が必要になります (UNIX shell が
デフォルトで存在しない Windows の悪い面ですね )
Cygwin だと ^P で履歴は辿れるのでやり直しは簡単です
/cygdrive/c/sources/libo-core/autogen.sh 
--with-external-tar=/cygdrive/c/sources/lo-externalsrc 
--with-junit=/cygdrive/c/sources/junit-4.10.jar 
--with-ant-home=/cygdrive/c/sources/apache-ant-1.9.5 
--enable-pch --disable-ccache 
--disable-activex --disable-atl
26
LibreOffice Study Party around Hamanako / 2016.1.24
失敗事例 : autoconf がないよ?
Cygwin インストール時に -P オプションで指定してたコマンドが
抜けていた?→いまさら再検証はできない
apt が使えるので、コマンドを追加可能にします
Linux Mint Cinnamon/64bit で引っかかった箇所なので
落ち着いて対処ができました ...( 苦笑 )
wget https://raw.githubusercontent.com/transcode-open/
apt-cyg/master/apt-cyg
chmod 755 apt-cyg
mv apt-cyg /usr/local/bin/
27
LibreOffice Study Party around Hamanako / 2016.1.24
(8) いよいよビルドに入ります !!
先ほどの部分を除けば autogen.sh は普通に通るはずですので
いよいよ make をおこないます
手順 (4) でインストールした TDF 配布版の make を指定します
最初はライブラリ類を wget で入手するので時間がかかります
1/20 時点での current はエラーが出て止まります (^^;
/opt/lo/bin/make gb_COLOR=1
このオプションはなくてもよい
28
LibreOffice Study Party around Hamanako / 2016.1.24
(8') 代替手段で 5.0.4.2 のソースを使います
8 月の Hackfest :
安部さんの資料「なぜかエラーがでて止まることがあります」
対応するための方法
(1) 気にせずに再度 make を実行 : 通ればラッキー !!
(2) 他の環境でも落ちる / 他の環境では通ることを確かめる
仮想マシンを作りそこでビルドする
(3) Fix された実績のあるソース (= リリース版 ) を使う
時間がないので (1) がダメであることを確認したのち、
(3) を採用することにします
結論から言うと (1) では突破できませんでした ...orz
29
LibreOffice Study Party around Hamanako / 2016.1.24
リリースブランチのソースはここ
30
LibreOffice Study Party around Hamanako / 2016.1.24
これでめでたくビルドが通りました
時期をみて current には再挑戦の予定
いよいよコードのナカミを見なきゃいけないですよねー ...
31
LibreOffice Study Party around Hamanako / 2016.1.24
まとめ
開発の第一歩としてのビルドを体験することは重要
最近のソフトのビルド方法を知っておく
git に慣れて、一通りのコマンドを使えるようにする
次の段階として :
ソースコードリーディング
イージーハック
いずれにしても、ビルドが通せることが必要になる
Mac OS X / Linux いずれも比較的ビルドは楽
Windows の場合は Visual Studio の選択が重要
トラップがそこかしこに仕掛けられてるので要注意
autogen.sh はむしろ素直に通った感じがします ( 小並感
32
LibreOffice Study Party around Hamanako / 2016.1.24
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.
ご健闘をお祈りします
Let's do it yourself!!

More Related Content

What's hot

Storage Management in Linux OS.ppt
Storage Management in Linux OS.pptStorage Management in Linux OS.ppt
Storage Management in Linux OS.pptRakesh Kadu
 
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...Edureka!
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなしyoku0825
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...NTT DATA Technology & Innovation
 
MySQLバックアップの基本
MySQLバックアップの基本MySQLバックアップの基本
MySQLバックアップの基本yoyamasaki
 
イッパン的なゴカテイ作ってみた #histudy 2017/08
イッパン的なゴカテイ作ってみた #histudy 2017/08イッパン的なゴカテイ作ってみた #histudy 2017/08
イッパン的なゴカテイ作ってみた #histudy 2017/08sperkbird
 
そろそろSELinux を有効にしてみませんか?
そろそろSELinux を有効にしてみませんか?そろそろSELinux を有効にしてみませんか?
そろそろSELinux を有効にしてみませんか?Atsushi Mitsu
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
 
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...Edureka!
 
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPIAkihiro Ikezoe
 
Nové vlastnosti Oracle Database Appliance
Nové vlastnosti Oracle Database ApplianceNové vlastnosti Oracle Database Appliance
Nové vlastnosti Oracle Database ApplianceMarketingArrowECS_CZ
 
Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Kentaro Kitagawa
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターMasayuki Ozawa
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門Insight Technology, Inc.
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Nobuhiro Iwamatsu
 
【続編】その ionice、ほんとに効いてますか?
【続編】その ionice、ほんとに効いてますか?【続編】その ionice、ほんとに効いてますか?
【続編】その ionice、ほんとに効いてますか?Narimichi Takamura
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresMasayuki Ozawa
 

What's hot (20)

Storage Management in Linux OS.ppt
Storage Management in Linux OS.pptStorage Management in Linux OS.ppt
Storage Management in Linux OS.ppt
 
Linux: Basics OF Linux
Linux: Basics OF LinuxLinux: Basics OF Linux
Linux: Basics OF Linux
 
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
Linux Tutorial For Beginners | Linux Administration Tutorial | Linux Commands...
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
 
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
トランザクション処理可能な分散DB 「YugabyteDB」入門(Open Source Conference 2022 Online/Fukuoka 発...
 
Helyx os dexcs2020
Helyx os dexcs2020Helyx os dexcs2020
Helyx os dexcs2020
 
Understanding index
Understanding indexUnderstanding index
Understanding index
 
MySQLバックアップの基本
MySQLバックアップの基本MySQLバックアップの基本
MySQLバックアップの基本
 
イッパン的なゴカテイ作ってみた #histudy 2017/08
イッパン的なゴカテイ作ってみた #histudy 2017/08イッパン的なゴカテイ作ってみた #histudy 2017/08
イッパン的なゴカテイ作ってみた #histudy 2017/08
 
そろそろSELinux を有効にしてみませんか?
そろそろSELinux を有効にしてみませんか?そろそろSELinux を有効にしてみませんか?
そろそろSELinux を有効にしてみませんか?
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
 
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
 
社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI社内Java8勉強会 ラムダ式とストリームAPI
社内Java8勉強会 ラムダ式とストリームAPI
 
Nové vlastnosti Oracle Database Appliance
Nové vlastnosti Oracle Database ApplianceNové vlastnosti Oracle Database Appliance
Nové vlastnosti Oracle Database Appliance
 
Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話Oracle常駐接続プーリング(DRCP)を導入した話
Oracle常駐接続プーリング(DRCP)を導入した話
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンター
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料Yocto Project ハンズオン プレゼン用資料
Yocto Project ハンズオン プレゼン用資料
 
【続編】その ionice、ほんとに効いてますか?
【続編】その ionice、ほんとに効いてますか?【続編】その ionice、ほんとに効いてますか?
【続編】その ionice、ほんとに効いてますか?
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new features
 

Similar to LibreOfficeをビルドしてみよう(Windows)

The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsThe Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsNaruhiko Ogasawara
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
クラウドコラボレーションサーバ「Collabora Online」を構築してみた
クラウドコラボレーションサーバ「Collabora Online」を構築してみたクラウドコラボレーションサーバ「Collabora Online」を構築してみた
クラウドコラボレーションサーバ「Collabora Online」を構築してみたShinji Enoki
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くTetsuyuki Kobayashi
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~decode2016
 
補足 : LOOLのビルドについて
補足 : LOOLのビルドについて補足 : LOOLのビルドについて
補足 : LOOLのビルドについてMasataka Kondo
 
Fuchsia概略その1
Fuchsia概略その1Fuchsia概略その1
Fuchsia概略その1l_b__
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-Saki Homma
 
Secret of Firefox
Secret of FirefoxSecret of Firefox
Secret of Firefoxdynamis
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Shogo Kawahara
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATETomofumi Yagi
 
PHPのライブラリをcomposer経由で公開した話
PHPのライブラリをcomposer経由で公開した話PHPのライブラリをcomposer経由で公開した話
PHPのライブラリをcomposer経由で公開した話mirai_iro
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutesYohei Sasaki
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方Yuji Oshima
 
LibreOffice No coding extention(ClipArt)
LibreOffice No coding extention(ClipArt)LibreOffice No coding extention(ClipArt)
LibreOffice No coding extention(ClipArt)Makoto Takizawa
 

Similar to LibreOfficeをビルドしてみよう(Windows) (20)

The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for WindowsThe Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
The Basic of How to build LibreOffice / LibreOffice開発版ビルドの基礎 for Windows
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
クラウドコラボレーションサーバ「Collabora Online」を構築してみた
クラウドコラボレーションサーバ「Collabora Online」を構築してみたクラウドコラボレーションサーバ「Collabora Online」を構築してみた
クラウドコラボレーションサーバ「Collabora Online」を構築してみた
 
Fab
FabFab
Fab
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 
補足 : LOOLのビルドについて
補足 : LOOLのビルドについて補足 : LOOLのビルドについて
補足 : LOOLのビルドについて
 
Fuchsia概略その1
Fuchsia概略その1Fuchsia概略その1
Fuchsia概略その1
 
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
はじめてのAzure Web App for Containers! -コンテナの基礎から DevOps 環境の構築まで-
 
20230128.pptx
20230128.pptx20230128.pptx
20230128.pptx
 
Secret of Firefox
Secret of FirefoxSecret of Firefox
Secret of Firefox
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
PHPのライブラリをcomposer経由で公開した話
PHPのライブラリをcomposer経由で公開した話PHPのライブラリをcomposer経由で公開した話
PHPのライブラリをcomposer経由で公開した話
 
Couch DB in 15minutes
Couch DB in 15minutesCouch DB in 15minutes
Couch DB in 15minutes
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
runC概要と使い方
runC概要と使い方runC概要と使い方
runC概要と使い方
 
LibreOffice No coding extention(ClipArt)
LibreOffice No coding extention(ClipArt)LibreOffice No coding extention(ClipArt)
LibreOffice No coding extention(ClipArt)
 

More from Masataka Kondo

OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)
OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)
OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)Masataka Kondo
 
現地ロケのうらばなし : OSC 2023 Online / Osaka LT
現地ロケのうらばなし : OSC 2023 Online / Osaka LT現地ロケのうらばなし : OSC 2023 Online / Osaka LT
現地ロケのうらばなし : OSC 2023 Online / Osaka LTMasataka Kondo
 
OSC名古屋LT 「現地取材の重要性」
OSC名古屋LT 「現地取材の重要性」OSC名古屋LT 「現地取材の重要性」
OSC名古屋LT 「現地取材の重要性」Masataka Kondo
 
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...Masataka Kondo
 
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」Masataka Kondo
 
OSC福岡 : 航空機写真撮影入門 in FUKUOKA
OSC福岡 : 航空機写真撮影入門 in FUKUOKAOSC福岡 : 航空機写真撮影入門 in FUKUOKA
OSC福岡 : 航空機写真撮影入門 in FUKUOKAMasataka Kondo
 
200回記念LT : OSCオンライン開催を通じた地方創生への試み
200回記念LT : OSCオンライン開催を通じた地方創生への試み200回記念LT : OSCオンライン開催を通じた地方創生への試み
200回記念LT : OSCオンライン開催を通じた地方創生への試みMasataka Kondo
 
LT : 中小企業診断士試験を受験してきました
LT : 中小企業診断士試験を受験してきましたLT : 中小企業診断士試験を受験してきました
LT : 中小企業診断士試験を受験してきましたMasataka Kondo
 
湾岸ミッドナイト勉強会 Overnight Cruise
湾岸ミッドナイト勉強会 Overnight Cruise湾岸ミッドナイト勉強会 Overnight Cruise
湾岸ミッドナイト勉強会 Overnight CruiseMasataka Kondo
 
エクストリームからはじめる四国観光案内
エクストリームからはじめる四国観光案内エクストリームからはじめる四国観光案内
エクストリームからはじめる四国観光案内Masataka Kondo
 
湾岸ミッドナイト勉強会 NordSchleife
湾岸ミッドナイト勉強会 NordSchleife湾岸ミッドナイト勉強会 NordSchleife
湾岸ミッドナイト勉強会 NordSchleifeMasataka Kondo
 
OSC2021北海道企画!去年のプレゼン資料
OSC2021北海道企画!去年のプレゼン資料OSC2021北海道企画!去年のプレゼン資料
OSC2021北海道企画!去年のプレゼン資料Masataka Kondo
 
LibreOfficeで学ぶオープンソースと経済学
LibreOfficeで学ぶオープンソースと経済学LibreOfficeで学ぶオープンソースと経済学
LibreOfficeで学ぶオープンソースと経済学Masataka Kondo
 
Collabora Officeを使ってみよう
Collabora Officeを使ってみようCollabora Officeを使ってみよう
Collabora Officeを使ってみようMasataka Kondo
 
"Cheap Mac" S'il-vouz plaît?
"Cheap Mac" S'il-vouz plaît?"Cheap Mac" S'il-vouz plaît?
"Cheap Mac" S'il-vouz plaît?Masataka Kondo
 
Linux desktop on_personalwork
Linux desktop on_personalworkLinux desktop on_personalwork
Linux desktop on_personalworkMasataka Kondo
 
LT : 25年越しの約束
LT : 25年越しの約束LT : 25年越しの約束
LT : 25年越しの約束Masataka Kondo
 
湾岸ミッドナイト勉強会 FLAT OUT
湾岸ミッドナイト勉強会 FLAT OUT湾岸ミッドナイト勉強会 FLAT OUT
湾岸ミッドナイト勉強会 FLAT OUTMasataka Kondo
 
Excelとの違いを意識することから始めるCalc入門
Excelとの違いを意識することから始めるCalc入門Excelとの違いを意識することから始めるCalc入門
Excelとの違いを意識することから始めるCalc入門Masataka Kondo
 
湾岸ミッドナイト勉強会 in 大阪
湾岸ミッドナイト勉強会 in 大阪湾岸ミッドナイト勉強会 in 大阪
湾岸ミッドナイト勉強会 in 大阪Masataka Kondo
 

More from Masataka Kondo (20)

OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)
OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)
OSC的 今日からはじめるランニング入門 (2023/1/28 E-2)
 
現地ロケのうらばなし : OSC 2023 Online / Osaka LT
現地ロケのうらばなし : OSC 2023 Online / Osaka LT現地ロケのうらばなし : OSC 2023 Online / Osaka LT
現地ロケのうらばなし : OSC 2023 Online / Osaka LT
 
OSC名古屋LT 「現地取材の重要性」
OSC名古屋LT 「現地取材の重要性」OSC名古屋LT 「現地取材の重要性」
OSC名古屋LT 「現地取材の重要性」
 
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...
OSC名古屋2022 F-1 中小企業診断士試験・「経営情報システム」科目から見る...
 
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」
OSC2022 Online / Spring 「Linuxで活用するデジタルカメラと写真撮影術」
 
OSC福岡 : 航空機写真撮影入門 in FUKUOKA
OSC福岡 : 航空機写真撮影入門 in FUKUOKAOSC福岡 : 航空機写真撮影入門 in FUKUOKA
OSC福岡 : 航空機写真撮影入門 in FUKUOKA
 
200回記念LT : OSCオンライン開催を通じた地方創生への試み
200回記念LT : OSCオンライン開催を通じた地方創生への試み200回記念LT : OSCオンライン開催を通じた地方創生への試み
200回記念LT : OSCオンライン開催を通じた地方創生への試み
 
LT : 中小企業診断士試験を受験してきました
LT : 中小企業診断士試験を受験してきましたLT : 中小企業診断士試験を受験してきました
LT : 中小企業診断士試験を受験してきました
 
湾岸ミッドナイト勉強会 Overnight Cruise
湾岸ミッドナイト勉強会 Overnight Cruise湾岸ミッドナイト勉強会 Overnight Cruise
湾岸ミッドナイト勉強会 Overnight Cruise
 
エクストリームからはじめる四国観光案内
エクストリームからはじめる四国観光案内エクストリームからはじめる四国観光案内
エクストリームからはじめる四国観光案内
 
湾岸ミッドナイト勉強会 NordSchleife
湾岸ミッドナイト勉強会 NordSchleife湾岸ミッドナイト勉強会 NordSchleife
湾岸ミッドナイト勉強会 NordSchleife
 
OSC2021北海道企画!去年のプレゼン資料
OSC2021北海道企画!去年のプレゼン資料OSC2021北海道企画!去年のプレゼン資料
OSC2021北海道企画!去年のプレゼン資料
 
LibreOfficeで学ぶオープンソースと経済学
LibreOfficeで学ぶオープンソースと経済学LibreOfficeで学ぶオープンソースと経済学
LibreOfficeで学ぶオープンソースと経済学
 
Collabora Officeを使ってみよう
Collabora Officeを使ってみようCollabora Officeを使ってみよう
Collabora Officeを使ってみよう
 
"Cheap Mac" S'il-vouz plaît?
"Cheap Mac" S'il-vouz plaît?"Cheap Mac" S'il-vouz plaît?
"Cheap Mac" S'il-vouz plaît?
 
Linux desktop on_personalwork
Linux desktop on_personalworkLinux desktop on_personalwork
Linux desktop on_personalwork
 
LT : 25年越しの約束
LT : 25年越しの約束LT : 25年越しの約束
LT : 25年越しの約束
 
湾岸ミッドナイト勉強会 FLAT OUT
湾岸ミッドナイト勉強会 FLAT OUT湾岸ミッドナイト勉強会 FLAT OUT
湾岸ミッドナイト勉強会 FLAT OUT
 
Excelとの違いを意識することから始めるCalc入門
Excelとの違いを意識することから始めるCalc入門Excelとの違いを意識することから始めるCalc入門
Excelとの違いを意識することから始めるCalc入門
 
湾岸ミッドナイト勉強会 in 大阪
湾岸ミッドナイト勉強会 in 大阪湾岸ミッドナイト勉強会 in 大阪
湾岸ミッドナイト勉強会 in 大阪
 

LibreOfficeをビルドしてみよう(Windows)

  • 1. 1 LibreOffice Study Party around Hamanako / 2016.1.24 LibreOffice をビルドしてみよう LibreOffice Study Party around Hamanako Masataka KONDO : LibreOffice Japanese Team January 24th, 2016
  • 2. 2 LibreOffice Study Party around Hamanako / 2016.1.24 なぜビルドが望まれるのか 「誰でもビルドできる」ことで開発の活性化を目指す ビルドしやすい開発環境 入手容易なコンパイラその他の情報共有 ビルド手順の簡略化 e.g. autogen.sh ソースコードの最適化 脆弱性にいちはやく対応する アルゴリズムなどの見直しによる高速化 カスタマイズ・フォークの推進 フォークビルドの機能が本家に逆輸入 ( されるかも )
  • 3. 3 LibreOffice Study Party around Hamanako / 2016.1.24 仮想環境構築のすすめ バグレポートの報告など英語環境が必要になる状況 ログアウトだけで言語を切り替えられるのは Linux だけ 「ビルドが最も容易な環境」を手元に用意 全環境ビルドに成功しましたが、依然として Linux が最も楽 ( バグレポートの例 ) Title : Writer crashes when push “Navigator” button with “Gallery” opened. Build 5.0, with Linux Mint 17.1(64bit) (1) Open Writer (2) Open “Gallery” from sidebar (3) Push “Navigator” button (4) Writer is crashed. This crashing was also represented with both of MacOS 10.10, Windows/64bit.
  • 4. 4 LibreOffice Study Party around Hamanako / 2016.1.24 基本的な進め方 基本的に (1) git clone で LibreOffice のソースコードを入手 (2) 設定ファイルを走らせる (autogen.sh) (3) コンパイラでビルド の流れですが、 Windows の場合 (3) の事前準備が大変 処理をするシェル環境、ツール→ Cygwin コンパイラ → Visual Studio 2013 Community (Linux や Mac OS X では最初から用意されている ) Linux および Mac OS X は OSC 広島で報告した資料参照 http://www.slideshare.net/masatakakondo16/libreoffice-in-osc-2015-hiroshima-52982186
  • 5. 5 LibreOffice Study Party around Hamanako / 2016.1.24 TDF の Wiki に情報がまとまってます ビルドに限らずいろいろな情報はここから https://wiki.documentfoundation.org/Main_Page
  • 6. 6 LibreOffice Study Party around Hamanako / 2016.1.24 ビルド情報は「 Development 」から Linux/BSD, Windows, Mac OS X, Android もあり https://wiki.documentfoundation.org/Development
  • 7. 7 LibreOffice Study Party around Hamanako / 2016.1.24 Q : コンパイルにかかる時間は? コード規模の大きなソフトなので不安なのはわかります。 長くとも朝出かける前に仕掛けたら、夕方帰宅時に 出来上がっている感じです。最近のマシンなら数時間も 現実的な結果です。 ASUS X550ZE ではだいたい 4 時間で完了しました (Memory 4GB→16GB に増設 / HDD→SSD への換装済 ) OSC 広島で報告したビルド時間計測結果 : (ASUS U38N : A10-4655M, 10GB RAM / 500GB SSD) % time make 2>&1 | tee build.log real 262m42.345s user 920m58.154s sys 71m4.023s
  • 8. 8 LibreOffice Study Party around Hamanako / 2016.1.24 Q : オフラインではビルドできないのですか? 手順の中にソースコードを入手する工程が含まれます また、 make 起動後も外部ツール・ライブラリを取りに行っています ... ので、基本的にネットワーク接続が必要ですが 画面に「 [build CXX] ... 」のようなのが表示されていれば 以降は外部へのアクセスを行わないのでオフラインでも OK ( 実際にこの手順を踏んで出先でコンパイルもしていました )
  • 9. 9 LibreOffice Study Party around Hamanako / 2016.1.24 Q : 毎回 git clone する時間が勿体無いんですが Wiki 等では git を使える前提として特に説明がありません 初回は git clone でソースコードを入手しますが 2回目以降は git pull で対応可能です テストだけならリリース版のブランチを使う手もあります 後述するビルド手順は都合によりリリースブランチを使用します % cd ~/libreoffice % git pull remote: Counting objects: 17637, done. Receiving objects: 34% (2170/6381), 644.00 KiB|66.00 KiB/s ... (~/libreoffice に Current のソースコードがあるとして )
  • 10. 10 LibreOffice Study Party around Hamanako / 2016.1.24 Mac OS X におけるビルドの概要 Development Wiki をご参照ください https://wiki.documentfoundation.org/Development/BuildingOnMac そこで推奨されている「 LODE 」を使用します 説明の手順通りですが、2ヶ所問題になる箇所が存在します コンパイラが LLVM のため、 ccache が悪さをします autogen.sh 実行時に「 --disable-ccache 」を付加 ユニットテストで止まるケースが存在します Oracle JDK の他に Apple の JRE が必要なケース有 .bash_profile が必要になるのでパスを通す際には要注意! ビルド完了したら、 instdir/ にある LibreOfficeDev.app を アプリケーションにコピーします 詳細は前述の OSC 広島の発表資料参照
  • 11. 11 LibreOffice Study Party around Hamanako / 2016.1.24 Linux におけるビルドの概要 こちらも Development Wiki をご参照ください https://wiki.documentfoundation.org/Development/BuildingOnLinux Build dependencies の項目には各ディストリビューションごと の依存性解消ステップが記述されています。 例えば、 openSUSE では zypper を呼び出します BSD (FreeBSD / NetBSD / Dragonfly) にも対応しています あえて自力でライブラリをインストールすることも可能ですが 推奨はしません ( 理解を深めたいならやってもよいと思います ) インストールは sudo make install です メニューなどへの登録はディストロごとで違うので省略 私の資料は「自力でライブラリをインストール」のため非推奨
  • 12. 12 LibreOffice Study Party around Hamanako / 2016.1.24 Windows でのビルド手順 手順が確立され、また最初から開発環境が含まれてい る Linux や Mac OS X では比較的楽にビルドが実現 可能です。一方、 Windows では開発環境を準備する 必要があり、まずそこでつまづく人が多いようです。今 回の発表は自分がつまづいた経験をもとに話をさせて いただきます。
  • 13. 13 LibreOffice Study Party around Hamanako / 2016.1.24 基本的な進め方 Windows については、八木さんの資料が参考になります。 http://www.slideshare.net/tomofumiyagi/libreoffice-buildytmkndupdate http://www.slideshare.net/tomofumiyagi/libreoffice-buildytmkndshortver-29235268 ここでは、 Windows でビルドを行う際の 「ハマりどころ」を説明していきます。 ディスクの空き容量は 100GB 程度を目安にしてください。 特に Visual Studio の必要容量が問題となります ( 強制的に C: ドライブにインストールされるという問題があります ) ソース・作業スペースは外部ディスクでも OK です ( アクセス速度に効いてくるのでそのあたりはまぁ色々
  • 14. 14 LibreOffice Study Party around Hamanako / 2016.1.24 以降、 Wiki の情報も参考にしてください 基本的にここに書かれてる内容に沿っていけば成功するはず https://wiki.documentfoundation.org/Development/BuildingOnWindows
  • 15. 15 LibreOffice Study Party around Hamanako / 2016.1.24 (1) Cygwin のインストール コンパイルの実行環境として、各種コマンドを呼び出す関係上 Cygwin が必要 32bit 環境、 64bit 環境に合わせたバイナリを適用 「 -P 」オプションでインストールするコマンドを指定 32bit と 64bit ではパッケージ名が微妙に違う点に注意 詳細は Wiki を確認してください setup-x86_64.exe -P autoconf -P automake -P bison ^ -P cabextract -P doxygen -P flex -P gcc-g++ ^ -P git -P gnupg -P gperf -P make -P mintty ^ -P nasm -P openssh -P openssl -P patch -P perl ^ -P python -P python3 -P pkg-config -P rsync ^ -P unzip -P vim -P wget -P zip -P perl-Archive-Zip
  • 16. 16 LibreOffice Study Party around Hamanako / 2016.1.24 Cygwin の Website から入手します 32bit 64bit
  • 17. 17 LibreOffice Study Party around Hamanako / 2016.1.24 (2) JDK のインストール オプションで Java 不要にすることも可能ですが、 必要になるケースも多いので (Base の運用など ) 入れます 64bit 版をビルドする際には 64bit 版の JDK を選択します
  • 18. 18 LibreOffice Study Party around Hamanako / 2016.1.24 (3) Visual Studio 2013 のインストール 無料で使える Community 版をインストールします 何かと2015をインストールさせようとするので次ページ以降 に注意してインストールを進めてください
  • 19. 19 LibreOffice Study Party around Hamanako / 2016.1.24 トラップその 1 Wiki のインストーラへのリンクは 2015 です
  • 20. 20 LibreOffice Study Party around Hamanako / 2016.1.24 トラップその 2 ダウンロードページのいちばん目立つボタンも 2015 です
  • 21. 21 LibreOffice Study Party around Hamanako / 2016.1.24 おめでとう! 正しいブツを選べたようだね
  • 22. 22 LibreOffice Study Party around Hamanako / 2016.1.24 (4) TDF 版 GNU make のインストール Cygwin の make ではかなり遅くなるそうです これによってビルドの閾値がぐっとさがりました これ以降の操作は Cygwin Shell から行います 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 chmod a+x make
  • 23. 23 LibreOffice Study Party around Hamanako / 2016.1.24 (5) Java 関連ツールのインストール 具体的には「 Ant 」と「 junit 」をインストールします mkdir -p /cygdrive/c/sources cd /cygdrive/c/sources wget https://archive.apache.org/dist/ant/binaries apache-ant-1.9.5-bin.tar.bz2 tar -xjvf apache-ant-1.9.5-bin.tar.bz2 wget http://downloads.sourceforge.net/project/junit junit/4.10/junit-4.10.jar
  • 24. 24 LibreOffice Study Party around Hamanako / 2016.1.24 (6) ソースコードの入手 Wiki の手順に従って Current のソースを入手します 時間がかかりますがご了承ください ( 回線によりますが 2 〜 3 時間程度 ) cd /cygdrive/c/sources git clone git://gerrit.libreoffice.org/core libo-core この部分は好きな名前をつけていただいて構いません ( 日本語ディレクトリ名は保証しませんが )
  • 25. 25 LibreOffice Study Party around Hamanako / 2016.1.24 (7) autogen.sh による makefile の作成 他 OS の場合と同様にまず autogen.sh スクリプトで設定を 行います。 カレントディレクトリにパスが通ってないので面倒ですが フルパスでの指定が必要になります (UNIX shell が デフォルトで存在しない Windows の悪い面ですね ) Cygwin だと ^P で履歴は辿れるのでやり直しは簡単です /cygdrive/c/sources/libo-core/autogen.sh --with-external-tar=/cygdrive/c/sources/lo-externalsrc --with-junit=/cygdrive/c/sources/junit-4.10.jar --with-ant-home=/cygdrive/c/sources/apache-ant-1.9.5 --enable-pch --disable-ccache --disable-activex --disable-atl
  • 26. 26 LibreOffice Study Party around Hamanako / 2016.1.24 失敗事例 : autoconf がないよ? Cygwin インストール時に -P オプションで指定してたコマンドが 抜けていた?→いまさら再検証はできない apt が使えるので、コマンドを追加可能にします Linux Mint Cinnamon/64bit で引っかかった箇所なので 落ち着いて対処ができました ...( 苦笑 ) wget https://raw.githubusercontent.com/transcode-open/ apt-cyg/master/apt-cyg chmod 755 apt-cyg mv apt-cyg /usr/local/bin/
  • 27. 27 LibreOffice Study Party around Hamanako / 2016.1.24 (8) いよいよビルドに入ります !! 先ほどの部分を除けば autogen.sh は普通に通るはずですので いよいよ make をおこないます 手順 (4) でインストールした TDF 配布版の make を指定します 最初はライブラリ類を wget で入手するので時間がかかります 1/20 時点での current はエラーが出て止まります (^^; /opt/lo/bin/make gb_COLOR=1 このオプションはなくてもよい
  • 28. 28 LibreOffice Study Party around Hamanako / 2016.1.24 (8') 代替手段で 5.0.4.2 のソースを使います 8 月の Hackfest : 安部さんの資料「なぜかエラーがでて止まることがあります」 対応するための方法 (1) 気にせずに再度 make を実行 : 通ればラッキー !! (2) 他の環境でも落ちる / 他の環境では通ることを確かめる 仮想マシンを作りそこでビルドする (3) Fix された実績のあるソース (= リリース版 ) を使う 時間がないので (1) がダメであることを確認したのち、 (3) を採用することにします 結論から言うと (1) では突破できませんでした ...orz
  • 29. 29 LibreOffice Study Party around Hamanako / 2016.1.24 リリースブランチのソースはここ
  • 30. 30 LibreOffice Study Party around Hamanako / 2016.1.24 これでめでたくビルドが通りました 時期をみて current には再挑戦の予定 いよいよコードのナカミを見なきゃいけないですよねー ...
  • 31. 31 LibreOffice Study Party around Hamanako / 2016.1.24 まとめ 開発の第一歩としてのビルドを体験することは重要 最近のソフトのビルド方法を知っておく git に慣れて、一通りのコマンドを使えるようにする 次の段階として : ソースコードリーディング イージーハック いずれにしても、ビルドが通せることが必要になる Mac OS X / Linux いずれも比較的ビルドは楽 Windows の場合は Visual Studio の選択が重要 トラップがそこかしこに仕掛けられてるので要注意 autogen.sh はむしろ素直に通った感じがします ( 小並感
  • 32. 32 LibreOffice Study Party around Hamanako / 2016.1.24 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. ご健闘をお祈りします Let's do it yourself!!