mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-27 19:27:21 -06:00
macOS DMG: generate DS_Store and TIFF from a script, attribute the assets (review of #493)
- packaging/macos/dmg/generate.py writes background.tiff and DS_Store on any OS (resvg with the repo's fonts; ds_store and mac_alias, as dmgbuild uses). Both are byte-reproducible and carry nothing from the machine that made them. - DS_Store: same window, icon size, positions and background alias as before, without the bookmark (pBBk/pBB0) and the alias's disk-image record, which held the author's boot volume UUID and name, its creation date and temporary paths. - background.tiff: the same pixels as before (checked), now opaque RGB with Deflate (1.8 MB to 1.0 MB) and LittleCMS's built-in sRGB profile instead of an HP profile with no open licence; no file names or software tags. - background.svg: drop an unused pattern and the xlink namespace (renders the same). - ASSETS.md rows for the three files; README, docs/releasing.md (volume name) and ROADMAP. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
884df22408
commit
d0a99faf1e
+3
-1
@@ -80,7 +80,9 @@ The rules are in craftrules `standards/fonts.md`, the build option in
|
||||
- **Notarization:** the app is zipped and sent with `xcrun notarytool submit --wait`, then the
|
||||
ticket is stapled and checked with `stapler validate` and `spctl`. The app goes on a DMG
|
||||
(`hdiutil makehybrid` and `convert`, with an `Applications` link to drag onto), which is signed,
|
||||
notarized and stapled too.
|
||||
notarized and stapled too. Its Finder window (background, icon size and positions) comes from
|
||||
[`packaging/macos/dmg/`](../packaging/macos/dmg/README.md), and its volume is named `VectorCraft`
|
||||
without the version, which the window's background needs; the DMG file name keeps the version.
|
||||
- **CLI:** the universal `vectorcraft-cli` is signed the same way, zipped, and the zip is
|
||||
notarized. A bare executable can't hold a stapled ticket, so Gatekeeper looks the CLI's ticket up
|
||||
online the first time a downloaded copy runs.
|
||||
|
||||
Reference in New Issue
Block a user