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
#ifndef _SCHED_H
error "Never include <bits/cpu-set.h> directly; use <sched.h> instead."
#endif
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