• Bug#1103190: img2pdf: FTBFS: AssertionError: b'4.1089e-06 (8.53093e-08)

    From Santiago Vila@21:1/5 to All on Tue Apr 15 02:30:02 2025
    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)
  • From Johannes Schauer Marin Rodrigues@21:1/5 to All on Sun Apr 27 09:30:01 2025
    Control: forward -1 https://github.com/ImageMagick/ImageMagick/issues/8120

    Quoting Santiago Vila (2025-04-15 02:19:21)
    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

    The immediate problem is that the regex does not match but the underlying reason is that the output value changed. I reported the problem to imagemagick upstream.

    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.

    It's unclear where the bug is. Lets re-assign it once we have imagemagick's upstream opinion.

    Thanks!

    cheers, josch
    --==============95175026050930023=MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Description: signature
    Content-Type: application/pgp-signature; name="signature.asc"; charset="us-ascii"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEElFhU6KL81LF4wVq58sulx4+9g+EFAmgN2xsACgkQ8sulx4+9 g+HVKw/+MBjT1HgiDZ0gcrPCRBG1sqhFrLLUZK79FqMQUb/tbI9YZ+Gs1TJvTtUF ft94kZTwXe2f/iqKcl8so2NSby01RsUmdplgrVVdjuNJ11w40WVfQNLqDAobbi7d dfYgRPytyypLnXBt+3JSEMBVK+hLfyU14CfOjaJ3PMYwkNrU70k2cBxz90I/xn52 Cskq570eSieJq4daM9Pa16Z3pSJgxVyA5/NmJ8X6dUFWAT+25xLLtqAGztn4TjOk bza238eAbx+lLvilV9DyGKJwCvUERqnznXIsGNmFka8GtG5dNiO7+X+/E8+AiTwo d1gMvBy8zZDCJZVevqg2saU5VCqSt1ONVenDxWxWMINDBYVoen1I8pH6/H13CgAt nydoZCL4IoPJNvB449SuTyLOCXzLipDiympnwvT3nUgzD4SIdq+K1939QP4Hfdf9 50RKVejclZxsFdZ59s9LfoeamOJTerSUg19qs93a2CsYkRv6cVx/h8sQI3cVaAHY R/aGxzLjP9e/ZP9OlQYPBphLl138h7bCecVWPMRt+5+veMGim4Eg+I26jCme98Nx Rbu3bxuK5SXkr2HzoP20QK7NUalKcjpiErZ8pQQaVdDrMZimzCisGx05byn2U9Cb ut3bhp0j6QcIQMkU3mDbkrft7Fja2Z3dSK5/OQuG/fow937to6Q=
    =CJe4
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Johannes Schauer Marin Rodrigues@21:1/5 to All on Tue Apr 29 00:00:01 2025
    Hi,

    Quoting Santiago Vila (2025-04-28 21:18:07)
    Version 0.6.1-1 uploaded yesterday builds ok in both my setup and the official buildds.

    I'm not sure where the bug is/was, but if you consider this to be a bug in img2pdf, then the bug is fixed in 0.6.1-1.

    no, the changelog of my last upload contains a line explaining that I disabled the compilation tests. Reason is that I'm in the middle of figuring out where the problem is and for that it would be good if I could run the img2pdf autopkgtest on debci against imagemagick in unstable but that can only happen after img2pdf compiled successfully and for that I have to temporarily disable the tests.

    I'm still in the process of bisecting quite a few things. You can see the progress of this in the upstream bug I linked this bug to. I also encountered a new problem as well where new imagemagick creates json with a number formatted as "nan" which python json does not understand (it wants "NaN" it seems).

    It is not clear where this bug is because it's not clear to attach a "fault" to either. Maybe img2pdf has to learn about "nan" or maybe imagemagick should have to emit "NaN".

    So still in the middle of debugging this...

    Thanks!

    cheers, josch
    --==============f09213364516080418=MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Description: signature
    Content-Type: application/pgp-signature; name="signature.asc"; charset="us-ascii"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEElFhU6KL81LF4wVq58sulx4+9g+EFAmgP98oACgkQ8sulx4+9 g+ENdA/+NnkTaZOZLPtBM8Kh7blKoc5W7uVbDaw2JmutmiCxkn+cQ5xlG/OExgzU QP8ZmlMLS0/zvU2AtysL/eW4gtMnks1brypXOWXgd7zr0H8Fwu4/BL/x/rK51abI YsFdGzhoZ7gIqYzdnYqoBbcYDbk/APN42mav+K8woo5SH0kKsAyDQFVjT107mRa6 1tWlJYSZKwXUT60cqIZYCV3so4SF7qrDquvVh/QHUR6YwpVcJxzFBsG9fTvOlV3x g8szewJr3dZfHBCpfIVo/2voHZ2+/wjUXc0zEj0IsTJmxNvQqYUlKj9UH0FeaMty XuQ+0hS20EsR+VP6H9+Qu6bgTux66OqXNm+ckPKjZD+pt6Z+VarmfcIhAOweydNu sBjhx31zWwMy1W8l+uyoiWCPUhTAgUZQM67qDGxSFj6CzBB9IRBMv4gbDc+cBDhQ zxH5kdmu6MH7e54qaDUFOYkWwgX4BDnv1m9QXbs/Bd7vITWKRwQOui5/LXXUmtkV 5viCmghF8XAa6mObIS2pAO66troI7KMaL4cY4ne2k7MqLffawyF8sQOfDakApBXU TslbQUCFt7BN5DkRYU9wk5T/fk4Uiv412Nn/pzRwNDw7PoY3CrMz+gb0cfMr/3fK XJNu/VvItC9nzeLuoALVp99R2m5wZ9VNSKpTL4TgSJFouMMx5Z0=
    =/qMr
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Johannes Schauer Marin Rodrigues@21:1/5 to All on Sat May 10 15:20:01 2025
    Hi Paul,

    Quoting Paul Gevers (2025-05-10 14:34:59)
    On Mon, 28 Apr 2025 23:48:58 +0200 Johannes Schauer Marin Rodrigues <josch@debian.org> wrote:
    It is not clear where this bug is because it's not clear to attach a "fault" to
    either. Maybe img2pdf has to learn about "nan" or maybe imagemagick should have
    to emit "NaN".

    So still in the middle of debugging this...

    Did you have any progress?

    yes, the problem is fixed in current upstream imagemagick git.

    The problem was, that the last imagemagick version that got uploaded to unstable was a state where upstream shipped broken PSNR comparison metrics. This was known by upstream and they needed some time to fix this. Looking at the issue I filed, the problem seems to be fixed:

    https://github.com/ImageMagick/ImageMagick/issues/8120

    I think a new imagemagick upload is needed. I'm putting Bastien (imagemagick maintainer) in CC but he is aware of this situation.

    Thanks!

    cheers, josch
    --==============09908779060230748=MIME-Version: 1.0
    Content-Transfer-Encoding: 7bit
    Content-Description: signature
    Content-Type: application/pgp-signature; name="signature.asc"; charset="us-ascii"

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEElFhU6KL81LF4wVq58sulx4+9g+EFAmgfT6oACgkQ8sulx4+9 g+Flbg/+L4quVtKlZiFiWAzNTrlAuZiDhFwvt36YE1x3F2WZJSQOzSVAjScqltie Sr5IgOW1LM/B0Sz/tFA2kULlGKv5ICAH8GMp5Z76pDPCk7o6DW9K9rywJ0AdKbgE n4zQJSTwV5EiyFhK+hGWuYIyvs+ekX3KC+9ryJCb6SH/gHy4wWMSkTpVgIIM/Qam 4CD1++FTqTKFFe157YRabJ/qI6TnCvkmMlvlEtMBGA3ds55pHluQES5q1CuGn8P9 l/b/RKQCLDAcqkUgURZKOWdOxlh1GhZ86XNHHbruQrc6IMCvknnL+m7UiualnJqe ea3NcPeh/7/+YlOxA2jNDMBTq2InXCOyfr7n887bMJl2dFZ+SjWDznrizp1WAWFl yYOzCDe+VIpR8nRnpSjvS/uwmH+ADpkXo9qrS/sHjB+dKKSNsAeILSckSdsDj9Vv D2Inwc6RR+YKX12v6Y5xXqybyL6a/hYmGMYEDDMpxZEzEMwasdFfBUr3v7++cbqS 83RdvYIoGeN0J+r3SzOY3DIVZfKBPJZ5Z9WNos3ksmOsipZyGdDHWuncKVrtAy9t q7pJBiyghEjDxf45eX5/6sEm/AEsLYrOhp+7pR7scDA+aTeJ/X8m+VF0r1lr44Bg OvCNPQQxh9YqkhrZLI9UrGQADAXEEdvxEubUCanza3wQYjQgU8Q=
    =UknH
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)