On Mon, Sep 20, 2021 at 10:01:48PM +0100, Stuart Henderson wrote:
> On 2021/09/20 22:33, Solene Rapenne wrote:
> > Upon start, onionshare-gui crashes with the following message.
> > I suppose it's totally broken in its current state.
> >
> > I'm not even sure the cli tool onionshare works at all, I always
> > get the message "Onionshare could not connect to tor in the background:
> > dictionary keys changed during iteration" while Tor is running and
> > working fine, so net/onionshare may be broken too at this time.
> >
> > QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-solene'
> > Traceback (most recent call last):
> > File
> > "/usr/local/lib/python3.8/site-packages/onionshare_gui/onionshare_gui.py",
> > line 317, in open_settings
> > d = SettingsDialog(self.common, self.onion, self.qtapp, self.config,
> > self.local_only)
> > File
> > "/usr/local/lib/python3.8/site-packages/onionshare_gui/settings_dialog.py",
> > line 478, in __init__
> > self.reload_settings()
> > File
> > "/usr/local/lib/python3.8/site-packages/onionshare_gui/settings_dialog.py",
> > line 597, in reload_settings
> > if self.onion.supports_v3_onions:
> > AttributeError: 'Onion' object has no attribute 'supports_v3_onions'
> > Abort trap (core dumped)
> >
>
> It looks like that problem was fixed in newer versions, unfortunately
> they moved to mainly snap/flatpak for distribution and it's not an
> entirely straightforward update
>
> Probably a bit late to fix for 7.0
>
Would it be acceptable to work around it and add the missing attribute?
At least the diff makes the crash on startup go away. (I don't use tor,
so I can't check this in a real-life scenario)
The check for setting this variable on a working connection is this:
'self.supports_v3_onions = self.tor_version >= Version('0.3.5.7')'
It should be true most of the time.
If this is set, the settings dialog allows a checkbox to enable legacy
v2 onions to be toggled instead of selecting it by default. If it is set
to true, it uses Ed25519 instead of RSA1024. This will just not work
with legacy onions. I don't think any harm can come from that.
Index: Makefile
===================================================================
RCS file: /cvs/ports/net/onionshare/Makefile,v
retrieving revision 1.8
diff -u -p -r1.8 Makefile
--- Makefile 23 Feb 2021 19:39:33 -0000 1.8
+++ Makefile 20 Sep 2021 21:53:30 -0000
@@ -7,8 +7,8 @@ GH_ACCOUNT = micahflee
GH_PROJECT = onionshare
GH_TAGNAME = v${MODPY_EGG_VERSION}
MODPY_EGG_VERSION = 2.0
-REVISION-main = 2
-REVISION-gui = 2
+REVISION-main = 3
+REVISION-gui = 3
PKGNAME-main = onionshare-${MODPY_EGG_VERSION}
PKGNAME-gui = onionshare-gui-${MODPY_EGG_VERSION}
Index: patches/patch-onionshare_onion_py
===================================================================
RCS file: patches/patch-onionshare_onion_py
diff -N patches/patch-onionshare_onion_py
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-onionshare_onion_py 20 Sep 2021 21:45:52 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: onionshare/onion.py
+--- onionshare/onion.py.orig
++++ onionshare/onion.py
+@@ -152,6 +152,8 @@ class Onion(object):
+ # Start out not connected to Tor
+ self.connected_to_tor = False
+
++ self.supports_v3_onions = True
++
+ def connect(self, custom_settings=False, config=False,
tor_status_update_func=None):
+ self.common.log('Onion', 'connect')
+
Index: pkg/PLIST-gui
===================================================================
RCS file: /cvs/ports/net/onionshare/pkg/PLIST-gui,v
retrieving revision 1.3
diff -u -p -r1.3 PLIST-gui
--- pkg/PLIST-gui 25 Mar 2019 12:17:44 -0000 1.3
+++ pkg/PLIST-gui 20 Sep 2021 20:56:54 -0000
@@ -2,7 +2,7 @@
bin/onionshare-gui
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/__init__.py
-lib/python${MODPY_VERSION}/site-packages/onionshare_gui/${MODPY_PYCACHE}/
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/onionshare_gui/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/${MODPY_PYCACHE}onionshare_gui.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/${MODPY_PYCACHE}server_status.${MODPY_PYC_MAGIC_TAG}pyc
@@ -14,9 +14,9 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/settings_dialog.py
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/tor_connection_dialog.py
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/update_checker.py
+share/applications/onionshare.desktop
share/metainfo/
share/metainfo/onionshare.appdata.xml
-share/applications/onionshare.desktop
share/pixmaps/
share/pixmaps/onionshare80.xpm
@tag update-desktop-database
Index: pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/net/onionshare/pkg/PLIST-main,v
retrieving revision 1.2
diff -u -p -r1.2 PLIST-main
--- pkg/PLIST-main 25 Mar 2019 12:17:44 -0000 1.2
+++ pkg/PLIST-main 20 Sep 2021 20:56:54 -0000
@@ -3,7 +3,7 @@ bin/onionshare
lib/python${MODPY_VERSION}/site-packages/onionshare/
lib/python${MODPY_VERSION}/site-packages/onionshare-${MODPY_EGG_VERSION}-py${MODPY_VERSION}.egg-info
lib/python${MODPY_VERSION}/site-packages/onionshare/__init__.py
-lib/python${MODPY_VERSION}/site-packages/onionshare/${MODPY_PYCACHE}/
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/onionshare/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/onionshare/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare/${MODPY_PYCACHE}common.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare/${MODPY_PYCACHE}onion.${MODPY_PYC_MAGIC_TAG}pyc
@@ -17,7 +17,7 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/onionshare/strings.py
lib/python${MODPY_VERSION}/site-packages/onionshare/web/
lib/python${MODPY_VERSION}/site-packages/onionshare/web/__init__.py
-lib/python${MODPY_VERSION}/site-packages/onionshare/web/${MODPY_PYCACHE}/
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/onionshare/web/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/onionshare/web/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare/web/${MODPY_PYCACHE}receive_mode.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare/web/${MODPY_PYCACHE}share_mode.${MODPY_PYC_MAGIC_TAG}pyc
@@ -29,17 +29,17 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/${MODPY_PYCACHE}widgets.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/__init__.py
-lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/${MODPY_PYCACHE}/
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/${MODPY_PYCACHE}history.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/history.py
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/receive_mode/
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/receive_mode/__init__.py
-lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/receive_mode/${MODPY_PYCACHE}/
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/receive_mode/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/receive_mode/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/share_mode/
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/share_mode/__init__.py
-lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/share_mode/${MODPY_PYCACHE}/
+${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/share_mode/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/share_mode/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/share_mode/${MODPY_PYCACHE}file_selection.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/share_mode/${MODPY_PYCACHE}threads.${MODPY_PYC_MAGIC_TAG}pyc
@@ -47,6 +47,7 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/mode/share_mode/threads.py
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/threads.py
lib/python${MODPY_VERSION}/site-packages/onionshare_gui/widgets.py
+share/applications/
share/onionshare/
share/onionshare/images/
share/onionshare/images/file_delete.png