LibreOffice 4 under NetBSD with pkgsrc (en)


Published on

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

No notes for slide

LibreOffice 4 under NetBSD with pkgsrc (en)

  1. 1. LibreOffice 4 under NetBSD (with pkgsrc) Ryo ONODERA <> 2013-11-18 Kanto Region LibreOffice Offline Meeting#10
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 20. License of this document ● This article is licensed under CC-BY 3.0 Unported. See 20
  21. 21. Fin. 21