I: pbuilder: network access will be disabled during build
I: Current time: Wed Feb 25 13:02:12 +14 2026
I: pbuilder-time-stamp: 1771974132
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/unstable-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/91953/tmp/hooks/D01_modify_environment starting
debug: Running on ionos16-i386.
I: Changing host+domainname to test build reproducibility
I: Adding a custom variable just for the fun of it...
I: Changing /bin/sh to bash
'/bin/sh' -> '/bin/bash'
lrwxrwxrwx 1 root root 9 Feb 24 23:02 /bin/sh -> /bin/bash
I: Setting pbuilder2's login shell to /bin/bash
I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other
I: user script /srv/workspace/pbuilder/91953/tmp/hooks/D01_modify_environment finished
I: user script /srv/workspace/pbuilder/91953/tmp/hooks/D02_print_environment starting
I: set
  BASH=/bin/sh
  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
  BASH_ALIASES=()
  BASH_ARGC=()
  BASH_ARGV=()
  BASH_CMDS=()
  BASH_LINENO=([0]="12" [1]="0")
  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
  BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="i686-pc-linux-gnu")
  BASH_VERSION='5.2.37(1)-release'
  BUILDDIR=/build/reproducible-path
  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
  BUILDUSERNAME=pbuilder2
  BUILD_ARCH=i386
  DEBIAN_FRONTEND=noninteractive
  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 '
  DIRSTACK=()
  DISTRIBUTION=unstable
  EUID=0
  FUNCNAME=([0]="Echo" [1]="main")
  GROUPS=()
  HOME=/root
  HOSTNAME=i-capture-the-hostname
  HOSTTYPE=i686
  HOST_ARCH=i386
  IFS=' 	
  '
  INVOCATION_ID=59e4d3d17c4a4843b5a2901d8b1e377d
  LANG=C
  LANGUAGE=de_CH:de
  LC_ALL=C
  LD_LIBRARY_PATH=/usr/lib/libeatmydata
  LD_PRELOAD=libeatmydata.so
  MACHTYPE=i686-pc-linux-gnu
  MAIL=/var/mail/root
  OPTERR=1
  OPTIND=1
  OSTYPE=linux-gnu
  PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path
  PBCURRENTCOMMANDLINEOPERATION=build
  PBUILDER_OPERATION=build
  PBUILDER_PKGDATADIR=/usr/share/pbuilder
  PBUILDER_PKGLIBDIR=/usr/lib/pbuilder
  PBUILDER_SYSCONFDIR=/etc
  PIPESTATUS=([0]="0")
  POSIXLY_CORRECT=y
  PPID=91953
  PS4='+ '
  PWD=/
  SHELL=/bin/bash
  SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
  SHLVL=3
  SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.M58Pdxnz/pbuilderrc_iBgR --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.M58Pdxnz/b2 --logfile b2/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-14
  UID=0
  USER=root
  _='I: set'
  http_proxy=http://213.165.73.152:3128
I: uname -a
  Linux i-capture-the-hostname 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/91953/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 ... 19836 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.7 MB of archives. After unpacking 242 MB will be used.
