SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
1
pkgsrcを使った*BSDでの
LibreOffice 4.2のビルド
Ryo ONODERA
<ryo_on@yk.rim.or.jp>
<ryoon@NetBSD.org>
LibreOffice mini Conference 2014 Tokyo/Japan
2014-06-07
2
Who am I?
●
名前: Ryo ONODERA
●
いわゆるIT産業とは無関係な仕事をしています
●
2010年からpkgsrc developer
●
NetBSDのCVS treeにもcommitできるので、瑣末なものはcommitしている時もあります
●
最近は、Xinuos (旧SCO)のOSにpkgsrcを移植しようとしています
●
SCO OpenServer 5.0.7/3.2、SCO OpenServer 6.0/5、UnixWare 7.1.4+
●
GCCのサポートがなかったり、最近のバージョンでは削除されていたりするので、GCC
をどうにかしないといけないのではないかと思っています。i386だけなの
で、linker/compiler/includeの癖が分かればそんなに難しくないはず?
●
●
NetBSD的には、このMacBook Air 11-inch mid 2012でプレゼンテーションができるよ
うになりました。DRMKMS kernel
3
pkgsrcとは (1/2)
●
●
http://www.pkgsrc.org/ Portable package build system
●
The NetBSD Foundation傘下のプロジェクト
●
パッケージ管理システムと言って良いと思う
– パッケージ管理システムの定義は難しいようなので…
●
ソフトウェアのインストールの仕方を共有するのが目的のプロジェクトだと思っています
●
古くて良くないCVSで管理
– cvs -d :pserver:anoncvs@anoncvs.jp.netbsd.org:/cvs/cvsroot login (passwd =
anoncvs)
– cvs -d :pserver:anoncvs@anoncvs.jp.netbsd.org:/cvs/cvsroot co pkgsrc
●
対応22プラットフォーム (ただしサポートのレベルは様々)
– AIX、 BSDOS、 Cygwin、 Darwin/Mac OS X、 DragonFly、 FreeBSD、 FreeMiNT、
GNU/kFreeBSD、 HP-UX 、 Haiku、 IRIX、 Interix/SFU/SUA、 Linux、 Minix3、
MirBSD、 NetBSD、 OSF1、 OpenBSD、 QNX、 SCO OpenServer 5、
Solaris/illumos、 UnixWare
4
pkgsrcとは (2/2)
●
/usr/pkg以下にインストールpkgのsrcなのでpkgsrc (らしい)
●
FreeBSD Portsの移植から始まった
●
ソースコードからビルドする
– cd pkgsrc/misc/libreoffice4 (tree内でパッケージを選んで)
– make install (実行コマンドは共通)
●
バイナリーパッケージもある
●
私の中では、buildlink3という仕組みが素晴しいと思っているが、説明は割愛し
ます
●
pkgsrcと似た仕組みは他にもあるので、名前だけ紹介。深くは知りません…
●
FreeBSD Ports、 OpenBSD Ports、 DragonFly DPorts、 Gentoo Portage、
Fink、 MacPorts、 Homebrew、 Arch Build System など
●
http://wiki.netbsd.org/users/ryoon/sourcecode_based_installation_packag
e_management_systems/ にリンク集があります
5
*BSDとは (1/2)
●
the University of California, Berkeley由来
●
BSD = Berkeley Software Distribution
●
AT&T UNIXへのアドオンから改造版へ。TCP/IPの生まれ故郷
●
アイデンティティーは、BSDライセンスなのではないかと
思っている(今は、4条項のオリジナルBSDライセンスはお勧
めされていない)
●
AT&T UNIXと裁判になって、再出発
●
メジャーどころでは、DragonFly、 FreeBSD、 NetBSD、
OpenBSD、 PC-BSDなどがある
●
他にもあるが、試せてません
6
*BSDとは (2/2)
●
LinuxともSysVR4とも違う、BSD独自の流儀がある
●
もちろん、GNUの流儀とも違う
●
POSIX互換は目指しているらしい
●
SysVR4やLinuxの良い所も取り込まれているはず
●
すみませんが、詳しくは説明できません…
7
pkgsrcの仕組み (1/4)
●
pkgsrc/category/package というディレクトリーの形で、パッケー
ジを分類し収録している
– 43のカテゴリーに分類されている
– archivers audio benchmarks iology bootstrap cad chat comms
converters cross databases devel distfiles editors emulators
filesystems finance fonts games geography graphics ham
inputmethod lang mail math mbone meta-pkgs misc
multimedia net news parallel pkgtools print security shells
sysutils textproc time wm www x11
●
bmakeというNetBSDで使われているmakeの方言でMakefileの形で
書く
●
配布物の取得からインストールまで
●
ライセンスによってブロックすることも可能
8
pkgsrcの仕組み (2/4)
●
典型的には、以下のようなファイル/ディレクトリーがあ
る
●
DESCR … パッケージの解説文章
●
Makefile … 本体
●
PLIST … インストールされるファイルの一覧
●
buildlink3.mk … ライブラリー等だった場合に依存関係を
記述するのに使う
●
distinfo … 配布物のチェックサムなど
●
patches/ … ビルドに必要なパッチファイルを格納する
ディレクトリー
9
pkgsrcの仕組み (3/4)
●
# $NetBSD: Makefile,v 1.6 2014/06/01 04:01:06 ryoon Exp $
●
●
DISTNAME= libe-book-0.0.3
●
PKGREVISION= 1
●
CATEGORIES= converters
●
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=libebook/}
●
EXTRACT_SUFX= .tar.bz2
●
●
MAINTAINER= ryoon@NetBSD.org
●
HOMEPAGE= http://sourceforge.net/projects/libebook/
●
COMMENT= Library for importing non-HTML reflowable e-book formats
●
LICENSE= mpl-2.0 OR gnu-lgpl-v2.1
●
●
TOOL_DEPENDS+= gperf-[0-9]*:../../devel/gperf
●
●
GNU_CONFIGURE= yes
●
USE_LIBTOOL= yes
●
USE_TOOLS+= gmake pkg-config
●
USE_LANGUAGES= c c++
●
●
CONFIGURE_ARGS+= --disable-tests
●
CONFIGURE_ARGS+= --without-docs
●

