SlideShare una empresa de Scribd logo
1 de 21
LibreOffice 4 under NetBSD
(with pkgsrc)

Ryo ONODERA
<ryoon@NetBSD.org>
2013-11-18
Kanto Region LibreOffice Offline Meeting#10
Who am I?
●

Name: Ryo ONODERA

●

E-mail: ryo_on@yk.rim.or.jp / ryoon@NetBSD.org

●

Twitter: @ryo_on

●

pkgsrc developer since 2010

●

●

Working on LibreOffice under NetBSD for pkgsrc since
2013-09-15
http://pkgsrc.se/bbmaint.php?maint=ryoon@NetBSD.org
shows my maintainerships of pkgsrc packages
2
Abstract
●

●

●

●

Successfully built LibreOffice 4.1.1.2 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 4.1.3.2 in its tree

3
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
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
Typical pkgsrc files
●

cat Makefile

●

DISTNAME=

●

CATEGORIES=

●

MASTER_SITES=

${MASTER_SITE_XORG:=app/}

●

EXTRACT_SUFX=

.tar.bz2

●

xauth-1.0.8

●

x11

MAINTAINER=

joerg@NetBSD.org

●

HOMEPAGE=

●

http://xorg.freedesktop.org/

●

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/buildlink3.mk"

●

.include "../../x11/libXmu/buildlink3.mk"

●

.include "../../mk/bsd.pkg.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
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. documentfoundation.org/l ibreoffice/src/4.1.3/
E
E XT CT_S UFX= . tar.xz
RA
MAINT INER= ryoon@NetB SD.org
A
HOMEP AGE = http: //www.li breoffice.org/
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/bsd.prefs.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 
35c94d2df8893241173de1d16b6034c0-swingExSrc.zip 
35efabc239af896dfb79be7ebdd6e6b9-gent iumbasic-fonts-1.10.zip 
39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip 
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 
798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip 
7a15edea7d415ac5150ea403e27401fd-open-sans-font -ttf-1.10.tar.gz 
8ce2f cd72becf 06c41f7201d15373ed9-l ibrepository-1.1.6.zip 
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. 2.zip 
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 
ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip 
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 ineG-20120116.zip 
ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz 
eeb2c7ddf0d302f ba4bfc6e97eac9624-l ibbase-1.1.6. zip 
f872f4ac066433d8ff92f5e316b36f f9-dej avu-fonts-ttf-2.33.zip 
f94d9870737518e3b597f9265f 4e9803-l ibserializer-1.1. 6.zip 
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 ice.org/src/

.endfor
DISTF
ILES +=e7a384790b13c29113e22e596ade9687-LinLiberti neG-20120116. zip
S IT S.e7a384790b13c29113e22e596ade9687-LinLiberti neG-20120116. zip=htt p:// www. num
E
bertext.org/ linux/
DISTF
ILES +=185d60944ea767075d27247c3162b3bc-unowi nreg.dll
S IT S.185d60944ea767075d27247c3162b3bc-unowi nreg.dl l=http: //download.go-oo.org/ extern/
E
.include "options. m
k"
.include "../. ./mk/bsd.prefs.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 l.com
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/editpic.pl
REP LA CE _P E RL+= sd/res/ webview/poll.pl
REP LA CE _P E RL+= sd/res/ webview/savepic. pl
REP LA CE _P E RL+= sd/res/ webview/show.pl
REP LA CE _P E RL+= sd/res/ webview/webview.pl
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
=

