# $Id$
# Maintainer: Qurban Ullah <qurbanullah@avouch.org>
# Contributor: Qurban Ullah <qurbanullah@avouch.org>

pkgbase=libreoffice
pkgname=('libreoffice-sdk' 'libreoffice')
_LOver=5.2.1.2
pkgver=5.2.1
pkgrel=1
arch=('i686' 'x86_64')
license=('LGPL3')
url="http://www.libreoffice.org/"
makedepends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.5' 'libwpd>=0.9.2' 'libwps'
	'neon>=0.28.6' 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib'
	'libxslt' 'redland' 'icu' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'graphite'
	'lcms2' 'poppler>=0.24.0' 'libvisio' 'libetonyek' 'libodfgen' 'libcdr'
	'libmspub' 'harfbuzz-icu' 'glew' 'nss' 'clucene' 'hicolor-icon-theme'
	'desktop-file-utils' 'shared-mime-info' 'gtk2' 'xdg-utils' 'gst-plugins-base-libs'
	'glu' 'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'apache-ant'
	'gperf' 'kdelibs' 'gtk3' 'cppunit' 'beanshell2' 'vigra' 'clucene'
	'junit' 'libmythes' 'libwpg'  'mesa' 'java-environment' 'postgresql-libs'
	'bluez-libs' 'harfbuzz-icu' 'gdb' 'doxygen'  'libatomic_ops' 'mdds' 'glew'
	'apr' 'serf' 'ttf-liberation' 'glm' 'libxinerama' 'libpagemaker'
	'libabw' 'libmwaw' 'libe-book' 'coin-or-mp' 'liborcus' 'liblangtag'
	'libexttextcat' 'libfbclient' 'libcmis')