●
.include "../../converters/libwpd/buildlink3.mk"
●
.include "../../devel/boost-libs/buildlink3.mk"
●
.include "../../devel/zlib/buildlink3.mk"
●
.include "../../textproc/icu/buildlink3.mk"
●
.include "../../textproc/libxml2/buildlink3.mk"
●
.include "../../mk/bsd.pkg.mk"
●
CVS keyword展開
●
配布物のファイル名とパッケージ
名
●
カテゴリー
●
配布物の取得元
●
メンテナー
●
依存するライブラリー以外のパッ
ケージの情報
●
ビルドの仕組みに関する情報
(GNU Autotools/Libtool/CMake/
プログラミング言語など)
●
依存するライブラリーの情報
10
pkgsrcの仕組み (4/4)
●
使い始めるに当たっては…
●
NetBSDでは、bmakeがmake(1)として標準搭載されてい
るので、特に準備は必要ない
– $ cd /usr/pkgsrc/misc/libreoffice4 && make install
●
NetBSD以外のOSでは、pkgsrcのbootstrap作業が必要に
なる
– # cd /usr/pkgsrc/bootstrap && ./bootstrap --varbase
/usr/pkg/var とか
– $ cd /usr/pkgsrc/misc/libreoffice4 &&
/usr/pkg/bin/bmake install
11
ターゲット (1/2)
●
ここからが本題です
●
現在、LibreOfficeは、pkgsrc/misc/libreoffice4 として収録
されており、そのバージョンは4.2.4.2であり、これをビルド
することを目的とする
– pkgsrc/misc/libreofficeというのもあって、バージョン3系
列のようですが、ビルドしたことはありません
●
ビルドする環境としては、以下とする。メジャーなBSDだと
思います
– DragonFly/amd64 3.6.0 (先日3.8.0が出てしまいました)
– FreeBSD/amd64 10.0
– OpenBSD/amd64 5.5
12
ターゲット (2/2)
●
LibreOfficeをビルドするのに関連するであろう、各OSの仕様は以下
のようである
●
DragonFly/amd64 3.6.0
– C/C++コンパイラー: GCC 4.7.3
– アーキテクチャー: x86_64
●
FreeBSD/amd64 10.0
– C/C++コンパイラー: llvm/clang 3.3
– アーキテクチャー: x86_64
●
OpenBSD/amd64 5.5
– C/C++コンパイラー: GCC 4.2.1
– アーキテクチャー: x86_64
13
LibreOfficeと*BSDサポート (1/3)
●
まず以下のようにして、LibreOfficeがターゲットOSのサポートをしているのか確認した
– どこかにサポートしているOSやアーキテクチャーの種類について書かれているのかもしれないが、
見付けられていない
●
ソースツリーで、以下のように実行して、各OS用のサポートファイルが存在することを確認した
– $ find . | grep -i dragonfly
●
./solenv/gbuild/platform/DRAGONFLY_X86_64_GCC.mk
●
./solenv/gbuild/platform/DRAGONFLY_INTEL_GCC.mk
– $ find . | grep -i freebsd
●
./solenv/gbuild/platform/FREEBSD_INTEL_GCC.mk
●
./solenv/gbuild/platform/FREEBSD_X86_64_GCC.mk
●
./desktop/test/deployment/update/platform/freebsd_x86_64.oxt
●
./desktop/test/deployment/update/platform/freebsd_x86.oxt
●
(パッチは省略)
– $ find . | grep -i openbsd
●
./distro-configs/LibreOfficeOpenBSD.conf
●
./solenv/gbuild/platform/OPENBSD_INTEL_GCC.mk
●
./solenv/gbuild/platform/OPENBSD_X86_64_GCC.mk
14
LibreOfficeと*BSDサポート (2/3)
●
ちなみに、NetBSDの場合は以下のようである
– $ find . | grep -i netbsd
●
./solenv/gbuild/platform/NETBSD_X86_64_GCC.
mk
●
./solenv/gbuild/platform/NETBSD_INTEL_GCC.m
k
●
grep -ri netbsd . とかするのも面白い
15
LibreOfficeと*BSDサポート (3/3)
●
以上より、いずれのターゲットOSの場合にも、サポート
ファイルは存在し、以下のような条件を前提にしていると
考えられる
– C/C++コンパイラー: GCC
– アーキテクチャー: x86またはx86_64
●
Linuxの場合には、S/390x、 SPARC、 MIPS、 ARM、
Power、 HP-PA、 m68kなどもサポートされているようだ
– $ find . | grep -i linux してみてください
16
DragonFly/amd64の場合
●
solenv/gbuild/platform/DRAGONFLY_X86_64_GCC.mk が他
のOSと違う部分が書かれているファイルであると考えられる
– gb_COMPILERDEFAULTOPTFLAGS := -O2
– include $(GBUILDDIR)/platform/unxgcc.mk
– gb_CppunitTest_CPPTESTPRECOMMAND :=
LD_LIBRARY_PATH=$
(WORKDIR)/UnpackedTarball/cppunit/src/cppunit/.libs:
/usr/pkg/lib
●
pkgsrcが標準のパッケージ管理システムだった頃の設定である
ようだ
●
基本的には、Unix-like OSでGCCを使う場合そのままのようだ
17
FreeBSD/amd64の場合
●
solenv/gbuild/platform/FREEBSD_X86_64_GCC.mk が
他のOSと違う部分が書かれているファイルであると考え
られる
– gb_COMPILERDEFAULTOPTFLAGS := -O2
– include $(GBUILDDIR)/platform/unxgcc.mk
●
llvm/clang用のファイルは存在していない
●
同じく、Unix-like OSでGCCを使う場合そのままのようだ
18
OpenBSD/amd64の場合
●
solenv/gbuild/platform/OPENBSD_X86_64_GCC.mk が
他のOSと違う部分が書かれているファイルであると考え
られる
– gb_COMPILERDEFAULTOPTFLAGS := -O2
– gb_STDLIBS := $(PTHREAD_LIBS)
– include $(GBUILDDIR)/platform/unxgcc.mk
●
libpthreadをわざわざ使うように指定しているようだが、
なぜかは不明
●
それ以外はUnix-like OSでGCCを使う場合そのままのよう
だ
19
Unix-like OSでGCCを使う場合
●
いずれのターゲットOSでも参照されていた、Unix-like
OSでGCCを使う場合 (unxgcc.mk) について、簡単に確認
した
●
名前に反して、llvm/clangについても書かれている
– ifeq ($(COM_GCC_IS_CLANG),) など
●
GNU makeの関数ばかりで、良く分からない…
●
しかし、llvm/clangをC/C++コンパイラーにしている
FreeBSD/amd64 10.0の場合でも、対応できそうな気が
して来た
20
pkgsrcでのmisc/libreoffice4
●
LibreOfficeは、そのビルドの仕組みの中に、必要とするライブラリー等
をネットワーク上から取り寄せて、独自のパッチを当ててビルドする仕
組みがある
●
しかし、これはソースコードから各ユーザーがコンパイルするパッケー
ジ管理システムとは相性が悪い挙動である
– pkgsrc/Ports等では、配布物をあらかじめダウンロードしておける必
要がある→オフラインでもビルドできる必要がある
– 再配布可能な配布物については、ミラーをしている
●
メンテナンスするのにも、パッチへのパッチが必要になって面倒である
●
なるべく、--with-system-*を活用し、必要なライブラリーはpkgsrcの枠
組みの中でインストールしたものを使うようにする
●
しかし、まだ道半ばで、--disable-fetch-external と--with-external-
tar=/path/to/tarball を使って対処している
21
依存するパッケージ
●
hsqldb18-[0-9]*:../../databases/hsqldb18
●
openjdk7-[0-9]*:../../lang/openjdk7
●
openjdk7>=1.7.0.72.20090924:../../lang/openjdk7
●
libabw>=0.0.1:../../converters/libabw
●
libwpd>=0.9.5:../../converters/libwpd
●
libcdr>=0.0.6:../../converters/libcdr
●
libwpg>=0.1.3nb1:../../converters/libwpg
●
lcms2>=2.2:../../graphics/lcms2
●
libe-book>=0.0.2:../../converters/libe-book
●
libetonyek>=0.0.3:../../converters/libetonyek
●
libfreehand>=0.0.0:../../converters/libfreehand
●
libmspub>=0.0.6:../../converters/libmspub
●
libvisio>=0.0.15:../../converters/libvisio
●
libwps>=0.2.0:../../converters/libwps
●
libmwaw>=0.2.0:../../converters/libmwaw
●
orcus>=0.5.1:../../converters/orcus
●
db4>=4.8.30:../../databases/db4
●
shared-mime-info>=1.0nb1:../../databases/shared-mime-info
●
unixodbc>=2.0.11nb3:../../databases/unixodbc
●
postgresql91-client>=9.1.11nb1:../../databases/postgresql91-client
●
boost-libs-1.55.*:../../devel/boost-libs
●
boost-libs>=1.55.0:../../devel/boost-libs
●
cppunit>=1.10.2nb5:../../devel/cppunit
●
liblangtag>=0.4.0:../../devel/liblangtag
●
nss>=3.14.0:../../devel/nss
●
harfbuzz>=0.9.17nb2:../../fonts/harfbuzz
●
jpeg>=9:../../graphics/jpeg
●
cairo>=1.12.16nb2:../../graphics/cairo
●
png>=1.6.0nb1:../../graphics/png
●
gdk-pixbuf2-xlib>=2.26.5nb1:../../graphics/gdk-pixbuf2-xlib
●
graphite2>=1.2:../../graphics/graphite2
●
librsvg>=2.40.1nb1:../../graphics/librsvg
●
libxml2>=2.8.0nb2:../../textproc/libxml2
●
python33>=3.3:../../lang/python33
●
lp_solve>=5.5.2.0:../../math/lp_solve
●
gstreamer0.10>=0.10.36nb3:../../multimedia/gstreamer0.10
●
gst-plugins0.10-base>=0.10.36nb3:../../multimedia/gst-plugins0.10-base
●
gstreamer1>=1.0.0:../../multimedia/gstreamer1
●
gst-plugins1-base>=1.0.0:../../multimedia/gst-plugins1-base
●
libcmis>=0.4.1:../../net/libcmis
●
cups>=1.5.4nb9:../../print/cups
●
poppler-cpp>=0.26.0:../../print/poppler-cpp
●
dbus>=0.91:../../sysutils/dbus
●
dbus-glib>=0.100nb1:../../sysutils/dbus-glib
●
desktop-file-utils>=0.10nb1:../../sysutils/desktop-file-utils
●
hunspell>=1.3.2:../../textproc/hunspell
●
hyphen>=2.8.6:../../textproc/hyphen
●
icu>=53.1:../../textproc/icu
●
libclucene>=2.2.0:../../textproc/libclucene
●
libodfgen>=0.0.3:../../textproc/libodfgen
●
libxslt>=1.1.28nb2:../../textproc/libxslt
●
redland>=1.0.16nb4:../../textproc/redland
●
curl>=7.35.0nb1:../../www/curl
●
libexttextcat>=3.2:../../textproc/libexttextcat
●
mythes>=1.2.2:../../textproc/mythes
●
neon>=0.30.0nb2:../../www/neon
●
gtk2+>=2.24.22nb3:../../x11/gtk2
22
icu53対応
●
--with-system-icuを設定しているので、git HEADからicu53
対応のコードをバックポートした
●
patch-i18npool_source_collator_collator__unicode.cxx
●
patch-i18npool_source_collator_data_zh__TW__charset.txt
など
●
として、外部のicu 53.xのAPI変更に追従した
●
http://cgit.freedesktop.org/libreoffice/core/commit/?
id=2d843bb104a3091a2ff2c7b4d5655f5fb1393a47
●
http://cgit.freedesktop.org/libreoffice/core/commit/i18n
pool/source/collator/collator_unicode.cxx?
id=a3c627fe38236e82bc6008075d862b3cbfbd9ce3
23
DragonFlyでの実際 (1/2)
●
DragonFlyでは、3.6.0より前までは、独自のDPortsでは
なくpkgsrcを採用して来ていた
●
また、GCCが4.7.3である
●
以上のことより、依存するパッケージについては、あまり
問題がないのではないかと予想された
●
●
しかし、OpenJDK7 (pkgsrc/lang/openjdk7)につい
て、RPATHあるいはLD_LIBRARY_PATHがおかしいの
か、ビルドできなかった
→ Javaサポートは無効にせざるを得なくなった
24
DragonFlyでの実際 (2/2)
●
実際にビルドしてみた結果、依存するパッケージと
LibreOfficeのいずれも、大きなエラーがなくビルドは完
了した
– x11/libdrmについては、libkmsがbuildされるの
で、PLISTが変わるので対応した
●
動作についても、特に問題ないようだ
●
●
あっけなく完了
25
FreeBSDでの実際 (1/3)
●
C/C++コンパイラーがllvm/clangなので、GCCとの違いが全て確認され対応されているかどう
か心配された
●
依存するパッケージについても、同様に心配された
●
pkgsrcからOpenJDK7を導入できない(bootstrap kitがない)→オフ
●
●
依存するパッケージについて、変更した内容は、以下の通り
– libmwawほかのファイル形式の変換ライブラリーで、C preprocessorとして、clang -Eを呼
び出しているのでclang++のみを用意しているとconfigureスクリプトが失敗してしまう
→ Cコンパイラーも使うものとしておく (pkgsrcのclangサポートが良くない可能性がある)
– cups (Common UNIX Printing System)がdevel/libusb1を要求しているが、FreeBSDには移
植されていない
→ FreeBSDは、baseにlibusb互換のライブラリーであるlibusbを持っているので、それを使
えるようなbuiltin.mkを用意した
– libmwaw-0.2.0は、clang 3.3でビルドできない。0.2.1にアップデートすることでビルドでき
るようになった。0.3系列も公開されているが、LibreOffice 4.2.4.2では使えない (configure
スクリプトを直してもAPIが変わったようでエラーになる)
26
FreeBSDでの実際 (2/3)
●
LibreOffice本体をビルドするに当たって、様々なエラーに遭遇した
●
clang++が分からないと思って、FreeBSD Portsのパッチを見てみたが、FreeBSD PortsでのLibreOffice
は、4.1.6.2なのでそのままでは当てられない
●
FreeBSD Portsのパッチを参考に、以下のようにパッチを作成し直した
– patch-bridges_source_cpp__uno_gcc3__linux__intel_except.cxx
– patch-bridges_source_cpp__uno_gcc3__linux__intel_share.hxx
– patch-bridges_source_cpp__uno_gcc3__linux__intel_uno2cpp.cxx
– patch-bridges_source_cpp__uno_gcc3__linux__x86-64_share.hxx
– patch-bridges_source_cpp__uno_gcc3__linux__x86-64_uno2cpp.cxx
– patch-connectivity_source_parse_sqlbison.y
– patch-svtools_source_control_ctrlbox.cxx
●
ただし、FreeBSDで条件分岐すべきか、clang/libc++で条件分岐すべきかを明確にできていない
●
clangがC/C++コンパイラーになっていないFreeBSD 9.2で試してみる必要がある
●
●
NetBSD 6.99 (current)は、clangでビルドし、clangを標準のC/C++コンパイラーにすることもできるの
で、それに対応するためと思われるパッチが既に含まれていたが、少なくともclang 3.3には不適当な内容
であった
27
FreeBSDでの実際 (3/3)
●
ただし、FreeBSDで条件分岐すべきか、clang/libc++で
条件分岐すべきかを明確にできていない
●
clangがC/C++コンパイラーになっていないFreeBSD 9.2
で試してみる必要がある
●
●
NetBSD 6.99 (current)は、clangでビルドし、clangを標
準のC/C++コンパイラーにすることもできるので、それ
に対応するためと思われるパッチが既に含まれていたが、
少なくともclang 3.3には不適当な内容であった
28
OpenBSDでの実際 (1/3)
●
C/C++コンパイラーが、GCC 4.2.1なので、これをそのまま使うことはで
きない。そもそもboostもビルドできない
●
そこで、Mozilla Firefoxをビルドするために、あらかじめ用意していた
GCC 4.6.4を使用してみることにした
●
依存するライブラリーは、GCC 4.6.4で十分であった
●
しかし、LibreOffice 4.2.4.2は、pdfimport部分で、以下等
エラーが大量に発生してビルドできない
– include/c++/bits/cpp_type_traits.h:73:3: error: template with C
linkage
●
どう考えても、C++コンパイラーがおかしいという結論に…。Mozilla
Firefoxがビルドできるくらいなので、ちゃんとしているはずなんだけれど
もな…と思いつつ、GCC 4.8.2でbuildするように方針転換をした
●
OpenJDK7もbootstrap kitがないのでビルドできない→オフ
29
OpenBSDでの実際 (2/3)
●
GCC 4.8.2については、OpenBSD Portsから必要なパッチを
借りて来て、動くようにした (意味の分かっていない部分も
ある)
– /usr/pkg/etc/mk.confに、GCC_REQD+=4.8と書いてお
く
●
すると、devel/libffiがビルドできない。これはPython 2.7
(lang/python27)に必要で、Python 2.7はGTK+ 2をビルドす
るのに必要
– https://github.com/atgreen/libffi/commit/76d19d004
e36e99d261ee78261e2f52cea5e4ab1#diff-
e2d5a00791bce9a01f99bc6fd613a39d の内容をpatch-
aaに追加。unwindサポートの扱いが悪かったらしい
30
OpenBSDでの実際 (3/3)
●
Gstreamer 0.10/1もビルドできない。Gstreamerに附属のGNU libtoolや
pkgsrcのGNU libtoolではビルドできない。OpenBSD附属のlibtool (Perl
で書かれている)を使うとうまく行く (何が違うのかは良く調査しないとい
けない)
●
OpenBSD附属のlibtoolを使うようにmultimedia/gst-plugin0.10-baseや
gst-plugin1-baseを修正。良い方法ではないが仕方ないとしておく
●
また、configureスクリプトで、以下が欠けていたので、修正 (同じビルド
できない問題でオフにされていたのかも)
– build_gstreamer=yes
– build_gstreamer_0_10=yes
●
それ以外は、touch(1)のオプションの違いがある位で、順調に推移
●
●
GCC 4.8を使う範囲について、明確化していく必要がある
31
pkgsrc/misc/libreoffice4
●
時間があった場合に、実際のpkgsrc/misc/libreoffice4の
中身を概観します
32
まとめと今後の課題
●
DragonFly/amd64 3.6.0、 FreeBSD/amd64 10.0、 OpenBSD/amd64 5.5
で、pkgsrcの仕組みを使ってビルドし、正常に起動し、簡単な操作はできる
ことを確認した
●
そのために必要なOpenBSDにおけるGCC 4.8の使用範囲に関する設定以外の
全ての変更をpkgsrcのCVSツリーにコミットした→よって誰でも再現可能
●
●
Javaオプションに関しては今回は有効化できなかったので、bootstrap kitの
作成を学んで有効化する
●
FreeBSD/amd64 10.0、OpenBSD/amd64 5.5でビルドするのに必要な変更
については、git HEADをビルドしてみて、bug reportする予定 (pkgsrc-wip
にはgitからソースコードをfetchしてbuildする仕組みがあるが、それは使わ
ない予定)
●
LibreOfficeのビルドの仕組みは、GNU makeで複雑に書かれているので、き
ちんと読み直して、理解していく必要がある
●
33
おわり
●
Upstream
– OpenJDK7 bsd-portで、rhino.jarを読み込むと、その
OpenJDK7ではLibreOfficeのJavaScriptによるscriptingの
部分がコンパイルできなくなるのが当面の課題? 私は
JavaScriptでマクロを書きたかったので…
– LD_LIBRARY_PATHを使わないようにならないかな…とか
– *BSDのx86/x86_64以外のサポート
●
pkgsrc
– ヘルプのバイナリーを持って来ているのに使ってない気が
する
– Apache OpenOfficeにもトライしたい

