From ac9bc039bb9415675ddf037dfbbe1be142dd862c Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 29 May 2022 15:23:55 -0700 Subject: [PATCH] Fix get_tor_paths() to point to new Windows paths, and actually build onionshare for win64 --- .circleci/config.yml | 81 +++++++++++++++++------------------- cli/onionshare_cli/common.py | 14 +++---- 2 files changed, 45 insertions(+), 50 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a730e6bd..cf1725c0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -202,7 +202,7 @@ jobs: Copy-Item -Path C:\Users\circleci\build\tor\share\tor\geoip6 -Destination C:\Users\circleci\project\desktop\onionshare\resources\tor - restore_cache: - # NOTE: make sure to change when uprading obfs4proxy + # NOTE: make sure to change when upgrading obfs4proxy key: build-win64-obfs4proxy-v0.0.13-{{ .Environment.CACHE_VERSION }}" - run: name: Build obfs4proxy @@ -221,13 +221,13 @@ jobs: Move-Item -Path .\obfs4proxy.exe -Destination C:\Users\circleci\project\desktop\onionshare\resources\tor\obfs4proxy.exe } - save_cache: - # NOTE: make sure to change when uprading obfs4proxy + # NOTE: make sure to change when upgrading obfs4proxy key: build-win64-obfs4proxy-v0.0.13-{{ .Environment.CACHE_VERSION }}" paths: - C:\Users\circleci\project\desktop\onionshare\resources\tor\obfs4proxy.exe - restore_cache: - # NOTE: make sure to change when uprading snowflake + # NOTE: make sure to change when upgrading snowflake key: build-win64-snowflake-v2.1.0-{{ .Environment.CACHE_VERSION }}" - run: name: Build snowflake-client @@ -245,13 +245,13 @@ jobs: Move-Item -Path .\client.exe -Destination C:\Users\circleci\project\desktop\onionshare\resources\tor\snowflake-client.exe } - save_cache: - # NOTE: make sure to change when uprading snowflake + # NOTE: make sure to change when upgrading snowflake key: build-win64-snowflake-v2.1.0-{{ .Environment.CACHE_VERSION }}" paths: - C:\Users\circleci\project\desktop\onionshare\resources\tor\snowflake-client.exe - restore_cache: - # NOTE: make sure to change when uprading meek + # NOTE: make sure to change when upgrading meek key: build-win64-meek-v0.37.0-{{ .Environment.CACHE_VERSION }}" - run: name: Build meek-client @@ -269,52 +269,47 @@ jobs: Move-Item -Path .\meek-client.exe -Destination C:\Users\circleci\project\desktop\onionshare\resources\tor\meek-client.exe } - save_cache: - # NOTE: make sure to change when uprading meek + # NOTE: make sure to change when upgrading meek key: build-win64-meek-v0.37.0-{{ .Environment.CACHE_VERSION }}" paths: - C:\Users\circleci\project\desktop\onionshare\resources\tor\Tor\meek-client.exe - # # Install python - # - run: - # name: Install Python 3.9.12 - # command: | - # choco install python3 --version=3.9.12 + - run: + name: Install Python 3.9.12 + command: | + choco install python3 --version=3.9.12 - # # Install poetry - # - run: - # name: Install poetry - # command: (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python - + - run: + name: Install poetry + command: (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python - - # # Install poetry dependencies - # - restore_cache: - # key: build-win64-desktop-poetry-deps-{{ checksum "C:\Users\circleci\project\desktop\poetry.lock" }}-{{ .Environment.CACHE_VERSION }} - # - run: - # name: Install poetry dependencies - # command: | - # cd C:\Users\circleci\project\desktop - # poetry install - # - save_cache: - # key: build-win64-desktop-poetry-deps-{{ checksum "C:\Users\circleci\project\desktop\poetry.lock" }}-{{ .Environment.CACHE_VERSION }} - # paths: - # - C:\Users\circleci\AppData\Local\pypoetry\Cache\virtualenvs + - restore_cache: + key: build-win64-desktop-poetry-deps-{{ checksum "C:\Users\circleci\project\desktop\poetry.lock" }}-{{ .Environment.CACHE_VERSION }} + - run: + name: Install poetry dependencies + command: | + cd C:\Users\circleci\project\desktop + poetry install + - save_cache: + key: build-win64-desktop-poetry-deps-{{ checksum "C:\Users\circleci\project\desktop\poetry.lock" }}-{{ .Environment.CACHE_VERSION }} + paths: + - C:\Users\circleci\AppData\Local\pypoetry\Cache\virtualenvs - # - run: - # name: Copy tor binary into app - # command: cp ~\Downloads\tor\tor-win32\* ~\project\desktop\onionshare\resources\tor + - run: + name: Build OnionShare + command: | + cd ~\project\desktop + poetry run python .\setup-freeze.py build + poetry run python .\scripts\build-windows.py cleanup-build - # - run: - # name: Build OnionShare - # command: | - # cd ~\project\desktop - # poetry run python .\setup-freeze.py build - # poetry run python .\scripts\build-windows.py cleanup-build - # - run: - # name: Compress - # command: | - # mv ~\project\desktop\build\exe.win-amd64-3.9\ ~\onionshare-win64 - # Compress-Archive -LiteralPath ~\onionshare-win64 -DestinationPath ~\onionshare-win64.zip - # - store_artifacts: - # path: ~\onionshare-win64.zip + - run: + name: Compress + command: | + mv ~\project\desktop\build\exe.win-amd64-3.9\ ~\onionshare-win64 + Compress-Archive -LiteralPath ~\onionshare-win64 -DestinationPath ~\onionshare-win64.zip + + - store_artifacts: + path: ~\onionshare-win64.zip build-win32: executor: diff --git a/cli/onionshare_cli/common.py b/cli/onionshare_cli/common.py index ceec654d..da5204cf 100644 --- a/cli/onionshare_cli/common.py +++ b/cli/onionshare_cli/common.py @@ -332,21 +332,21 @@ class Common: # In Windows, the Tor binaries are in the onionshare package, not the onionshare_cli package base_path = self.get_resource_path("tor") base_path = base_path.replace("onionshare_cli", "onionshare") - tor_path = os.path.join(base_path, "Tor", "tor.exe") + tor_path = os.path.join(base_path, "tor", "tor.exe") # If tor.exe isn't there, mayber we're running from the source tree if not os.path.exists(tor_path): base_path = os.path.join(os.getcwd(), "onionshare", "resources", "tor") - tor_path = os.path.join(base_path, "Tor", "tor.exe") + tor_path = os.path.join(base_path, "tor.exe") if not os.path.exists(tor_path): raise CannotFindTor() - obfs4proxy_file_path = os.path.join(base_path, "Tor", "obfs4proxy.exe") - snowflake_file_path = os.path.join(base_path, "Tor", "snowflake-client.exe") - meek_client_file_path = os.path.join(base_path, "Tor", "meek-client.exe") - tor_geo_ip_file_path = os.path.join(base_path, "Data", "Tor", "geoip") - tor_geo_ipv6_file_path = os.path.join(base_path, "Data", "Tor", "geoip6") + obfs4proxy_file_path = os.path.join(base_path, "tor", "obfs4proxy.exe") + snowflake_file_path = os.path.join(base_path, "tor", "snowflake-client.exe") + meek_client_file_path = os.path.join(base_path, "tor", "meek-client.exe") + tor_geo_ip_file_path = os.path.join(base_path, "tor", "geoip") + tor_geo_ipv6_file_path = os.path.join(base_path, "tor", "geoip6") elif self.platform == "Darwin": # Let's see if we have tor binaries in the onionshare GUI package