140607 lib o-mini_con-ryoon
Upcoming SlideShare
Loading in...5
×
 

140607 lib o-mini_con-ryoon

on

  • 447 views

 

Statistics

Views

Total Views
447
Views on SlideShare
327
Embed Views
120

Actions

Likes
2
Downloads
0
Comments
0

4 Embeds 120

http://eno.hatenablog.com 62
http://libojapan.connpass.com 33
https://twitter.com 16
http://komaken.sakura.ne.jp 9

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

140607 lib o-mini_con-ryoon 140607 lib o-mini_con-ryoon Presentation Transcript

  • 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にもトライしたい