Weitere ähnliche Inhalte

Was ist angesagt?

Unityで関数型言語ぽく書く 如法会#1
Unityで関数型言語ぽく書く   如法会#1Unityで関数型言語ぽく書く   如法会#1
Unityで関数型言語ぽく書く 如法会#1NAKAOKU Takahiro
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成shigeki_ohtsu
 
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)Tetsuyuki Kobayashi
 
今、話題のビルドツール gulp/Gruntを徹底解剖! ~ハンズオンで基礎から学ぶ、Web制作の味方 ビルドツール~
今、話題のビルドツール gulp/Gruntを徹底解剖! ~ハンズオンで基礎から学ぶ、Web制作の味方 ビルドツール~今、話題のビルドツール gulp/Gruntを徹底解剖! ~ハンズオンで基礎から学ぶ、Web制作の味方 ビルドツール~
今、話題のビルドツール gulp/Gruntを徹底解剖! ~ハンズオンで基礎から学ぶ、Web制作の味方 ビルドツール~知己 久保
 
LibPGEN 1st Step Guide
LibPGEN 1st Step GuideLibPGEN 1st Step Guide
LibPGEN 1st Step Guideslankdev
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜Takashi Uemura
 
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見たFirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見たKenjiro Kubota
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験AdvancedTechNight
 
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentookubo39
 
