How can I install a newer version of Poppler, how can I install newer versions of programs depending on Poppler (e.g. Evince or Okular)

Asked by Adalbert Hanßen on 2018-07-27

This discussion pertains to Ubuntu 16.04. There is an error in Poppler (apparently the version of poppler-utils is 0.41.0-0ubuntu1.7), which causes excessive memory and RAM usage when programs which depend on the poppler library like
     Evince, ePDFview, Gimp, LocoPDF, Okular, qAllInOne, qPdfView, Xpdf
try to open certain pdf files, for example files consisting of more than one page generated by AbbyyFineReader (AFR) Version 14. Unfortunately Ubuntu 16.04.4 contains a quite old version of Evince (3.18.2, according to https://help.gnome.org/users/evince/ the most recent one is 3.26, but this site neither tells the dates of the Evince-versions nor if they are stable or bloody development ones).

Bug report https://bugs.freedesktop.org/show_bug.cgi?id=106781 contains an example of a PDF file generated by AFR14 which causes excessive memory and CPU time use. This bug report turned out to be a duplicate of the SOLVED bug report https://bugs.freedesktop.org/show_bug.cgi?id=97623 which provides yet another example. The fix of this latter bug report mentions a “linearization error“ in “broken PDF files“. The bug example provided with it does not conform to any of the PDF-A standards and this is indicated by VeraPDF. According to VeraPDF the files provided with the bug report 106781 however comply to the PDF-A standards. Maybe VeraPDF is unaware of PDF files with this specific bug as they are not avare of it and don't look for this type of bug.

Unfortunately, Evince bundled with Xubuntu 16.04.2 depends on a quite old version of Poppler (apparently version 0.41 from 2016-02-16, the recent one is 0.67 dated 2018-07-19). Therefore all the other PDF tools on Xubuntu 16.04.2 suffer from this bug, except Firefox, which copes with the bug on its own. Perhaps Firefox does not depend on Poppler.

Q: Is the dependency caused by using *.so files?

Q: Do Evince etc call command line applications from poppler-utils by some other means of interprocess communicaion?

Q: If one exchanges poppler-utils with a newer version, why don‘t the programs depending on it immediate fix the bug. Apparently the bug is in any Poppler version lower than 0.49.0, which fixes bug 97623.

Q: Is there a package which I can apply to bring Poppler and Evince or Okular to a newer state?

Q: Apparently after making and installing Poppler downloaded from https://poppler.freedesktop.org/poppler-0.66.0.tar.xz and then executing sudo apt autoremove, Gimp was no longer present. I reinstalled it by sudo add-apt-repository ppa:otto-kesselgulasch/gimp. Then Gimp 2.8.22 could open all files which suffered from the excessive memory usage bug before. Would it not be possible to make such repositories like the kesselgulasch one does it for Gimp for all programs depending on Poppler such that they all use a more recent version >=50 of Poppler?

Q: Is there a more easy method to upgrade Poppler to a newer version rather than having to manually download the sources and compile and install (or better checkinstall) them by hand?

Q: Would it be possible to provide Okular (which also depends on Poppler) as a version depending on Poppler >= version 50? The big advantage of Okular over Evince is Okular‘s ability to underline and highlight text in PDF files in different colors, something missing in the current version available for Ubuntu 16.04.04.

Question information

Language:
English Edit question
Status:
Answered
For:
Ubuntu poppler Edit question
Assignee:
No assignee Edit question
Last query:
2018-07-27
Last reply:
2018-07-30

I suggest you report a bug

Manfred Hampl (m-hampl) said : #2

There are PPAs with a higher version of poppler for xenial, e.g. ppa:jonathonf/testing (standard disclaimer for PPAs apply of course)

You could also consider upgrading to Ubuntu 18.04.

Adalbert Hanßen (melolontha) said : #3

Manfred,

It looks like I got something wrong.:

v@v:~$ sudo add-apt-repository ppa:jonathonf/
[sudo] Passwort für verwalter:
Cannot add PPA: 'ppa:~jonathonf/ubuntu/'.
The user named '~jonathonf' has no PPA named 'ubuntu/'
Please choose from the following available PPAs:
 * 'albert': Albert
 * 'android-tools-test': Android tools (test)
 * 'ansible': Ansible
 * 'antlr3': antlr3
 * 'antlr4': antlr4
 * 'apache24': Apache 2.4
 * 'aria2': aria2
 * 'atslang': ATS2 programming language
 * 'automake': automake
 * 'backports': Backport collection
 * 'biber': biber
 * 'bibletime': Bibletime
 * 'binutils': binutils
 * 'binutils-2.29': binutils 2.29
 * 'binutils-2.30': binutils 2.30
 * 'binutils-2.30-2': binutils 2.30 (2)
 * 'byobu': Byobu
 * 'calibre': Calibre
 * 'cargo': Cargo
 * 'clementine': Clementine
 * 'codelite': Codelite
 * 'cpan': Packaged CPAN modules
 * 'curl': Curl
 * 'debhelper': debhelper
 * 'debhelper-10': debhelper 10
 * 'debhelper-11': debhelper 11
 * 'debhelper-9': debhelper 9
 * 'debhelper-trusty': debhelper for trusty
 * 'development-tools': Development tools
 * 'dh-strip-nondeterminism': dh-strip-nondeterminism
 * 'displaycal': DisplayCAL
 * 'django-latest': Django Latest
 * 'django-lts': Django LTS 1.8
 * 'django-lts-1.11': Django LTS 1.11
 * 'django-lts-1.11-builddeps': Django 1.11 LTS (build dependencies)
v@v:~$

What exactly is the designation fon the more recent version of Poppler as a ppa and for which version of Poppler is it?
What should I have done instead of what I did?

Kind regards,

Adalbert

Manfred Hampl (m-hampl) said : #4

I gave a link to ppa:jonathonf/testing
but you tried adding ppa:jonathonf/ which misses the last part of the address.

Try
sudo add-apt-repository ppa:jonathonf/gimp
sudo apt-get update
sudo apt-get dist-upgrade

A full list of PPAs containing a version of poppler is available at https://launchpad.net/ubuntu/+ppas?name_filter=poppler (Do not forget to check whether the version is for xenial)

Adalbert Hanßen (melolontha) said : #5

Did I get this right or was it a typo (most probably it is):

sudo add-apt-repository ppa:jonathonf/gimp

Before you spoke about the suggested steps, you were talking about jonathonf/testing rather than jonathon/gimp.

I tried it with jonathonf/testing, which brought in .../poppler-utils_0.62.0-1ubuntu1~16.04.york0_amd64.deb (good!)

I just wanted to prevent later readers of this discussion from copy-pasting wrong stuff.

Manfred Hampl (m-hampl) said : #6

There are several PPAs with updated versions of poppler, among those ppa:jonathonf/testing and ppa:jonathonf/gimp

Both should be fine, but the one in gimp is even a bit newer (additional patches). I saw that only later, but did not mention these details.

Adalbert Hanßen (melolontha) said : #7

yes, the package jonathonf/testing brings in poppler-utils 0.62.0-1ubuntu1~16.04.york0
whereas jonathonf/gimp brings in 0.62.0-2ubuntu3~16.04.york0.

After the latter, Gimp is version 2.8.22 and it can open an example which caused trouble quickly and without excessive RAM usage.

However, pdftotext from poppler utils can't extract text from it: I get a warning message ": Invalid shared object groups bit length"

v@v:~$ rm t.txt
v@v:~$ pdftotext "Test AFR14_2 Seiten, beruht auf Test-AFR14_00-00_SW.tif_SW.pdf" > t.txt
Syntax Warning: Invalid shared object groups bit length
v@v:~$ ls -l t.txt
-rw-rw-r-- 1 v v 0 Jul 30 07:16 t.txt
v@v:~$ pdfinfo "Test AFR14_2 Seiten, beruht auf Test-AFR14_00-00_SW.tif_SW.pdf"
Creator: ABBYY FineReader 14
Producer: ABBYY FineReader 14
CreationDate: Mon Apr 30 08:53:01 2018 CEST
ModDate: Mon Apr 30 08:53:01 2018 CEST
Tagged: yes
UserProperties: no
Suspects: no
Form: none
Syntax Warning: Invalid shared object groups bit length
JavaScript: no
Pages: 2
Encrypted: no
Page size: 499.9 x 260.9 pts
Page rot: 0
File size: 38356 bytes
Optimized: yes
PDF version: 1.5
v@v:~$

(so the fle t.txt was generated but it was an empty file)

and after a double click onto my test file in Thunar, Okular version 0.24.2 opens and eats up excessive RAM as before.

I found in my notes that after compiling Poppler version 0.66.0 I also got this warning from pdftotext but then it delivered the text contained in the PDF file to an output file which was not empty. Its content was plausible-

When posting my basic questions (see above) how the dependency between Poppler and the programs dealing with pdf files works and what has to be done to mitigate a problem which is present in the supported PPA have not been answered at all.

Thank you for your help, it gave me some other insights so far.

Manfred Hampl (m-hampl) said : #8

If you look at the details of the package libevdocument3-4 (part of evince) in xenial-updates, you can see that it depends on "libpoppler-glib8 (>= 0.33.0)".
This means that evince should work with any version of poppler >= 0.33.0

Thd case for ocular is similar (depends on libpoppler-qt4-4 >= 0.38.0), and I assume the same for the other software that you mentioned (Evince, ePDFview, Gimp, LocoPDF, Okular, qAllInOne, qPdfView, Xpdf).

Replacing poppler by a newer version should work without negative effects on evince, ocular etc.

Can you help with this problem?

Provide an answer of your own, or ask Adalbert Hanßen for more information if necessary.

To post a message you must log in.