./autogen.sh

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/buildlink3.mk"
.include "../. ./convert ers/ libwpg/buildlink3.mk"
.include "../. ./convert ers/ libwps/buildlink3.mk"
.include "../. ./convert ers/ libmwaw/buildlink3.mk"
.include "../. ./convert ers/ orcus/ bui ldl ink3.mk"
.include "../. ./databases/ db4/buildlink3. m
k"
.include "../. ./databases/ openldap-cl ient/buildl ink3.mk"
.include "../. ./databases/ shared-mime-info/buil dlink3.mk"
.include "../. ./databases/ uni xodbc/buildlink3.mk"
.include "../. ./mk/pgsql.buildlink3. m
k"
.include "../. ./devel/boost-libs/buil dli nk3.m
k"
.include "../. ./devel/cppunit/ bui ldli nk3.mk"
.include "../. ./devel/gperf /buildl ink3.mk"
.include "../. ./devel/li bexeci nfo/buildlink3.mk"
.include "../. ./devel/nss/buil dlink3.mk"
.include "../. ./devel/zlib/buil dlink3.mk"
.include "../. ./fonts/fontconfi g/buildlink3.m
k"
.include "../. ./fonts/harfbuzz/buildl ink3.mk"
.include "../. ./mk/j peg.buildl ink3.mk"
.include "../. ./graphics/cairo/buildl ink3.mk"
.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 dlink3.mk"
#. incl ude ".. /../graphi cs/sane-backends/bui ldli nk3.mk"
#. incl ude ".. /../graphi cs/vigra/buildlink3.m
k"
.include "../. ./lang/python/appli cat ion.mk"
.include "../. ./math/lp_solve/buildl ink3.mk"
.include "../. ./mult im
edia/gstream
er0.10/bui ldli nk3.mk"
.include "../. ./mult im
edia/gst-pl ugi ns0.10-base/buildl ink3.mk"
.include "../. ./mult im
edia/gstream
er1/buildli nk3.mk"
.include "../. ./mult im
edia/gst-pl ugi ns1-base/buildl ink3.mk"
.include "../. ./print /cups/buil dlink3.mk"
.include "../. ./print /poppler-cpp/ bui ldl ink3.mk"
.include "../. ./print /poppler-includes/buil dlink3. m
k"
.include "../. ./sysutils/deskt op-file-ut ils/ desktopdb.mk"
.include "../. ./textproc/expat /buildl ink3.mk"
.include "../. ./textproc/hunspell /buildlink3.mk"
.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/buildlink3.mk"
.include "../. ./textproc/m
ythes/buil dli nk3.m
k"
.include "../. ./www/curl/buil dlink3.mk"
.include "../. ./www/neon/buildl ink3.mk"
.include "../. ./x11/ gtk2/buildlink3.mk"
.include "../. ./x11/ gtk3/buildlink3.mk"
.include "../. ./x11/ libX 11/buildl ink3.mk"
.include "../. ./x11/ libX cursor/buildlink3. m
k"
.include "../. ./x11/ libX ext/buildlink3. m
k"
.include "../. ./x11/ libX fixes/ bui ldli nk3.mk"
.include "../. ./x11/ libX i/buildlink3. m
k"
.include "../. ./x11/ libX inerama/ bui ldl ink3.mk"
.include "../. ./x11/ libX randr/ bui ldli nk3.mk"
.include "../. ./x11/ libX render/buildlink3. m
k"
.include "../. ./x11/ libX t/buildlink3. m
k"
.include "../. ./mk/dlopen. bui ldli nk3.mk"
.include "../. ./mk/pthread.buildl ink3.mk"
.include "../. ./mk/bsd.pkg.mk"

7
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.
https://wiki.documentfoundation.org/Development/BuildingOnLinux
I have decided to build LibreOffice from tarball of 4.1.1.2. For pkgsrc, build from
tarball is easiest.
–
–

libreoffice-help-4.1.1.2.tar.xz

–

●

libreoffice-dictionaries-4.1.1.2.tar.xz

–

●

libreoffice-4.1.1.2.tar.xz

libreoffice-translations-4.1.1.2.tar.xz

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
Study on autogen.sh
●

In short, generate configure from configure.ac

●

And pass its arguments to configure shell script

●

●

pkgsrc Makefile should have following lines.
HAS_CONFIGURE=yes
CONFIGURE_SCRIPT=./autogen.sh
Configure is re-generated from configure.ac every run of
autogen.sh, so patch to configure is non-sense.

9
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 configure.ac
●

●

–

Some test clauses use == instead of =. This should be fixed for portability.