Seurity Camp Award 2016
Seurity Camp Award 2016 Seurity Camp Award 2016
Seurity Camp Award 2016 slankdev
 
Adtech College#7 GitHubを中心とした開発フロー
Adtech College#7 GitHubを中心とした開発フローAdtech College#7 GitHubを中心とした開発フロー
Adtech College#7 GitHubを中心とした開発フローNaoyuki Yamada
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3mganeko
 
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料slankdev
 

Was ist angesagt? (20)

Unityで関数型言語ぽく書く 如法会#1
Unityで関数型言語ぽく書く   如法会#1Unityで関数型言語ぽく書く   如法会#1
Unityで関数型言語ぽく書く 如法会#1
 
node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成node-gypを使ったネイティブモジュールの作成
node-gypを使ったネイティブモジュールの作成
 
Mishimasyk 3 20140705
Mishimasyk 3 20140705Mishimasyk 3 20140705
Mishimasyk 3 20140705
 
Outputz.vim
Outputz.vimOutputz.vim
Outputz.vim
 
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
 
今、話題のビルドツール gulp/Gruntを徹底解剖! ~ハンズオンで基礎から学ぶ、Web制作の味方 ビルドツール~
今、話題のビルドツール gulp/Gruntを徹底解剖! ~ハンズオンで基礎から学ぶ、Web制作の味方 ビルドツール~今、話題のビルドツール gulp/Gruntを徹底解剖! ~ハンズオンで基礎から学ぶ、Web制作の味方 ビルドツール~
今、話題のビルドツール gulp/Gruntを徹底解剖! ~ハンズオンで基礎から学ぶ、Web制作の味方 ビルドツール~
 
