diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0420b288..46add218 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -348,6 +348,7 @@ jobs: run: | sudo lxd init --auto sudo snap install snapcraft --classic + sudo ufw disable - name: Build snap run: sudo snapcraft --use-lxd diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 2285b1fc..ed1d9fcb 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,12 +13,13 @@ name: "CodeQL" on: push: - branches: [ develop, stable ] + branches: + - main pull_request: - # The branches below must be a subset of the branches above - branches: [ develop ] + branches: + - main schedule: - - cron: '22 11 * * 5' + - cron: '22 11 * * 5' jobs: analyze: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 68ea4644..78612a6a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,6 +1,12 @@ name: Run Tests run-name: Run tests -on: [push] +on: + push: + branches: + - main + pull_request: + branches: + - main jobs: test-cli: diff --git a/CHANGELOG.md b/CHANGELOG.md index 91a8756d..794e7ff0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # OnionShare Changelog +## 2.6.1 + +* Upgrade Tor, Meek, and obfs4proxy versions +* Bug fix: Restore the primary_action mode settings in a tab after OnionShare reconnects to Tor + ## 2.6 * Major feature: a new 'Quickstart' screen, which enables toggling on or off an animated automatic connection to Tor. This allows configuring network settings prior to automatic connection. diff --git a/cli/onionshare_cli/resources/version.txt b/cli/onionshare_cli/resources/version.txt index c20c8ac5..6a6a3d8e 100644 --- a/cli/onionshare_cli/resources/version.txt +++ b/cli/onionshare_cli/resources/version.txt @@ -1 +1 @@ -2.6 \ No newline at end of file +2.6.1 diff --git a/cli/poetry.lock b/cli/poetry.lock index 2f4a8a88..6fec68b9 100644 --- a/cli/poetry.lock +++ b/cli/poetry.lock @@ -22,7 +22,7 @@ python-versions = ">=3.7" [[package]] name = "certifi" -version = "2022.9.24" +version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -99,6 +99,17 @@ dnspython = ">=1.15.0" greenlet = ">=0.3" six = ">=1.10.0" +[[package]] +name = "exceptiongroup" +version = "1.0.4" +description = "Backport of PEP 654 (exception groups)" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "Flask" version = "2.0.3" @@ -273,14 +284,6 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - [[package]] name = "pycparser" version = "2.21" @@ -325,7 +328,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pytest" -version = "7.1.3" +version = "7.2.0" description = "pytest: simple powerful testing with Python" category = "dev" optional = false @@ -334,12 +337,12 @@ python-versions = ">=3.7" [package.dependencies] attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -tomli = ">=1.0.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] @@ -514,7 +517,7 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "98b6df16d4977242b4669742c67ac52c85023578a418d2099bf49cd8f8520a22" +content-hash = "e3797425212955a094fe10eae238723cfb90bf8132785622a4d44853c2f2927b" [metadata.files] attrs = [ @@ -526,8 +529,8 @@ bidict = [ {file = "bidict-0.22.0.tar.gz", hash = "sha256:5c826b3e15e97cc6e615de295756847c282a79b79c5430d3bfc909b1ac9f5bd8"}, ] certifi = [ - {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, - {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, ] cffi = [ {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, @@ -615,6 +618,10 @@ eventlet = [ {file = "eventlet-0.33.1-py2.py3-none-any.whl", hash = "sha256:a085922698e5029f820cf311a648ac324d73cec0e4792877609d978a4b5bbf31"}, {file = "eventlet-0.33.1.tar.gz", hash = "sha256:afbe17f06a58491e9aebd7a4a03e70b0b63fd4cf76d8307bae07f280479b1515"}, ] +exceptiongroup = [ + {file = "exceptiongroup-1.0.4-py3-none-any.whl", hash = "sha256:542adf9dea4055530d6e1279602fa5cb11dab2395fa650b8674eaec35fc4a828"}, + {file = "exceptiongroup-1.0.4.tar.gz", hash = "sha256:bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec"}, +] Flask = [ {file = "Flask-2.0.3-py3-none-any.whl", hash = "sha256:59da8a3170004800a2837844bfa84d49b022550616070f7cb1a659682b2e7c9f"}, {file = "Flask-2.0.3.tar.gz", hash = "sha256:e1120c228ca2f553b470df4a5fa927ab66258467526069981b3eb0a91902687d"}, @@ -822,10 +829,6 @@ psutil = [ {file = "psutil-5.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:68b35cbff92d1f7103d8f1db77c977e72f49fcefae3d3d2b91c76b0e7aef48b8"}, {file = "psutil-5.9.2.tar.gz", hash = "sha256:feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c"}, ] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] pycparser = [ {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, @@ -852,8 +855,8 @@ PySocks = [ {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, ] pytest = [ - {file = "pytest-7.1.3-py3-none-any.whl", hash = "sha256:1377bda3466d70b55e3f5cecfa55bb7cfcf219c7964629b967c37cf0bda818b7"}, - {file = "pytest-7.1.3.tar.gz", hash = "sha256:4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39"}, + {file = "pytest-7.2.0-py3-none-any.whl", hash = "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71"}, + {file = "pytest-7.2.0.tar.gz", hash = "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59"}, ] python-engineio = [ {file = "python-engineio-4.3.4.tar.gz", hash = "sha256:d8d8b072799c36cadcdcc2b40d2a560ce09797ab3d2d596b2ad519a5e4df19ae"}, diff --git a/cli/pyproject.toml b/cli/pyproject.toml index 80f8796c..d0f311b3 100644 --- a/cli/pyproject.toml +++ b/cli/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "onionshare_cli" -version = "2.6" +version = "2.6.1" description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service." authors = ["Micah Lee "] license = "GPLv3+" @@ -34,7 +34,7 @@ stem = "1.8.1" werkzeug = "~2.0.3" [tool.poetry.dev-dependencies] -pytest = "*" +pytest = ">=7.2.0" [tool.poetry.scripts] onionshare-cli = 'onionshare_cli:main' diff --git a/desktop/onionshare/main_window.py b/desktop/onionshare/main_window.py index 5eabd103..8ebde01e 100644 --- a/desktop/onionshare/main_window.py +++ b/desktop/onionshare/main_window.py @@ -244,17 +244,6 @@ class MainWindow(QtWidgets.QMainWindow): break self.tabs.open_settings_tab(from_autoconnect, active_tab=active_tab) - def settings_have_changed(self): - self.common.log("OnionShareGui", "settings_have_changed") - - if self.common.gui.onion.is_authenticated(): - self.status_bar.clearMessage() - - # Tell each tab that settings have changed - for index in range(self.tabs.count()): - tab = self.tabs.widget(index) - tab.settings_have_changed() - def bring_to_front(self): self.common.log("MainWindow", "bring_to_front") self.raise_() diff --git a/desktop/onionshare/settings_tab.py b/desktop/onionshare/settings_tab.py index 6f812a51..ad911412 100644 --- a/desktop/onionshare/settings_tab.py +++ b/desktop/onionshare/settings_tab.py @@ -315,10 +315,6 @@ class SettingsTab(QtWidgets.QWidget): return settings - def settings_have_changed(self): - # Global settings have changed - self.common.log("SettingsTab", "settings_have_changed") - def _update_autoupdate_timestamp(self, autoupdate_timestamp): self.common.log("SettingsTab", "_update_autoupdate_timestamp") diff --git a/desktop/onionshare/tab/mode/__init__.py b/desktop/onionshare/tab/mode/__init__.py index ee1cbdd7..27958d84 100644 --- a/desktop/onionshare/tab/mode/__init__.py +++ b/desktop/onionshare/tab/mode/__init__.py @@ -564,6 +564,8 @@ class Mode(QtWidgets.QWidget): self.content_widget.show() self.tor_not_connected_widget.hide() self.primary_action.show() + if not self.tab.timer.isActive(): + self.tab.timer.start(500) def tor_connection_stopped(self): """ diff --git a/desktop/onionshare/tab/mode/chat_mode/__init__.py b/desktop/onionshare/tab/mode/chat_mode/__init__.py index aae41dcc..01f194b1 100644 --- a/desktop/onionshare/tab/mode/chat_mode/__init__.py +++ b/desktop/onionshare/tab/mode/chat_mode/__init__.py @@ -149,11 +149,5 @@ class ChatMode(Mode): """ self.primary_action.hide() - def on_reload_settings(self): - """ - We should be ok to re-enable the 'Start Receive Mode' button now. - """ - self.primary_action.show() - def update_primary_action(self): self.common.log("ChatMode", "update_primary_action") diff --git a/desktop/onionshare/tab/mode/receive_mode/__init__.py b/desktop/onionshare/tab/mode/receive_mode/__init__.py index f7f3f538..87f8fc5f 100644 --- a/desktop/onionshare/tab/mode/receive_mode/__init__.py +++ b/desktop/onionshare/tab/mode/receive_mode/__init__.py @@ -409,12 +409,6 @@ class ReceiveMode(Mode): self.history.in_progress_count -= 1 self.history.update_in_progress() - def on_reload_settings(self): - """ - We should be ok to re-enable the 'Start Receive Mode' button now. - """ - self.primary_action.show() - def reset_info_counters(self): """ Set the info counters back to zero. diff --git a/desktop/onionshare/tab/mode/share_mode/__init__.py b/desktop/onionshare/tab/mode/share_mode/__init__.py index 0142e5a2..daa35a4d 100644 --- a/desktop/onionshare/tab/mode/share_mode/__init__.py +++ b/desktop/onionshare/tab/mode/share_mode/__init__.py @@ -362,16 +362,6 @@ class ShareMode(Mode): strings._("systray_share_canceled_message"), ) - def on_reload_settings(self): - """ - If there were some files listed for sharing, we should be ok to re-enable - the 'Start Sharing' button now. - """ - if self.server_status.file_selection.get_num_files() > 0: - self.primary_action.show() - self.info_label.show() - self.remove_all_button.show() - def update_primary_action(self): self.common.log("ShareMode", "update_primary_action") diff --git a/desktop/onionshare/tab/mode/website_mode/__init__.py b/desktop/onionshare/tab/mode/website_mode/__init__.py index 8f310d9f..47614cae 100644 --- a/desktop/onionshare/tab/mode/website_mode/__init__.py +++ b/desktop/onionshare/tab/mode/website_mode/__init__.py @@ -317,16 +317,6 @@ class WebsiteMode(Mode): """ self.primary_action.hide() - def on_reload_settings(self): - """ - If there were some files listed for sharing, we should be ok to re-enable - the 'Start Sharing' button now. - """ - if self.server_status.file_selection.get_num_files() > 0: - self.primary_action.show() - self.info_label.show() - self.remove_all_button.show() - def update_primary_action(self): self.common.log("WebsiteMode", "update_primary_action") diff --git a/desktop/onionshare/tab/tab.py b/desktop/onionshare/tab/tab.py index 50cc0965..86c55088 100644 --- a/desktop/onionshare/tab/tab.py +++ b/desktop/onionshare/tab/tab.py @@ -630,20 +630,6 @@ class Tab(QtWidgets.QWidget): else: return None - def settings_have_changed(self): - # Global settings have changed - self.common.log("Tab", "settings_have_changed") - - # We might've stopped the main requests timer if a Tor connection failed. If we've reloaded - # settings, we probably succeeded in obtaining a new connection. If so, restart the timer. - if not self.common.gui.local_only: - if self.common.gui.onion.is_authenticated(): - mode = self.get_mode() - if mode: - if not self.timer.isActive(): - self.timer.start(500) - mode.on_reload_settings() - def close_tab(self): self.common.log("Tab", "close_tab") if self.mode is None: diff --git a/desktop/onionshare/tor_settings_tab.py b/desktop/onionshare/tor_settings_tab.py index 1b097773..0a2b12e2 100644 --- a/desktop/onionshare/tor_settings_tab.py +++ b/desktop/onionshare/tor_settings_tab.py @@ -903,7 +903,3 @@ class TorSettingsTab(QtWidgets.QWidget): # Wait 1ms for the event loop to finish, then quit QtCore.QTimer.singleShot(1, self.common.gui.qtapp.quit) - - def settings_have_changed(self): - # Global settings have changed - self.common.log("TorSettingsTab", "settings_have_changed") diff --git a/desktop/org.onionshare.OnionShare.appdata.xml b/desktop/org.onionshare.OnionShare.appdata.xml index 9aa5474e..3134f74f 100644 --- a/desktop/org.onionshare.OnionShare.appdata.xml +++ b/desktop/org.onionshare.OnionShare.appdata.xml @@ -24,6 +24,6 @@ micah@micahflee.com - + diff --git a/desktop/poetry.lock b/desktop/poetry.lock index ed7d9f93..7bbf0e17 100644 --- a/desktop/poetry.lock +++ b/desktop/poetry.lock @@ -45,7 +45,7 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2022.9.24" +version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -151,6 +151,17 @@ dnspython = ">=1.15.0" greenlet = ">=0.3" six = ">=1.10.0" +[[package]] +name = "exceptiongroup" +version = "1.0.4" +description = "Backport of PEP 654 (exception groups)" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "Flask" version = "2.0.3" @@ -306,7 +317,7 @@ python-versions = "*" [[package]] name = "onionshare-cli" -version = "2.6" +version = "2.6.1" description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service." category = "main" optional = false @@ -402,14 +413,6 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [package.extras] test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -category = "dev" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" - [[package]] name = "pycparser" version = "2.21" @@ -490,7 +493,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" [[package]] name = "pytest" -version = "7.1.3" +version = "7.2.0" description = "pytest: simple powerful testing with Python" category = "dev" optional = false @@ -499,12 +502,12 @@ python-versions = ">=3.7" [package.dependencies] attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -tomli = ">=1.0.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} [package.extras] testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] @@ -522,7 +525,7 @@ pytest = ">=5.0" [[package]] name = "pytest-qt" -version = "4.1.0" +version = "4.2.0" description = "pytest support for PyQt and PySide applications" category = "dev" optional = false @@ -739,7 +742,7 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] [metadata] lock-version = "1.1" python-versions = ">=3.7,<3.11" -content-hash = "d6ad676f3ecea349558ed78d2a764826a485adab6f6535818553666b580c2367" +content-hash = "074ec9d83cff69188cad191ec42d1ac60a4f3a12beda367e4bb0e95f4d06fcb1" [metadata.files] attrs = [ @@ -774,8 +777,8 @@ black = [ {file = "black-22.10.0.tar.gz", hash = "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1"}, ] certifi = [ - {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, - {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, ] cffi = [ {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, @@ -905,6 +908,10 @@ eventlet = [ {file = "eventlet-0.33.1-py2.py3-none-any.whl", hash = "sha256:a085922698e5029f820cf311a648ac324d73cec0e4792877609d978a4b5bbf31"}, {file = "eventlet-0.33.1.tar.gz", hash = "sha256:afbe17f06a58491e9aebd7a4a03e70b0b63fd4cf76d8307bae07f280479b1515"}, ] +exceptiongroup = [ + {file = "exceptiongroup-1.0.4-py3-none-any.whl", hash = "sha256:542adf9dea4055530d6e1279602fa5cb11dab2395fa650b8674eaec35fc4a828"}, + {file = "exceptiongroup-1.0.4.tar.gz", hash = "sha256:bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec"}, +] Flask = [ {file = "Flask-2.0.3-py3-none-any.whl", hash = "sha256:59da8a3170004800a2837844bfa84d49b022550616070f7cb1a659682b2e7c9f"}, {file = "Flask-2.0.3.tar.gz", hash = "sha256:e1120c228ca2f553b470df4a5fa927ab66258467526069981b3eb0a91902687d"}, @@ -1159,10 +1166,6 @@ psutil = [ {file = "psutil-5.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:68b35cbff92d1f7103d8f1db77c977e72f49fcefae3d3d2b91c76b0e7aef48b8"}, {file = "psutil-5.9.2.tar.gz", hash = "sha256:feb861a10b6c3bb00701063b37e4afc754f8217f0f09c42280586bd6ac712b5c"}, ] -py = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] pycparser = [ {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, @@ -1213,16 +1216,16 @@ PySocks = [ {file = "PySocks-1.7.1.tar.gz", hash = "sha256:3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0"}, ] pytest = [ - {file = "pytest-7.1.3-py3-none-any.whl", hash = "sha256:1377bda3466d70b55e3f5cecfa55bb7cfcf219c7964629b967c37cf0bda818b7"}, - {file = "pytest-7.1.3.tar.gz", hash = "sha256:4f365fec2dff9c1162f834d9f18af1ba13062db0c708bf7b946f8a5c76180c39"}, + {file = "pytest-7.2.0-py3-none-any.whl", hash = "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71"}, + {file = "pytest-7.2.0.tar.gz", hash = "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59"}, ] pytest-faulthandler = [ {file = "pytest-faulthandler-2.0.1.tar.gz", hash = "sha256:ed72bbce87ac344da81eb7d882196a457d4a1026a3da4a57154dacd85cd71ae5"}, {file = "pytest_faulthandler-2.0.1-py2.py3-none-any.whl", hash = "sha256:236430ba962fd1c910d670922be55fe5b25ea9bc3fc6561a0cafbb8759e7504d"}, ] pytest-qt = [ - {file = "pytest-qt-4.1.0.tar.gz", hash = "sha256:027f3d3f5dd04af0530d846cf50fb858f719f7e87c2e4a1c686abd4e0f72172a"}, - {file = "pytest_qt-4.1.0-py2.py3-none-any.whl", hash = "sha256:edd08dae3b207405edddfc482d4dda4b848e85a8e6a0e7c36f20bac11ab328de"}, + {file = "pytest-qt-4.2.0.tar.gz", hash = "sha256:00a17b586dd530b6d7a9399923a40489ca4a9a309719011175f55dc6b5dc8f41"}, + {file = "pytest_qt-4.2.0-py2.py3-none-any.whl", hash = "sha256:a7659960a1ab2af8fc944655a157ff45d714b80ed7a6af96a4b5bb99ecf40a22"}, ] python-engineio = [ {file = "python-engineio-4.3.4.tar.gz", hash = "sha256:d8d8b072799c36cadcdcc2b40d2a560ce09797ab3d2d596b2ad519a5e4df19ae"}, diff --git a/desktop/pyproject.toml b/desktop/pyproject.toml index 432ed258..073da182 100644 --- a/desktop/pyproject.toml +++ b/desktop/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "onionshare" -version = "2.6" +version = "2.6.1" description = "OnionShare lets you securely and anonymously send and receive files. It works by starting a web server, making it accessible as a Tor onion service, and generating an unguessable web address so others can download files from you, or upload files to you. It does _not_ require setting up a separate server or using a third party file-sharing service." authors = ["Micah Lee "] license = "GPLv3+" @@ -15,9 +15,9 @@ pyside6 = "^6.4.0" [tool.poetry.dev-dependencies] click = "*" black = "*" -pytest = "*" +pytest = ">=7.2.0" pytest-faulthandler = "*" -pytest-qt = "*" +pytest-qt = ">=4.2.0" cx_freeze = "*" importlib-metadata = "*" diff --git a/desktop/scripts/build-pt-obfs4proxy.ps1 b/desktop/scripts/build-pt-obfs4proxy.ps1 index fa760b85..5b709812 100644 --- a/desktop/scripts/build-pt-obfs4proxy.ps1 +++ b/desktop/scripts/build-pt-obfs4proxy.ps1 @@ -1,4 +1,4 @@ -$env:OBFS4PROXY_TAG = 'obfs4proxy-0.0.13' +$env:OBFS4PROXY_TAG = 'obfs4proxy-0.0.14' New-Item -ItemType Directory -Force -Path .\build\obfs4proxy cd .\build\obfs4proxy diff --git a/desktop/scripts/build-pt-obfs4proxy.sh b/desktop/scripts/build-pt-obfs4proxy.sh index 15b317a3..7fdebd01 100755 --- a/desktop/scripts/build-pt-obfs4proxy.sh +++ b/desktop/scripts/build-pt-obfs4proxy.sh @@ -1,9 +1,9 @@ #!/bin/bash -OBFS4PROXY_TAG=obfs4proxy-0.0.13 +OBFS4PROXY_TAG=obfs4proxy-0.0.14 mkdir -p ./build/obfs4proxy cd ./build/obfs4proxy git clone https://gitlab.com/yawning/obfs4 || echo "already cloned" cd obfs4 git checkout $OBFS4PROXY_TAG -go build -o ../../../onionshare/resources/tor/obfs4proxy ./obfs4proxy \ No newline at end of file +go build -o ../../../onionshare/resources/tor/obfs4proxy ./obfs4proxy diff --git a/desktop/scripts/build-pt-snowflake.ps1 b/desktop/scripts/build-pt-snowflake.ps1 index 51a127c9..0c30133c 100644 --- a/desktop/scripts/build-pt-snowflake.ps1 +++ b/desktop/scripts/build-pt-snowflake.ps1 @@ -1,4 +1,4 @@ -$env:SNOWFLAKE_TAG = 'v2.2.0' +$env:SNOWFLAKE_TAG = 'v2.3.1' New-Item -ItemType Directory -Force -Path .\build\snowflake cd .\build\snowflake diff --git a/desktop/scripts/build-pt-snowflake.sh b/desktop/scripts/build-pt-snowflake.sh index 24a7ce74..94300491 100755 --- a/desktop/scripts/build-pt-snowflake.sh +++ b/desktop/scripts/build-pt-snowflake.sh @@ -1,5 +1,5 @@ #!/bin/bash -SNOWFLAKE_TAG=v2.2.0 +SNOWFLAKE_TAG=v2.3.1 mkdir -p ./build/snowflake cd ./build/snowflake diff --git a/desktop/scripts/get-tor.py b/desktop/scripts/get-tor.py index 88cb2fa5..8ab630a0 100644 --- a/desktop/scripts/get-tor.py +++ b/desktop/scripts/get-tor.py @@ -9,28 +9,28 @@ import subprocess import requests import click -torbrowser_version = "11.5.2" +torbrowser_version = "12.0" expected_win32_sha256 = ( - "07e721ae76bc7eefe25f20792091009238e9568d500331fc64bdd8796fec8c0f" + "a9cc0f0af2ce8ca0d7a27d65c7efa37f6419cfc793fa80371e7db73d44b4cc02" ) expected_win64_sha256 = ( - "8237bca22b5fa545de21f84ba8c9270c84442d0fc50a2e626f757d069e4bc7a8" + "f496cc0219c8b73f1f100124d6514bad55f503ff76202747f23620a6677e83c2" ) expected_macos_sha256 = ( - "b80d3dba83b343fab7a6c8fc08440b2751da1ac12f86fe593da8e74069e4d7f6" + "11c8360187356e6c0837612a320f1a117303fc449602c9fd73f4faf9f9bbcfc9" ) expected_linux64_sha256 = ( - "90cdce3854e9114ee7232aaa74672a2d9f3a40b6fa8ac33971f586ee3a3cf75a" + "850ce601d815bac63e4f5937646d2b497173be28b27b30a7526ebb946a459874" ) -win32_url = f"https://dist.torproject.org/torbrowser/{torbrowser_version}/torbrowser-install-{torbrowser_version}_en-US.exe" -win32_filename = f"torbrowser-install-{torbrowser_version}_en-US.exe" -win64_url = f"https://dist.torproject.org/torbrowser/{torbrowser_version}/torbrowser-install-win64-{torbrowser_version}_en-US.exe" -win64_filename = f"torbrowser-install-win64-{torbrowser_version}_en-US.exe" -macos_url = f"https://dist.torproject.org/torbrowser/{torbrowser_version}/TorBrowser-{torbrowser_version}-osx64_en-US.dmg" -macos_filename = f"TorBrowser-{torbrowser_version}-osx64_en-US.dmg" -linux64_url = f"https://dist.torproject.org/torbrowser/{torbrowser_version}/tor-browser-linux64-{torbrowser_version}_en-US.tar.xz" -linux64_filename = f"tor-browser-linux64-{torbrowser_version}_en-US.tar.xz" +win32_filename = f"torbrowser-install-{torbrowser_version}_ALL.exe" +win32_url = f"https://dist.torproject.org/torbrowser/{torbrowser_version}/{win32_filename}" +win64_filename = f"torbrowser-install-win64-{torbrowser_version}_ALL.exe" +win64_url = f"https://dist.torproject.org/torbrowser/{torbrowser_version}/{win64_filename}" +macos_filename = f"TorBrowser-{torbrowser_version}-macos_ALL.dmg" +macos_url = f"https://dist.torproject.org/torbrowser/{torbrowser_version}/{macos_filename}" +linux64_filename = f"tor-browser-linux64-{torbrowser_version}_ALL.tar.xz" +linux64_url = f"https://dist.torproject.org/torbrowser/{torbrowser_version}/{linux64_filename}" # Common paths @@ -46,32 +46,14 @@ def get_tor_windows(platform): win_filename = win32_filename expected_win_sha256 = expected_win32_sha256 bin_filenames = [ - "libcrypto-1_1.dll", - "libevent-2-1-7.dll", - "libevent_core-2-1-7.dll", - "libevent_extra-2-1-7.dll", - "libgcc_s_dw2-1.dll", - "libssl-1_1.dll", - "libssp-0.dll", - "libwinpthread-1.dll", - "tor.exe", - "zlib1.dll", + "tor.exe" ] elif platform == "win64": win_url = win64_url win_filename = win64_filename expected_win_sha256 = expected_win64_sha256 bin_filenames = [ - "libcrypto-1_1-x64.dll", - "libevent-2-1-7.dll", - "libevent_core-2-1-7.dll", - "libevent_extra-2-1-7.dll", - "libgcc_s_seh-1.dll", - "libssl-1_1-x64.dll", - "libssp-0.dll", - "libwinpthread-1.dll", - "tor.exe", - "zlib1.dll", + "tor.exe" ] else: click.echo("invalid platform") diff --git a/desktop/setup.py b/desktop/setup.py index 12a6cda4..7e947f51 100644 --- a/desktop/setup.py +++ b/desktop/setup.py @@ -3,7 +3,7 @@ import setuptools # The version must be hard-coded because Snapcraft won't have access to ../cli -version = "2.6" +version = "2.6.1" setuptools.setup( name="onionshare", diff --git a/docs/poetry.lock b/docs/poetry.lock index dec8a369..912c1d2a 100644 --- a/docs/poetry.lock +++ b/docs/poetry.lock @@ -36,7 +36,7 @@ pytz = ">=2015.7" [[package]] name = "certifi" -version = "2022.9.24" +version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false @@ -462,8 +462,8 @@ Babel = [ {file = "Babel-2.10.3.tar.gz", hash = "sha256:7614553711ee97490f732126dc077f8d0ae084ebc6a96e23db1482afabdb2c51"}, ] certifi = [ - {file = "certifi-2022.9.24-py3-none-any.whl", hash = "sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382"}, - {file = "certifi-2022.9.24.tar.gz", hash = "sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14"}, + {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, + {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, ] charset-normalizer = [ {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, diff --git a/docs/source/conf.py b/docs/source/conf.py index c3f26ba3..5b1cd57a 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,6 +1,6 @@ project = "OnionShare" author = copyright = "Micah Lee, et al." -version = release = "2.6" +version = release = "2.6.1" extensions = ["sphinx_rtd_theme"] templates_path = ["_templates"] @@ -24,7 +24,7 @@ languages = [ ("Українська", "uk"), # Ukrainian ] -versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.5", "2.6"] +versions = ["2.3", "2.3.1", "2.3.2", "2.3.3", "2.4", "2.5", "2.6", "2.6.1"] html_theme = "sphinx_rtd_theme" html_logo = "_static/logo.png" diff --git a/flatpak/org.onionshare.OnionShare.yaml b/flatpak/org.onionshare.OnionShare.yaml index e5946bd8..5796d6a3 100644 --- a/flatpak/org.onionshare.OnionShare.yaml +++ b/flatpak/org.onionshare.OnionShare.yaml @@ -35,18 +35,20 @@ modules: - /bin sources: - type: archive - sha256: 7ff5f1cc4291fffb6d5a3098b3090abe4d415da2adec740b4e901893d95d7137 - url: https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-5.15.3-src/pyside-setup-opensource-src-5.15.3.tar.xz + sha256: f61210ae24e6882d5d0ca0059229e5dc4f35e2bca92dd6caf96c0f41943a8294 + url: https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-5.15.7-src/pyside-setup-opensource-src-5.15.7.tar.xz - type: shell commands: - mkdir -p /app/include/qt5tmp && cp -R /usr/include/Qt* /app/include/qt5tmp # https://bugreports.qt.io/browse/PYSIDE-787 - sed -i 's|\(--include-paths=\)|\1/app/include/qt5tmp:|' sources/pyside2/cmake/Macros/PySideModules.cmake + - sed -i s/''/'\"private\/qaccessiblequickview_p.h\"'/ /app/include/qt5tmp/QtQuickWidgets/qaccessiblequickwidget.h + - mkdir -p /app/include/qt5tmp/QtQuickWidgets/private && cp /app/include/qt5tmp/QtQuick/5.15.7/QtQuick/private/qaccessiblequickview_p.h /app/include/qt5tmp/QtQuickWidgets/private/qaccessiblequickview_p.h - name: tor buildsystem: autotools sources: - type: archive - sha256: d39d38598208f4d6201d7edc6ad573b3a898a932a5c68d3074016a9525519b22 - url: https://dist.torproject.org/tor-0.4.7.9.tar.gz + sha256: 3b5d969712c467851bd028f314343ef15a97ea457191e93ffa97310b05b9e395 + url: https://dist.torproject.org/tor-0.4.7.12.tar.gz modules: - name: libevent buildsystem: autotools @@ -80,7 +82,7 @@ modules: dest: src/golang.org/x/sys - type: git url: https://gitlab.com/yawning/obfs4 - commit: e330d1b7024b4ab04f7d96cc1afc61325744fafc + commit: 336a71d6e4cfd2d33e9c57797828007ad74975e9 dest: src/gitlab.com/yawning/obfs4.git - type: git url: https://gitlab.com/yawning/utls @@ -90,6 +92,14 @@ modules: url: https://gitlab.com/yawning/bsaes commit: 0a714cd429ec754482b4001e918db30cd2094405 dest: src/gitlab.com/yawning/bsaes.git + - type: git + url: https://gitlab.com/yawning/edwards25519-extra + commit: def713fd18e464864613d2b55ef41a21df2c9493 + dest: src/gitlab.com/yawning/edwards25519-extra.git + - type: git + url: https://github.com/FiloSottile/edwards25519 + commit: 8c58ed0e35502a485538e4c5ec086070840f3410 + dest: src/filippo.io/edwards25519 - type: git url: https://git.torproject.org/pluggable-transports/goptlib commit: 13b7b3552e1eef32e4d8a2a7813f22488f91dc09 @@ -173,8 +183,12 @@ modules: dest: src/git.torproject.org/pluggable-transports/goptlib.git - type: git url: https://git.torproject.org/pluggable-transports/snowflake - commit: ead5a960d7fa19dc890ccbfc0765c5ab6629eaa9 + commit: 36f03dfd4483922b3e7400dedc71df9cf2f30b6b dest: src/git.torproject.org/pluggable-transports/snowflake.git + - type: git + url: https://github.com/refraction-networking/utls + commit: 0b2885c8c0d4467cfe98136748a9d011d0b8fff0 + dest: src/github.com/refraction-networking/utls - type: git url: https://github.com/templexxx/xorsimd commit: e2f34adfb57b524164fc712df2fcfd991ed0ccad @@ -469,4 +483,4 @@ modules: sha256: 4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a - type: file url: https://files.pythonhosted.org/packages/2e/a7/f20fa91d9de799f8e19bacf225bc993b8a53b5fc6f41ffa20d64f0850579/Cython-3.0.0a11.tar.gz - sha256: e4672491fb31546b9abb63677f638e738085dc9321398170956ef6fbfc0e1726 \ No newline at end of file + sha256: e4672491fb31546b9abb63677f638e738085dc9321398170956ef6fbfc0e1726 diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index fb1e419d..d7f798fb 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,6 @@ name: onionshare base: core20 -version: "2.6" +version: "2.6.1" summary: Securely and anonymously share files, host websites, and chat using Tor description: | OnionShare lets you securely and anonymously send and receive files. It works by starting @@ -12,6 +12,7 @@ grade: stable # stable or devel confinement: strict architectures: + - build-on: i386 - build-on: amd64 - build-on: arm64 - build-on: armhf @@ -193,8 +194,8 @@ parts: after: [onionshare-cli] tor: - source: https://dist.torproject.org/tor-0.4.7.9.tar.gz - source-checksum: sha256/d39d38598208f4d6201d7edc6ad573b3a898a932a5c68d3074016a9525519b22 + source: https://dist.torproject.org/tor-0.4.7.12.tar.gz + source-checksum: sha256/3b5d969712c467851bd028f314343ef15a97ea457191e93ffa97310b05b9e395 source-type: tar plugin: autotools autotools-configure-parameters: @@ -216,7 +217,7 @@ parts: - go/latest/stable source: https://gitlab.com/yawning/obfs4.git source-type: git - source-tag: obfs4proxy-0.0.13 + source-tag: obfs4proxy-0.0.14 snowflake-client: plugin: go @@ -224,7 +225,7 @@ parts: - go/latest/stable source: https://git.torproject.org/pluggable-transports/snowflake.git source-type: git - source-tag: v2.2.0 + source-tag: v2.3.1 organize: bin/client: bin/snowflake-client