diff options
author | j.spijker@ultimaker.com <jelle spijker> | 2022-07-01 06:39:22 +0300 |
---|---|---|
committer | Jelle Spijker <j.spijker@ultimaker.com> | 2022-07-01 06:39:22 +0300 |
commit | dc8c9bb2763c2eae2e39edf12597255c44beb98f (patch) | |
tree | 077784b6f03392d6d68069b99d0df17bd17f7c95 /packaging/dmg | |
parent | 9801402638cc267c15b43d8d3aeeda05269c0595 (diff) |
Moved MacOS dmg to dedicated folder
Contributes to CURA-9365
Diffstat (limited to 'packaging/dmg')
-rw-r--r-- | packaging/dmg/cura.entitlements | 12 | ||||
-rw-r--r-- | packaging/dmg/dmg_sign_noterize.py | 71 |
2 files changed, 83 insertions, 0 deletions
diff --git a/packaging/dmg/cura.entitlements b/packaging/dmg/cura.entitlements new file mode 100644 index 0000000000..3b95f077c9 --- /dev/null +++ b/packaging/dmg/cura.entitlements @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>com.apple.security.cs.allow-dyld-environment-variables</key> + <true/> + <key>com.apple.security.cs.disable-executable-page-protection</key> + <true/> + <key>com.apple.security.cs.disable-library-validation</key> + <true/> +</dict> +</plist> diff --git a/packaging/dmg/dmg_sign_noterize.py b/packaging/dmg/dmg_sign_noterize.py new file mode 100644 index 0000000000..803991594d --- /dev/null +++ b/packaging/dmg/dmg_sign_noterize.py @@ -0,0 +1,71 @@ +import os +import subprocess +import shutil + +SOURCE_DIR = os.environ.get("SOURCE_DIR", "..") +DIST_DIR = os.environ.get("DIST_DIR", os.path.join(SOURCE_DIR, "dist")) +DMG_PATH = "Ultimaker-Cura.dmg" +APP_PATH = "Ultimaker-Cura.app" +ULTIMAKER_CURA_DOMAIN = os.environ.get("ULTIMAKER_CURA_DOMAIN", "nl.ultimaker.cura") + + +def build_dmg() -> None: + create_dmg_executable = os.environ.get("CREATE_DMG_EXECUTABLE", "create-dmg") + + arguments = [create_dmg_executable, + "--window-pos", "640", "360", + "--window-size", "690", "503", + "--app-drop-link", "520", "272", + "--volicon", f"{SOURCE_DIR}/packaging/icons/VolumeIcons_Cura.icns", + "--icon-size", "90", + "--icon", "Ultimaker-Cura.app", "169", "272", + "--eula", f"{SOURCE_DIR}/packaging/cura_license.txt", + "--background", f"{SOURCE_DIR}/packaging/icons/cura_background_dmg.png", + DMG_PATH, + APP_PATH] + + subprocess.run(arguments) + + +def sign(file_path: str) -> None: + codesign_executable = os.environ.get("CODESIGN", "codesign") + codesign_identity = os.environ.get("CODESIGN_IDENTITY", "A831301292FC30F84F3C137F2141401620EE5FA0") + + arguments = [codesign_executable, + "-s", codesign_identity, + "--timestamp", + "-i", f"{ULTIMAKER_CURA_DOMAIN}.dmg", + file_path] + + subprocess.run(arguments) + + +def notarize() -> None: + notarize_user = os.environ.get("NOTARIZE_USER") + notarize_password = os.environ.get("NOTARIZE_PASSWORD") + altool_executable = os.environ.get("ALTOOL_EXECUTABLE", "altool") + + arguments = [ + "xcrun", altool_executable, + "--notarize-app", + "--primary-bundle-id", ULTIMAKER_CURA_DOMAIN, + "--username", notarize_user, + "--password", notarize_password, + "--file", DMG_PATH + ] + + subprocess.run(arguments) + + +if __name__ == "__main__": + try: + os.rename(os.path.join(DIST_DIR, "Ultimaker-Cura"), os.path.join(DIST_DIR, "Ultimaker-Cura.app")) + except: + pass + sign(APP_PATH) + build_dmg() + sign(DMG_PATH) + + # notarize_dmg = bool(os.environ.get("NOTARIZE_DMG", "TRUE")) + # if notarize_dmg: + # notarize() |