Your SlideShare is downloading. ×
LibreOffice 4 under NetBSD with pkgsrc (en)
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

LibreOffice 4 under NetBSD with pkgsrc (en)


Published on

LibreOffice 4 under NetBSD with pkgsrc …

LibreOffice 4 under NetBSD with pkgsrc
English version

Published in: Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. LibreOffice 4 under NetBSD (with pkgsrc) Ryo ONODERA <> 2013-11-18 Kanto Region LibreOffice Offline Meeting#10
  • 2. Who am I? ● Name: Ryo ONODERA ● E-mail: / ● Twitter: @ryo_on ● pkgsrc developer since 2010 ● ● Working on LibreOffice under NetBSD for pkgsrc since 2013-09-15 shows my maintainerships of pkgsrc packages 2
  • 3. Abstract ● ● ● ● Successfully built LibreOffice under NetBSD/amd64 and NetBSD/i386 To share build procedure, I have written pkgsrc Makefile Under NetBSD 6.*, LibreOffice works properly, but LibreOffice under NetBSD 5.2.* is not working properly now Now pkgsrc has LibreOffice in its tree 3
  • 4. What is NetBSD? ● ● NetBSD is one of Berkeley Software Distribution (BSD)’s derivatives. The other BSD is show blow – – OpenBSD – DragonFly – ● FreeBSD MirBSD etc. These BSD has its own kernel, and not like Linux distributions (they does not share kernel). 4
  • 5. What is pkgsrc? ● ● Originally, FreeBSD’s Ports had ported to NetBSD Pkgsrc is cross-platform. It is ported to 21 platforms (shown in release announcement of pkgsrc-2013Q3 branch) – ● ● AIX, BSD/OS, Cygwin, OS X, DragonFly, FreeBSD, FreeMiNT, GNU/kFreeBSD, HP-UX, Haiku, IRIX, Interix/SFU/SUA, Linux, Minix3, MirBSD, NetBSD, OSF1, OpenBSD, QNX, Solaris/illumos, UnixWare To use a package, cd to pkgsrc/category/packagename directory, and type make install. Then source tarball is fetched, built, and installed. Every 3-month, stable branch is released. Most recent stable branch is pkgsrc2013Q3 and it is released 2013-09-30. 5
  • 6. Typical pkgsrc files ● cat Makefile ● DISTNAME= ● CATEGORIES= ● MASTER_SITES= ${MASTER_SITE_XORG:=app/} ● EXTRACT_SUFX= .tar.bz2 ● xauth-1.0.8 ● x11 MAINTAINER= ● HOMEPAGE= ● ● COMMENT= X authentication utility ● ● ● $NetBSD: distinfo,v 1.5 2013/10/11 20:36:20 wiz Exp $ ● ● ● cat distinfo ● ● SHA1 (xauth-1.0.8.tar.bz2) = 481d42acbfe30f8593be07d70c258b18f8c877db RMD160 (xauth-1.0.8.tar.bz2) = f0bcd17d10d5dd7cec0825298403fecb9d29dff5 Size (xauth-1.0.8.tar.bz2) = 146794 bytes ● GNU_CONFIGURE= USE_TOOLS+= yes ● pkg-config ● ● ● .include "../../x11/libXext/" ● .include "../../x11/libXmu/" ● .include "../../mk/" cat PLIST @comment $NetBSD: PLIST,v 1.2 2013/10/11 20:36:20 wiz Exp $ ● bin/test_xauth ● bin/xauth ● man/man1/xauth.1 6
  • 7. File for llibreoffice4 package # $NetB SD: Makefi le,v 1.6 2013/11/03 03:40:49 ryoon E xp $ V ER= 4. 1.3.2 DISTNA M =libreoff ice-${V ER} E P KGNA M =libreoff ice4-${VE R} E CAT GORIE S=misc E MAS T R_SITE S= http: //download. ibreoffice/src/4.1.3/ E E XT CT_S UFX= . tar.xz RA MAINT INER= ryoon@NetB A HOMEP AGE = http: // COMM NT= Office productivi ty suit e, 4.x branch E LI CE NS E= gnu-lgpl-v3 # Wit h -O2, when preference window i s opened, soffice.bin crashes with S IGFPE . .include "../. ./mk/" .if !empty(MACHINE _P LA T FORM:M NetB S D-5.*) B UILDLINK _TRANSFORM rename:-O2: -O += .endif # LibreOfice's M akefile has its own pararell build mechanism. A void conflict. MAK E_JOBS _S A F no E= CHE CK _S HLIB S_SUPP ORTED= no ● DIST_S UB DI R=li breoff ice P YT HON_VE RSIONS _A CCE P T D= 33 E LO_B OOT T P= ${DI STNAME} S RA LO_COMP ONE NTS= dict ionari es hel p translati ons DISTF ILES += ${LO_B OOTST P}${E XTRA CT_S UFX } RA E XT CT_ONLY= ${LO_B OOTSTRA P}${E X T CT UFX } RA RA _S .for com ponent in ${LO_COM ONE NT P S} DISTF ILES += l ibreoff ice-${component}-${V ER}.tar.xz E XT CT_ONLY+= RA libreoff ice-${component}-${V ER}.t ar.xz .endfor MORE_DIS T FILES = 0168229624cfac409e766913506961a8-ucpp-1.3. 2.tar.gz 0279a21fab6f245e85a6f 85f ea54f511-source-code-font-1.009.t ar.gz 0be45d54cc5e1c2e3102e32b8c190346-liberation-fonts-ttf -1.07.1.tar.gz 5c781723a0d9ed6188960defba8e91cf-liberati on-fonts-ttf-2.00.1.t ar.gz 1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_A F s-314.t ar.gz M 1e9ddfe25ac9577da709d7b2ea36f939-source-sans-font-1.036.tar.gz 1f 24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz 2a177023f9ea8ec8bd00837605c5df 1b-jakarta-tomcat-5.0. 30-src. tar. gz 625ff5f2f 968dd908bca43c9469d6e6b-com mons-l ang-2.4-src.t ar.gz 2c9b0f83ed5890af02c0df1c1776f 39b-com mons-httpcli ent -3.1-src.tar.gz 3404ab6b1792ae5f16bbd603bd1e1d03-libf ormula-1. 1.7.zi p 35efabc239af896dfb79be7ebdd6e6b9-gent 3bdf40c0d199af31923e900d082ca2dd-libfonts-1. 1.6.zi p 3c219630e4302863a9a83d0ef de889db-commons-logging-1.1.1-src. tar. gz 46e92b68e31e858512b680b3b61dc4c1-m ythes-1.2. 3.t ar.gz 36271d3fa0d9dec1632029b6d7aac925-libl angtag-0. 5.1.tar.bz2 7a15edea7d415ac5150ea403e27401fd-open-sans-font -ttf-1.10.tar.gz 8ce2f cd72becf 06c41f7201d15373ed9-l 97b2d4dba862397f446b217e2b623e71-libl oader-1.1.6. zip b85436266b2ac91d351ab5684b181151-libwpg-0.2.2.tar.bz2 a2f6010987e1c601274ab5d63b72c944-hyphen-2.8.4.tar.gz a7983f859eafb2677d7ff386a023bc40-xsltml_2.1. ace6ab49184e329db254e454a010f56d-libxm -1.1.7. zip l Only Makefile is shown in left column of this page. 2e482c7567908d334785ce7d69ddff f7-comm ons-codec-1. 6-src.tar.gz b2371dc7cf 4811c9d32146eec913d296-libcm s-0.3.0.tar.gz i c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz 46eb0e7f213ad61bd5dee0c494132cb0-libwps-0. 2.9.tar.bz2 db60e4fde8dd6d6807523deb71ee34dc-libl ayout-0.2.10.zi p d8bd5eed178db6e2b18eeed243f85aa8-flut e-1.1.6.zi p e7a384790b13c29113e22e596ade9687-LinLibert ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz eeb2c7ddf0d302f ba4bfc6e97eac9624-l ibbase-1.1.6. zip f872f4ac066433d8ff92f5e316b36f f9-dej f94d9870737518e3b597f9265f 4e9803-l ibserializer-1.1. libcdr-0.0.14.tar.bz2 libm spub-0. 0.6.tar.bz2 8473296c671b6e3dd8197f4145e0854b-libodfgen-0.0.2.tar.bz2 b63e6340a02ff 1cacf eadb2c42286161-JLanguageT ool-1.7.0.tar.bz2 05f84c95b610c21c5fd510d10debcabf-mari adb-native-client-1.0.0.tar.bz2 08c85a6d6d793daee14e10e22eefdc4b-m dds_0.8.1. tar.bz2 ea91f 2fb4212a21d708aced277e6e85a-vigra1. 4.0.tar.gz 185d60944ea767075d27247c3162b3bc-unowinreg.dll # libm waw-0. 1.10.t ar.bz2 # 17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0. zip # ac4781e01619be13461bb2d562b94a7b-cppunit-1.13.1.tar.gz # ea2acaf 140ae40a87a952caa75184f 4d-liborcus-0.5.1.tar.bz2 # 26b3e95ddf 3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz # libvisio-0.0. 28. tar.bz2 # 972afb8fdf02d9e7517e258b7fa7f0eb-libwpd-0.9.8.tar.bz2 # ae330b9493bd4503ac390106f f6060d7-libextt extcat-3.4.3. tar. bz2 .for md in ${M ORE_DIS T FILE S} DISTF ILES += ${m d} S IT S.${md}= E http: //dev-www. libreoff .endfor DISTF ILES +=e7a384790b13c29113e22e596ade9687-LinLiberti neG-20120116. zip S IT S.e7a384790b13c29113e22e596ade9687-LinLiberti neG-20120116. zip=htt p:// www. num E linux/ DISTF ILES +=185d60944ea767075d27247c3162b3bc-unowi nreg.dll S IT S.185d60944ea767075d27247c3162b3bc-unowi nreg.dl l=http: // extern/ E .include "options. m k" .include "../. ./mk/" # tar: Invalid header, starting valid header search. E XT CT_USI NG= RA WRK SRC= gtar ${WRK DIR}/${LO_BOOT T S RAP } B UILD_DE PE NDS += p5-A rchive-Zip-[0-9]*:. ./../ archivers/p5-Archi ve-Z ip # dm ake script s use relative path with -rpath-l ink ld argument s, whi ch # is a no-go wi th norm pkgsrc wrappers. al # dm ake is slowl y beeing removed from the LibreOf fice build process # and thi s option wil l hopef ully becom unneeded in the f uture e WRA PP E R_SK IP _T NS F RA ORM =yes USE _LA NGUA GE S+= USE _LI BTOOL= c c++ yes # GUN t ar i s real ly needed. S ome Makefil es depends on GNUTAR. USE _T OOLS += autom ake bash bison gmake gt ar perl pkg-config unzip zip PT HRE AD_OP T += S require HAS _CONF IGURE = yes # Do not use /t m outsi de of WRK SRC. p, CONF IGURE _E NV += T P DIR=${WRK SRC}/ tmp M CONF IGURE _A RGS+= --prefix=${DE S T DIR}${P RE F X}/ ${P KGNA ME_NOREV } I CONF IGURE _A RGS+= --disable-ccache CONF IGURE _A RGS+= --disable-dbus CONF IGURE _A RGS+= CONF IGURE _A RGS+= CONF IGURE _A RGS+= --disable-epm --disable-fetch-external --disable-gconf CONF IGURE _A RGS+= --disable-gnom s e-vf CONF IGURE _A RGS+= --disable-kde4 CONF IGURE _A RGS+= CONF IGURE _A RGS+= --disable-lockdown --disable-odk CONF IGURE _A RGS+= --disable-opengl CONF IGURE _A RGS+= --disable-randr-l ink CONF IGURE _A RGS+= --disable-systray ● But it is too long to see your eyes. # Enabli ng crashrep causes error. Non-offi cial build does not need it. CONF IGURE _A RGS+= --disable-crashdump CONF IGURE _A RGS+= --enabl e-ext-presenter-m inimizer # Enabli ng GIO causes error. losessioninstal ponent not found. CONF IGURE _A RGS+= CONF IGURE _A RGS+= --disable-gio --enabl e-gstreamer CONF IGURE _A RGS+= --enabl e-gtk3 CONF IGURE _A RGS+= --enabl e-l ockdown CONF IGURE _A RGS+= CONF IGURE _A RGS+= --enabl e-odk --enabl e-python=system #CONF GURE _ARGS += --enabl e-release-build I CONF IGURE _A RGS+= --enabl e-ext-wiki-publi sher CONF IGURE _A RGS+= --enabl e-ext-nlpsol ver CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-alloc=system --wi th-compat-oowrappers CONF IGURE _A RGS+= --wi th-ext ernal-t ar=${DISTDIR}/${DIS T UBDIR} _S CONF IGURE _A RGS+= --wi th-f onts CONF IGURE _A RGS+= CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-l ang="ALL" --wi th-myspell-dict s --wi th-parallelism =${MAK E _JOB S:Q} CONF IGURE _A RGS+= --wi th-system-clucene CONF IGURE _A RGS+= --wi th-system-li bxml CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-system-boost --wi th-boost-libdir=${B UILDLINK_PREFIX .boost-libs}/ lib CONF IGURE _A RGS+= --wi th-system-cairo CONF IGURE _A RGS+= --wi th-system-curl CONF IGURE _A RGS+= CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-system-dicts --wi th-system-expat --wi th-system-harfbuzz CONF IGURE _A RGS+= --wi th-system-hunspel l CONF IGURE _A RGS+= --wi th-system-icu CONF IGURE _A RGS+= CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-system-jars --wi th-system-jpeg --wi th-system-lcm s2 CONF IGURE _A RGS+= --wi th-system-li bexttextcat CONF IGURE _A RGS+= --wi th-system-li bpng CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-system-li bvi sio --wi th-system-li bwpd CONF IGURE _A RGS+= --wi th-system-li bxml CONF IGURE _A RGS+= --wi th-system-lpsolve CONF IGURE _A RGS+= CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-system-mesa-headers --wi th-system-nss --wi th-system-openldap CONF IGURE _A RGS+= --wi th-system-openssl CONF IGURE _A RGS+= --wi th-system-li bmwaw CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-system-orcus --wi th-system-poppler CONF IGURE _A RGS+= --wi th-system-post gresql CONF IGURE _A RGS+= --wi th-system-redland CONF IGURE _A RGS+= CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi th-system-neon --wi th-system-zlib --wi thout-system-beanshell # internal vi gra should be used for effective developement. CONF IGURE _A RGS+= CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi thout-system-vigra --wi th-vendor="pkgsrc" --wi thout-doxygen CONF IGURE _A RGS+= --wi thout-junit CONF IGURE _A RGS+= --wi thout-krb5 CONF IGURE _A RGS+= CONF IGURE _A RGS+= --wi thout-gssapi --wi thout-system-apache-com mons CONF IGURE _A RGS+= --wi th-system-cppunit CONF IGURE _A RGS+= --wi thout-system-jf reereport # internal sane should be used for effective developement. CONF IGURE _A RGS+= --wi thout-system-sane CONF IGURE _A RGS+= --wi thout-system-servl et-api # m REP LA CE_PE RL are needed. ore REP LA CE _P E RL=sd/res/ webvi ew/ REP LA CE _P E RL+= sd/res/ webview/ REP LA CE _P E RL+= sd/res/ webview/savepic. pl REP LA CE _P E RL+= sd/res/ webview/ REP LA CE _P E RL+= sd/res/ webview/ LO_P ROGRA MS= sbase scalc sdraw simpress sm soffi ce swriter ath # Base depends on java, we don't i nst all t he icon LO_DES K T OP_F ILES = calc.desktop draw.desktop im press.desktop math.desktop st artcent er.desktop writer.desktop CONF IGURE _S CRIP T = ./ MAK E_ENV+= ROOT_USE R=${ROOT_USE R} MAK E_ENV+= ROOT_GROUP =${ROOT _GROUP } B UILD_M KE _F GS += VE RB OSE =yes A LA B UILD_T RGE T A = dev-install B UILDLINK _TRANSFORM rm -ldl += : INSTALLA T ION_DIRS = bin share/applicati ons post-extract : ${M DIR} -p ${WRK SRC}/src K .for md in ${M ORE_DIS T FILE S} ${LN} -s ${DIS T DIR}/${DIS T _SUB DIR}/${m ${WRK S RC}/src/${m d} d} .endfor mkdir ${WRKS RC}/tm p do-instal l: cd ${WRKS RC} && make install post-i nst all: .for f i n ${LO_P ROGRA M } S cd ${DE STDIR}${P RE F }/bin & & ${LN} -s ../${PK GNA M _NORE V }/program ${f} IX E / .endfor .for f i n ${LO_DE SK T OP_F ILES } cd ${DE STDIR}${P RE F }/share/applications & & ${LN} -s ${DES T IX DIR}${PREFIX }/${PK GNA M _NORE V}/share/ xdg/${f} E .endfor .include "../. ./convert ers/ libvisi o/buil dlink3. m k" .include "../. ./convert ers/ libwpd/" .include "../. ./convert ers/ libwpg/" .include "../. ./convert ers/ libwps/" .include "../. ./convert ers/ libmwaw/" .include "../. ./convert ers/ orcus/ bui ldl" .include "../. ./databases/ db4/buildlink3. m k" .include "../. ./databases/ openldap-cl ient/buildl" .include "../. ./databases/ shared-mime-info/buil" .include "../. ./databases/ uni xodbc/" .include "../. ./mk/pgsql.buildlink3. m k" .include "../. ./devel/boost-libs/buil dli nk3.m k" .include "../. ./devel/cppunit/ bui ldli" .include "../. ./devel/gperf /buildl" .include "../. ./devel/li bexeci nfo/" .include "../. ./devel/nss/buil" .include "../. ./devel/zlib/buil" .include "../. ./fonts/fontconfi g/buildlink3.m k" .include "../. ./fonts/harfbuzz/buildl" .include "../. ./mk/j peg.buildl" .include "../. ./graphics/cairo/buildl" .include "../. ./graphics/freetype2/buil dlink3. m k" .include "../. ./graphics/gdk-pixbuf2-xlib/ buil dlink3.m k" .include "../. ./graphics/lcm s2/buildlink3.m k" .include "../. ./graphics/librsvg/buil dli nk3.m k" .include "../. ./graphics/png/buil" #. incl ude ".. /../graphi cs/sane-backends/bui ldli" #. incl ude ".. /../graphi cs/vigra/buildlink3.m k" .include "../. ./lang/python/appli cat" .include "../. ./math/lp_solve/buildl" .include "../. ./mult im edia/gstream er0.10/bui ldli" .include "../. ./mult im edia/gst-pl ugi ns0.10-base/buildl" .include "../. ./mult im edia/gstream er1/buildli" .include "../. ./mult im edia/gst-pl ugi ns1-base/buildl" .include "../. ./print /cups/buil" .include "../. ./print /poppler-cpp/ bui ldl" .include "../. ./print /poppler-includes/buil dlink3. m k" .include "../. ./sysutils/deskt op-file-ut ils/" .include "../. ./textproc/expat /buildl" .include "../. ./textproc/hunspell /" .include "../. ./textproc/icu/buildlink3. m k" .include "../. ./textproc/libclucene/bui ldli nk3.m k" .include "../. ./textproc/libxml2/buil dli nk3.m k" .include "../. ./textproc/libxsl t/buildlink3. m k" .include "../. ./textproc/redland/buil dli nk3.m k" .include "../. ./textproc/libext textcat/" .include "../. ./textproc/m ythes/buil dli nk3.m k" .include "../. ./www/curl/buil" .include "../. ./www/neon/buildl" .include "../. ./x11/ gtk2/" .include "../. ./x11/ gtk3/" .include "../. ./x11/ libX 11/buildl" .include "../. ./x11/ libX cursor/buildlink3. m k" .include "../. ./x11/ libX ext/buildlink3. m k" .include "../. ./x11/ libX fixes/ bui ldli" .include "../. ./x11/ libX i/buildlink3. m k" .include "../. ./x11/ libX inerama/ bui ldl" .include "../. ./x11/ libX randr/ bui ldli" .include "../. ./x11/ libX render/buildlink3. m k" .include "../. ./x11/ libX t/buildlink3. m k" .include "../. ./mk/dlopen. bui ldli" .include "../. ./mk/pthread.buildl" .include "../. ./mk/" 7
  • 8. Abstruct of build process ● ● In Kanto region LibreOffice Offline Meeting #8, the following wiki page is shown. Basically my procedure is as same as it. I have decided to build LibreOffice from tarball of For pkgsrc, build from tarball is easiest. – – libreoffice-help- – ● libreoffice-dictionaries- – ● libreoffice- libreoffice-translations- Pkgsrc has packages for LibreOffice 3. I have not tested them yet, but I will use their Makefile for my LibreOffice 4 package (pkgsrc/misc/libreoffice、pkgsrcl/wip/libreoffice、pkgsrc/wip/libreoffice-devel)。 Develop under NetBSD/amd64 6.99.23 (aka current), and confirm other platforms 8
  • 9. Study on ● In short, generate configure from ● And pass its arguments to configure shell script ● ● pkgsrc Makefile should have following lines. HAS_CONFIGURE=yes CONFIGURE_SCRIPT=./ Configure is re-generated from every run of, so patch to configure is non-sense. 9
  • 10. Study on configure ● At first, run ./configure –help and investigate output of it. – Pkgsrc has GNU_CONFIGURE=yes option for configure script from GNU Autotools. But in this case, I have choose HAS_CONFIGURE=yes (because configure is not directly invoked) – Many and many LibreOffice specific options (--disable-odk etc.) Many and many --with-system-* options. With this option. We can choose internal/external libraries. ● Most important option for pkgsrc. --disable-fetch-external disable tarball downloading during build. For pkgsrc, all tarball should be downloaded previously. Look inside configure and ● ● – Some test clauses use == instead of =. This should be fixed for portability. 10
  • 11. First trial ● ● ● ● harfbuzz library is needed and it should be support icu. pkgsrc’s harfbuzz had not supported icu by default. I have changed pkgsrc’s default option for harfbuzz to enable icu by default. Side effect of disabling downloading. Run make build and I have gotten tarball lacking messages. I had fixed one by one. But it is very inefficient. It takes about 15 minutes for one fix. I have done grep -R not-found-tarball-name, I have found download.lst file, that is a list of tarball. 11
  • 12. First fix ● ● ● ● ● Convert download.lst to pkgsrc Makefile, and I have found some libraries are in pkgsrc, and set –with-system-*. Change prefix to /usr/pkg/libreoffice4- LibreOffice’s tarballs need BSD tar/GNU tar. NetBSD’s default tar (libarchive based one) is not sufficient. LibreOffice’s buid process needs GNU tar, and I have decided to use GNU tar for extract tarballs. I have written Java option conditional, but it has typo and Java option is always off... 12
  • 13. Second trials ● ● ● ● ● ● ● Some errors are fixed. is needed. Download from . Object files etc is created under /tmp. In pkgsrc way, all working files should be located under ${WRKDIR}. So I have defined CONFIGURE_ENV+=TMPDIR=$ {WRKSRC}/tmp (WRKSRC is subdirectory of WRKDIR) Some libraries need the patches for NetBSD build. Such libraries are set –withsystem-* and built outside of LibreOffice build. (Now I know patching procedure for internal libraries) It seems that some functionalities are not useful for non official build (--disablecrashdump) or I cannot fix the error (--disable-gio). According to Arch Linux’s PKGBUILD, for sane and vigra, only include file is needed. So I convert these libraries to internal. Doxygen is also disabled explicitly. 13
  • 14. Errors and patches ● Build progress, but ● There are some errors. These errors are fixed with patches. – – ● rsc (resource compiler?) command dislike -pthread option that is derived from CFLAGS. Remove CFLAGS from rsc commandline patches/ When installing some files, install command specifies user/group = root/root. For unprivileged build, use user’s UID/GID instead. patches/ (NetBSD build use Slackware makefile) Some libraries cannot build without patches, These libraries are convert to – with-system-*. 14
  • 15. First successful build ● ● ● Non-Java and non language pack version of LibreOffice is build successfully. Pkgsrc has PLIST file that lists all installed files. I have created it. Windows size is odd, but it seems that each LinreOffice applications work properly. 15
  • 16. For second successful build ● ● ● ● ● Java support conditional in pkgsrc Makefile is fixed. It is pasto. LibreOffice 4 needs hsqldb 1.8.x, but 1.8.x is not built with OpenJDK7. And pkgsrc has only OpenJDK7, no OpenJDK6. LibreOffice 4 requires hsqldb.jar only, hsqljdbc.jar or other libraries are not required. So I have decided to use official distribution of 1.8.x of hsqldb. 185d60944ea767075d27247c3162b3bc-unowinreg.dll is needed even under NetBSD. Download from . (Yuji Yamano found that this file can be empty file under Unix like OSes, thank you) With Java support, it takes about 5 hours to build LibreOffice (Machine spec: Intel Core i5 4-core 1.7GHz, RAM 4GB, SSD storage) 16
  • 17. Third successful build ● Language packs are not built yet. ● I have decided to build ALL language packs. ● Change –with-lang=”” to –with-lang=”ALL” only ● It takes 9 hours to build on my machine. ● LibreOffice detects locale and change its user interface language. 17
  • 18. Assignments 1/2 ● ● ● LibreOffice’s binaries does not have sane RPATH. I use pkgsrc as developer mode (PKG_DEVELOPER=yes), and pkgsrec framework detects invalid RPATH and I have gotten the errors. → It seems very heavy problem. I have set CHECK_SHLIBS_SUPPORTED=no and disable binary RPATH checks by pkgsrc. LibreOffice has its own CPU number detection mechanism for its build. Pkgsrc also has parallel build mechanism. They conflict each other. I have decided to disable pkgsrc’s machanism. To reduce build time, use more external libraries. 18
  • 19. Assignment 2/2 ● ● ● I want to build under DragonFly, FreeBSD, OpenBSD with pkgsrc, but many packages from pkgsrc are broken. I will fix them. → My primary target is DragonFly/i386 3.4.3 Under NetBSD 5.2.*, there are many SIGSEGV crash in The conbination of boost library, gcc, and libvcllo is bad. I cannot find the solution yet. I have found some Microsoft PowerPoint files cause freeze. These files are confidential, and how to report this bug... 19
  • 20. License of this document ● This article is licensed under CC-BY 3.0 Unported. See 20
  • 21. Fin. 21