Your message dated Sun, 16 Aug 2026 14:21:24 +0000
with message-id <[email protected]>
and subject line Bug#1142706: fixed in pdf2djvu 0.9.18.2-2.3
has caused the Debian Bug report #1142706,
regarding pdf2djvu: will FTBFS with poppler 26.07
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1142706: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1142706
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Source: pdf2djvu
Version: 0.9.18.2-2.2
Severity: normal
Tags: ftbfs patch
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Dear Maintainer,
pdf2djvu fails to build against poppler 26.07 (currently in
experimental, unstable is still on 26.01). Several poppler API
changes across the 26.02-26.07 releases break the build:
- - 26.02: SplashOutputDev dropped the reverseVideo ctor parameter;
GfxState::getCTM() now returns const std::array<double,6>&;
SplashFont::getGlyph() takes the clip by const SplashClip&.
- - 26.04: Object::getString() now returns const std::string&.
- - 26.05: the SplashCoord alias to double was removed.
- - 26.06: GfxColorSpace::getRGB() takes a const GfxColor&;
Annot::getColor() returns const AnnotColor*.
- - 26.07: Catalog::indexToLabel() takes a std::string*.
The attached patch guards each change with the existing integer
POPPLER_VERSION check, so older poppler still builds. Feel free to
apply it whenever poppler 26.07 reaches unstable
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEuVOE/FJ0HcdfWSw//lAdKwFeZPsFAmpjSxsACgkQ/lAdKwFe
ZPvbUQ/9E9N3iVRSL/sJdQgTVdWVbl0V7FVxbKir9gdv0ehtup0PL2YXdqe3ZGI9
889Ues9fxzko+FVjPYbljMHEmDYutp7q2/4dx2HzwEh7oiVjLg0UrCHl9A5yAfWK
1ZYJtFwgjaz0grLRNE+Mvy5CeO0rPwXmZvulFjhRVLCkmrmnwhuFLEPbYN/gLkvo
B/WKjPuy2Nk9gG3yUznxISN2mG+fW95sVLeJH2gP23NBugIgXC+PwrF4TTIrYahj
LPzWqPcptzmLq9Lwy23NIglvKpeXOjJB84Mq4WIVrHwM0+K02A8Jf0E+Q1FzP34y
daswSMZQmw/7LII0JWkFmoDAU8asIuk92OzMaNXjKEEez/ZiNGGyHvxLelImpQ2g
D4LWdeDOu1YIW9Ymcfj7xhLxO/td/0n0qIbtAryJ/6ddEyIfUOXXzwgL4smT8mvm
etbsFjMJmW/q1HmCf7qb+/6ctoHk6ZhyjmzqW7yk9IrC4CvtV0AHW7XPn6ar6OwH
TFQeW3TKDRsSUS5hW1UaIr5oHT1JDiWhTKCPCUtjfVUchFv/nsVWnPVzuouUrodz
JaagN60PWOwfl4UhmS52rfol8mkf6GKMhXvUg7lOLonvRu0U4JTmCNQfCiE1IAo1
7KKtnVwfiIoHstOaEEtvP5S78b0zMfx6wXeARlTWzvT+fVXZgOk=
=m6m6
-----END PGP SIGNATURE-----
Description: Fix FTBFS with poppler >= 26.02
Several poppler API changes across the 26.02-26.07 releases break the
build:
- 26.02 dropped the SplashOutputDev reverseVideo parameter, made
GfxState::getCTM() return a const std::array<double, 6>& and made
SplashFont::getGlyph() take the clip by const SplashClip&
- 26.04 made Object::getString() return a const std::string&
- 26.05 removed the SplashCoord alias to double
- 26.06 made GfxColorSpace::getRGB() take a const GfxColor& and
Annot::getColor() return a const AnnotColor*
- 26.07 made Catalog::indexToLabel() take a std::string*
Each change is guarded by the existing integer POPPLER_VERSION check,
so older poppler still builds
Author: Nadzeya Hutsko <[email protected]>
Bug-Ubuntu: https://bugs.launchpad.net/bugs/2161719
Forwarded: no
Last-Update: 2026-07-24
--- a/pdf-backend.cc
+++ b/pdf-backend.cc
@@ -164,7 +164,12 @@
pdf::gfx::RgbColor rgb_cc;
for (int i = 0; i < 4; i++)
cmyk_cc.c[i] = pdf::gfx::double_as_color_component(cmyk[i]);
+#if POPPLER_VERSION >= 260600
+ // poppler 26.06 changed getRGB() to take a const GfxColor &
+ cmyk_space.getRGB(cmyk_cc, &rgb_cc);
+#else
cmyk_space.getRGB(&cmyk_cc, &rgb_cc);
+#endif
rgb[0] = pdf::gfx::color_component_as_double(rgb_cc.r);
rgb[1] = pdf::gfx::color_component_as_double(rgb_cc.g);
rgb[2] = pdf::gfx::color_component_as_double(rgb_cc.b);
@@ -176,7 +181,12 @@
std::string border_color;
if (annotation->getType() != pdf::ant::Annotation::typeLink)
return true;
+#if POPPLER_VERSION >= 260600
+ // poppler 26.06 made Annot::getColor() return a const AnnotColor *
+ const pdf::ant::Color *color = annotation->getColor();
+#else
pdf::ant::Color *color = annotation->getColor();
+#endif
if (color == nullptr)
{
border_colors.push_back("");
@@ -411,7 +421,12 @@
char tzs = 0; int tzh = 0, tzm = 0;
if (!pdf::dict_lookup(info_dict, field.first, &object)->isString())
continue;
+#if POPPLER_VERSION >= 260400
+ // poppler 26.04 made Object::getString() return a const std::string &
+ const char *input = object.getString().c_str();
+#else
const char *input = pdf::get_c_string(object.getString());
+#endif
if (input[0] == 'D' && input[1] == ':')
input += 2;
int year = scan_date_digits(input, 4);
@@ -474,7 +489,12 @@
bool pdf::Environment::antialias = false;
pdf::Renderer::Renderer(pdf::splash::Color &paper_color, bool monochrome)
+#if POPPLER_VERSION >= 260200
+// poppler 26.02 dropped the reverseVideo parameter
+: pdf::splash::OutputDevice(monochrome ? splashModeMono1 : splashModeRGB8, 4,
paper_color)
+#else
: pdf::splash::OutputDevice(monochrome ? splashModeMono1 : splashModeRGB8, 4,
false, paper_color)
+#endif
{
this->setFontAntialias(pdf::Environment::antialias);
this->setVectorAntialias(pdf::Environment::antialias);
@@ -503,7 +523,10 @@
return false;
splash::ClipResult clip_result;
if (!font->getGlyph(code, 0, 0, bitmap, static_cast<int>(x),
static_cast<int>(y),
-#if POPPLER_VERSION >= 260100
+#if POPPLER_VERSION >= 260200
+ // poppler 26.02 made getGlyph() take the clip by const SplashClip &
+ splash->getClip(),
+#elif POPPLER_VERSION >= 260100
const_cast<SplashClip*>(&splash->getClip()),
#else
splash->getClip(),
--- a/pdf-backend.hh
+++ b/pdf-backend.hh
@@ -63,7 +63,12 @@
typedef ::Splash Splash;
typedef ::SplashColor Color;
typedef ::SplashFont Font;
+#if POPPLER_VERSION >= 260500
+ // poppler 26.05 removed the SplashCoord alias to double
+ typedef double Coord;
+#else
typedef ::SplashCoord Coord;
+#endif
typedef ::SplashPath Path;
typedef ::SplashGlyphBitmap GlyphBitmap;
typedef ::SplashBitmap Bitmap;
--- a/pdf-document-map.cc
+++ b/pdf-document-map.cc
@@ -41,11 +41,21 @@
std::unique_ptr<pdf::Document> doc(new pdf::Document(path));
pdf::Catalog *catalog = doc->getCatalog();
for (int i = 0; i < doc->getNumPages(); i++) {
+#if POPPLER_VERSION >= 260700
+ // poppler 26.07 made Catalog::indexToLabel take a std::string
*
+ std::string s;
+ if (catalog->indexToLabel(i, &s)) {
+ pdf::String gs(s);
+ std::string str = pdf::string_as_utf8(&gs);
+ this->labels.push_back(str);
+ }
+#else
pdf::String s;
if (catalog->indexToLabel(i, &s)) {
std::string str = pdf::string_as_utf8(&s);
this->labels.push_back(str);
}
+#endif
else
this->labels.push_back("");
global_index++;
--- a/pdf-dpi.cc
+++ b/pdf-dpi.cc
@@ -91,7 +91,12 @@
void DpiGuessDevice::process_image(pdf::gfx::State *state, int width, int
height)
{
+#if POPPLER_VERSION >= 260200
+ // poppler 26.02 made getCTM() return a const std::array<double, 6> &
+ const double *ctm = state->getCTM().data();
+#else
const double *ctm = state->getCTM();
+#endif
double h_dpi = 72.0 * width / hypot(ctm[0], ctm[1]);
double v_dpi = 72.0 * height / hypot(ctm[2], ctm[3]);
this->min_ = std::min(this->min_, std::min(h_dpi, v_dpi));
--- a/pdf-unicode.cc
+++ b/pdf-unicode.cc
@@ -117,7 +117,13 @@
std::string pdf::string_as_utf8(pdf::Object &object)
{
+#if POPPLER_VERSION >= 260400
+ // poppler 26.04 made Object::getString() return a const std::string &
+ pdf::String s(object.getString());
+ return pdf::string_as_utf8(&s);
+#else
return pdf::string_as_utf8(object.getString());
+#endif
}
/* class pdf::FullNFKC
--- End Message ---
--- Begin Message ---
Source: pdf2djvu
Source-Version: 0.9.18.2-2.3
Done: Nadzeya Hutsko <[email protected]>
We believe that the bug you reported is fixed in the latest version of
pdf2djvu, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Nadzeya Hutsko <[email protected]> (supplier of updated pdf2djvu package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Fri, 14 Aug 2026 15:25:59 +0200
Source: pdf2djvu
Architecture: source
Version: 0.9.18.2-2.3
Distribution: unstable
Urgency: medium
Maintainer: Hsieh-Tseng Shen <[email protected]>
Changed-By: Nadzeya Hutsko <[email protected]>
Closes: 1142706
Changes:
pdf2djvu (0.9.18.2-2.3) unstable; urgency=medium
.
* Non-maintainer upload.
* Fix FTBFS with poppler 26.07 (Closes: #1142706)
Checksums-Sha1:
e1306575172b09c519bed67f35bd59545ec3392b 2272 pdf2djvu_0.9.18.2-2.3.dsc
d57fc9ff20b7fe505666aa91bbe057e3aed18ef0 20064
pdf2djvu_0.9.18.2-2.3.debian.tar.xz
b55337a4ca6cf95293ff604cb9ed94e49015ae70 11164
pdf2djvu_0.9.18.2-2.3_amd64.buildinfo
Checksums-Sha256:
52798cb196306048754197c2410097877faf5287fd3c1587e9f7fbec750b20d8 2272
pdf2djvu_0.9.18.2-2.3.dsc
d0e2c60e0fb160540cb79e11a92c678198ff90772736619ff19c79145d94747c 20064
pdf2djvu_0.9.18.2-2.3.debian.tar.xz
a897dc4d54ef4897b1e0b7d3ee2e302147e1f0d799ea0d05bdb6c177895dba50 11164
pdf2djvu_0.9.18.2-2.3_amd64.buildinfo
Files:
45b44e3fcf91620456d12a5f479e4bff 2272 text optional pdf2djvu_0.9.18.2-2.3.dsc
72d9eecaca5dcbd6ae483a70d196acdf 20064 text optional
pdf2djvu_0.9.18.2-2.3.debian.tar.xz
d3c9c64ff995e80d29a0e710b5a13562 11164 text optional
pdf2djvu_0.9.18.2-2.3_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEuVOE/FJ0HcdfWSw//lAdKwFeZPsFAmp/GcUACgkQ/lAdKwFe
ZPvkFRAAgVwFJ3YddwZZZ/TyeJh/XksTHD1WTeJHehF2a9kNHt+4jCbSqkaW3d9s
D+aMBVbR2ScJFtb77TkU+Nmk+yJdesBvD0TKEkLy5VdqhE/gaqSRZPNtKSXc7n9q
eTCaIF57Z4QZ/pj8ttPxQ2um7Hmc253ivEOEAkMREE238S5mYc8z26HYmmoNnQft
KXzWGpCgMJ1CWdMaXnG32xZRVjEHD4V+LuKpRnB8+4TM3GH0ocZkmBSDVxqvKo7Z
atn60wbkhLspzqpSDhi2OeF9XyZdddADpgEODmDTDtKscLs004J6+xyQG1dF2jU7
yM4+YViGeihEJRX1bo63MGOugtbygVpAK3/Vr2v65duriyZRbcI3khsDQ2wPqyRc
VD7dv11D8AuixIh9Y4IzG8e/v22MhBWvHOAeSmsdI51R8RowvmFnIvbvwrnsJzy1
p8vXMJEcAXlZ00Kcz+qAroVJ5Y7vW1Zu4kfWFsG/2P/NAcHkS4uI0EW8HuuawB7H
NKos3gEvgbjKQ8Czy2HdkKMaa2jRVYwiyUFX1RNq1Ts4N1jM5Cj7fF5Ws1Ehh77R
e4sm4rDTbOpH2ADZn5lxx1f674YARyZwf2EL86iAZ8GWQ8uVObF0mz7YB6TrvK5U
mN3CzjsfQpzAEwZ95DatFHnAQx34RztPIyA6U3AvJ6FHry9warI=
=fT6v
-----END PGP SIGNATURE-----
pgp_qNOeR6Pch.pgp
Description: PGP signature
--- End Message ---