>>> py3-img2pdf: Building community/py3-img2pdf 0.6.1-r0 (using abuild 3.16.0_rc4-r0) started Thu, 20 Nov 2025 06:32:51 +0000 >>> py3-img2pdf: Validating /home/buildozer/aports/community/py3-img2pdf/APKBUILD... >>> py3-img2pdf: Analyzing dependencies... >>> py3-img2pdf: Installing for build: build-base python3 py3-pillow py3-pikepdf py3-gpep517 py3-setuptools qpdf-dev libxml2-dev libxslt-dev py3-wheel coreutils exiftool ghostscript imagemagick mupdf-tools netpbm poppler-utils tiff-tools py3-lxml py3-numpy py3-scipy py3-pytest python3-dev ( 1/144) Installing gdbm (1.26-r0) ( 2/144) Installing xz-libs (5.8.1-r0) ( 3/144) Installing mpdecimal (4.0.1-r0) ( 4/144) Installing libpanelw (6.5_p20251115-r0) ( 5/144) Installing python3 (3.12.12-r0) ( 6/144) Installing python3-pycache-pyc0 (3.12.12-r0) ( 7/144) Installing pyc (3.12.12-r0) ( 8/144) Installing python3-pyc (3.12.12-r0) ( 9/144) Installing libimagequant (4.2.2-r0) ( 10/144) Installing openjpeg (2.5.4-r1) ( 11/144) Installing libsharpyuv (1.6.0-r0) ( 12/144) Installing libwebp (1.6.0-r0) ( 13/144) Installing tiff (4.7.1-r0) ( 14/144) Installing libwebpdemux (1.6.0-r0) ( 15/144) Installing libwebpmux (1.6.0-r0) ( 16/144) Installing py3-pillow (11.3.0-r1) ( 17/144) Installing py3-pillow-pyc (11.3.0-r1) ( 18/144) Installing py3-wrapt (1.17.2-r0) ( 19/144) Installing py3-wrapt-pyc (1.17.2-r0) ( 20/144) Installing py3-deprecated (1.3.1-r0) ( 21/144) Installing py3-deprecated-pyc (1.3.1-r0) ( 22/144) Installing libxml2 (2.13.9-r0) ( 23/144) Installing libxslt (1.1.43-r3) ( 24/144) Installing py3-lxml (6.0.2-r1) ( 25/144) Installing py3-lxml-pyc (6.0.2-r1) ( 26/144) Installing py3-parsing (3.2.3-r0) ( 27/144) Installing py3-parsing-pyc (3.2.3-r0) ( 28/144) Installing py3-packaging (25.0-r0) ( 29/144) Installing py3-packaging-pyc (25.0-r0) ( 30/144) Installing nettle (3.10.2-r0) ( 31/144) Installing gnutls (3.8.8-r0) ( 32/144) Installing qpdf-libs (12.2.0-r0) ( 33/144) Installing py3-pikepdf (9.9.0-r0) ( 34/144) Installing py3-pikepdf-pyc (9.9.0-r0) ( 35/144) Installing py3-installer (0.7.0-r2) ( 36/144) Installing py3-installer-pyc (0.7.0-r2) ( 37/144) Installing py3-gpep517 (19-r1) ( 38/144) Installing py3-gpep517-pyc (19-r1) ( 39/144) Installing py3-setuptools (80.9.0-r2) ( 40/144) Installing py3-setuptools-pyc (80.9.0-r2) ( 41/144) Installing gnutls-c++ (3.8.8-r0) ( 42/144) Installing libgmpxx (6.3.0-r4) ( 43/144) Installing gmp-dev (6.3.0-r4) ( 44/144) Installing nettle-dev (3.10.2-r0) ( 45/144) Installing libidn2-dev (2.3.8-r0) ( 46/144) Installing libtasn1-progs (4.20.0-r0) ( 47/144) Installing libtasn1-dev (4.20.0-r0) ( 48/144) Installing p11-kit-dev (0.25.5-r2) ( 49/144) Installing zlib-dev (1.3.1-r2) ( 50/144) Installing gnutls-dev (3.8.8-r0) ( 51/144) Installing libturbojpeg (3.1.2-r0) ( 52/144) Installing libjpeg-turbo-dev (3.1.2-r0) ( 53/144) Installing openssl-dev (3.5.4-r0) ( 54/144) Installing qpdf-dev (12.2.0-r0) ( 55/144) Installing xz (5.8.1-r0) ( 56/144) Installing xz-dev (5.8.1-r0) ( 57/144) Installing libxml2-utils (2.13.9-r0) ( 58/144) Installing libxml2-dev (2.13.9-r0) ( 59/144) Installing libxslt-dev (1.1.43-r3) ( 60/144) Installing py3-wheel (0.46.1-r0) ( 61/144) Installing py3-wheel-pyc (0.46.1-r0) ( 62/144) Installing coreutils-env (9.8-r1) ( 63/144) Installing coreutils-fmt (9.8-r1) ( 64/144) Installing coreutils-sha512sum (9.8-r1) ( 65/144) Installing libattr (2.5.2-r2) ( 66/144) Installing skalibs-libs (2.14.4.0-r0) ( 67/144) Installing utmps-libs (0.1.3.1-r0) ( 68/144) Installing coreutils (9.8-r1) ( 69/144) Installing perl (5.42.0-r0) ( 70/144) Installing perl-image-exiftool (13.36-r0) ( 71/144) Installing exiftool (13.36-r0) ( 72/144) Installing libice (1.1.2-r0) ( 73/144) Installing libuuid (2.41.2-r0) ( 74/144) Installing libsm (1.2.6-r0) ( 75/144) Installing libxt (1.3.1-r0) ( 76/144) Installing dbus-libs (1.16.2-r1) ( 77/144) Installing libintl (0.24.1-r1) ( 78/144) Installing avahi-libs (0.8-r22) ( 79/144) Installing cups-libs (2.4.13-r0) ( 80/144) Installing jbig2dec (0.20-r0) ( 81/144) Installing ghostscript (10.05.1-r1) ( 82/144) Installing fftw-double-libs (3.3.10-r7) ( 83/144) Installing libltdl (2.5.4-r1) ( 84/144) Installing fribidi (1.0.16-r2) ( 85/144) Installing libeconf (0.8.0-r0) ( 86/144) Installing libblkid (2.41.2-r0) ( 87/144) Installing libmount (2.41.2-r0) ( 88/144) Installing glib (2.86.2-r0) ( 89/144) Installing graphite2 (1.3.14-r6) ( 90/144) Installing harfbuzz (12.2.0-r0) ( 91/144) Installing libraqm (0.10.2-r0) ( 92/144) Installing imagemagick-libs (7.1.2.8-r0) ( 93/144) Installing imagemagick (7.1.2.8-r0) ( 94/144) Installing imagemagick-jpeg (7.1.2.8-r0) ( 95/144) Installing imagemagick-pdf (7.1.2.8-r0) ( 96/144) Installing imagemagick-jp2 (7.1.2.8-r0) ( 97/144) Installing imagemagick-tiff (7.1.2.8-r0) ( 98/144) Installing imagemagick-webp (7.1.2.8-r0) ( 99/144) Installing mujs-libs (1.3.6-r0) (100/144) Installing gumbo-parser (0.13.2-r0) (101/144) Installing mupdf-libs (1.26.11-r0) (102/144) Installing mupdf-tools (1.26.11-r0) (103/144) Installing netpbm (11.12.0-r0) (104/144) Installing pixman (0.46.4-r0) (105/144) Installing cairo (1.18.4-r0) (106/144) Installing poppler (25.11.0-r0) (107/144) Installing poppler-utils (25.11.0-r0) (108/144) Installing tiff-tools (4.7.1-r0) (109/144) Installing libgfortran (15.2.0-r2) (110/144) Installing openblas (0.3.30-r0) (111/144) Installing py3-numpy (2.3.5-r0) (112/144) Installing py3-numpy-tests (2.3.5-r0) (113/144) Installing py3-numpy-pyc (2.3.5-r0) (114/144) Installing py3-platformdirs (4.5.0-r0) (115/144) Installing py3-platformdirs-pyc (4.5.0-r0) (116/144) Installing py3-certifi (2025.11.12-r0) (117/144) Installing py3-certifi-pyc (2025.11.12-r0) (118/144) Installing py3-charset-normalizer (3.4.4-r0) (119/144) Installing py3-charset-normalizer-pyc (3.4.4-r0) (120/144) Installing py3-idna (3.11-r0) (121/144) Installing py3-idna-pyc (3.11-r0) (122/144) Installing py3-urllib3 (1.26.20-r0) (123/144) Installing py3-urllib3-pyc (1.26.20-r0) (124/144) Installing py3-requests (2.32.5-r0) (125/144) Installing py3-requests-pyc (2.32.5-r0) (126/144) Installing py3-pooch (1.8.2-r1) (127/144) Installing py3-pooch-pyc (1.8.2-r1) (128/144) Installing py3-scipy (1.16.3-r0) (129/144) Installing py3-scipy-pyc (1.16.3-r0) (130/144) Installing py3-iniconfig (2.3.0-r0) (131/144) Installing py3-iniconfig-pyc (2.3.0-r0) (132/144) Installing py3-pluggy (1.6.0-r0) (133/144) Installing py3-pluggy-pyc (1.6.0-r0) (134/144) Installing py3-py (1.11.0-r4) (135/144) Installing py3-py-pyc (1.11.0-r4) (136/144) Installing py3-pygments (2.19.2-r0) (137/144) Installing py3-pygments-pyc (2.19.2-r0) (138/144) Installing py3-pytest (8.4.2-r1) (139/144) Installing py3-pytest-pyc (8.4.2-r1) (140/144) Installing python3-dev (3.12.12-r0) (141/144) Installing .makedepends-py3-img2pdf (20251120.063301) (142/144) Installing perl-error (0.17030-r0) (143/144) Installing perl-git (2.51.2-r0) (144/144) Installing git-perl (2.51.2-r0) busybox-1.37.0-r26.trigger: Executing script... fontconfig-2.17.1-r0.trigger: Executing script... mkfontscale-1.2.3-r1.trigger: Executing script... glib-2.86.2-r0.trigger: Executing script... OK: 765 MiB in 295 packages >>> py3-img2pdf: Cleaning up srcdir >>> py3-img2pdf: Cleaning up pkgdir >>> py3-img2pdf: Cleaning up tmpdir >>> py3-img2pdf: Fetching https://distfiles.alpinelinux.org/distfiles/v3.23/img2pdf-0.6.1.tar.gz /var/cache/distfiles/v3.23/img2pdf-0.6.1.tar.gz: OK >>> py3-img2pdf: Fetching https://distfiles.alpinelinux.org/distfiles/v3.23/img2pdf-0.6.1.tar.gz /var/cache/distfiles/v3.23/img2pdf-0.6.1.tar.gz: OK >>> py3-img2pdf: Unpacking /var/cache/distfiles/v3.23/img2pdf-0.6.1.tar.gz... 2025-11-20 06:33:04,011 gpep517 INFO Building wheel via backend setuptools.build_meta:__legacy__ /usr/lib/python3.12/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() 2025-11-20 06:33:04,038 root INFO running bdist_wheel 2025-11-20 06:33:04,059 root INFO running build 2025-11-20 06:33:04,059 root INFO running build_py 2025-11-20 06:33:04,063 root INFO creating build/lib 2025-11-20 06:33:04,064 root INFO copying src/img2pdf.py -> build/lib 2025-11-20 06:33:04,064 root INFO copying src/jp2.py -> build/lib 2025-11-20 06:33:04,065 root INFO running egg_info 2025-11-20 06:33:04,068 root INFO writing src/img2pdf.egg-info/PKG-INFO 2025-11-20 06:33:04,069 root INFO writing dependency_links to src/img2pdf.egg-info/dependency_links.txt 2025-11-20 06:33:04,069 root INFO writing entry points to src/img2pdf.egg-info/entry_points.txt 2025-11-20 06:33:04,069 root INFO writing requirements to src/img2pdf.egg-info/requires.txt 2025-11-20 06:33:04,070 root INFO writing top-level names to src/img2pdf.egg-info/top_level.txt 2025-11-20 06:33:04,074 root INFO reading manifest file 'src/img2pdf.egg-info/SOURCES.txt' 2025-11-20 06:33:04,074 root INFO reading manifest template 'MANIFEST.in' 2025-11-20 06:33:04,075 root WARNING warning: no files found matching 'test.sh' 2025-11-20 06:33:04,075 root WARNING warning: no files found matching 'magick.py' 2025-11-20 06:33:04,079 root INFO adding license file 'LICENSE' 2025-11-20 06:33:04,080 root INFO writing manifest file 'src/img2pdf.egg-info/SOURCES.txt' 2025-11-20 06:33:04,089 root INFO installing to build/bdist.linux-armv8l/wheel 2025-11-20 06:33:04,089 root INFO running install 2025-11-20 06:33:04,099 root INFO running install_lib 2025-11-20 06:33:04,104 root INFO creating build/bdist.linux-armv8l/wheel 2025-11-20 06:33:04,104 root INFO copying build/lib/jp2.py -> build/bdist.linux-armv8l/wheel/. 2025-11-20 06:33:04,104 root INFO copying build/lib/img2pdf.py -> build/bdist.linux-armv8l/wheel/. 2025-11-20 06:33:04,105 root INFO running install_egg_info 2025-11-20 06:33:04,110 root INFO Copying src/img2pdf.egg-info to build/bdist.linux-armv8l/wheel/./img2pdf-0.6.1-py3.12.egg-info 2025-11-20 06:33:04,111 root INFO running install_scripts 2025-11-20 06:33:04,112 root INFO creating build/bdist.linux-armv8l/wheel/img2pdf-0.6.1.dist-info/WHEEL 2025-11-20 06:33:04,113 wheel INFO creating '/home/buildozer/aports/community/py3-img2pdf/src/img2pdf-0.6.1/.dist/.tmp-mi2ktiwv/img2pdf-0.6.1-py3-none-any.whl' and adding 'build/bdist.linux-armv8l/wheel' to it 2025-11-20 06:33:04,113 wheel INFO adding 'img2pdf.py' 2025-11-20 06:33:04,114 wheel INFO adding 'jp2.py' 2025-11-20 06:33:04,114 wheel INFO adding 'img2pdf-0.6.1.dist-info/licenses/LICENSE' 2025-11-20 06:33:04,114 wheel INFO adding 'img2pdf-0.6.1.dist-info/METADATA' 2025-11-20 06:33:04,115 wheel INFO adding 'img2pdf-0.6.1.dist-info/WHEEL' 2025-11-20 06:33:04,115 wheel INFO adding 'img2pdf-0.6.1.dist-info/entry_points.txt' 2025-11-20 06:33:04,115 wheel INFO adding 'img2pdf-0.6.1.dist-info/top_level.txt' 2025-11-20 06:33:04,115 wheel INFO adding 'img2pdf-0.6.1.dist-info/zip-safe' 2025-11-20 06:33:04,115 wheel INFO adding 'img2pdf-0.6.1.dist-info/RECORD' 2025-11-20 06:33:04,115 root INFO removing build/bdist.linux-armv8l/wheel 2025-11-20 06:33:04,116 gpep517 INFO The backend produced .dist/img2pdf-0.6.1-py3-none-any.whl img2pdf-0.6.1-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.12.12, pytest-8.4.2, pluggy-1.6.0 rootdir: /home/buildozer/aports/community/py3-img2pdf/src/img2pdf-0.6.1 collected 352 items / 42 deselected / 310 selected src/img2pdf_test.py EE.................................................. [ 16%] ............................ssssss........ss....FF...................... [ 40%] ........................................................................ [ 63%] ........................................................................ [ 86%] .................ssssssss................. [100%] ==================================== ERRORS ==================================== _____________________ ERROR at setup of test_jpg[internal] _____________________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-buildozer/pytest-77'), _retention_count=3, _retention_policy='all') tmp_normal_png = PosixPath('/tmp/pytest-of-buildozer/pytest-77/normal_png0/normal.png') @pytest.fixture(scope="session") def jpg_img(tmp_path_factory, tmp_normal_png): in_img = tmp_path_factory.mktemp("jpg") / "in.jpg" subprocess.check_call(CONVERT + [str(tmp_normal_png), str(in_img)]) identify = json.loads(subprocess.check_output(CONVERT + [str(in_img), "json:"])) assert len(identify) == 1 # somewhere between imagemagick 6.9.7.4 and 6.9.9.34, the json output was # put into an array, here we cater for the older version containing just # the bare dictionary if "image" in identify: identify = [identify] assert "image" in identify[0] assert identify[0]["image"].get("format") == "JPEG", str(identify) assert identify[0]["image"].get("mimeType") == "image/jpeg", str(identify) assert identify[0]["image"].get("geometry") == { "width": 60, "height": 60, "x": 0, "y": 0, }, str(identify) > assert "resolution" not in identify[0]["image"] E AssertionError: assert 'resolution' not in {'backgroundColor': '#FFFFFFFFFFFF', 'baseDepth': 8, 'baseName': 'in.jpg', 'baseType': 'Undefined', ...} src/img2pdf_test.py:1064: AssertionError ---------------------------- Captured stderr setup ----------------------------- WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert" WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert" _____________________ ERROR at setup of test_jpg[pikepdf] ______________________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-buildozer/pytest-77'), _retention_count=3, _retention_policy='all') tmp_normal_png = PosixPath('/tmp/pytest-of-buildozer/pytest-77/normal_png0/normal.png') @pytest.fixture(scope="session") def jpg_img(tmp_path_factory, tmp_normal_png): in_img = tmp_path_factory.mktemp("jpg") / "in.jpg" subprocess.check_call(CONVERT + [str(tmp_normal_png), str(in_img)]) identify = json.loads(subprocess.check_output(CONVERT + [str(in_img), "json:"])) assert len(identify) == 1 # somewhere between imagemagick 6.9.7.4 and 6.9.9.34, the json output was # put into an array, here we cater for the older version containing just # the bare dictionary if "image" in identify: identify = [identify] assert "image" in identify[0] assert identify[0]["image"].get("format") == "JPEG", str(identify) assert identify[0]["image"].get("mimeType") == "image/jpeg", str(identify) assert identify[0]["image"].get("geometry") == { "width": 60, "height": 60, "x": 0, "y": 0, }, str(identify) > assert "resolution" not in identify[0]["image"] E AssertionError: assert 'resolution' not in {'backgroundColor': '#FFFFFFFFFFFF', 'baseDepth': 8, 'baseName': 'in.jpg', 'baseType': 'Undefined', ...} src/img2pdf_test.py:1064: AssertionError =================================== FAILURES =================================== __________________________ test_miff_cmyk16[internal] __________________________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-buildozer/pytest-77'), _retention_count=3, _retention_policy='all') miff_cmyk16_img = PosixPath('/tmp/pytest-of-buildozer/pytest-77/miff_cmyk160/in.miff') tiff_cmyk16_img = PosixPath('/tmp/pytest-of-buildozer/pytest-77/tiff_cmyk160/in.tiff') miff_cmyk16_pdf = PosixPath('/tmp/pytest-of-buildozer/pytest-77/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 ) src/img2pdf_test.py:6348: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src/img2pdf_test.py:419: in compare_ghostscript compare(str(img), str(tmpdir / "gs-1.") + ext, exact, icc, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ im1 = '/tmp/pytest-of-buildozer/pytest-77/tiff_cmyk160/in.tiff' im2 = '/tmp/pytest-of-buildozer/pytest-77/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 psnr = psnr_re.fullmatch(psnr).group(1) psnr = float(psnr) assert psnr != 0 # or otherwise we would use the exact variant > assert psnr > 50 E assert 6.35075 > 50 src/img2pdf_test.py:397: AssertionError ---------------------------- Captured stderr setup ----------------------------- WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert" WARNING: The convert command is deprecated in IMv7, use "magick" instead of "convert" or "magick convert" __________________________ test_miff_cmyk16[pikepdf] ___________________________ tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=, _basetemp=PosixPath('/tmp/pytest-of-buildozer/pytest-77'), _retention_count=3, _retention_policy='all') miff_cmyk16_img = PosixPath('/tmp/pytest-of-buildozer/pytest-77/miff_cmyk160/in.miff') tiff_cmyk16_img = PosixPath('/tmp/pytest-of-buildozer/pytest-77/tiff_cmyk160/in.tiff') miff_cmyk16_pdf = PosixPath('/tmp/pytest-of-buildozer/pytest-77/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 ) src/img2pdf_test.py:6348: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src/img2pdf_test.py:419: in compare_ghostscript compare(str(img), str(tmpdir / "gs-1.") + ext, exact, icc, False) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ im1 = '/tmp/pytest-of-buildozer/pytest-77/tiff_cmyk160/in.tiff' im2 = '/tmp/pytest-of-buildozer/pytest-77/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 psnr = psnr_re.fullmatch(psnr).group(1) psnr = float(psnr) assert psnr != 0 # or otherwise we would use the exact variant > assert psnr > 50 E assert 6.35075 > 50 src/img2pdf_test.py:397: AssertionError =============================== warnings summary =============================== src/img2pdf_test.py:111 /home/buildozer/aports/community/py3-img2pdf/src/img2pdf-0.6.1/src/img2pdf_test.py:111: UserWarning: imagemagick >= 6.9.10-12 not available, skipping certain checks... warnings.warn("imagemagick >= 6.9.10-12 not available, skipping certain checks...") -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED src/img2pdf_test.py::test_miff_cmyk16[internal] - assert 6.35075 > 50 FAILED src/img2pdf_test.py::test_miff_cmyk16[pikepdf] - assert 6.35075 > 50 ERROR src/img2pdf_test.py::test_jpg[internal] - AssertionError: assert 'resol... ERROR src/img2pdf_test.py::test_jpg[pikepdf] - AssertionError: assert 'resolu... = 2 failed, 290 passed, 16 skipped, 42 deselected, 1 warning, 2 errors in 42.71s = >>> ERROR: py3-img2pdf: check failed >>> py3-img2pdf: Uninstalling dependencies... ( 1/144) Purging .makedepends-py3-img2pdf (20251120.063301) ( 2/144) Purging py3-pikepdf-pyc (9.9.0-r0) ( 3/144) Purging py3-pikepdf (9.9.0-r0) ( 4/144) Purging py3-deprecated-pyc (1.3.1-r0) ( 5/144) Purging py3-deprecated (1.3.1-r0) ( 6/144) Purging py3-wrapt-pyc (1.17.2-r0) ( 7/144) Purging py3-wrapt (1.17.2-r0) ( 8/144) Purging py3-pillow-pyc (11.3.0-r1) ( 9/144) Purging py3-pillow (11.3.0-r1) ( 10/144) Purging py3-gpep517-pyc (19-r1) ( 11/144) Purging py3-gpep517 (19-r1) ( 12/144) Purging py3-installer-pyc (0.7.0-r2) ( 13/144) Purging py3-installer (0.7.0-r2) ( 14/144) Purging py3-setuptools-pyc (80.9.0-r2) ( 15/144) Purging py3-setuptools (80.9.0-r2) ( 16/144) Purging qpdf-dev (12.2.0-r0) ( 17/144) Purging qpdf-libs (12.2.0-r0) ( 18/144) Purging py3-wheel-pyc (0.46.1-r0) ( 19/144) Purging py3-wheel (0.46.1-r0) ( 20/144) Purging coreutils (9.8-r1) coreutils-9.8-r1.post-deinstall: Executing script... ( 21/144) Purging coreutils-env (9.8-r1) ( 22/144) Purging coreutils-fmt (9.8-r1) ( 23/144) Purging coreutils-sha512sum (9.8-r1) ( 24/144) Purging exiftool (13.36-r0) ( 25/144) Purging perl-image-exiftool (13.36-r0) ( 26/144) Purging imagemagick-jpeg (7.1.2.8-r0) ( 27/144) Purging imagemagick-pdf (7.1.2.8-r0) ( 28/144) Purging imagemagick-jp2 (7.1.2.8-r0) ( 29/144) Purging imagemagick-tiff (7.1.2.8-r0) ( 30/144) Purging imagemagick-webp (7.1.2.8-r0) ( 31/144) Purging imagemagick (7.1.2.8-r0) ( 32/144) Purging mupdf-tools (1.26.11-r0) ( 33/144) Purging netpbm (11.12.0-r0) ( 34/144) Purging poppler-utils (25.11.0-r0) ( 35/144) Purging tiff-tools (4.7.1-r0) ( 36/144) Purging py3-lxml-pyc (6.0.2-r1) ( 37/144) Purging py3-lxml (6.0.2-r1) ( 38/144) Purging py3-scipy-pyc (1.16.3-r0) ( 39/144) Purging py3-scipy (1.16.3-r0) ( 40/144) Purging py3-pooch-pyc (1.8.2-r1) ( 41/144) Purging py3-pooch (1.8.2-r1) ( 42/144) Purging py3-platformdirs-pyc (4.5.0-r0) ( 43/144) Purging py3-platformdirs (4.5.0-r0) ( 44/144) Purging py3-requests-pyc (2.32.5-r0) ( 45/144) Purging py3-requests (2.32.5-r0) ( 46/144) Purging py3-certifi-pyc (2025.11.12-r0) ( 47/144) Purging py3-certifi (2025.11.12-r0) ( 48/144) Purging py3-charset-normalizer-pyc (3.4.4-r0) ( 49/144) Purging py3-charset-normalizer (3.4.4-r0) ( 50/144) Purging py3-idna-pyc (3.11-r0) ( 51/144) Purging py3-idna (3.11-r0) ( 52/144) Purging py3-urllib3-pyc (1.26.20-r0) ( 53/144) Purging py3-urllib3 (1.26.20-r0) ( 54/144) Purging py3-numpy-tests (2.3.5-r0) ( 55/144) Purging py3-numpy-pyc (2.3.5-r0) ( 56/144) Purging py3-numpy (2.3.5-r0) ( 57/144) Purging openblas (0.3.30-r0) ( 58/144) Purging py3-pytest-pyc (8.4.2-r1) ( 59/144) Purging py3-pytest (8.4.2-r1) ( 60/144) Purging py3-iniconfig-pyc (2.3.0-r0) ( 61/144) Purging py3-iniconfig (2.3.0-r0) ( 62/144) Purging py3-packaging-pyc (25.0-r0) ( 63/144) Purging py3-packaging (25.0-r0) ( 64/144) Purging py3-parsing-pyc (3.2.3-r0) ( 65/144) Purging py3-parsing (3.2.3-r0) ( 66/144) Purging py3-pluggy-pyc (1.6.0-r0) ( 67/144) Purging py3-pluggy (1.6.0-r0) ( 68/144) Purging py3-py-pyc (1.11.0-r4) ( 69/144) Purging py3-py (1.11.0-r4) ( 70/144) Purging py3-pygments-pyc (2.19.2-r0) ( 71/144) Purging py3-pygments (2.19.2-r0) ( 72/144) Purging python3-dev (3.12.12-r0) ( 73/144) Purging python3-pyc (3.12.12-r0) ( 74/144) Purging python3-pycache-pyc0 (3.12.12-r0) ( 75/144) Purging pyc (3.12.12-r0) ( 76/144) Purging python3 (3.12.12-r0) ( 77/144) Purging cairo (1.18.4-r0) ( 78/144) Purging gdbm (1.26-r0) ( 79/144) Purging ghostscript (10.05.1-r1) ( 80/144) Purging git-perl (2.51.2-r0) ( 81/144) Purging perl-git (2.51.2-r0) ( 82/144) Purging perl-error (0.17030-r0) ( 83/144) Purging perl (5.42.0-r0) ( 84/144) Purging gnutls-dev (3.8.8-r0) ( 85/144) Purging gnutls-c++ (3.8.8-r0) ( 86/144) Purging imagemagick-libs (7.1.2.8-r0) ( 87/144) Purging libattr (2.5.2-r2) ( 88/144) Purging libgfortran (15.2.0-r2) ( 89/144) Purging libidn2-dev (2.3.8-r0) ( 90/144) Purging libimagequant (4.2.2-r0) ( 91/144) Purging libjpeg-turbo-dev (3.1.2-r0) ( 92/144) Purging libturbojpeg (3.1.2-r0) ( 93/144) Purging libltdl (2.5.4-r1) ( 94/144) Purging libpanelw (6.5_p20251115-r0) ( 95/144) Purging libraqm (0.10.2-r0) ( 96/144) Purging libtasn1-dev (4.20.0-r0) ( 97/144) Purging libtasn1-progs (4.20.0-r0) ( 98/144) Purging libwebpdemux (1.6.0-r0) ( 99/144) Purging libwebpmux (1.6.0-r0) (100/144) Purging libxt (1.3.1-r0) (101/144) Purging mpdecimal (4.0.1-r0) (102/144) Purging mupdf-libs (1.26.11-r0) (103/144) Purging p11-kit-dev (0.25.5-r2) (104/144) Purging pixman (0.46.4-r0) (105/144) Purging poppler (25.11.0-r0) (106/144) Purging tiff (4.7.1-r0) (107/144) Purging utmps-libs (0.1.3.1-r0) (108/144) Purging cups-libs (2.4.13-r0) (109/144) Purging avahi-libs (0.8-r22) (110/144) Purging dbus-libs (1.16.2-r1) (111/144) Purging fftw-double-libs (3.3.10-r7) (112/144) Purging fribidi (1.0.16-r2) (113/144) Purging harfbuzz (12.2.0-r0) (114/144) Purging glib (2.86.2-r0) (115/144) Purging nettle-dev (3.10.2-r0) (116/144) Purging gmp-dev (6.3.0-r4) (117/144) Purging libgmpxx (6.3.0-r4) (118/144) Purging gnutls (3.8.8-r0) (119/144) Purging graphite2 (1.3.14-r6) (120/144) Purging gumbo-parser (0.13.2-r0) (121/144) Purging jbig2dec (0.20-r0) (122/144) Purging libmount (2.41.2-r0) (123/144) Purging libblkid (2.41.2-r0) (124/144) Purging libeconf (0.8.0-r0) (125/144) Purging libsm (1.2.6-r0) (126/144) Purging libice (1.1.2-r0) (127/144) Purging libintl (0.24.1-r1) (128/144) Purging libwebp (1.6.0-r0) (129/144) Purging libsharpyuv (1.6.0-r0) (130/144) Purging libuuid (2.41.2-r0) (131/144) Purging libxslt-dev (1.1.43-r3) (132/144) Purging libxslt (1.1.43-r3) (133/144) Purging libxml2-dev (2.13.9-r0) (134/144) Purging libxml2-utils (2.13.9-r0) (135/144) Purging libxml2 (2.13.9-r0) (136/144) Purging mujs-libs (1.3.6-r0) (137/144) Purging nettle (3.10.2-r0) (138/144) Purging openjpeg (2.5.4-r1) (139/144) Purging openssl-dev (3.5.4-r0) (140/144) Purging skalibs-libs (2.14.4.0-r0) (141/144) Purging xz-dev (5.8.1-r0) (142/144) Purging xz (5.8.1-r0) (143/144) Purging xz-libs (5.8.1-r0) (144/144) Purging zlib-dev (1.3.1-r2) busybox-1.37.0-r26.trigger: Executing script... fontconfig-2.17.1-r0.trigger: Executing script... mkfontscale-1.2.3-r1.trigger: Executing script... OK: 382 MiB in 151 packages