_mirror="http://download.documentfoundation.org/libreoffice/src/${pkgver}"
#_mirror="http://dev-builds.libreoffice.org/pre-releases/src"
_additional_source_url="http://dev-www.libreoffice.org/src"
_additional_source_url2="http://dev-www.libreoffice.org/extern"
source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc}
	${_additional_source_url}/boost_1_60_0.tar.bz2
	${_additional_source_url}/ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz
	${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
	${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
	${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
	${_additional_source_url}/commons-logging-1.2-src.tar.gz
	${_additional_source_url}/8ab049135b2d15313da5d9f0656894a1-commons-lang3-3.3.1-src.tar.gz
	${_additional_source_url}/2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
	${_additional_source_url}/048751f3271906db5126ab76870444c4-commons-codec-1.9-src.zip
	${_additional_source_url}/eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
	${_additional_source_url}/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
	${_additional_source_url}/3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
	${_additional_source_url}/97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
	${_additional_source_url}/f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
	${_additional_source_url}/8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
	${_additional_source_url}/3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
	${_additional_source_url}/ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
	${_additional_source_url}/db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
	${_additional_source_url}/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
	${_additional_source_url}/language-subtag-registry-2015-08-04.tar.bz2
	${_additional_source_url}/4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2
	${_additional_source_url}/OpenCOLLADA-master-6509aa13af.tar.bz2
	${_additional_source_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
	${_additional_source_url}/libgltf/libgltf-0.0.2.tar.bz2
	${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
	${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
	${_additional_source_url}/libfreehand-0.1.1.tar.bz2
	${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll
	make-pyuno-work-with-system-wide-module-install.diff
	libreoffice-fresh.sh libreoffice-fresh.csh
	remove_unnecessary_orcus_external_usage_from_makefiles.diff)
	
noextract=(0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
0279a21fab6f245e85a6f85fea54f511-source-code-font-1.009.tar.gz
048751f3271906db5126ab76870444c4-commons-codec-1.9-src.zip
10d61fbaa6a06348823651b1bd7940fe-libexttextcat-3.4.4.tar.bz2
134d8262145fc793c6af494dcace3e71-liberation-fonts-ttf-1.07.4.tar.gz
17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
185d60944ea767075d27247c3162b3bc-unowinreg.dll
1e9ddfe25ac9577da709d7b2ea36f939-source-sans-font-1.036.tar.gz
ce12af00283eb90d9281956524250d6e-xmlsec1-1.2.20.tar.gz
22f8a85daf4a012180322e1f52a7563b-libcmis-0.4.1.tar.gz
26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz
2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
2e482c7567908d334785ce7d69ddfff7-commons-codec-1.6-src.tar.gz
3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip
36271d3fa0d9dec1632029b6d7aac925-liblangtag-0.5.1.tar.bz2
368f114c078f94214a308a74c7e991bc-crosextrafonts-20130214.tar.gz
3941e9cab2f4f9d8faee3e8d57ae7664-glew-1.12.0.zip
39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
46e92b68e31e858512b680b3b61dc4c1-mythes-1.2.3.tar.gz
48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz
33d370f7fe5a030985e445a5672b2067-hunspell-1.4.1.tar.gz
4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2
5821b806a98e6c38370970e682ce76e8-libcmis-0.5.0.tar.gz
594eb47b4b1210e25438d51825404d5a-glew-1.10.0.zip
5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz
5c781723a0d9ed6188960defba8e91cf-liberation-fonts-ttf-2.00.1.tar.gz
625ff5f2f968dd908bca43c9469d6e6b-commons-lang-2.4-src.tar.gz
798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
7a15edea7d415ac5150ea403e27401fd-open-sans-font-ttf-1.10.tar.gz
8ab049135b2d15313da5d9f0656894a1-commons-lang3-3.3.1-src.tar.gz
8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
a2f6010987e1c601274ab5d63b72c944-hyphen-2.8.4.tar.gz
a4e565e220b5de082c23995e256e3c12-dejavu-fonts-ttf-2.34.zip
a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
a8c2c5b8f09e7ede322d5c602ff6a4b6-mythes-1.2.4.tar.gz
ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
ae330b9493bd4503ac390106ff6060d7-libexttextcat-3.4.3.tar.bz2
b2371dc7cf4811c9d32146eec913d296-libcmis-0.3.0.tar.gz
ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip
c3c1a8ba7452950636e871d25020ce0d-pt-serif-font-1.0000W.tar.gz
c74b7223abe75949b4af367942d96c7a-crosextrafonts-carlito-20130920.tar.gz
d62650a6f908e85643e557a236ea989c-vigra1.6.0.tar.gz
d8b5214d35bcd2bfcb2cffa7795b351d-dejavu-fonts-ttf-2.35.zip
d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
e7a384790b13c29113e22e596ade9687-LinLibertineG-20120116.zip
e8e197d628436490886d17cffa108fe3-commons-logging-1.1.3-src.tar.gz
beeca87be45ec87d241ddd0e1bad80c1-bsh-2.0b6-src.zip
edc4d741888bc0d38e32dbaa17149596-source-sans-pro-2.010R-ro-1.065R-it.tar.gz
eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
boost_1_60_0.tar.bz2
CoinMP-1.7.6.tgz
commons-logging-1.2-src.tar.gz
Firebird-2.5.4.26856-0.tar.bz2
language-subtag-registry-2015-08-04.tar.bz2
mdds-1.2.0.tar.bz2
libfreehand-0.1.1.tar.bz2
libgltf-0.0.2.tar.bz2
libetonyek-0.1.6.tar.bz2
liborcus-0.11.2.tar.gz
libpagemaker-0.0.3.tar.bz2
libreoffice-dictionaries-5.2.1.2.tar.xz
libreoffice-help-5.2.1.2.tar.xz
libreoffice-translations-2.1.2.tar.xz
OpenCOLLADA-master-6509aa13af.tar.bz2
)

# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Avouch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact qurbanullah@avouch.org for
# more information.
_google_default_client_id=1062054956701.apps.googleusercontent.com
_google_default_client_secret=vNghxOz1TWXC7uE9-p4uTUPk

prepare() {

cd ${srcdir}/${pkgbase}-${_LOver}

# move external sources into place
	mkdir ${srcdir}/ext_sources
	pushd ${srcdir}/ext_sources
		for source in "${noextract[@]}"; do
			ln -s ${srcarchivedir}/$source .
		done
	popd

	# unowinreg.dll must be a file not a symlink or the result will become a broken symlink
	# /usr/share/libreoffice/sdk/classes/win/unowinreg.dll -> /build/libreoffice/src/185d60944ea767075d27247c3162b3bc-unowinreg.dll
	rm ${srcdir}/ext_sources/185d60944ea767075d27247c3162b3bc-unowinreg.dll
	cp -f ${srcarchivedir}/185d60944ea767075d27247c3162b3bc-unowinreg.dll ${srcdir}/ext_sources
	
	# fix not upstreamable pyuno paths - patch taken from Debian
	patch -Np1 -i ${srcdir}/make-pyuno-work-with-system-wide-module-install.diff

# i686 build broken
[ "$CARCH" = "i686" ] && sed -i '/CppunitTest_sw_ooxmlimport/d' sw/Module_sw.mk
[ "$CARCH" = "i686" ] && sed -i '/CppunitTest_sw_ooxmlexport7/d' sw/Module_sw.mk
[ "$CARCH" = "i686" ] && sed -i '/CppunitTest_basic_scanner/d' basic/Module_basic.mk

sed -i '/CppunitTest_sw_ooxmlimport/d' sw/Module_sw.mk
sed -i '/CppunitTest_sw_ooxmlexport7/d' sw/Module_sw.mk
sed -i '/CppunitTest_basic_scanner/d' basic/Module_basic.mk
	
sed -e "/gzip -f/d"   \
-e "s|.1.gz|.1|g" \
-i bin/distro-install-desktop-integration

#sed -e "/distro-install-file-lists/d" -i Makefile.in

#sed -e "/ustrbuf/a #include <algorithm>" \
#-i svl/source/misc/gridprinter.cxx 

# qt4 fix
sed -i "s:qmake:qmake-qt4:g" configure.ac

#sed -i "s:mdds >= 0.12.0:mdds-1.0 >= 0.12.0:g" configure.ac

# fix permission error
#chmod -v +x bin/unpack-sources

	# fix checking whether KDE is >= 4.2... configure: error: KDE version too old
	# http://bugs.debian.org/823145
	#patch -Np1 -i ${srcdir}/gcc6_buildfix.diff

}

build() {

# strip -s from Makeflags in case you use it to shorten build logs
_MAKEFLAGS=${MAKEFLAGS/-s/}

#export CXXFLAGS="$CXXFLAGS -fno-lifetime-dse"

cd ${srcdir}/${pkgbase}-${_LOver}
./autogen.sh --prefix=/usr \
--exec-prefix=/usr \
--sysconfdir=/etc \
--libdir=/usr/lib \
--mandir=/usr/share/man \
--with-build-version="${_LOver} Avouch Linux build-${pkgrel}" \
--with-vendor="Avouch Linux" \
--with-lang="" \
--with-external-tar="${srcdir}/ext_sources" \
--with-gdrive-client-id=${_google_default_client_id} \
--with-gdrive-client-secret=${_google_default_client_secret} \
--with-help \
--with-myspell-dicts \
--with-alloc=system \
--with-system-boost \
--with-system-librevenge \
--with-system-libwpd \
--with-system-libwpg \
--with-system-libwps \
--with-system-libcdr \
--with-system-libvisio \
--with-system-libcmis \
--with-system-libmspub \
--with-system-libpng \
--with-system-libxml \
--with-system-libatomic-ops \
--with-system-libexttextcat \
--with-system-liblangtag \
--with-system-libodfgen \
--with-system-libmwaw \
--with-system-libebook \
--with-system-libabw \
--with-system-apr \
--with-system-zlib \
--with-system-cairo \
--with-system-curl \
--with-system-expat \
--with-system-graphite \
--with-system-harfbuzz \
--with-system-icu \
--with-system-jpeg \
--with-system-lcms2 \
--with-system-neon \
--with-system-nss \
--with-system-odbc \
--with-system-openldap \
--with-system-openssl \
--with-system-poppler \
--with-system-redland \
--with-system-cppunit \
--with-system-glew \
--with-system-glm \
--with-system-serf \
--with-system-graphite \
--with-system-dicts \
--with-system-firebird \
--with-external-dict-dir="/usr/share/hunspell" \
--with-external-hyph-dir="/usr/share/hyphen" \
--with-external-thes-dir="/usr/share/mythes" \
--with-jdk-home="/usr/lib/jvm/default" \
--with-ant-home="/usr/share/apache-ant" \
--with-hamcrest="/usr/share/java" \
--with-parallelism=$(getconf _NPROCESSORS_ONLN) \
--enable-release-build \
--enable-python=system \
--enable-split-app-modules \
--enable-gtk3 \
--enable-odk \
--enable-orcus \
--enable-dbus \
--enable-gio \
--enable-evolution2 \
--enable-python=system \
--enable-scripting-beanshell \
--enable-scripting-javascript \
--enable-hardlink-deliver \
--enable-ext-wiki-publisher \
--enable-ext-nlpsolver \
--enable-hardlink-deliver \
--without-junit \
--without-system-clucene \
--disable-telepathy \
--disable-postgresql-sdbc \
--disable-gstreamer-0-10 \
--disable-dependency-tracking


                       
#--with-system-clucene  #build breaks so use internal clucene

make build
#make PARALLELISM_OPTION="" build

# use this if i686 fails
#make || make CppunitTest_sw_ooxmlsdrexport VALGRIND=memchec
#make CppunitTest_writerperfect_stream VALGRIND=memchec


# fake installation
mkdir ${srcdir}/fakeinstall
make DESTDIR=${srcdir}/fakeinstall distro-pack-install

}

package_libreoffice-sdk() {

pkgdesc="Software Development Kit for LibreOffice Fresh"
depends=('libreoffice-fresh' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment')
provides=('libreoffice-sdk')
conflicts=('libreoffice-still-sdk')

cd ${srcdir}
for dir in $(grep -h ^%dir libreoffice-$_LOver/file-lists/sdk{,_doc}_list.txt); do
	install -dm755 ${pkgdir}/${dir/\%dir/}
done

for file in $(grep -h -v ^%dir libreoffice-$_LOver/file-lists/sdk{,_doc}_list.txt); do
	dirname=$(dirname $file)
	[[ -d ${pkgdir}/$dirname ]] || install -dm755 ${pkgdir}/$dirname
	mv ${srcdir}/fakeinstall/${file} ${pkgdir}/$file
done

# fix environment path to keep compatibility with other java-environments
sed -i -e "s:\/usr\/lib\/jvm\/java-8-openjdk:\$J2SDKDIR:" \
${pkgdir}/usr/lib/libreoffice/sdk/setsdkenv_unix.sh

# fix permissions
find ${pkgdir}/usr/lib/libreoffice/sdk/examples -type f -exec chmod -x {} +

# add LibreOfficeKit headers; FS#48066
install -dm755 ${pkgdir}/usr/include/LibreOfficeKit
install -v -m644 ${srcdir}/libreoffice-$_LOver/include/LibreOfficeKit/* ${pkgdir}/usr/include/LibreOfficeKit

}

package_libreoffice() {

	pkgdesc="LibreOffice branch which contains new features and program enhancements"
	depends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.5' 'libwpd>=0.9.2' 'libwps'
		'neon>=0.28.6' 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib'
		'libxslt' 'redland' 'icu' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'graphite'
		'lcms2' 'poppler>=0.24.0' 'libvisio' 'libetonyek' 'libodfgen' 'libcdr'
		'libmspub' 'harfbuzz-icu' 'glew' 'nss' 'clucene' 'hicolor-icon-theme'
		'desktop-file-utils' 'shared-mime-info' 'xdg-utils' 'glu' 'libpagemaker'
		'gst-plugins-base-libs' 'libxinerama' 'libabw' 'libmwaw' 'libe-book' 'libcups' 'gtk2'
		'liborcus' 'liblangtag' 'libexttextcat' 'libfbclient' 'libcmis')
	optdepends=('java-runtime:     adds java support'
		'java-environment: required by extension-wiki-publisher and extension-nlpsolver'
		'pstoedit:         translates PostScript and PDF graphics into other vector formats'
		'libmythes:        for use in thesaurus'
		'beanshell2:       interactive java -- good for prototyping/macros'
		'vigra:            C++ computer vision library, usable in Basebmp'
		'libmspack:        library for Microsoft compression formats for use in FontOOo'
		'libwpg:           library for importing and converting WordPerfect Graphics format'
		'sane:             for scanner access'
		'unixodbc:         adds ODBC database support'
		'gst-plugins-base-libs: for multimedia content, e.g. in Impress'
		'libpaper:         takes care of papersize'
		'postgresql-libs:  for postgresql-connector'
		'coin-or-mp:	   required by the Calc solver'
		'gtk3:             for GTK3 integration'
		'kdelibs:          for KDE desktop integration')
	backup=(etc/libreoffice/sofficerc
		etc/libreoffice/bootstraprc
		etc/libreoffice/psprint.conf
		etc/profile.d/libreoffice-fresh.sh
		etc/profile.d/libreoffice-fresh.csh)
	install=$pkgbase.install
	provides=('libreoffice' 'libreoffice-en-US')
	conflicts=('')

mv fakeinstall/* ${pkgdir}/

# put configuration files into place
install -dm755 ${pkgdir}/etc/libreoffice
install -m644 ${pkgdir}/usr/lib/libreoffice/program/{bootstraprc,sofficerc} \
${pkgdir}/etc/libreoffice/
install -m644 ${pkgdir}/usr/lib/libreoffice/share/psprint/psprint.conf \
${pkgdir}/etc/libreoffice/

# install dummy links to make them found by LibO
cd ${pkgdir}/usr/lib/libreoffice/program/
ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} .
cd ${pkgdir}/usr/lib/libreoffice/share/psprint/
ln -vsf /etc/libreoffice/psprint.conf .

# allow to preset desired VLC
install -dm755 ${pkgdir}/etc/profile.d
install -m755 ${srcdir}/libreoffice.sh ${pkgdir}/etc/profile.d/

# move bash-completion files to its new place
install -dm755 ${pkgdir}/usr/share/bash-completion/completions
mv ${pkgdir}/etc/bash_completion.d/libreoffice.sh \
${pkgdir}/usr/share/bash-completion/completions/libreoffice.sh # fails
rm -rf ${pkgdir}/etc/bash_completion.d

# make pyuno find its modules
install -dm755 ${pkgdir}/usr/lib/python3.5/site-packages
ln -svf /usr/lib/libreoffice/program/uno.py \
${pkgdir}/usr/lib/python3.5/site-packages/uno.py
ln -svf /usr/lib/libreoffice/program/unohelper.py \
${pkgdir}/usr/lib/python3.5/site-packages/unohelper.py

# cleanup
rm -rf ${pkgdir}/usr/share/libreoffice/sdk
rm -rf ${pkgdir}/usr/lib/libreoffice/sdk
rm -rf ${pkgdir}/usr/include

# add application descriptions
install -v -m644 ${srcdir}/libreoffice-$_LOver/sysui/desktop/appstream-appdata/*.xml \
${pkgdir}/usr/share/appdata

# fix insecure rpath
chrpath -d ${pkgdir}/usr/lib/libreoffice/program/libCbc.so.3
chrpath -d ${pkgdir}/usr/lib/libreoffice/program/libOsi.so.1
chrpath -d ${pkgdir}/usr/lib/libreoffice/program/libCoinMP.so.1
chrpath -d ${pkgdir}/usr/lib/libreoffice/program/libCbcSolver.so.3
chrpath -d ${pkgdir}/usr/lib/libreoffice/program/libOsiClp.so.1
chrpath -d ${pkgdir}/usr/lib/libreoffice/program/libCgl.so.1
chrpath -d ${pkgdir}/usr/lib/libreoffice/program/libClp.so.1

}
