Sun Apr 20 10:27:52 UTC 2025 I: starting to build python-snitun/unstable/amd64 on jenkins on '2025-04-20 10:27' Sun Apr 20 10:27:52 UTC 2025 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_20/48985/console.log Sun Apr 20 10:27:52 UTC 2025 I: Downloading source for unstable/python-snitun=0.42.0-1 --2025-04-20 10:27:52-- http://deb.debian.org/debian/pool/main/p/python-snitun/python-snitun_0.42.0-1.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2377 (2.3K) [text/prs.lines.tag] Saving to: ‘python-snitun_0.42.0-1.dsc’ 0K .. 100% 368M=0s 2025-04-20 10:27:52 (368 MB/s) - ‘python-snitun_0.42.0-1.dsc’ saved [2377/2377] Sun Apr 20 10:27:52 UTC 2025 I: python-snitun_0.42.0-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: python-snitun Binary: python3-snitun Architecture: all Version: 0.42.0-1 Maintainer: Home Assistant Team Uploaders: Edward Betts , Homepage: https://github.com/NabuCasa/snitun Standards-Version: 4.7.2 Vcs-Browser: https://salsa.debian.org/homeassistant-team/deps/python-snitun Vcs-Git: https://salsa.debian.org/homeassistant-team/deps/python-snitun.git Testsuite: autopkgtest-pkg-pybuild Build-Depends: debhelper-compat (= 13), dh-sequence-python3, pybuild-plugin-pyproject, python3-all, python3-setuptools Build-Depends-Indep: python3-aiohttp , python3-async-timeout , python3-attr , python3-cryptography , python3-pytest , python3-pytest-asyncio , python3-pytest-aiohttp , python3-pytest-timeout Package-List: python3-snitun deb python optional arch=all Checksums-Sha1: 7c1d4773b3714ebada63194594edd71eaf2c5780 61070 python-snitun_0.42.0.orig.tar.gz c35451a4d8fdf772e6433e8020bc6251f7f85b04 2344 python-snitun_0.42.0-1.debian.tar.xz Checksums-Sha256: 14e654eda84e6f17ec1d2b319df77f6acf07688438d1d7949d9001ebeeaf0eba 61070 python-snitun_0.42.0.orig.tar.gz d1d5462588b60068671af560e445e5b1d6efc86d06674ef0652497954541e131 2344 python-snitun_0.42.0-1.debian.tar.xz Files: df616d6f4ed47dae774b3a17f6542268 61070 python-snitun_0.42.0.orig.tar.gz 260aa290dd6a2baa37a5c5cb8b2c6a2b 2344 python-snitun_0.42.0-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEE+4rPp4xyYInDitAmlgWhCYxjuSoFAmgDNC4ACgkQlgWhCYxj uSqtaRAAtT1eNi1zPj1J9F4WKRO4g7WOzIycau/4kF/RMlmuZNj6UCDFngKR5uOk gmWytf9OsWVSV41QhxUjDsfHebeDWID2NlI3eM4WxESoidewNs7vXAbIfakN5nQY YIwxlHRKXJCRlDLdgHyXh+EkLlCGYAj5DZvBTziOH7vBXmhHWHaMes07/JFnBymR IRzVU7rhC6H0ybceFuHymr3vVnoPm06wb3baU86nXq6OwGuH1WnqO++ttQBLiJMo KxPo8bDmIeTxYg2JqfWCHqhaJGhXtzOXfqrRWi22DDN7PTr31DXbQW8wpakOh5qR bhAwDmhN8uNVKZqJYpB4sPCQSqVe45ph4eldbcyLN5XT9ZbcYe6oJc39cM8/QB3T gPSVeH/5u9/3AezhrRKdjHeyv9tvdZ+LX7Z+1Yf0RoVzAuhwm0iEzSWbXeudaG2n eC4GU9BcDk9N3n2Ak/heXSMMxVSMON+CYvBJRhJX2+koqI/Z5ZlKrElq8sfMz9Vm BvkrULl+MAgtgpvQzDAK1O1BVeegnbUjKuZfCLJvAtWrExIKNwjWJtx4n+L7jc/n AkhOq48OC4w9xIKq0Gydxviyk5GMYxNVQrIJ4+/1R/hTN039oPjhaOFIHkpxQevr skQ5Mv9S3J31h07Cr77dEW1qxcUGPcXnXVrWsM075wwHhsBLuFk= =AXcl -----END PGP SIGNATURE----- Sun Apr 20 10:27:52 UTC 2025 I: Checking whether the package is not for us Sun Apr 20 10:27:52 UTC 2025 I: Starting 1st build on remote node ionos15-amd64.debian.net. Sun Apr 20 10:27:52 UTC 2025 I: Preparing to do remote build '1' on ionos15-amd64.debian.net. Mon Apr 21 04:27:55 UTC 2025 I: Deleting $TMPDIR on ionos15-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Sat May 23 04:50:54 -12 2026 I: pbuilder-time-stamp: 1779555054 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: Copying source file I: copying [python-snitun_0.42.0-1.dsc] I: copying [./python-snitun_0.42.0.orig.tar.gz] I: copying [./python-snitun_0.42.0-1.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./python-snitun_0.42.0-1.dsc: unsupported subcommand dpkg-source: info: extracting python-snitun in python-snitun-0.42.0 dpkg-source: info: unpacking python-snitun_0.42.0.orig.tar.gz dpkg-source: info: unpacking python-snitun_0.42.0-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/3876526/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='b4c94185cea94f9ca9546e5941786081' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='3876526' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.bKY8cyLL/pbuilderrc_ugKx --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.bKY8cyLL/b1 --logfile b1/build.log python-snitun_0.42.0-1.dsc' SUDO_GID='111' SUDO_UID='106' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://213.165.73.152:3128' I: uname -a Linux ionos15-amd64 6.12.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.12-1~bpo12+1 (2025-02-23) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Mar 4 2025 /bin -> usr/bin I: user script /srv/workspace/pbuilder/3876526/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: amd64 Maintainer: Debian Pbuilder Team 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-all, python3-setuptools, python3-aiohttp, python3-async-timeout, python3-attr, python3-cryptography, python3-pytest, python3-pytest-asyncio, python3-pytest-aiohttp, python3-pytest-timeout dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19840 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-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-aiohttp; however: Package python3-aiohttp is not installed. pbuilder-satisfydepends-dummy depends on python3-async-timeout; however: Package python3-async-timeout is not installed. pbuilder-satisfydepends-dummy depends on python3-attr; however: Package python3-attr is not installed. pbuilder-satisfydepends-dummy depends on python3-cryptography; however: Package python3-cryptography is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-asyncio; however: Package python3-pytest-asyncio is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-aiohttp; however: Package python3-pytest-aiohttp is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-timeout; however: Package python3-pytest-timeout 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} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libffi8{a} libfile-stripnondeterminism-perl{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} m4{a} man-db{a} media-types{a} netbase{a} po-debconf{a} pybuild-plugin-pyproject{a} python3{a} python3-aiohappyeyeballs{a} python3-aiohttp{a} python3-aiosignal{a} python3-all{a} python3-async-generator{a} python3-async-timeout{a} python3-attr{a} python3-autocommand{a} python3-bcrypt{a} python3-build{a} python3-cffi-backend{a} python3-cryptography{a} python3-frozenlist{a} python3-idna{a} python3-inflect{a} python3-iniconfig{a} python3-installer{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-minimal{a} python3-more-itertools{a} python3-multidict{a} python3-packaging{a} python3-pkg-resources{a} python3-pluggy{a} python3-propcache{a} python3-pyproject-hooks{a} python3-pytest{a} python3-pytest-aiohttp{a} python3-pytest-asyncio{a} python3-pytest-timeout{a} python3-setuptools{a} python3-toml{a} python3-typeguard{a} python3-typing-extensions{a} python3-wheel{a} python3-yarl{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 libjs-jquery libltdl-dev libmail-sendmail-perl lynx python3-aiodns python3-pygments wget 0 packages upgraded, 83 newly installed, 0 to remove and 0 not upgraded. Need to get 21.6 MB of archives. After unpacking 84.9 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main amd64 libpython3.13-minimal amd64 3.13.3-2 [861 kB] Get: 2 http://deb.debian.org/debian unstable/main amd64 libexpat1 amd64 2.7.1-1 [108 kB] Get: 3 http://deb.debian.org/debian unstable/main amd64 python3.13-minimal amd64 3.13.3-2 [2212 kB] Get: 4 http://deb.debian.org/debian unstable/main amd64 python3-minimal amd64 3.13.3-1 [27.2 kB] Get: 5 http://deb.debian.org/debian unstable/main amd64 media-types all 13.0.0 [29.3 kB] Get: 6 http://deb.debian.org/debian unstable/main amd64 netbase all 6.5 [12.4 kB] Get: 7 http://deb.debian.org/debian unstable/main amd64 tzdata all 2025b-2 [260 kB] Get: 8 http://deb.debian.org/debian unstable/main amd64 libffi8 amd64 3.4.7-1 [23.9 kB] Get: 9 http://deb.debian.org/debian unstable/main amd64 readline-common all 8.2-6 [69.4 kB] Get: 10 http://deb.debian.org/debian unstable/main amd64 libreadline8t64 amd64 8.2-6 [169 kB] Get: 11 http://deb.debian.org/debian unstable/main amd64 libpython3.13-stdlib amd64 3.13.3-2 [1953 kB] Get: 12 http://deb.debian.org/debian unstable/main amd64 python3.13 amd64 3.13.3-2 [751 kB] Get: 13 http://deb.debian.org/debian unstable/main amd64 libpython3-stdlib amd64 3.13.3-1 [10.2 kB] Get: 14 http://deb.debian.org/debian unstable/main amd64 python3 amd64 3.13.3-1 [28.2 kB] Get: 15 http://deb.debian.org/debian unstable/main amd64 sensible-utils all 0.0.24 [24.8 kB] Get: 16 http://deb.debian.org/debian unstable/main amd64 libmagic-mgc amd64 1:5.46-5 [338 kB] Get: 17 http://deb.debian.org/debian unstable/main amd64 libmagic1t64 amd64 1:5.46-5 [109 kB] Get: 18 http://deb.debian.org/debian unstable/main amd64 file amd64 1:5.46-5 [43.6 kB] Get: 19 http://deb.debian.org/debian unstable/main amd64 gettext-base amd64 0.23.1-1 [243 kB] Get: 20 http://deb.debian.org/debian unstable/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 21 http://deb.debian.org/debian unstable/main amd64 groff-base amd64 1.23.0-7 [1185 kB] Get: 22 http://deb.debian.org/debian unstable/main amd64 bsdextrautils amd64 2.41-4 [94.6 kB] Get: 23 http://deb.debian.org/debian unstable/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 24 http://deb.debian.org/debian unstable/main amd64 man-db amd64 2.13.0-1 [1420 kB] Get: 25 http://deb.debian.org/debian unstable/main amd64 m4 amd64 1.4.19-7 [294 kB] Get: 26 http://deb.debian.org/debian unstable/main amd64 autoconf all 2.72-3.1 [494 kB] Get: 27 http://deb.debian.org/debian unstable/main amd64 autotools-dev all 20240727.1 [60.2 kB] Get: 28 http://deb.debian.org/debian unstable/main amd64 automake all 1:1.17-4 [862 kB] Get: 29 http://deb.debian.org/debian unstable/main amd64 autopoint all 0.23.1-1 [770 kB] Get: 30 http://deb.debian.org/debian unstable/main amd64 libdebhelper-perl all 13.24.2 [90.9 kB] Get: 31 http://deb.debian.org/debian unstable/main amd64 libtool all 2.5.4-4 [539 kB] Get: 32 http://deb.debian.org/debian unstable/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 33 http://deb.debian.org/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 34 http://deb.debian.org/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.14.1-2 [19.7 kB] Get: 35 http://deb.debian.org/debian unstable/main amd64 dh-strip-nondeterminism all 1.14.1-2 [8620 B] Get: 36 http://deb.debian.org/debian unstable/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 37 http://deb.debian.org/debian unstable/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 38 http://deb.debian.org/debian unstable/main amd64 libunistring5 amd64 1.3-2 [477 kB] Get: 39 http://deb.debian.org/debian unstable/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-0.4 [698 kB] Get: 40 http://deb.debian.org/debian unstable/main amd64 gettext amd64 0.23.1-1 [1680 kB] Get: 41 http://deb.debian.org/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 42 http://deb.debian.org/debian unstable/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 43 http://deb.debian.org/debian unstable/main amd64 debhelper all 13.24.2 [919 kB] Get: 44 http://deb.debian.org/debian unstable/main amd64 dh-python all 6.20250414 [116 kB] Get: 45 http://deb.debian.org/debian unstable/main amd64 python3-packaging all 24.2-3 [55.7 kB] Get: 46 http://deb.debian.org/debian unstable/main amd64 python3-pyproject-hooks all 1.2.0-1 [11.7 kB] Get: 47 http://deb.debian.org/debian unstable/main amd64 python3-toml all 0.10.2-1 [16.2 kB] Get: 48 http://deb.debian.org/debian unstable/main amd64 python3-wheel all 0.46.1-2 [21.7 kB] Get: 49 http://deb.debian.org/debian unstable/main amd64 python3-build all 1.2.2-1 [36.0 kB] Get: 50 http://deb.debian.org/debian unstable/main amd64 python3-installer all 0.7.0+dfsg1-3 [18.6 kB] Get: 51 http://deb.debian.org/debian unstable/main amd64 pybuild-plugin-pyproject all 6.20250414 [11.8 kB] Get: 52 http://deb.debian.org/debian unstable/main amd64 python3-aiohappyeyeballs all 2.6.1-1 [14.4 kB] Get: 53 http://deb.debian.org/debian unstable/main amd64 python3-idna all 3.10-1 [42.0 kB] Get: 54 http://deb.debian.org/debian unstable/main amd64 python3-typing-extensions all 4.13.2-1 [90.5 kB] Get: 55 http://deb.debian.org/debian unstable/main amd64 python3-multidict amd64 6.4.3-1 [52.8 kB] Get: 56 http://deb.debian.org/debian unstable/main amd64 python3-propcache amd64 0.3.1-1 [40.5 kB] Get: 57 http://deb.debian.org/debian unstable/main amd64 python3-yarl amd64 1.19.0-1 [96.5 kB] Get: 58 http://deb.debian.org/debian unstable/main amd64 python3-async-timeout all 5.0.1-1 [8324 B] Get: 59 http://deb.debian.org/debian unstable/main amd64 python3-frozenlist amd64 1.5.0-1+b2 [49.2 kB] Get: 60 http://deb.debian.org/debian unstable/main amd64 python3-aiosignal all 1.3.2-1 [6100 B] Get: 61 http://deb.debian.org/debian unstable/main amd64 python3-attr all 25.3.0-1 [69.5 kB] Get: 62 http://deb.debian.org/debian unstable/main amd64 python3-aiohttp amd64 3.11.16-1 [405 kB] Get: 63 http://deb.debian.org/debian unstable/main amd64 python3-all amd64 3.13.3-1 [1048 B] Get: 64 http://deb.debian.org/debian unstable/main amd64 python3-async-generator all 1.10-4 [17.4 kB] Get: 65 http://deb.debian.org/debian unstable/main amd64 python3-autocommand all 2.2.2-3 [13.6 kB] Get: 66 http://deb.debian.org/debian unstable/main amd64 python3-bcrypt amd64 4.2.0-2.1+b1 [211 kB] Get: 67 http://deb.debian.org/debian unstable/main amd64 python3-cffi-backend amd64 1.17.1-2+b2 [93.6 kB] Get: 68 http://deb.debian.org/debian unstable/main amd64 python3-cryptography amd64 43.0.0-2 [941 kB] Get: 69 http://deb.debian.org/debian unstable/main amd64 python3-more-itertools all 10.6.0-1 [65.3 kB] Get: 70 http://deb.debian.org/debian unstable/main amd64 python3-typeguard all 4.4.2-1 [37.3 kB] Get: 71 http://deb.debian.org/debian unstable/main amd64 python3-inflect all 7.3.1-2 [32.4 kB] Get: 72 http://deb.debian.org/debian unstable/main amd64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 73 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.functools all 4.1.0-1 [12.0 kB] Get: 74 http://deb.debian.org/debian unstable/main amd64 python3-pkg-resources all 78.1.0-1.2 [224 kB] Get: 75 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.text all 4.0.0-1 [11.4 kB] Get: 76 http://deb.debian.org/debian unstable/main amd64 python3-zipp all 3.21.0-1 [10.6 kB] Get: 77 http://deb.debian.org/debian unstable/main amd64 python3-setuptools all 78.1.0-1.2 [738 kB] Get: 78 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.context all 6.0.1-1 [8276 B] Get: 79 http://deb.debian.org/debian unstable/main amd64 python3-pluggy all 1.5.0-1 [26.9 kB] Get: 80 http://deb.debian.org/debian unstable/main amd64 python3-pytest all 8.3.5-2 [250 kB] Get: 81 http://deb.debian.org/debian unstable/main amd64 python3-pytest-asyncio all 0.25.1-1 [16.7 kB] Get: 82 http://deb.debian.org/debian unstable/main amd64 python3-pytest-aiohttp all 1.1.0-1 [6192 B] Get: 83 http://deb.debian.org/debian unstable/main amd64 python3-pytest-timeout all 2.3.1-1 [21.9 kB] Fetched 21.6 MB in 4s (4845 kB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:amd64. (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 ... 19840 files and directories currently installed.) Preparing to unpack .../libpython3.13-minimal_3.13.3-2_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.3-2) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../libexpat1_2.7.1-1_amd64.deb ... Unpacking libexpat1:amd64 (2.7.1-1) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../python3.13-minimal_3.13.3-2_amd64.deb ... Unpacking python3.13-minimal (3.13.3-2) ... Setting up libpython3.13-minimal:amd64 (3.13.3-2) ... Setting up libexpat1:amd64 (2.7.1-1) ... Setting up python3.13-minimal (3.13.3-2) ... 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 ... 20174 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.3-1_amd64.deb ... Unpacking python3-minimal (3.13.3-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_13.0.0_all.deb ... Unpacking media-types (13.0.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.5_all.deb ... Unpacking netbase (6.5) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2025b-2_all.deb ... Unpacking tzdata (2025b-2) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../4-libffi8_3.4.7-1_amd64.deb ... Unpacking libffi8:amd64 (3.4.7-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:amd64. Preparing to unpack .../6-libreadline8t64_8.2-6_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.2-6) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../7-libpython3.13-stdlib_3.13.3-2_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.3-2) ... Selecting previously unselected package python3.13. Preparing to unpack .../8-python3.13_3.13.3-2_amd64.deb ... Unpacking python3.13 (3.13.3-2) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../9-libpython3-stdlib_3.13.3-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.13.3-1) ... Setting up python3-minimal (3.13.3-1) ... 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 ... 21186 files and directories currently installed.) Preparing to unpack .../00-python3_3.13.3-1_amd64.deb ... Unpacking python3 (3.13.3-1) ... 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.46-5_amd64.deb ... Unpacking libmagic-mgc (1:5.46-5) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../03-libmagic1t64_1%3a5.46-5_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.46-5) ... Selecting previously unselected package file. Preparing to unpack .../04-file_1%3a5.46-5_amd64.deb ... Unpacking file (1:5.46-5) ... Selecting previously unselected package gettext-base. Preparing to unpack .../05-gettext-base_0.23.1-1_amd64.deb ... Unpacking gettext-base (0.23.1-1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../06-libuchardet0_0.0.8-1+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../07-groff-base_1.23.0-7_amd64.deb ... Unpacking groff-base (1.23.0-7) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../08-bsdextrautils_2.41-4_amd64.deb ... Unpacking bsdextrautils (2.41-4) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../09-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../10-man-db_2.13.0-1_amd64.deb ... Unpacking man-db (2.13.0-1) ... Selecting previously unselected package m4. Preparing to unpack .../11-m4_1.4.19-7_amd64.deb ... Unpacking m4 (1.4.19-7) ... Selecting previously unselected package autoconf. Preparing to unpack .../12-autoconf_2.72-3.1_all.deb ... Unpacking autoconf (2.72-3.1) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../13-autotools-dev_20240727.1_all.deb ... Unpacking autotools-dev (20240727.1) ... Selecting previously unselected package automake. Preparing to unpack .../14-automake_1%3a1.17-4_all.deb ... Unpacking automake (1:1.17-4) ... 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.2_all.deb ... Unpacking libdebhelper-perl (13.24.2) ... Selecting previously unselected package libtool. Preparing to unpack .../17-libtool_2.5.4-4_all.deb ... Unpacking libtool (2.5.4-4) ... 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-2_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../21-dh-strip-nondeterminism_1.14.1-2_all.deb ... Unpacking dh-strip-nondeterminism (1.14.1-2) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../22-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../23-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../24-libunistring5_1.3-2_amd64.deb ... Unpacking libunistring5:amd64 (1.3-2) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../25-libxml2_2.12.7+dfsg+really2.9.14-0.4_amd64.deb ... Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.4) ... Selecting previously unselected package gettext. Preparing to unpack .../26-gettext_0.23.1-1_amd64.deb ... Unpacking gettext (0.23.1-1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../27-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 .../28-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../29-debhelper_13.24.2_all.deb ... Unpacking debhelper (13.24.2) ... Selecting previously unselected package dh-python. Preparing to unpack .../30-dh-python_6.20250414_all.deb ... Unpacking dh-python (6.20250414) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../31-python3-packaging_24.2-3_all.deb ... Unpacking python3-packaging (24.2-3) ... Selecting previously unselected package python3-pyproject-hooks. Preparing to unpack .../32-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 .../33-python3-toml_0.10.2-1_all.deb ... Unpacking python3-toml (0.10.2-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../34-python3-wheel_0.46.1-2_all.deb ... Unpacking python3-wheel (0.46.1-2) ... Selecting previously unselected package python3-build. Preparing to unpack .../35-python3-build_1.2.2-1_all.deb ... Unpacking python3-build (1.2.2-1) ... Selecting previously unselected package python3-installer. Preparing to unpack .../36-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 .../37-pybuild-plugin-pyproject_6.20250414_all.deb ... Unpacking pybuild-plugin-pyproject (6.20250414) ... Selecting previously unselected package python3-aiohappyeyeballs. Preparing to unpack .../38-python3-aiohappyeyeballs_2.6.1-1_all.deb ... Unpacking python3-aiohappyeyeballs (2.6.1-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../39-python3-idna_3.10-1_all.deb ... Unpacking python3-idna (3.10-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../40-python3-typing-extensions_4.13.2-1_all.deb ... Unpacking python3-typing-extensions (4.13.2-1) ... Selecting previously unselected package python3-multidict. Preparing to unpack .../41-python3-multidict_6.4.3-1_amd64.deb ... Unpacking python3-multidict (6.4.3-1) ... Selecting previously unselected package python3-propcache. Preparing to unpack .../42-python3-propcache_0.3.1-1_amd64.deb ... Unpacking python3-propcache (0.3.1-1) ... Selecting previously unselected package python3-yarl. Preparing to unpack .../43-python3-yarl_1.19.0-1_amd64.deb ... Unpacking python3-yarl (1.19.0-1) ... Selecting previously unselected package python3-async-timeout. Preparing to unpack .../44-python3-async-timeout_5.0.1-1_all.deb ... Unpacking python3-async-timeout (5.0.1-1) ... Selecting previously unselected package python3-frozenlist. Preparing to unpack .../45-python3-frozenlist_1.5.0-1+b2_amd64.deb ... Unpacking python3-frozenlist (1.5.0-1+b2) ... Selecting previously unselected package python3-aiosignal. Preparing to unpack .../46-python3-aiosignal_1.3.2-1_all.deb ... Unpacking python3-aiosignal (1.3.2-1) ... Selecting previously unselected package python3-attr. Preparing to unpack .../47-python3-attr_25.3.0-1_all.deb ... Unpacking python3-attr (25.3.0-1) ... Selecting previously unselected package python3-aiohttp. Preparing to unpack .../48-python3-aiohttp_3.11.16-1_amd64.deb ... Unpacking python3-aiohttp (3.11.16-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../49-python3-all_3.13.3-1_amd64.deb ... Unpacking python3-all (3.13.3-1) ... Selecting previously unselected package python3-async-generator. Preparing to unpack .../50-python3-async-generator_1.10-4_all.deb ... Unpacking python3-async-generator (1.10-4) ... Selecting previously unselected package python3-autocommand. Preparing to unpack .../51-python3-autocommand_2.2.2-3_all.deb ... Unpacking python3-autocommand (2.2.2-3) ... Selecting previously unselected package python3-bcrypt. Preparing to unpack .../52-python3-bcrypt_4.2.0-2.1+b1_amd64.deb ... Unpacking python3-bcrypt (4.2.0-2.1+b1) ... Selecting previously unselected package python3-cffi-backend:amd64. Preparing to unpack .../53-python3-cffi-backend_1.17.1-2+b2_amd64.deb ... Unpacking python3-cffi-backend:amd64 (1.17.1-2+b2) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../54-python3-cryptography_43.0.0-2_amd64.deb ... Unpacking python3-cryptography (43.0.0-2) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../55-python3-more-itertools_10.6.0-1_all.deb ... Unpacking python3-more-itertools (10.6.0-1) ... Selecting previously unselected package python3-typeguard. Preparing to unpack .../56-python3-typeguard_4.4.2-1_all.deb ... Unpacking python3-typeguard (4.4.2-1) ... Selecting previously unselected package python3-inflect. Preparing to unpack .../57-python3-inflect_7.3.1-2_all.deb ... Unpacking python3-inflect (7.3.1-2) ... 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-jaraco.functools. Preparing to unpack .../59-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 .../60-python3-pkg-resources_78.1.0-1.2_all.deb ... Unpacking python3-pkg-resources (78.1.0-1.2) ... Selecting previously unselected package python3-jaraco.text. Preparing to unpack .../61-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 .../62-python3-zipp_3.21.0-1_all.deb ... Unpacking python3-zipp (3.21.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../63-python3-setuptools_78.1.0-1.2_all.deb ... Unpacking python3-setuptools (78.1.0-1.2) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../64-python3-jaraco.context_6.0.1-1_all.deb ... Unpacking python3-jaraco.context (6.0.1-1) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../65-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../66-python3-pytest_8.3.5-2_all.deb ... Unpacking python3-pytest (8.3.5-2) ... Selecting previously unselected package python3-pytest-asyncio. Preparing to unpack .../67-python3-pytest-asyncio_0.25.1-1_all.deb ... Unpacking python3-pytest-asyncio (0.25.1-1) ... Selecting previously unselected package python3-pytest-aiohttp. Preparing to unpack .../68-python3-pytest-aiohttp_1.1.0-1_all.deb ... Unpacking python3-pytest-aiohttp (1.1.0-1) ... Selecting previously unselected package python3-pytest-timeout. Preparing to unpack .../69-python3-pytest-timeout_2.3.1-1_all.deb ... Unpacking python3-pytest-timeout (2.3.1-1) ... Setting up media-types (13.0.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up bsdextrautils (2.41-4) ... Setting up libmagic-mgc (1:5.46-5) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.24.2) ... Setting up libmagic1t64:amd64 (1:5.46-5) ... Setting up gettext-base (0.23.1-1) ... Setting up m4 (1.4.19-7) ... Setting up file (1:5.46-5) ... Setting up libelf1t64:amd64 (0.192-4) ... Setting up tzdata (2025b-2) ... Current default time zone: 'Etc/UTC' Local time is now: Sat May 23 16:53:04 UTC 2026. Universal Time is now: Sat May 23 16:53:04 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20240727.1) ... Setting up libunistring5:amd64 (1.3-2) ... Setting up autopoint (0.23.1-1) ... Setting up autoconf (2.72-3.1) ... Setting up libffi8:amd64 (3.4.7-1) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.24) ... Setting up libuchardet0:amd64 (0.0.8-1+b2) ... Setting up netbase (6.5) ... Setting up readline-common (8.2-6) ... Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.4) ... Setting up automake (1:1.17-4) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.14.1-2) ... Setting up gettext (0.23.1-1) ... Setting up libtool (2.5.4-4) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up libreadline8t64:amd64 (8.2-6) ... Setting up dh-strip-nondeterminism (1.14.1-2) ... Setting up groff-base (1.23.0-7) ... Setting up libpython3.13-stdlib:amd64 (3.13.3-2) ... Setting up libpython3-stdlib:amd64 (3.13.3-1) ... Setting up python3.13 (3.13.3-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up python3 (3.13.3-1) ... 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-multidict (6.4.3-1) ... Setting up python3-frozenlist (1.5.0-1+b2) ... Setting up python3-aiosignal (1.3.2-1) ... Setting up python3-async-timeout (5.0.1-1) ... Setting up python3-packaging (24.2-3) ... Setting up python3-pyproject-hooks (1.2.0-1) ... Setting up python3-idna (3.10-1) ... Setting up python3-typing-extensions (4.13.2-1) ... Setting up python3-aiohappyeyeballs (2.6.1-1) ... 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-propcache (0.3.1-1) ... Setting up python3-yarl (1.19.0-1) ... Setting up python3-cffi-backend:amd64 (1.17.1-2+b2) ... Setting up dh-python (6.20250414) ... Setting up python3-more-itertools (10.6.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-attr (25.3.0-1) ... Setting up python3-jaraco.functools (4.1.0-1) ... Setting up python3-async-generator (1.10-4) ... Setting up python3-jaraco.context (6.0.1-1) ... Setting up python3-pytest (8.3.5-2) ... Setting up python3-bcrypt (4.2.0-2.1+b1) ... Setting up python3-typeguard (4.4.2-1) ... Setting up python3-aiohttp (3.11.16-1) ... Setting up python3-all (3.13.3-1) ... Setting up debhelper (13.24.2) ... Setting up python3-wheel (0.46.1-2) ... Setting up python3-inflect (7.3.1-2) ... Setting up python3-jaraco.text (4.0.0-1) ... Setting up python3-cryptography (43.0.0-2) ... Setting up python3-pytest-asyncio (0.25.1-1) ... Setting up python3-build (1.2.2-1) ... Setting up python3-pkg-resources (78.1.0-1.2) ... Setting up python3-pytest-aiohttp (1.1.0-1) ... Setting up python3-setuptools (78.1.0-1.2) ... Setting up python3-pytest-timeout (2.3.1-1) ... Setting up pybuild-plugin-pyproject (6.20250414) ... Processing triggers for libc-bin (2.41-7) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps I: Building the package I: Running cd /build/reproducible-path/python-snitun-0.42.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../python-snitun_0.42.0-1_source.changes dpkg-buildpackage: info: source package python-snitun dpkg-buildpackage: info: source version 0.42.0-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Edward Betts dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 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/python-snitun-0.42.0/.pybuild/cpython3_3.13 * Building wheel... /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated !! ******************************************************************************** Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0). This deprecation is overdue, please update your project and remove deprecated calls to avoid build errors in the future. See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! corresp(dist, value, root_dir) /usr/lib/python3/dist-packages/setuptools/config/_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: GNU General Public License v3 (GPLv3) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! dist._finalize_license_expression() /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: GNU General Public License v3 (GPLv3) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running bdist_wheel running build running build_py creating build/lib/snitun copying snitun/__init__.py -> build/lib/snitun copying snitun/exceptions.py -> build/lib/snitun creating build/lib/snitun/utils copying snitun/utils/aiohttp_client.py -> build/lib/snitun/utils copying snitun/utils/server.py -> build/lib/snitun/utils copying snitun/utils/ipaddress.py -> build/lib/snitun/utils copying snitun/utils/__init__.py -> build/lib/snitun/utils copying snitun/utils/asyncio.py -> build/lib/snitun/utils copying snitun/utils/aes.py -> build/lib/snitun/utils creating build/lib/snitun/multiplexer copying snitun/multiplexer/message.py -> build/lib/snitun/multiplexer copying snitun/multiplexer/queue.py -> build/lib/snitun/multiplexer copying snitun/multiplexer/crypto.py -> build/lib/snitun/multiplexer copying snitun/multiplexer/core.py -> build/lib/snitun/multiplexer copying snitun/multiplexer/channel.py -> build/lib/snitun/multiplexer copying snitun/multiplexer/__init__.py -> build/lib/snitun/multiplexer copying snitun/multiplexer/const.py -> build/lib/snitun/multiplexer creating build/lib/snitun/client copying snitun/client/client_peer.py -> build/lib/snitun/client copying snitun/client/__init__.py -> build/lib/snitun/client copying snitun/client/connector.py -> build/lib/snitun/client creating build/lib/snitun/server copying snitun/server/peer_manager.py -> build/lib/snitun/server copying snitun/server/listener_peer.py -> build/lib/snitun/server copying snitun/server/worker.py -> build/lib/snitun/server copying snitun/server/run.py -> build/lib/snitun/server copying snitun/server/peer.py -> build/lib/snitun/server copying snitun/server/__init__.py -> build/lib/snitun/server copying snitun/server/sni.py -> build/lib/snitun/server copying snitun/server/listener_sni.py -> build/lib/snitun/server running egg_info creating snitun.egg-info writing snitun.egg-info/PKG-INFO writing dependency_links to snitun.egg-info/dependency_links.txt writing requirements to snitun.egg-info/requires.txt writing top-level names to snitun.egg-info/top_level.txt writing manifest file 'snitun.egg-info/SOURCES.txt' reading manifest file 'snitun.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'snitun.egg-info/SOURCES.txt' installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/snitun creating build/bdist.linux-x86_64/wheel/snitun/utils copying build/lib/snitun/utils/aiohttp_client.py -> build/bdist.linux-x86_64/wheel/./snitun/utils copying build/lib/snitun/utils/server.py -> build/bdist.linux-x86_64/wheel/./snitun/utils copying build/lib/snitun/utils/ipaddress.py -> build/bdist.linux-x86_64/wheel/./snitun/utils copying build/lib/snitun/utils/__init__.py -> build/bdist.linux-x86_64/wheel/./snitun/utils copying build/lib/snitun/utils/asyncio.py -> build/bdist.linux-x86_64/wheel/./snitun/utils copying build/lib/snitun/utils/aes.py -> build/bdist.linux-x86_64/wheel/./snitun/utils creating build/bdist.linux-x86_64/wheel/snitun/multiplexer copying build/lib/snitun/multiplexer/message.py -> build/bdist.linux-x86_64/wheel/./snitun/multiplexer copying build/lib/snitun/multiplexer/queue.py -> build/bdist.linux-x86_64/wheel/./snitun/multiplexer copying build/lib/snitun/multiplexer/crypto.py -> build/bdist.linux-x86_64/wheel/./snitun/multiplexer copying build/lib/snitun/multiplexer/core.py -> build/bdist.linux-x86_64/wheel/./snitun/multiplexer copying build/lib/snitun/multiplexer/channel.py -> build/bdist.linux-x86_64/wheel/./snitun/multiplexer copying build/lib/snitun/multiplexer/__init__.py -> build/bdist.linux-x86_64/wheel/./snitun/multiplexer copying build/lib/snitun/multiplexer/const.py -> build/bdist.linux-x86_64/wheel/./snitun/multiplexer copying build/lib/snitun/__init__.py -> build/bdist.linux-x86_64/wheel/./snitun creating build/bdist.linux-x86_64/wheel/snitun/client copying build/lib/snitun/client/client_peer.py -> build/bdist.linux-x86_64/wheel/./snitun/client copying build/lib/snitun/client/__init__.py -> build/bdist.linux-x86_64/wheel/./snitun/client copying build/lib/snitun/client/connector.py -> build/bdist.linux-x86_64/wheel/./snitun/client creating build/bdist.linux-x86_64/wheel/snitun/server copying build/lib/snitun/server/peer_manager.py -> build/bdist.linux-x86_64/wheel/./snitun/server copying build/lib/snitun/server/listener_peer.py -> build/bdist.linux-x86_64/wheel/./snitun/server copying build/lib/snitun/server/worker.py -> build/bdist.linux-x86_64/wheel/./snitun/server copying build/lib/snitun/server/run.py -> build/bdist.linux-x86_64/wheel/./snitun/server copying build/lib/snitun/server/peer.py -> build/bdist.linux-x86_64/wheel/./snitun/server copying build/lib/snitun/server/__init__.py -> build/bdist.linux-x86_64/wheel/./snitun/server copying build/lib/snitun/server/sni.py -> build/bdist.linux-x86_64/wheel/./snitun/server copying build/lib/snitun/server/listener_sni.py -> build/bdist.linux-x86_64/wheel/./snitun/server copying build/lib/snitun/exceptions.py -> build/bdist.linux-x86_64/wheel/./snitun running install_egg_info Copying snitun.egg-info to build/bdist.linux-x86_64/wheel/./snitun-0.0.0.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/snitun-0.0.0.dist-info/WHEEL creating '/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/.tmp-4r7854gk/snitun-0.0.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'snitun/__init__.py' adding 'snitun/exceptions.py' adding 'snitun/client/__init__.py' adding 'snitun/client/client_peer.py' adding 'snitun/client/connector.py' adding 'snitun/multiplexer/__init__.py' adding 'snitun/multiplexer/channel.py' adding 'snitun/multiplexer/const.py' adding 'snitun/multiplexer/core.py' adding 'snitun/multiplexer/crypto.py' adding 'snitun/multiplexer/message.py' adding 'snitun/multiplexer/queue.py' adding 'snitun/server/__init__.py' adding 'snitun/server/listener_peer.py' adding 'snitun/server/listener_sni.py' adding 'snitun/server/peer.py' adding 'snitun/server/peer_manager.py' adding 'snitun/server/run.py' adding 'snitun/server/sni.py' adding 'snitun/server/worker.py' adding 'snitun/utils/__init__.py' adding 'snitun/utils/aes.py' adding 'snitun/utils/aiohttp_client.py' adding 'snitun/utils/asyncio.py' adding 'snitun/utils/ipaddress.py' adding 'snitun/utils/server.py' adding 'snitun-0.0.0.dist-info/licenses/LICENSE' adding 'snitun-0.0.0.dist-info/METADATA' adding 'snitun-0.0.0.dist-info/WHEEL' adding 'snitun-0.0.0.dist-info/top_level.txt' adding 'snitun-0.0.0.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Successfully built snitun-0.0.0-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build; python3.13 -m pytest --ignore=tests/benchmarks /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) ============================= test session starts ============================== platform linux -- Python 3.13.3, pytest-8.3.5, pluggy-1.5.0 rootdir: /build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build configfile: pyproject.toml plugins: typeguard-4.4.2, timeout-2.3.1, asyncio-0.25.1, aiohttp-1.1.0 asyncio: mode=Mode.AUTO, asyncio_default_fixture_loop_scope=None collected 164 items tests/client/test_client_peer.py ........... [ 6%] tests/client/test_connector.py ......... [ 12%] tests/multiplexer/test_channel.py .............. [ 20%] tests/multiplexer/test_const.py . [ 21%] tests/multiplexer/test_core.py ......................... [ 36%] tests/multiplexer/test_crypto.py . [ 37%] tests/multiplexer/test_message.py ... [ 39%] tests/multiplexer/test_queue.py ....................... [ 53%] tests/server/test_all.py F [ 53%] tests/server/test_listener_peer.py ...... [ 57%] tests/server/test_listener_sni.py ............ [ 64%] tests/server/test_peer.py ...... [ 68%] tests/server/test_peer_manager.py .......... [ 74%] tests/server/test_run.py ...FException ignored in: Traceback (most recent call last): File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/snitun/server/listener_peer.py", line 99, in handle_connection writer.close() File "/usr/lib/python3.13/asyncio/streams.py", line 352, in close return self._transport.close() File "/usr/lib/python3.13/asyncio/selector_events.py", line 1205, in close super().close() File "/usr/lib/python3.13/asyncio/selector_events.py", line 865, in close self._loop.call_soon(self._call_connection_lost, None) File "/usr/lib/python3.13/asyncio/base_events.py", line 827, in call_soon self._check_closed() File "/usr/lib/python3.13/asyncio/base_events.py", line 550, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed Exception ignored in: Traceback (most recent call last): File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/snitun/multiplexer/core.py", line 211, in _runner to_peer.cancel() File "/usr/lib/python3.13/asyncio/base_events.py", line 827, in call_soon self._check_closed() File "/usr/lib/python3.13/asyncio/base_events.py", line 550, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed Exception ignored in: Traceback (most recent call last): File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/snitun/server/listener_sni.py", line 108, in handle_connection writer.close() File "/usr/lib/python3.13/asyncio/streams.py", line 352, in close return self._transport.close() File "/usr/lib/python3.13/asyncio/selector_events.py", line 1205, in close super().close() File "/usr/lib/python3.13/asyncio/selector_events.py", line 865, in close self._loop.call_soon(self._call_connection_lost, None) File "/usr/lib/python3.13/asyncio/base_events.py", line 827, in call_soon self._check_closed() File "/usr/lib/python3.13/asyncio/base_events.py", line 550, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed Exception ignored in: Traceback (most recent call last): File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/snitun/multiplexer/core.py", line 216, in _runner from_peer.cancel() File "/usr/lib/python3.13/asyncio/base_events.py", line 827, in call_soon self._check_closed() File "/usr/lib/python3.13/asyncio/base_events.py", line 550, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed F...FFFFFF [ 82%] tests/server/test_sni.py .......... [ 89%] tests/server/test_worker.py .... [ 91%] tests/utils/test_aes.py .. [ 92%] tests/utils/test_aiohttp_client.py .. [ 93%] tests/utils/test_asyncio.py ...... [ 97%] tests/utils/test_ipaddress.py .. [ 98%] tests/utils/test_server.py .. [100%] =================================== FAILURES =================================== _______________________________ test_server_full _______________________________ peer_manager = peer_listener = test_client_peer = Client(reader= transport=<_SelectorSocketTransport fd=18 ...tTransport fd=18 read=polling write=>>>, close=) sni_proxy = test_client_ssl = Client(reader=>>, writer=<...tTransport fd=21 read=polling write=>>>, close=) async def test_server_full( peer_manager: PeerManager, peer_listener: PeerListener, test_client_peer: Client, sni_proxy: SNIProxy, test_client_ssl: Client, ) -> None: """Run a full flow of with a peer after that disconnect.""" peer_messages = [] peer_address = [] valid = datetime.now(tz=UTC) + timedelta(days=1) aes_key = os.urandom(32) aes_iv = os.urandom(16) hostname = "localhost" fernet_token = create_peer_config(valid.timestamp(), hostname, aes_key, aes_iv) crypto = CryptoTransport(aes_key, aes_iv) test_client_peer.writer.write(fernet_token) await test_client_peer.writer.drain() token = await test_client_peer.reader.readexactly(32) token = hashlib.sha256(crypto.decrypt(token)).digest() test_client_peer.writer.write(crypto.encrypt(token)) await test_client_peer.writer.drain() await asyncio.sleep(0.1) assert peer_manager.peer_available(hostname) async def mock_new_channel( multiplexer: Multiplexer, channel: MultiplexerChannel, ) -> None: """Mock new channel.""" while True: message = await channel.read() peer_messages.append(message) peer_address.append(channel.ip_address) multiplexer = Multiplexer( crypto, test_client_peer.reader, test_client_peer.writer, snitun.PROTOCOL_VERSION, mock_new_channel, ) test_client_ssl.writer.write(TLS_1_2) await test_client_ssl.writer.drain() await asyncio.sleep(0.1) > assert peer_messages E assert [] tests/server/test_all.py:77: AssertionError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector DEBUG:snitun.server.peer_manager:Close peer connection: localhost ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector DEBUG snitun.server.peer_manager:peer_manager.py:99 Close peer connection: localhost ----------------------------- Captured stderr call ----------------------------- DEBUG:snitun.server.peer_manager:New peer connection: localhost DEBUG:snitun.server.listener_sni:Processing for hostname localhost started DEBUG:snitun.multiplexer.queue:Queue creating channel 64f6754063e30690cfcbceedfee529af DEBUG:snitun.multiplexer.channel:Sending new channel 64f6754063e30690cfcbceedfee529af ------------------------------ Captured log call ------------------------------- DEBUG snitun.server.peer_manager:peer_manager.py:86 New peer connection: localhost DEBUG snitun.server.listener_sni:listener_sni.py:101 Processing for hostname localhost started DEBUG snitun.multiplexer.queue:queue.py:133 Queue creating channel 64f6754063e30690cfcbceedfee529af DEBUG snitun.multiplexer.channel:channel.py:265 Sending new channel 64f6754063e30690cfcbceedfee529af --------------------------- Captured stderr teardown --------------------------- DEBUG:snitun.multiplexer.queue:Queue creating channel 64f6754063e30690cfcbceedfee529af DEBUG:snitun.server.listener_sni:Transport closed by Proxy for 64f6754063e30690cfcbceedfee529af: DEBUG:snitun.multiplexer.channel:Sending close channel 64f6754063e30690cfcbceedfee529af DEBUG:snitun.multiplexer.core:Transport was closed DEBUG:snitun.multiplexer.channel:Schedule close channel 64f6754063e30690cfcbceedfee529af DEBUG:snitun.multiplexer.core:Multiplexer connection is closed DEBUG:snitun.multiplexer.channel:Read a close message for channel 64f6754063e30690cfcbceedfee529af ERROR:asyncio:Task exception was never retrieved future: .mock_new_channel() done, defined at /build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/tests/server/test_all.py:55> exception=MultiplexerTransportClose()> Traceback (most recent call last): File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/tests/server/test_all.py", line 61, in mock_new_channel message = await channel.read() ^^^^^^^^^^^^^^^^^^^^ File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/snitun/multiplexer/channel.py", line 254, in read raise MultiplexerTransportClose snitun.exceptions.MultiplexerTransportClose DEBUG:snitun.multiplexer.core:Transport was closed DEBUG:snitun.multiplexer.core:Multiplexer connection is closed DEBUG:snitun.multiplexer.core:Cancel connection DEBUG:snitun.multiplexer.core:Receive canceling DEBUG:snitun.multiplexer.core:Multiplexer connection is closed DEBUG:snitun.server.peer_manager:Close peer connection: localhost DEBUG:asyncio:Using selector: EpollSelector ---------------------------- Captured log teardown ----------------------------- DEBUG snitun.multiplexer.queue:queue.py:133 Queue creating channel 64f6754063e30690cfcbceedfee529af DEBUG snitun.server.listener_sni:listener_sni.py:217 Transport closed by Proxy for 64f6754063e30690cfcbceedfee529af: DEBUG snitun.multiplexer.channel:channel.py:259 Sending close channel 64f6754063e30690cfcbceedfee529af DEBUG snitun.multiplexer.core:core.py:206 Transport was closed DEBUG snitun.multiplexer.channel:channel.py:208 Schedule close channel 64f6754063e30690cfcbceedfee529af DEBUG snitun.multiplexer.core:core.py:227 Multiplexer connection is closed DEBUG snitun.multiplexer.channel:channel.py:253 Read a close message for channel 64f6754063e30690cfcbceedfee529af ERROR asyncio:base_events.py:1865 Task exception was never retrieved future: .mock_new_channel() done, defined at /build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/tests/server/test_all.py:55> exception=MultiplexerTransportClose()> Traceback (most recent call last): File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/tests/server/test_all.py", line 61, in mock_new_channel message = await channel.read() ^^^^^^^^^^^^^^^^^^^^ File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/snitun/multiplexer/channel.py", line 254, in read raise MultiplexerTransportClose snitun.exceptions.MultiplexerTransportClose DEBUG snitun.multiplexer.core:core.py:206 Transport was closed DEBUG snitun.multiplexer.core:core.py:227 Multiplexer connection is closed DEBUG snitun.multiplexer.core:core.py:112 Cancel connection DEBUG snitun.multiplexer.core:core.py:195 Receive canceling DEBUG snitun.multiplexer.core:core.py:227 Multiplexer connection is closed DEBUG snitun.server.peer_manager:peer_manager.py:99 Close peer connection: localhost DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector __________________________ test_snitun_single_runner ___________________________ async def test_snitun_single_runner() -> None: """Test SniTunSingle Server runner object.""" peer_messages = [] peer_address = [] server = SniTunServerSingle(FERNET_TOKENS, host="127.0.0.1", port=32000) await server.start() reader_peer, writer_peer = await asyncio.open_connection( host="127.0.0.1", port="32000", ) valid = datetime.now(tz=UTC) + timedelta(days=1) aes_key = os.urandom(32) aes_iv = os.urandom(16) hostname = "localhost" fernet_token = create_peer_config(valid.timestamp(), hostname, aes_key, aes_iv) crypto = CryptoTransport(aes_key, aes_iv) writer_peer.write(fernet_token) await writer_peer.drain() token = await reader_peer.readexactly(32) token = hashlib.sha256(crypto.decrypt(token)).digest() writer_peer.write(crypto.encrypt(token)) await writer_peer.drain() await asyncio.sleep(0.1) assert server.peers.peer_available(hostname) async def mock_new_channel( multiplexer: Multiplexer, channel: MultiplexerChannel, ) -> None: """Mock new channel.""" while True: message = await channel.read() peer_messages.append(message) peer_address.append(channel.ip_address) _, writer_ssl = await asyncio.open_connection(host="127.0.0.1", port="32000") multiplexer = Multiplexer( crypto, reader_peer, writer_peer, snitun.PROTOCOL_VERSION, mock_new_channel, ) writer_ssl.write(TLS_1_2) await writer_ssl.drain() await asyncio.sleep(0.1) > assert peer_messages E assert [] tests/server/test_run.py:128: AssertionError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- DEBUG:snitun.server.peer_manager:New peer connection: localhost DEBUG:snitun.server.listener_sni:Processing for hostname localhost started DEBUG:snitun.multiplexer.queue:Queue creating channel d83bed8c253393e68d561a44b7a69674 DEBUG:snitun.multiplexer.channel:Sending new channel d83bed8c253393e68d561a44b7a69674 ------------------------------ Captured log call ------------------------------- DEBUG snitun.server.peer_manager:peer_manager.py:86 New peer connection: localhost DEBUG snitun.server.listener_sni:listener_sni.py:101 Processing for hostname localhost started DEBUG snitun.multiplexer.queue:queue.py:133 Queue creating channel d83bed8c253393e68d561a44b7a69674 DEBUG snitun.multiplexer.channel:channel.py:265 Sending new channel d83bed8c253393e68d561a44b7a69674 --------------------------- Captured stderr teardown --------------------------- DEBUG:asyncio:Using selector: EpollSelector ---------------------------- Captured log teardown ----------------------------- DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ______________________ test_snitun_single_runner_timeout _______________________ raise_timeout = None async def test_snitun_single_runner_timeout(raise_timeout: None) -> None: """Test SniTunSingle Server runner object.""" server = SniTunServerSingle(FERNET_TOKENS, host="127.0.0.1", port="32000") > await server.start() tests/server/test_run.py:146: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ snitun/server/run.py:114: in start self._server = await asyncio.start_server( /usr/lib/python3.13/asyncio/streams.py:84: in start_server return await loop.create_server(factory, host, port, **kwds) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_UnixSelectorEventLoop running=False closed=False debug=False> protocol_factory = .factory at 0x7f663ec84c20> host = '127.0.0.1', port = '32000' async def create_server( self, protocol_factory, host=None, port=None, *, family=socket.AF_UNSPEC, flags=socket.AI_PASSIVE, sock=None, backlog=100, ssl=None, reuse_address=None, reuse_port=None, keep_alive=None, ssl_handshake_timeout=None, ssl_shutdown_timeout=None, start_serving=True): """Create a TCP server. The host parameter can be a string, in that case the TCP server is bound to host and port. The host parameter can also be a sequence of strings and in that case the TCP server is bound to all hosts of the sequence. If a host appears multiple times (possibly indirectly e.g. when hostnames resolve to the same IP address), the server is only bound once to that host. Return a Server object which can be used to stop the service. This method is a coroutine. """ if isinstance(ssl, bool): raise TypeError('ssl argument must be an SSLContext or None') if ssl_handshake_timeout is not None and ssl is None: raise ValueError( 'ssl_handshake_timeout is only meaningful with ssl') if ssl_shutdown_timeout is not None and ssl is None: raise ValueError( 'ssl_shutdown_timeout is only meaningful with ssl') if sock is not None: _check_ssl_socket(sock) if host is not None or port is not None: if sock is not None: raise ValueError( 'host/port and sock can not be specified at the same time') if reuse_address is None: reuse_address = os.name == "posix" and sys.platform != "cygwin" sockets = [] if host == '': hosts = [None] elif (isinstance(host, str) or not isinstance(host, collections.abc.Iterable)): hosts = [host] else: hosts = host fs = [self._create_server_getaddrinfo(host, port, family=family, flags=flags) for host in hosts] infos = await tasks.gather(*fs) infos = set(itertools.chain.from_iterable(infos)) completed = False try: for res in infos: af, socktype, proto, canonname, sa = res try: sock = socket.socket(af, socktype, proto) except socket.error: # Assume it's a bad family/type/protocol combination. if self._debug: logger.warning('create_server() failed to create ' 'socket.socket(%r, %r, %r)', af, socktype, proto, exc_info=True) continue sockets.append(sock) if reuse_address: sock.setsockopt( socket.SOL_SOCKET, socket.SO_REUSEADDR, True) # Since Linux 6.12.9, SO_REUSEPORT is not allowed # on other address families than AF_INET/AF_INET6. if reuse_port and af in (socket.AF_INET, socket.AF_INET6): _set_reuseport(sock) if keep_alive: sock.setsockopt( socket.SOL_SOCKET, socket.SO_KEEPALIVE, True) # Disable IPv4/IPv6 dual stack support (enabled by # default on Linux) which makes a single socket # listen on both address families. if (_HAS_IPv6 and af == socket.AF_INET6 and hasattr(socket, 'IPPROTO_IPV6')): sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, True) try: sock.bind(sa) except OSError as err: msg = ('error while attempting ' 'to bind on address %r: %s' % (sa, str(err).lower())) if err.errno == errno.EADDRNOTAVAIL: # Assume the family is not enabled (bpo-30945) sockets.pop() sock.close() if self._debug: logger.warning(msg) continue > raise OSError(err.errno, msg) from None E OSError: [Errno 98] error while attempting to bind on address ('127.0.0.1', 32000): [errno 98] address already in use /usr/lib/python3.13/asyncio/base_events.py:1616: OSError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector --------------------------- Captured stderr teardown --------------------------- ERROR:asyncio:Task was destroyed but it is pending! task: cb=[_wait.._on_completion() at /usr/lib/python3.13/asyncio/tasks.py:521]> ERROR:asyncio:Task was destroyed but it is pending! task: wait_for=._outer_done_callback() at /usr/lib/python3.13/asyncio/tasks.py:975, Task.task_wakeup()]>> ERROR:asyncio:Task was destroyed but it is pending! task: wait_for=> ERROR:asyncio:Task was destroyed but it is pending! task: wait_for=> ERROR:asyncio:Task was destroyed but it is pending! task: wait_for= cb=[shield.._inner_done_callback() at /usr/lib/python3.13/asyncio/tasks.py:958]> DEBUG:snitun.server.peer_manager:Close peer connection: localhost ERROR:asyncio:Task was destroyed but it is pending! task: wait_for=> ERROR:asyncio:Task was destroyed but it is pending! task: wait_for=> ERROR:asyncio:Task was destroyed but it is pending! task: wait_for=> ERROR:asyncio:Task was destroyed but it is pending! task: wait_for=> ERROR:asyncio:Task was destroyed but it is pending! task: wait_for=> DEBUG:asyncio:Using selector: EpollSelector ---------------------------- Captured log teardown ----------------------------- DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector _____________________ test_snitun_worker_runner[payloads1] _____________________ event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> payloads = [b'\x16\x03\x01\x00H\x01', b'\x00\x00B\x03\x03\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff...ff\xff\xff\x00\x00\x04\x00\x01\x00\xff\x01\x00\x00\x17\x00\x00\x00\x0e\x00\x0c\x00\x00\tlocalhost\x00\x0f\x00\x01\x01'] @pytest.mark.parametrize( "payloads", [ [TLS_1_2], [TLS_1_2[:6], TLS_1_2[6:]], [TLS_1_2[:6], TLS_1_2[6:20], TLS_1_2[20:]], [TLS_1_2[:6], TLS_1_2[6:20], TLS_1_2[20:32], TLS_1_2[32:]], ], ) def test_snitun_worker_runner( event_loop: asyncio.AbstractEventLoop, payloads: list[bytes], ) -> None: """Test SniTunWorker Server runner object.""" loop = event_loop peer_messages = [] peer_address = [] server = SniTunServerWorker( FERNET_TOKENS, host="127.0.0.1", port=32001, worker_size=2, ) server.start() sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(("127.0.0.1", 32001)) valid = datetime.now(tz=UTC) + timedelta(days=1) aes_key = os.urandom(32) aes_iv = os.urandom(16) hostname = "localhost" fernet_token = create_peer_config(valid.timestamp(), hostname, aes_key, aes_iv) crypto = CryptoTransport(aes_key, aes_iv) sock.sendall(fernet_token) token = sock.recv(32) token = hashlib.sha256(crypto.decrypt(token)).digest() sock.sendall(crypto.encrypt(token)) time.sleep(1) assert any(worker.is_responsible_peer(hostname) for worker in server._workers) assert server.peer_counter == 1 async def mock_new_channel( multiplexer: Multiplexer, channel: MultiplexerChannel, ) -> None: """Mock new channel.""" while True: message = await channel.read() peer_messages.append(message) peer_address.append(channel.ip_address) sock_ssl = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock_ssl.connect(("127.0.0.1", 32001)) async def _create_multiplexer() -> Multiplexer: """Create and return the peer multiplexer.""" reader_peer, writer_peer = await asyncio.open_connection(sock=sock) return Multiplexer( crypto, reader_peer, writer_peer, snitun.PROTOCOL_VERSION, mock_new_channel, ) multiplexer = loop.run_until_complete(_create_multiplexer()) for payload in payloads: sock_ssl.sendall(payload) loop.run_until_complete(asyncio.sleep(0.1)) > assert peer_messages E assert [] tests/server/test_run.py:366: AssertionError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- INFO:snitun.server.run:Run SniTun with 2 worker INFO:snitun.server.worker:Start worker: ServerWorker-9 DEBUG:asyncio:Using selector: EpollSelector INFO:snitun.server.run:Server started, fd: 17 DEBUG:snitun.server.run:Handover new peer connection: b'gAAAAABqEdvK7gbcMVxZO2hkLcWcdvDO6di27uep9bZa8Hk61kg2kYIw_VGfW_kkfwv4gtWLanhqR9hMhvgn_6pCn0i3SY3kz9V42BnW5E7gMa_dxmkHFfkHfxzX3tQlsVT_al_XHVuVYV-yFG9SIdUPEjOvbmMWm3r0kT2Uz8lw0eYscDksaxM44KE5f6mgkUITbZYLb80nrHOD4KzMjPsjRoCcQGf6xo2CawUEmrC3Va10pUBPIUGA09PDJndKixCpYZFlWVvPNyG367MYtSTGixEltWuz4anksl2hda54U4ZY0qkWXjDw1wHOiVgGQX2tUnhRJJnXCNUerac_EwwxeARGOATZWwmBzMroktzWu8aSzPrulS8=' DEBUG:snitun.server.peer_manager:New peer connection: localhost INFO:snitun.server.worker:Start worker: ServerWorker-11 DEBUG:asyncio:Using selector: EpollSelector DEBUG:snitun.server.sni:Can't calculate the TLS record size DEBUG:snitun.server.run:Handover localhost to ServerWorker-9 ------------------------------ Captured log call ------------------------------- INFO snitun.server.run:run.py:225 Run SniTun with 2 worker INFO snitun.server.run:run.py:266 Server started, fd: 17 DEBUG snitun.server.run:run.py:341 Handover new peer connection: b'gAAAAABqEdvK7gbcMVxZO2hkLcWcdvDO6di27uep9bZa8Hk61kg2kYIw_VGfW_kkfwv4gtWLanhqR9hMhvgn_6pCn0i3SY3kz9V42BnW5E7gMa_dxmkHFfkHfxzX3tQlsVT_al_XHVuVYV-yFG9SIdUPEjOvbmMWm3r0kT2Uz8lw0eYscDksaxM44KE5f6mgkUITbZYLb80nrHOD4KzMjPsjRoCcQGf6xo2CawUEmrC3Va10pUBPIUGA09PDJndKixCpYZFlWVvPNyG367MYtSTGixEltWuz4anksl2hda54U4ZY0qkWXjDw1wHOiVgGQX2tUnhRJJnXCNUerac_EwwxeARGOATZWwmBzMroktzWu8aSzPrulS8=' DEBUG snitun.server.sni:sni.py:66 Can't calculate the TLS record size DEBUG snitun.server.run:run.py:371 Handover localhost to ServerWorker-9 --------------------------- Captured stderr teardown --------------------------- DEBUG:snitun.server.listener_sni:Processing for hostname localhost started DEBUG:snitun.multiplexer.queue:Queue creating channel 6c374c32c379f730556beb5865704d31 DEBUG:snitun.multiplexer.channel:Sending new channel 6c374c32c379f730556beb5865704d31 DEBUG:asyncio:Using selector: EpollSelector ---------------------------- Captured log teardown ----------------------------- DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector _____________________ test_snitun_worker_runner[payloads2] _____________________ event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> payloads = [b'\x16\x03\x01\x00H\x01', b'\x00\x00B\x03\x03\xff\xff\xff\xff\xff\xff\xff\xff\xff', b'\xff\xff\xff\xff\xff\xff\xff\xf...ff\xff\xff\x00\x00\x04\x00\x01\x00\xff\x01\x00\x00\x17\x00\x00\x00\x0e\x00\x0c\x00\x00\tlocalhost\x00\x0f\x00\x01\x01'] @pytest.mark.parametrize( "payloads", [ [TLS_1_2], [TLS_1_2[:6], TLS_1_2[6:]], [TLS_1_2[:6], TLS_1_2[6:20], TLS_1_2[20:]], [TLS_1_2[:6], TLS_1_2[6:20], TLS_1_2[20:32], TLS_1_2[32:]], ], ) def test_snitun_worker_runner( event_loop: asyncio.AbstractEventLoop, payloads: list[bytes], ) -> None: """Test SniTunWorker Server runner object.""" loop = event_loop peer_messages = [] peer_address = [] server = SniTunServerWorker( FERNET_TOKENS, host="127.0.0.1", port=32001, worker_size=2, ) > server.start() tests/server/test_run.py:313: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def start(self) -> None: """Run server.""" # Init first all worker, we don't want the epoll on the childs _LOGGER.info("Run SniTun with %d worker", self._worker_size) for _ in range(self._worker_size): worker = ServerWorker(self._fernet_keys, throttling=self._throttling) worker.start() self._workers.append(worker) self._server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) > self._server.bind((self._host, self._port)) E OSError: [Errno 98] Address already in use snitun/server/run.py:233: OSError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- INFO:snitun.server.run:Run SniTun with 2 worker DEBUG:snitun.server.listener_sni:Close TCP session after timeout for 6c374c32c379f730556beb5865704d31 DEBUG:snitun.multiplexer.channel:Sending close channel 6c374c32c379f730556beb5865704d31 INFO:snitun.server.worker:Start worker: ServerWorker-13 DEBUG:asyncio:Using selector: EpollSelector INFO:snitun.server.worker:Start worker: ServerWorker-15 ------------------------------ Captured log call ------------------------------- INFO snitun.server.run:run.py:225 Run SniTun with 2 worker --------------------------- Captured stderr teardown --------------------------- DEBUG:asyncio:Using selector: EpollSelector DEBUG:asyncio:Using selector: EpollSelector ---------------------------- Captured log teardown ----------------------------- DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector _____________________ test_snitun_worker_runner[payloads3] _____________________ event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> payloads = [b'\x16\x03\x01\x00H\x01', b'\x00\x00B\x03\x03\xff\xff\xff\xff\xff\xff\xff\xff\xff', b'\xff\xff\xff\xff\xff\xff\xff\xf...ff\xff\xff\x00\x00\x04\x00\x01\x00\xff\x01\x00\x00\x17\x00\x00\x00\x0e\x00\x0c\x00\x00\tlocalhost\x00\x0f\x00\x01\x01'] @pytest.mark.parametrize( "payloads", [ [TLS_1_2], [TLS_1_2[:6], TLS_1_2[6:]], [TLS_1_2[:6], TLS_1_2[6:20], TLS_1_2[20:]], [TLS_1_2[:6], TLS_1_2[6:20], TLS_1_2[20:32], TLS_1_2[32:]], ], ) def test_snitun_worker_runner( event_loop: asyncio.AbstractEventLoop, payloads: list[bytes], ) -> None: """Test SniTunWorker Server runner object.""" loop = event_loop peer_messages = [] peer_address = [] server = SniTunServerWorker( FERNET_TOKENS, host="127.0.0.1", port=32001, worker_size=2, ) > server.start() tests/server/test_run.py:313: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def start(self) -> None: """Run server.""" # Init first all worker, we don't want the epoll on the childs _LOGGER.info("Run SniTun with %d worker", self._worker_size) for _ in range(self._worker_size): worker = ServerWorker(self._fernet_keys, throttling=self._throttling) worker.start() self._workers.append(worker) self._server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) > self._server.bind((self._host, self._port)) E OSError: [Errno 98] Address already in use snitun/server/run.py:233: OSError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- INFO:snitun.server.run:Run SniTun with 2 worker INFO:snitun.server.worker:Start worker: ServerWorker-17 DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log call ------------------------------- INFO snitun.server.run:run.py:225 Run SniTun with 2 worker --------------------------- Captured stderr teardown --------------------------- DEBUG:asyncio:Using selector: EpollSelector ---------------------------- Captured log teardown ----------------------------- DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector __________________________ test_snitun_worker_timeout __________________________ event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> def test_snitun_worker_timeout(event_loop: asyncio.AbstractEventLoop) -> None: """Test SniTunWorker Server runner object timeout.""" from snitun.server import run run.WORKER_STALE_MAX = 1 server = SniTunServerWorker( FERNET_TOKENS, host="127.0.0.1", port=32001, worker_size=2, ) > server.start() tests/server/test_run.py:393: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def start(self) -> None: """Run server.""" # Init first all worker, we don't want the epoll on the childs _LOGGER.info("Run SniTun with %d worker", self._worker_size) for _ in range(self._worker_size): worker = ServerWorker(self._fernet_keys, throttling=self._throttling) worker.start() self._workers.append(worker) self._server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) > self._server.bind((self._host, self._port)) E OSError: [Errno 98] Address already in use snitun/server/run.py:233: OSError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- INFO:snitun.server.run:Run SniTun with 2 worker INFO:snitun.server.worker:Start worker: ServerWorker-19 DEBUG:asyncio:Using selector: EpollSelector INFO:snitun.server.worker:Start worker: ServerWorker-21 DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log call ------------------------------- INFO snitun.server.run:run.py:225 Run SniTun with 2 worker --------------------------- Captured stderr teardown --------------------------- DEBUG:asyncio:Using selector: EpollSelector ---------------------------- Captured log teardown ----------------------------- DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector __________________ test_snitun_worker_runner_invalid_payload ___________________ event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> def test_snitun_worker_runner_invalid_payload( event_loop: asyncio.AbstractEventLoop, ) -> None: """Test SniTunWorker Server runner invalid payload.""" server = SniTunServerWorker( FERNET_TOKENS, host="127.0.0.1", port=32001, worker_size=2, ) > server.start() tests/server/test_run.py:427: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def start(self) -> None: """Run server.""" # Init first all worker, we don't want the epoll on the childs _LOGGER.info("Run SniTun with %d worker", self._worker_size) for _ in range(self._worker_size): worker = ServerWorker(self._fernet_keys, throttling=self._throttling) worker.start() self._workers.append(worker) self._server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) > self._server.bind((self._host, self._port)) E OSError: [Errno 98] Address already in use snitun/server/run.py:233: OSError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector INFO:snitun.server.worker:Start worker: ServerWorker-23 ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- INFO:snitun.server.run:Run SniTun with 2 worker DEBUG:asyncio:Using selector: EpollSelector INFO:snitun.server.worker:Start worker: ServerWorker-25 DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log call ------------------------------- INFO snitun.server.run:run.py:225 Run SniTun with 2 worker --------------------------- Captured stderr teardown --------------------------- DEBUG:asyncio:Using selector: EpollSelector INFO:snitun.server.worker:Start worker: ServerWorker-27 ---------------------------- Captured log teardown ----------------------------- DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ___________________________ test_snitun_worker_crash ___________________________ kill = event_loop = <_UnixSelectorEventLoop running=False closed=False debug=False> @patch("snitun.server.run.os.kill") def test_snitun_worker_crash( kill: MagicMock, event_loop: asyncio.AbstractEventLoop, ) -> None: """Test SniTunWorker Server runner object with crashing worker.""" server = SniTunServerWorker( FERNET_TOKENS, host="127.0.0.1", port=32001, worker_size=2, ) > server.start() tests/server/test_run.py:460: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def start(self) -> None: """Run server.""" # Init first all worker, we don't want the epoll on the childs _LOGGER.info("Run SniTun with %d worker", self._worker_size) for _ in range(self._worker_size): worker = ServerWorker(self._fernet_keys, throttling=self._throttling) worker.start() self._workers.append(worker) self._server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) > self._server.bind((self._host, self._port)) E OSError: [Errno 98] Address already in use snitun/server/run.py:233: OSError ---------------------------- Captured stderr setup ----------------------------- DEBUG:asyncio:Using selector: EpollSelector DEBUG:asyncio:Using selector: EpollSelector ------------------------------ Captured log setup ------------------------------ DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector ----------------------------- Captured stderr call ----------------------------- INFO:snitun.server.run:Run SniTun with 2 worker INFO:snitun.server.worker:Start worker: ServerWorker-29 DEBUG:asyncio:Using selector: EpollSelector INFO:snitun.server.worker:Start worker: ServerWorker-31 ------------------------------ Captured log call ------------------------------- INFO snitun.server.run:run.py:225 Run SniTun with 2 worker --------------------------- Captured stderr teardown --------------------------- DEBUG:asyncio:Using selector: EpollSelector DEBUG:asyncio:Using selector: EpollSelector ---------------------------- Captured log teardown ----------------------------- DEBUG asyncio:selector_events.py:64 Using selector: EpollSelector =============================== warnings summary =============================== tests/server/test_listener_sni.py:71 tests/server/test_listener_sni.py:71: PytestDeprecationWarning: test_sni_proxy_flow_close_by_client is asynchronous and explicitly requests the "event_loop" fixture. Asynchronous fixtures and test functions should use "asyncio.get_running_loop()" instead. async def test_sni_proxy_flow_close_by_client( tests/server/test_peer.py:37 tests/server/test_peer.py:37: PytestDeprecationWarning: test_init_peer_multiplexer is asynchronous and explicitly requests the "event_loop" fixture. Asynchronous fixtures and test functions should use "asyncio.get_running_loop()" instead. async def test_init_peer_multiplexer( tests/server/test_peer.py:83 tests/server/test_peer.py:83: PytestDeprecationWarning: test_init_peer_multiplexer_crypto is asynchronous and explicitly requests the "event_loop" fixture. Asynchronous fixtures and test functions should use "asyncio.get_running_loop()" instead. async def test_init_peer_multiplexer_crypto( tests/server/test_peer.py:139 tests/server/test_peer.py:139: PytestDeprecationWarning: test_init_peer_wrong_challenge is asynchronous and explicitly requests the "event_loop" fixture. Asynchronous fixtures and test functions should use "asyncio.get_running_loop()" instead. async def test_init_peer_wrong_challenge( tests/server/test_peer.py:193 tests/server/test_peer.py:193: PytestDeprecationWarning: test_init_peer_multiplexer_throttling is asynchronous and explicitly requests the "event_loop" fixture. Asynchronous fixtures and test functions should use "asyncio.get_running_loop()" instead. async def test_init_peer_multiplexer_throttling( tests/server/test_run.py: 24 warnings tests/server/test_worker.py: 8 warnings /usr/lib/python3.13/multiprocessing/popen_fork.py:67: DeprecationWarning: This process (pid=3915428) is multi-threaded, use of fork() may lead to deadlocks in the child. self.pid = os.fork() tests/utils/test_server.py::test_fernet_token /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:85: PytestUnraisableExceptionWarning: Exception ignored in: Traceback (most recent call last): File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/snitun/multiplexer/core.py", line 166, in _runner await asyncio.wait( ...<2 lines>... ) GeneratorExit During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/reproducible-path/python-snitun-0.42.0/.pybuild/cpython3_3.13/build/snitun/multiplexer/core.py", line 211, in _runner to_peer.cancel() ~~~~~~~~~~~~~~^^ File "/usr/lib/python3.13/asyncio/base_events.py", line 827, in call_soon self._check_closed() ~~~~~~~~~~~~~~~~~~^^ File "/usr/lib/python3.13/asyncio/base_events.py", line 550, in _check_closed raise RuntimeError('Event loop is closed') RuntimeError: Event loop is closed warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/server/test_all.py::test_server_full - assert [] FAILED tests/server/test_run.py::test_snitun_single_runner - assert [] FAILED tests/server/test_run.py::test_snitun_single_runner_timeout - OSError:... FAILED tests/server/test_run.py::test_snitun_worker_runner[payloads1] - asser... FAILED tests/server/test_run.py::test_snitun_worker_runner[payloads2] - OSErr... FAILED tests/server/test_run.py::test_snitun_worker_runner[payloads3] - OSErr... FAILED tests/server/test_run.py::test_snitun_worker_timeout - OSError: [Errno... FAILED tests/server/test_run.py::test_snitun_worker_runner_invalid_payload - ... FAILED tests/server/test_run.py::test_snitun_worker_crash - OSError: [Errno 9... ================= 9 failed, 155 passed, 38 warnings in 40.64s ================== Sun May 24 10:50:54 UTC 2026 - pbuilder was killed by timeout after 18h.