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

Reply via email to