Tue Jan 28 12:25:53 UTC 2025  I: starting to build mkdocs-test/trixie/i386 on jenkins on '2025-01-28 12:25'
Tue Jan 28 12:25:53 UTC 2025  I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/i386_4/49836/console.log
Tue Jan 28 12:25:53 UTC 2025  I: Downloading source for trixie/mkdocs-test=0.5.3-5
--2025-01-28 12:25:54--  http://deb.debian.org/debian/pool/main/m/mkdocs-test/mkdocs-test_0.5.3-5.dsc
Connecting to 46.16.76.132:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 2763 (2.7K) [text/prs.lines.tag]
Saving to: ‘mkdocs-test_0.5.3-5.dsc’

     0K ..                                                    100%  434M=0s

2025-01-28 12:25:54 (434 MB/s) - ‘mkdocs-test_0.5.3-5.dsc’ saved [2763/2763]

Tue Jan 28 12:25:54 UTC 2025  I: mkdocs-test_0.5.3-5.dsc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 3.0 (quilt)
Source: mkdocs-test
Binary: python3-mkdocs-test
Architecture: all
Version: 0.5.3-5
Maintainer: Debian Python Team <team+python@tracker.debian.org>
Uploaders:  Boyuan Yang <byang@debian.org>,
Homepage: https://github.com/fralau/mkdocs-test
Description: Testing framework for MkDocs projects
 The purpose of Mkdocs-Test is to facilitate the comparison of source pages
 (Markdown files) and destination pages (HTML) in an MkDocs project.
 .
 MkDocs-Test is a framework composed of two parts:
 - an MkDocs plugin (test): it creates a __test__ directory,
   which contains the data necessary to map the pages of the website.
 - a framework for conducting the test. The DocProject class groups
   together all the information necessary for the tests on a specific
   MkDocs project.
Standards-Version: 4.7.0
Vcs-Browser: https://salsa.debian.org/python-team/packages/mkdocs-test
Vcs-Git: https://salsa.debian.org/python-team/packages/mkdocs-test.git
Testsuite: autopkgtest-pkg-python
Build-Depends: debhelper-compat (= 13), dh-sequence-python3, pybuild-plugin-pyproject, python3, python3-bs4, python3-markdown, python3-pandas, python3-pytest <!nocheck>, python3-rich, python3-setuptools, python3-setuptools-scm, python3-super-collections, python3-yaml
Package-List:
 python3-mkdocs-test deb python optional arch=all
Checksums-Sha1:
 d5acc3da52061566c7b58672f6187a1600fb1359 29719 mkdocs-test_0.5.3.orig.tar.gz
 6d02cc33e877ea0fb76bbdca36462d37c776126c 2364 mkdocs-test_0.5.3-5.debian.tar.xz
Checksums-Sha256:
 f4f3463a3c80d4998917101d38a1dae62913b60ba8603ebc21440876c939d526 29719 mkdocs-test_0.5.3.orig.tar.gz
 3e4dd5adc259c72e7b9545fddaa9c5ca574c1cf4451c8e3956cc77dc9a31c7a5 2364 mkdocs-test_0.5.3-5.debian.tar.xz
Files:
 d21851f9f15dfc5749a02c573b41bc63 29719 mkdocs-test_0.5.3.orig.tar.gz
 635f7d256cc9b10f439414b62b2a18c8 2364 mkdocs-test_0.5.3-5.debian.tar.xz

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

iQIzBAEBCgAdFiEEfncpR22H1vEdkazLwpPntGGCWs4FAmePsY8ACgkQwpPntGGC
Ws6nxQ//Uuy8CMdmndYK9Xdby+6G/koflaovD4+TiyLr/9uOjDj1s7DLC3Ej1f3i
N/pH3C1m1F6PntJUbOmVAEDBbijbgzKReF/4fM4SO7Y9G/nq2l1ITCJW79jWrHpb
MGscMgyzDA18o5TgnxthwCsq3mzFodiz0HOVlv0yho1YzGFLMDK6KKrROwG2e3rg
b/1uHiNlEdVdQSud5yZvmCuUV14jKmJPY7rILeycLSZEwUuHLhjEQZxTpv4RdR7/
Ljb5DkCR+VoUxM6ORVxGhyH2S0JXUUxghUaC7ZRRvONFylQfA3PjSB88uRRPWvZz
uGrx03lGbqvGVSQ8XmOFQA+cpPxsaC0mAkNniiQeCmH+u2KivUrX73UdXNUKJ8d3
DTTV2XqkQGEAs+jqUmX2nDgmOqFRPgYdZXVvwOMd5eeuFm0abXsZfQ4Lkj67KvXu
g7FpXjiGpSUymz3bDPhHmYBQJnTedx3w/ElxPorXz9+ogS70F2KcekkyZTCFMpVm
kDXyzg6TUla/oc8HYDoWsXYqO6e80omXMsYJLmxvh3wmXkA5wB279/4jkXfQu1OV
Ic1iITQyOiRAfQ/U0SbGACKWG5pkJ883LZMstGocbN8Ky0GeCu44D3+UhDlgIHYA
pB0HWB8o98zaibkP52mffMbkR9MpiY/Xj8SB04ssXpO75k2Oonw=
=RkH7
-----END PGP SIGNATURE-----
Tue Jan 28 12:25:54 UTC 2025  I: Checking whether the package is not for us
Tue Jan 28 12:25:54 UTC 2025  I: Starting 1st build on remote node ionos16-i386.debian.net.
Tue Jan 28 12:25:54 UTC 2025  I: Preparing to do remote build '1' on ionos16-i386.debian.net.
Tue Jan 28 12:26:40 UTC 2025  I: Deleting $TMPDIR on ionos16-i386.debian.net.
I: pbuilder: network access will be disabled during build
I: Current time: Mon Mar  2 06:48:55 -12 2026
I: pbuilder-time-stamp: 1772477335
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz]
I: copying local configuration
W: --override-config is not set; not updating apt.conf Read the manpage for details.
I: mounting /proc filesystem
I: mounting /sys filesystem
I: creating /{dev,run}/shm
I: mounting /dev/pts filesystem
I: redirecting /dev/ptmx to /dev/pts/ptmx
I: policy-rc.d already exists
I: using eatmydata during job
I: Copying source file
I: copying [mkdocs-test_0.5.3-5.dsc]
I: copying [./mkdocs-test_0.5.3.orig.tar.gz]
I: copying [./mkdocs-test_0.5.3-5.debian.tar.xz]
I: Extracting source
dpkg-source: warning: cannot verify inline signature for ./mkdocs-test_0.5.3-5.dsc: unsupported subcommand
dpkg-source: info: extracting mkdocs-test in mkdocs-test-0.5.3
dpkg-source: info: unpacking mkdocs-test_0.5.3.orig.tar.gz
dpkg-source: info: unpacking mkdocs-test_0.5.3-5.debian.tar.xz
I: Not using root during the build.
I: Installing the build-deps
I: user script /srv/workspace/pbuilder/76220/tmp/hooks/D02_print_environment starting
I: set
  BUILDDIR='/build/reproducible-path'
  BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other'
  BUILDUSERNAME='pbuilder1'
  BUILD_ARCH='i386'
  DEBIAN_FRONTEND='noninteractive'
  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=22 '
  DISTRIBUTION='trixie'
  HOME='/root'
  HOST_ARCH='i386'
  IFS=' 	
  '
  INVOCATION_ID='0fa201b4444e4093a2f412c08ffe9a16'
  LANG='C'
  LANGUAGE='en_US:en'
  LC_ALL='C'
  LD_LIBRARY_PATH='/usr/lib/libeatmydata'
  LD_PRELOAD='libeatmydata.so'
  MAIL='/var/mail/root'
  OPTIND='1'
  PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
  PBCURRENTCOMMANDLINEOPERATION='build'
  PBUILDER_OPERATION='build'
  PBUILDER_PKGDATADIR='/usr/share/pbuilder'
  PBUILDER_PKGLIBDIR='/usr/lib/pbuilder'
  PBUILDER_SYSCONFDIR='/etc'
  PPID='76220'
  PS1='# '
  PS2='> '
  PS4='+ '
  PWD='/'
  SHELL='/bin/bash'
  SHLVL='2'
  SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.nQr9GzmH/pbuilderrc_yufJ --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.nQr9GzmH/b1 --logfile b1/build.log mkdocs-test_0.5.3-5.dsc'
  SUDO_GID='112'
  SUDO_UID='107'
  SUDO_USER='jenkins'
  TERM='unknown'
  TZ='/usr/share/zoneinfo/Etc/GMT+12'
  USER='root'
  _='/usr/bin/systemd-run'
  http_proxy='http://213.165.73.152:3128'
I: uname -a
  Linux ionos16-i386 6.1.0-30-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.124-1 (2025-01-12) x86_64 GNU/Linux
I: ls -l /bin
  lrwxrwxrwx 1 root root 7 Nov 22  2024 /bin -> usr/bin
I: user script /srv/workspace/pbuilder/76220/tmp/hooks/D02_print_environment finished
 -> Attempting to satisfy build-dependencies
 -> Creating pbuilder-satisfydepends-dummy package
Package: pbuilder-satisfydepends-dummy
Version: 0.invalid.0
Architecture: i386
Maintainer: Debian Pbuilder Team <pbuilder-maint@lists.alioth.debian.org>
Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder
 This package was created automatically by pbuilder to satisfy the
 build-dependencies of the package being currently built.