LibPGEN 1st Step Guide
LibPGEN 1st Step GuideLibPGEN 1st Step Guide
LibPGEN 1st Step Guide
 
20110205.linux 0.01
20110205.linux 0.0120110205.linux 0.01
20110205.linux 0.01
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見たFirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
 
全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験全部入り!WGPで高速JavaScript+HML5体験
全部入り!WGPで高速JavaScript+HML5体験
 
Bossan dentoo
Bossan dentooBossan dentoo
Bossan dentoo
 
Seurity Camp Award 2016
Seurity Camp Award 2016 Seurity Camp Award 2016
Seurity Camp Award 2016
 
How To Drink Wsgi
How To Drink WsgiHow To Drink Wsgi
How To Drink Wsgi
 
Adtech College#7 GitHubを中心とした開発フロー
Adtech College#7 GitHubを中心とした開発フローAdtech College#7 GitHubを中心とした開発フロー
Adtech College#7 GitHubを中心とした開発フロー
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
 
Serverless on GCP
Serverless on GCPServerless on GCP
Serverless on GCP
 
Clack meetup #1 lt
Clack meetup #1 ltClack meetup #1 lt
Clack meetup #1 lt
 
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
 
Datalab and colaboratory
Datalab and colaboratoryDatalab and colaboratory
Datalab and colaboratory
 

