aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Lee <micah@micahflee.com>2024-02-28 07:54:23 -0800
committerGitHub <noreply@github.com>2024-02-28 07:54:23 -0800
commit3438f505e9bbab1f72939d3975d1ef55fadaa7c8 (patch)
tree55d37ff3dfc284206266bf2f38f89f32c5ca3709
parente4d6a6947e6689612197a76d43371675d5f6b5d7 (diff)
parent2d22910c999f3960adf5e9fa136744e78e31b8ea (diff)
downloadonionshare-3438f505e9bbab1f72939d3975d1ef55fadaa7c8.tar.gz
onionshare-3438f505e9bbab1f72939d3975d1ef55fadaa7c8.zip
Merge pull request #1880 from onionshare/fix-macos-silicon-build
Adds packages in zip_include_packages as well
-rw-r--r--RELEASE.md2
-rw-r--r--desktop/scripts/build-macos.py15
-rw-r--r--desktop/setup-freeze.py142
3 files changed, 90 insertions, 69 deletions
diff --git a/RELEASE.md b/RELEASE.md
index f2ddfaa3..39ac214d 100644
--- a/RELEASE.md
+++ b/RELEASE.md
@@ -238,8 +238,6 @@ Make the Apple Silicon app bundle:
```sh
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry run python ./setup-freeze.py bdist_mac
-rm -rf build/OnionShare.app/Contents/Resources/lib
-mv build/exe.macosx-10.9-universal2-3.11/lib build/OnionShare.app/Contents/Resources/
/Library/Frameworks/Python.framework/Versions/3.11/bin/poetry run python ./scripts/build-macos.py cleanup-build
```
diff --git a/desktop/scripts/build-macos.py b/desktop/scripts/build-macos.py
index 8bbadfba..0d09ac72 100644
--- a/desktop/scripts/build-macos.py
+++ b/desktop/scripts/build-macos.py
@@ -167,12 +167,15 @@ def cleanup_build():
"QtWebEngineQuick",
"QtWebEngineQuickDelegatesQml",
]:
- shutil.rmtree(
- f"{app_path}/Contents/MacOS/lib/PySide6/Qt/lib/{framework}.framework"
- )
- print(
- f"Deleted: {app_path}/Contents/MacOS/lib/PySide6/Qt/lib/{framework}.framework"
- )
+ try:
+ shutil.rmtree(
+ f"{app_path}/Contents/MacOS/lib/PySide6/Qt/lib/{framework}.framework"
+ )
+ print(
+ f"Deleted: {app_path}/Contents/MacOS/lib/PySide6/Qt/lib/{framework}.framework"
+ )
+ except FileNotFoundError:
+ pass
try:
os.remove(f"{app_path}/Contents/MacOS/lib/PySide6/{framework}.abi3.so")
print(f"Deleted: {app_path}/Contents/MacOS/lib/PySide6/{framework}.abi3.so")
diff --git a/desktop/setup-freeze.py b/desktop/setup-freeze.py
index fe58be9d..d311a942 100644
--- a/desktop/setup-freeze.py
+++ b/desktop/setup-freeze.py
@@ -57,6 +57,86 @@ elif platform.system() == "Linux":
print("Install the patchelf package")
sys.exit()
+
+build_exe_options = {
+ "packages": [
+ "cffi",
+ "engineio",
+ "engineio.async_drivers.gevent",
+ "engineio.async_drivers.gevent_uwsgi",
+ "gevent",
+ "jinja2.ext",
+ "onionshare",
+ "onionshare_cli",
+ "PySide6",
+ "shiboken6",
+ "PySide6.QtCore",
+ "PySide6.QtGui",
+ "PySide6.QtWidgets",
+ ],
+ "excludes": [
+ "test",
+ "tkinter",
+ "PySide6.Qt3DAnimation",
+ "PySide6.Qt3DCore",
+ "PySide6.Qt3DExtras",
+ "PySide6.Qt3DInput",
+ "PySide6.Qt3DLogic",
+ "PySide6.Qt3DRender",
+ "PySide6.QtCharts",
+ "PySide6.QtConcurrent",
+ "PySide6.QtDataVisualization",
+ "PySide6.QtHelp",
+ "PySide6.QtLocation",
+ "PySide6.QtMultimedia",
+ "PySide6.QtMultimediaWidgets",
+ "PySide6.QtNetwork",
+ "PySide6.QtOpenGL",
+ "PySide6.QtOpenGLFunctions",
+ "PySide6.QtPositioning",
+ "PySide6.QtPrintSupport",
+ "PySide6.QtQml",
+ "PySide6.QtQuick",
+ "PySide6.QtQuickControls2",
+ "PySide6.QtQuickWidgets",
+ "PySide6.QtRemoteObjects",
+ "PySide6.QtScript",
+ "PySide6.QtScriptTools",
+ "PySide6.QtScxml",
+ "PySide6.QtSensors",
+ "PySide6.QtSerialPort",
+ "PySide6.QtSql",
+ "PySide6.QtTest",
+ "PySide6.QtTextToSpeech",
+ "PySide6.QtUiTools",
+ "PySide6.QtWebChannel",
+ "PySide6.QtWebEngine",
+ "PySide6.QtWebEngineCore",
+ "PySide6.QtWebEngineWidgets",
+ "PySide6.QtWebSockets",
+ "PySide6.QtXml",
+ "PySide6.QtXmlPatterns",
+ ],
+ "include_files": include_files,
+ "include_msvcr": include_msvcr,
+}
+
+# If Mac Silicon, the dependencies need to be in zip_include_packages
+if platform.system() == "Darwin" and platform.processor() == "arm":
+ build_exe_options["zip_include_packages"] = [
+ "cffi",
+ "engineio",
+ "engineio.async_drivers.gevent",
+ "engineio.async_drivers.gevent_uwsgi",
+ "gevent",
+ "jinja2.ext",
+ "PySide6",
+ "shiboken6",
+ "PySide6.QtCore",
+ "PySide6.QtGui",
+ "PySide6.QtWidgets",
+ ]
+
setup(
name="onionshare",
version=version,
@@ -68,67 +148,7 @@ setup(
),
options={
# build_exe, for Windows and macOS
- "build_exe": {
- "packages": [
- "cffi",
- "engineio",
- "engineio.async_drivers.gevent",
- "engineio.async_drivers.gevent_uwsgi",
- "gevent",
- "jinja2.ext",
- "onionshare",
- "onionshare_cli",
- "PySide6",
- "PySide6.QtCore",
- "PySide6.QtGui",
- "PySide6.QtWidgets",
- ],
- "excludes": [
- "test",
- "tkinter",
- "PySide6.Qt3DAnimation",
- "PySide6.Qt3DCore",
- "PySide6.Qt3DExtras",
- "PySide6.Qt3DInput",
- "PySide6.Qt3DLogic",
- "PySide6.Qt3DRender",
- "PySide6.QtCharts",
- "PySide6.QtConcurrent",
- "PySide6.QtDataVisualization",
- "PySide6.QtHelp",
- "PySide6.QtLocation",
- "PySide6.QtMultimedia",
- "PySide6.QtMultimediaWidgets",
- "PySide6.QtNetwork",
- "PySide6.QtOpenGL",
- "PySide6.QtOpenGLFunctions",
- "PySide6.QtPositioning",
- "PySide6.QtPrintSupport",
- "PySide6.QtQml",
- "PySide6.QtQuick",
- "PySide6.QtQuickControls2",
- "PySide6.QtQuickWidgets",
- "PySide6.QtRemoteObjects",
- "PySide6.QtScript",
- "PySide6.QtScriptTools",
- "PySide6.QtScxml",
- "PySide6.QtSensors",
- "PySide6.QtSerialPort",
- "PySide6.QtSql",
- "PySide6.QtTest",
- "PySide6.QtTextToSpeech",
- "PySide6.QtUiTools",
- "PySide6.QtWebChannel",
- "PySide6.QtWebEngine",
- "PySide6.QtWebEngineCore",
- "PySide6.QtWebEngineWidgets",
- "PySide6.QtWebSockets",
- "PySide6.QtXml",
- "PySide6.QtXmlPatterns",
- ],
- "include_files": include_files,
- "include_msvcr": include_msvcr,
- },
+ "build_exe": build_exe_options,
# bdist_mac, making the macOS app bundle
"bdist_mac": {
"iconfile": os.path.join("onionshare", "resources", "onionshare.icns"),