LibreOffice開発版のビルドのチュートリアル for Linux/Mac OS X Takeshi Abe <tabe@fixedpoint.jp> 2014-06-07 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan はじめに ハンズオン形式のチュートリアルなので、随時質問してくだ さい 今回の資料(レジュメ)は以下にあります: http://fixedpoint.jp/20140607/libo-build-tutorial.txt 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan 自己紹介 安部武志(あべたけし) @fixedpoint_jp The Document Foundationのメンバー Committer LibreOffice日本語チームのメンバー 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
何でLibreOfficeをビルドするの? コードをハックするスタート地点 UI翻訳に便利 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
何でLibreOfficeをビルドするの? コードをハックするスタート地点 UI翻訳に便利 というけれど: 「時間がかかる」 日々masterブランチをビルドしているbotが既にある Tinderbox http://tinderbox.libreoffice.org/ 翻訳にはプロジェクトが用意してくれるRC版が使える 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
何でLibreOfficeをビルドするの? 逆に考えるんだ! 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
何でLibreOfficeをビルドするの? 逆に考えるんだ! 最新のコードに触れる機会になる/勉強になる 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
何でLibreOfficeをビルドするの? 逆に考えるんだ! 最新のコードに触れる機会になる/勉強になる ビルドだけでも達成感/楽しい 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
何でLibreOfficeをビルドするの? 逆に考えるんだ! 最新のコードに触れる機会になる/勉強になる ビルドだけでも達成感/楽しい あなたのマシンが暖房器具に 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan 今日の目標 機能の追加変更が行われるmasterブランチをビルドする 1時間しかないから、とりあえず make が順調に走り出したら OK そのまま走らせておけば Miniconf 終了時間までにはビルド完 了するかも 目安として、おおよそ2時間から4時間くらいかかる 可能なら、ちょこっと日本語翻訳入れ替えてみよう 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOfficeはマルチプラットフォーム対応 どのOSのラップトップをお使いですか? Linux どの distro? Mac OS X Snow Leopard Lion Mountain Lion Mavericks 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOfficeはマルチプラットフォーム対応 Good news Linux 上で LibO をビルドするのは簡単 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOfficeはマルチプラットフォーム対応 Good news Linux 上で LibO をビルドするのは簡単 Better news Mac OS X 上で LibO をビルドするのはもっと簡単! 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOfficeはマルチプラットフォーム対応 Good news Linux 上で LibO をビルドするのは簡単 Better news Mac OS X 上で LibO をビルドするのはもっと簡単! Best news NetBSDについては今日 Onodera さんに教えてもらえる!! Windowsについても、今日小笠原さんが紹介してくれる!! 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan Mac OS X についての事前の注意 ビルド環境に Homebrew/MacPorts/Fink などのパッケージ管理 ツールでインストールしたプログラム/ライブラリを使うとまず いことが... ビルド中によく分からないエラーが起こることがある … 「でもHomebrew/MacPorts/Fink縛りはきつい」 PATH 環境変数に含めず、かつ使いたいプログラムのみ適当な 場所に symbolic link してそちらに PATHを通すといいかも 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan まずはXcodeを入れよう Linuxの場合 なし! Mac OS Xの場合 https://developer.apple.com 必要ならアカウント登録 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan 次にGit Linuxの場合 # apt-get install git # yum install git Mac OS Xの場合 Mavericks: Xcode の Command Line Tools に含まれている Mountain Lion/Lion/Snow Leopard: インストーラーで入れる: http://git-scm.com パッケージを入れる: 前述の注意を参考に 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan 次にAutoconfとAutomake Linuxの場合 # apt-get install autoconf automake # yum install autoconf automake Mac OS Xの場合 ソースから入れる: http://http://ftp.gnu.org/gnu/autoconf/ バージョン2.65以上 http://ftp.gnu.org/gnu/automake/ バージョン1.11以上 パッケージを入れる: (うまくいくか不明) 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
そして、その他の依存するツール/ライブラリ Linuxの場合 # apt-get build-dep libreoffice # yum-builddep libreoffice Mac OS Xの場合 Mavericks/Mountain Lion/Lion なし! Snow Leopard touch(1)のために coreutils を入れる: http://ftp.gnu.org/gnu/coreutils/ バージョン8.13以上 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOfficeのGitレポジトリをcloneしよう $ cd (お好きなディレクトリ) $ git clone git://gerrit.libreoffice.org/core $ cd core ちょっと core の中身を見てみよう 100個以上のサブディレクトリ その大部分は"module"というコードの単位 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
ここまでくれば、もうほとんど出来たようなもの! あとは、好みに合わせてカスタマイズしよう 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan ./autogen.sh しよう 内部で configure を呼び出すスクリプト でもちょっと待って: いろんなオプションがあります 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
configure(autogen.sh)の基本的なオプション --help 読んでおくと発見があるかも --prefix installしなくても良くなったためあまり使ってない 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
configure(autogen.sh)の便利なオプション 「日本語翻訳確認したい」 --with-lang=ALL または --with-lang=’en-US ja de’ のように言語を指定 「ヘルプも入れたい」 --with-help 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
configure(autogen.sh)の短気な人向けオプション 「APIドキュメントは生成しなくていい」 --without-doxygen 「Javaなんかいらないよね」 --without-java
configure(autogen.sh)のデバッグ用オプション --enable-debug おすすめ --enable-dbgutil --enable-debugに加えて他のデバッグ情報も含める --enable-symbols デバッグシンボルのみ追加 --enable-dbgutil/--enable-debugとは排他的 --enable-verbose --enable-werror 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
Mac OS X向けconfigure(autogen.sh)オプション 「私のマシンRetinaなんだけど」 いいね! --enable-macosx-retina を追加しよう 「それに他にもMacたくさん持ってるから、いろんなネコ科と Mavericksで動かしたい」 うらやましいね! --with-macosx-sdk / --with-macosx-version-min-required / --with- macosx-version-max-allowed を確認してね
LibreOffice mini Conference 2014 Tokyo/Japan ./autogen.sh 実行! うまくいかなかったら質問してください。 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan ついに make 基本的に $ make で全部やってくれる 実行すると、最初は関連するサードパーティのソースコード をダウンロードしだす $ make fetch でやることと同じ インターネット接続が必要 --with-lang を指定した場合はさらに translations submodule を clone する 隠し(?)ターゲットもある 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan make 実行! うまくいかなかったら質問してください。 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan うまくいかない? 「ディスクスペースが足らないみたい」 ビルド中は一時ファイルが大量に生成される 環境変数 TMPDIR を指定しておくといいかも 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan うまくいかない?(一般論) 「何か途中でこけるんですけど」 masterブランチが更新されているかも; $ git pull –rebase してね 「やっぱり何かこけるんですけど」 $ make clean or $ make distclean してからやり直してね 「それでもこけるんですけど!」 master ブランチ、誰かビルド壊したかも; 大抵半日以内で直るから、ちょっと待ってね 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan うまくいったら、動かしてみよう Linuxの場合 $ ./instdir/program/soffice Mac OS Xの場合 $ open ./instdir/LibreOfficeDev.app 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan ビルド中... その間に、いくつかヒントを 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan makeのmoduleごとのターゲット (module名) 例: $ make sw 特定のmoduleのみをビルドしてくれる (module名).all 例: $ make sc.all 特定のmoduleと、それが依存するmoduleたちをビルドしてく れる moduleごとのテストも実行 (module名).clean moduleごとの生成物の削除 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan makeの隠し(?)ターゲット dump-deps / dump-deps-png Graphvizでmoduleの依存関係を図にしてくれる 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
ビルドについて素晴らしい資料がたくさんあります。 参考 ビルドについて素晴らしい資料がたくさんあります。 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan ドキュメンテーション TDF Wiki https://wiki.documentfoundation.org/Development から辿れるところに各環境でのビルドが説明されています LibreOffice: Hermenutical keys to a complex code-base by Michael Meeks https://people.gnome.org/~michael/data/2013-07-26-libreoffice-code- structure.pdf 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan 日本語での資料 Linuxでのビルドについて 「Linux環境でLibreOfficeをビルドしてみようかね」 by 小笠原 さん http://www.slideshare.net/naruoga/libreofficelinux Mac OS Xでのビルドについて 「Mac OS XでのLibreOfficeビルド報告(Ver.2)」 by testnoda さん http://www.slideshare.net/testnoda/lib-o-buildmacosx20140210 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan
LibreOffice mini Conference 2014 Tokyo/Japan ありがとうございました。 参加いただいた皆さまに感謝 日本語チームの方々、特にMiniconf 企画準備に尽力 していただいた大森さんと小笠原さんに感謝 2014-06-07 LibreOffice mini Conference 2014 Tokyo/Japan