Various fixes for MacOS build

This commit is contained in:
Miguel Jacq 2025-02-26 14:36:55 +11:00
parent 96b838ec3e
commit e76511aaa9
No known key found for this signature in database
GPG Key ID: 59B3F0C24135C6A9
4 changed files with 21 additions and 4 deletions

View File

@ -116,7 +116,7 @@ jobs:
path: ~\onionshare-win64.zip
build-mac-intel:
runs-on: macos-13
runs-on: macos-15-large
steps:
- uses: actions/checkout@v4

View File

@ -2,6 +2,7 @@
import os
import inspect
import click
import platform
import subprocess
import shutil
import glob
@ -16,7 +17,7 @@ root = os.path.dirname(
)
desktop_dir = os.path.join(root, "desktop")
identity_name_application = "Developer ID Application: Micah Lee (N9B95FDWH4)"
identity_name_application = "Developer ID Application: Science & Design, Inc. (7WLJ4UBL5L)"
entitlements_plist_path = f"{desktop_dir}/package/Entitlements.plist"
@ -122,7 +123,6 @@ def cleanup_build():
"QtQuickShapes",
"QtQuickTest",
"QtNetwork",
"QtSvg",
"QtDesignerComponents",
"QtMultimediaWidgets",
"QtQmlModels",
@ -228,6 +228,18 @@ def cleanup_build():
else:
print(f"Cannot delete, filename not found: {filename}")
# Set a symlink for Qt's platforms and imageformats plugins, which seems to be necessary only on arm
if platform.system() == "Darwin" and platform.processor() == "arm":
platforms_target_path = os.path.join("..", "Resources", "lib", "PySide6", "Qt", "plugins", "platforms")
platforms_symlink_path = os.path.join(app_path, "Contents", "MacOS", "platforms")
os.symlink(platforms_target_path, platforms_symlink_path)
imageformats_target_path = os.path.join("..", "Resources", "lib", "PySide6", "Qt", "plugins", "imageformats")
imageformats_symlink_path = os.path.join(app_path, "Contents", "MacOS", "imageformats")
os.symlink(imageformats_target_path, imageformats_symlink_path)
after_size = get_size(f"{app_path}")
freed_bytes = before_size - after_size
freed_mb = int(freed_bytes / 1024 / 1024)

View File

@ -120,6 +120,9 @@ def get_tor_macos(gpg, torkey, macos_url, macos_filename, expected_macos_sig):
dist_path = os.path.join(root_path, "onionshare", "resources", "tor")
if not os.path.exists(dist_path):
os.makedirs(dist_path, exist_ok=True)
tor_lib_dir = os.path.join(root_path, "onionshare", "resources", "tor", "lib")
if not os.path.exists(tor_lib_dir):
os.makedirs(tor_lib_dir, exist_ok=True)
# Make sure the working folder exists
if not os.path.exists(working_path):
@ -165,7 +168,7 @@ def get_tor_macos(gpg, torkey, macos_url, macos_filename, expected_macos_sig):
os.chmod(os.path.join(dist_path, "tor"), 0o755)
shutil.copyfile(
os.path.join(dmg_tor_path, "MacOS", "Tor", "libevent-2.1.7.dylib"),
os.path.join(dist_path, "libevent-2.1.7.dylib"),
os.path.join(tor_lib_dir, "libevent-2.1.7.dylib"),
)
# Eject dmg

View File

@ -77,6 +77,7 @@ build_exe_options = {
"shiboken6",
"PySide6.QtCore",
"PySide6.QtGui",
"PySide6.QtSvg",
"PySide6.QtWidgets",
],
"excludes": [
@ -139,6 +140,7 @@ if platform.system() == "Darwin" and platform.processor() == "arm":
"shiboken6",
"PySide6.QtCore",
"PySide6.QtGui",
"PySide6.QtSvg",
"PySide6.QtWidgets",
]