Bug#1107718: djvubind: program fails with tif, pnm, pbm, pgm and ppm images
Package: djvubind
Version: 1.2.1-5
Severity: important
X-Debbugs-Cc: piccardi@truelite.it
Dear Maintainer,
the program fails with the mentioned files format, that according to the list
in line #393 of the command (/usr/bin/djvubind) should be supported as the
ones choosen to build the page list. I could get a djvu only using pbm
monochromatic format.
If using any other format it crash with an exception as described in bug
#1107584, it seems always for the same reason.
It fails when running cjb2 using the file it itself create in the _csepdjvu
function of /usr/lib/python3/dist-packages/djvubind/encode.py
What I found is that the crash happens when processing the first image of the
batch, as the following
* at line 134 of /usr/lib/python3/dist-packages/djvubind/encode.py it converts
the image from the original format to a TIFF image named temp_textual.tif
using the command: convert image001.tif +opaque black -monochrome temp_textual.tif
* at line 137 of /usr/lib/python3/dist-packages/djvubind/encode.py it calls
the _cjb2 function of the same file to process temp_textual.tif to
enc_bitonal_out.djvu
* in the functions _cjb2 at line 83 and 84 of
/usr/lib/python3/dist-packages/djvubind/encode.py it build and then ask for
the execution of the command (I got it by a print):
cjb2 -dpi 350 -lossy temp_textual.tif enc_bitonal_out.djvu
* the command fails (I tested it directly in the file temp_textual.tif) with
the following output:
$ cjb2 -dpi 350 -lossy temp_textual.tif enc_bitonal_out.djvu
*** Tiff image is not bitonal
*** (cjb2.cpp:754)
*** 'void read_tiff(CCImage&, DJVU::ByteStream*, cjb2opts&)'
* because #1107584 just an exception is reported
The only way I got to have the program give me an output is to change, in
/usr/lib/python3/dist-packages/djvubind/encode.py, the name of
temp_textual.tif in temp_textual.pbm, so that cjb2 is called as:
cjb2 -dpi 350 -lossy temp_textual.pbm enc_bitonal_out.djvu
that's do not fails.
I noted that in /usr/lib/python3/dist-packages/djvubind/encode.py, at line 76,
a temporary pbm image is created if the input file passed to _cjb2 is not in
the tif, pbm, pgm, pnm, rle format so cjb2 should be capable to process a
monocromatic tiff.
I'm nor an imagemagick or a djvu tools expert so I don't know if the problem
is something wrong in the temp_textual.tif creation by convert, or in the
processing of that tif by cjb2, but it seems that the only format supported
here should be pbm.
I tested this on a bookworm workstation, but I could reproduce the same
behaviour also using the testing (trixie) version of the programs.
-- System Information:
Debian Release: 12.11
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable'), (100, 'bookworm-fasttrack'), (100, 'bookworm-backports-staging')
Architecture: amd64 (x86_64)
Kernel: Linux 6.1.0-33-amd64 (SMP w/6 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE
Locale: LANG=it_IT.UTF-8, LC_CTYPE=it_IT.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages djvubind depends on:
ii djvulibre-bin 3.5.28-2+b1
ii imagemagick 8:6.9.11.60+dfsg-1.6+deb12u3
ii imagemagick-6.q16 [imagemagick] 8:6.9.11.60+dfsg-1.6+deb12u3
ii python3 3.11.2-1+b1
ii tesseract-ocr 5.3.0-2
Versions of packages djvubind recommends:
ii minidjvu 0.8.svn.2010.05.06+dfsg-6+b2
djvubind suggests no packages.
-- no debconf information
Reply to: