As someone who's been watching this bug for a while, I feel the need to interject to defend the Debian maintainers before they're alienated. Given how trivial a poppler-less xpdf package would be to create, the Debian maintainers probably have good reason not to package one. I'm guessing this is due to the fact that poppler/xpdf has had more than its fair share of security issues, and justifying a second copy of that code in Debian, and having to take responsibility for applying any security fixes to that code is too much work to justify for a single package, versus a library.

As for the patch, yes it contains very few functional changes, but being too large by itself *is* enough to reject. The diff is extremely unlikely to apply cleanly to new versions of xpdf making it hard to port but even more problematically, it'll need to be updated each poppler release, and these tend to change the API a lot. What happens when functionality not present in the current version of poppler finally propagates in from xpdf, and configuration variables and methods are duplicated in the xpdf-specific global parameters class (e.g. enableT1lib)? xpdf and poppler will end up working with independent copies of the configuration variables and accessor methods. This is the fragile base class problem.

This problem isn't an ABI issue, it's a software engineering dysfunction issue. Even forking xpdf and having that fork target poppler, as has been done/attempted before[1,2] is potentially problematic. In any normal development situation packages using libraries will only depend on functionality present in the libraries it uses at the time of release. Xpdf using poppler is the opposite. New releases of xpdf introduce functionality that the viewer depends on. Any version of xpdf using poppler will have to interact with versions of poppler that haven't yet incorporated this functionality.

My point is that this problem is non-trivial to solve, and the Debian maintainers are already going above and beyond in producing a package that uses poppler. As far as I can see, the only people in a position to correctly maintain an xpdf version that works correctly with poppler is the poppler devs themselves. They care enough about the xpdf code base to fork it, perhaps they'll appreciate that trying to support packaging both xpdf and their code is hurting the former. Maybe this could be placed in a politely worded e-mail from a Debian maintainer.

Lastly, despite the issues mentioned above I've also created a stripped down xpdf which doesn't replicate/extend the GlobalParams class. It stores xpdf-specific configuration variables in a new class, and only sets configuration variables from the parsed config file that can be accessed via the methods poppler's GlobalParams exposes [3]. This is primarily just so I can get a working version of xpdf on Ubunutu (and hence uses poppler 0.20) but I thought I might as well mention it.

Francis

[1] https://github.com/rbrito/xpdf-poppler
[2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=351279
[3] https://github.com/FrancisRussell/xpdf-lite


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to