diff --git a/contrib/release/macos/dmg_template/.background/background.tiff b/contrib/release/macos/dmg_template/.background/background.tiff new file mode 100644 index 00000000..1fb088c8 Binary files /dev/null and b/contrib/release/macos/dmg_template/.background/background.tiff differ diff --git a/contrib/release/macos/dmg_template/Liana.app/Contents/Info.plist b/contrib/release/macos/dmg_template/Liana.app/Contents/Info.plist new file mode 100644 index 00000000..fdf5b58b --- /dev/null +++ b/contrib/release/macos/dmg_template/Liana.app/Contents/Info.plist @@ -0,0 +1,69 @@ + + + + + LSMinimumSystemVersion + 10.15.0 + + LSArchitecturePriority + + x86_64 + + + + + + + CFBundlePackageType + APPL + + CFBundleSupportedPlatforms + + MacOSX + + + CFBundleShortVersionString + VERSION_PLACEHOLDER + + CFBundleVersion + VERSION_PLACEHOLDER + + CFBundleSignature + ???? + + CFBundleExecutable + Liana + + CFBundleName + Liana + + LSHasLocalizedDisplayName + + + CFBundleIdentifier + org.wizardsardine.liana + + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLName + org.wizardsardine.liana + CFBundleURLSchemes + + liana + + + + + NSPrincipalClass + NSApplication + + NSHighResolutionCapable + True + + LSApplicationCategoryType + public.app-category.finance + + diff --git a/contrib/release/macos/dmg_template/Liana.app/Contents/PkgInfo b/contrib/release/macos/dmg_template/Liana.app/Contents/PkgInfo new file mode 100644 index 00000000..6f749b0f --- /dev/null +++ b/contrib/release/macos/dmg_template/Liana.app/Contents/PkgInfo @@ -0,0 +1 @@ +APPL???? diff --git a/contrib/release/macos/gen_dstore.py b/contrib/release/macos/gen_dstore.py new file mode 100644 index 00000000..d9c70ad2 --- /dev/null +++ b/contrib/release/macos/gen_dstore.py @@ -0,0 +1,51 @@ +""" +Script to generate a .DS_Store within the dmg folder to have a neat fancy window +when installing the software on macOS. + +This was taken and adapted from the Bitcoin Core 'macdeployqtplus' script. +https://github.com/bitcoin/bitcoin/blob/cb32328d1b80d0ccd6eb9532bd8fe4e0a4de385e/contrib/macdeploy/macdeployqtplus +""" + +from ds_store import DSStore +from mac_alias import Alias + + +output_file = ".DS_Store" + +ds = DSStore.open(output_file, "w+") + +ds["."]["bwsp"] = { + "WindowBounds": "{{300, 280}, {500, 343}}", + "PreviewPaneVisibility": False, +} + +icvp = { + "gridOffsetX": 0.0, + "textSize": 12.0, + "viewOptionsVersion": 1, + "backgroundImageAlias": b"\x00\x00\x00\x00\x02\x1e\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd1\x94\\\xb0H+\x00\x05\x00\x00\x00\x98\x0fbackground.tiff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x99\xd19\xb0\xf8\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\r\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b.background\x00\x00\x10\x00\x08\x00\x00\xd1\x94\\\xb0\x00\x00\x00\x11\x00\x08\x00\x00\xd19\xb0\xf8\x00\x00\x00\x01\x00\x04\x00\x00\x00\x98\x00\x0e\x00 \x00\x0f\x00b\x00a\x00c\x00k\x00g\x00r\x00o\x00u\x00n\x00d\x00.\x00t\x00i\x00f\x00f\x00\x0f\x00\x02\x00\x00\x00\x12\x00\x1c/.background/background.tiff\x00\x14\x01\x06\x00\x00\x00\x00\x01\x06\x00\x02\x00\x00\x0cMacintosh HD\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x97\xab\xc3H+\x00\x00\x01\x88[\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02u\xab\x8d\xd1\x94\\\xb0devrddsk\xff\xff\xff\xff\x00\x00\t \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07bitcoin\x00\x00\x10\x00\x08\x00\x00\xce\x97\xab\xc3\x00\x00\x00\x11\x00\x08\x00\x00\xd1\x94\\\xb0\x00\x00\x00\x01\x00\x14\x01\x88[\x88\x00\x16\xa9\t\x00\x08\xfaR\x00\x08\xfaQ\x00\x02d\x8e\x00\x0e\x00\x02\x00\x00\x00\x0f\x00\x1a\x00\x0c\x00M\x00a\x00c\x00i\x00n\x00t\x00o\x00s\x00h\x00 \x00H\x00D\x00\x13\x00\x01/\x00\x00\x15\x00\x02\x00\x14\xff\xff\x00\x00\xff\xff\x00\x00", + "backgroundColorBlue": 1.0, + "iconSize": 96.0, + "backgroundColorGreen": 1.0, + "arrangeBy": "none", + "showIconPreview": True, + "gridSpacing": 100.0, + "gridOffsetY": 0.0, + "showItemInfo": False, + "labelOnBottom": True, + "backgroundType": 2, + "backgroundColorRed": 1.0, +} +alias = Alias().from_bytes(icvp["backgroundImageAlias"]) +alias.volume.name = "Liana" +alias.volume.posix_path = "/Volumes/Liana" +icvp["backgroundImageAlias"] = alias.to_bytes() +ds["."]["icvp"] = icvp + +ds["."]["vSrn"] = ("long", 1) + +ds["Applications"]["Iloc"] = (370, 156) +ds["Liana.app"]["Iloc"] = (128, 156) + +ds.flush() +ds.close()