Source: pymupdf Version: 1.25.4+ds1-3 Severity: serious Justification: FTBFS Tags: forky sid ftbfs User: [email protected] Usertags: ftbfs-20250809 ftbfs-forky
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. The full build log is available from: http://qa-logs.debian.net/2025/08/09/pymupdf_1.25.4+ds1-3_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20250809;[email protected] or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250809&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime. -- Relevant part of the build log (hopefully): > debian/rules binary > dh binary --buildsystem=pybuild --with python3 > dh_update_autotools_config -O--buildsystem=pybuild > dh_autoreconf -O--buildsystem=pybuild > dh_auto_configure -O--buildsystem=pybuild > dh_auto_build -O--buildsystem=pybuild > I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" > module > I: pybuild base:311: python3.13 -m build --skip-dependency-check > --no-isolation --wheel --outdir > /build/reproducible-path/pymupdf-1.25.4+ds1/.pybuild/cpython3_3.13 > * Building wheel... > pymupdf-1.25.4+ds1/setup.py: ### Starting. > pymupdf-1.25.4+ds1/setup.py: __name__: 'setup' > pymupdf-1.25.4+ds1/setup.py: platform.platform(): > 'Linux-6.1.0-32-cloud-amd64-x86_64-with-glibc2.41' > pymupdf-1.25.4+ds1/setup.py: platform.python_version(): '3.13.5' > pymupdf-1.25.4+ds1/setup.py: sys.executable: '/usr/bin/python3.13' > pymupdf-1.25.4+ds1/setup.py: CPU bits: 64 sys.maxsize=9223372036854775807 > pymupdf-1.25.4+ds1/setup.py: __file__: > '/build/reproducible-path/pymupdf-1.25.4+ds1/setup.py' > pymupdf-1.25.4+ds1/setup.py: os.getcwd(): > '/build/reproducible-path/pymupdf-1.25.4+ds1' > pymupdf-1.25.4+ds1/setup.py: getconf ARG_MAX: (0, '2097152\n') > pymupdf-1.25.4+ds1/setup.py: sys.argv (3): > pymupdf-1.25.4+ds1/setup.py: 0: > '/usr/lib/python3/dist-packages/pyproject_hooks/_in_process/_in_process.py' > pymupdf-1.25.4+ds1/setup.py: 1: 'build_wheel' > pymupdf-1.25.4+ds1/setup.py: 2: '/tmp/tmp20apkbwn' > pymupdf-1.25.4+ds1/setup.py: os.environ (85): > pymupdf-1.25.4+ds1/setup.py: APT_CONFIG: '/var/lib/sbuild/apt.conf' > pymupdf-1.25.4+ds1/setup.py: ASFLAGS: '' > pymupdf-1.25.4+ds1/setup.py: ASFLAGS_FOR_BUILD: '' > pymupdf-1.25.4+ds1/setup.py: CCACHE_DIR: > '/build/reproducible-path/pymupdf-1.25.4+ds1/.pybuild/ccache' > pymupdf-1.25.4+ds1/setup.py: CFLAGS: '-g -O2 > -Werror=implicit-function-declaration > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: CFLAGS_FOR_BUILD: '-g -O2 > -Werror=implicit-function-declaration > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: CPPFLAGS: '-Wdate-time -D_FORTIFY_SOURCE=2' > pymupdf-1.25.4+ds1/setup.py: CPPFLAGS_FOR_BUILD: '-Wdate-time > -D_FORTIFY_SOURCE=2' > pymupdf-1.25.4+ds1/setup.py: CXXFLAGS: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: CXXFLAGS_FOR_BUILD: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_ARCH: 'amd64' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_ARCH_ABI: 'base' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_ARCH_BITS: '64' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_ARCH_CPU: 'amd64' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_ARCH_ENDIAN: 'little' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_ARCH_LIBC: 'gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_ARCH_OS: 'linux' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_GNU_CPU: 'x86_64' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_GNU_SYSTEM: 'linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_GNU_TYPE: 'x86_64-linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_MAINT_OPTIONS: 'hardening=+all' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_MULTIARCH: 'x86_64-linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_BUILD_OPTIONS: 'parallel=8' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_ARCH: 'amd64' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_ARCH_ABI: 'base' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_ARCH_BITS: '64' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_ARCH_CPU: 'amd64' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_ARCH_ENDIAN: 'little' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_ARCH_LIBC: 'gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_ARCH_OS: 'linux' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_GNU_CPU: 'x86_64' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_GNU_SYSTEM: 'linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_GNU_TYPE: 'x86_64-linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_HOST_MULTIARCH: 'x86_64-linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_PYTHON_INSTALL_LAYOUT: 'deb' > pymupdf-1.25.4+ds1/setup.py: DEB_RULES_REQUIRES_ROOT: 'no' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_ARCH: 'amd64' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_ARCH_ABI: 'base' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_ARCH_BITS: '64' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_ARCH_CPU: 'amd64' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_ARCH_ENDIAN: 'little' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_ARCH_LIBC: 'gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_ARCH_OS: 'linux' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_GNU_CPU: 'x86_64' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_GNU_SYSTEM: 'linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_GNU_TYPE: 'x86_64-linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DEB_TARGET_MULTIARCH: 'x86_64-linux-gnu' > pymupdf-1.25.4+ds1/setup.py: DFLAGS: '-frelease' > pymupdf-1.25.4+ds1/setup.py: DFLAGS_FOR_BUILD: '-frelease' > pymupdf-1.25.4+ds1/setup.py: DH_INTERNAL_BUILDFLAGS: '1' > pymupdf-1.25.4+ds1/setup.py: FCFLAGS: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: FCFLAGS_FOR_BUILD: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: FFLAGS: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: FFLAGS_FOR_BUILD: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: FLIT_NO_NETWORK: '1' > pymupdf-1.25.4+ds1/setup.py: HOME: > '/build/reproducible-path/pymupdf-1.25.4+ds1/.pybuild/cpython3_3.13' > pymupdf-1.25.4+ds1/setup.py: LANG: 'C.UTF-8' > pymupdf-1.25.4+ds1/setup.py: LC_ALL: 'C.UTF-8' > pymupdf-1.25.4+ds1/setup.py: LC_COLLATE: 'C.UTF-8' > pymupdf-1.25.4+ds1/setup.py: LC_CTYPE: 'C.UTF-8' > pymupdf-1.25.4+ds1/setup.py: LDFLAGS: '-Wl,-z,relro -Wl,-z,now' > pymupdf-1.25.4+ds1/setup.py: LDFLAGS_FOR_BUILD: '-Wl,-z,relro -Wl,-z,now' > pymupdf-1.25.4+ds1/setup.py: LOGNAME: 'sbuild' > pymupdf-1.25.4+ds1/setup.py: MAKEFLAGS: '' > pymupdf-1.25.4+ds1/setup.py: MAKELEVEL: '1' > pymupdf-1.25.4+ds1/setup.py: MFLAGS: '' > pymupdf-1.25.4+ds1/setup.py: OBJCFLAGS: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: OBJCFLAGS_FOR_BUILD: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: OBJCXXFLAGS: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: OBJCXXFLAGS_FOR_BUILD: '-g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection' > pymupdf-1.25.4+ds1/setup.py: PATH: > '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' > pymupdf-1.25.4+ds1/setup.py: PWD: > '/build/reproducible-path/pymupdf-1.25.4+ds1' > pymupdf-1.25.4+ds1/setup.py: PYBUILD_TEST_ARGS: "--ignore > tests/test_codespell.py --ignore tests/test_flake8.py --ignore > tests/test_memory.py --ignore tests/test_pylint.py --ignore > tests/test_spikes.py --ignore tests/test_tesseract.py --ignore > tests/test_textextract.py --ignore tests/test_story.py -k 'not test_3050 and > not test_textbox3 and not test_subset_fonts and not test_fontarchive and not > test_htmlbox1 and not test_color_count and not test_4309 and not test_4309 > and not test_3624 and not test_2246 and not test_1645 and not test_pilsave'" > pymupdf-1.25.4+ds1/setup.py: PYMUPDF_SETUP_FLAVOUR: 'p' > pymupdf-1.25.4+ds1/setup.py: PYMUPDF_SETUP_MUPDF_BUILD: '' > pymupdf-1.25.4+ds1/setup.py: PYTHONPATH: > '/build/reproducible-path/pymupdf-1.25.4+ds1/.pybuild/cpython3_3.13/build' > pymupdf-1.25.4+ds1/setup.py: SHELL: '/bin/sh' > pymupdf-1.25.4+ds1/setup.py: SOURCE_DATE_EPOCH: '1745406518' > pymupdf-1.25.4+ds1/setup.py: USER: 'sbuild' > pymupdf-1.25.4+ds1/setup.py: _PYPROJECT_HOOKS_BACKEND_PATH: > '/build/reproducible-path/pymupdf-1.25.4+ds1' > pymupdf-1.25.4+ds1/setup.py: _PYPROJECT_HOOKS_BUILD_BACKEND: 'setup' > pymupdf-1.25.4+ds1/setup.py: _PYTHON_HOST_PLATFORM: 'linux-x86_64' > pymupdf-1.25.4+ds1/setup.py: http_proxy: 'http://127.0.0.1:9/' > pymupdf-1.25.4+ds1/setup.py: https_proxy: 'https://127.0.0.1:9/' > pymupdf-1.25.4+ds1/setup.py: no_proxy: 'localhost' > pymupdf-1.25.4+ds1/setup.py: Not defaulting to Python limited api because > platform.python_version_tuple()=('3', '13', '5'). > pymupdf-1.25.4+ds1/setup.py: PYMUPDF_SETUP_URL_WHEEL=None > pipcl.py:785:tag_platform(): From self.tag_platform_: ret=None. > pipcl.py:793:tag_platform(): From AUDITWHEEL_PLAT: ret=None. > pipcl.py:808:tag_platform(): From sysconfig.get_platform(): > ret='linux_x86_64'. > pipcl.py:822:tag_platform(): tag_platform(): returning ret='linux_x86_64'. > pymupdf-1.25.4+ds1/setup.py: get_mupdf_internal(): out='dir' location='' > sha=None > pymupdf-1.25.4+ds1/setup.py: Using system mupdf. > pymupdf-1.25.4+ds1/setup.py: build(): mupdf_build_dir=None > pymupdf-1.25.4+ds1/setup.py: _build_extension(): g_py_limited_api=False > defines=[] > pymupdf-1.25.4+ds1/setup.py: Building PyMuPDF rebased. > pipcl.py:2300:run_if(): Running command because: File does not exist: > '/build/reproducible-path/pymupdf-1.25.4+ds1/src/build/extra.i.cpp' > pipcl.py:2302:run_if(): Running: swig > pipcl.py:2302:run_if(): -Wall > pipcl.py:2302:run_if(): -c++ > pipcl.py:2302:run_if(): -python > pipcl.py:2302:run_if(): -module extra > pipcl.py:2302:run_if(): -outdir > /build/reproducible-path/pymupdf-1.25.4+ds1/src/build > pipcl.py:2302:run_if(): -o > /build/reproducible-path/pymupdf-1.25.4+ds1/src/build/extra.i.cpp > pipcl.py:2302:run_if(): -MD -MF > /build/reproducible-path/pymupdf-1.25.4+ds1/src/build/extra.i.cpp.d > pipcl.py:2302:run_if(): > /build/reproducible-path/pymupdf-1.25.4+ds1/src/extra.i > pipcl.py:2300:run_if(): Running command because: File does not exist: > '/build/reproducible-path/pymupdf-1.25.4+ds1/src/build/_extra.cpython-313-x86_64-linux-gnu.so' > pipcl.py:2302:run_if(): Running: c++ > pipcl.py:2302:run_if(): -fPIC > pipcl.py:2302:run_if(): -shared > pipcl.py:2302:run_if(): -O2 -DNDEBUG > pipcl.py:2302:run_if(): -I/usr/include/python3.13 > -I/usr/include/python3.13 > pipcl.py:2302:run_if(): > /build/reproducible-path/pymupdf-1.25.4+ds1/src/build/extra.i.cpp > pipcl.py:2302:run_if(): -MD -MF > /build/reproducible-path/pymupdf-1.25.4+ds1/src/build/_extra.cpython-313-x86_64-linux-gnu.so.d > pipcl.py:2302:run_if(): -o > /build/reproducible-path/pymupdf-1.25.4+ds1/src/build/_extra.cpython-313-x86_64-linux-gnu.so > pipcl.py:2302:run_if(): -Wall -Wno-deprecated-declarations > -Wno-unused-const-variable -g -O2 -Werror=implicit-function-declaration > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection -g -O2 > -ffile-prefix-map=/build/reproducible-path/pymupdf-1.25.4+ds1=. > -fstack-protector-strong -fstack-clash-protection -Wformat > -Werror=format-security -fcf-protection > pipcl.py:2302:run_if(): -Wl,-z,relro -Wl,-z,now > pipcl.py:2302:run_if(): > -L/usr/lib/python3.13/config-3.13-x86_64-linux-gnu > -L/usr/lib/x86_64-linux-gnu -ldl -lm > pipcl.py:2302:run_if(): -lmupdf -lmupdfcpp > pipcl.py:2302:run_if(): -Wl,-rpath,'$ORIGIN',-z,origin > cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ > is not valid for C++ > /build/reproducible-path/pymupdf-1.25.4+ds1/src/build/extra.i.cpp:3414:20: > warning: ‘std::string repr(PyObject*)’ defined but not used > [-Wunused-function] > 3414 | static std::string repr(PyObject* x) > | ^~~~ > pipcl.py:2606:add_file(): Adding file: src/__init__.py => pymupdf/__init__.py > pipcl.py:2606:add_file(): Adding file: src/__main__.py => pymupdf/__main__.py > pipcl.py:2606:add_file(): Adding file: src/pymupdf.py => pymupdf/pymupdf.py > pipcl.py:2606:add_file(): Adding file: src/table.py => pymupdf/table.py > pipcl.py:2606:add_file(): Adding file: src/utils.py => pymupdf/utils.py > pipcl.py:2606:add_file(): Adding file: src/_wxcolors.py => > pymupdf/_wxcolors.py > pipcl.py:2606:add_file(): Adding file: src/_apply_pages.py => > pymupdf/_apply_pages.py > pipcl.py:2606:add_file(): Adding file: src/build/extra.py => pymupdf/extra.py > pipcl.py:2606:add_file(): Adding file: > src/build/_extra.cpython-313-x86_64-linux-gnu.so => > pymupdf/_extra.cpython-313-x86_64-linux-gnu.so > pipcl.py:2606:add_file(): Adding file: src/fitz___init__.py => > fitz/__init__.py > pipcl.py:2606:add_file(): Adding file: src/fitz_table.py => fitz/table.py > pipcl.py:2606:add_file(): Adding file: src/fitz_utils.py => fitz/utils.py > pipcl.py:2606:add_file(): Adding file: README.md => > pymupdf-1.25.4.dist-info/README.md > pipcl.py:785:tag_platform(): From self.tag_platform_: ret=None. > pipcl.py:793:tag_platform(): From AUDITWHEEL_PLAT: ret=None. > pipcl.py:808:tag_platform(): From sysconfig.get_platform(): > ret='linux_x86_64'. > pipcl.py:822:tag_platform(): tag_platform(): returning ret='linux_x86_64'. > pipcl.py:657:build_wheel(): Have created wheel size=720331: > /build/reproducible-path/pymupdf-1.25.4+ds1/.pybuild/cpython3_3.13/pymupdf-1.25.4-cp313-none-linux_x86_64.whl > Successfully built pymupdf-1.25.4-cp313-none-linux_x86_64.whl > I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with > "installer" module > dh_auto_test -O--buildsystem=pybuild > I: pybuild base:311: cd > /build/reproducible-path/pymupdf-1.25.4+ds1/.pybuild/cpython3_3.13/build; > python3.13 -m pytest --ignore tests/test_codespell.py --ignore > tests/test_flake8.py --ignore tests/test_memory.py --ignore > tests/test_pylint.py --ignore tests/test_spikes.py --ignore > tests/test_tesseract.py --ignore tests/test_textextract.py --ignore > tests/test_story.py -k 'not test_3050 and not test_textbox3 and not > test_subset_fonts and not test_fontarchive and not test_htmlbox1 and not > test_color_count and not test_4309 and not test_4309 and not test_3624 and > not test_2246 and not test_1645 and not test_pilsave' > ============================= test session starts > ============================== > platform linux -- Python 3.13.5, pytest-8.3.5, pluggy-1.5.0 > rootdir: > /build/reproducible-path/pymupdf-1.25.4+ds1/.pybuild/cpython3_3.13/build > configfile: pytest.ini > collected 291 items / 11 deselected / 280 selected > > tests/test_2548.py . [ > 0%] > tests/test_2634.py . [ > 0%] > tests/test_2904.py . [ > 1%] > tests/test_2907.py . [ > 1%] > tests/test_4141.py . [ > 1%] > tests/test_annots.py ................................ [ > 13%] > tests/test_badfonts.py . [ > 13%] > tests/test_balance_count.py . [ > 13%] > tests/test_barcode.py . [ > 14%] > tests/test_cluster_drawings.py ... [ > 15%] > tests/test_crypting.py . [ > 15%] > tests/test_docs_samples.py s [ > 16%] > tests/test_drawings.py ........ [ > 18%] > tests/test_embeddedfiles.py .. [ > 19%] > tests/test_extractimage.py ... [ > 20%] > tests/test_font.py .......... [ > 24%] > tests/test_general.py .................................................. [ > 42%] > ......................... [ > 51%] > tests/test_geometry.py .......... [ > 54%] > tests/test_imagebbox.py .. [ > 55%] > tests/test_imagemasks.py .. [ > 56%] > tests/test_import.py . [ > 56%] > tests/test_insertimage.py ... [ > 57%] > tests/test_insertpdf.py ........ [ > 60%] > tests/test_linebreaks.py . [ > 60%] > tests/test_linequad.py . [ > 61%] > tests/test_metadata.py ... [ > 62%] > tests/test_mupdf_regressions.py ..... [ > 63%] > tests/test_named_links.py ... [ > 65%] > tests/test_nonpdf.py ... [ > 66%] > tests/test_object_manipulation.py .... [ > 67%] > tests/test_objectstreams.py ... [ > 68%] > tests/test_optional_content.py .... [ > 70%] > tests/test_page_links.py . [ > 70%] > tests/test_pagedelete.py F.. [ > 71%] > tests/test_pagelabels.py .. [ > 72%] > tests/test_pixmap.py ...................... [ > 80%] > tests/test_remove-rotation.py . [ > 80%] > tests/test_rtl.py . [ > 80%] > tests/test_showpdfpage.py .. [ > 81%] > tests/test_tables.py ............. [ > 86%] > tests/test_textbox.py ......... [ > 89%] > tests/test_textsearch.py ... [ > 90%] > tests/test_toc.py ............ [ > 94%] > tests/test_widgets.py .............. [ > 99%] > tests/test_word_delimiters.py . > [100%] > > =================================== FAILURES > =================================== > ________________________________ test_deletion > _________________________________ > > def test_deletion(): > # First prepare the document. > doc = pymupdf.open() > toc = [] > for i in range(page_count): > page = doc.new_page() # make a page > page.insert_text((100, 100), "%i" % i) # insert unique text > if i > r[0]: # insert a link > page.insert_link(link) > toc.append([1, "%i" % i, i + 1]) # TOC bookmark to this page > > doc.set_toc(toc) # insert the TOC > assert doc.has_links() # check we did insert links > > # Test page deletion. > # Delete pages in range and verify result > del doc[r] > assert not doc.has_links() # verify all links have gone > assert doc.page_count == page_count - len(r) # correct number > deleted? > toc_new = doc.get_toc() # this is the modified TOC > # verify number of emptied items (have page number -1) > assert len([item for item in toc_new if item[-1] == -1]) == len(r) > # Deleted page numbers must correspond to TOC items with page number > -1. > for i in r: > assert toc_new[i][-1] == -1 > # Remaining pages must be correctly pointed to by the non-empty TOC > items > for item in toc_new: > pno = item[-1] > if pno == -1: # one of the emptied items > continue > pno -= 1 # PDF page number > text = doc[pno].get_text().replace("\n", "") > # toc text must equal text on page > assert text == item[1] > > doc.delete_page(0) # just for the coverage stats > del doc[5:10] > > doc.select(range(doc.page_count)) > > tests/test_pagedelete.py:70: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > pymupdf/__init__.py:5623: in select > mupdf.pdf_rearrange_pages2(pdf, pyliste) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > doc = <mupdf.PdfDocument; proxy of <Swig Object of type 'mupdf::PdfDocument > *' at 0x7fe31434dd10> > > pages = range(0, 88) > > def pdf_rearrange_pages2(doc, pages): > r"""Class-aware wrapper for `::pdf_rearrange_pages2()`. > Swig-friendly wrapper for pdf_rearrange_pages().""" > > return _mupdf.pdf_rearrange_pages2(doc, pages) > E mupdf.FzErrorFormat: code=7: Cycle detected in outlines > > /usr/lib/python3/dist-packages/mupdf/__init__.py:52953: FzErrorFormat > ----------------------------- Captured stdout call > ----------------------------- > test_load_system_font():font_f(): Looking for font: name='Helvetica' bold=0 > italic=0 needs_exact_metrics=1. > =============================== warnings summary > =============================== > <frozen importlib._bootstrap>:488 > <frozen importlib._bootstrap>:488 > <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type > SwigPyPacked has no __module__ attribute > > <frozen importlib._bootstrap>:488 > <frozen importlib._bootstrap>:488 > <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type > SwigPyObject has no __module__ attribute > > <frozen importlib._bootstrap>:488 > <frozen importlib._bootstrap>:488: DeprecationWarning: builtin type > swigvarlink has no __module__ attribute > > -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html > =========================== short test summary info > ============================ > FAILED tests/test_pagedelete.py::test_deletion - mupdf.FzErrorFormat: > code=7:... > = 1 failed, 278 passed, 1 skipped, 11 deselected, 5 warnings in 90.83s > (0:01:30) = > <sys>:0: DeprecationWarning: builtin type swigvarlink has no __module__ > attribute > E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd > /build/reproducible-path/pymupdf-1.25.4+ds1/.pybuild/cpython3_3.13/build; > python3.13 -m pytest --ignore tests/test_codespell.py --ignore > tests/test_flake8.py --ignore tests/test_memory.py --ignore > tests/test_pylint.py --ignore tests/test_spikes.py --ignore > tests/test_tesseract.py --ignore tests/test_textextract.py --ignore > tests/test_story.py -k 'not test_3050 and not test_textbox3 and not > test_subset_fonts and not test_fontarchive and not test_htmlbox1 and not > test_color_count and not test_4309 and not test_4309 and not test_3624 and > not test_2246 and not test_1645 and not test_pilsave' > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 > returned exit code 13

