Public bug reported:

IMPACT
-------
Evince does not follow internal links in some PDF research articles (affects 
Evince 3.28.4 + Poppler 0.62.0 on Ubuntu 18.04)
https://gitlab.gnome.org/GNOME/evince/issues/1070

PDF's link annotation does not work in Evince 3.30.2
https://gitlab.gnome.org/GNOME/evince/issues/1027

Evince does not follow internal links in some PDF research articles. The 
internal links are used for easy and fast navigation to pages, figures, 
references and equations.
qpdfview (poppler-qt5 viewer) can follow the internal links in those files just 
fine.

DOI of one of the affected documents:
http://dx.doi.org/10.1016/j.apenergy.2016.10.058

Upstream fix:
https://gitlab.freedesktop.org/poppler/poppler/commit/44505cb397c46baa7dd4a0456f737f36e6d19ad0


TEST CASE
----------
Clicking on the following parts should work after the fix is committed:

- Superscripts next to the authors names
- Citations in page 17 (e.g. [1], [9,11-18], [25-30])
- Figure and Table links in page 17 (Fig 1 and Table 1 at the beginning of 
section 2)
- Equations in page 19 (they stay in the same page as the equations are very 
close to their links)


REGRESSION POTENTIAL
---------------------
This is quoted from the upstream commit:

"Named destinations may be described by bytestrings, containing embedded
NULs and not being NUL terminated. That means they cannot be exposed
directly as char*.

The alternatives are to escape the string from the internal representation when 
exposing it in the API (e.g. in PopplerDest.named_dest), or to add parallel API 
exposing it as GString, or GBytes. This patch chooses the first option, since 
the presence of these named destionations in the public, not sealed, 
PopplerDest struct means that the second option would need more API additions. 
The chosen option is simpler, and does not need the API users to adapt unless 
they create the named dest strings
themselves, or consume them in ways other than calling poppler APIs.

The escaping scheme chosen simply replaces embedded NUL with "\0" and
escapes a literal backslash with "\\".  This is a minimal ABI change in
that some strings that previously worked unchanged as destinations
(those containing backslash) now don't work, but on the other hand,
previously it was impossible to use any destinations containing embedded
NULs.

Add poppler_named_dest_{from,to}_bytestring() to perform that
conversion, and clarify the documentation for when you need them."

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: libpoppler-glib8 0.62.0-2ubuntu2.7
ProcVersionSignature: Ubuntu 4.18.0-15.16~18.04.1-generic 4.18.20
Uname: Linux 4.18.0-15-generic x86_64
ApportVersion: 2.20.9-0ubuntu7.5
Architecture: amd64
CurrentDesktop: communitheme:ubuntu:GNOME
Date: Wed Mar  6 10:57:53 2019
InstallationDate: Installed on 2018-11-29 (96 days ago)
InstallationMedia: Ubuntu 18.04.1 LTS "Bionic Beaver" - Release amd64 (20180725)
SourcePackage: poppler
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: poppler (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug bionic wayland-session

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to poppler in Ubuntu.
https://bugs.launchpad.net/bugs/1818812

Title:
  glib: Fix named destinations

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/poppler/+bug/1818812/+subscriptions

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to