Package: src:img2pdf
Version: 0.6.0-3
Severity: serious
Tags: ftbfs trixie sid
Dear maintainer:
During a rebuild of all packages in unstable, your package failed to build:
--------------------------------------------------------------------------------
[...]
debian/rules clean
dh clean --with python3 --buildsystem=pybuild
debian/rules execute_before_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
rm -f img2pdf.1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_clean -O--buildsystem=pybuild
I: pybuild base:311: python3.13 setup.py clean /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
[... snipped ...]
im2,
"null:",
],
check=False,
stderr=subprocess.PIPE,
).stderr
assert psnr != b"0"
assert psnr != b"0 (0)"
assert psnr_re.fullmatch(psnr) is not None, psnr
E AssertionError: b'4.27547e-05 (8.87677e-07)'
E assert None is not None
E + where None = <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60>(b'4.27547e-05 (8.87677e-07)')
E + where <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60> = re.compile(b'((?:inf|(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?))(?: \\([0-9.]+\\))?').fullmatch
img2pdf_test.py:393: AssertionError
----------------------------- Captured stderr call -----------------------------
0 (0)
__________________________ test_png_gray16[internal] ___________________________
tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x7f3db4df56e0>, _basetemp=PosixPath('/tmp/pytest-of-buildd/pytest-0'), _retention_count=3, _retention_policy='all')
png_gray16_img = PosixPath('/tmp/pytest-of-buildd/pytest-0/gray16_png0/gray16.png')
png_gray16_pdf = PosixPath('/tmp/pytest-of-buildd/pytest-0/png_gray16_pdf0/out.pdf')
@pytest.mark.skipif(
sys.platform in ["win32"],
reason="test utilities not available on Windows and MacOS",
)
def test_png_gray16(tmp_path_factory, png_gray16_img, png_gray16_pdf):
tmpdir = tmp_path_factory.mktemp("png_gray16")
# ghostscript outputs 8-bit grayscale, so the comparison will not be exact
compare_ghostscript(
tmpdir, png_gray16_img, png_gray16_pdf, gsdevice="pnggray", exact=False
)
img2pdf_test.py:5802:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ img2pdf_test.py:419: in compare_ghostscript
compare(str(img), str(tmpdir / "gs-1.") + ext, exact, icc, False)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im1 = '/tmp/pytest-of-buildd/pytest-0/gray16_png0/gray16.png'
im2 = '/tmp/pytest-of-buildd/pytest-0/png_gray160/gs-1.png', exact = False
icc = False, cmyk = False
def compare(im1, im2, exact, icc, cmyk):
if exact:
if cmyk and not HAVE_EXACT_CMYK8:
raise Exception("cmyk cannot be exact before ImageMagick 7.1.0-48")
elif icc:
raise Exception("icc cannot be exact")
else:
subprocess.check_call(
COMPARE
+ [
"-metric",
"AE",
"-alpha",
"off",
im1,
im2,
"null:",
]
)
else:
iccargs = []
if icc:
if ICC_PROFILE is None:
pytest.skip("Could not locate an ICC profile")
iccargs = ["-profile", ICC_PROFILE]
psnr = subprocess.run(
COMPARE
+ iccargs
+ [
"-metric",
"PSNR",
im1,
im2,
"null:",
],
check=False,
stderr=subprocess.PIPE,
).stderr
assert psnr != b"0"
assert psnr != b"0 (0)"
assert psnr_re.fullmatch(psnr) is not None, psnr
E AssertionError: b'4.24454e-05 (8.81255e-07)'
E assert None is not None
E + where None = <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60>(b'4.24454e-05 (8.81255e-07)')
E + where <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60> = re.compile(b'((?:inf|(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?))(?: \\([0-9.]+\\))?').fullmatch
img2pdf_test.py:393: AssertionError
___________________________ test_png_gray16[pikepdf] ___________________________
tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x7f3db4df56e0>, _basetemp=PosixPath('/tmp/pytest-of-buildd/pytest-0'), _retention_count=3, _retention_policy='all')
png_gray16_img = PosixPath('/tmp/pytest-of-buildd/pytest-0/gray16_png0/gray16.png')
png_gray16_pdf = PosixPath('/tmp/pytest-of-buildd/pytest-0/png_gray16_pdf1/out.pdf')
@pytest.mark.skipif(
sys.platform in ["win32"],
reason="test utilities not available on Windows and MacOS",
)
def test_png_gray16(tmp_path_factory, png_gray16_img, png_gray16_pdf):
tmpdir = tmp_path_factory.mktemp("png_gray16")
# ghostscript outputs 8-bit grayscale, so the comparison will not be exact
compare_ghostscript(
tmpdir, png_gray16_img, png_gray16_pdf, gsdevice="pnggray", exact=False
)
img2pdf_test.py:5802:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ img2pdf_test.py:419: in compare_ghostscript
compare(str(img), str(tmpdir / "gs-1.") + ext, exact, icc, False)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im1 = '/tmp/pytest-of-buildd/pytest-0/gray16_png0/gray16.png'
im2 = '/tmp/pytest-of-buildd/pytest-0/png_gray161/gs-1.png', exact = False
icc = False, cmyk = False
def compare(im1, im2, exact, icc, cmyk):
if exact:
if cmyk and not HAVE_EXACT_CMYK8:
raise Exception("cmyk cannot be exact before ImageMagick 7.1.0-48")
elif icc:
raise Exception("icc cannot be exact")
else:
subprocess.check_call(
COMPARE
+ [
"-metric",
"AE",
"-alpha",
"off",
im1,
im2,
"null:",
]
)
else:
iccargs = []
if icc:
if ICC_PROFILE is None:
pytest.skip("Could not locate an ICC profile")
iccargs = ["-profile", ICC_PROFILE]
psnr = subprocess.run(
COMPARE
+ iccargs
+ [
"-metric",
"PSNR",
im1,
im2,
"null:",
],
check=False,
stderr=subprocess.PIPE,
).stderr
assert psnr != b"0"
assert psnr != b"0 (0)"
assert psnr_re.fullmatch(psnr) is not None, psnr
E AssertionError: b'4.24454e-05 (8.81255e-07)'
E assert None is not None
E + where None = <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60>(b'4.24454e-05 (8.81255e-07)')
E + where <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60> = re.compile(b'((?:inf|(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?))(?: \\([0-9.]+\\))?').fullmatch
img2pdf_test.py:393: AssertionError
____________________________ test_png_icc[internal] ____________________________
tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x7f3db4df56e0>, _basetemp=PosixPath('/tmp/pytest-of-buildd/pytest-0'), _retention_count=3, _retention_policy='all')
png_icc_img = PosixPath('/tmp/pytest-of-buildd/pytest-0/icc_png0/icc.png') png_icc_pdf = PosixPath('/tmp/pytest-of-buildd/pytest-0/png_icc_pdf0/out.pdf')
@pytest.mark.skipif(
sys.platform in ["darwin", "win32"],
reason="test utilities not available on Windows and MacOS",
)
def test_png_icc(tmp_path_factory, png_icc_img, png_icc_pdf):
tmpdir = tmp_path_factory.mktemp("png_icc")
compare_ghostscript(tmpdir, png_icc_img, png_icc_pdf, exact=False, icc=True)
img2pdf_test.py:5865:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ img2pdf_test.py:419: in compare_ghostscript
compare(str(img), str(tmpdir / "gs-1.") + ext, exact, icc, False)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im1 = '/tmp/pytest-of-buildd/pytest-0/icc_png0/icc.png'
im2 = '/tmp/pytest-of-buildd/pytest-0/png_icc0/gs-1.png', exact = False
icc = True, cmyk = False
def compare(im1, im2, exact, icc, cmyk):
if exact:
if cmyk and not HAVE_EXACT_CMYK8:
raise Exception("cmyk cannot be exact before ImageMagick 7.1.0-48")
elif icc:
raise Exception("icc cannot be exact")
else:
subprocess.check_call(
COMPARE
+ [
"-metric",
"AE",
"-alpha",
"off",
im1,
im2,
"null:",
]
)
else:
iccargs = []
if icc:
if ICC_PROFILE is None:
pytest.skip("Could not locate an ICC profile")
iccargs = ["-profile", ICC_PROFILE]
psnr = subprocess.run(
COMPARE
+ iccargs
+ [
"-metric",
"PSNR",
im1,
im2,
"null:",
],
check=False,
stderr=subprocess.PIPE,
).stderr
assert psnr != b"0"
assert psnr != b"0 (0)"
assert psnr_re.fullmatch(psnr) is not None, psnr
E AssertionError: b'3.37532e-05 (7.00788e-07)'
E assert None is not None
E + where None = <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60>(b'3.37532e-05 (7.00788e-07)')
E + where <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60> = re.compile(b'((?:inf|(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?))(?: \\([0-9.]+\\))?').fullmatch
img2pdf_test.py:393: AssertionError
____________________________ test_png_icc[pikepdf] _____________________________
tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x7f3db4df56e0>, _basetemp=PosixPath('/tmp/pytest-of-buildd/pytest-0'), _retention_count=3, _retention_policy='all')
png_icc_img = PosixPath('/tmp/pytest-of-buildd/pytest-0/icc_png0/icc.png') png_icc_pdf = PosixPath('/tmp/pytest-of-buildd/pytest-0/png_icc_pdf1/out.pdf')
@pytest.mark.skipif(
sys.platform in ["darwin", "win32"],
reason="test utilities not available on Windows and MacOS",
)
def test_png_icc(tmp_path_factory, png_icc_img, png_icc_pdf):
tmpdir = tmp_path_factory.mktemp("png_icc")
compare_ghostscript(tmpdir, png_icc_img, png_icc_pdf, exact=False, icc=True)
img2pdf_test.py:5865:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ img2pdf_test.py:419: in compare_ghostscript
compare(str(img), str(tmpdir / "gs-1.") + ext, exact, icc, False)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im1 = '/tmp/pytest-of-buildd/pytest-0/icc_png0/icc.png'
im2 = '/tmp/pytest-of-buildd/pytest-0/png_icc1/gs-1.png', exact = False
icc = True, cmyk = False
def compare(im1, im2, exact, icc, cmyk):
if exact:
if cmyk and not HAVE_EXACT_CMYK8:
raise Exception("cmyk cannot be exact before ImageMagick 7.1.0-48")
elif icc:
raise Exception("icc cannot be exact")
else:
subprocess.check_call(
COMPARE
+ [
"-metric",
"AE",
"-alpha",
"off",
im1,
im2,
"null:",
]
)
else:
iccargs = []
if icc:
if ICC_PROFILE is None:
pytest.skip("Could not locate an ICC profile")
iccargs = ["-profile", ICC_PROFILE]
psnr = subprocess.run(
COMPARE
+ iccargs
+ [
"-metric",
"PSNR",
im1,
im2,
"null:",
],
check=False,
stderr=subprocess.PIPE,
).stderr
assert psnr != b"0"
assert psnr != b"0 (0)"
assert psnr_re.fullmatch(psnr) is not None, psnr
E AssertionError: b'3.37532e-05 (7.00788e-07)'
E assert None is not None
E + where None = <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60>(b'3.37532e-05 (7.00788e-07)')
E + where <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60> = re.compile(b'((?:inf|(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?))(?: \\([0-9.]+\\))?').fullmatch
img2pdf_test.py:393: AssertionError
__________________________ test_miff_cmyk16[internal] __________________________
tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x7f3db4df56e0>, _basetemp=PosixPath('/tmp/pytest-of-buildd/pytest-0'), _retention_count=3, _retention_policy='all')
miff_cmyk16_img = PosixPath('/tmp/pytest-of-buildd/pytest-0/miff_cmyk160/in.miff')
tiff_cmyk16_img = PosixPath('/tmp/pytest-of-buildd/pytest-0/tiff_cmyk160/in.tiff')
miff_cmyk16_pdf = PosixPath('/tmp/pytest-of-buildd/pytest-0/miff_cmyk16_pdf0/out.pdf')
@pytest.mark.skipif(
sys.platform in ["win32"],
reason="test utilities not available on Windows and MacOS",
)
@pytest.mark.skipif(
platform.machine() == "s390x",
reason="
https://github.com/ImageMagick/ImageMagick/issues/8055",
)
def test_miff_cmyk16(
tmp_path_factory, miff_cmyk16_img, tiff_cmyk16_img, miff_cmyk16_pdf
):
tmpdir = tmp_path_factory.mktemp("miff_cmyk16")
compare_ghostscript(
tmpdir, tiff_cmyk16_img, miff_cmyk16_pdf, gsdevice="tiff32nc", exact=False
)
img2pdf_test.py:6454:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ img2pdf_test.py:419: in compare_ghostscript
compare(str(img), str(tmpdir / "gs-1.") + ext, exact, icc, False)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im1 = '/tmp/pytest-of-buildd/pytest-0/tiff_cmyk160/in.tiff'
im2 = '/tmp/pytest-of-buildd/pytest-0/miff_cmyk161/gs-1.tiff', exact = False icc = False, cmyk = False
def compare(im1, im2, exact, icc, cmyk):
if exact:
if cmyk and not HAVE_EXACT_CMYK8:
raise Exception("cmyk cannot be exact before ImageMagick 7.1.0-48")
elif icc:
raise Exception("icc cannot be exact")
else:
subprocess.check_call(
COMPARE
+ [
"-metric",
"AE",
"-alpha",
"off",
im1,
im2,
"null:",
]
)
else:
iccargs = []
if icc:
if ICC_PROFILE is None:
pytest.skip("Could not locate an ICC profile")
iccargs = ["-profile", ICC_PROFILE]
psnr = subprocess.run(
COMPARE
+ iccargs
+ [
"-metric",
"PSNR",
im1,
im2,
"null:",
],
check=False,
stderr=subprocess.PIPE,
).stderr
assert psnr != b"0"
assert psnr != b"0 (0)"
assert psnr_re.fullmatch(psnr) is not None, psnr
E AssertionError: b'4.1089e-06 (8.53093e-08)'
E assert None is not None
E + where None = <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60>(b'4.1089e-06 (8.53093e-08)')
E + where <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60> = re.compile(b'((?:inf|(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?))(?: \\([0-9.]+\\))?').fullmatch
img2pdf_test.py:393: AssertionError
__________________________ test_miff_cmyk16[pikepdf] ___________________________
tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x7f3db4df56e0>, _basetemp=PosixPath('/tmp/pytest-of-buildd/pytest-0'), _retention_count=3, _retention_policy='all')
miff_cmyk16_img = PosixPath('/tmp/pytest-of-buildd/pytest-0/miff_cmyk160/in.miff')
tiff_cmyk16_img = PosixPath('/tmp/pytest-of-buildd/pytest-0/tiff_cmyk160/in.tiff')
miff_cmyk16_pdf = PosixPath('/tmp/pytest-of-buildd/pytest-0/miff_cmyk16_pdf1/out.pdf')
@pytest.mark.skipif(
sys.platform in ["win32"],
reason="test utilities not available on Windows and MacOS",
)
@pytest.mark.skipif(
platform.machine() == "s390x",
reason="
https://github.com/ImageMagick/ImageMagick/issues/8055",
)
def test_miff_cmyk16(
tmp_path_factory, miff_cmyk16_img, tiff_cmyk16_img, miff_cmyk16_pdf
):
tmpdir = tmp_path_factory.mktemp("miff_cmyk16")
compare_ghostscript(
tmpdir, tiff_cmyk16_img, miff_cmyk16_pdf, gsdevice="tiff32nc", exact=False
)
img2pdf_test.py:6454:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ img2pdf_test.py:419: in compare_ghostscript
compare(str(img), str(tmpdir / "gs-1.") + ext, exact, icc, False)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
im1 = '/tmp/pytest-of-buildd/pytest-0/tiff_cmyk160/in.tiff'
im2 = '/tmp/pytest-of-buildd/pytest-0/miff_cmyk162/gs-1.tiff', exact = False icc = False, cmyk = False
def compare(im1, im2, exact, icc, cmyk):
if exact:
if cmyk and not HAVE_EXACT_CMYK8:
raise Exception("cmyk cannot be exact before ImageMagick 7.1.0-48")
elif icc:
raise Exception("icc cannot be exact")
else:
subprocess.check_call(
COMPARE
+ [
"-metric",
"AE",
"-alpha",
"off",
im1,
im2,
"null:",
]
)
else:
iccargs = []
if icc:
if ICC_PROFILE is None:
pytest.skip("Could not locate an ICC profile")
iccargs = ["-profile", ICC_PROFILE]
psnr = subprocess.run(
COMPARE
+ iccargs
+ [
"-metric",
"PSNR",
im1,
im2,
"null:",
],
check=False,
stderr=subprocess.PIPE,
).stderr
assert psnr != b"0"
assert psnr != b"0 (0)"
assert psnr_re.fullmatch(psnr) is not None, psnr
E AssertionError: b'4.1089e-06 (8.53093e-08)'
E assert None is not None
E + where None = <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60>(b'4.1089e-06 (8.53093e-08)')
E + where <built-in method fullmatch of re.Pattern object at 0x7f3db1f93a60> = re.compile(b'((?:inf|(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?))(?: \\([0-9.]+\\))?').fullmatch
img2pdf_test.py:393: AssertionError
=========================== short test summary info ============================
FAILED img2pdf_test.py::test_png_rgb16[internal] - AssertionError: b'4.27547e...
FAILED img2pdf_test.py::test_png_rgb16[pikepdf] - AssertionError: b'4.27547e-...
FAILED img2pdf_test.py::test_png_gray16[internal] - AssertionError: b'4.24454...
FAILED img2pdf_test.py::test_png_gray16[pikepdf] - AssertionError: b'4.24454e...
FAILED img2pdf_test.py::test_png_icc[internal] - AssertionError: b'3.37532e-0...
FAILED img2pdf_test.py::test_png_icc[pikepdf] - AssertionError: b'3.37532e-05...
FAILED img2pdf_test.py::test_miff_cmyk16[internal] - AssertionError: b'4.1089...
FAILED img2pdf_test.py::test_miff_cmyk16[pikepdf] - AssertionError: b'4.1089e...
======================== 8 failed, 344 passed in 31.25s ========================
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
make: *** [debian/rules:9: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------
The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:
https://people.debian.org/~sanvila/build-logs/202504/
About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages.
If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.
If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:img2pdf, so that this is still
visible in the BTS web page for this package.
Thanks.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)