extra/libreoffice-still to 7.2.6-3

This commit is contained in:
Kevin Mihelich 2022-05-07 18:24:18 +00:00
parent 9dfff64a52
commit 1ae2225298
2 changed files with 75 additions and 1 deletions

View file

@ -19,7 +19,7 @@ pkgbase=libreoffice-still
pkgname=('libreoffice-still-sdk' 'libreoffice-still')
_LOver=7.2.6.2
pkgver=7.2.6
pkgrel=2
pkgrel=3
arch=('x86_64')
license=('LGPL3')
url="https://www.libreoffice.org/"
@ -66,6 +66,7 @@ source=(${_mirror}/libreoffice{,-help,-translations}-${_LOver}.tar.xz{,.asc}
${_additional_source_url2}/f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140-opens___.ttf
${_additional_source_url2}/185d60944ea767075d27247c3162b3bc-unowinreg.dll
poppler-22.03.0.patch
poppler-22.04.0.patch
make-pyuno-work-with-system-wide-module-install.diff
mdds-2.0-and-orcus-0.17.diff
0001_drop_the_SolarMutex_before_QApplication.patch
@ -117,6 +118,7 @@ sha256sums=('483765a98b92d90e8c8c735e08d33c2a34b5fe1fbc8e7f6b1f9c74ad1a141e31'
'f543e6e2d7275557a839a164941c0a86e5f2c3f2a0042bfc434c88c6dde9e140'
'eafde646a7dbe46d20c291685b0beac2382174d78d66ee990e229a1bf6e6cec6'
'e61e2a266c7a4374377475254a2f095c1ce2376980b301955a4e5a0d32d3c25b'
'caaef7919c6296ab93c7d02607503f91ec965387d038779c0aba9fce78b8e456'
'c463654a73ecfbc242ff109726fb4faecdbfb3d91affafe919b24bea65afb563'
'fd73edaa09a48e2b2c4f4f32af68f1ef01cc181d49a5dfc1f65a5ad4883d7db8'
'81a8551aaea0ab1750d36fb8bfbd04340a43eaab349a43c1384d21ef6504ab47'
@ -141,6 +143,7 @@ prepare() {
cp -f "${srcdir}"/185d60944ea767075d27247c3162b3bc-unowinreg.dll "${srcdir}"/ext_sources
patch -Np1 -i "${srcdir}"/poppler-22.03.0.patch
patch -Np0 -i "${srcdir}"/poppler-22.04.0.patch
# fix not upstreamable pyuno paths - FS#54250
patch -Np1 -i "${srcdir}"/make-pyuno-work-with-system-wide-module-install.diff

View file

@ -0,0 +1,71 @@
# Patch from FreeBSD (https://cgit.freebsd.org/ports/commit/?id=d9b5ef800dbd)
--- sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx.orig 2022-04-26 16:11:01 UTC
+++ sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
@@ -474,11 +474,17 @@ int PDFOutDev::parseFont( long long nNewId, GfxFont* g
{
// TODO(P3): Unfortunately, need to read stream twice, since
// we must write byte count to stdout before
+#if !POPPLER_CHECK_VERSION(22, 3, 0)
char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize );
+#else
+ std::optional<std::vector<unsigned char>> pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef() );
+#endif
if( pBuf )
{
aNewFont.isEmbedded = true;
+#if !POPPLER_CHECK_VERSION(22, 3, 0)
gfree(pBuf);
+#endif
}
}
@@ -492,21 +498,32 @@ void PDFOutDev::writeFontFile( GfxFont* gfxFont ) cons
return;
int nSize = 0;
- char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize );
+#if !POPPLER_CHECK_VERSION(22, 3, 0)
+ char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize );
+#else
+ std::optional<std::vector<unsigned char>> pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef() );
+#endif
if( !pBuf )
return;
// ---sync point--- see SYNC STREAMS above
fflush(stdout);
-
+#if !POPPLER_CHECK_VERSION(22, 3, 0)
if( fwrite(pBuf, sizeof(char), nSize, g_binary_out) != static_cast<size_t>(nSize) )
+#else
+ if( fwrite(reinterpret_cast<char*>(pBuf.value().data()), sizeof(char), nSize, g_binary_out) != static_cast<size_t>(nSize) )
+#endif
{
- gfree(pBuf);
+#if !POPPLER_CHECK_VERSION(22, 3, 0)
+ gfree(pBuf);
+#endif
exit(1); // error
}
// ---sync point--- see SYNC STREAMS above
fflush(g_binary_out);
- gfree(pBuf);
+#if !POPPLER_CHECK_VERSION(22, 3, 0)
+ gfree(pBuf);
+#endif
}
#if POPPLER_CHECK_VERSION(0, 83, 0)
@@ -759,7 +776,11 @@ void PDFOutDev::updateFont(GfxState *state)
{
assert(state);
+#if !POPPLER_CHECK_VERSION(22, 3, 0)
GfxFont *gfxFont = state->getFont();
+#else
+ GfxFont *gfxFont = state->getFont().get();
+#endif
if( !gfxFont )
return;