Writing extended state information...
Get: 1 http://deb.debian.org/debian unstable/main i386 libpython3.13-minimal i386 3.13.1-3 [858 kB]
Get: 2 http://deb.debian.org/debian unstable/main i386 libexpat1 i386 2.6.4-1 [107 kB]
Get: 3 http://deb.debian.org/debian unstable/main i386 python3.13-minimal i386 3.13.1-3 [2264 kB]
Get: 4 http://deb.debian.org/debian unstable/main i386 python3-minimal i386 3.13.1-2 [27.0 kB]
Get: 5 http://deb.debian.org/debian unstable/main i386 media-types all 10.1.0 [26.9 kB]
Get: 6 http://deb.debian.org/debian unstable/main i386 netbase all 6.4 [12.8 kB]
Get: 7 http://deb.debian.org/debian unstable/main i386 tzdata all 2025a-1 [259 kB]
Get: 8 http://deb.debian.org/debian unstable/main i386 libffi8 i386 3.4.6-1 [21.2 kB]
Get: 9 http://deb.debian.org/debian unstable/main i386 readline-common all 8.2-6 [69.4 kB]
Get: 10 http://deb.debian.org/debian unstable/main i386 libreadline8t64 i386 8.2-6 [173 kB]
Get: 11 http://deb.debian.org/debian unstable/main i386 libpython3.13-stdlib i386 3.13.1-3 [1980 kB]
Get: 12 http://deb.debian.org/debian unstable/main i386 python3.13 i386 3.13.1-3 [740 kB]
Get: 13 http://deb.debian.org/debian unstable/main i386 libpython3-stdlib i386 3.13.1-2 [9952 B]
Get: 14 http://deb.debian.org/debian unstable/main i386 python3 i386 3.13.1-2 [28.0 kB]
Get: 15 http://deb.debian.org/debian unstable/main i386 sensible-utils all 0.0.24 [24.8 kB]
Get: 16 http://deb.debian.org/debian unstable/main i386 libmagic-mgc i386 1:5.45-3+b1 [314 kB]
Get: 17 http://deb.debian.org/debian unstable/main i386 libmagic1t64 i386 1:5.45-3+b1 [115 kB]
Get: 18 http://deb.debian.org/debian unstable/main i386 file i386 1:5.45-3+b1 [43.2 kB]
Get: 19 http://deb.debian.org/debian unstable/main i386 gettext-base i386 0.23.1-1 [245 kB]
Get: 20 http://deb.debian.org/debian unstable/main i386 libuchardet0 i386 0.0.8-1+b2 [69.2 kB]
Get: 21 http://deb.debian.org/debian unstable/main i386 groff-base i386 1.23.0-7 [1199 kB]
Get: 22 http://deb.debian.org/debian unstable/main i386 bsdextrautils i386 2.40.4-1 [96.1 kB]
Get: 23 http://deb.debian.org/debian unstable/main i386 libpipeline1 i386 1.5.8-1 [41.2 kB]
Get: 24 http://deb.debian.org/debian unstable/main i386 man-db i386 2.13.0-1 [1428 kB]
Get: 25 http://deb.debian.org/debian unstable/main i386 m4 i386 1.4.19-5 [301 kB]
Get: 26 http://deb.debian.org/debian unstable/main i386 autoconf all 2.72-3 [493 kB]
Get: 27 http://deb.debian.org/debian unstable/main i386 autotools-dev all 20220109.1 [51.6 kB]
Get: 28 http://deb.debian.org/debian unstable/main i386 automake all 1:1.16.5-1.3 [823 kB]
Get: 29 http://deb.debian.org/debian unstable/main i386 autopoint all 0.23.1-1 [770 kB]
Get: 30 http://deb.debian.org/debian unstable/main i386 libdebhelper-perl all 13.24.1 [90.9 kB]
Get: 31 http://deb.debian.org/debian unstable/main i386 libtool all 2.5.4-2 [539 kB]
Get: 32 http://deb.debian.org/debian unstable/main i386 dh-autoreconf all 20 [17.1 kB]
Get: 33 http://deb.debian.org/debian unstable/main i386 libarchive-zip-perl all 1.68-1 [104 kB]
Get: 34 http://deb.debian.org/debian unstable/main i386 libfile-stripnondeterminism-perl all 1.14.1-1 [19.6 kB]
Get: 35 http://deb.debian.org/debian unstable/main i386 dh-strip-nondeterminism all 1.14.1-1 [8584 B]
Get: 36 http://deb.debian.org/debian unstable/main i386 libelf1t64 i386 0.192-4 [195 kB]
Get: 37 http://deb.debian.org/debian unstable/main i386 dwz i386 0.15-1+b1 [116 kB]
Get: 38 http://deb.debian.org/debian unstable/main i386 libunistring5 i386 1.3-1 [458 kB]
Get: 39 http://deb.debian.org/debian unstable/main i386 libicu72 i386 72.1-6 [9582 kB]
Get: 40 http://deb.debian.org/debian unstable/main i386 libxml2 i386 2.12.7+dfsg+really2.9.14-0.2+b1 [734 kB]
Get: 41 http://deb.debian.org/debian unstable/main i386 gettext i386 0.23.1-1 [1714 kB]
Get: 42 http://deb.debian.org/debian unstable/main i386 intltool-debian all 0.35.0+20060710.6 [22.9 kB]
Get: 43 http://deb.debian.org/debian unstable/main i386 po-debconf all 1.0.21+nmu1 [248 kB]
Get: 44 http://deb.debian.org/debian unstable/main i386 debhelper all 13.24.1 [920 kB]
Get: 45 http://deb.debian.org/debian unstable/main i386 python3-autocommand all 2.2.2-3 [13.6 kB]
Get: 46 http://deb.debian.org/debian unstable/main i386 python3-more-itertools all 10.6.0-1 [65.3 kB]
Get: 47 http://deb.debian.org/debian unstable/main i386 python3-typing-extensions all 4.12.2-2 [73.0 kB]
Get: 48 http://deb.debian.org/debian unstable/main i386 python3-typeguard all 4.4.1-1 [37.0 kB]
Get: 49 http://deb.debian.org/debian unstable/main i386 python3-inflect all 7.3.1-2 [32.4 kB]
Get: 50 http://deb.debian.org/debian unstable/main i386 python3-jaraco.context all 6.0.0-1 [7984 B]
Get: 51 http://deb.debian.org/debian unstable/main i386 python3-jaraco.functools all 4.1.0-1 [12.0 kB]
Get: 52 http://deb.debian.org/debian unstable/main i386 python3-pkg-resources all 75.6.0-1 [222 kB]
Get: 53 http://deb.debian.org/debian unstable/main i386 python3-jaraco.text all 4.0.0-1 [11.4 kB]
Get: 54 http://deb.debian.org/debian unstable/main i386 python3-zipp all 3.21.0-1 [10.6 kB]
Get: 55 http://deb.debian.org/debian unstable/main i386 python3-setuptools all 75.6.0-1 [720 kB]
Get: 56 http://deb.debian.org/debian unstable/main i386 dh-python all 6.20250108 [113 kB]
Get: 57 http://deb.debian.org/debian unstable/main i386 libblas3 i386 3.12.0-4 [143 kB]
Get: 58 http://deb.debian.org/debian unstable/main i386 libgfortran5 i386 14.2.0-14 [735 kB]
Get: 59 http://deb.debian.org/debian unstable/main i386 liblapack3 i386 3.12.0-4 [2194 kB]
Get: 60 http://deb.debian.org/debian unstable/main i386 libyaml-0-2 i386 0.2.5-2 [55.8 kB]
Get: 61 http://deb.debian.org/debian unstable/main i386 python3-packaging all 24.2-1 [55.3 kB]
Get: 62 http://deb.debian.org/debian unstable/main i386 python3-pyproject-hooks all 1.2.0-1 [11.7 kB]
Get: 63 http://deb.debian.org/debian unstable/main i386 python3-toml all 0.10.2-1 [16.2 kB]
Get: 64 http://deb.debian.org/debian unstable/main i386 python3-wheel all 0.45.1-1 [56.7 kB]
Get: 65 http://deb.debian.org/debian unstable/main i386 python3-build all 1.2.2-1 [36.0 kB]
Get: 66 http://deb.debian.org/debian unstable/main i386 python3-installer all 0.7.0+dfsg1-3 [18.6 kB]
Get: 67 http://deb.debian.org/debian unstable/main i386 pybuild-plugin-pyproject all 6.20250108 [11.6 kB]
Get: 68 http://deb.debian.org/debian unstable/main i386 python3-soupsieve all 2.6-1 [38.3 kB]
Get: 69 http://deb.debian.org/debian unstable/main i386 python3-bs4 all 4.12.3-3 [133 kB]
Get: 70 http://deb.debian.org/debian unstable/main i386 python3-dateutil all 2.9.0-3 [79.3 kB]
Get: 71 http://deb.debian.org/debian unstable/main i386 python3-hjson all 3.1.0-3 [33.3 kB]
Get: 72 http://deb.debian.org/debian unstable/main i386 python3-iniconfig all 1.1.1-2 [6396 B]
Get: 73 http://deb.debian.org/debian unstable/main i386 python3-markdown all 3.7-2 [85.2 kB]
Get: 74 http://deb.debian.org/debian unstable/main i386 python3-mdurl all 0.1.2-1 [9444 B]
Get: 75 http://deb.debian.org/debian unstable/main i386 python3-markdown-it all 3.0.0-2 [62.5 kB]
Get: 76 http://deb.debian.org/debian unstable/main i386 python3-numpy i386 1:1.26.4+ds-13 [4751 kB]
Get: 77 http://deb.debian.org/debian unstable/main i386 python3-tz all 2024.2-1 [31.0 kB]
Get: 78 http://deb.debian.org/debian unstable/main i386 python3-pandas-lib i386 2.2.3+dfsg-5+b1 [6860 kB]
Get: 79 http://deb.debian.org/debian unstable/main i386 python3-pandas all 2.2.3+dfsg-5 [3096 kB]
Get: 80 http://deb.debian.org/debian unstable/main i386 python3-pluggy all 1.5.0-1 [26.9 kB]
Get: 81 http://deb.debian.org/debian unstable/main i386 python3-pygments all 2.18.0+dfsg-2 [836 kB]
Get: 82 http://deb.debian.org/debian unstable/main i386 python3-pytest all 8.3.4-1 [250 kB]
Get: 83 http://deb.debian.org/debian unstable/main i386 python3-rich all 13.9.4-1 [203 kB]
Get: 84 http://deb.debian.org/debian unstable/main i386 python3-setuptools-scm all 8.1.0-1 [40.5 kB]
Get: 85 http://deb.debian.org/debian unstable/main i386 python3-super-collections all 0.5.3-2 [12.2 kB]
Get: 86 http://deb.debian.org/debian unstable/main i386 python3-yaml i386 6.0.2-1+b1 [173 kB]
Fetched 48.7 MB in 1s (71.9 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 ... 19836 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 ... 20170 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_2025a-1_all.deb ...
Unpacking tzdata (2025a-1) ...
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 ... 21180 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.23.1-1_i386.deb ...
Unpacking gettext-base (0.23.1-1) ...
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.23.1-1_all.deb ...
Unpacking autopoint (0.23.1-1) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../16-libdebhelper-perl_13.24.1_all.deb ...
Unpacking libdebhelper-perl (13.24.1) ...
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.23.1-1_i386.deb ...
Unpacking gettext (0.23.1-1) ...
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.24.1_all.deb ...
Unpacking debhelper (13.24.1) ...
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-14_i386.deb ...
Unpacking libgfortran5:i386 (14.2.0-14) ...
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.24.1) ...
Setting up libmagic1t64:i386 (1:5.45-3+b1) ...
Setting up gettext-base (0.23.1-1) ...
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 (2025a-1) ...

Current default time zone: 'Etc/UTC'
Local time is now:      Tue Feb 24 23:02:42 UTC 2026.
Universal Time is now:  Tue Feb 24 23:02:42 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.23.1-1) ...
Setting up libgfortran5:i386 (14.2.0-14) ...
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.23.1-1) ...
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.24.1) ...
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-5) ...
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: user script /srv/workspace/pbuilder/91953/tmp/hooks/A99_set_merged_usr starting
Not re-configuring usrmerge for unstable
I: user script /srv/workspace/pbuilder/91953/tmp/hooks/A99_set_merged_usr finished
hostname: Name or service not known
I: Running cd /build/reproducible-path/mkdocs-test-0.5.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-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-ibilpvn4/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 1.35s ==========================
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: user script /srv/workspace/pbuilder/91953/tmp/hooks/B01_cleanup starting
I: user script /srv/workspace/pbuilder/91953/tmp/hooks/B01_cleanup finished
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/91953 and its subdirectories
I: Current time: Wed Feb 25 13:03:15 +14 2026
I: pbuilder-time-stamp: 1771974195