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

Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版Netwalker lab kapper
 
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみたLinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみたHiraku Toyooka
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみたKohei Tokunaga
 
Continuous Integration With Jenkins
Continuous Integration With JenkinsContinuous Integration With Jenkins
Continuous Integration With JenkinsEdureka!
 
Continuous Integration & Continuous Delivery
Continuous Integration & Continuous DeliveryContinuous Integration & Continuous Delivery
Continuous Integration & Continuous DeliveryDatabricks
 
Hinemos ver.6.0 機能紹介
Hinemos ver.6.0 機能紹介Hinemos ver.6.0 機能紹介
Hinemos ver.6.0 機能紹介Hinemos
 
Redmineサーバ統合事例
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例Yuuki Nara
 
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜VirtualTech Japan Inc.
 
HCL Sametime V11 installation - tips
HCL Sametime V11 installation - tipsHCL Sametime V11 installation - tips
HCL Sametime V11 installation - tipsAles Lichtenberg
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -Masahiko Sawada
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方akira6592
 
実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る GitYouhei Nitta
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみたwata2ki
 
Introduction to Github Actions
Introduction to Github ActionsIntroduction to Github Actions
Introduction to Github ActionsKnoldus Inc.
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introductionSven Peters
 

What's hot (20)

Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
 
LinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみたLinuxのFull ticklessを試してみた
LinuxのFull ticklessを試してみた
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 
Continuous Integration With Jenkins
Continuous Integration With JenkinsContinuous Integration With Jenkins
Continuous Integration With Jenkins
 
Github in Action
Github in ActionGithub in Action
Github in Action
 
Gitlab ci-cd
Gitlab ci-cdGitlab ci-cd
Gitlab ci-cd
 
Continuous Integration & Continuous Delivery
Continuous Integration & Continuous DeliveryContinuous Integration & Continuous Delivery
Continuous Integration & Continuous Delivery
 
Hinemos ver.6.0 機能紹介
Hinemos ver.6.0 機能紹介Hinemos ver.6.0 機能紹介
Hinemos ver.6.0 機能紹介
 
Redmineサーバ統合事例
Redmineサーバ統合事例Redmineサーバ統合事例
Redmineサーバ統合事例
 
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
これから始める人のための自動化入門 〜Ubuntu Jujuを使って〜
 
HCL Sametime V11 installation - tips
HCL Sametime V11 installation - tipsHCL Sametime V11 installation - tips
HCL Sametime V11 installation - tips
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
 
ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方ネットワークコンフィグ分析ツール Batfish との付き合い方
ネットワークコンフィグ分析ツール Batfish との付き合い方
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git実践 Git - 低レベルに知る Git
実践 Git - 低レベルに知る Git
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみた
 
Introduction to Github Actions
Introduction to Github ActionsIntroduction to Github Actions
Introduction to Github Actions
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 

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
 
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2Tomofumi Yagi
 
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
 

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 環境の構築まで-
 
LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
 
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概要と使い方
 

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!!