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

Reply via email to