Diff of the two buildlogs: -- --- b1/build.log 2025-09-14 12:10:15.471487967 +0000 +++ b2/build.log 2025-09-14 12:19:02.544123242 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Sep 13 23:58:07 -12 2025 -I: pbuilder-time-stamp: 1757851087 +I: Current time: Sun Oct 18 08:33:16 +14 2026 +I: pbuilder-time-stamp: 1792261996 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/forky-reproducible-base.tgz] I: copying local configuration @@ -27,53 +27,85 @@ dpkg-source: info: applying 0004-Remove-cython-dependency.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2134/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1294905/tmp/hooks/D01_modify_environment starting +debug: Running on ionos5-amd64. +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 Oct 17 18:33 /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/1294905/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1294905/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=40 ' - DISTRIBUTION='forky' - HOME='/root' - HOST_ARCH='amd64' + 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]="3" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.3.3(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' + DIRSTACK=() + DISTRIBUTION=forky + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='2891dead52b04fc1bb4e29f3873f525e' - 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='2134' - PS1='# ' - PS2='> ' + INVOCATION_ID=65f5850729cb488286d72793670cbd24 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-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=1294905 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.Ljm30Bwl/pbuilderrc_rpPL --distribution forky --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Ljm30Bwl/b1 --logfile b1/build.log onionshare_2.6.3-1.dsc' - SUDO_GID='111' - SUDO_HOME='/var/lib/jenkins' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + 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.Ljm30Bwl/pbuilderrc_kn1D --distribution forky --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/forky-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.Ljm30Bwl/b2 --logfile b2/build.log onionshare_2.6.3-1.dsc' + SUDO_GID=110 + SUDO_HOME=/var/lib/jenkins + SUDO_UID=105 + 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 ionos11-amd64 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.12.43+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.43-1 (2025-08-27) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Aug 10 12:30 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2134/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Aug 10 2025 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1294905/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -478,7 +510,7 @@ Get: 307 http://deb.debian.org/debian forky/main amd64 xauth amd64 1:1.1.2-1.1 [35.9 kB] Get: 308 http://deb.debian.org/debian forky/main amd64 xserver-common all 2:21.1.18-2 [2417 kB] Get: 309 http://deb.debian.org/debian forky/main amd64 xvfb amd64 2:21.1.18-2 [3204 kB] -Fetched 165 MB in 1min 1s (2704 kB/s) +Fetched 165 MB in 2s (71.3 MB/s) Preconfiguring packages ... Selecting previously unselected package libexpat1: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 ... 19917 files and directories currently installed.) @@ -1488,8 +1520,8 @@ Setting up tzdata (2025b-5) ... Current default time zone: 'Etc/UTC' -Local time is now: Sun Sep 14 12:04:15 UTC 2025. -Universal Time is now: Sun Sep 14 12:04:15 UTC 2025. +Local time is now: Sat Oct 17 18:35:39 UTC 2026. +Universal Time is now: Sat Oct 17 18:35:39 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libxcb-present0:amd64 (1.17.0-2+b1) ... @@ -1764,7 +1796,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/onionshare-2.6.3/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../onionshare_2.6.3-1_source.changes +I: user script /srv/workspace/pbuilder/1294905/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for forky +I: user script /srv/workspace/pbuilder/1294905/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/onionshare-2.6.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 > ../onionshare_2.6.3-1_source.changes dpkg-buildpackage: info: source package onionshare dpkg-buildpackage: info: source version 2.6.3-1 dpkg-buildpackage: info: source distribution unstable @@ -1844,7 +1880,7 @@ PySide6 6.8.2.1 -- Qt runtime 6.8.2 -- Qt compiled 6.8.2 rootdir: /build/reproducible-path/onionshare-2.6.3/.pybuild/cpython3_3.13_onionshare-cli/build/tests configfile: pytest.ini -plugins: qt-4.4.0, typeguard-4.4.4 +plugins: typeguard-4.4.4, qt-4.4.0 collected 252 items tests/test_cli.py ... [ 1%] @@ -1868,8 +1904,8 @@ language_code, encoding = locale.getdefaultlocale() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html -================= 245 passed, 7 skipped, 30 warnings in 0.63s ================== - rm -fr -- /tmp/dh-xdg-rundir-s7XhVXFD +================= 245 passed, 7 skipped, 30 warnings in 0.65s ================== + rm -fr -- /tmp/dh-xdg-rundir-BVdfChWh # Pybuild export http_proxy=http://127.0.0.1:9/, https_proxy=https://127.0.0.1:9/ # The tests are failing because of this pybuild give advice that if # network access is blocked by this, to export empty proxy variables. @@ -1880,26 +1916,1132 @@ PYBUILD_NAME=onionshare PYTHONPATH="/build/reproducible-path/onionshare-2.6.3/cli" pybuild \ --dir desktop \ --test --test-custom \ - --test-args="QT_QPA_PLATFORM=offscreen QT_DEBUG_PLUGINS=1 HOME=/tmp/tmp.3QVw8K1fJr http_proxy= https_proxy= xvfb-run python{version} -m pytest tests" -I: pybuild base:311: cd /build/reproducible-path/onionshare-2.6.3/.pybuild/cpython3_3.13_onionshare/build; QT_QPA_PLATFORM=offscreen QT_DEBUG_PLUGINS=1 HOME=/tmp/tmp.3QVw8K1fJr http_proxy= https_proxy= xvfb-run python3.13 -m pytest tests + --test-args="QT_QPA_PLATFORM=offscreen QT_DEBUG_PLUGINS=1 HOME=/tmp/tmp.07Xk7DpGNj http_proxy= https_proxy= xvfb-run python{version} -m pytest tests" +I: pybuild base:311: cd /build/reproducible-path/onionshare-2.6.3/.pybuild/cpython3_3.13_onionshare/build; QT_QPA_PLATFORM=offscreen QT_DEBUG_PLUGINS=1 HOME=/tmp/tmp.07Xk7DpGNj http_proxy= https_proxy= xvfb-run python3.13 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.3.5, pluggy-1.6.0 PySide6 6.8.2.1 -- Qt runtime 6.8.2 -- Qt compiled 6.8.2 rootdir: /build/reproducible-path/onionshare-2.6.3/.pybuild/cpython3_3.13_onionshare/build/tests configfile: pytest.ini -plugins: qt-4.4.0, typeguard-4.4.4 +plugins: typeguard-4.4.4, qt-4.4.0 collected 47 items tests/test_gui_chat.py .. [ 4%] tests/test_gui_receive.py ....... [ 19%] -tests/test_gui_share.py ................... [ 59%] -tests/test_gui_tabs.py ............... [ 91%] -tests/test_gui_website.py [Sep 14 2025 00:09:47] History.add: id: 1 -[Sep 14 2025 00:09:47] History.add: id: 2 -[Sep 14 2025 00:09:47] History.add: id: 3 -[Sep 14 2025 00:09:47] History.add: id: 4 -.... [100%] +tests/test_gui_share.py ..[Oct 18 2026 08:39:32] History.add: id: 0 +...........FFFFFF [ 59%] +tests/test_gui_tabs.py ..............F [ 91%] +tests/test_gui_website.py FFFF [100%] +=================================== FAILURES =================================== +________________________ TestShare.test_large_download _________________________ + +self = + + def test_large_download(self): + """ + Test a large download + """ + tab = self.new_share_tab() + + self.run_all_common_setup_tests() + self.run_all_share_mode_setup_tests(tab) + tab.get_mode().server_status.file_selection.file_list.add_file( + self.tmpfile_large + ) +> self.run_all_share_mode_started_tests(tab, startup_time=15000) + +tests/test_gui_share.py:429: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/test_gui_share.py:182: in run_all_share_mode_started_tests + self.server_is_started(tab, startup_time) +tests/gui_base_test.py:264: in server_is_started + self.assertEqual(tab.get_mode().server_status.status, 2) +E AssertionError: 1 != 2 +----------------------------- Captured Qt messages ----------------------------- +QtWarningMsg: This plugin does not support propagateSizeHints() +QtWarningMsg: QImage::scaleHeight: Image is a null image +QtWarningMsg: QImage::scaleHeight: Image is a null image +----------------------------- Captured stdout call ----------------------------- +[Oct 18 2026 08:40:54] Tab.share_mode_clicked +[Oct 18 2026 08:40:54] Web.__init__: is_gui=True, mode=share +[Oct 18 2026 08:40:54] Common.get_resource_path: filename=static, path=/build/reproducible-path/onionshare-2.6.3/cli/onionshare_cli/resources/static +[Oct 18 2026 08:40:54] Common.get_resource_path: filename=templates, path=/build/reproducible-path/onionshare-2.6.3/cli/onionshare_cli/resources/templates +[Oct 18 2026 08:40:54] Web.generate_static_url_path: new static_url_path is /static_v7zfbkfxhzaugqeeummxlyremu +[Oct 18 2026 08:40:54] ShareModeWeb.init +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = [] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ToggleHistory.toggle_clicked +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/large_file', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] ShareMode.update_primary_action +[Oct 18 2026 08:40:54] ServerStatus.update +[Oct 18 2026 08:40:54] Mode.start_server +[Oct 18 2026 08:40:54] Mode.start_server: Starting an onion thread +[Oct 18 2026 08:40:54] OnionThread.__init__ +[Oct 18 2026 08:40:54] WebThread.__init__ +[Oct 18 2026 08:40:54] ModeSettings.set: updating semester-scurvy-composure: share.filenames = ['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/large_file', '/tmp/tmpc233bapd/test.txt'] +[Oct 18 2026 08:40:54] OnionThread.run +[Oct 18 2026 08:40:54] OnionShare.start_onion_service +[Oct 18 2026 08:40:55] WebThread.run +[Oct 18 2026 08:40:55] Mode.start_server_step2[Oct 18 2026 08:40:55] Web.start: port=17647 + +[Oct 18 2026 08:40:55] CompressThread.__init__ +[Oct 18 2026 08:40:55] CompressThread.run +[Oct 18 2026 08:40:55] ShareModeWeb.init +[Oct 18 2026 08:40:55] ShareModeWeb.set_file_info_custom +[Oct 18 2026 08:40:55] ShareModeWeb.build_zipfile_list: filenames=['/tmp/tmpc233bapd/8d64ffb4.txt', '/tmp/tmpc233bapd/978c98f1.txt', '/tmp/tmpc233bapd/large_file', '/tmp/tmpc233bapd/test.txt'] +___________ TestShare.test_persistent_mode_and_autostart_can_be_set ____________ + +self = + + def test_persistent_mode_and_autostart_can_be_set(self): + """ + Test the persistent autostart on launch button can be clicked, + and that it is not visible when persistent mode is turned off + """ +> tab = self.new_share_tab() + +tests/test_gui_share.py:578: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/gui_base_test.py:96: in new_share_tab + self.verify_new_tab(tab) +tests/gui_base_test.py:88: in verify_new_tab + self.assertTrue(tab.new_tab.isVisible()) +E AssertionError: False is not true +__________________________ TestShare.test_public_mode __________________________ + +self = + + def test_public_mode(self): + """ + Public mode shouldn't have a password + """ +> tab = self.new_share_tab() + +tests/test_gui_share.py:364: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/gui_base_test.py:96: in new_share_tab + self.verify_new_tab(tab) +tests/gui_base_test.py:88: in verify_new_tab + self.assertTrue(tab.new_tab.isVisible()) +E AssertionError: False is not true +_______________ TestShare.test_remove_all_file_selection_button ________________ + +self = + + def test_remove_all_file_selection_button(self): + """ + Test remove all file items at once + """ +> tab = self.new_share_tab() + +tests/test_gui_share.py:353: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/gui_base_test.py:96: in new_share_tab + self.verify_new_tab(tab) +tests/gui_base_test.py:88: in verify_new_tab + self.assertTrue(tab.new_tab.isVisible()) +E AssertionError: False is not true +----------------------------- Captured Qt messages ----------------------------- +QtWarningMsg: QImage::scaleHeight: Image is a null image +----------------------------- Captured stdout call ----------------------------- +[Oct 18 2026 08:41:12] Mode.start_server_step3 +[Oct 18 2026 08:41:12] ServerStatus.update +[Oct 18 2026 08:41:12] Settings.load +________________________ TestShare.test_unreadable_file ________________________ + +self = + + def test_unreadable_file(self): + """ + Sharing an unreadable file should throw a warning + """ +> tab = self.new_share_tab() + +tests/test_gui_share.py:484: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/gui_base_test.py:96: in new_share_tab + self.verify_new_tab(tab) +tests/gui_base_test.py:88: in verify_new_tab + self.assertTrue(tab.new_tab.isVisible()) +E AssertionError: False is not true +___________________ TestShare.test_without_autostop_sharing ____________________ + +self = + + def test_without_autostop_sharing(self): + """ + Disable autostop sharing after first download + """ +> tab = self.new_share_tab() + +tests/test_gui_share.py:376: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/gui_base_test.py:96: in new_share_tab + self.verify_new_tab(tab) +tests/gui_base_test.py:88: in verify_new_tab + self.assertTrue(tab.new_tab.isVisible()) +E AssertionError: False is not true +--------------------------- Captured stdout teardown --------------------------- +[Oct 18 2026 08:41:15] MainWindow.closeEvent +[Oct 18 2026 08:41:15] MainWindow.closeEvent, opening warning dialog +[Oct 18 2026 08:41:15] MainWindow.cleanup +[Oct 18 2026 08:41:15] TabWidget.cleanup +[Oct 18 2026 08:41:15] Tab.cleanup: tab_id=14 +[Oct 18 2026 08:41:15] Web.stop: stopping server +[Oct 18 2026 08:41:15] Web.cleanup +[Oct 18 2026 08:41:15] Alert.__init__ +[Oct 18 2026 08:41:15] OnionCleanupThread.__init__ +[Oct 18 2026 08:41:15] OnionCleanupThread.run +[Oct 18 2026 08:41:15] Onion.cleanup +--------------------------- Captured stderr teardown --------------------------- +This plugin does not support propagateSizeHints() +This plugin does not support propagateSizeHints() +---------------------------- Captured log teardown ----------------------------- +WARNING waitress:wasyncore.py:449 unhandled close event +____________ TestTabs.test_15_quit_with_server_started_should_warn _____________ + +self = + + def test_15_quit_with_server_started_should_warn(self): + """Quitting OnionShare with any active servers should show a warning""" + tab = self.new_share_tab() + + # Start the server + self.assertEqual( + tab.get_mode().server_status.status, + tab.get_mode().server_status.STATUS_STOPPED, + ) + tab.get_mode().server_status.server_button.click() + self.assertEqual( + tab.get_mode().server_status.status, + tab.get_mode().server_status.STATUS_WORKING, + ) + QtTest.QTest.qWait(500, self.gui.qtapp) +> self.assertEqual( + tab.get_mode().server_status.status, + tab.get_mode().server_status.STATUS_STARTED, + ) +E AssertionError: 1 != 2 + +tests/test_gui_tabs.py:227: AssertionError +----------------------------- Captured Qt messages ----------------------------- +QtWarningMsg: This plugin does not support propagateSizeHints() +QtWarningMsg: QImage::scaleHeight: Image is a null image +QtWarningMsg: QImage::scaleHeight: Image is a null image +----------------------------- Captured stdout call ----------------------------- +[Oct 18 2026 08:41:42] Tab.share_mode_clicked +[Oct 18 2026 08:41:42] Web.__init__: is_gui=True, mode=share +[Oct 18 2026 08:41:42] Common.get_resource_path: filename=static, path=/build/reproducible-path/onionshare-2.6.3/cli/onionshare_cli/resources/static +[Oct 18 2026 08:41:42] Common.get_resource_path: filename=templates, path=/build/reproducible-path/onionshare-2.6.3/cli/onionshare_cli/resources/templates +[Oct 18 2026 08:41:42] Web.generate_static_url_path: new static_url_path is /static_tvzicqh5kn26tyjoesxwf2htyq +[Oct 18 2026 08:41:42] ShareModeWeb.init +[Oct 18 2026 08:41:42] ModeSettings.set: updating slacker-reword-freeing: share.filenames = [] +[Oct 18 2026 08:41:42] ServerStatus.update +[Oct 18 2026 08:41:42] ServerStatus.update +[Oct 18 2026 08:41:42] ShareMode.update_primary_action +[Oct 18 2026 08:41:42] ServerStatus.update +[Oct 18 2026 08:41:42] Mode.start_server +[Oct 18 2026 08:41:42] Mode.start_server: Starting an onion thread +[Oct 18 2026 08:41:42] OnionThread.__init__ +[Oct 18 2026 08:41:42] WebThread.__init__ +[Oct 18 2026 08:41:42] ModeSettings.set: updating slacker-reword-freeing: share.filenames = [] +[Oct 18 2026 08:41:42] OnionThread.run +[Oct 18 2026 08:41:42] OnionShare.start_onion_service +[Oct 18 2026 08:41:42] Mode.start_server_step2 +[Oct 18 2026 08:41:42] WebThread.run[Oct 18 2026 08:41:42] CompressThread.__init__ + +[Oct 18 2026 08:41:42] Web.start: port=17601 +[Oct 18 2026 08:41:42] CompressThread.run +[Oct 18 2026 08:41:42] ShareModeWeb.init +[Oct 18 2026 08:41:42] ShareModeWeb.set_file_info_custom +[Oct 18 2026 08:41:42] ShareModeWeb.build_zipfile_list: filenames=[] +--------------------------- Captured stdout teardown --------------------------- +[Oct 18 2026 08:41:42] MainWindow.closeEvent +[Oct 18 2026 08:41:42] MainWindow.closeEvent, opening warning dialog +[Oct 18 2026 08:41:42] Mode.start_server_step3 +[Oct 18 2026 08:41:42] ServerStatus.update +[Oct 18 2026 08:41:42] Settings.load +[Oct 18 2026 08:41:42] Settings.load: Trying to load /tmp/tmp.07Xk7DpGNj/.config/onionshare-testdata/onionshare.json +[Oct 18 2026 08:41:42] MainWindow.cleanup +[Oct 18 2026 08:41:43] TabWidget.cleanup +[Oct 18 2026 08:41:43] Tab.cleanup: tab_id=17 +[Oct 18 2026 08:41:43] Web.stop: stopping server +[Oct 18 2026 08:41:44] Web.cleanup +[Oct 18 2026 08:41:44] Alert.__init__ +[Oct 18 2026 08:41:44] OnionCleanupThread.__init__ +[Oct 18 2026 08:41:44] OnionCleanupThread.run +[Oct 18 2026 08:41:44] Onion.cleanup +--------------------------- Captured stderr teardown --------------------------- +This plugin does not support propagateSizeHints() +QImage::scaleHeight: Image is a null image +This plugin does not support propagateSizeHints() +---------------------------- Captured log teardown ----------------------------- +WARNING waitress:wasyncore.py:449 unhandled close event +____________ TestWebsite.test_405_page_returned_for_invalid_methods ____________ + +self = + + def _new_conn(self) -> socket.socket: + """Establish a socket connection and set nodelay settings on it. + + :return: New socket connection. + """ + try: +> sock = connection.create_connection( + (self._dns_host, self.port), + self.timeout, + source_address=self.source_address, + socket_options=self.socket_options, + ) + +/usr/lib/python3/dist-packages/urllib3/connection.py:198: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +/usr/lib/python3/dist-packages/urllib3/util/connection.py:85: in create_connection + raise err +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +address = ('127.0.0.1', 17617), timeout = None, source_address = None +socket_options = [(6, 1, 1)] + + def create_connection( + address: tuple[str, int], + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + source_address: tuple[str, int] | None = None, + socket_options: _TYPE_SOCKET_OPTIONS | None = None, + ) -> socket.socket: + """Connect to *address* and return the socket object. + + Convenience function. Connect to *address* (a 2-tuple ``(host, + port)``) and return the socket object. Passing the optional + *timeout* parameter will set the timeout on the socket instance + before attempting to connect. If no *timeout* is supplied, the + global default timeout setting returned by :func:`socket.getdefaulttimeout` + is used. If *source_address* is set it must be a tuple of (host, port) + for the socket to bind as a source address before making the connection. + An host of '' or port 0 tells the OS to use the default. + """ + + host, port = address + if host.startswith("["): + host = host.strip("[]") + err = None + + # Using the value from allowed_gai_family() in the context of getaddrinfo lets + # us select whether to work with IPv4 DNS records, IPv6 records, or both. + # The original create_connection function always returns all records. + family = allowed_gai_family() + + try: + host.encode("idna") + except UnicodeError: + raise LocationParseError(f"'{host}', label empty or too long") from None + + for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): + af, socktype, proto, canonname, sa = res + sock = None + try: + sock = socket.socket(af, socktype, proto) + + # If provided, set socket level options before connecting. + _set_socket_options(sock, socket_options) + + if timeout is not _DEFAULT_TIMEOUT: + sock.settimeout(timeout) + if source_address: + sock.bind(source_address) +> sock.connect(sa) +E ConnectionRefusedError: [Errno 111] Connection refused + +/usr/lib/python3/dist-packages/urllib3/util/connection.py:73: ConnectionRefusedError + +The above exception was the direct cause of the following exception: + +self = +method = 'GET', url = '/', body = None +headers = {'User-Agent': 'python-requests/2.32.5', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'} +retries = Retry(total=0, connect=None, read=False, redirect=None, status=None) +redirect = False, assert_same_host = False +timeout = Timeout(connect=None, read=None, total=None), pool_timeout = None +release_conn = False, chunked = False, body_pos = None, preload_content = False +decode_content = False, response_kw = {} +parsed_url = Url(scheme=None, auth=None, host=None, port=None, path='/', query=None, fragment=None) +destination_scheme = None, conn = None, release_this_conn = True +http_tunnel_required = False, err = None, clean_exit = False + + def urlopen( # type: ignore[override] + self, + method: str, + url: str, + body: _TYPE_BODY | None = None, + headers: typing.Mapping[str, str] | None = None, + retries: Retry | bool | int | None = None, + redirect: bool = True, + assert_same_host: bool = True, + timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT, + pool_timeout: int | None = None, + release_conn: bool | None = None, + chunked: bool = False, + body_pos: _TYPE_BODY_POSITION | None = None, + preload_content: bool = True, + decode_content: bool = True, + **response_kw: typing.Any, + ) -> BaseHTTPResponse: + """ + Get a connection from the pool and perform an HTTP request. This is the + lowest level call for making a request, so you'll need to specify all + the raw details. + + .. note:: + + More commonly, it's appropriate to use a convenience method + such as :meth:`request`. + + .. note:: + + `release_conn` will only behave as expected if + `preload_content=False` because we want to make + `preload_content=False` the default behaviour someday soon without + breaking backwards compatibility. + + :param method: + HTTP request method (such as GET, POST, PUT, etc.) + + :param url: + The URL to perform the request on. + + :param body: + Data to send in the request body, either :class:`str`, :class:`bytes`, + an iterable of :class:`str`/:class:`bytes`, or a file-like object. + + :param headers: + Dictionary of custom headers to send, such as User-Agent, + If-None-Match, etc. If None, pool headers are used. If provided, + these headers completely replace any pool-specific headers. + + :param retries: + Configure the number of retries to allow before raising a + :class:`~urllib3.exceptions.MaxRetryError` exception. + + If ``None`` (default) will retry 3 times, see ``Retry.DEFAULT``. Pass a + :class:`~urllib3.util.retry.Retry` object for fine-grained control + over different types of retries. + Pass an integer number to retry connection errors that many times, + but no other types of errors. Pass zero to never retry. + + If ``False``, then retries are disabled and any exception is raised + immediately. Also, instead of raising a MaxRetryError on redirects, + the redirect response will be returned. + + :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. + + :param redirect: + If True, automatically handle redirects (status codes 301, 302, + 303, 307, 308). Each redirect counts as a retry. Disabling retries + will disable redirect, too. + + :param assert_same_host: + If ``True``, will make sure that the host of the pool requests is + consistent else will raise HostChangedError. When ``False``, you can + use the pool on an HTTP proxy and request foreign hosts. + + :param timeout: + If specified, overrides the default timeout for this one + request. It may be a float (in seconds) or an instance of + :class:`urllib3.util.Timeout`. + + :param pool_timeout: + If set and the pool is set to block=True, then this method will + block for ``pool_timeout`` seconds and raise EmptyPoolError if no + connection is available within the time period. + + :param bool preload_content: + If True, the response's body will be preloaded into memory. + + :param bool decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + + :param release_conn: + If False, then the urlopen call will not release the connection + back into the pool once a response is received (but will release if + you read the entire contents of the response such as when + `preload_content=True`). This is useful if you're not preloading + the response's content immediately. You will need to call + ``r.release_conn()`` on the response ``r`` to return the connection + back into the pool. If None, it takes the value of ``preload_content`` + which defaults to ``True``. + + :param bool chunked: + If True, urllib3 will send the body using chunked transfer + encoding. Otherwise, urllib3 will send the body using the standard + content-length form. Defaults to False. + + :param int body_pos: + Position to seek to in file-like body in the event of a retry or + redirect. Typically this won't need to be set because urllib3 will + auto-populate the value when needed. + """ + parsed_url = parse_url(url) + destination_scheme = parsed_url.scheme + + if headers is None: + headers = self.headers + + if not isinstance(retries, Retry): + retries = Retry.from_int(retries, redirect=redirect, default=self.retries) + + if release_conn is None: + release_conn = preload_content + + # Check host + if assert_same_host and not self.is_same_host(url): + raise HostChangedError(self, url, retries) + + # Ensure that the URL we're connecting to is properly encoded + if url.startswith("/"): + url = to_str(_encode_target(url)) + else: + url = to_str(parsed_url.url) + + conn = None + + # Track whether `conn` needs to be released before + # returning/raising/recursing. Update this variable if necessary, and + # leave `release_conn` constant throughout the function. That way, if + # the function recurses, the original value of `release_conn` will be + # passed down into the recursive call, and its value will be respected. + # + # See issue #651 [1] for details. + # + # [1] + release_this_conn = release_conn + + http_tunnel_required = connection_requires_http_tunnel( + self.proxy, self.proxy_config, destination_scheme + ) + + # Merge the proxy headers. Only done when not using HTTP CONNECT. We + # have to copy the headers dict so we can safely change it without those + # changes being reflected in anyone else's copy. + if not http_tunnel_required: + headers = headers.copy() # type: ignore[attr-defined] + headers.update(self.proxy_headers) # type: ignore[union-attr] + + # Must keep the exception bound to a separate variable or else Python 3 + # complains about UnboundLocalError. + err = None + + # Keep track of whether we cleanly exited the except block. This + # ensures we do proper cleanup in finally. + clean_exit = False + + # Rewind body position, if needed. Record current position + # for future rewinds in the event of a redirect/retry. + body_pos = set_file_position(body, body_pos) + + try: + # Request a connection from the queue. + timeout_obj = self._get_timeout(timeout) + conn = self._get_conn(timeout=pool_timeout) + + conn.timeout = timeout_obj.connect_timeout # type: ignore[assignment] + + # Is this a closed/new connection that requires CONNECT tunnelling? + if self.proxy is not None and http_tunnel_required and conn.is_closed: + try: + self._prepare_proxy(conn) + except (BaseSSLError, OSError, SocketTimeout) as e: + self._raise_timeout( + err=e, url=self.proxy.url, timeout_value=conn.timeout + ) + raise + + # If we're going to release the connection in ``finally:``, then + # the response doesn't need to know about the connection. Otherwise + # it will also try to release it and we'll have a double-release + # mess. + response_conn = conn if not release_conn else None + + # Make the request on the HTTPConnection object +> response = self._make_request( + conn, + method, + url, + timeout=timeout_obj, + body=body, + headers=headers, + chunked=chunked, + retries=retries, + response_conn=response_conn, + preload_content=preload_content, + decode_content=decode_content, + **response_kw, + ) + +/usr/lib/python3/dist-packages/urllib3/connectionpool.py:787: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +/usr/lib/python3/dist-packages/urllib3/connectionpool.py:493: in _make_request + conn.request( +/usr/lib/python3/dist-packages/urllib3/connection.py:494: in request + self.endheaders() +/usr/lib/python3.13/http/client.py:1333: in endheaders + self._send_output(message_body, encode_chunked=encode_chunked) +/usr/lib/python3.13/http/client.py:1093: in _send_output + self.send(msg) +/usr/lib/python3.13/http/client.py:1037: in send + self.connect() +/usr/lib/python3/dist-packages/urllib3/connection.py:325: in connect + self.sock = self._new_conn() +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +self = + + def _new_conn(self) -> socket.socket: + """Establish a socket connection and set nodelay settings on it. + + :return: New socket connection. + """ + try: + sock = connection.create_connection( + (self._dns_host, self.port), + self.timeout, + source_address=self.source_address, + socket_options=self.socket_options, + ) + except socket.gaierror as e: + raise NameResolutionError(self.host, self, e) from e + except SocketTimeout as e: + raise ConnectTimeoutError( + self, + f"Connection to {self.host} timed out. (connect timeout={self.timeout})", + ) from e + + except OSError as e: +> raise NewConnectionError( + self, f"Failed to establish a new connection: {e}" + ) from e +E urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [Errno 111] Connection refused + +/usr/lib/python3/dist-packages/urllib3/connection.py:213: NewConnectionError + +The above exception was the direct cause of the following exception: + +self = +request = , stream = False +timeout = Timeout(connect=None, read=None, total=None), verify = True +cert = None, proxies = OrderedDict({'no': 'localhost'}) + + def send( + self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None + ): + """Sends PreparedRequest object. Returns Response object. + + :param request: The :class:`PreparedRequest ` being sent. + :param stream: (optional) Whether to stream the request content. + :param timeout: (optional) How long to wait for the server to send + data before giving up, as a float, or a :ref:`(connect timeout, + read timeout) ` tuple. + :type timeout: float or tuple or urllib3 Timeout object + :param verify: (optional) Either a boolean, in which case it controls whether + we verify the server's TLS certificate, or a string, in which case it + must be a path to a CA bundle to use + :param cert: (optional) Any user-provided SSL certificate to be trusted. + :param proxies: (optional) The proxies dictionary to apply to the request. + :rtype: requests.Response + """ + + try: + conn = self.get_connection_with_tls_context( + request, verify, proxies=proxies, cert=cert + ) + except LocationValueError as e: + raise InvalidURL(e, request=request) + + self.cert_verify(conn, request.url, verify, cert) + url = self.request_url(request, proxies) + self.add_headers( + request, + stream=stream, + timeout=timeout, + verify=verify, + cert=cert, + proxies=proxies, + ) + + chunked = not (request.body is None or "Content-Length" in request.headers) + + if isinstance(timeout, tuple): + try: + connect, read = timeout + timeout = TimeoutSauce(connect=connect, read=read) + except ValueError: + raise ValueError( + f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " + f"or a single float to set both timeouts to the same value." + ) + elif isinstance(timeout, TimeoutSauce): + pass + else: + timeout = TimeoutSauce(connect=timeout, read=timeout) + + try: +> resp = conn.urlopen( + method=request.method, + url=url, + body=request.body, + headers=request.headers, + redirect=False, + assert_same_host=False, + preload_content=False, + decode_content=False, + retries=self.max_retries, + timeout=timeout, + chunked=chunked, + ) + +/usr/lib/python3/dist-packages/requests/adapters.py:644: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +/usr/lib/python3/dist-packages/urllib3/connectionpool.py:841: in urlopen + retries = retries.increment( +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +self = Retry(total=0, connect=None, read=False, redirect=None, status=None) +method = 'GET', url = '/', response = None +error = NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused') +_pool = +_stacktrace = + + def increment( + self, + method: str | None = None, + url: str | None = None, + response: BaseHTTPResponse | None = None, + error: Exception | None = None, + _pool: ConnectionPool | None = None, + _stacktrace: TracebackType | None = None, + ) -> Self: + """Return a new Retry object with incremented retry counters. + + :param response: A response object, or None, if the server did not + return a response. + :type response: :class:`~urllib3.response.BaseHTTPResponse` + :param Exception error: An error encountered during the request, or + None if the response was received successfully. + + :return: A new ``Retry`` object. + """ + if self.total is False and error: + # Disabled, indicate to re-raise the error. + raise reraise(type(error), error, _stacktrace) + + total = self.total + if total is not None: + total -= 1 + + connect = self.connect + read = self.read + redirect = self.redirect + status_count = self.status + other = self.other + cause = "unknown" + status = None + redirect_location = None + + if error and self._is_connection_error(error): + # Connect retry? + if connect is False: + raise reraise(type(error), error, _stacktrace) + elif connect is not None: + connect -= 1 + + elif error and self._is_read_error(error): + # Read retry? + if read is False or method is None or not self._is_method_retryable(method): + raise reraise(type(error), error, _stacktrace) + elif read is not None: + read -= 1 + + elif error: + # Other retry? + if other is not None: + other -= 1 + + elif response and response.get_redirect_location(): + # Redirect retry? + if redirect is not None: + redirect -= 1 + cause = "too many redirects" + response_redirect_location = response.get_redirect_location() + if response_redirect_location: + redirect_location = response_redirect_location + status = response.status + + else: + # Incrementing because of a server error like a 500 in + # status_forcelist and the given method is in the allowed_methods + cause = ResponseError.GENERIC_ERROR + if response and response.status: + if status_count is not None: + status_count -= 1 + cause = ResponseError.SPECIFIC_ERROR.format(status_code=response.status) + status = response.status + + history = self.history + ( + RequestHistory(method, url, error, status, redirect_location), + ) + + new_retry = self.new( + total=total, + connect=connect, + read=read, + redirect=redirect, + status=status_count, + other=other, + history=history, + ) + + if new_retry.is_exhausted(): + reason = error or ResponseError(cause) +> raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type] +E urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=17617): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) + +/usr/lib/python3/dist-packages/urllib3/util/retry.py:519: MaxRetryError + +During handling of the above exception, another exception occurred: + +self = +tab = + + def web_server_is_running(self, tab): + """Test that the web server has started""" + try: +> requests.get(f"http://127.0.0.1:{tab.app.port}/") + +tests/gui_base_test.py:269: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +/usr/lib/python3/dist-packages/requests/api.py:73: in get + return request("get", url, params=params, **kwargs) +/usr/lib/python3/dist-packages/requests/api.py:59: in request + return session.request(method=method, url=url, **kwargs) +/usr/lib/python3/dist-packages/requests/sessions.py:589: in request + resp = self.send(prep, **send_kwargs) +/usr/lib/python3/dist-packages/requests/sessions.py:703: in send + r = adapter.send(request, **kwargs) +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +self = +request = , stream = False +timeout = Timeout(connect=None, read=None, total=None), verify = True +cert = None, proxies = OrderedDict({'no': 'localhost'}) + + def send( + self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None + ): + """Sends PreparedRequest object. Returns Response object. + + :param request: The :class:`PreparedRequest ` being sent. + :param stream: (optional) Whether to stream the request content. + :param timeout: (optional) How long to wait for the server to send + data before giving up, as a float, or a :ref:`(connect timeout, + read timeout) ` tuple. + :type timeout: float or tuple or urllib3 Timeout object + :param verify: (optional) Either a boolean, in which case it controls whether + we verify the server's TLS certificate, or a string, in which case it + must be a path to a CA bundle to use + :param cert: (optional) Any user-provided SSL certificate to be trusted. + :param proxies: (optional) The proxies dictionary to apply to the request. + :rtype: requests.Response + """ + + try: + conn = self.get_connection_with_tls_context( + request, verify, proxies=proxies, cert=cert + ) + except LocationValueError as e: + raise InvalidURL(e, request=request) + + self.cert_verify(conn, request.url, verify, cert) + url = self.request_url(request, proxies) + self.add_headers( + request, + stream=stream, + timeout=timeout, + verify=verify, + cert=cert, + proxies=proxies, + ) + + chunked = not (request.body is None or "Content-Length" in request.headers) + + if isinstance(timeout, tuple): + try: + connect, read = timeout + timeout = TimeoutSauce(connect=connect, read=read) + except ValueError: + raise ValueError( + f"Invalid timeout {timeout}. Pass a (connect, read) timeout tuple, " + f"or a single float to set both timeouts to the same value." + ) + elif isinstance(timeout, TimeoutSauce): + pass + else: + timeout = TimeoutSauce(connect=timeout, read=timeout) + + try: + resp = conn.urlopen( + method=request.method, + url=url, + body=request.body, + headers=request.headers, + redirect=False, + assert_same_host=False, + preload_content=False, + decode_content=False, + retries=self.max_retries, + timeout=timeout, + chunked=chunked, + ) + + except (ProtocolError, OSError) as err: + raise ConnectionError(err, request=request) + + except MaxRetryError as e: + if isinstance(e.reason, ConnectTimeoutError): + # TODO: Remove this in 3.0.0: see #2811 + if not isinstance(e.reason, NewConnectionError): + raise ConnectTimeout(e, request=request) + + if isinstance(e.reason, ResponseError): + raise RetryError(e, request=request) + + if isinstance(e.reason, _ProxyError): + raise ProxyError(e, request=request) + + if isinstance(e.reason, _SSLError): + # This branch is for urllib3 v1.22 and later. + raise SSLError(e, request=request) + +> raise ConnectionError(e, request=request) +E requests.exceptions.ConnectionError: HTTPConnectionPool(host='127.0.0.1', port=17617): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused')) + +/usr/lib/python3/dist-packages/requests/adapters.py:677: ConnectionError + +During handling of the above exception, another exception occurred: + +self = + + def test_405_page_returned_for_invalid_methods(self): + """ + Our custom 405 page should return for invalid methods + """ + tab = self.new_website_tab() + + tab.get_mode().mode_settings_widget.public_checkbox.click() + + self.run_all_common_setup_tests() + self.run_all_website_mode_setup_tests(tab) +> self.run_all_website_mode_started_tests(tab) + +tests/test_gui_website.py:113: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/test_gui_website.py:49: in run_all_website_mode_started_tests + self.web_server_is_running(tab) +tests/gui_base_test.py:272: in web_server_is_running + self.assertTrue(False) +E AssertionError: False is not true +----------------------------- Captured Qt messages ----------------------------- +QtWarningMsg: QObject::connect: No such signal QPlatformNativeInterface::systemTrayWindowChanged(QScreen*) +QtWarningMsg: This plugin does not support propagateSizeHints() +QtWarningMsg: QImage::scaleHeight: Image is a null image +QtWarningMsg: This plugin does not support propagateSizeHints() +QtWarningMsg: QImage::scaleHeight: Image is a null image +QtWarningMsg: QImage::scaleHeight: Image is a null image +QtWarningMsg: QImage::scaleHeight: Image is a null image +---------------------------- Captured stdout setup ----------------------------- +[Oct 18 2026 08:41:45] Settings.__init__ +[Oct 18 2026 08:41:45] Settings.load +[Oct 18 2026 08:41:45] Onion.__init__ +[Oct 18 2026 08:41:45] GuiCommon.get_tor_paths: using paths from PATH +[Oct 18 2026 08:41:45] Meek.__init__ +[Oct 18 2026 08:41:45] GuiCommon.get_tor_paths: using paths from PATH +[Oct 18 2026 08:41:45] MainWindow.__init__ +[Oct 18 2026 08:41:45] TabWidget.__init__ +[Oct 18 2026 08:41:45] EventHandlerThread.__init__ +[Oct 18 2026 08:41:45] TabWidget.add_tab: mode_settings: None +[Oct 18 2026 08:41:45] Tab.__init__ +[Oct 18 2026 08:41:45] OnionShare.__init__ +[Oct 18 2026 08:41:45] EventHandlerThread.run +[Oct 18 2026 08:41:45] TabWidget.tab_changed: Tab was changed to 0 +[Oct 18 2026 08:41:45] Common.get_resource_path: filename=wordlist.txt, path=/build/reproducible-path/onionshare-2.6.3/cli/onionshare_cli/resources/wordlist.txt +[Oct 18 2026 08:41:45] ModeSettings.load: creating /tmp/tmp.07Xk7DpGNj/.config/onionshare-testdata/persistent/proved-untrimmed-rebirth.json +[Oct 18 2026 08:41:45] TabWidget.change_persistent: tab_id: 0, is_persistent: False +[Oct 18 2026 08:41:45] MainWindow.bring_to_front +[Oct 18 2026 08:41:45] TabWidget.check_autoconnect: Tab to check autoconnect: 0 +----------------------------- Captured stdout call ----------------------------- +[Oct 18 2026 08:41:47] Tab.website_mode_clicked +[Oct 18 2026 08:41:48] Web.__init__: is_gui=True, mode=website +[Oct 18 2026 08:41:48] Common.get_resource_path: filename=static, path=/build/reproducible-path/onionshare-2.6.3/cli/onionshare_cli/resources/static +[Oct 18 2026 08:41:48] Common.get_resource_path: filename=templates, path=/build/reproducible-path/onionshare-2.6.3/cli/onionshare_cli/resources/templates +[Oct 18 2026 08:41:48] Web.generate_static_url_path: new static_url_path is /static_s4jwbci42qm4vu3ygawwjyjvde +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = [] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: general.public = True +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/f77af309.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/2693a2e2.txt', '/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/f77af309.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/2693a2e2.txt', '/tmp/tmp_lobfu5m/990e4d58.txt', '/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/f77af309.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/2693a2e2.txt', '/tmp/tmp_lobfu5m/282a911f.txt', '/tmp/tmp_lobfu5m/990e4d58.txt', '/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/f77af309.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/2693a2e2.txt', '/tmp/tmp_lobfu5m/282a911f.txt', '/tmp/tmp_lobfu5m/990e4d58.txt', '/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/ed8f3e7c.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/f77af309.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/1d0c8f80.txt', '/tmp/tmp_lobfu5m/2693a2e2.txt', '/tmp/tmp_lobfu5m/282a911f.txt', '/tmp/tmp_lobfu5m/990e4d58.txt', '/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/ed8f3e7c.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/f77af309.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/1d0c8f80.txt', '/tmp/tmp_lobfu5m/2693a2e2.txt', '/tmp/tmp_lobfu5m/282a911f.txt', '/tmp/tmp_lobfu5m/4b774de6.txt', '/tmp/tmp_lobfu5m/990e4d58.txt', '/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/ed8f3e7c.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/f77af309.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] WebsiteMode.update_primary_action +[Oct 18 2026 08:41:48] ToggleHistory.toggle_clicked +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] Mode.start_server +[Oct 18 2026 08:41:48] Mode.start_server: Starting an onion thread +[Oct 18 2026 08:41:48] OnionThread.__init__ +[Oct 18 2026 08:41:48] WebThread.__init__ +[Oct 18 2026 08:41:48] ModeSettings.set: updating proved-untrimmed-rebirth: website.filenames = ['/tmp/tmp_lobfu5m/1d0c8f80.txt', '/tmp/tmp_lobfu5m/2693a2e2.txt', '/tmp/tmp_lobfu5m/282a911f.txt', '/tmp/tmp_lobfu5m/4b774de6.txt', '/tmp/tmp_lobfu5m/990e4d58.txt', '/tmp/tmp_lobfu5m/cc1c5ca3.txt', '/tmp/tmp_lobfu5m/ceb96dbb.txt', '/tmp/tmp_lobfu5m/ed8f3e7c.txt', '/tmp/tmp_lobfu5m/f2ab0c07.txt', '/tmp/tmp_lobfu5m/f77af309.txt', '/tmp/tmp_lobfu5m/index.html'] +[Oct 18 2026 08:41:48] OnionThread.run +[Oct 18 2026 08:41:48] OnionShare.start_onion_service +[Oct 18 2026 08:41:48] Mode.start_server_step2 +[Oct 18 2026 08:41:48] Mode.start_server_step3 +[Oct 18 2026 08:41:48] WebThread.run[Oct 18 2026 08:41:48] WebsiteModeWeb.set_file_info_custom +[Oct 18 2026 08:41:48] Web.start: port=17617 + +[Oct 18 2026 08:41:48] ServerStatus.update +[Oct 18 2026 08:41:48] Settings.load +_________________________ TestWebsite.test_csp_custom __________________________ + +self = + + def test_csp_custom(self): + """ + Test a custom CSP + """ +> tab = self.new_website_tab() + +tests/test_gui_website.py:96: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/gui_base_test.py:127: in new_website_tab + self.verify_new_tab(tab) +tests/gui_base_test.py:88: in verify_new_tab + self.assertTrue(tab.new_tab.isVisible()) +E AssertionError: False is not true +________________________ TestWebsite.test_csp_disabled _________________________ + +self = + + def test_csp_disabled(self): + """ + Test disabling CSP + """ +> tab = self.new_website_tab() + +tests/test_gui_website.py:86: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/gui_base_test.py:127: in new_website_tab + self.verify_new_tab(tab) +tests/gui_base_test.py:88: in verify_new_tab + self.assertTrue(tab.new_tab.isVisible()) +E AssertionError: False is not true +___________________________ TestWebsite.test_website ___________________________ + +self = + + def test_website(self): + """ + Test website mode + """ +> tab = self.new_website_tab() + +tests/test_gui_website.py:78: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +tests/gui_base_test.py:127: in new_website_tab + self.verify_new_tab(tab) +tests/gui_base_test.py:88: in verify_new_tab + self.assertTrue(tab.new_tab.isVisible()) +E AssertionError: False is not true +--------------------------- Captured stdout teardown --------------------------- +[Oct 18 2026 08:41:51] MainWindow.closeEvent +[Oct 18 2026 08:41:51] MainWindow.closeEvent, opening warning dialog +[Oct 18 2026 08:41:52] MainWindow.cleanup +[Oct 18 2026 08:41:52] TabWidget.cleanup +[Oct 18 2026 08:41:52] Tab.cleanup: tab_id=0 +[Oct 18 2026 08:41:52] Web.stop: stopping server +[Oct 18 2026 08:41:52] Web.cleanup +[Oct 18 2026 08:41:52] Alert.__init__ +[Oct 18 2026 08:41:52] OnionCleanupThread.__init__ +[Oct 18 2026 08:41:52] OnionCleanupThread.run +[Oct 18 2026 08:41:52] Onion.cleanup +--------------------------- Captured stderr teardown --------------------------- +This plugin does not support propagateSizeHints() +This plugin does not support propagateSizeHints() +---------------------------- Captured log teardown ----------------------------- +WARNING waitress:wasyncore.py:449 unhandled close event =============================== warnings summary =============================== ../../../cli/onionshare_cli/web/web.py:30 ../../../cli/onionshare_cli/web/web.py:30 @@ -1921,570 +3063,40 @@ self.setDaemon(True) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html -================= 47 passed, 10 warnings in 287.09s (0:04:47) ================== +=========================== short test summary info ============================ +FAILED tests/test_gui_share.py::TestShare::test_large_download - AssertionErr... +FAILED tests/test_gui_share.py::TestShare::test_persistent_mode_and_autostart_can_be_set +FAILED tests/test_gui_share.py::TestShare::test_public_mode - AssertionError:... +FAILED tests/test_gui_share.py::TestShare::test_remove_all_file_selection_button +FAILED tests/test_gui_share.py::TestShare::test_unreadable_file - AssertionEr... +FAILED tests/test_gui_share.py::TestShare::test_without_autostop_sharing - As... +FAILED tests/test_gui_tabs.py::TestTabs::test_15_quit_with_server_started_should_warn +FAILED tests/test_gui_website.py::TestWebsite::test_405_page_returned_for_invalid_methods +FAILED tests/test_gui_website.py::TestWebsite::test_csp_custom - AssertionErr... +FAILED tests/test_gui_website.py::TestWebsite::test_csp_disabled - AssertionE... +FAILED tests/test_gui_website.py::TestWebsite::test_website - AssertionError:... +============ 11 failed, 36 passed, 10 warnings in 279.61s (0:04:39) ============ "/usr/lib/x86_64-linux-gnu/qt6/plugins/imageformats/libqgif.so" unloaded library "/usr/lib/x86_64-linux-gnu/qt6/plugins/imageformats/libqico.so" unloaded library "/usr/lib/x86_64-linux-gnu/qt6/plugins/imageformats/libqjpeg.so" unloaded library "/usr/lib/x86_64-linux-gnu/qt6/plugins/platforms/libqoffscreen.so" unloaded library -rm -rf /tmp/tmp.3QVw8K1fJr -make[1]: Leaving directory '/build/reproducible-path/onionshare-2.6.3' - create-stamp debian/debhelper-build-stamp - dh_testroot -O--buildsystem=pybuild - dh_prep -O--buildsystem=pybuild - rm -f -- debian/onionshare.substvars debian/onionshare-cli.substvars - rm -fr -- debian/.debhelper/generated/onionshare/ debian/onionshare/ debian/tmp/ debian/.debhelper/generated/onionshare-cli/ debian/onionshare-cli/ - rm -f debian/onionshare-cli.debhelper.log debian/onionshare.debhelper.log - debian/rules override_dh_auto_install -make[1]: Entering directory '/build/reproducible-path/onionshare-2.6.3' -PYBUILD_NAME=onionshare-cli dh_auto_install --buildsystem=pybuild --destdir=debian/onionshare-cli --sourcedirectory cli - install -m0755 -d /build/reproducible-path/onionshare-2.6.3/debian/onionshare-cli - pybuild --install -i python{version} -p 3.13 --dir cli --dest-dir=/build/reproducible-path/onionshare-2.6.3/debian/onionshare-cli -I: pybuild plugin_pyproject:178: Copying package built for python3.13 to destdir -PYBUILD_NAME=onionshare dh_auto_install --buildsystem=pybuild --destdir=debian/onionshare --sourcedirectory desktop - install -m0755 -d /build/reproducible-path/onionshare-2.6.3/debian/onionshare - pybuild --install -i python{version} -p 3.13 --dir desktop --dest-dir=/build/reproducible-path/onionshare-2.6.3/debian/onionshare -I: pybuild plugin_pyproject:178: Copying package built for python3.13 to destdir +E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/onionshare-2.6.3/.pybuild/cpython3_3.13_onionshare/build; QT_QPA_PLATFORM=offscreen QT_DEBUG_PLUGINS=1 HOME=/tmp/tmp.07Xk7DpGNj http_proxy= https_proxy= xvfb-run python{version} -m pytest tests +make[1]: *** [debian/rules:62: override_dh_auto_test] Error 13 make[1]: Leaving directory '/build/reproducible-path/onionshare-2.6.3' - rm -f debian/onionshare-cli.debhelper.log debian/onionshare.debhelper.log - debian/rules execute_after_dh_auto_install -make[1]: Entering directory '/build/reproducible-path/onionshare-2.6.3' -mkdir -p debian/onionshare/usr/share/metainfo -cp desktop/org.onionshare.OnionShare.appdata.xml debian/onionshare/usr/share/metainfo/ -mkdir -p debian/onionshare/usr/share/applications -cp desktop/org.onionshare.OnionShare.desktop debian/onionshare/usr/share/applications/ -mv debian/onionshare/usr/lib/python3*/dist-packages/onionshare/resources debian/onionshare/usr/share/onionshare -# Move icons to the places where they are searched -mkdir -p debian/onionshare/usr/share/icons/hicolor/scalable/apps -cp desktop/org.onionshare.OnionShare.svg debian/onionshare/usr/share/icons/hicolor/scalable/apps/ -mkdir debian/onionshare/usr/share/icons/hicolor/16x16; mv debian/onionshare/usr/share/onionshare/onionshare-16.png debian/onionshare/usr/share/icons/hicolor/16x16/org.onionshare.OnionShare.png; ln -s /usr/share/icons/hicolor/16x16/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-16.png; mkdir debian/onionshare/usr/share/icons/hicolor/32x32; mv debian/onionshare/usr/share/onionshare/onionshare-32.png debian/onionshare/usr/share/icons/hicolor/32x32/org.onionshare.OnionShare.png; ln -s /usr/share/icons/hicolor/32x32/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-32.png; mkdir debian/onionshare/usr/share/icons/hicolor/64x64; mv debian/onionshare/usr/share/onionshare/onionshare-64.png debian/onionshare/usr/share/icons/hicolor/64x64/org.onionshare.OnionShare.png; ln -s /usr/share/icons/hicolor/64x64/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-64.png; mkdir debian/onionshare/usr/share/icons/hicolor/128x128; mv debian/onionshare/usr/share/onionshare/onionshare-128.png debian/onionshare/usr/share/icons/hicolor/128x128/org.onionshare.OnionShare.png; ln -s /usr/share/icons/hicolor/128x128/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-128.png; mkdir debian/onionshare/usr/share/icons/hicolor/256x256; mv debian/onionshare/usr/share/onionshare/onionshare-256.png debian/onionshare/usr/share/icons/hicolor/256x256/org.onionshare.OnionShare.png; ln -s /usr/share/icons/hicolor/256x256/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-256.png; mkdir debian/onionshare/usr/share/icons/hicolor/512x512; mv debian/onionshare/usr/share/onionshare/onionshare-512.png debian/onionshare/usr/share/icons/hicolor/512x512/org.onionshare.OnionShare.png; ln -s /usr/share/icons/hicolor/512x512/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-512.png; true -mkdir -p debian/onionshare-cli/usr/share -mv debian/onionshare-cli/usr/lib/python3*/dist-packages/onionshare_cli/resources debian/onionshare-cli/usr/share/onionshare-cli -make[1]: Leaving directory '/build/reproducible-path/onionshare-2.6.3' - dh_installdocs -O--buildsystem=pybuild - install -m0755 -d debian/onionshare/usr/share/doc/onionshare - install -p -m0644 debian/copyright debian/onionshare/usr/share/doc/onionshare/copyright - install -m0755 -d debian/onionshare-cli/usr/share/doc/onionshare-cli - install -p -m0644 debian/copyright debian/onionshare-cli/usr/share/doc/onionshare-cli/copyright - dh_installchangelogs -O--buildsystem=pybuild - install -m0755 -d debian/onionshare/usr/share/doc/onionshare - install -p -m0644 debian/.debhelper/generated/onionshare/dh_installchangelogs.dch.trimmed debian/onionshare/usr/share/doc/onionshare/changelog.Debian - install -p -m0644 ./CHANGELOG.md debian/onionshare/usr/share/doc/onionshare/changelog - install -m0755 -d debian/onionshare-cli/usr/share/doc/onionshare-cli - install -p -m0644 debian/.debhelper/generated/onionshare-cli/dh_installchangelogs.dch.trimmed debian/onionshare-cli/usr/share/doc/onionshare-cli/changelog.Debian - install -p -m0644 ./CHANGELOG.md debian/onionshare-cli/usr/share/doc/onionshare-cli/changelog - dh_installman -O--buildsystem=pybuild - install -m0755 -d debian/onionshare-cli/usr/share/man/man1/ - install -p -m0644 ./debian/onionshare-cli.1 debian/onionshare-cli/usr/share/man/man1/onionshare-cli.1 - install -m0755 -d debian/onionshare/usr/share/man/man1/ - install -p -m0644 ./debian/onionshare.1 debian/onionshare/usr/share/man/man1/onionshare.1 - man-recode --to-code UTF-8 --suffix .dh-new debian/onionshare/usr/share/man/man1/onionshare.1 - man-recode --to-code UTF-8 --suffix .dh-new debian/onionshare-cli/usr/share/man/man1/onionshare-cli.1 - mv debian/onionshare-cli/usr/share/man/man1/onionshare-cli.1.dh-new debian/onionshare-cli/usr/share/man/man1/onionshare-cli.1 - chmod 0644 -- debian/onionshare-cli/usr/share/man/man1/onionshare-cli.1 - mv debian/onionshare/usr/share/man/man1/onionshare.1.dh-new debian/onionshare/usr/share/man/man1/onionshare.1 - chmod 0644 -- debian/onionshare/usr/share/man/man1/onionshare.1 - dh_python3 -O--buildsystem=pybuild -D: dh_python3 dh_python3:180: version: 6.20250414 -D: dh_python3 dh_python3:181: argv: ['/usr/bin/dh_python3', '-O--buildsystem=pybuild'] -D: dh_python3 dh_python3:182: options: Namespace(guess_deps=True, skip_private=False, verbose=True, arch=None, package=None, no_package=None, remaining_packages=False, compile_all=False, vrange=None, regexpr=None, accept_upstream_versions=False, depends=None, depends_section=None, recommends=None, recommends_section=None, suggests=None, suggests_section=None, requires=None, shebang=None, ignore_shebangs=False, clean_dbg_pkg=True, no_ext_rename=False, no_shebang_rewrite=False, private_dir=None, O=['--buildsystem=pybuild']) -D: dh_python3 dh_python3:183: supported Python versions: 3.13 (default=3.13) -D: dh_python3 debhelper:174: source=onionshare, binary packages=['onionshare', 'onionshare-cli'] -D: dh_python3 dh_python3:205: processing package onionshare... -D: dh_python3 fs:50: moving files from debian/onionshare/usr/lib/python3.13/dist-packages to debian/onionshare/usr/lib/python3/dist-packages/ -D: dh_python3 fs:179: Writing INSTALLER in debian/onionshare/usr/lib/python3/dist-packages/onionshare-2.6.3.dist-info -D: dh_python3 fs:190: Deleting RECORD in debian/onionshare/usr/lib/python3/dist-packages/onionshare-2.6.3.dist-info -I: dh_python3 tools:114: replacing shebang in debian/onionshare/usr/bin/onionshare -D: dh_python3 fs:338: package onionshare details = {'requires.txt': set(), 'egg-info': set(), 'dist-info': {'debian/onionshare/usr/lib/python3/dist-packages/onionshare-2.6.3.dist-info/METADATA'}, 'nsp.txt': set(), 'shebangs': {/usr/bin/python3}, 'public_vers': {Version('3')}, 'private_dirs': {'/usr/share/onionshare': {'compile': True}}, 'compile': True, 'ext_vers': set(), 'ext_no_version': set()} -D: dh_python3 depends:103: generating dependencies for package onionshare -D: dh_python3 pydist:175: trying to find dependency for PySide6 (==6.8.2.1) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for onionshare_cli @ file:///build/reproducible-path/onionshare-2.6.3/cli (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for python-gnupg (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for qrcode (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for werkzeug (==3.0.6) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 depends:253: D={'python3-qrcode', 'python3-werkzeug', 'onionshare-cli', 'python3:any', 'python3-gnupg', 'python3-pyside6.qtwidgets, python3-pyside6.qtcore'}; R=[]; S=[]; E=[], B=[]; RT=[('/usr/share/onionshare', '')] -D: dh_python3 dh_python3:205: processing package onionshare-cli... -D: dh_python3 fs:50: moving files from debian/onionshare-cli/usr/lib/python3.13/dist-packages to debian/onionshare-cli/usr/lib/python3/dist-packages/ -D: dh_python3 fs:179: Writing INSTALLER in debian/onionshare-cli/usr/lib/python3/dist-packages/onionshare_cli-2.6.3.dist-info -D: dh_python3 fs:190: Deleting RECORD in debian/onionshare-cli/usr/lib/python3/dist-packages/onionshare_cli-2.6.3.dist-info -I: dh_python3 tools:114: replacing shebang in debian/onionshare-cli/usr/bin/onionshare-cli -D: dh_python3 fs:338: package onionshare-cli details = {'requires.txt': set(), 'egg-info': set(), 'dist-info': {'debian/onionshare-cli/usr/lib/python3/dist-packages/onionshare_cli-2.6.3.dist-info/METADATA'}, 'nsp.txt': set(), 'shebangs': {/usr/bin/python3}, 'public_vers': {Version('3')}, 'private_dirs': {}, 'compile': True, 'ext_vers': set(), 'ext_no_version': set()} -D: dh_python3 depends:103: generating dependencies for package onionshare-cli -D: dh_python3 pydist:175: trying to find dependency for cffi (>=1.15.1,<2.0.0) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for click (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for colorama (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for eventlet (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for flask (==3.*) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:226: dependency: translated wildcard version to semver limit -D: dh_python3 pydist:255: dependency: constructed version -D: dh_python3 pydist:175: trying to find dependency for flask-compress (>=1.13,<2.0) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for flask-socketio (==5.3.4) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for gevent (>=23.9.1,<24.0.0) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for gevent-websocket (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for packaging (>=24) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for psutil (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for pynacl (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for pysocks (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for qrcode (>=7.4.2,<8.0.0) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for requests[socks] (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for setuptools (>=70.0.0) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for stem (==1.8.1) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:277: dependency: included in build-deps with limits -D: dh_python3 pydist:175: trying to find dependency for unidecode (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for urllib3 (>=2.2.2,<3.0.0) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for waitress (>=3.0.1,<4.0.0) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for werkzeug (==3.0.6) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 pydist:175: trying to find dependency for wheel (>=0.41.2,<0.42.0) (python=None) -D: dh_python3 pydist:209: dependency: module seems to be installed -D: dh_python3 pydist:284: dependency: included in build-deps -D: dh_python3 depends:253: D={'python3-flask-socketio', 'python3-unidecode', 'python3-qrcode', 'python3-nacl', 'python3-psutil', 'python3-colorama', 'python3-gevent', 'python3-flask-compress', 'python3-waitress', 'python3-werkzeug', 'python3-urllib3', 'python3-packaging', 'python3-socks', 'python3-requests', 'python3-click', 'python3:any', 'python3-eventlet', 'python3-wheel', 'python3-pkg-resources', 'python3-flask (>= 3.0), python3-flask (<< 4)', 'python3-gevent-websocket', 'python3-cffi', 'python3-stem (>= 1.8.1)'}; R=[]; S=[]; E=[], B=[]; RT=[] - dh_installsystemduser -O--buildsystem=pybuild - dh_lintian -O--buildsystem=pybuild - install -m0755 -d debian/onionshare-cli/usr/share/lintian/overrides - install -p -m0644 debian/onionshare-cli.lintian-overrides debian/onionshare-cli/usr/share/lintian/overrides/onionshare-cli - dh_icons -O--buildsystem=pybuild - dh_perl -O--buildsystem=pybuild - dh_link -O--buildsystem=pybuild - rm -f debian/onionshare/usr/share/onionshare/onionshare-128.png - ln -s ../icons/hicolor/128x128/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-128.png - rm -f debian/onionshare/usr/share/onionshare/onionshare-16.png - ln -s ../icons/hicolor/16x16/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-16.png - rm -f debian/onionshare/usr/share/onionshare/onionshare-512.png - ln -s ../icons/hicolor/512x512/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-512.png - rm -f debian/onionshare/usr/share/onionshare/onionshare-32.png - ln -s ../icons/hicolor/32x32/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-32.png - rm -f debian/onionshare/usr/share/onionshare/onionshare-64.png - ln -s ../icons/hicolor/64x64/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-64.png - rm -f debian/onionshare/usr/share/onionshare/onionshare-256.png - ln -s ../icons/hicolor/256x256/org.onionshare.OnionShare.png debian/onionshare/usr/share/onionshare/onionshare-256.png - install -m0755 -d debian/onionshare/usr/lib/python3/dist-packages/onionshare - rm -f debian/onionshare/usr/lib/python3/dist-packages/onionshare/resources - ln -s ../../../../share/onionshare debian/onionshare/usr/lib/python3/dist-packages/onionshare/resources - install -m0755 -d debian/onionshare-cli/usr/lib/python3/dist-packages/onionshare_cli - rm -f debian/onionshare-cli/usr/lib/python3/dist-packages/onionshare_cli/resources - ln -s ../../../../share/onionshare-cli debian/onionshare-cli/usr/lib/python3/dist-packages/onionshare_cli/resources - dh_strip_nondeterminism -O--buildsystem=pybuild - Using 1741139595 as canonical time - Normalizing debian/onionshare/usr/share/onionshare/images/dark_mode_new_tab_receive.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/tor-connect-smoke.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_settings.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_mode_website.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_mode_new_tab_share.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_icon-close.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_mode_share.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_settings.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/file_delete.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_logo_text.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_tor_settings.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_mode_share.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_mode_website.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/tor-connect-stars.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_mode_new_tab_receive.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_logo_text.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/icons/hicolor/64x64/org.onionshare.OnionShare.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/icons/hicolor/32x32/org.onionshare.OnionShare.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/icons/hicolor/128x128/org.onionshare.OnionShare.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/icons/hicolor/512x512/org.onionshare.OnionShare.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/icons/hicolor/256x256/org.onionshare.OnionShare.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/icons/hicolor/16x16/org.onionshare.OnionShare.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/onionshare.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_mode_new_tab_website.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_mode_chat.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/logo_grayscale.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_mode_new_tab_share.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/logo.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/logo_transparent.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/receive_icon_toggle.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/tor-connect-ship.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_logo_text_bg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/za.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_mode_new_tab_website.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_mode_new_tab_chat.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_mode_new_tab_chat.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/open_message.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_mode_chat.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_mode_receive.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/share_icon_toggle_selected.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/share_icon_toggle.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/light_logo_text_bg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_mode_receive.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/receive_icon_transparent.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/share_icon_transparent.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/receive_icon_toggle_selected.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_icon-add.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/dark_tor_settings.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/info.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/wf.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/dm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gp.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mt.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/jo.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/na.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gl.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sh.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bo.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/me.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/lu.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/by.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/li.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ir.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ms.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/so.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ne.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bb.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ad.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/nu.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/rs.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/es.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ee.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/au.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cx.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/aw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/al.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ck.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/de.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bi.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/jm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ro.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ly.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gu.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/aq.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/hk.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ye.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bv.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/st.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gs.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cy.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/kh.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mo.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ba.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/at.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cc.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ge.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ph.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/it.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cf.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ax.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/uy.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mc.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gb.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/am.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/af.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ch.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/vc.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bq.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/om.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/vg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/lv.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gd.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ec.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ae.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ag.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mx.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tl.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ua.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bl.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/eh.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cv.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bh.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ai.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sy.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/iq.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gi.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/fj.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/zw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/nz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/lc.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pe.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/fr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mv.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ki.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bd.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bj.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/hr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/as.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/td.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sb.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/im.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ao.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/zm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mq.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/yt.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pl.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ht.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/va.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/no.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/lr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/be.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gh.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tf.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ky.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/vn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/vi.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gy.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/kp.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mf.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/vu.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/do.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/br.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ve.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/th.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sl.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pf.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sc.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/kw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/lt.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/io.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tt.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sa.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mk.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/il.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sk.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/nc.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/km.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gt.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cu.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gq.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ls.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cl.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/kr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gf.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ca.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/dj.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/nf.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ml.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ie.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sx.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ar.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/er.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/nr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ga.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sd.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/hm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/lb.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sj.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/lk.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/md.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/hu.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/uz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/nl.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/dk.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/in.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/fo.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pk.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bt.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/kg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tc.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/co.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/rw.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/se.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tk.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/jp.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pa.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/id.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/kn.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ng.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/py.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ci.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/dz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/is.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/my.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ni.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/kz.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/tj.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ss.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/mu.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/re.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ws.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/az.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/et.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bf.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/gr.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ug.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/la.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bs.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/np.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ke.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/fk.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ru.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/cd.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/to.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/eg.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/sv.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/bm.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/ma.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/pt.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/fi.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/us.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/qa.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/si.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare/usr/share/onionshare/images/countries/hn.png using File::StripNondeterminism::handlers::png - Using 1741139595 as canonical time - Normalizing debian/onionshare-cli/usr/share/onionshare-cli/static/img/web_folder.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare-cli/usr/share/onionshare-cli/static/img/logo_large.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare-cli/usr/share/onionshare-cli/static/img/web_file.png using File::StripNondeterminism::handlers::png - Normalizing debian/onionshare-cli/usr/share/onionshare-cli/static/img/logo.png using File::StripNondeterminism::handlers::png - dh_compress -O--buildsystem=pybuild - cd debian/onionshare - cd debian/onionshare-cli - chmod a-x usr/share/doc/onionshare-cli/changelog usr/share/doc/onionshare-cli/changelog.Debian usr/share/man/man1/onionshare-cli.1 - chmod a-x usr/share/doc/onionshare/changelog usr/share/doc/onionshare/changelog.Debian usr/share/man/man1/onionshare.1 - gzip -9nf usr/share/doc/onionshare/changelog usr/share/doc/onionshare/changelog.Debian usr/share/man/man1/onionshare.1 - gzip -9nf usr/share/doc/onionshare-cli/changelog usr/share/doc/onionshare-cli/changelog.Debian usr/share/man/man1/onionshare-cli.1 - cd '/build/reproducible-path/onionshare-2.6.3' - cd '/build/reproducible-path/onionshare-2.6.3' - dh_fixperms -O--buildsystem=pybuild - find debian/onionshare ! -type l -a -true -a -true -print0 2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s - find debian/onionshare-cli ! -type l -a -true -a -true -print0 2>/dev/null | xargs -0r chmod go=rX,u+rw,a-s - find debian/onionshare-cli/usr/share/doc -type f -a -true -a ! -regex 'debian/onionshare-cli/usr/share/doc/[^/]*/examples/.*' -print0 2>/dev/null | xargs -0r chmod 0644 - find debian/onionshare/usr/share/doc -type f -a -true -a ! -regex 'debian/onionshare/usr/share/doc/[^/]*/examples/.*' -print0 2>/dev/null | xargs -0r chmod 0644 - find debian/onionshare-cli/usr/share/doc -type d -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0755 - find debian/onionshare/usr/share/doc -type d -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0755 - find debian/onionshare-cli/usr/share/man debian/onionshare-cli/usr/share/lintian/overrides -type f -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0644 - find debian/onionshare/usr/share/man debian/onionshare/usr/share/applications -type f -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0644 - find debian/onionshare-cli -type f \( -name '*.so.*' -o -name '*.so' -o -name '*.la' -o -name '*.a' -o -name '*.js' -o -name '*.css' -o -name '*.scss' -o -name '*.sass' -o -name '*.jpeg' -o -name '*.jpg' -o -name '*.png' -o -name '*.gif' -o -name '*.cmxs' -o -name '*.node' \) -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0644 - find debian/onionshare -type f \( -name '*.so.*' -o -name '*.so' -o -name '*.la' -o -name '*.a' -o -name '*.js' -o -name '*.css' -o -name '*.scss' -o -name '*.sass' -o -name '*.jpeg' -o -name '*.jpg' -o -name '*.png' -o -name '*.gif' -o -name '*.cmxs' -o -name '*.node' \) -a -true -a -true -print0 2>/dev/null | xargs -0r chmod 0644 - find debian/onionshare-cli/usr/bin -type f -a -true -a -true -print0 2>/dev/null | xargs -0r chmod a+x - find debian/onionshare-cli/usr/lib -type f -name '*.ali' -a -true -a -true -print0 2>/dev/null | xargs -0r chmod uga-w - find debian/onionshare/usr/bin -type f -a -true -a -true -print0 2>/dev/null | xargs -0r chmod a+x - find debian/onionshare/usr/lib -type f -name '*.ali' -a -true -a -true -print0 2>/dev/null | xargs -0r chmod uga-w - dh_missing -O--buildsystem=pybuild - dh_installdeb -O--buildsystem=pybuild - install -m0755 -d debian/onionshare/DEBIAN - printf '#!/bin/sh\nset -e\n' > debian/onionshare/DEBIAN/postinst - cat debian/onionshare.postinst.debhelper >> debian/onionshare/DEBIAN/postinst - chmod 0755 -- debian/onionshare/DEBIAN/postinst - printf '#!/bin/sh\nset -e\n' > debian/onionshare/DEBIAN/prerm - cat debian/onionshare.prerm.debhelper >> debian/onionshare/DEBIAN/prerm - chmod 0755 -- debian/onionshare/DEBIAN/prerm - install -m0755 -d debian/onionshare-cli/DEBIAN - printf '#!/bin/sh\nset -e\n' > debian/onionshare-cli/DEBIAN/postinst - cat debian/onionshare-cli.postinst.debhelper >> debian/onionshare-cli/DEBIAN/postinst - chmod 0755 -- debian/onionshare-cli/DEBIAN/postinst - printf '#!/bin/sh\nset -e\n' > debian/onionshare-cli/DEBIAN/prerm - cat debian/onionshare-cli.prerm.debhelper >> debian/onionshare-cli/DEBIAN/prerm - chmod 0755 -- debian/onionshare-cli/DEBIAN/prerm - dh_gencontrol -O--buildsystem=pybuild - install -m0755 -d debian/onionshare-cli/DEBIAN - echo misc:Depends= >> debian/onionshare-cli.substvars - echo misc:Pre-Depends= >> debian/onionshare-cli.substvars - dpkg-gencontrol -ponionshare-cli -ldebian/changelog -Tdebian/onionshare-cli.substvars -cdebian/control -Pdebian/onionshare-cli - install -m0755 -d debian/onionshare/DEBIAN - echo misc:Depends= >> debian/onionshare.substvars - echo misc:Pre-Depends= >> debian/onionshare.substvars - dpkg-gencontrol -ponionshare -ldebian/changelog -Tdebian/onionshare.substvars -cdebian/control -Pdebian/onionshare - chmod 0644 -- debian/onionshare-cli/DEBIAN/control - chmod 0644 -- debian/onionshare/DEBIAN/control - dh_md5sums -O--buildsystem=pybuild - install -m0755 -d debian/onionshare/DEBIAN - install -m0755 -d debian/onionshare-cli/DEBIAN - cd debian/onionshare-cli >/dev/null && xargs -r0 md5sum | perl -pe 'if (s@^\\@@) { s/\\\\/\\/g; }' > DEBIAN/md5sums - cd debian/onionshare >/dev/null && xargs -r0 md5sum | perl -pe 'if (s@^\\@@) { s/\\\\/\\/g; }' > DEBIAN/md5sums - chmod 0644 -- debian/onionshare-cli/DEBIAN/md5sums - chmod 0644 -- debian/onionshare/DEBIAN/md5sums - dh_builddeb -O--buildsystem=pybuild - dpkg-deb --root-owner-group --build debian/onionshare .. - dpkg-deb --root-owner-group --build debian/onionshare-cli .. -dpkg-deb: building package 'onionshare' in '../onionshare_2.6.3-1_all.deb'. -dpkg-deb: building package 'onionshare-cli' in '../onionshare-cli_2.6.3-1_all.deb'. - dpkg-genbuildinfo --build=binary -O../onionshare_2.6.3-1_amd64.buildinfo - dpkg-genchanges --build=binary -O../onionshare_2.6.3-1_amd64.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: including full source code in upload +make: *** [debian/rules:5: binary] Error 2 +dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 I: copying local configuration +E: Failed autobuilding of package +I: user script /srv/workspace/pbuilder/1294905/tmp/hooks/C01_cleanup starting +debug output: disk usage on i-capture-the-hostname at Sat Oct 17 18:41:55 UTC 2026 +Filesystem Size Used Avail Use% Mounted on +tmpfs 40G 0 40G 0% /dev/shm + +I: user script /srv/workspace/pbuilder/1294905/tmp/hooks/C01_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/2134 and its subdirectories -I: Current time: Sun Sep 14 00:10:15 -12 2025 -I: pbuilder-time-stamp: 1757851815 +I: removing directory /srv/workspace/pbuilder/1294905 and its subdirectories