Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bug#1023568: onionshare: autopkgtest regression with flask 2.2.2

123 views
Skip to first unread message

Carsten Schoenert

unread,
Nov 6, 2022, 2:30:05 PM11/6/22
to
Package: onionshare
Version: 2.5-2
Severity: important

Dear Maintainer,

with the current version 2.2.2 of flask and werkzeug in experimental
your package fails to run the autopkgtests successfully.

The relevant part that fails lokks like this:

autopkgtest [18:27:55]: test onionshare_help: XDG_CONFIG_HOME="$AUTOPKGTEST_TMP" xvfb-run -- onionshare --help
autopkgtest [18:27:55]: test onionshare_help: [-----------------------
Traceback (most recent call last):
File "/usr/bin/onionshare", line 5, in <module>
from onionshare import main
File "/usr/lib/python3/dist-packages/onionshare/__init__.py", line 34, in <module>
from onionshare_cli.common import Common
File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "/usr/lib/python3/dist-packages/onionshare_cli/__init__.py", line 30, in <module>
from .web import Web
File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "/usr/lib/python3/dist-packages/onionshare_cli/web/__init__.py", line 21, in <module>
from .web import Web
File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "/usr/lib/python3/dist-packages/onionshare_cli/web/web.py", line 38, in <module>
from flask_socketio import SocketIO
File "/usr/lib/python3/dist-packages/shiboken2/files.dir/shibokensupport/__feature__.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "/usr/lib/python3/dist-packages/flask_socketio/__init__.py", line 24, in <module>
from werkzeug.serving import run_with_reloader
ImportError: cannot import name 'run_with_reloader' from 'werkzeug.serving' (/usr/lib/python3/dist-packages/werkzeug/serving.py)

The full log (amd64) is reachable under

https://ci.debian.net/data/autopkgtest/unstable/amd64/o/onionshare/27759203/log.gz

The full list of packages that fail with flask from experimental can be
found here.

https://qa.debian.org/excuses.php?experimental=1&package=flask

Please fix the autopktest issue, the DPT will increase the severity of
the outstanding autopkgtest issues with flask 2.2.2 probably soon so we
can start the freezing process for the bookworm release for the Python
packages.

There is a new released version 2.6 of onionshare, maybe importing a
newer version can fix the issue of the failed autopkgtest.

Regards
Carsten

-- System Information:
Debian Release: bookworm/sid
APT prefers testing
APT policy: (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.19.0-2-amd64 (SMP w/20 CPU threads; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Hefee

unread,
Nov 8, 2022, 7:20:04 AM11/8/22
to
Control: reassign -1 python3-flask-socketio 5.0.1-1
Control: affects -1 onionshare-cli

Hey,

From my point of view it is an issue within flask-socketio and has nothing to do with onionshare.
The import flask_socketio from onionshare works. But than flask-socketio fails to import werkzeug, so the problem is either flask-socketio or werkzeug. As werkzeug and flask are updated in experimental, I expect flask.socketio to be the problem. It seems like flask-socketio 5.3.0 fixes this see Changes line 11:

https://github.com/miguelgrinberg/Flask-SocketIO/blob/main/CHANGES.md

Relevant autopkgtest test:

autopkgtest [22:25:35]: test onionshare-cli_help: onionshare-cli --help
Traceback (most recent call last):
File "/usr/bin/onionshare-cli", line 5, in <module>
from onionshare_cli import main
File "/usr/lib/python3/dist-packages/onionshare_cli/__init__.py", line 30, in <module>
from .web import Web
File "/usr/lib/python3/dist-packages/onionshare_cli/web/__init__.py", line 21, in <module>
from .web import Web
File "/usr/lib/python3/dist-packages/onionshare_cli/web/web.py", line 38, in <module>
from flask_socketio import SocketIO
File "/usr/lib/python3/dist-packages/flask_socketio/__init__.py", line 24, in <module>
from werkzeug.serving import run_with_reloader
ImportError: cannot import name 'run_with_reloader' from 'werkzeug.serving' (/usr/lib/python3/dist-packages/werkzeug/serving.py)

The full log (amd64) is reachable under

https://ci.debian.net/data/autopkgtest/unstable/amd64/o/onionshare/27759203/log.gz

The full list of packages that fail with flask from experimental can be
found here.

https://qa.debian.org/excuses.php?experimental=1&package=flask

hefee
signature.asc

Carsten Schoenert

unread,
Nov 12, 2022, 7:50:03 AM11/12/22
to
Hi,

Am 08.11.22 um 13:02 schrieb Hefee:
> Hey,
>
> From my point of view it is an issue within flask-socketio and has
> nothing to do with onionshare. > The import flask_socketio from onionshare works. But than
> flask-socketio fails to import werkzeug, so the problem is either
> flask-socketio or werkzeug. As werkzeug and flask are updated in
> experimental, I expect flask.socketio to be the problem. It seems
> like flask-socketio 5.3.0 fixes this see Changes line 11: >
> https://github.com/miguelgrinberg/Flask-SocketIO/blob/main/CHANGES.md

your investigation is right, thanks for figuring out!

I've simply imported a new version of flask-socketio and run the
autopkgtest suite of oninshare with the new version of flask-socketio.

The tests are running fine, except for

> Test-Command: XDG_CONFIG_HOME="$AUTOPKGTEST_TMP" xvfb-run -- onionshare --help
> Depends: onionshare, xvfb, xauth
> Restrictions: allow-stderr, superficial,
> Features: test-name=onionshare_help

which is failing.

> autopkgtest [12:22:08]: @@@@@@@@@@@@@@@@@@@@ summary
> onionshare-cli_help PASS (superficial)
> share_files PASS
> receive_files PASS
> share_website PASS
> chat_server PASS
> onionshare_help FAIL badpkg
> blame: arg:/build/onionshare-cli_2.5-2_all.deb deb:onionshare-cli arg:/build/onionshare_2.5-2_all.deb deb:onionshare /build/onionshare-2.5
> badpkg: Test dependencies are unsatisfiable. A common reason is that your testbed is out of date with respect to the archive, and you need to use a current testbed or run apt-get update or use -U.

The test in question is marked as superficial, so this non working test
shouldn't have any negative outcome like blocking the package on
migration. But it's up to the maintainers to decide how to handle this.

Could flask-socketio please be upgraded in unstable to the most recent
version?

--
Regards
Carsten

Paulo Henrique de Lima Santana

unread,
Nov 12, 2022, 9:10:04 AM11/12/22
to
Hi,

Em 12/11/2022 09:35, Carsten Schoenert escreveu:
>
> Could flask-socketio please be upgraded in unstable to the most recent
> version?

Sure, I will work on that.

Thanks,

--
Paulo Henrique de Lima Santana (phls)
Belo Horizonte - Brasil
Debian Developer
Associado do Instituto para Conservação de Tecnologias Livres
Site: http://phls.com.br
GPG ID: 0443C450
OpenPGP_signature

Hefee

unread,
Nov 12, 2022, 11:20:05 AM11/12/22
to
Hey,

can you give me a link to the complete output of the atopkgtests to check what
is broken. Actually his test is the only one that tests the GUI application
onionshare ( I don't know any good way to check GUI applications). In it self
it only test does not check any feature of onionshare (that's why it is marked
as superficial) - But segfaulting when you just want to view the help means
properly that there is an issue with the application by itself.

Regards,

hefee
signature.asc

Carsten Schoenert

unread,
Nov 13, 2022, 1:50:04 AM11/13/22
to
Hi,

Am 12.11.22 um 17:15 schrieb Hefee:
> Hey,
>
> can you give me a link to the complete output of the autopkgtests to check what
> is broken.

sure.

https://people.debian.org/~tijuca/build+autopkgtest_onionshare_2.5-2_amd64.build.gz

Looking a second time with a deeper view on it, there is something more
under the hood to tune and adjust.

E.g.
> autopkgtest [06:29:12]: test share_website: mkdir "$AUTOPKGTEST_TMP/website"; XDG_CONFIG_HOME="$AUTOPKGTEST_TMP" onionshare-cli --local-only --website "$AUTOPKGTEST_TMP/website" --auto-stop-timer 2
> autopkgtest [06:29:12]: test share_website: [-----------------------
> ╭───────────────────────────────────────────╮
> │ * ▄▄█████▄▄ * │
> │ ▄████▀▀▀████▄ * │
> │ ▀▀█▀ ▀██▄ │
> │ * ▄█▄ ▀██▄ │
> │ ▄█████▄ ███ -+- │
> │ ███ ▀█████▀ │
> │ ▀██▄ ▀█▀ │
> │ * ▀██▄ ▄█▄▄ * │
> │ * ▀████▄▄▄████▀ │
> │ ▀▀█████▀▀ │
> │ -+- * │
> │ ▄▀▄ ▄▀▀ █ │
> │ █ █ ▀ ▀▄ █ │
> │ █ █ █▀▄ █ ▄▀▄ █▀▄ ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄ │
> │ ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █ ▀▄▄ │
> │ │
> │ v2.5 │
> │ │
> │ https://onionshare.org/
> ╰───────────────────────────────────────────╯
>
> Exception in thread Thread-2 (start):
> Traceback (most recent call last):
> File "/usr/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
> self.run()
> File "/usr/lib/python3.10/threading.py", line 953, in run
> self._target(*self._args, **self._kwargs)
> File "/usr/lib/python3/dist-packages/onionshare_cli/web/web.py", line 375, in start
> self.app.run(host=host, port=port, threaded=True)
> File "/usr/lib/python3/dist-packages/flask/app.py", line 1183, in run
> cli.show_server_banner(self.debug, self.name)
> TypeError: stubbed_show_server_banner() missing 2 required positional arguments: 'app_import_path' and 'eager_loading'
>
> Give this address and private key to the recipient:
> http://127.0.0.1:17632
> Private key: E2GOT5LTUTP3OAMRCRXO4GSH6VKJEUOXZQUC336SRKAHTTT5OVSA
>
> Press Ctrl+C to stop the server
> autopkgtest [06:29:12]: test share_website: -----------------------]
> autopkgtest [06:29:12]: test share_website: - - - - - - - - - - results - - - - - - - - - -
> share_website PASS



> Actually his test is the only one that tests the GUI application
> onionshare ( I don't know any good way to check GUI applications). In it self
> it only test does not check any feature of onionshare (that's why it is marked
> as superficial) - But segfaulting when you just want to view the help means
> properly that there is an issue with the application by itself.

Of course, that's why we do quite the same for Thunderbird. Also we
would see potential under linking.

--
Regrads
Carsten

Hefee

unread,
Nov 14, 2022, 5:31:30 AM11/14/22
to
Hey,

> Looking a second time with a deeper view on it, there is something more
> under the hood to tune and adjust.

The cli.show_server_banner function from flask changed, that triggers the
issue.

But the "onionshare --help" tests fails because it cannot install onionshare
correctly. From my point of view it is more an issue for your testbed and I
cannot see the issue on onionshare side ( yet).

Regards,

hefee
signature.asc

Carsten Schoenert

unread,
Nov 15, 2022, 12:20:04 PM11/15/22
to
Am 14.11.22 um 11:24 schrieb Hefee:
> Hey,
>
>> Looking a second time with a deeper view on it, there is something more
>> under the hood to tune and adjust.
>
> The cli.show_server_banner function from flask changed, that triggers the
> issue.

Then the oninshare package would need to get adjustments too, for the
potential and desired migration of Flask > 2.2 to final testing
oninshare isn't a problem right now as it's not available in testing
currently and should not block migrations.

I was thinking about raising the severity for this report but concluded
it's currently not needed to increase the severity as the packages flask
and python-werkzeug doesn't gain from such a bump.

> But the "onionshare --help" tests fails because it cannot install onionshare
> correctly. From my point of view it is more an issue for your testbed and I
> cannot see the issue on onionshare side ( yet).

That's for sure possible, OTOH I don't wanted to dig much more deeper
into this for now. Let's first get a recent flask version into testing,
I'm sure some things will easier to solve then if we want to provide
recent versions for Flask and python-werkzeug in a bookworm release.

--
Regards
Carsten
0 new messages