Andere mochten auch

LibreOffice mini Conference 2014 QA
LibreOffice mini Conference 2014 QALibreOffice mini Conference 2014 QA
LibreOffice mini Conference 2014 QAShinji Enoki
 
Recent Information about LibreOffice
Recent Information about LibreOfficeRecent Information about LibreOffice
Recent Information about LibreOfficeMasataka Kondo
 
20150404 スライド
20150404 スライド20150404 スライド
20150404 スライドanubis_369
 
What's EasyHacks? / EasyHacksについて
What's EasyHacks? / EasyHacksについてWhat's EasyHacks? / EasyHacksについて
What's EasyHacks? / EasyHacksについてNaruhiko Ogasawara
 
質問サイトAsk.LibreOfficeを使ってみよう!
質問サイトAsk.LibreOfficeを使ってみよう!質問サイトAsk.LibreOfficeを使ってみよう!
質問サイトAsk.LibreOfficeを使ってみよう!Shinji Enoki
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Naruhiko Ogasawara
 
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
 
コマンド一発でLibreOfficeをインストール
コマンド一発でLibreOfficeをインストールコマンド一発でLibreOfficeをインストール
コマンド一発でLibreOfficeをインストール雄介 荒川
 

Andere mochten auch (8)

LibreOffice mini Conference 2014 QA
LibreOffice mini Conference 2014 QALibreOffice mini Conference 2014 QA
LibreOffice mini Conference 2014 QA
 