10
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
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-4.1.1.2
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
Second trials
●

●

●

●

●

●

●

Some errors are fixed.
e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip is needed.
Download from http://www.numbertext.org/linux/ .
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
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/patchsolenv_gbuild_AllLangResTarget.mk
When installing some files, install command specifies user/group = root/root.
For unprivileged build, use user’s UID/GID instead. patches/patchsysui_CustomTarget__slackware.mk (NetBSD build use Slackware makefile)

Some libraries cannot build without patches, These libraries are convert to –
with-system-*.

14
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
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 http://download.go-oo.org/extern/ . (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
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
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
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
libvcllo.so. 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
License of this document
●

This article is licensed under CC-BY 3.0 Unported. See
http://creativecommons.org/licenses/by/3.0/deed.en_US

20
Fin.

21

Más contenido relacionado

La actualidad más candente

Controle de versão com git
Controle de versão com gitControle de versão com git
Controle de versão com gitRenato Oliveira
 
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...Codemotion
 
Python introduction
Python introductionPython introduction
Python introductionScyko Ygreko
 
Profile all the things! - Capital Go 2017
 Profile all the things! - Capital Go 2017 Profile all the things! - Capital Go 2017
Profile all the things! - Capital Go 2017John Potocny
 
Rust + python: lessons learnt from building a toy filesystem
Rust + python: lessons learnt from building a toy filesystemRust + python: lessons learnt from building a toy filesystem
Rust + python: lessons learnt from building a toy filesystemChengHui Weng
 
Open Source Activities in Hong Kong
Open Source Activities in Hong KongOpen Source Activities in Hong Kong
Open Source Activities in Hong KongSammy Fung
 

La actualidad más candente (7)

Controle de versão com git
Controle de versão com gitControle de versão com git
Controle de versão com git
 
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
Docker and .NET Core - Best Friends Forever - Michael Newton - Codemotion Rom...
 
Python introduction
Python introductionPython introduction
Python introduction
 
Besut Kode - Workshop 1
Besut Kode - Workshop 1Besut Kode - Workshop 1
Besut Kode - Workshop 1
 
Profile all the things! - Capital Go 2017
 Profile all the things! - Capital Go 2017 Profile all the things! - Capital Go 2017
Profile all the things! - Capital Go 2017
 
Rust + python: lessons learnt from building a toy filesystem
Rust + python: lessons learnt from building a toy filesystemRust + python: lessons learnt from building a toy filesystem
Rust + python: lessons learnt from building a toy filesystem
 
Open Source Activities in Hong Kong
Open Source Activities in Hong KongOpen Source Activities in Hong Kong
Open Source Activities in Hong Kong
 

Similar a LibreOffice 4 under NetBSD with pkgsrc (en)

Noah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku SecretsNoah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku SecretsHeroku
 
Keynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics StudiesKeynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics StudiesESEM 2014
 
Performance Wins with BPF: Getting Started
Performance Wins with BPF: Getting StartedPerformance Wins with BPF: Getting Started
Performance Wins with BPF: Getting StartedBrendan Gregg
 
Learning the command line
Learning the command lineLearning the command line
Learning the command lineAdrian Cardenas
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsSander van der Burg
 
Piwik elasticsearch kibana at OSC Tokyo 2016 Spring
Piwik elasticsearch kibana at OSC Tokyo 2016 SpringPiwik elasticsearch kibana at OSC Tokyo 2016 Spring
Piwik elasticsearch kibana at OSC Tokyo 2016 SpringTakashi Yamamoto
 
The bytecode hocus pocus - JavaOne 2016
The bytecode hocus pocus - JavaOne 2016The bytecode hocus pocus - JavaOne 2016
The bytecode hocus pocus - JavaOne 2016Raimon Ràfols
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to androidOwen Hsu
 
Debugging Hung Python Processes With GDB
Debugging Hung Python Processes With GDBDebugging Hung Python Processes With GDB
Debugging Hung Python Processes With GDBbmbouter
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaTony Fabeen
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scriptingTony Fabeen
 