Depends: debhelper-compat (= 13), dh-sequence-python3, pybuild-plugin-pyproject, python3, python3-bs4, python3-markdown, python3-pandas, python3-pytest, python3-rich, python3-setuptools, python3-setuptools-scm, python3-super-collections, python3-yaml
dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'.
Selecting previously unselected package pbuilder-satisfydepends-dummy.
(Reading database ... 19841 files and directories currently installed.)
Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ...
Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ...
dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested:
 pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however:
  Package debhelper-compat is not installed.
 pbuilder-satisfydepends-dummy depends on dh-sequence-python3; however:
  Package dh-sequence-python3 is not installed.
 pbuilder-satisfydepends-dummy depends on pybuild-plugin-pyproject; however:
  Package pybuild-plugin-pyproject is not installed.
 pbuilder-satisfydepends-dummy depends on python3; however:
  Package python3 is not installed.
 pbuilder-satisfydepends-dummy depends on python3-bs4; however:
  Package python3-bs4 is not installed.
 pbuilder-satisfydepends-dummy depends on python3-markdown; however:
  Package python3-markdown is not installed.
 pbuilder-satisfydepends-dummy depends on python3-pandas; however:
  Package python3-pandas is not installed.
 pbuilder-satisfydepends-dummy depends on python3-pytest; however:
  Package python3-pytest is not installed.
 pbuilder-satisfydepends-dummy depends on python3-rich; however:
  Package python3-rich is not installed.
 pbuilder-satisfydepends-dummy depends on python3-setuptools; however:
  Package python3-setuptools is not installed.
 pbuilder-satisfydepends-dummy depends on python3-setuptools-scm; however:
  Package python3-setuptools-scm is not installed.
 pbuilder-satisfydepends-dummy depends on python3-super-collections; however:
  Package python3-super-collections is not installed.
 pbuilder-satisfydepends-dummy depends on python3-yaml; however:
  Package python3-yaml is not installed.

Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ...
Reading package lists...
Building dependency tree...
Reading state information...
Initializing package states...
Writing extended state information...
Building tag database...
pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0)
pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0)
The following NEW packages will be installed:
  autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libblas3{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libffi8{a} libfile-stripnondeterminism-perl{a} libgfortran5{a} libicu72{a} liblapack3{a} libmagic-mgc{a} libmagic1t64{a} libpipeline1{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libtool{a} libuchardet0{a} libunistring5{a} libxml2{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} po-debconf{a} pybuild-plugin-pyproject{a} python3{a} python3-autocommand{a} python3-bs4{a} python3-build{a} python3-dateutil{a} python3-hjson{a} python3-inflect{a} python3-iniconfig{a} python3-installer{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-markdown{a} python3-markdown-it{a} python3-mdurl{a} python3-minimal{a} python3-more-itertools{a} python3-numpy{a} python3-packaging{a} python3-pandas{a} python3-pandas-lib{a} python3-pkg-resources{a} python3-pluggy{a} python3-pygments{a} python3-pyproject-hooks{a} python3-pytest{a} python3-rich{a} python3-setuptools{a} python3-setuptools-scm{a} python3-soupsieve{a} python3-super-collections{a} python3-toml{a} python3-typeguard{a} python3-typing-extensions{a} python3-tz{a} python3-wheel{a} python3-yaml{a} python3-zipp{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} 
The following packages are RECOMMENDED but will NOT be installed:
  ca-certificates curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx python3-bottleneck python3-chardet python3-charset-normalizer python3-html5lib python3-jinja2 python3-lxml python3-matplotlib python3-numexpr python3-odf python3-openpyxl python3-scipy python3-tables wget 
0 packages upgraded, 86 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.6 MB of archives. After unpacking 242 MB will be used.
Writing extended state information...
Get: 1 http://deb.debian.org/debian trixie/main i386 libpython3.13-minimal i386 3.13.1-3 [858 kB]
Get: 2 http://deb.debian.org/debian trixie/main i386 libexpat1 i386 2.6.4-1 [107 kB]
Get: 3 http://deb.debian.org/debian trixie/main i386 python3.13-minimal i386 3.13.1-3 [2264 kB]
Get: 4 http://deb.debian.org/debian trixie/main i386 python3-minimal i386 3.13.1-2 [27.0 kB]
Get: 5 http://deb.debian.org/debian trixie/main i386 media-types all 10.1.0 [26.9 kB]
Get: 6 http://deb.debian.org/debian trixie/main i386 netbase all 6.4 [12.8 kB]
Get: 7 http://deb.debian.org/debian trixie/main i386 tzdata all 2024b-6 [257 kB]
Get: 8 http://deb.debian.org/debian trixie/main i386 libffi8 i386 3.4.6-1 [21.2 kB]
Get: 9 http://deb.debian.org/debian trixie/main i386 readline-common all 8.2-6 [69.4 kB]
Get: 10 http://deb.debian.org/debian trixie/main i386 libreadline8t64 i386 8.2-6 [173 kB]
Get: 11 http://deb.debian.org/debian trixie/main i386 libpython3.13-stdlib i386 3.13.1-3 [1980 kB]
Get: 12 http://deb.debian.org/debian trixie/main i386 python3.13 i386 3.13.1-3 [740 kB]
Get: 13 http://deb.debian.org/debian trixie/main i386 libpython3-stdlib i386 3.13.1-2 [9952 B]
Get: 14 http://deb.debian.org/debian trixie/main i386 python3 i386 3.13.1-2 [28.0 kB]
Get: 15 http://deb.debian.org/debian trixie/main i386 sensible-utils all 0.0.24 [24.8 kB]
Get: 16 http://deb.debian.org/debian trixie/main i386 libmagic-mgc i386 1:5.45-3+b1 [314 kB]
Get: 17 http://deb.debian.org/debian trixie/main i386 libmagic1t64 i386 1:5.45-3+b1 [115 kB]
Get: 18 http://deb.debian.org/debian trixie/main i386 file i386 1:5.45-3+b1 [43.2 kB]
Get: 19 http://deb.debian.org/debian trixie/main i386 gettext-base i386 0.22.5-4 [201 kB]
Get: 20 http://deb.debian.org/debian trixie/main i386 libuchardet0 i386 0.0.8-1+b2 [69.2 kB]
Get: 21 http://deb.debian.org/debian trixie/main i386 groff-base i386 1.23.0-7 [1199 kB]
Get: 22 http://deb.debian.org/debian trixie/main i386 bsdextrautils i386 2.40.4-1 [96.1 kB]
Get: 23 http://deb.debian.org/debian trixie/main i386 libpipeline1 i386 1.5.8-1 [41.2 kB]
Get: 24 http://deb.debian.org/debian trixie/main i386 man-db i386 2.13.0-1 [1428 kB]
Get: 25 http://deb.debian.org/debian trixie/main i386 m4 i386 1.4.19-5 [301 kB]
Get: 26 http://deb.debian.org/debian trixie/main i386 autoconf all 2.72-3 [493 kB]
Get: 27 http://deb.debian.org/debian trixie/main i386 autotools-dev all 20220109.1 [51.6 kB]
Get: 28 http://deb.debian.org/debian trixie/main i386 automake all 1:1.16.5-1.3 [823 kB]
Get: 29 http://deb.debian.org/debian trixie/main i386 autopoint all 0.22.5-4 [723 kB]
Get: 30 http://deb.debian.org/debian trixie/main i386 libdebhelper-perl all 13.23 [90.6 kB]
Get: 31 http://deb.debian.org/debian trixie/main i386 libtool all 2.5.4-2 [539 kB]
Get: 32 http://deb.debian.org/debian trixie/main i386 dh-autoreconf all 20 [17.1 kB]
Get: 33 http://deb.debian.org/debian trixie/main i386 libarchive-zip-perl all 1.68-1 [104 kB]
Get: 34 http://deb.debian.org/debian trixie/main i386 libfile-stripnondeterminism-perl all 1.14.1-1 [19.6 kB]
Get: 35 http://deb.debian.org/debian trixie/main i386 dh-strip-nondeterminism all 1.14.1-1 [8584 B]
Get: 36 http://deb.debian.org/debian trixie/main i386 libelf1t64 i386 0.192-4 [195 kB]
Get: 37 http://deb.debian.org/debian trixie/main i386 dwz i386 0.15-1+b1 [116 kB]
Get: 38 http://deb.debian.org/debian trixie/main i386 libunistring5 i386 1.3-1 [458 kB]
Get: 39 http://deb.debian.org/debian trixie/main i386 libicu72 i386 72.1-6 [9582 kB]
Get: 40 http://deb.debian.org/debian trixie/main i386 libxml2 i386 2.12.7+dfsg+really2.9.14-0.2+b1 [734 kB]
Get: 41 http://deb.debian.org/debian trixie/main i386 gettext i386 0.22.5-4 [1632 kB]
Get: 42 http://deb.debian.org/debian trixie/main i386 intltool-debian all 0.35.0+20060710.6 [22.9 kB]
Get: 43 http://deb.debian.org/debian trixie/main i386 po-debconf all 1.0.21+nmu1 [248 kB]
Get: 44 http://deb.debian.org/debian trixie/main i386 debhelper all 13.23 [919 kB]
Get: 45 http://deb.debian.org/debian trixie/main i386 python3-autocommand all 2.2.2-3 [13.6 kB]
Get: 46 http://deb.debian.org/debian trixie/main i386 python3-more-itertools all 10.6.0-1 [65.3 kB]
Get: 47 http://deb.debian.org/debian trixie/main i386 python3-typing-extensions all 4.12.2-2 [73.0 kB]
Get: 48 http://deb.debian.org/debian trixie/main i386 python3-typeguard all 4.4.1-1 [37.0 kB]
Get: 49 http://deb.debian.org/debian trixie/main i386 python3-inflect all 7.3.1-2 [32.4 kB]
Get: 50 http://deb.debian.org/debian trixie/main i386 python3-jaraco.context all 6.0.0-1 [7984 B]
Get: 51 http://deb.debian.org/debian trixie/main i386 python3-jaraco.functools all 4.1.0-1 [12.0 kB]
Get: 52 http://deb.debian.org/debian trixie/main i386 python3-pkg-resources all 75.6.0-1 [222 kB]
Get: 53 http://deb.debian.org/debian trixie/main i386 python3-jaraco.text all 4.0.0-1 [11.4 kB]
Get: 54 http://deb.debian.org/debian trixie/main i386 python3-zipp all 3.21.0-1 [10.6 kB]
Get: 55 http://deb.debian.org/debian trixie/main i386 python3-setuptools all 75.6.0-1 [720 kB]
Get: 56 http://deb.debian.org/debian trixie/main i386 dh-python all 6.20250108 [113 kB]
Get: 57 http://deb.debian.org/debian trixie/main i386 libblas3 i386 3.12.0-4 [143 kB]
Get: 58 http://deb.debian.org/debian trixie/main i386 libgfortran5 i386 14.2.0-12 [735 kB]
Get: 59 http://deb.debian.org/debian trixie/main i386 liblapack3 i386 3.12.0-4 [2194 kB]
Get: 60 http://deb.debian.org/debian trixie/main i386 libyaml-0-2 i386 0.2.5-2 [55.8 kB]
Get: 61 http://deb.debian.org/debian trixie/main i386 python3-packaging all 24.2-1 [55.3 kB]
Get: 62 http://deb.debian.org/debian trixie/main i386 python3-pyproject-hooks all 1.2.0-1 [11.7 kB]
Get: 63 http://deb.debian.org/debian trixie/main i386 python3-toml all 0.10.2-1 [16.2 kB]
Get: 64 http://deb.debian.org/debian trixie/main i386 python3-wheel all 0.45.1-1 [56.7 kB]
Get: 65 http://deb.debian.org/debian trixie/main i386 python3-build all 1.2.2-1 [36.0 kB]
Get: 66 http://deb.debian.org/debian trixie/main i386 python3-installer all 0.7.0+dfsg1-3 [18.6 kB]
Get: 67 http://deb.debian.org/debian trixie/main i386 pybuild-plugin-pyproject all 6.20250108 [11.6 kB]
Get: 68 http://deb.debian.org/debian trixie/main i386 python3-soupsieve all 2.6-1 [38.3 kB]
Get: 69 http://deb.debian.org/debian trixie/main i386 python3-bs4 all 4.12.3-3 [133 kB]
Get: 70 http://deb.debian.org/debian trixie/main i386 python3-dateutil all 2.9.0-3 [79.3 kB]
Get: 71 http://deb.debian.org/debian trixie/main i386 python3-hjson all 3.1.0-3 [33.3 kB]
Get: 72 http://deb.debian.org/debian trixie/main i386 python3-iniconfig all 1.1.1-2 [6396 B]
Get: 73 http://deb.debian.org/debian trixie/main i386 python3-markdown all 3.7-2 [85.2 kB]
Get: 74 http://deb.debian.org/debian trixie/main i386 python3-mdurl all 0.1.2-1 [9444 B]
Get: 75 http://deb.debian.org/debian trixie/main i386 python3-markdown-it all 3.0.0-2 [62.5 kB]
Get: 76 http://deb.debian.org/debian trixie/main i386 python3-numpy i386 1:1.26.4+ds-13 [4751 kB]
Get: 77 http://deb.debian.org/debian trixie/main i386 python3-tz all 2024.2-1 [31.0 kB]
Get: 78 http://deb.debian.org/debian trixie/main i386 python3-pandas-lib i386 2.2.3+dfsg-5+b1 [6860 kB]
Get: 79 http://deb.debian.org/debian trixie/main i386 python3-pandas all 2.2.3+dfsg-5 [3096 kB]
Get: 80 http://deb.debian.org/debian trixie/main i386 python3-pluggy all 1.5.0-1 [26.9 kB]
Get: 81 http://deb.debian.org/debian trixie/main i386 python3-pygments all 2.18.0+dfsg-2 [836 kB]
Get: 82 http://deb.debian.org/debian trixie/main i386 python3-pytest all 8.3.4-1 [250 kB]
Get: 83 http://deb.debian.org/debian trixie/main i386 python3-rich all 13.9.4-1 [203 kB]
Get: 84 http://deb.debian.org/debian trixie/main i386 python3-setuptools-scm all 8.1.0-1 [40.5 kB]
Get: 85 http://deb.debian.org/debian trixie/main i386 python3-super-collections all 0.5.3-2 [12.2 kB]
Get: 86 http://deb.debian.org/debian trixie/main i386 python3-yaml i386 6.0.2-1+b1 [173 kB]
Fetched 48.6 MB in 0s (124 MB/s)
Preconfiguring packages ...
Selecting previously unselected package libpython3.13-minimal:i386.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 19841 files and directories currently installed.)
Preparing to unpack .../libpython3.13-minimal_3.13.1-3_i386.deb ...
Unpacking libpython3.13-minimal:i386 (3.13.1-3) ...
Selecting previously unselected package libexpat1:i386.
Preparing to unpack .../libexpat1_2.6.4-1_i386.deb ...
Unpacking libexpat1:i386 (2.6.4-1) ...
Selecting previously unselected package python3.13-minimal.
Preparing to unpack .../python3.13-minimal_3.13.1-3_i386.deb ...
Unpacking python3.13-minimal (3.13.1-3) ...
Setting up libpython3.13-minimal:i386 (3.13.1-3) ...
Setting up libexpat1:i386 (2.6.4-1) ...
Setting up python3.13-minimal (3.13.1-3) ...
Selecting previously unselected package python3-minimal.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 20175 files and directories currently installed.)
Preparing to unpack .../0-python3-minimal_3.13.1-2_i386.deb ...
Unpacking python3-minimal (3.13.1-2) ...
Selecting previously unselected package media-types.
Preparing to unpack .../1-media-types_10.1.0_all.deb ...
Unpacking media-types (10.1.0) ...
Selecting previously unselected package netbase.
Preparing to unpack .../2-netbase_6.4_all.deb ...
Unpacking netbase (6.4) ...
Selecting previously unselected package tzdata.
Preparing to unpack .../3-tzdata_2024b-6_all.deb ...
Unpacking tzdata (2024b-6) ...
Selecting previously unselected package libffi8:i386.
Preparing to unpack .../4-libffi8_3.4.6-1_i386.deb ...
Unpacking libffi8:i386 (3.4.6-1) ...
Selecting previously unselected package readline-common.
Preparing to unpack .../5-readline-common_8.2-6_all.deb ...
Unpacking readline-common (8.2-6) ...
Selecting previously unselected package libreadline8t64:i386.
Preparing to unpack .../6-libreadline8t64_8.2-6_i386.deb ...
Adding 'diversion of /lib/i386-linux-gnu/libhistory.so.8 to /lib/i386-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/i386-linux-gnu/libhistory.so.8.2 to /lib/i386-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/i386-linux-gnu/libreadline.so.8 to /lib/i386-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/i386-linux-gnu/libreadline.so.8.2 to /lib/i386-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64'
Unpacking libreadline8t64:i386 (8.2-6) ...
Selecting previously unselected package libpython3.13-stdlib:i386.
Preparing to unpack .../7-libpython3.13-stdlib_3.13.1-3_i386.deb ...
Unpacking libpython3.13-stdlib:i386 (3.13.1-3) ...
Selecting previously unselected package python3.13.
Preparing to unpack .../8-python3.13_3.13.1-3_i386.deb ...
Unpacking python3.13 (3.13.1-3) ...
Selecting previously unselected package libpython3-stdlib:i386.
Preparing to unpack .../9-libpython3-stdlib_3.13.1-2_i386.deb ...
Unpacking libpython3-stdlib:i386 (3.13.1-2) ...
Setting up python3-minimal (3.13.1-2) ...
Selecting previously unselected package python3.
(Reading database ... 
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 21185 files and directories currently installed.)
Preparing to unpack .../00-python3_3.13.1-2_i386.deb ...
Unpacking python3 (3.13.1-2) ...
Selecting previously unselected package sensible-utils.
Preparing to unpack .../01-sensible-utils_0.0.24_all.deb ...
Unpacking sensible-utils (0.0.24) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../02-libmagic-mgc_1%3a5.45-3+b1_i386.deb ...
Unpacking libmagic-mgc (1:5.45-3+b1) ...
Selecting previously unselected package libmagic1t64:i386.
Preparing to unpack .../03-libmagic1t64_1%3a5.45-3+b1_i386.deb ...
Unpacking libmagic1t64:i386 (1:5.45-3+b1) ...
Selecting previously unselected package file.
Preparing to unpack .../04-file_1%3a5.45-3+b1_i386.deb ...
Unpacking file (1:5.45-3+b1) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../05-gettext-base_0.22.5-4_i386.deb ...
Unpacking gettext-base (0.22.5-4) ...
Selecting previously unselected package libuchardet0:i386.
Preparing to unpack .../06-libuchardet0_0.0.8-1+b2_i386.deb ...
Unpacking libuchardet0:i386 (0.0.8-1+b2) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../07-groff-base_1.23.0-7_i386.deb ...
Unpacking groff-base (1.23.0-7) ...
Selecting previously unselected package bsdextrautils.
Preparing to unpack .../08-bsdextrautils_2.40.4-1_i386.deb ...
Unpacking bsdextrautils (2.40.4-1) ...
Selecting previously unselected package libpipeline1:i386.
Preparing to unpack .../09-libpipeline1_1.5.8-1_i386.deb ...
Unpacking libpipeline1:i386 (1.5.8-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../10-man-db_2.13.0-1_i386.deb ...
Unpacking man-db (2.13.0-1) ...
Selecting previously unselected package m4.
Preparing to unpack .../11-m4_1.4.19-5_i386.deb ...
Unpacking m4 (1.4.19-5) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../12-autoconf_2.72-3_all.deb ...
Unpacking autoconf (2.72-3) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../13-autotools-dev_20220109.1_all.deb ...
Unpacking autotools-dev (20220109.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../14-automake_1%3a1.16.5-1.3_all.deb ...
Unpacking automake (1:1.16.5-1.3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../15-autopoint_0.22.5-4_all.deb ...
Unpacking autopoint (0.22.5-4) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../16-libdebhelper-perl_13.23_all.deb ...
Unpacking libdebhelper-perl (13.23) ...
Selecting previously unselected package libtool.
Preparing to unpack .../17-libtool_2.5.4-2_all.deb ...
Unpacking libtool (2.5.4-2) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../18-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../19-libarchive-zip-perl_1.68-1_all.deb ...
Unpacking libarchive-zip-perl (1.68-1) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../20-libfile-stripnondeterminism-perl_1.14.1-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.14.1-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../21-dh-strip-nondeterminism_1.14.1-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.14.1-1) ...
Selecting previously unselected package libelf1t64:i386.
Preparing to unpack .../22-libelf1t64_0.192-4_i386.deb ...
Unpacking libelf1t64:i386 (0.192-4) ...
Selecting previously unselected package dwz.
Preparing to unpack .../23-dwz_0.15-1+b1_i386.deb ...
Unpacking dwz (0.15-1+b1) ...
Selecting previously unselected package libunistring5:i386.
Preparing to unpack .../24-libunistring5_1.3-1_i386.deb ...
Unpacking libunistring5:i386 (1.3-1) ...
Selecting previously unselected package libicu72:i386.
Preparing to unpack .../25-libicu72_72.1-6_i386.deb ...
Unpacking libicu72:i386 (72.1-6) ...
Selecting previously unselected package libxml2:i386.
Preparing to unpack .../26-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_i386.deb ...
Unpacking libxml2:i386 (2.12.7+dfsg+really2.9.14-0.2+b1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../27-gettext_0.22.5-4_i386.deb ...
Unpacking gettext (0.22.5-4) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../28-intltool-debian_0.35.0+20060710.6_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.6) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../29-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../30-debhelper_13.23_all.deb ...
Unpacking debhelper (13.23) ...
Selecting previously unselected package python3-autocommand.
Preparing to unpack .../31-python3-autocommand_2.2.2-3_all.deb ...
Unpacking python3-autocommand (2.2.2-3) ...
Selecting previously unselected package python3-more-itertools.
Preparing to unpack .../32-python3-more-itertools_10.6.0-1_all.deb ...
Unpacking python3-more-itertools (10.6.0-1) ...
Selecting previously unselected package python3-typing-extensions.
Preparing to unpack .../33-python3-typing-extensions_4.12.2-2_all.deb ...
Unpacking python3-typing-extensions (4.12.2-2) ...
Selecting previously unselected package python3-typeguard.
Preparing to unpack .../34-python3-typeguard_4.4.1-1_all.deb ...
Unpacking python3-typeguard (4.4.1-1) ...
Selecting previously unselected package python3-inflect.
Preparing to unpack .../35-python3-inflect_7.3.1-2_all.deb ...
Unpacking python3-inflect (7.3.1-2) ...
Selecting previously unselected package python3-jaraco.context.
Preparing to unpack .../36-python3-jaraco.context_6.0.0-1_all.deb ...
Unpacking python3-jaraco.context (6.0.0-1) ...
Selecting previously unselected package python3-jaraco.functools.
Preparing to unpack .../37-python3-jaraco.functools_4.1.0-1_all.deb ...
Unpacking python3-jaraco.functools (4.1.0-1) ...
Selecting previously unselected package python3-pkg-resources.
Preparing to unpack .../38-python3-pkg-resources_75.6.0-1_all.deb ...
Unpacking python3-pkg-resources (75.6.0-1) ...
Selecting previously unselected package python3-jaraco.text.
Preparing to unpack .../39-python3-jaraco.text_4.0.0-1_all.deb ...
Unpacking python3-jaraco.text (4.0.0-1) ...
Selecting previously unselected package python3-zipp.
Preparing to unpack .../40-python3-zipp_3.21.0-1_all.deb ...
Unpacking python3-zipp (3.21.0-1) ...
Selecting previously unselected package python3-setuptools.
Preparing to unpack .../41-python3-setuptools_75.6.0-1_all.deb ...
Unpacking python3-setuptools (75.6.0-1) ...
Selecting previously unselected package dh-python.
Preparing to unpack .../42-dh-python_6.20250108_all.deb ...
Unpacking dh-python (6.20250108) ...
Selecting previously unselected package libblas3:i386.
Preparing to unpack .../43-libblas3_3.12.0-4_i386.deb ...
Unpacking libblas3:i386 (3.12.0-4) ...
Selecting previously unselected package libgfortran5:i386.
Preparing to unpack .../44-libgfortran5_14.2.0-12_i386.deb ...
Unpacking libgfortran5:i386 (14.2.0-12) ...
Selecting previously unselected package liblapack3:i386.
Preparing to unpack .../45-liblapack3_3.12.0-4_i386.deb ...
Unpacking liblapack3:i386 (3.12.0-4) ...
Selecting previously unselected package libyaml-0-2:i386.
Preparing to unpack .../46-libyaml-0-2_0.2.5-2_i386.deb ...
Unpacking libyaml-0-2:i386 (0.2.5-2) ...
Selecting previously unselected package python3-packaging.
Preparing to unpack .../47-python3-packaging_24.2-1_all.deb ...
Unpacking python3-packaging (24.2-1) ...
Selecting previously unselected package python3-pyproject-hooks.
Preparing to unpack .../48-python3-pyproject-hooks_1.2.0-1_all.deb ...
Unpacking python3-pyproject-hooks (1.2.0-1) ...
Selecting previously unselected package python3-toml.
Preparing to unpack .../49-python3-toml_0.10.2-1_all.deb ...
Unpacking python3-toml (0.10.2-1) ...
Selecting previously unselected package python3-wheel.
Preparing to unpack .../50-python3-wheel_0.45.1-1_all.deb ...
Unpacking python3-wheel (0.45.1-1) ...
Selecting previously unselected package python3-build.
Preparing to unpack .../51-python3-build_1.2.2-1_all.deb ...
Unpacking python3-build (1.2.2-1) ...
Selecting previously unselected package python3-installer.
Preparing to unpack .../52-python3-installer_0.7.0+dfsg1-3_all.deb ...
Unpacking python3-installer (0.7.0+dfsg1-3) ...
Selecting previously unselected package pybuild-plugin-pyproject.
Preparing to unpack .../53-pybuild-plugin-pyproject_6.20250108_all.deb ...
Unpacking pybuild-plugin-pyproject (6.20250108) ...
Selecting previously unselected package python3-soupsieve.
Preparing to unpack .../54-python3-soupsieve_2.6-1_all.deb ...
Unpacking python3-soupsieve (2.6-1) ...
Selecting previously unselected package python3-bs4.
Preparing to unpack .../55-python3-bs4_4.12.3-3_all.deb ...
Unpacking python3-bs4 (4.12.3-3) ...
Selecting previously unselected package python3-dateutil.
Preparing to unpack .../56-python3-dateutil_2.9.0-3_all.deb ...
Unpacking python3-dateutil (2.9.0-3) ...
Selecting previously unselected package python3-hjson.
Preparing to unpack .../57-python3-hjson_3.1.0-3_all.deb ...
Unpacking python3-hjson (3.1.0-3) ...
Selecting previously unselected package python3-iniconfig.
Preparing to unpack .../58-python3-iniconfig_1.1.1-2_all.deb ...
Unpacking python3-iniconfig (1.1.1-2) ...
Selecting previously unselected package python3-markdown.
Preparing to unpack .../59-python3-markdown_3.7-2_all.deb ...
Unpacking python3-markdown (3.7-2) ...
Selecting previously unselected package python3-mdurl.
Preparing to unpack .../60-python3-mdurl_0.1.2-1_all.deb ...
Unpacking python3-mdurl (0.1.2-1) ...
Selecting previously unselected package python3-markdown-it.
Preparing to unpack .../61-python3-markdown-it_3.0.0-2_all.deb ...
Unpacking python3-markdown-it (3.0.0-2) ...
Selecting previously unselected package python3-numpy.
Preparing to unpack .../62-python3-numpy_1%3a1.26.4+ds-13_i386.deb ...
Unpacking python3-numpy (1:1.26.4+ds-13) ...
Selecting previously unselected package python3-tz.
Preparing to unpack .../63-python3-tz_2024.2-1_all.deb ...
Unpacking python3-tz (2024.2-1) ...
Selecting previously unselected package python3-pandas-lib:i386.
Preparing to unpack .../64-python3-pandas-lib_2.2.3+dfsg-5+b1_i386.deb ...
Unpacking python3-pandas-lib:i386 (2.2.3+dfsg-5+b1) ...
Selecting previously unselected package python3-pandas.
Preparing to unpack .../65-python3-pandas_2.2.3+dfsg-5_all.deb ...
Unpacking python3-pandas (2.2.3+dfsg-5) ...
Selecting previously unselected package python3-pluggy.
Preparing to unpack .../66-python3-pluggy_1.5.0-1_all.deb ...
Unpacking python3-pluggy (1.5.0-1) ...
Selecting previously unselected package python3-pygments.
Preparing to unpack .../67-python3-pygments_2.18.0+dfsg-2_all.deb ...
Unpacking python3-pygments (2.18.0+dfsg-2) ...
Selecting previously unselected package python3-pytest.
Preparing to unpack .../68-python3-pytest_8.3.4-1_all.deb ...
Unpacking python3-pytest (8.3.4-1) ...
Selecting previously unselected package python3-rich.
Preparing to unpack .../69-python3-rich_13.9.4-1_all.deb ...
Unpacking python3-rich (13.9.4-1) ...
Selecting previously unselected package python3-setuptools-scm.
Preparing to unpack .../70-python3-setuptools-scm_8.1.0-1_all.deb ...
Unpacking python3-setuptools-scm (8.1.0-1) ...
Selecting previously unselected package python3-super-collections.
Preparing to unpack .../71-python3-super-collections_0.5.3-2_all.deb ...
Unpacking python3-super-collections (0.5.3-2) ...
Selecting previously unselected package python3-yaml.
Preparing to unpack .../72-python3-yaml_6.0.2-1+b1_i386.deb ...
Unpacking python3-yaml (6.0.2-1+b1) ...
Setting up media-types (10.1.0) ...
Setting up libpipeline1:i386 (1.5.8-1) ...
Setting up libicu72:i386 (72.1-6) ...
Setting up bsdextrautils (2.40.4-1) ...
Setting up libmagic-mgc (1:5.45-3+b1) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libyaml-0-2:i386 (0.2.5-2) ...
Setting up libdebhelper-perl (13.23) ...
Setting up libmagic1t64:i386 (1:5.45-3+b1) ...
Setting up gettext-base (0.22.5-4) ...
Setting up m4 (1.4.19-5) ...
Setting up file (1:5.45-3+b1) ...
Setting up libelf1t64:i386 (0.192-4) ...
Setting up tzdata (2024b-6) ...

Current default time zone: 'Etc/UTC'
Local time is now:      Mon Mar  2 18:49:18 UTC 2026.
Universal Time is now:  Mon Mar  2 18:49:18 UTC 2026.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

Setting up autotools-dev (20220109.1) ...
Setting up libblas3:i386 (3.12.0-4) ...
update-alternatives: using /usr/lib/i386-linux-gnu/blas/libblas.so.3 to provide /usr/lib/i386-linux-gnu/libblas.so.3 (libblas.so.3-i386-linux-gnu) in auto mode
Setting up libunistring5:i386 (1.3-1) ...
Setting up autopoint (0.22.5-4) ...
Setting up libgfortran5:i386 (14.2.0-12) ...
Setting up autoconf (2.72-3) ...
Setting up libffi8:i386 (3.4.6-1) ...
Setting up dwz (0.15-1+b1) ...
Setting up sensible-utils (0.0.24) ...
Setting up libuchardet0:i386 (0.0.8-1+b2) ...
Setting up netbase (6.4) ...
Setting up readline-common (8.2-6) ...
Setting up libxml2:i386 (2.12.7+dfsg+really2.9.14-0.2+b1) ...
Setting up automake (1:1.16.5-1.3) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up libfile-stripnondeterminism-perl (1.14.1-1) ...
Setting up liblapack3:i386 (3.12.0-4) ...
update-alternatives: using /usr/lib/i386-linux-gnu/lapack/liblapack.so.3 to provide /usr/lib/i386-linux-gnu/liblapack.so.3 (liblapack.so.3-i386-linux-gnu) in auto mode
Setting up gettext (0.22.5-4) ...
Setting up libtool (2.5.4-2) ...
Setting up intltool-debian (0.35.0+20060710.6) ...
Setting up dh-autoreconf (20) ...
Setting up libreadline8t64:i386 (8.2-6) ...
Setting up dh-strip-nondeterminism (1.14.1-1) ...
Setting up groff-base (1.23.0-7) ...
Setting up libpython3.13-stdlib:i386 (3.13.1-3) ...
Setting up libpython3-stdlib:i386 (3.13.1-2) ...
Setting up python3.13 (3.13.1-3) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up python3 (3.13.1-2) ...
Setting up python3-zipp (3.21.0-1) ...
Setting up python3-autocommand (2.2.2-3) ...
Setting up man-db (2.13.0-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up python3-hjson (3.1.0-3) ...
Setting up python3-wheel (0.45.1-1) ...
Setting up python3-tz (2024.2-1) ...
Setting up python3-pygments (2.18.0+dfsg-2) ...
Setting up python3-packaging (24.2-1) ...
Setting up python3-pyproject-hooks (1.2.0-1) ...
Setting up python3-mdurl (0.1.2-1) ...
Setting up python3-markdown (3.7-2) ...
Setting up python3-typing-extensions (4.12.2-2) ...
Setting up python3-numpy (1:1.26.4+ds-13) ...
Setting up python3-toml (0.10.2-1) ...
Setting up python3-installer (0.7.0+dfsg1-3) ...
Setting up python3-pluggy (1.5.0-1) ...
Setting up python3-markdown-it (3.0.0-2) ...
Setting up python3-dateutil (2.9.0-3) ...
Setting up python3-build (1.2.2-1) ...
Setting up python3-soupsieve (2.6-1) ...
Setting up python3-more-itertools (10.6.0-1) ...
Setting up python3-iniconfig (1.1.1-2) ...
Setting up python3-jaraco.functools (4.1.0-1) ...
Setting up python3-jaraco.context (6.0.0-1) ...
Setting up python3-rich (13.9.4-1) ...
Setting up python3-pytest (8.3.4-1) ...
Setting up python3-pandas-lib:i386 (2.2.3+dfsg-5+b1) ...
Setting up python3-typeguard (4.4.1-1) ...
Setting up python3-yaml (6.0.2-1+b1) ...
Setting up debhelper (13.23) ...
Setting up python3-super-collections (0.5.3-2) ...
Setting up python3-bs4 (4.12.3-3) ...
Setting up python3-inflect (7.3.1-2) ...
Setting up python3-pandas (2.2.3+dfsg-5) ...
Setting up python3-jaraco.text (4.0.0-1) ...
Setting up python3-pkg-resources (75.6.0-1) ...
Setting up python3-setuptools (75.6.0-1) ...
Setting up python3-setuptools-scm (8.1.0-1) ...
Setting up dh-python (6.20250108) ...
Setting up pybuild-plugin-pyproject (6.20250108) ...
Processing triggers for libc-bin (2.40-6) ...
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Writing extended state information...
Building tag database...
 -> Finished parsing the build-deps
I: Building the package
I: Running cd /build/reproducible-path/mkdocs-test-0.5.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S  > ../mkdocs-test_0.5.3-5_source.changes
dpkg-buildpackage: info: source package mkdocs-test
dpkg-buildpackage: info: source version 0.5.3-5
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Boyuan Yang <byang@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture i386
 debian/rules clean
dh clean --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --buildsystem=pybuild
   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/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test  
* Building wheel...
running bdist_wheel
running build
running build_py
creating build/lib/mkdocs_test
copying mkdocs_test/plugin.py -> build/lib/mkdocs_test
copying mkdocs_test/__init__.py -> build/lib/mkdocs_test
copying mkdocs_test/common.py -> build/lib/mkdocs_test
running egg_info
creating mkdocs_test.egg-info
writing mkdocs_test.egg-info/PKG-INFO
writing dependency_links to mkdocs_test.egg-info/dependency_links.txt
writing entry points to mkdocs_test.egg-info/entry_points.txt
writing requirements to mkdocs_test.egg-info/requires.txt
writing top-level names to mkdocs_test.egg-info/top_level.txt
writing manifest file 'mkdocs_test.egg-info/SOURCES.txt'
reading manifest file 'mkdocs_test.egg-info/SOURCES.txt'
adding license file 'LICENSE'
writing manifest file 'mkdocs_test.egg-info/SOURCES.txt'
installing to build/bdist.linux-i686/wheel
running install
running install_lib
creating build/bdist.linux-i686/wheel
creating build/bdist.linux-i686/wheel/mkdocs_test
copying build/lib/mkdocs_test/plugin.py -> build/bdist.linux-i686/wheel/./mkdocs_test
copying build/lib/mkdocs_test/__init__.py -> build/bdist.linux-i686/wheel/./mkdocs_test
copying build/lib/mkdocs_test/common.py -> build/bdist.linux-i686/wheel/./mkdocs_test
running install_egg_info
Copying mkdocs_test.egg-info to build/bdist.linux-i686/wheel/./mkdocs_test-0.5.3.egg-info
running install_scripts
creating build/bdist.linux-i686/wheel/mkdocs_test-0.5.3.dist-info/WHEEL
creating '/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/.tmp-rtla2mc3/mkdocs_test-0.5.3-py3-none-any.whl' and adding 'build/bdist.linux-i686/wheel' to it
adding 'mkdocs_test/__init__.py'
adding 'mkdocs_test/common.py'
adding 'mkdocs_test/plugin.py'
adding 'mkdocs_test-0.5.3.dist-info/LICENSE'
adding 'mkdocs_test-0.5.3.dist-info/METADATA'
adding 'mkdocs_test-0.5.3.dist-info/WHEEL'
adding 'mkdocs_test-0.5.3.dist-info/entry_points.txt'
adding 'mkdocs_test-0.5.3.dist-info/top_level.txt'
adding 'mkdocs_test-0.5.3.dist-info/RECORD'
removing build/bdist.linux-i686/wheel
Successfully built mkdocs_test-0.5.3-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module
   debian/rules override_dh_auto_test
make[1]: Entering directory '/build/reproducible-path/mkdocs-test-0.5.3'
dh_auto_test
I: pybuild base:311: cd /build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build; python3.13 -m pytest test
============================= test session starts ==============================
platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0
rootdir: /build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build
configfile: pyproject.toml
plugins: typeguard-4.4.1
collected 8 items

test/advanced/test_advanced.py FF                                        [ 25%]
test/alter_markdown/test_site.py F                                       [ 37%]
test/simple/test_site.py FF                                              [ 62%]
test/test_simple.py F.F                                                  [100%]

=================================== FAILURES ===================================
__________________________________ test_pages __________________________________

    def test_pages():
        project = DocProject()
>       project.build(strict=False)

/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/test/advanced/test_advanced.py:19: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/__init__.py:482: in build
    self._build_result = run_command(*command)
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/common.py:332: in run_command
    return subprocess.run(full_command, capture_output=True, text=True)
/usr/lib/python3.13/subprocess.py:554: in run
    with Popen(*popenargs, **kwargs) as process:
/usr/lib/python3.13/subprocess.py:1036: in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Popen: returncode: 255 args: ['mkdocs', 'build']>
args = ['mkdocs', 'build'], executable = b'mkdocs', preexec_fn = None
close_fds = True, pass_fds = (), cwd = None, env = None, startupinfo = None
creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11
c2pwrite = 12, errread = 13, errwrite = 14, restore_signals = True, gid = None
gids = None, uid = None, umask = -1, start_new_session = False
process_group = -1

    def _execute_child(self, args, executable, preexec_fn, close_fds,
                       pass_fds, cwd, env,
                       startupinfo, creationflags, shell,
                       p2cread, p2cwrite,
                       c2pread, c2pwrite,
                       errread, errwrite,
                       restore_signals,
                       gid, gids, uid, umask,
                       start_new_session, process_group):
        """Execute program (POSIX version)"""
    
        if isinstance(args, (str, bytes)):
            args = [args]
        elif isinstance(args, os.PathLike):
            if shell:
                raise TypeError('path-like args is not allowed when '
                                'shell is true')
            args = [args]
        else:
            args = list(args)
    
        if shell:
            # On Android the default shell is at '/system/bin/sh'.
            unix_shell = ('/system/bin/sh' if
                      hasattr(sys, 'getandroidapilevel') else '/bin/sh')
            args = [unix_shell, "-c"] + args
            if executable:
                args[0] = executable
    
        if executable is None:
            executable = args[0]
    
        sys.audit("subprocess.Popen", executable, args, cwd, env)
    
        if (_USE_POSIX_SPAWN
                and os.path.dirname(executable)
                and preexec_fn is None
                and (not close_fds or _HAVE_POSIX_SPAWN_CLOSEFROM)
                and not pass_fds
                and cwd is None
                and (p2cread == -1 or p2cread > 2)
                and (c2pwrite == -1 or c2pwrite > 2)
                and (errwrite == -1 or errwrite > 2)
                and not start_new_session
                and process_group == -1
                and gid is None
                and gids is None
                and uid is None
                and umask < 0):
            self._posix_spawn(args, executable, env, restore_signals, close_fds,
                              p2cread, p2cwrite,
                              c2pread, c2pwrite,
                              errread, errwrite)
            return
    
        orig_executable = executable
    
        # For transferring possible exec failure from child to parent.
        # Data format: "exception name:hex errno:description"
        # Pickle is not used; it is complex and involves memory allocation.
        errpipe_read, errpipe_write = os.pipe()
        # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
        low_fds_to_close = []
        while errpipe_write < 3:
            low_fds_to_close.append(errpipe_write)
            errpipe_write = os.dup(errpipe_write)
        for low_fd in low_fds_to_close:
            os.close(low_fd)
        try:
            try:
                # We must avoid complex work that could involve
                # malloc or free in the child process to avoid
                # potential deadlocks, thus we do all this here.
                # and pass it to fork_exec()
    
                if env is not None:
                    env_list = []
                    for k, v in env.items():
                        k = os.fsencode(k)
                        if b'=' in k:
                            raise ValueError("illegal environment variable name")
                        env_list.append(k + b'=' + os.fsencode(v))
                else:
                    env_list = None  # Use execv instead of execve.
                executable = os.fsencode(executable)
                if os.path.dirname(executable):
                    executable_list = (executable,)
                else:
                    # This matches the behavior of os._execvpe().
                    executable_list = tuple(
                        os.path.join(os.fsencode(dir), executable)
                        for dir in os.get_exec_path(env))
                fds_to_keep = set(pass_fds)
                fds_to_keep.add(errpipe_write)
                self.pid = _fork_exec(
                        args, executable_list,
                        close_fds, tuple(sorted(map(int, fds_to_keep))),
                        cwd, env_list,
                        p2cread, p2cwrite, c2pread, c2pwrite,
                        errread, errwrite,
                        errpipe_read, errpipe_write,
                        restore_signals, start_new_session,
                        process_group, gid, gids, uid, umask,
                        preexec_fn, _USE_VFORK)
                self._child_created = True
            finally:
                # be sure the FD is closed no matter what
                os.close(errpipe_write)
    
            self._close_pipe_fds(p2cread, p2cwrite,
                                 c2pread, c2pwrite,
                                 errread, errwrite)
    
            # Wait for exec to fail or succeed; possibly raising an
            # exception (limited in size)
            errpipe_data = bytearray()
            while True:
                part = os.read(errpipe_read, 50000)
                errpipe_data += part
                if not part or len(errpipe_data) > 50000:
                    break
        finally:
            # be sure the FD is closed no matter what
            os.close(errpipe_read)
    
        if errpipe_data:
            try:
                pid, sts = os.waitpid(self.pid, 0)
                if pid == self.pid:
                    self._handle_exitstatus(sts)
                else:
                    self.returncode = sys.maxsize
            except ChildProcessError:
                pass
    
            try:
                exception_name, hex_errno, err_msg = (
                        errpipe_data.split(b':', 2))
                # The encoding here should match the encoding
                # written in by the subprocess implementations
                # like _posixsubprocess
                err_msg = err_msg.decode()
            except ValueError:
                exception_name = b'SubprocessError'
                hex_errno = b'0'
                err_msg = 'Bad exception data from child: {!r}'.format(
                              bytes(errpipe_data))
            child_exception_type = getattr(
                    builtins, exception_name.decode('ascii'),
                    SubprocessError)
            if issubclass(child_exception_type, OSError) and hex_errno:
                errno_num = int(hex_errno, 16)
                if err_msg == "noexec:chdir":
                    err_msg = ""
                    # The error must be from chdir(cwd).
                    err_filename = cwd
                elif err_msg == "noexec":
                    err_msg = ""
                    err_filename = None
                else:
                    err_filename = orig_executable
                if errno_num != 0:
                    err_msg = os.strerror(errno_num)
                if err_filename is not None:
>                   raise child_exception_type(errno_num, err_msg, err_filename)
E                   FileNotFoundError: [Errno 2] No such file or directory: 'mkdocs'

/usr/lib/python3.13/subprocess.py:1966: FileNotFoundError
----------------------------- Captured stdout call -----------------------------
BUILD COMMAND: ['mkdocs', 'build']
_________________________________ test_strict __________________________________

    def test_strict():
        "This project must fail"
        project = DocProject()
    
        # it must not fail with the --strict option,
>       project.build(strict=True)

/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/test/advanced/test_advanced.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/__init__.py:482: in build
    self._build_result = run_command(*command)
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/common.py:332: in run_command
    return subprocess.run(full_command, capture_output=True, text=True)
/usr/lib/python3.13/subprocess.py:554: in run
    with Popen(*popenargs, **kwargs) as process:
/usr/lib/python3.13/subprocess.py:1036: in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Popen: returncode: 255 args: ['mkdocs', 'build', '--strict']>
args = ['mkdocs', 'build', '--strict'], executable = b'mkdocs'
preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
startupinfo = None, creationflags = 0, shell = False, p2cread = -1
p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = 13, errwrite = 14
restore_signals = True, gid = None, gids = None, uid = None, umask = -1
start_new_session = False, process_group = -1

    def _execute_child(self, args, executable, preexec_fn, close_fds,
                       pass_fds, cwd, env,
                       startupinfo, creationflags, shell,
                       p2cread, p2cwrite,
                       c2pread, c2pwrite,
                       errread, errwrite,
                       restore_signals,
                       gid, gids, uid, umask,
                       start_new_session, process_group):
        """Execute program (POSIX version)"""
    
        if isinstance(args, (str, bytes)):
            args = [args]
        elif isinstance(args, os.PathLike):
            if shell:
                raise TypeError('path-like args is not allowed when '
                                'shell is true')
            args = [args]
        else:
            args = list(args)
    
        if shell:
            # On Android the default shell is at '/system/bin/sh'.
            unix_shell = ('/system/bin/sh' if
                      hasattr(sys, 'getandroidapilevel') else '/bin/sh')
            args = [unix_shell, "-c"] + args
            if executable:
                args[0] = executable
    
        if executable is None:
            executable = args[0]
    
        sys.audit("subprocess.Popen", executable, args, cwd, env)
    
        if (_USE_POSIX_SPAWN
                and os.path.dirname(executable)
                and preexec_fn is None
                and (not close_fds or _HAVE_POSIX_SPAWN_CLOSEFROM)
                and not pass_fds
                and cwd is None
                and (p2cread == -1 or p2cread > 2)
                and (c2pwrite == -1 or c2pwrite > 2)
                and (errwrite == -1 or errwrite > 2)
                and not start_new_session
                and process_group == -1
                and gid is None
                and gids is None
                and uid is None
                and umask < 0):
            self._posix_spawn(args, executable, env, restore_signals, close_fds,
                              p2cread, p2cwrite,
                              c2pread, c2pwrite,
                              errread, errwrite)
            return
    
        orig_executable = executable
    
        # For transferring possible exec failure from child to parent.
        # Data format: "exception name:hex errno:description"
        # Pickle is not used; it is complex and involves memory allocation.
        errpipe_read, errpipe_write = os.pipe()
        # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
        low_fds_to_close = []
        while errpipe_write < 3:
            low_fds_to_close.append(errpipe_write)
            errpipe_write = os.dup(errpipe_write)
        for low_fd in low_fds_to_close:
            os.close(low_fd)
        try:
            try:
                # We must avoid complex work that could involve
                # malloc or free in the child process to avoid
                # potential deadlocks, thus we do all this here.
                # and pass it to fork_exec()
    
                if env is not None:
                    env_list = []
                    for k, v in env.items():
                        k = os.fsencode(k)
                        if b'=' in k:
                            raise ValueError("illegal environment variable name")
                        env_list.append(k + b'=' + os.fsencode(v))
                else:
                    env_list = None  # Use execv instead of execve.
                executable = os.fsencode(executable)
                if os.path.dirname(executable):
                    executable_list = (executable,)
                else:
                    # This matches the behavior of os._execvpe().
                    executable_list = tuple(
                        os.path.join(os.fsencode(dir), executable)
                        for dir in os.get_exec_path(env))
                fds_to_keep = set(pass_fds)
                fds_to_keep.add(errpipe_write)
                self.pid = _fork_exec(
                        args, executable_list,
                        close_fds, tuple(sorted(map(int, fds_to_keep))),
                        cwd, env_list,
                        p2cread, p2cwrite, c2pread, c2pwrite,
                        errread, errwrite,
                        errpipe_read, errpipe_write,
                        restore_signals, start_new_session,
                        process_group, gid, gids, uid, umask,
                        preexec_fn, _USE_VFORK)
                self._child_created = True
            finally:
                # be sure the FD is closed no matter what
                os.close(errpipe_write)
    
            self._close_pipe_fds(p2cread, p2cwrite,
                                 c2pread, c2pwrite,
                                 errread, errwrite)
    
            # Wait for exec to fail or succeed; possibly raising an
            # exception (limited in size)
            errpipe_data = bytearray()
            while True:
                part = os.read(errpipe_read, 50000)
                errpipe_data += part
                if not part or len(errpipe_data) > 50000:
                    break
        finally:
            # be sure the FD is closed no matter what
            os.close(errpipe_read)
    
        if errpipe_data:
            try:
                pid, sts = os.waitpid(self.pid, 0)
                if pid == self.pid:
                    self._handle_exitstatus(sts)
                else:
                    self.returncode = sys.maxsize
            except ChildProcessError:
                pass
    
            try:
                exception_name, hex_errno, err_msg = (
                        errpipe_data.split(b':', 2))
                # The encoding here should match the encoding
                # written in by the subprocess implementations
                # like _posixsubprocess
                err_msg = err_msg.decode()
            except ValueError:
                exception_name = b'SubprocessError'
                hex_errno = b'0'
                err_msg = 'Bad exception data from child: {!r}'.format(
                              bytes(errpipe_data))
            child_exception_type = getattr(
                    builtins, exception_name.decode('ascii'),
                    SubprocessError)
            if issubclass(child_exception_type, OSError) and hex_errno:
                errno_num = int(hex_errno, 16)
                if err_msg == "noexec:chdir":
                    err_msg = ""
                    # The error must be from chdir(cwd).
                    err_filename = cwd
                elif err_msg == "noexec":
                    err_msg = ""
                    err_filename = None
                else:
                    err_filename = orig_executable
                if errno_num != 0:
                    err_msg = os.strerror(errno_num)
                if err_filename is not None:
>                   raise child_exception_type(errno_num, err_msg, err_filename)
E                   FileNotFoundError: [Errno 2] No such file or directory: 'mkdocs'

/usr/lib/python3.13/subprocess.py:1966: FileNotFoundError
----------------------------- Captured stdout call -----------------------------
BUILD COMMAND: ['mkdocs', 'build', '--strict']
__________________________________ test_pages __________________________________

    def test_pages():
        project = DocProject()
>       project.build(strict=True)

/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/test/alter_markdown/test_site.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/__init__.py:482: in build
    self._build_result = run_command(*command)
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/common.py:332: in run_command
    return subprocess.run(full_command, capture_output=True, text=True)
/usr/lib/python3.13/subprocess.py:554: in run
    with Popen(*popenargs, **kwargs) as process:
/usr/lib/python3.13/subprocess.py:1036: in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Popen: returncode: 255 args: ['mkdocs', 'build', '--strict']>
args = ['mkdocs', 'build', '--strict'], executable = b'mkdocs'
preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
startupinfo = None, creationflags = 0, shell = False, p2cread = -1
p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = 13, errwrite = 14
restore_signals = True, gid = None, gids = None, uid = None, umask = -1
start_new_session = False, process_group = -1

    def _execute_child(self, args, executable, preexec_fn, close_fds,
                       pass_fds, cwd, env,
                       startupinfo, creationflags, shell,
                       p2cread, p2cwrite,
                       c2pread, c2pwrite,
                       errread, errwrite,
                       restore_signals,
                       gid, gids, uid, umask,
                       start_new_session, process_group):
        """Execute program (POSIX version)"""
    
        if isinstance(args, (str, bytes)):
            args = [args]
        elif isinstance(args, os.PathLike):
            if shell:
                raise TypeError('path-like args is not allowed when '
                                'shell is true')
            args = [args]
        else:
            args = list(args)
    
        if shell:
            # On Android the default shell is at '/system/bin/sh'.
            unix_shell = ('/system/bin/sh' if
                      hasattr(sys, 'getandroidapilevel') else '/bin/sh')
            args = [unix_shell, "-c"] + args
            if executable:
                args[0] = executable
    
        if executable is None:
            executable = args[0]
    
        sys.audit("subprocess.Popen", executable, args, cwd, env)
    
        if (_USE_POSIX_SPAWN
                and os.path.dirname(executable)
                and preexec_fn is None
                and (not close_fds or _HAVE_POSIX_SPAWN_CLOSEFROM)
                and not pass_fds
                and cwd is None
                and (p2cread == -1 or p2cread > 2)
                and (c2pwrite == -1 or c2pwrite > 2)
                and (errwrite == -1 or errwrite > 2)
                and not start_new_session
                and process_group == -1
                and gid is None
                and gids is None
                and uid is None
                and umask < 0):
            self._posix_spawn(args, executable, env, restore_signals, close_fds,
                              p2cread, p2cwrite,
                              c2pread, c2pwrite,
                              errread, errwrite)
            return
    
        orig_executable = executable
    
        # For transferring possible exec failure from child to parent.
        # Data format: "exception name:hex errno:description"
        # Pickle is not used; it is complex and involves memory allocation.
        errpipe_read, errpipe_write = os.pipe()
        # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
        low_fds_to_close = []
        while errpipe_write < 3:
            low_fds_to_close.append(errpipe_write)
            errpipe_write = os.dup(errpipe_write)
        for low_fd in low_fds_to_close:
            os.close(low_fd)
        try:
            try:
                # We must avoid complex work that could involve
                # malloc or free in the child process to avoid
                # potential deadlocks, thus we do all this here.
                # and pass it to fork_exec()
    
                if env is not None:
                    env_list = []
                    for k, v in env.items():
                        k = os.fsencode(k)
                        if b'=' in k:
                            raise ValueError("illegal environment variable name")
                        env_list.append(k + b'=' + os.fsencode(v))
                else:
                    env_list = None  # Use execv instead of execve.
                executable = os.fsencode(executable)
                if os.path.dirname(executable):
                    executable_list = (executable,)
                else:
                    # This matches the behavior of os._execvpe().
                    executable_list = tuple(
                        os.path.join(os.fsencode(dir), executable)
                        for dir in os.get_exec_path(env))
                fds_to_keep = set(pass_fds)
                fds_to_keep.add(errpipe_write)
                self.pid = _fork_exec(
                        args, executable_list,
                        close_fds, tuple(sorted(map(int, fds_to_keep))),
                        cwd, env_list,
                        p2cread, p2cwrite, c2pread, c2pwrite,
                        errread, errwrite,
                        errpipe_read, errpipe_write,
                        restore_signals, start_new_session,
                        process_group, gid, gids, uid, umask,
                        preexec_fn, _USE_VFORK)
                self._child_created = True
            finally:
                # be sure the FD is closed no matter what
                os.close(errpipe_write)
    
            self._close_pipe_fds(p2cread, p2cwrite,
                                 c2pread, c2pwrite,
                                 errread, errwrite)
    
            # Wait for exec to fail or succeed; possibly raising an
            # exception (limited in size)
            errpipe_data = bytearray()
            while True:
                part = os.read(errpipe_read, 50000)
                errpipe_data += part
                if not part or len(errpipe_data) > 50000:
                    break
        finally:
            # be sure the FD is closed no matter what
            os.close(errpipe_read)
    
        if errpipe_data:
            try:
                pid, sts = os.waitpid(self.pid, 0)
                if pid == self.pid:
                    self._handle_exitstatus(sts)
                else:
                    self.returncode = sys.maxsize
            except ChildProcessError:
                pass
    
            try:
                exception_name, hex_errno, err_msg = (
                        errpipe_data.split(b':', 2))
                # The encoding here should match the encoding
                # written in by the subprocess implementations
                # like _posixsubprocess
                err_msg = err_msg.decode()
            except ValueError:
                exception_name = b'SubprocessError'
                hex_errno = b'0'
                err_msg = 'Bad exception data from child: {!r}'.format(
                              bytes(errpipe_data))
            child_exception_type = getattr(
                    builtins, exception_name.decode('ascii'),
                    SubprocessError)
            if issubclass(child_exception_type, OSError) and hex_errno:
                errno_num = int(hex_errno, 16)
                if err_msg == "noexec:chdir":
                    err_msg = ""
                    # The error must be from chdir(cwd).
                    err_filename = cwd
                elif err_msg == "noexec":
                    err_msg = ""
                    err_filename = None
                else:
                    err_filename = orig_executable
                if errno_num != 0:
                    err_msg = os.strerror(errno_num)
                if err_filename is not None:
>                   raise child_exception_type(errno_num, err_msg, err_filename)
E                   FileNotFoundError: [Errno 2] No such file or directory: 'mkdocs'

/usr/lib/python3.13/subprocess.py:1966: FileNotFoundError
----------------------------- Captured stdout call -----------------------------
BUILD COMMAND: ['mkdocs', 'build', '--strict']
__________________________________ test_pages __________________________________

    def test_pages():
        project = DocProject()
>       project.build(strict=False)

/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/test/simple/test_site.py:19: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/__init__.py:482: in build
    self._build_result = run_command(*command)
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/common.py:332: in run_command
    return subprocess.run(full_command, capture_output=True, text=True)
/usr/lib/python3.13/subprocess.py:554: in run
    with Popen(*popenargs, **kwargs) as process:
/usr/lib/python3.13/subprocess.py:1036: in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Popen: returncode: 255 args: ['mkdocs', 'build']>
args = ['mkdocs', 'build'], executable = b'mkdocs', preexec_fn = None
close_fds = True, pass_fds = (), cwd = None, env = None, startupinfo = None
creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11
c2pwrite = 12, errread = 13, errwrite = 14, restore_signals = True, gid = None
gids = None, uid = None, umask = -1, start_new_session = False
process_group = -1

    def _execute_child(self, args, executable, preexec_fn, close_fds,
                       pass_fds, cwd, env,
                       startupinfo, creationflags, shell,
                       p2cread, p2cwrite,
                       c2pread, c2pwrite,
                       errread, errwrite,
                       restore_signals,
                       gid, gids, uid, umask,
                       start_new_session, process_group):
        """Execute program (POSIX version)"""
    
        if isinstance(args, (str, bytes)):
            args = [args]
        elif isinstance(args, os.PathLike):
            if shell:
                raise TypeError('path-like args is not allowed when '
                                'shell is true')
            args = [args]
        else:
            args = list(args)
    
        if shell:
            # On Android the default shell is at '/system/bin/sh'.
            unix_shell = ('/system/bin/sh' if
                      hasattr(sys, 'getandroidapilevel') else '/bin/sh')
            args = [unix_shell, "-c"] + args
            if executable:
                args[0] = executable
    
        if executable is None:
            executable = args[0]
    
        sys.audit("subprocess.Popen", executable, args, cwd, env)
    
        if (_USE_POSIX_SPAWN
                and os.path.dirname(executable)
                and preexec_fn is None
                and (not close_fds or _HAVE_POSIX_SPAWN_CLOSEFROM)
                and not pass_fds
                and cwd is None
                and (p2cread == -1 or p2cread > 2)
                and (c2pwrite == -1 or c2pwrite > 2)
                and (errwrite == -1 or errwrite > 2)
                and not start_new_session
                and process_group == -1
                and gid is None
                and gids is None
                and uid is None
                and umask < 0):
            self._posix_spawn(args, executable, env, restore_signals, close_fds,
                              p2cread, p2cwrite,
                              c2pread, c2pwrite,
                              errread, errwrite)
            return
    
        orig_executable = executable
    
        # For transferring possible exec failure from child to parent.
        # Data format: "exception name:hex errno:description"
        # Pickle is not used; it is complex and involves memory allocation.
        errpipe_read, errpipe_write = os.pipe()
        # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
        low_fds_to_close = []
        while errpipe_write < 3:
            low_fds_to_close.append(errpipe_write)
            errpipe_write = os.dup(errpipe_write)
        for low_fd in low_fds_to_close:
            os.close(low_fd)
        try:
            try:
                # We must avoid complex work that could involve
                # malloc or free in the child process to avoid
                # potential deadlocks, thus we do all this here.
                # and pass it to fork_exec()
    
                if env is not None:
                    env_list = []
                    for k, v in env.items():
                        k = os.fsencode(k)
                        if b'=' in k:
                            raise ValueError("illegal environment variable name")
                        env_list.append(k + b'=' + os.fsencode(v))
                else:
                    env_list = None  # Use execv instead of execve.
                executable = os.fsencode(executable)
                if os.path.dirname(executable):
                    executable_list = (executable,)
                else:
                    # This matches the behavior of os._execvpe().
                    executable_list = tuple(
                        os.path.join(os.fsencode(dir), executable)
                        for dir in os.get_exec_path(env))
                fds_to_keep = set(pass_fds)
                fds_to_keep.add(errpipe_write)
                self.pid = _fork_exec(
                        args, executable_list,
                        close_fds, tuple(sorted(map(int, fds_to_keep))),
                        cwd, env_list,
                        p2cread, p2cwrite, c2pread, c2pwrite,
                        errread, errwrite,
                        errpipe_read, errpipe_write,
                        restore_signals, start_new_session,
                        process_group, gid, gids, uid, umask,
                        preexec_fn, _USE_VFORK)
                self._child_created = True
            finally:
                # be sure the FD is closed no matter what
                os.close(errpipe_write)
    
            self._close_pipe_fds(p2cread, p2cwrite,
                                 c2pread, c2pwrite,
                                 errread, errwrite)
    
            # Wait for exec to fail or succeed; possibly raising an
            # exception (limited in size)
            errpipe_data = bytearray()
            while True:
                part = os.read(errpipe_read, 50000)
                errpipe_data += part
                if not part or len(errpipe_data) > 50000:
                    break
        finally:
            # be sure the FD is closed no matter what
            os.close(errpipe_read)
    
        if errpipe_data:
            try:
                pid, sts = os.waitpid(self.pid, 0)
                if pid == self.pid:
                    self._handle_exitstatus(sts)
                else:
                    self.returncode = sys.maxsize
            except ChildProcessError:
                pass
    
            try:
                exception_name, hex_errno, err_msg = (
                        errpipe_data.split(b':', 2))
                # The encoding here should match the encoding
                # written in by the subprocess implementations
                # like _posixsubprocess
                err_msg = err_msg.decode()
            except ValueError:
                exception_name = b'SubprocessError'
                hex_errno = b'0'
                err_msg = 'Bad exception data from child: {!r}'.format(
                              bytes(errpipe_data))
            child_exception_type = getattr(
                    builtins, exception_name.decode('ascii'),
                    SubprocessError)
            if issubclass(child_exception_type, OSError) and hex_errno:
                errno_num = int(hex_errno, 16)
                if err_msg == "noexec:chdir":
                    err_msg = ""
                    # The error must be from chdir(cwd).
                    err_filename = cwd
                elif err_msg == "noexec":
                    err_msg = ""
                    err_filename = None
                else:
                    err_filename = orig_executable
                if errno_num != 0:
                    err_msg = os.strerror(errno_num)
                if err_filename is not None:
>                   raise child_exception_type(errno_num, err_msg, err_filename)
E                   FileNotFoundError: [Errno 2] No such file or directory: 'mkdocs'

/usr/lib/python3.13/subprocess.py:1966: FileNotFoundError
----------------------------- Captured stdout call -----------------------------
BUILD COMMAND: ['mkdocs', 'build']
_________________________________ test_strict __________________________________

    def test_strict():
        "This project must fail"
        project = DocProject()
    
        # it must not fail with the --strict option,
>       project.build(strict=True)

/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/test/simple/test_site.py:78: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/__init__.py:482: in build
    self._build_result = run_command(*command)
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/common.py:332: in run_command
    return subprocess.run(full_command, capture_output=True, text=True)
/usr/lib/python3.13/subprocess.py:554: in run
    with Popen(*popenargs, **kwargs) as process:
/usr/lib/python3.13/subprocess.py:1036: in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Popen: returncode: 255 args: ['mkdocs', 'build', '--strict']>
args = ['mkdocs', 'build', '--strict'], executable = b'mkdocs'
preexec_fn = None, close_fds = True, pass_fds = (), cwd = None, env = None
startupinfo = None, creationflags = 0, shell = False, p2cread = -1
p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = 13, errwrite = 14
restore_signals = True, gid = None, gids = None, uid = None, umask = -1
start_new_session = False, process_group = -1

    def _execute_child(self, args, executable, preexec_fn, close_fds,
                       pass_fds, cwd, env,
                       startupinfo, creationflags, shell,
                       p2cread, p2cwrite,
                       c2pread, c2pwrite,
                       errread, errwrite,
                       restore_signals,
                       gid, gids, uid, umask,
                       start_new_session, process_group):
        """Execute program (POSIX version)"""
    
        if isinstance(args, (str, bytes)):
            args = [args]
        elif isinstance(args, os.PathLike):
            if shell:
                raise TypeError('path-like args is not allowed when '
                                'shell is true')
            args = [args]
        else:
            args = list(args)
    
        if shell:
            # On Android the default shell is at '/system/bin/sh'.
            unix_shell = ('/system/bin/sh' if
                      hasattr(sys, 'getandroidapilevel') else '/bin/sh')
            args = [unix_shell, "-c"] + args
            if executable:
                args[0] = executable
    
        if executable is None:
            executable = args[0]
    
        sys.audit("subprocess.Popen", executable, args, cwd, env)
    
        if (_USE_POSIX_SPAWN
                and os.path.dirname(executable)
                and preexec_fn is None
                and (not close_fds or _HAVE_POSIX_SPAWN_CLOSEFROM)
                and not pass_fds
                and cwd is None
                and (p2cread == -1 or p2cread > 2)
                and (c2pwrite == -1 or c2pwrite > 2)
                and (errwrite == -1 or errwrite > 2)
                and not start_new_session
                and process_group == -1
                and gid is None
                and gids is None
                and uid is None
                and umask < 0):
            self._posix_spawn(args, executable, env, restore_signals, close_fds,
                              p2cread, p2cwrite,
                              c2pread, c2pwrite,
                              errread, errwrite)
            return
    
        orig_executable = executable
    
        # For transferring possible exec failure from child to parent.
        # Data format: "exception name:hex errno:description"
        # Pickle is not used; it is complex and involves memory allocation.
        errpipe_read, errpipe_write = os.pipe()
        # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
        low_fds_to_close = []
        while errpipe_write < 3:
            low_fds_to_close.append(errpipe_write)
            errpipe_write = os.dup(errpipe_write)
        for low_fd in low_fds_to_close:
            os.close(low_fd)
        try:
            try:
                # We must avoid complex work that could involve
                # malloc or free in the child process to avoid
                # potential deadlocks, thus we do all this here.
                # and pass it to fork_exec()
    
                if env is not None:
                    env_list = []
                    for k, v in env.items():
                        k = os.fsencode(k)
                        if b'=' in k:
                            raise ValueError("illegal environment variable name")
                        env_list.append(k + b'=' + os.fsencode(v))
                else:
                    env_list = None  # Use execv instead of execve.
                executable = os.fsencode(executable)
                if os.path.dirname(executable):
                    executable_list = (executable,)
                else:
                    # This matches the behavior of os._execvpe().
                    executable_list = tuple(
                        os.path.join(os.fsencode(dir), executable)
                        for dir in os.get_exec_path(env))
                fds_to_keep = set(pass_fds)
                fds_to_keep.add(errpipe_write)
                self.pid = _fork_exec(
                        args, executable_list,
                        close_fds, tuple(sorted(map(int, fds_to_keep))),
                        cwd, env_list,
                        p2cread, p2cwrite, c2pread, c2pwrite,
                        errread, errwrite,
                        errpipe_read, errpipe_write,
                        restore_signals, start_new_session,
                        process_group, gid, gids, uid, umask,
                        preexec_fn, _USE_VFORK)
                self._child_created = True
            finally:
                # be sure the FD is closed no matter what
                os.close(errpipe_write)
    
            self._close_pipe_fds(p2cread, p2cwrite,
                                 c2pread, c2pwrite,
                                 errread, errwrite)
    
            # Wait for exec to fail or succeed; possibly raising an
            # exception (limited in size)
            errpipe_data = bytearray()
            while True:
                part = os.read(errpipe_read, 50000)
                errpipe_data += part
                if not part or len(errpipe_data) > 50000:
                    break
        finally:
            # be sure the FD is closed no matter what
            os.close(errpipe_read)
    
        if errpipe_data:
            try:
                pid, sts = os.waitpid(self.pid, 0)
                if pid == self.pid:
                    self._handle_exitstatus(sts)
                else:
                    self.returncode = sys.maxsize
            except ChildProcessError:
                pass
    
            try:
                exception_name, hex_errno, err_msg = (
                        errpipe_data.split(b':', 2))
                # The encoding here should match the encoding
                # written in by the subprocess implementations
                # like _posixsubprocess
                err_msg = err_msg.decode()
            except ValueError:
                exception_name = b'SubprocessError'
                hex_errno = b'0'
                err_msg = 'Bad exception data from child: {!r}'.format(
                              bytes(errpipe_data))
            child_exception_type = getattr(
                    builtins, exception_name.decode('ascii'),
                    SubprocessError)
            if issubclass(child_exception_type, OSError) and hex_errno:
                errno_num = int(hex_errno, 16)
                if err_msg == "noexec:chdir":
                    err_msg = ""
                    # The error must be from chdir(cwd).
                    err_filename = cwd
                elif err_msg == "noexec":
                    err_msg = ""
                    err_filename = None
                else:
                    err_filename = orig_executable
                if errno_num != 0:
                    err_msg = os.strerror(errno_num)
                if err_filename is not None:
>                   raise child_exception_type(errno_num, err_msg, err_filename)
E                   FileNotFoundError: [Errno 2] No such file or directory: 'mkdocs'

/usr/lib/python3.13/subprocess.py:1966: FileNotFoundError
----------------------------- Captured stdout call -----------------------------
BUILD COMMAND: ['mkdocs', 'build', '--strict']
________________________________ test_functions ________________________________

name = 'lxml.etree', extra = '', errors = 'raise', min_version = None

    def import_optional_dependency(
        name: str,
        extra: str = "",
        errors: str = "raise",
        min_version: str | None = None,
    ):
        """
        Import an optional dependency.
    
        By default, if a dependency is missing an ImportError with a nice
        message will be raised. If a dependency is present, but too old,
        we raise.
    
        Parameters
        ----------
        name : str
            The module name.
        extra : str
            Additional text to include in the ImportError message.
        errors : str {'raise', 'warn', 'ignore'}
            What to do when a dependency is not found or its version is too old.
    
            * raise : Raise an ImportError
            * warn : Only applicable when a module's version is to old.
              Warns that the version is too old and returns None
            * ignore: If the module is not installed, return None, otherwise,
              return the module, even if the version is too old.
              It's expected that users validate the version locally when
              using ``errors="ignore"`` (see. ``io/html.py``)
        min_version : str, default None
            Specify a minimum version that is different from the global pandas
            minimum version required.
        Returns
        -------
        maybe_module : Optional[ModuleType]
            The imported module, when found and the version is correct.
            None is returned when the package is not found and `errors`
            is False, or when the package's version is too old and `errors`
            is ``'warn'`` or ``'ignore'``.
        """
        assert errors in {"warn", "raise", "ignore"}
        if name=='numba' and warn_numba_platform:
            warnings.warn(warn_numba_platform)
    
        package_name = INSTALL_MAPPING.get(name)
        install_name = package_name if package_name is not None else name
    
        msg = (
            f"Missing optional dependency '{install_name}'. {extra} "
            f"Use pip or conda to install {install_name}."
        )
        try:
>           module = importlib.import_module(name)

/usr/lib/python3/dist-packages/pandas/compat/_optional.py:140: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'lxml.etree', package = None

    def import_module(name, package=None):
        """Import a module.
    
        The 'package' argument is required when performing a relative import. It
        specifies the package to use as the anchor point from which to resolve the
        relative import to an absolute import.
    
        """
        level = 0
        if name.startswith('.'):
            if not package:
                raise TypeError("the 'package' argument is required to perform a "
                                f"relative import for {name!r}")
            for character in name:
                if character != '.':
                    break
                level += 1
>       return _bootstrap._gcd_import(name[level:], package, level)
E       ModuleNotFoundError: No module named 'lxml'

/usr/lib/python3.13/importlib/__init__.py:88: ModuleNotFoundError

During handling of the above exception, another exception occurred:

    def test_functions():
        "Test the low level fixtures"
    
        h1("Unit tests")
        # Print the list of directories
        h2("Directories containing mkdocs.yml")
        for directory in PROJECTS:
            print(directory)
        print(PROJECTS)
        print()
    
    
        # Example usage
        h2("Parse tables")
        SOURCE_DOCUMENT = """
    # Header 1
    Some text.
    
    ## Table 1
    | Column 1 | Column 2 |
    |----------|----------|
    | Value 1  | Value 2  |
    | Value 3  | Value 4  |
    
    ## Table 2
    | Column A | Column B |
    |----------|----------|
    | Value A  | Value B  |
    | Value C  | Value D  |
    
    ## Another Section
    Some more text.
    
    | Column X | Column Y |
    |----------|----------|
    | Value X1 | Value Y1 |
    | Value X2 | Value Y2 |
    """
    
>       dfs = get_tables(SOURCE_DOCUMENT)

/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/test/test_simple.py:66: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/common.py:320: in get_tables
    dataframes = extract_tables_from_html(html,
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/common.py:175: in extract_tables_from_html
    df = pd.read_html(StringIO(str(table)))[0]
/usr/lib/python3/dist-packages/pandas/io/html.py:1240: in read_html
    return _parse(
/usr/lib/python3/dist-packages/pandas/io/html.py:971: in _parse
    parser = _parser_dispatch(flav)
/usr/lib/python3/dist-packages/pandas/io/html.py:918: in _parser_dispatch
    import_optional_dependency("lxml.etree")
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

name = 'lxml.etree', extra = '', errors = 'raise', min_version = None

    def import_optional_dependency(
        name: str,
        extra: str = "",
        errors: str = "raise",
        min_version: str | None = None,
    ):
        """
        Import an optional dependency.
    
        By default, if a dependency is missing an ImportError with a nice
        message will be raised. If a dependency is present, but too old,
        we raise.
    
        Parameters
        ----------
        name : str
            The module name.
        extra : str
            Additional text to include in the ImportError message.
        errors : str {'raise', 'warn', 'ignore'}
            What to do when a dependency is not found or its version is too old.
    
            * raise : Raise an ImportError
            * warn : Only applicable when a module's version is to old.
              Warns that the version is too old and returns None
            * ignore: If the module is not installed, return None, otherwise,
              return the module, even if the version is too old.
              It's expected that users validate the version locally when
              using ``errors="ignore"`` (see. ``io/html.py``)
        min_version : str, default None
            Specify a minimum version that is different from the global pandas
            minimum version required.
        Returns
        -------
        maybe_module : Optional[ModuleType]
            The imported module, when found and the version is correct.
            None is returned when the package is not found and `errors`
            is False, or when the package's version is too old and `errors`
            is ``'warn'`` or ``'ignore'``.
        """
        assert errors in {"warn", "raise", "ignore"}
        if name=='numba' and warn_numba_platform:
            warnings.warn(warn_numba_platform)
    
        package_name = INSTALL_MAPPING.get(name)
        install_name = package_name if package_name is not None else name
    
        msg = (
            f"Missing optional dependency '{install_name}'. {extra} "
            f"Use pip or conda to install {install_name}."
        )
        try:
            module = importlib.import_module(name)
        except ImportError:
            if errors == "raise":
>               raise ImportError(msg)
E               ImportError: Missing optional dependency 'lxml'.  Use pip or conda to install lxml.

/usr/lib/python3/dist-packages/pandas/compat/_optional.py:143: ImportError
----------------------------- Captured stdout call -----------------------------

╭──────────────────────────────────────────────────────────────────────────────╮
│ Unit tests                                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯

Directories containing mkdocs.yml
alter_markdown
advanced
simple
['alter_markdown', 'advanced', 'simple']


Parse tables
Found a table
_______________________________ test_doc_project _______________________________

    def test_doc_project():
        """
        Test a project
        """
        PROJECT_NAME = 'simple'
        # MYPROJECT = 'simple'
        h1(f"TESTING MKDOCS PROJECT ({PROJECT_NAME})")
    
        h2("Config")
        myproject = DocProject(PROJECT_NAME)
        config = myproject.config
        print(config)
    
    
    
        h2("Build")
>       result = myproject.build()

/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/test/test_simple.py:165: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/__init__.py:482: in build
    self._build_result = run_command(*command)
/build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build/mkdocs_test/common.py:332: in run_command
    return subprocess.run(full_command, capture_output=True, text=True)
/usr/lib/python3.13/subprocess.py:554: in run
    with Popen(*popenargs, **kwargs) as process:
/usr/lib/python3.13/subprocess.py:1036: in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Popen: returncode: 255 args: ['mkdocs', 'build']>
args = ['mkdocs', 'build'], executable = b'mkdocs', preexec_fn = None
close_fds = True, pass_fds = (), cwd = None, env = None, startupinfo = None
creationflags = 0, shell = False, p2cread = -1, p2cwrite = -1, c2pread = 11
c2pwrite = 12, errread = 13, errwrite = 14, restore_signals = True, gid = None
gids = None, uid = None, umask = -1, start_new_session = False
process_group = -1

    def _execute_child(self, args, executable, preexec_fn, close_fds,
                       pass_fds, cwd, env,
                       startupinfo, creationflags, shell,
                       p2cread, p2cwrite,
                       c2pread, c2pwrite,
                       errread, errwrite,
                       restore_signals,
                       gid, gids, uid, umask,
                       start_new_session, process_group):
        """Execute program (POSIX version)"""
    
        if isinstance(args, (str, bytes)):
            args = [args]
        elif isinstance(args, os.PathLike):
            if shell:
                raise TypeError('path-like args is not allowed when '
                                'shell is true')
            args = [args]
        else:
            args = list(args)
    
        if shell:
            # On Android the default shell is at '/system/bin/sh'.
            unix_shell = ('/system/bin/sh' if
                      hasattr(sys, 'getandroidapilevel') else '/bin/sh')
            args = [unix_shell, "-c"] + args
            if executable:
                args[0] = executable
    
        if executable is None:
            executable = args[0]
    
        sys.audit("subprocess.Popen", executable, args, cwd, env)
    
        if (_USE_POSIX_SPAWN
                and os.path.dirname(executable)
                and preexec_fn is None
                and (not close_fds or _HAVE_POSIX_SPAWN_CLOSEFROM)
                and not pass_fds
                and cwd is None
                and (p2cread == -1 or p2cread > 2)
                and (c2pwrite == -1 or c2pwrite > 2)
                and (errwrite == -1 or errwrite > 2)
                and not start_new_session
                and process_group == -1
                and gid is None
                and gids is None
                and uid is None
                and umask < 0):
            self._posix_spawn(args, executable, env, restore_signals, close_fds,
                              p2cread, p2cwrite,
                              c2pread, c2pwrite,
                              errread, errwrite)
            return
    
        orig_executable = executable
    
        # For transferring possible exec failure from child to parent.
        # Data format: "exception name:hex errno:description"
        # Pickle is not used; it is complex and involves memory allocation.
        errpipe_read, errpipe_write = os.pipe()
        # errpipe_write must not be in the standard io 0, 1, or 2 fd range.
        low_fds_to_close = []
        while errpipe_write < 3:
            low_fds_to_close.append(errpipe_write)
            errpipe_write = os.dup(errpipe_write)
        for low_fd in low_fds_to_close:
            os.close(low_fd)
        try:
            try:
                # We must avoid complex work that could involve
                # malloc or free in the child process to avoid
                # potential deadlocks, thus we do all this here.
                # and pass it to fork_exec()
    
                if env is not None:
                    env_list = []
                    for k, v in env.items():
                        k = os.fsencode(k)
                        if b'=' in k:
                            raise ValueError("illegal environment variable name")
                        env_list.append(k + b'=' + os.fsencode(v))
                else:
                    env_list = None  # Use execv instead of execve.
                executable = os.fsencode(executable)
                if os.path.dirname(executable):
                    executable_list = (executable,)
                else:
                    # This matches the behavior of os._execvpe().
                    executable_list = tuple(
                        os.path.join(os.fsencode(dir), executable)
                        for dir in os.get_exec_path(env))
                fds_to_keep = set(pass_fds)
                fds_to_keep.add(errpipe_write)
                self.pid = _fork_exec(
                        args, executable_list,
                        close_fds, tuple(sorted(map(int, fds_to_keep))),
                        cwd, env_list,
                        p2cread, p2cwrite, c2pread, c2pwrite,
                        errread, errwrite,
                        errpipe_read, errpipe_write,
                        restore_signals, start_new_session,
                        process_group, gid, gids, uid, umask,
                        preexec_fn, _USE_VFORK)
                self._child_created = True
            finally:
                # be sure the FD is closed no matter what
                os.close(errpipe_write)
    
            self._close_pipe_fds(p2cread, p2cwrite,
                                 c2pread, c2pwrite,
                                 errread, errwrite)
    
            # Wait for exec to fail or succeed; possibly raising an
            # exception (limited in size)
            errpipe_data = bytearray()
            while True:
                part = os.read(errpipe_read, 50000)
                errpipe_data += part
                if not part or len(errpipe_data) > 50000:
                    break
        finally:
            # be sure the FD is closed no matter what
            os.close(errpipe_read)
    
        if errpipe_data:
            try:
                pid, sts = os.waitpid(self.pid, 0)
                if pid == self.pid:
                    self._handle_exitstatus(sts)
                else:
                    self.returncode = sys.maxsize
            except ChildProcessError:
                pass
    
            try:
                exception_name, hex_errno, err_msg = (
                        errpipe_data.split(b':', 2))
                # The encoding here should match the encoding
                # written in by the subprocess implementations
                # like _posixsubprocess
                err_msg = err_msg.decode()
            except ValueError:
                exception_name = b'SubprocessError'
                hex_errno = b'0'
                err_msg = 'Bad exception data from child: {!r}'.format(
                              bytes(errpipe_data))
            child_exception_type = getattr(
                    builtins, exception_name.decode('ascii'),
                    SubprocessError)
            if issubclass(child_exception_type, OSError) and hex_errno:
                errno_num = int(hex_errno, 16)
                if err_msg == "noexec:chdir":
                    err_msg = ""
                    # The error must be from chdir(cwd).
                    err_filename = cwd
                elif err_msg == "noexec":
                    err_msg = ""
                    err_filename = None
                else:
                    err_filename = orig_executable
                if errno_num != 0:
                    err_msg = os.strerror(errno_num)
                if err_filename is not None:
>                   raise child_exception_type(errno_num, err_msg, err_filename)
E                   FileNotFoundError: [Errno 2] No such file or directory: 'mkdocs'

/usr/lib/python3.13/subprocess.py:1966: FileNotFoundError
----------------------------- Captured stdout call -----------------------------

╭──────────────────────────────────────────────────────────────────────────────╮
│ TESTING MKDOCS PROJECT (simple)                                              │
╰──────────────────────────────────────────────────────────────────────────────╯

Config
{
  site_name: Simple MkDocs Website
  theme: mkdocs
  nav:
  [
    {
      Home: index.md
    }
    {
      "Next page": second.md
    }
  ]
  plugins:
  [
    search
    test
  ]
}

Build
BUILD COMMAND: ['mkdocs', 'build']
=========================== short test summary info ============================
FAILED test/advanced/test_advanced.py::test_pages - FileNotFoundError: [Errno...
FAILED test/advanced/test_advanced.py::test_strict - FileNotFoundError: [Errn...
FAILED test/alter_markdown/test_site.py::test_pages - FileNotFoundError: [Err...
FAILED test/simple/test_site.py::test_pages - FileNotFoundError: [Errno 2] No...
FAILED test/simple/test_site.py::test_strict - FileNotFoundError: [Errno 2] N...
FAILED test/test_simple.py::test_functions - ImportError: Missing optional de...
FAILED test/test_simple.py::test_doc_project - FileNotFoundError: [Errno 2] N...
========================= 7 failed, 1 passed in 0.91s ==========================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/mkdocs-test-0.5.3/.pybuild/cpython3_3.13_mkdocs-test/build; python3.13 -m pytest test
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 returned exit code 13
make[1]: [debian/rules:10: override_dh_auto_test] Error 25 (ignored)
make[1]: Leaving directory '/build/reproducible-path/mkdocs-test-0.5.3'
   create-stamp debian/debhelper-build-stamp
   dh_testroot -O--buildsystem=pybuild
   dh_prep -O--buildsystem=pybuild
   dh_auto_install --destdir=debian/python3-mkdocs-test/ -O--buildsystem=pybuild
I: pybuild plugin_pyproject:178: Copying package built for python3.13 to destdir
   dh_installdocs -O--buildsystem=pybuild
   dh_installchangelogs -O--buildsystem=pybuild
   dh_python3 -O--buildsystem=pybuild
   dh_installsystemduser -O--buildsystem=pybuild
   dh_perl -O--buildsystem=pybuild
   dh_link -O--buildsystem=pybuild
   dh_strip_nondeterminism -O--buildsystem=pybuild
   dh_compress -O--buildsystem=pybuild
   dh_fixperms -O--buildsystem=pybuild
   dh_missing -O--buildsystem=pybuild
   dh_installdeb -O--buildsystem=pybuild
   dh_gencontrol -O--buildsystem=pybuild
dpkg-gencontrol: warning: Recommends field of package python3-mkdocs-test: substitution variable ${python3:Recommends} used, but is not defined
   dh_md5sums -O--buildsystem=pybuild
   dh_builddeb -O--buildsystem=pybuild
dpkg-deb: building package 'python3-mkdocs-test' in '../python3-mkdocs-test_0.5.3-5_all.deb'.
 dpkg-genbuildinfo --build=binary -O../mkdocs-test_0.5.3-5_i386.buildinfo
 dpkg-genchanges --build=binary -O../mkdocs-test_0.5.3-5_i386.changes
dpkg-genchanges: info: binary-only upload (no source code included)
 dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
dpkg-genchanges: info: not including original source code in upload
I: copying local configuration
I: unmounting dev/ptmx filesystem
I: unmounting dev/pts filesystem
I: unmounting dev/shm filesystem
I: unmounting proc filesystem
I: unmounting sys filesystem
I: cleaning the build env 
I: removing directory /srv/workspace/pbuilder/76220 and its subdirectories
I: Current time: Mon Mar  2 06:49:40 -12 2026
I: pbuilder-time-stamp: 1772477380
Tue Jan 28 12:26:41 UTC 2025  I: 1st build successful. Starting 2nd build on remote node ionos2-i386.debian.net.
Tue Jan 28 12:26:41 UTC 2025  I: Preparing to do remote build '2' on ionos2-i386.debian.net.
Tue Jan 28 12:29:00 UTC 2025  I: Deleting $TMPDIR on ionos2-i386.debian.net.
Tue Jan 28 12:29:00 UTC 2025  I: mkdocs-test_0.5.3-5_i386.changes:
Format: 1.8
Date: Tue, 21 Jan 2025 09:37:17 -0500
Source: mkdocs-test
Binary: python3-mkdocs-test
Architecture: all
Version: 0.5.3-5
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+python@tracker.debian.org>
Changed-By: Boyuan Yang <byang@debian.org>
Description:
 python3-mkdocs-test - Testing framework for MkDocs projects (Python 3)
Changes:
 mkdocs-test (0.5.3-5) unstable; urgency=medium
 .
   * debian/control: Really fix dependency issue by adding
     python3-rich, python3-markdown. (Upstream issue 2)
Checksums-Sha1:
 476cc6d952363cdf6e26b7cfdac02a93c94a405a 6504 mkdocs-test_0.5.3-5_i386.buildinfo
 3945cf1ae1025305b14511678ebbc5fc3c545f27 14812 python3-mkdocs-test_0.5.3-5_all.deb
Checksums-Sha256:
 cf08286b7f93ee8f456c83bfbd349895cb8e1dc9feb325ae334a7882134c209f 6504 mkdocs-test_0.5.3-5_i386.buildinfo
 6e7de2c8dec3c5857b5af8db0378fdec796b09175b01fa9dfa6ac07e4bc9b815 14812 python3-mkdocs-test_0.5.3-5_all.deb
Files:
 e68127926171d8af8b6755bbd91cee60 6504 python optional mkdocs-test_0.5.3-5_i386.buildinfo
 bd943d41a69698df0491124d46c2204b 14812 python optional python3-mkdocs-test_0.5.3-5_all.deb
Tue Jan 28 12:29:02 UTC 2025  I: diffoscope 286 will be used to compare the two builds:
Running as unit: rb-diffoscope-i386_4-49836.service
# Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.nQr9GzmH/mkdocs-test_0.5.3-5.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.nQr9GzmH/mkdocs-test_0.5.3-5.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.nQr9GzmH/mkdocs-test_0.5.3-5.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.nQr9GzmH/b1/mkdocs-test_0.5.3-5_i386.changes /srv/reproducible-results/rbuild-debian/r-b-build.nQr9GzmH/b2/mkdocs-test_0.5.3-5_i386.changes

## command (total time: 0.000s)
       0.000s      1 call     cmp (internal)

## has_same_content_as (total time: 0.000s)
       0.000s      1 call     diffoscope.comparators.binary.FilesystemFile

## main (total time: 0.004s)
       0.004s      2 calls    outputs
       0.000s      1 call     cleanup
Finished with result: success
Main processes terminated with: code=exited/status=0
Service runtime: 274ms
CPU time consumed: 274ms
Tue Jan 28 12:29:05 UTC 2025  I: diffoscope 286 found no differences in the changes files, and a .buildinfo file also exists.
Tue Jan 28 12:29:05 UTC 2025  I: mkdocs-test from trixie built successfully and reproducibly on i386.
Tue Jan 28 12:29:06 UTC 2025  I: Submitting .buildinfo files to external archives:
Tue Jan 28 12:29:06 UTC 2025  I: Submitting 8.0K	b1/mkdocs-test_0.5.3-5_i386.buildinfo.asc
Tue Jan 28 12:29:07 UTC 2025  I: Submitting 8.0K	b2/mkdocs-test_0.5.3-5_i386.buildinfo.asc
Tue Jan 28 12:29:08 UTC 2025  I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit.
Tue Jan 28 12:29:08 UTC 2025  I: Done submitting .buildinfo files.
Tue Jan 28 12:29:08 UTC 2025  I: Removing signed mkdocs-test_0.5.3-5_i386.buildinfo.asc files:
removed './b1/mkdocs-test_0.5.3-5_i386.buildinfo.asc'
removed './b2/mkdocs-test_0.5.3-5_i386.buildinfo.asc'