Recent Information about LibreOffice
Recent Information about LibreOfficeRecent Information about LibreOffice
Recent Information about LibreOffice
 
20150404 スライド
20150404 スライド20150404 スライド
20150404 スライド
 
What's EasyHacks? / EasyHacksについて
What's EasyHacks? / EasyHacksについてWhat's EasyHacks? / EasyHacksについて
What's EasyHacks? / EasyHacksについて
 
質問サイトAsk.LibreOfficeを使ってみよう!
質問サイトAsk.LibreOfficeを使ってみよう!質問サイトAsk.LibreOfficeを使ってみよう!
質問サイトAsk.LibreOfficeを使ってみよう!
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
 
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
 
コマンド一発でLibreOfficeをインストール
コマンド一発でLibreOfficeをインストールコマンド一発でLibreOfficeをインストール
コマンド一発でLibreOfficeをインストール
 

Ähnlich wie 140607 lib o-mini_con-ryoon

LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2Tomofumi Yagi
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo LinuxについてTakuto Matsuu
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)
もっとも簡単なKubernetes構築 on Raspberry pi  (July tech festa winter 2021)もっとも簡単なKubernetes構築 on Raspberry pi  (July tech festa winter 2021)
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)Kamon Nobuchika
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on LinuxTakayoshi Tanaka
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATETomofumi Yagi
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!Yohei Fushii
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggugkimukou_26 Kimukou
 
