Changes in poppler break downstream packages
At linuxfromscratch, we find that changes in poppler often break packages that depend on poppler. Currently we are having problems with cups-filter, inkscape, and libreoffice.
When we look at details, it seems that downstream apps are using headers that are not intended to be used by general applications. For instance cups-filters uses:
#include "goo/GooString.h" #include "goo/gmem.h"
These, in turn, include other header files.
It appears to me that headers in the goo/ directory are not intended for general use. If this is the case, I suggest protecting from misuse with constructs similar to those in the /usr/include/bits/ headers. For example, cpu-set.h has the construct
error "Never include <bits/cpu-set.h> directly; use <sched.h> instead."
Doing something like this will help downstream to make their code conform to your expectations and not have developers incorrectly blame poppler for breakage when you need to make changes.
-- Bruce Dubbs linuxfromscratch.org