archrelease: copy trunk to extra-x86_64
[arch-packages.git] / libreoffice-still / repos / testing-x86_64 / PKGBUILD
blobc119ef3878905f2ee21b657c8b9d42f3280c0769
1 # Maintainer: AndyRTR <andyrtr@archlinux.org>
2 # Maintainer: BartÅ‚omiej Piotrowski <bpiotrowski@archlinux.org>
4 # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
5 # Note: These are for Arch Linux use ONLY. For your own distribution, please
6 # get your own set of keys. Feel free to contact foutrelis@archlinux.org for
7 # more information.
8 _google_default_client_id=413772536636.apps.googleusercontent.com
9 _google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
11 pkgbase=libreoffice-still
12 pkgname=('libreoffice-still-sdk' 'libreoffice-still')
13 _LOver=7.1.7.2
14 pkgver=7.1.7
15 pkgrel=4
16 arch=('x86_64')
17 license=('LGPL3')
18 url="https://www.libreoffice.org/"
19 makedepends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.7' 'libwpd>=0.9.2' 'libwps'
20         'neon>=0.28.6' 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl' 'dbus-glib'
21         'libxslt' 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'graphite' 'icu' 
22         'lcms2' 'poppler>=0.24.0' 'libvisio' 'libetonyek' 'libodfgen' 'libcdr'
23         'libmspub' 'harfbuzz-icu' 'nss' 'hicolor-icon-theme'
24         'desktop-file-utils' 'shared-mime-info' 'gst-plugins-base-libs'
25         'sane' 'perl-archive-zip' 'zip' 'unzip' 'unixodbc' 'ant'
26         'gperf' 'gtk3' 'qt5-base' 'plasma-framework' 'cppunit' 'beanshell' 'clucene'
27         'junit' 'libmythes' 'libwpg'  'java-environment=11' 'postgresql-libs' 'mariadb-libs' 'libgl'
28         'bluez-libs' 'gdb' 'doxygen'  'libatomic_ops'  'mdds'
29         'apr' 'serf' 'ttf-liberation' 'ttf-dejavu' 'ttf-carlito' 'libxinerama' 'libpagemaker' 'glm'
30         'libabw' 'libmwaw' 'libe-book' 'coin-or-mp' 'liblangtag' 'liborcus' 
31         #'libexttextcat' 'libcmis' 'gobject-introspection' # 'libfbclient'
32         'libexttextcat' 'gobject-introspection' # 'libfbclient'
33         'libtommath' 'libzmf' 'gpgme' 'xmlsec' 'rxvt-unicode' 
34         'libepubgen' 'libfreehand' 'libqxp' 'libstaroffice'  'boost' 'libnumbertext'
35         'libffi' 'box2d' 'git'
38 _mirror="https://download.documentfoundation.org/libreoffice/src/${pkgver}"
39 #_mirror="https://dev-builds.libreoffice.org/pre-releases/src"
40 _additional_source_url="https://dev-www.libreoffice.org/src"
41 _additional_source_url2="https://dev-www.libreoffice.org/extern"
42 source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc}
43         ${_additional_source_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
44         ${_additional_source_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip # keep old bundled version, new system version ftbs
45         ${_additional_source_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
46         ${_additional_source_url}/0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
47         ${_additional_source_url}/language-subtag-registry-2019-04-03.tar.bz2
48         ${_additional_source_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
49         ${_additional_source_url}/d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
50         ${_additional_source_url}/ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
51         ${_additional_source_url}/pdfium-4306.tar.bz2
52         ${_additional_source_url}/dtoa-20180411.tgz
53         ${_additional_source_url}/lxml-4.1.1.tgz
54         ${_additional_source_url}/Firebird-3.0.0.32483-0.tar.bz2
55         ${_additional_source_url}/QR-Code-generator-1.4.0.tar.gz
56         ${_additional_source_url}/skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz
57         ${_additional_source_url}/libcmis-0.5.2.tar.xz
58         ${_additional_source_url2}/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar  # for test suite
59         ${_additional_source_url2}/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar # for test suite
60         ${_additional_source_url2}/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
61         ${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll
62         make-pyuno-work-with-system-wide-module-install.diff
63         firebird-icu70.patch
64         soffice-template.desktop.in
65         libreoffice-still.sh libreoffice-still.csh)
66 noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
67            798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
68            a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
69            0168229624cfac409e766913506961a8-ucpp-1.3.2.tar.gz
70            language-subtag-registry-2019-04-03.tar.bz2
71            17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
72            d8bd5eed178db6e2b18eeed243f85aa8-flute-1.1.6.zip
73            ba2930200c9f019c2d93a8c88c651a0f-flow-engine-0.9.4.zip
74            pdfium-4306.tar.bz2
75            dtoa-20180411.tgz
76            lxml-4.1.1.tgz
77            Firebird-3.0.0.32483-0.tar.bz2
78            QR-Code-generator-1.4.0.tar.gz
79            skia-m88-59bafeeaa7de9eb753e3778c414e01dcf013dcd8.tar.xz
80            libcmis-0.5.2.tar.xz
81            8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar  # for test suite
82            odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar  # for test suite
83            f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
84            185d60944ea767075d27247c3162b3bc-unowinreg.dll
86 validpgpkeys=('C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3') # LibreOffice Build Team (CODE SIGNING KEY) <build@documentfoundation.org>
87 sha256sums=('4fdf0809d8803388bd13ace2b3457f0a6ab9f9ef7c98d6f46cc640fffc5e94ba'
88             'SKIP'
89             '8c016b3b847238d84f1f71f9416d122fc21de776c1bc9ec063148db4b846e2b4'
90             'SKIP'
91             '83cb249b4d91e67472174f596cbf6426a33146a690d007e995eb432b70008209'
92             'SKIP'
93             '64585ac36a81291a58269ec5347e7e3e2e8596dbacb9221015c208191333c6e1'
94             '1fb458d6aab06932693cc8a9b6e4e70944ee1ff052fa63606e3131df34e21753'
95             '75823776fb51a9c526af904f1503a7afaaab900fba83eda64f8a41073724c870'
96             '983941d31ee8d366085cadf28db75eb1f5cb03ba1e5853b98f12f7f51c63b776'
97             'a1d7fb901764bb8f251d4f686cdf565764f9987d0fb5d9315d54a7366a84822d'
98             'd30b13f4ba2e3b6a2d4f020c0dee0a9fb9fc6fbcc2d561f36b78da4bf3802370'
99             '1b5b24f7bc543c0362b667692f78db8bab4ed6dafc6172f104d0bd3757d8a133'
100             '233f66e8d25c5dd971716d4200203a612a407649686ef3b52075d04b4c9df0dd'
101             'eca406d47ac7e2a84dcc86f93c08f96e591d409589e881477fa75e488e4851d8'
102             '0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4'
103             '940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e'
104             '6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860'
105             'fcdf9fd69fde07ae4dca2351d84271a9de8093002f733b77c70f52f1630f6e4a'
106             'f293656a15342a53bb407b932fc907c6894178a162f09728bd383e24d84b1301'
107             'd7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2'
108             'f2443f27561af52324eee03a1892d9f569adc8db9e7bca55614898bc2a13a770'
109             '984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504'
110             'f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140'
111             'eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6'
112             'c463654a73ecfbc242ff109726fb4faecdbfb3d91affafe919b24bea65afb563'
113             '32b0546103408117e5b85ee5081db69fb1d09ef6df4aa0aa06f9781e95951fa2'
114             'd0be8099cbee3c9dfda694a828149b881c345b204ab68826f317580aafb50879'
115             'cd1b25ff390e436c6bffa65c6e12382236e3ccbf8d3aae51b1b59bcaed79fd8a'
116             'de20f36d45f0fecc2d94176dd3ec7226ab07fa8ffb9b0bc73c200349a9273de1')
118 prepare() {
120         cd libreoffice-$_LOver
122         # move external sources into place
123         mkdir "${srcdir}"/ext_sources && pushd "${srcdir}"/ext_sources
124         for source in "${noextract[@]}"; do
125                 ln -s "${srcdir}"/$source .
126         done
127         popd
128         
129         # unowinreg.dll must be a file not a symlink or the result will become a broken symlink
130         # /usr/share/libreoffice/sdk/classes/win/unowinreg.dll -> /build/libreoffice/src/185d60944ea767075d27247c3162b3bc-unowinreg.dll
131         rm "${srcdir}"/ext_sources/185d60944ea767075d27247c3162b3bc-unowinreg.dll
132         cp -f "${srcdir}"/185d60944ea767075d27247c3162b3bc-unowinreg.dll "${srcdir}"/ext_sources
134         # fix not upstreamable pyuno paths - FS#54250
135         patch -Np1 -i "${srcdir}"/make-pyuno-work-with-system-wide-module-install.diff
137         # fix "Could not find acceptable ICU library" with ICU 70.1
138         pushd "${srcdir}"/ext_sources
139         tar xf Firebird-3.0.0.32483-0.tar.bz2
140         patch -Np1 -d Firebird-3.0.0.32483-0 -i "${srcdir}"/firebird-icu70.patch
141         rm Firebird-3.0.0.32483-0.tar.bz2
142         tar cjf Firebird-3.0.0.32483-0{.tar.bz2,}
143         popd
145         #use the CFLAGS but remove the LibO overridden ones
146         for i in $CFLAGS; do
147                 case "$i" in
148                         -O?|-pipe|-Wall|-g|-fexceptions) continue;;
149                 esac
150                 ARCH_FLAGS="$ARCH_FLAGS $i"
151         done
154 build() {
155         cd libreoffice-$_LOver
157         # strip -s from Makeflags in case you use it to shorten build logs
158         _MAKEFLAGS=${MAKEFLAGS/-s/}
160         # http://site.icu-project.org/download/61#TOC-Migration-Issues
161         CPPFLAGS+=' -DU_USING_ICU_NAMESPACE=1'
163         ./autogen.sh --with-extra-buildid="${pkgver}-${pkgrel}" \
164                 --with-vendor="Arch Linux" \
165                 --enable-split-app-modules \
166                 --with-parallelism=${_MAKEFLAGS/-j/} \
167                 --with-external-tar="${srcdir}/ext_sources" \
168                 --disable-fetch-external \
169                 --enable-release-build \
170                 --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc \
171                 --libdir=/usr/lib --mandir=/usr/share/man \
172                 --with-lang="" \
173                 --with-help=html \
174                 --disable-avahi \
175                 --enable-dbus \
176                 --enable-evolution2\
177                 --enable-gio\
178                 --enable-gtk3-kde5 \
179                 --enable-kf5 \
180                 --enable-qt5 \
181                 --enable-gtk3 \
182                 --enable-introspection \
183                 --enable-openssl \
184                 --enable-odk\
185                 --enable-python=system \
186                 --enable-scripting-beanshell \
187                 --enable-scripting-javascript \
188                 --disable-dconf \
189                 --disable-report-builder \
190                 --enable-ext-wiki-publisher \
191                 --enable-ext-nlpsolver \
192                 --without-fonts\
193                 --with-system-apr \
194                 --with-system-libcdr \
195                 --with-system-mdds\
196                 --without-myspell-dicts \
197                 --with-system-libvisio \
198                 --without-system-libcmis \
199                 --with-system-libmspub \
200                 --with-system-libexttextcat \
201                 --with-system-orcus \
202                 --with-system-liblangtag \
203                 --with-system-libodfgen \
204                 --with-system-libmwaw \
205                 --with-system-libetonyek \
206                 --with-system-libfreehand \
207                 --without-system-firebird \
208                 --without-system-qrcodegen \
209                 --with-system-libtommath \
210                 --with-system-libatomic-ops \
211                 --with-system-libebook \
212                 --with-system-libabw \
213                 --with-system-coinmp \
214                 --with-system-dicts \
215                 --with-external-dict-dir=/usr/share/hunspell \
216                 --with-external-hyph-dir=/usr/share/hyphen \
217                 --with-external-thes-dir=/usr/share/mythes \
218                 --with-system-beanshell \
219                 --with-system-cppunit\
220                 --with-system-graphite\
221                 --with-system-glm \
222                 --with-system-libnumbertext \
223                 --with-system-libwpg \
224                 --with-system-libwps \
225                 --with-system-redland\
226                 --with-system-libzmf \
227                 --with-system-gpgmepp \
228                 --with-system-libstaroffice \
229                 --with-system-serf \
230                 --with-jdk-home="/usr/lib/jvm/default" \
231                 --with-ant-home="/usr/share/ant"\
232                 --with-system-boost\
233                 --with-system-icu \
234                 --with-system-cairo \
235                 --with-system-libs \
236                 --with-system-mythes \
237                 --with-system-headers \
238                 --without-system-hsqldb \
239                 --with-system-clucene \
240                 --with-gdrive-client-id=${_google_default_client_id} \
241                 --with-gdrive-client-secret=${_google_default_client_secret} \
242                 --disable-dependency-tracking
244         touch src.downloaded
245         make build-nocheck
247         mkdir "${srcdir}"/fakeinstall
248         make DESTDIR="${srcdir}"/fakeinstall distro-pack-install
251 #check() {
252 #       cd "${srcdir}"/build
253 #       make check
256 package_libreoffice-still-sdk() {
257         pkgdesc="Software Development Kit for LibreOffice maintenance branch"
258         depends=('libreoffice-still' 'gcc-libs' 'sh' 'make' 'zip' 'gcc' 'java-environment')
259         provides=('libreoffice-sdk')
260         conflicts=('libreoffice-fresh-sdk')
262         for dir in $(grep -h ^%dir libreoffice-$_LOver/file-lists/sdk{,_doc}_list.txt); do
263                 install -dm755 "${pkgdir}"/${dir/\%dir/}
264         done
266         for file in $(grep -h -v ^%dir libreoffice-$_LOver/file-lists/sdk{,_doc}_list.txt); do
267                 dirname=$(dirname $file)
268                 [[ -d "${pkgdir}"/$dirname ]] || install -dm755 "${pkgdir}"/$dirname
269                 mv "${srcdir}"/fakeinstall/${file} "${pkgdir}"/$file
270         done
272         # fix environment path to keep compatibility with other java-environments
273         sed -i -e "s:\/usr\/lib\/jvm\/java-7-openjdk:\$J2SDKDIR:" \
274                 "${pkgdir}"/usr/lib/libreoffice/sdk/setsdkenv_unix.sh
276         # fix permissions
277         find "${pkgdir}"/usr/lib/libreoffice/sdk/examples -type f -exec chmod -x {} +
278         
279         # add LibreOfficeKit headers; FS#48066
280         install -dm755 "${pkgdir}"/usr/include/LibreOfficeKit
281         install -v -m644 "${srcdir}"/libreoffice-$_LOver/include/LibreOfficeKit/* "${pkgdir}"/usr/include/LibreOfficeKit
284 package_libreoffice-still() {
285         pkgdesc="LibreOffice maintenance branch"
286         depends=('curl>=7.20.0' 'hunspell>=1.2.8' 'python>=3.7' 'libwpd>=0.9.2' 'libwps'
287                 'neon>=0.28.6' 'pango' 'nspr' 'libjpeg' 'libxrandr' 'libgl'
288                 'libxslt' 'redland' 'hyphen' 'lpsolve' 'gcc-libs' 'sh' 'graphite' 'icu' 
289                 'lcms2' 'poppler>=0.24.0' 'libvisio' 'libetonyek' 'libodfgen' 'libcdr'
290                 'libmspub' 'harfbuzz-icu' 'nss' 'clucene' 'hicolor-icon-theme'
291                 'desktop-file-utils' 'shared-mime-info' 'libpagemaker'
292                 'libxinerama' 'libabw' 'libmwaw' 'libe-book' 'libcups'
293                 #'liblangtag' 'libexttextcat' 'libcmis' 'liborcus' # 'libfbclient'
294                 'liblangtag' 'libexttextcat' 'liborcus' # 'libfbclient'
295                 'libtommath' 'libzmf' 'libatomic_ops' 'xmlsec' 'gpgme' 'libnumbertext'
296                 'libfreehand' 'libstaroffice' 'libepubgen' 'libqxp' 'libepoxy' 'box2d'
297                 'xdg-utils')
298         optdepends=('java-runtime:     adds java support'
299                 'java-environment: required by extension-wiki-publisher and extension-nlpsolver'
300                 'pstoedit:         translates PostScript and PDF graphics into other vector formats'
301                 'libmythes:        for use in thesaurus'
302                 'beanshell:       interactive java -- good for prototyping/macros'
303                 'libwpg:           library for importing and converting WordPerfect Graphics format'
304                 'sane:             for scanner access'
305                 'unixodbc:         adds ODBC database support'
306                 'gst-plugins-base-libs: for multimedia content, e.g. in Impress'
307                 'libpaper:         takes care of papersize'
308                 'postgresql-libs:  for postgresql-connector'
309                 'mariadb-libs:     for mysql-connector'
310                 'coin-or-mp:       required by the Calc solver'
311                 'gtk3:             for GTK3 integration'
312                 'kio:              for KF5 KDE desktop integration')
313         backup=(etc/libreoffice/sofficerc
314                 etc/libreoffice/bootstraprc
315                 etc/libreoffice/psprint.conf
316                 etc/profile.d/libreoffice-still.sh
317                 etc/profile.d/libreoffice-still.csh)
318         provides=('libreoffice' 'libreoffice-en-US')
319         conflicts=('libreoffice-fresh')
321         mv fakeinstall/* "${pkgdir}"/
323         # put configuration files into place
324         install -dm755 "${pkgdir}"/etc/libreoffice
325         install -m644 "${pkgdir}"/usr/lib/libreoffice/program/{bootstraprc,sofficerc} \
326                 "${pkgdir}"/etc/libreoffice/
327         install -m644 "${pkgdir}"/usr/lib/libreoffice/share/psprint/psprint.conf \
328                 "${pkgdir}"/etc/libreoffice/
330         # install dummy links to make them found by LibO
331         cd "${pkgdir}"/usr/lib/libreoffice/program/
332         ln -vsf /etc/libreoffice/{bootstraprc,sofficerc} .
333         cd "${pkgdir}"/usr/lib/libreoffice/share/psprint/
334         ln -vsf /etc/libreoffice/psprint.conf .
336         # allow to preset desired VLC
337         install -dm755 "${pkgdir}"/etc/profile.d
338         install -m644 "${srcdir}"/libreoffice-still.{sh,csh} "${pkgdir}"/etc/profile.d/
340         # make pyuno find its modules
341         install -dm755 "${pkgdir}"/usr/lib/python3.10/site-packages
342         ln -svf /usr/lib/libreoffice/program/uno.py \
343                 "${pkgdir}"/usr/lib/python3.10/site-packages/uno.py
344         ln -svf /usr/lib/libreoffice/program/unohelper.py \
345                 "${pkgdir}"/usr/lib/python3.10/site-packages/unohelper.py
346                 
347         # add a symlink required for gnome-documents; FS#51887
348         # https://lists.freedesktop.org/archives/libreoffice/2016-March/073787.html
349         ln -svf /usr/lib/libreoffice/program/liblibreofficekitgtk.so \
350                 "${pkgdir}"/usr/lib/liblibreofficekitgtk.so  
352         # cleanup
353         rm -rf "${pkgdir}"/usr/share/libreoffice/sdk
355         # add application descriptions
356         install -dm755 "${pkgdir}"/usr/share/metainfo
357         install -v -m644 "${srcdir}"/libreoffice-$_LOver/sysui/desktop/appstream-appdata/*.xml \
358                 "${pkgdir}"/usr/share/metainfo
360         # add kde filemanager templates; FS#61662 - file taken from Debian
361         install -dm755 "${pkgdir}"/usr/share/templates/.source
362         install -v -m644 "${srcdir}"/libreoffice-$_LOver/extras/source/shellnew/soffice.* \
363                 "${pkgdir}"/usr/share/templates/.source
365         cat "${srcdir}"/soffice-template.desktop.in \
366                 | sed -e "s/@APP@/Writer/" \
367                 | sed -e "s/@EXT@/odt/" \
368                 | sed -e "s/@TYPE@/text/" \
369                 > "${pkgdir}"/usr/share/templates/soffice.odt.desktop
370         cat "${srcdir}"/soffice-template.desktop.in \
371                 | sed -e "s/@APP@/Calc/" \
372                 | sed -e "s/@EXT@/ods/" \
373                 | sed -e "s/@TYPE@/spreadsheet/" \
374                 > "${pkgdir}"/usr/share/templates/soffice.ods.desktop
375         cat "${srcdir}"/soffice-template.desktop.in \
376                 | sed -e "s/@APP@/Impress/" \
377                 | sed -e "s/@EXT@/odp/" \
378                 | sed -e "s/@TYPE@/presentation/" \
379                 > "${pkgdir}"/usr/share/templates/soffice.odp.desktop
380         cat "${srcdir}"/soffice-template.desktop.in \
381                 | sed -e "s/@APP@/Draw/" \
382                 | sed -e "s/@EXT@/odg/" \
383                 | sed -e "s/@TYPE@/drawing/" \
384                 > "${pkgdir}"/usr/share/templates/soffice.odg.desktop
386         # make all i18n lang packages with help section ('1') available to
387         # fix "F1" not opening translated offline help opening in browser
388         # see also /usr/lib/libreoffice/help/en-US/langnames.js
389         echo "var languagesSet = new Set(['en-US','am','ar','ast','bg','bn',\
390         'bn-IN','bo','bs','ca','ca-valencia','cs','da','de','dz','el',\
391         'en-GB','en-ZA','eo','es','et','eu','fi','fr','gl','gu','he',\
392         'hi','hr','hu','id','is','it','ja','ka','km','ko','lo','lt','lv',\
393         'mk','nb','ne','nl','nn','om','pl','pt','pt-BR','ro','ru','si',\
394         'sid','sk','sl','sq','sv','ta','tg','tr','ug','uk','vi','zh-CN','zh-TW'])" \
395                 > "${pkgdir}"/usr/lib/libreoffice/help/languages.js