about summary refs log tree commit diff
path: root/pkgs/applications/office
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2022-05-06 00:47:20 +0200
committerGitHub <noreply@github.com>2022-05-06 00:47:20 +0200
commit1cc16e71e1760309a9ef686ca2d4ce1a53913ce5 (patch)
treea7bee8566ff090256ec8eea5dc3d65127d0952c7 /pkgs/applications/office
parent9541f17a51a9c33524ac53ce2f152c436d0609c1 (diff)
parentced814af20ced2b7b17da68f5ee6059781458d45 (diff)
Merge pull request #167372 from r-ryantm/auto-update/poppler-glib
poppler: 22.03.0 -> 22.04.0
Diffstat (limited to 'pkgs/applications/office')
-rw-r--r--pkgs/applications/office/libreoffice/default.nix3
-rw-r--r--pkgs/applications/office/libreoffice/poppler-22-04-0.patch100
-rw-r--r--pkgs/applications/office/scribus/unstable.nix5
3 files changed, 108 insertions, 0 deletions
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 5ebde5e10dece..a67c9c2a70afa 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -90,6 +90,9 @@ in (mkDrv rec {
       url = "https://github.com/archlinux/svntogit-packages/raw/f82958b9538f86e41b51f1ba7134968d2f3788d1/trunk/poppler-22.03.0.patch";
       sha256 = "5h4qJmx6Q3Q3dHUlSi8JXBziN2mAswGVWk5aDTLTwls=";
     })
+
+    # Fix build with poppler 22.04
+    ./poppler-22-04-0.patch
   ];
 
   ### QT/KDE
diff --git a/pkgs/applications/office/libreoffice/poppler-22-04-0.patch b/pkgs/applications/office/libreoffice/poppler-22-04-0.patch
new file mode 100644
index 0000000000000..c907bf1680b4f
--- /dev/null
+++ b/pkgs/applications/office/libreoffice/poppler-22-04-0.patch
@@ -0,0 +1,100 @@
+Patch from OpenSUSE
+https://build.opensuse.org/package/view_file/LibreOffice:Factory/libreoffice/poppler-22-04-0.patch?expand=1&rev=45e176f964509ebe3560d0dbf1ec8be9
+Index: libreoffice-7.3.3.1/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+===================================================================
+--- libreoffice-7.3.3.1.orig/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
++++ libreoffice-7.3.3.1/sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx
+@@ -474,12 +474,21 @@ int PDFOutDev::parseFont( long long nNew
+     {
+         // TODO(P3): Unfortunately, need to read stream twice, since
+         // we must write byte count to stdout before
++#if POPPLER_CHECK_VERSION(22, 04, 0) // readEmbFontFile signature changed
++        auto pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef());
++        if ( pBuf )
++        {
++            aNewFont.isEmbedded = true;
++            nSize = pBuf->size();
++        }
++#else
+         char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize );
+         if( pBuf )
+         {
+             aNewFont.isEmbedded = true;
+             gfree(pBuf);
+         }
++#endif
+     }
+ 
+     m_aFontMap[ nNewId ] = aNewFont;
+@@ -492,21 +501,35 @@ void PDFOutDev::writeFontFile( GfxFont*
+         return;
+ 
+     int nSize = 0;
++#if POPPLER_CHECK_VERSION(22, 04, 0) // readEmbFontFile signature changed
++    auto pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef());
++    if ( !pBuf )
++        return;
++    nSize = pBuf->size();
++#else
+     char* pBuf = gfxFont->readEmbFontFile( m_pDoc->getXRef(), &nSize );
+     if( !pBuf )
+         return;
++#endif
+ 
+     // ---sync point--- see SYNC STREAMS above
+     fflush(stdout);
+ 
++#if POPPLER_CHECK_VERSION(22, 04, 0) // readEmbFontFile signature changed
++    if( fwrite(pBuf->data(), sizeof(unsigned char), nSize, g_binary_out) != static_cast<size_t>(nSize) )
++    {
++#else
+     if( fwrite(pBuf, sizeof(char), nSize, g_binary_out) != static_cast<size_t>(nSize) )
+     {
+         gfree(pBuf);
++#endif
+         exit(1); // error
+     }
+     // ---sync point--- see SYNC STREAMS above
+     fflush(g_binary_out);
++#if !POPPLER_CHECK_VERSION(22, 04, 0) // readEmbFontFile signature changed
+     gfree(pBuf);
++#endif
+ }
+ 
+ #if POPPLER_CHECK_VERSION(0, 83, 0)
+@@ -759,7 +782,11 @@ void PDFOutDev::updateFont(GfxState *sta
+ {
+     assert(state);
+ 
++#if POPPLER_CHECK_VERSION(22, 04, 0)
++    std::shared_ptr<GfxFont> gfxFont = state->getFont();
++#else
+     GfxFont *gfxFont = state->getFont();
++#endif
+     if( !gfxFont )
+         return;
+ 
+@@ -776,7 +803,11 @@ void PDFOutDev::updateFont(GfxState *sta
+         m_aFontMap.find( fontID );
+     if( it == m_aFontMap.end() )
+     {
++#if POPPLER_CHECK_VERSION(22, 04, 0)
++        nEmbedSize = parseFont( fontID, gfxFont.get(), state );
++#else
+         nEmbedSize = parseFont( fontID, gfxFont, state );
++#endif
+         it = m_aFontMap.find( fontID );
+     }
+ 
+@@ -806,7 +837,11 @@ void PDFOutDev::updateFont(GfxState *sta
+ 
+     if (nEmbedSize)
+     {
++#if POPPLER_CHECK_VERSION(22, 04, 0)
++        writeFontFile(gfxFont.get());
++#else
+         writeFontFile(gfxFont);
++#endif
+     }
+ }
+ 
diff --git a/pkgs/applications/office/scribus/unstable.nix b/pkgs/applications/office/scribus/unstable.nix
index 754c9ba03d4eb..d3f706bbf0549 100644
--- a/pkgs/applications/office/scribus/unstable.nix
+++ b/pkgs/applications/office/scribus/unstable.nix
@@ -84,6 +84,11 @@ mkDerivation rec {
       url = "https://github.com/scribusproject/scribus/commit/48263954a7dee0be815b00f417ae365ab26cdd85.patch";
       sha256 = "1WE9kALFw79bQH88NUafXaZ1Y/vJEKTIWxlk5c+opsQ=";
     })
+    # For Poppler 22.04
+    (fetchpatch {
+      url = "https://github.com/scribusproject/scribus/commit/f2237b8f0b5cf7690e864a22ef7a63a6d769fa36.patch";
+      sha256 = "FXpLoX/a2Jy3GcfzrUUyVUfEAp5wAy2UfzfVA5lhwJw=";
+    })
   ];
 
   nativeBuildInputs = [