Version Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopVersion Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopAll Things Open
 
Network Adapter Deep dive
Network Adapter Deep diveNetwork Adapter Deep dive
Network Adapter Deep diveNaoto MATSUMOTO
 
Pypy is-it-ready-for-production-the-sequel
Pypy is-it-ready-for-production-the-sequelPypy is-it-ready-for-production-the-sequel
Pypy is-it-ready-for-production-the-sequelMark Rees
 
Improving go-git performance
Improving go-git performanceImproving go-git performance
Improving go-git performancesource{d}
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionFabio Kung
 
Linux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudLinux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudAndrea Righi
 

Similar a LibreOffice 4 under NetBSD with pkgsrc (en) (20)

Noah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku SecretsNoah Zoschke at Waza 2013: Heroku Secrets
Noah Zoschke at Waza 2013: Heroku Secrets
 
Get Serverless
Get ServerlessGet Serverless
Get Serverless
 
Keynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics StudiesKeynote 1 - Engineering Software Analytics Studies
Keynote 1 - Engineering Software Analytics Studies
 
Performance Wins with BPF: Getting Started
Performance Wins with BPF: Getting StartedPerformance Wins with BPF: Getting Started
Performance Wins with BPF: Getting Started
 
Learning the command line
Learning the command lineLearning the command line
Learning the command line
 
Using Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutionsUsing Nix and Docker as automated deployment solutions
Using Nix and Docker as automated deployment solutions
 
Piwik elasticsearch kibana at OSC Tokyo 2016 Spring
Piwik elasticsearch kibana at OSC Tokyo 2016 SpringPiwik elasticsearch kibana at OSC Tokyo 2016 Spring
Piwik elasticsearch kibana at OSC Tokyo 2016 Spring
 
The bytecode hocus pocus - JavaOne 2016
The bytecode hocus pocus - JavaOne 2016The bytecode hocus pocus - JavaOne 2016
The bytecode hocus pocus - JavaOne 2016
 
Happy porting x86 application to android
Happy porting x86 application to androidHappy porting x86 application to android
Happy porting x86 application to android
 
Debugging Hung Python Processes With GDB
Debugging Hung Python Processes With GDBDebugging Hung Python Processes With GDB
Debugging Hung Python Processes With GDB
 
Nginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with LuaNginx Scripting - Extending Nginx Functionalities with Lua
Nginx Scripting - Extending Nginx Functionalities with Lua
 
Devinsampa nginx-scripting
Devinsampa nginx-scriptingDevinsampa nginx-scripting
Devinsampa nginx-scripting
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
 
Puppet Data Mining
Puppet Data MiningPuppet Data Mining
Puppet Data Mining
 
Version Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopVersion Control and Git - GitHub Workshop
Version Control and Git - GitHub Workshop
 
Network Adapter Deep dive
Network Adapter Deep diveNetwork Adapter Deep dive
Network Adapter Deep dive
 
Pypy is-it-ready-for-production-the-sequel
Pypy is-it-ready-for-production-the-sequelPypy is-it-ready-for-production-the-sequel
Pypy is-it-ready-for-production-the-sequel
 
Improving go-git performance
Improving go-git performanceImproving go-git performance
Improving go-git performance
 
Ruby and Rails Packaging to Production
Ruby and Rails Packaging to ProductionRuby and Rails Packaging to Production
Ruby and Rails Packaging to Production
 
Linux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloudLinux kernel tracing superpowers in the cloud
Linux kernel tracing superpowers in the cloud
 

Más de 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
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題Ryo ONODERA
 
pkgsrcユーザー向け設定
pkgsrcユーザー向け設定pkgsrcユーザー向け設定
pkgsrcユーザー向け設定Ryo 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
 
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoonRyo 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
 

Más de Ryo ONODERA (9)

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
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題
 
pkgsrcユーザー向け設定
pkgsrcユーザー向け設定pkgsrcユーザー向け設定
pkgsrcユーザー向け設定
 
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
 
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon
 
LibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrcLibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrc
 

Último

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 

Último (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate AgentsRyan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
Ryan Mahoney - Will Artificial Intelligence Replace Real Estate Agents
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 

LibreOffice 4 under NetBSD with pkgsrc (en)

  • 1. LibreOffice 4 under NetBSD (with pkgsrc) Ryo ONODERA <ryoon@NetBSD.org> 2013-11-18 Kanto Region LibreOffice Offline Meeting#10
  • 2. Who am I? ● Name: Ryo ONODERA ● E-mail: ryo_on@yk.rim.or.jp / ryoon@NetBSD.org ● Twitter: @ryo_on ● pkgsrc developer since 2010 ● ● Working on LibreOffice under NetBSD for pkgsrc since 2013-09-15 http://pkgsrc.se/bbmaint.php?maint=ryoon@NetBSD.org shows my maintainerships of pkgsrc packages 2
  • 3. Abstract ● ● ● ● Successfully built LibreOffice 4.1.1.2 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 4.1.3.2 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= joerg@NetBSD.org ● HOMEPAGE= ● http://xorg.freedesktop.org/ ● 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/buildlink3.mk" ● .include "../../x11/libXmu/buildlink3.mk" ● .include "../../mk/bsd.pkg.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. documentfoundation.org/l ibreoffice/src/4.1.3/ E E XT CT_S UFX= . tar.xz RA MAINT INER= ryoon@NetB SD.org A HOMEP AGE = http: //www.li breoffice.org/ 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/bsd.prefs.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 35c94d2df8893241173de1d16b6034c0-swingExSrc.zip 35efabc239af896dfb79be7ebdd6e6b9-gent iumbasic-fonts-1.10.zip 39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip 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 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip 7a15edea7d415ac5150ea403e27401fd-open-sans-font -ttf-1.10.tar.gz 8ce2f cd72becf 06c41f7201d15373ed9-l ibrepository-1.1.6.zip 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. 2.zip 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 ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip 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 ineG-20120116.zip ea570af93c284aa9e5621cd563f54f4d-bsh-2.0b1-src.tar.gz eeb2c7ddf0d302f ba4bfc6e97eac9624-l ibbase-1.1.6. zip f872f4ac066433d8ff92f5e316b36f f9-dej avu-fonts-ttf-2.33.zip f94d9870737518e3b597f9265f 4e9803-l ibserializer-1.1. 6.zip 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 ice.org/src/ .endfor DISTF ILES +=e7a384790b13c29113e22e596ade9687-LinLiberti neG-20120116. zip S IT S.e7a384790b13c29113e22e596ade9687-LinLiberti neG-20120116. zip=htt p:// www. num E bertext.org/ linux/ DISTF ILES +=185d60944ea767075d27247c3162b3bc-unowi nreg.dll S IT S.185d60944ea767075d27247c3162b3bc-unowi nreg.dl l=http: //download.go-oo.org/ extern/ E .include "options. m k" .include "../. ./mk/bsd.prefs.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 l.com 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/editpic.pl REP LA CE _P E RL+= sd/res/ webview/poll.pl REP LA CE _P E RL+= sd/res/ webview/savepic. pl REP LA CE _P E RL+= sd/res/ webview/show.pl REP LA CE _P E RL+= sd/res/ webview/webview.pl 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 = ./autogen.sh 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/buildlink3.mk" .include "../. ./convert ers/ libwpg/buildlink3.mk" .include "../. ./convert ers/ libwps/buildlink3.mk" .include "../. ./convert ers/ libmwaw/buildlink3.mk" .include "../. ./convert ers/ orcus/ bui ldl ink3.mk" .include "../. ./databases/ db4/buildlink3. m k" .include "../. ./databases/ openldap-cl ient/buildl ink3.mk" .include "../. ./databases/ shared-mime-info/buil dlink3.mk" .include "../. ./databases/ uni xodbc/buildlink3.mk" .include "../. ./mk/pgsql.buildlink3. m k" .include "../. ./devel/boost-libs/buil dli nk3.m k" .include "../. ./devel/cppunit/ bui ldli nk3.mk" .include "../. ./devel/gperf /buildl ink3.mk" .include "../. ./devel/li bexeci nfo/buildlink3.mk" .include "../. ./devel/nss/buil dlink3.mk" .include "../. ./devel/zlib/buil dlink3.mk" .include "../. ./fonts/fontconfi g/buildlink3.m k" .include "../. ./fonts/harfbuzz/buildl ink3.mk" .include "../. ./mk/j peg.buildl ink3.mk" .include "../. ./graphics/cairo/buildl ink3.mk" .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 dlink3.mk" #. incl ude ".. /../graphi cs/sane-backends/bui ldli nk3.mk" #. incl ude ".. /../graphi cs/vigra/buildlink3.m k" .include "../. ./lang/python/appli cat ion.mk" .include "../. ./math/lp_solve/buildl ink3.mk" .include "../. ./mult im edia/gstream er0.10/bui ldli nk3.mk" .include "../. ./mult im edia/gst-pl ugi ns0.10-base/buildl ink3.mk" .include "../. ./mult im edia/gstream er1/buildli nk3.mk" .include "../. ./mult im edia/gst-pl ugi ns1-base/buildl ink3.mk" .include "../. ./print /cups/buil dlink3.mk" .include "../. ./print /poppler-cpp/ bui ldl ink3.mk" .include "../. ./print /poppler-includes/buil dlink3. m k" .include "../. ./sysutils/deskt op-file-ut ils/ desktopdb.mk" .include "../. ./textproc/expat /buildl ink3.mk" .include "../. ./textproc/hunspell /buildlink3.mk" .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/buildlink3.mk" .include "../. ./textproc/m ythes/buil dli nk3.m k" .include "../. ./www/curl/buil dlink3.mk" .include "../. ./www/neon/buildl ink3.mk" .include "../. ./x11/ gtk2/buildlink3.mk" .include "../. ./x11/ gtk3/buildlink3.mk" .include "../. ./x11/ libX 11/buildl ink3.mk" .include "../. ./x11/ libX cursor/buildlink3. m k" .include "../. ./x11/ libX ext/buildlink3. m k" .include "../. ./x11/ libX fixes/ bui ldli nk3.mk" .include "../. ./x11/ libX i/buildlink3. m k" .include "../. ./x11/ libX inerama/ bui ldl ink3.mk" .include "../. ./x11/ libX randr/ bui ldli nk3.mk" .include "../. ./x11/ libX render/buildlink3. m k" .include "../. ./x11/ libX t/buildlink3. m k" .include "../. ./mk/dlopen. bui ldli nk3.mk" .include "../. ./mk/pthread.buildl ink3.mk" .include "../. ./mk/bsd.pkg.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. https://wiki.documentfoundation.org/Development/BuildingOnLinux I have decided to build LibreOffice from tarball of 4.1.1.2. For pkgsrc, build from tarball is easiest. – – libreoffice-help-4.1.1.2.tar.xz – ● libreoffice-dictionaries-4.1.1.2.tar.xz – ● libreoffice-4.1.1.2.tar.xz libreoffice-translations-4.1.1.2.tar.xz 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 autogen.sh ● In short, generate configure from configure.ac ● And pass its arguments to configure shell script ● ● pkgsrc Makefile should have following lines. HAS_CONFIGURE=yes CONFIGURE_SCRIPT=./autogen.sh Configure is re-generated from configure.ac every run of autogen.sh, 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 configure.ac ● ● – 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-4.1.1.2 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. e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip is needed. Download from http://www.numbertext.org/linux/ . 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/patchsolenv_gbuild_AllLangResTarget.mk When installing some files, install command specifies user/group = root/root. For unprivileged build, use user’s UID/GID instead. patches/patchsysui_CustomTarget__slackware.mk (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 http://download.go-oo.org/extern/ . (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 libvcllo.so. 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 http://creativecommons.org/licenses/by/3.0/deed.en_US 20