PKGBUILDs/extra/libreoffice-still/PKGBUILD
2016-12-17 01:19:23 +00:00

405 lines
18 KiB
Bash

# $Id$
# Maintainer: AndyRTR <andyrtr@archlinux.org>
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - make build-nocheck: unit tests take a huge amount of time on ARM
buildarch=28
highmem=1
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# Note: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_default_client_id=413772536636.apps.googleusercontent.com
_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
pkgbase=libreoffice-still
pkgname=('libreoffice-still-sdk' 'libreoffice-still')
_LOver=5.1.6.2
pkgver=5.1.6
pkgrel=4
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' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'graphite' #'icu'
'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' 'gst-plugins-base-libs'
'glu' 'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'apache-ant'
'gperf' 'kdelibs' 'gtk3' 'cppunit' 'beanshell' 'vigra' 'clucene'
'junit' 'libmythes' 'libwpg' 'mesa' 'java-environment' 'postgresql-libs'
'bluez-libs' '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="https://download.documentfoundation.org/libreoffice/src/${pkgver}"
#_mirror="https://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_59_0.tar.bz2
${_additional_source_url}/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.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_url}/c4a2d71ff56aec5ebfab2a3f059be99d-icu4c-56_1-src.tgz
${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll
make-pyuno-work-with-system-wide-module-install.diff
libreoffice-still.sh libreoffice-still.csh
update_liborcus_to_0.11.0.diff
remove_unnecessary_orcus_external_usage_from_makefiles.diff
liborcus-0.11.2.diff
gcc6_buildfix.diff
buildfix.diff)
noextract=(boost_1_59_0.tar.bz2
1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz
35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
commons-logging-1.2-src.tar.gz
8ab049135b2d15313da5d9f0656894a1-commons-lang3-3.3.1-src.tar.gz
2c9b0f83ed5890af02c0df1c1776f39b-commons-httpclient-3.1-src.tar.gz
048751f3271906db5126ab76870444c4-commons-codec-1.9-src.zip
eeb2c7ddf0d302fba4bfc6e97eac9624-libbase-1.1.6.zip
39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip
3404ab6b1792ae5f16bbd603bd1e1d03-libformula-1.1.7.zip
97b2d4dba862397f446b217e2b623e71-libloader-1.1.6.zip
f94d9870737518e3b597f9265f4e9803-libserializer-1.1.6.zip
8ce2fcd72becf06c41f7201d15373ed9-librepository-1.1.6.zip
3bdf40c0d199af31923e900d082ca2dd-libfonts-1.1.6.zip
ace6ab49184e329db254e454a010f56d-libxml-1.1.7.zip
db60e4fde8dd6d6807523deb71ee34dc-liblayout-0.2.10.zip
0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
language-subtag-registry-2015-08-04.tar.bz2
4b87018f7fff1d054939d19920b751a0-collada2gltf-master-cb1d97788a.tar.bz2
OpenCOLLADA-master-6509aa13af.tar.bz2
17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
libgltf-0.0.2.tar.bz2
d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
libfreehand-0.1.1.tar.bz2
c4a2d71ff56aec5ebfab2a3f059be99d-icu4c-56_1-src.tgz
185d60944ea767075d27247c3162b3bc-unowinreg.dll)
validpgpkeys=('C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3') # LibreOffice Build Team (CODE SIGNING KEY) <build@documentfoundation.org>
sha256sums=('04a01b7f28beb9b090ffb7d409a30ab5fa1635c2364be2dd4b080d76cd591d94'
'SKIP'
'afe486145733405eecaafbad95db2f3b303b528ef21fa8548ad471ac09ff0dab'
'SKIP'
'229b05c712defeb481fb532db07f77aaee9c250093fc4f4fd8b0c7da986e083d'
'SKIP'
'727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca'
'390a5085651828b8fe12aa978b200f59b9155eedbb91a4be89bf7cf39eefdd4a'
'64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1'
'1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753'
'75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870'
'49665da5a60d033e6dff40fe0a7f9173e886ae859ce6096c1afe34c48b677c81'
'97ca24c80d416f651dcd3513611d5ea855be21a994e3d48563c837a599618908'
'f9a496d3418b0e15894fb351652cd4fa5ca434ebfc3ce3bb8da40defd8b097f2'
'a751a036a3488e2519bc105dcf80df9c004ab1a982d1dd96bbfbf07802df8831'
'75c80359c9ce343c20aab8a36a45cb3b9ee7c61cf92c13ae45399d854423a9ba'
'085f2112c51fa8c1783fac12fbd452650596415121348393bb51f0f7e85a9045'
'5826d1551bf599b85742545f6e01a0079b93c1b2c8434bf409eddb3a29e4726b'
'3d853b19b1d94a6efa69e7af90f7f2b09ecf302913bee3da796c15ecfebcfac8'
'05640a1f6805b2b2d7e2cb9c50db9a5cb084e3c52ab1a71ce015239b4a1d4343'
'abe2c57ac12ba45d83563b02e240fa95d973376de2f720aab8fe11f2e621c095'
'e0531091787c0f16c83965fdcbc49162c059d7f0c64669e7f119699321549743'
'7d2797fe9f79a77009721e3f14fa4a1dec17a6d706bdc93f85f1f01d124fab66'
'e1fb87f3f7b980d33414473279615c4644027e013012d156efa538bc2b031772'
'983941d31ee8d366085cadf28db75eb1f5cb03ba1e5853b98f12f7f51c63b776'
'cfd066b327c2308b3d019f0fe124c02d9acfafdd4aa2af0feadb6e0384027cf9'
'b0adb8e71aef80751b999c9c055e419a625c4a05184e407aef2aee28752ad8cb'
'8f25d429237cde289a448c82a0a830791354ccce5ee40d77535642e46367d6c4'
'd30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370'
'd1cc7297ed1921aa969e26413b4c4e18afc882ce4d2f5a2aa2a2905706f7206b'
'1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133'
'233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd'
'45dab0e5d632eb51eeb00847972ca03835d6791149e9e714f093a9df2b445877'
'3a64e9105c734dcf631c0b3ed60404531bce6c0f5a64bfe1a6402a4cc2314816'
'eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6'
'ad028513c29691b3ec3a35de21af2f224b48015afe0fbcc6fb834fdf7f613165'
'1daf3a7a37627d3ef706d320f25d2ead3c40aa4b0f3ae200090b6931356ab93f'
'ea20581a93ed0221dbc3f75400adc3b4692d56c46063deeb14082241206d5485'
'4fc7b046fe96464a576d897330d1caa14998ab767002f84edf11a63b9ec35a7f'
'f6df5179582803bd71211a392218e9f7c062dc183832d6823cc7a13021e3e543'
'aad7b3bb44f295611cc3372c2076f079b9dafe13b8c1978489a72a34dcbca8c9'
'e6d204f52eab3e2f606f7f4ab6d1129288bcdf228f1f14bcea375b3a46052076'
'02d67462bd1fbfcaee4bf877238740e7971aa2e1fb8f41634ab7e37116d74c1b')
prepare() {
cd libreoffice-$_LOver
# move external sources into place
mkdir ${srcdir}/ext_sources && pushd ${srcdir}/ext_sources
for source in "${noextract[@]}"; do
ln -s ${srcdir}/$source .
done
popd
# https://cgit.freedesktop.org/libreoffice/core/commit/?h=libreoffice-5-2&id=e13db0f16c4ac5a243587e881d7b18979d07f478
patch -Np1 -i ../buildfix.diff
# 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 ${srcdir}/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
#use the CFLAGS but remove the LibO overridden ones
for i in $CFLAGS; do
case "$i" in
-O?|-pipe|-Wall|-g|-fexceptions) continue;;
esac
ARCH_FLAGS="$ARCH_FLAGS $i"
done
# 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
# qt4 fix
sed -i "s:qmake:qmake-qt4:g" configure.ac
# https://cgit.freedesktop.org/libreoffice/core/commit/?id=b325b4c286b56a63316063a3ac4648bf7b7efcbe
patch -Np1 -i ${srcdir}/update_liborcus_to_0.11.0.diff
# https://cgit.freedesktop.org/libreoffice/core/commit/?id=07d4c443e21cd22545d4516515c50b1c8dd39a9b
patch -Np1 -i ${srcdir}/remove_unnecessary_orcus_external_usage_from_makefiles.diff
# https://cgit.freedesktop.org/libreoffice/core/commit/?id=db729f3b685fd832a3ec7387b339cf2bbeb4bd4d
patch -Np1 -i ${srcdir}/liborcus-0.11.2.diff
# 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() {
cd libreoffice-$_LOver
# strip -s from Makeflags in case you use it to shorten build logs
_MAKEFLAGS=${MAKEFLAGS/-s/}
./autogen.sh --with-build-version="${_LOver} Arch Linux build-${pkgrel}" --with-vendor="Arch Linux" \
--enable-split-app-modules \
--with-parallelism=${_MAKEFLAGS/-j/} \
--with-external-tar="${srcdir}/ext_sources" \
--disable-fetch-external \
--enable-release-build \
--prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
--libdir=/usr/lib --mandir=/usr/share/man \
--with-lang="" \
--with-help \
--enable-crashdump \
--disable-avahi \
--enable-dbus \
--enable-evolution2\
--enable-gio\
--enable-kde4\
--enable-gtk3 \
--disable-gstreamer-0-10 \
--enable-openssl \
--enable-odk\
--enable-orcus \
--enable-python=system \
--enable-scripting-beanshell \
--enable-scripting-javascript \
--disable-telepathy \
--disable-dconf \
--enable-ext-wiki-publisher \
--enable-ext-nlpsolver \
--without-fonts\
--with-system-apr \
--with-system-libcdr \
--with-system-mdds\
--without-myspell-dicts \
--with-system-libvisio \
--with-system-libcmis \
--with-system-libmspub \
--with-system-libexttextcat \
--with-system-orcus \
--with-system-liblangtag \
--without-system-jfreereport \
--without-system-apache-commons \
--with-system-libodfgen \
--with-system-libmwaw \
--with-system-libetonyek \
--without-system-libfreehand \
--with-system-firebird \
--with-system-libatomic-ops \
--with-system-libebook \
--with-system-libabw \
--with-system-coinmp \
--without-system-libgltf \
--with-system-dicts \
--with-external-dict-dir=/usr/share/hunspell \
--with-external-hyph-dir=/usr/share/hyphen \
--with-external-thes-dir=/usr/share/mythes \
--with-system-beanshell \
--with-system-cppunit\
--with-system-graphite\
--with-system-glew \
--with-system-glm \
--with-system-libwpg \
--with-system-libwps \
--with-system-redland\
--with-system-serf \
--without-system-npapi-headers \
--with-jdk-home="/usr/lib/jvm/default" \
--with-ant-home="/usr/share/apache-ant"\
--without-system-boost\
--without-system-icu \
--with-system-cairo \
--with-system-libs \
--with-system-mythes \
--with-system-headers \
--without-system-hsqldb \
--with-alloc=system \
--with-system-clucene \
--with-gdrive-client-id=${_google_default_client_id} \
--with-gdrive-client-secret=${_google_default_client_secret} \
--disable-dependency-tracking \
--enable-hardlink-deliver
touch src.downloaded
make build-nocheck
mkdir ${srcdir}/fakeinstall
make DESTDIR=${srcdir}/fakeinstall distro-pack-install
}
#check() {
# cd ${srcdir}/build
# make check
#}
package_libreoffice-still-sdk() {
pkgdesc="Software Development Kit for LibreOffice maintenance branch"
depends=('libreoffice-still' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment')
provides=('libreoffice-sdk')
conflicts=('libreoffice-fresh-sdk')
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-7-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-still() {
pkgdesc="LibreOffice maintenance branch"
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' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'graphite' #'icu'
'lcms2' 'poppler>=0.24.0' 'libvisio' 'libetonyek' 'libodfgen' 'libcdr'
'libmspub' 'harfbuzz-icu' 'glew' 'nss' 'clucene' 'hicolor-icon-theme'
'desktop-file-utils' 'shared-mime-info' 'glu' 'libpagemaker'
'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'
'beanshell: 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-still.sh
etc/profile.d/libreoffice-still.csh)
provides=('libreoffice' 'libreoffice-en-US')
conflicts=('libreoffice-fresh')
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-still.{sh,csh} ${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
# add application descriptions
install -v -m644 ${srcdir}/libreoffice-$_LOver/sysui/desktop/appstream-appdata/*.xml \
${pkgdir}/usr/share/appdata
}