From d168194caa699cee2e86d61edb38dbcb1b316e75 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Fri, 2 Sep 2022 21:22:29 +0000
Subject: [PATCH] extra/libreoffice-fresh to 7.4.0-3

---
 extra/libreoffice-fresh/PKGBUILD              |  9 +++-
 .../libreoffice-poppler-22.09.0.patch         | 46 +++++++++++++++++++
 2 files changed, 53 insertions(+), 2 deletions(-)
 create mode 100644 extra/libreoffice-fresh/libreoffice-poppler-22.09.0.patch

diff --git a/extra/libreoffice-fresh/PKGBUILD b/extra/libreoffice-fresh/PKGBUILD
index 11d5b13df..f7f9ca28e 100644
--- a/extra/libreoffice-fresh/PKGBUILD
+++ b/extra/libreoffice-fresh/PKGBUILD
@@ -19,7 +19,7 @@ pkgbase=libreoffice-fresh
 pkgname=('libreoffice-fresh-sdk' 'libreoffice-fresh')
 _LOver=7.4.0.3
 pkgver=7.4.0
-pkgrel=2
+pkgrel=3
 arch=('x86_64')
 license=('LGPL3')
 url="https://www.libreoffice.org/"
@@ -67,6 +67,7 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc}
 	${_additional_source_url2}/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
 	${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll
 	make-pyuno-work-with-system-wide-module-install.diff
+	libreoffice-poppler-22.09.0.patch
 	soffice-template.desktop.in 
 	libreoffice-fresh.sh libreoffice-fresh.csh)
 noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
@@ -89,6 +90,7 @@ noextract=(35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
            f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
            185d60944ea767075d27247c3162b3bc-unowinreg.dll
 )
+validpgpkeys=('C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3') # LibreOffice Build Team (CODE SIGNING KEY) <build@documentfoundation.org>
 sha256sums=('acc383a4386e1ceb74266a2f6406dee4b3a78576bda6bc71630f629ea20e3c19'
             'SKIP'
             'aa1922940b1742a833f34efc2cc2267dd592363530764dcfd352112c9b329547'
@@ -115,10 +117,10 @@ sha256sums=('acc383a4386e1ceb74266a2f6406dee4b3a78576bda6bc71630f629ea20e3c19'
             'f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140'
             'eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6'
             'c463654a73ecfbc242ff109726fb4faecdbfb3d91affafe919b24bea65afb563'
+            '95716d255aae9d8795eb76c634541f82a094b87dfeaa6ffcdbd97c0f19c14ac4'
             'd0be8099cbee3c9dfda694a828149b881c345b204ab68826f317580aafb50879'
             'cd1b25ff390e436c6bffa65c6e12382236e3ccbf8d3aae51b1b59bcaed79fd8a'
             'de20f36d45f0fecc2d94176dd3ec7226ab07fa8ffb9b0bc73c200349a9273de1')
-validpgpkeys=('C2839ECAD9408FBE9531C3E9F434A1EFAFEEAEA3') # LibreOffice Build Team (CODE SIGNING KEY) <build@documentfoundation.org>
 
 prepare() {
 
@@ -127,6 +129,9 @@ prepare() {
 	# Workaround to fix build with gpgme 1.18.0
 	export ac_cv_lib_gpgmepp_progress_callback=yes
 
+        # poppler 22.09.0
+	patch -Np1 -i ../libreoffice-poppler-22.09.0.patch
+
 	# move external sources into place
 	mkdir "${srcdir}"/ext_sources && pushd "${srcdir}"/ext_sources
 	for source in "${noextract[@]}"; do
diff --git a/extra/libreoffice-fresh/libreoffice-poppler-22.09.0.patch b/extra/libreoffice-fresh/libreoffice-poppler-22.09.0.patch
new file mode 100644
index 000000000..f269d5319
--- /dev/null
+++ b/extra/libreoffice-fresh/libreoffice-poppler-22.09.0.patch
@@ -0,0 +1,46 @@
+https://gerrit.libreoffice.org/c/core/+/139249
+
+From 8bad83bf044661357b02b695e6f53e2e19dea396 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Sep 2022 04:31:18 +0100
+Subject: [PATCH] Fix build with Poppler 22.09.0
+
+With Poppler 22.09.0, LO fails to build with:
+```
+/var/tmp/portage/app-office/libreoffice-7.3.5.2/work/libreoffice-7.3.5.2/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx:682:36: error: too many arguments to function call, expected single argument 'start', have 3 arguments
+    state->getLineDash(&dashArray, &arrayLen, &startOffset);
+    ~~~~~~~~~~~~~~~~~~             ^~~~~~~~~~~~~~~~~~~~~~~
+/usr/include/poppler/GfxState.h:1506:32: note: 'getLineDash' declared here
+    const std::vector<double> &getLineDash(double *start)
+                               ^
+1 error generated.
+```
+
+Poppler changed the getLineDash interface:
+```
+-    void getLineDash(double **dash, int *length, double *start)
++    const std::vector<double> &getLineDash(double *start)
+```
+
+Signed-off-by: Sam James <sam@gentoo.org>
+Change-Id: I29e18f20d7650a7fcac1bc8ab4aaa04aaa2ab8fb
+--- a/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
++++ b/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+@@ -678,8 +678,16 @@ void PDFOutDev::updateLineDash(GfxState *state)
+         return;
+     assert(state);
+ 
+-    double* dashArray; int arrayLen; double startOffset;
++    int arrayLen; double startOffset;
++#if POPPLER_CHECK_VERSION(22, 9, 0)
++    const double* dashArray;
++    const std::vector<double> &dash = state->getLineDash(&startOffset);
++    dashArray = dash.data();
++    arrayLen = dash.size();
++#else
++    double* dashArray;
+     state->getLineDash(&dashArray, &arrayLen, &startOffset);
++#endif
+ 
+     printf( "updateLineDash" );
+     if( arrayLen && dashArray )