MySQL clients
MySQL clientsMySQL clients
MySQL clientsyoku0825
 
20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on LinuxTakayoshi Tanaka
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1Ryosuke IWANAGA
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門sandai
 

Ähnlich wie 140607 lib o-mini_con-ryoon (20)

LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2LibreOffice を Windows 上でビルドする UPDATE2
LibreOffice を Windows 上でビルドする UPDATE2
 
Kansai mrb gr_sakura
Kansai mrb gr_sakuraKansai mrb gr_sakura
Kansai mrb gr_sakura
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)
もっとも簡単なKubernetes構築 on Raspberry pi  (July tech festa winter 2021)もっとも簡単なKubernetes構築 on Raspberry pi  (July tech festa winter 2021)
もっとも簡単なKubernetes構築 on Raspberry pi (July tech festa winter 2021)
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Puppet on AWS
Puppet on AWSPuppet on AWS
Puppet on AWS
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!ホームディレクトリに埋もれた便利なコードをさがせ!
ホームディレクトリに埋もれた便利なコードをさがせ!
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
griffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jgguggriffon plugin を 実際に作ってみよう #jggug
griffon plugin を 実際に作ってみよう #jggug
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
 
20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux20170311 Developing & Deploying .NET Core on Linux
20170311 Developing & Deploying .NET Core on Linux
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
qmake入門
qmake入門qmake入門
qmake入門
 

Mehr von Ryo ONODERA

helloSystemをインストール
helloSystemをインストールhelloSystemをインストール
helloSystemをインストールRyo ONODERA
 
NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)Ryo ONODERA
 
NetBSD on Google Compute Engine
NetBSD on Google Compute EngineNetBSD on Google Compute Engine
NetBSD on Google Compute EngineRyo ONODERA
 
How to package github softwares
How to package github softwaresHow to package github softwares
How to package github softwaresRyo ONODERA
 
FreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPSFreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPSRyo ONODERA
 
NetBSD on Conoha VPS at JNUG BoF 2014
NetBSD on Conoha VPS at JNUG BoF 2014NetBSD on Conoha VPS at JNUG BoF 2014
NetBSD on Conoha VPS at JNUG BoF 2014Ryo ONODERA
 
LibreOffice 4 under NetBSD with pkgsrc (en)
LibreOffice 4 under NetBSD with pkgsrc (en)LibreOffice 4 under NetBSD with pkgsrc (en)
LibreOffice 4 under NetBSD with pkgsrc (en)Ryo ONODERA
 
LibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrcLibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrcRyo ONODERA
 

Mehr von Ryo ONODERA (8)

helloSystemをインストール
helloSystemをインストールhelloSystemをインストール
helloSystemをインストール
 
NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)
 
NetBSD on Google Compute Engine
NetBSD on Google Compute EngineNetBSD on Google Compute Engine
NetBSD on Google Compute Engine
 
How to package github softwares
How to package github softwaresHow to package github softwares
How to package github softwares
 
FreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPSFreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPS
 
NetBSD on Conoha VPS at JNUG BoF 2014
NetBSD on Conoha VPS at JNUG BoF 2014NetBSD on Conoha VPS at JNUG BoF 2014
NetBSD on Conoha VPS at JNUG BoF 2014
 
LibreOffice 4 under NetBSD with pkgsrc (en)
LibreOffice 4 under NetBSD with pkgsrc (en)LibreOffice 4 under NetBSD with pkgsrc (en)
LibreOffice 4 under NetBSD with pkgsrc (en)
 
LibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrcLibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrc
 

140607 lib o-mini_con-ryoon