From 084f7636ea253291c5422ff7394fc4a7cdfbe9b9 Mon Sep 17 00:00:00 2001 From: Xus Badia Date: Thu, 8 Oct 2026 15:12:32 +0200 Subject: [PATCH] macOS DMG: branded window background and icon layout The DMG opened as a plain Finder window. It now shows the app icon's figure on the PdfCraft colour, with PdfCraft.app and the Applications link side by side. Same approach as PhotoCraft's and VectorCraft's. - packaging/macos/dmg/: background.svg (source; text outlined, no paper grain, the figure an of assets/app-icon), background.tiff (1x + 2x HiDPI, 16-colour palette, Deflate, sRGB; ~95 KB) and dmg-layout.DS_Store (Finder view settings: window, icon size 128, positions, background). - generate.py writes the TIFF and the layout on any OS, byte-for-byte reproducible, with nothing from the machine that ran it. - package.sh copies them into the staging folder; the image is still built with hdiutil makehybrid. Nothing extra runs in the signing job. - The volume name drops the version: the layout finds the background through an alias that includes the volume name. The DMG file name keeps the version. Co-Authored-By: Claude Opus 5.5 --- ATTRIBUTION.md | 4 +- ATTRIBUTION.toml | 23 ++++ docs/releasing.md | 3 + packaging/macos/dmg/README.md | 44 +++++++ packaging/macos/dmg/background.svg | 31 +++++ packaging/macos/dmg/background.tiff | Bin 0 -> 94912 bytes packaging/macos/dmg/dmg-layout.DS_Store | Bin 0 -> 16388 bytes packaging/macos/dmg/generate.py | 158 ++++++++++++++++++++++++ packaging/macos/package.sh | 7 +- 9 files changed, 268 insertions(+), 2 deletions(-) create mode 100644 packaging/macos/dmg/README.md create mode 100644 packaging/macos/dmg/background.svg create mode 100644 packaging/macos/dmg/background.tiff create mode 100644 packaging/macos/dmg/dmg-layout.DS_Store create mode 100644 packaging/macos/dmg/generate.py diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 0f56341b..ef2f96f8 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -4,7 +4,7 @@ Every asset PdfCraft includes, bundles or uses to build its published material, with its author, source and licence. The policy is in [AGENTS.md](AGENTS.md) §1. The machine-readable list, with SHA-256 hashes, is [ATTRIBUTION.toml](ATTRIBUTION.toml). Licence texts are kept beside the assets and summarised in [NOTICE](NOTICE). -## In this repository (251) +## In this repository (253) | Asset | Title | Author | Licence | Source | Used for | |---|---|---|---|---|---| @@ -259,6 +259,8 @@ Every asset PdfCraft includes, bundles or uses to build its published material, | `crates/sign/tests/data/openssl-signed.pdf` | One-page PDF signed with OpenSSL CMS (adbe.pkcs7.detached) by the RSA test key | PdfCraft contributors | MIT OR Apache-2.0 | Contributor-original: hand-written PDF objects; signature made with `openssl cms -sign` over its byte ranges (see crates/sign/tests/data/README.md) | Signature validation tests (crates/sign/tests/pdf.rs): a signature PdfCraft did not make | | `assets/icons/clipboard-paste.svg` | Lucide icon "clipboard-paste" | Lucide Contributors (portions Cole Bemis, Feather) | ISC | https://github.com/lucide-icons/lucide (npm lucide-static 1.49.0, icons/clipboard-paste.svg) | UI icon, embedded via crates/ui-egui/src/icon_data.rs | | `assets/fonts/DancingScript.ttf` | Dancing Script (variable) | The Dancing Script Project Authors (Pablo Impallari) | OFL-1.1 | https://github.com/google/fonts/blob/9710da1eacb3be272583c3224dcb70f9da6eadbb/ofl/dancingscript/DancingScript%5Bwght%5D.ttf | Fill & Sign typed signatures and initials: the typed name's glyph outlines, drawn as filled paths (the font file itself is not embedded in PDFs) | +| `packaging/macos/dmg/background.svg` | PdfCraft macOS DMG window background | @XusBadia | MIT OR Apache-2.0 | Original work for this repository, derived from the PdfCraft app icon (assets/app-icon/pdfcraft.svg, referenced via an SVG image element, not copied) | Finder window of the macOS DMG; rendered to background.tiff by packaging/macos/dmg/generate.py | +| `packaging/macos/dmg/background.tiff` | PdfCraft macOS DMG window background (rendered) | @XusBadia | MIT OR Apache-2.0 | Rendered from packaging/macos/dmg/background.svg by packaging/macos/dmg/generate.py | 1x + 2x HiDPI 16-colour palette TIFF copied into the macOS DMG by packaging/macos/package.sh; includes the app icon and the free LittleCMS built-in sRGB profile | ## Compiled in through dependencies (6) diff --git a/ATTRIBUTION.toml b/ATTRIBUTION.toml index 3a1801a2..d646dee2 100644 --- a/ATTRIBUTION.toml +++ b/ATTRIBUTION.toml @@ -3105,6 +3105,29 @@ kind = "font" usage = "Fill & Sign typed signatures and initials: the typed name's glyph outlines, drawn as filled paths (the font file itself is not embedded in PDFs)" sha256 = "21808625578fe8d8cd10cb684be546dca077b27cd03a53a2f1ec11dc743c924c" +[[asset]] +path = "packaging/macos/dmg/background.svg" +title = "PdfCraft macOS DMG window background" +author = "@XusBadia" +source = "Original work for this repository, derived from the PdfCraft app icon (assets/app-icon/pdfcraft.svg, referenced via an SVG image element, not copied)" +licence = "MIT OR Apache-2.0" +licence_file = "assets/app-icon/LICENSE.txt" +kind = "image" +usage = "Finder window of the macOS DMG; rendered to background.tiff by packaging/macos/dmg/generate.py" +sha256 = "e8b9ea9d5e64b7b741c977543c1693825e77d5c4c579eeb674bf5dcd3764cd8a" + + +[[asset]] +path = "packaging/macos/dmg/background.tiff" +title = "PdfCraft macOS DMG window background (rendered)" +author = "@XusBadia" +source = "Rendered from packaging/macos/dmg/background.svg by packaging/macos/dmg/generate.py" +licence = "MIT OR Apache-2.0" +licence_file = "assets/app-icon/LICENSE.txt" +kind = "image" +usage = "1x + 2x HiDPI 16-colour palette TIFF copied into the macOS DMG by packaging/macos/package.sh; includes the app icon and the free LittleCMS built-in sRGB profile" +sha256 = "f46881724a6621f3686a612a79dbdce4f7dbe9e2025610e44c9a094341334c2c" + [[fetched]] file = "text-detection.rten" url = "https://ocrs-models.s3-accelerate.amazonaws.com/text-detection.rten" diff --git a/docs/releasing.md b/docs/releasing.md index ec5e3b1d..30900549 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -82,6 +82,9 @@ from Preview). Files opened from Finder arrive as Apple events, which - **Notarization:** the app is zipped and sent with `xcrun notarytool submit --wait`, the ticket is stapled, and the result is checked with `codesign --verify`, `stapler validate` and `spctl`. The app ships on a drag-to-Applications DMG, which is signed and notarized too. + Its Finder window (background, icon size and positions) comes from + [`packaging/macos/dmg/`](../packaging/macos/dmg/README.md), and its volume is named `PdfCraft` + without the version, which the window's background needs; the DMG file name keeps the version. - **CLI:** `pdfcraft-cli` is signed and notarized as a zip. A bare executable can't hold a stapled ticket, so Gatekeeper looks it up online the first time a downloaded copy runs. diff --git a/packaging/macos/dmg/README.md b/packaging/macos/dmg/README.md new file mode 100644 index 00000000..ec902e30 --- /dev/null +++ b/packaging/macos/dmg/README.md @@ -0,0 +1,44 @@ +# macOS DMG window + +What Finder shows when the DMG opens: a 660 × 400 pt background with the app icon and the +`Applications` link side by side. `package.sh` copies these files into the image; nothing here is +generated at build time, so the DMG still builds with `hdiutil makehybrid` (no mounted device, no +Finder scripting on CI, nothing extra installed in the signing job). + +| File | What | +|---|---| +| `background.svg` | Source of the background: the app icon (`assets/app-icon/pdfcraft.svg`, linked, not copied) cropped as a cover on the PdfCraft colour field (`#12a58a`), Ink and Paper. Its text (Inter, JetBrains Mono) is outlined, so rendering it needs no fonts. No paper grain: noise doesn't compress, and this keeps `background.tiff` small. | +| `background.tiff` | The background at 1x (660 × 400 px, 72 dpi) and 2x (1320 × 800 px, 144 dpi) in one HiDPI TIFF (16-colour palette, Deflate, sRGB). Goes to `.background/background.tiff`. | +| `dmg-layout.DS_Store` | Finder's view settings for the volume: window size, icon size 128, PdfCraft.app at (326, 205), `Applications` at (574, 205), and the background. Goes to `.DS_Store` in the image; named so it isn't mistaken for (or ignored like) a Finder-generated `.DS_Store`. | +| `generate.py` | Writes `background.tiff` and `dmg-layout.DS_Store` from the SVG and the layout above. | + +## The volume name has no version + +The mounted volume is called `PdfCraft`, not `PdfCraft `. The layout points at the background +through an alias that includes the volume name, and Finder resolves it by that name: with a +versioned name the window keeps its size and icon positions but shows no background (tested). +The DMG file name (`pdfcraft--macos-.dmg`) still carries the version. + +## Rules + +- **Finder draws the icon labels in black in light and dark mode** when a window has a background, + so the area under both icons stays light (Paper). +- **Nothing goes inside the icon boxes:** artwork keeps 10 pt clear of each 128 pt icon box and of + the label strip under it. + +## Regenerate + +Edit `background.svg` (or the layout constants in `generate.py`), then run, on any OS: + +```sh +pip install 'pillow>=12' ds_store==1.3.3 mac_alias==2.2.3 +python3 packaging/macos/dmg/generate.py # needs resvg on PATH +``` + +Both outputs are byte-for-byte reproducible and carry nothing from the machine that ran it: the +SVG renders without any fonts, and `dmg-layout.DS_Store` is written from scratch, its background +alias holding only the volume name and `/.background/background.tiff`. If you add text to the SVG, +outline it (`usvg` from resvg converts text to paths). The window is 660 × 432 with Finder's 32 pt +title bar; the content area is 660 × 400. + +This follows VectorCraft's `packaging/macos/dmg/` (storytold/vectorcraft#493). diff --git a/packaging/macos/dmg/background.svg b/packaging/macos/dmg/background.svg new file mode 100644 index 00000000..749b6a49 --- /dev/null +++ b/packaging/macos/dmg/background.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packaging/macos/dmg/background.tiff b/packaging/macos/dmg/background.tiff new file mode 100644 index 0000000000000000000000000000000000000000..119a02d338e33952283d6eae42416fdf90ac16b7 GIT binary patch literal 94912 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 literal 0 HcmV?d00001 diff --git a/packaging/macos/dmg/dmg-layout.DS_Store b/packaging/macos/dmg/dmg-layout.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..33dd6ed8bc14613c3ee1e2b5754cfe030cbc6488 GIT binary patch literal 16388 zcmeI2%}*0S6u{psphduL0R_}UO~b)RN(D8>gO)6D_3vEg9k5O)i*m^TWU;xN(nsp8! z0gad5jg1EY=`NJAXi7i_N(P|EO%g@u0VdF<_MVX6_rv(T-*bRtp{)}E zBJg(vSo>6Is(`-uBmcKWj^*(s<&Kh(Iabj*0cAUOM+NnthXvI0vJ>TwlBi)}@$rJi zZY(;B$bRL@ARXJ~W4WWGat9WziuUoUOde&huy|#bmMv`OBS94rAOb{y2oM1xKm>>Y z5g-CYfCvx)B0vO)01@~f38??}v*t!nHC&nMb%HRL+hbZ=d&i-}vLu%E{z>75 zhU0O+bXRPY9E+QVzu2TNMS5t2wV)7>%o^sL!#5(USs`5XxP8mePQg<_DFi`;ziWYkB@C{CytF=x_0xaoki3Lm=W}WhS96?)W zJ%SH&$a3Rn0A zx5hE*mfq_==iaj3+tPiLTl;K_Yet1nxQ-FrX;{u~R{3JZcdTjK4tO}P*-Wjz@n`63R^_j{r%u6|MQrc=z48rGObP0U#Kq;J@v8r)ZZ{QP9+#@Xl*kfCHFlx*nO z_CCWuYn+ht)lI)+0qBVnx%FP?$~M-KiDXRd#$Kr=UFD63aR0;g?O$$kybO&=;>{k# zjB*l8FrW;pPyrtV)W8D^vJip;HeN~S#WiNI&xT2~Fi?ircWSh0?$Oq%`ye$sC*0Z^ z4@T>o0U4XFW$IyN@(W7MwaZHdXF7QJz%{eJ9Pi(lkS6%il;M1Tko0U|&I mhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-EpkiZXG?H&gJ literal 0 HcmV?d00001 diff --git a/packaging/macos/dmg/generate.py b/packaging/macos/dmg/generate.py new file mode 100644 index 00000000..27adba06 --- /dev/null +++ b/packaging/macos/dmg/generate.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +"""Regenerate background.tiff and dmg-layout.DS_Store for the macOS DMG window (see README.md here). + +Needs resvg on PATH and: + pip install 'pillow>=12' ds_store==1.3.3 mac_alias==2.2.3 + +Runs on any OS, no Mac needed. Both outputs come from this script alone, so they carry nothing +from the machine that made them: no local paths, user or disk names, dates or volume UUIDs. + + python3 packaging/macos/dmg/generate.py +""" + +import datetime +import os +import shutil +import subprocess +import sys +import tempfile + +from ds_store import DSStore +from mac_alias import Alias, TargetInfo, VolumeInfo +from PIL import Image, ImageCms + +HERE = os.path.dirname(os.path.abspath(__file__)) + +# Keep in sync with package.sh (volume name) and README.md (layout). +VOLUME = "PdfCraft" +WIDTH, HEIGHT = 660, 400 # window content, pt; the background's 1x size +TITLE_BAR = 32 +ICON_SIZE = 128 +PALETTE = 16 # colours in background.tiff +ICONS = {"PdfCraft.app": (326, 205), "Applications": (574, 205)} +# A fixed date for the alias and the colour profile. Finder never matches it against the image +# (each build is a new volume): it finds the background by volume name and path. +FIXED_DATE = datetime.datetime(2026, 10, 8, tzinfo=datetime.timezone.utc) + + +def render(svg, width, out): + # The SVG's text is already outlined and no fonts are loaded, so every machine draws the + # same pixels. + subprocess.run( + ["resvg", "--skip-system-fonts", "-w", str(width), svg, out], + check=True, + ) + with Image.open(out) as im: + return im.convert("RGB") + + +def quantize(im): + # No dithering: dither noise compresses badly and the artwork has flat fills. + return im.quantize(PALETTE, method=Image.Quantize.FASTOCTREE, dither=Image.Dither.NONE) + + +def srgb_profile(): + # LittleCMS's built-in sRGB ("No copyright, use freely"), with its creation date fixed. + icc = bytearray(ImageCms.ImageCmsProfile(ImageCms.createProfile("sRGB")).tobytes()) + d = FIXED_DATE + icc[24:36] = b"".join(v.to_bytes(2, "big") for v in (d.year, d.month, d.day, 0, 0, 0)) + if icc[84:100] != bytes(16): + sys.exit("error: the sRGB profile has an ID; recompute it after fixing the date") + return bytes(icc) + + +def write_tiff(svg, out): + """1x (72 dpi) and 2x (144 dpi) in one TIFF, as `tiffutil -cathidpicheck` writes them.""" + with tempfile.TemporaryDirectory() as tmp: + one, two = ( + quantize(render(svg, WIDTH * s, os.path.join(tmp, f"{s}x.png"))) for s in (1, 2) + ) + two.encoderinfo = {"dpi": (144, 144)} # the rest as the first page + # Opaque 16-colour palette, Deflate: the artwork is three inks plus antialiasing, and a palette + # keeps the file small (RGB was ~230 KB; repository assets must stay small). As PhotoCraft's. + one.save( + out, + "TIFF", + save_all=True, + append_images=[two], + compression="tiff_adobe_deflate", # brand-ok: Pillow's name for TIFF compression 8 (Deflate) + dpi=(72, 72), + icc_profile=srgb_profile(), + ) + with Image.open(out) as im: + im.seek(1) + if im.info.get("dpi") != (144, 144): + sys.exit("error: the 2x page isn't 144 dpi (needs Pillow 12 or later)") + strips = [] + for page in (0, 1): + im.seek(page) + strips += zip(im.tag_v2[273], im.tag_v2[279]) # StripOffsets, StripByteCounts + # TIFF keeps directories and tag data on even offsets. When a strip ends on an odd one, libtiff + # leaves the padding byte after it uninitialised, so the file changed from run to run with + # identical pixels. Zero it: nothing refers to that byte. + starts = {o for o, _ in strips} + with open(out, "r+b") as f: + for o, n in strips: + if (o + n) % 2 and o + n not in starts: + f.seek(o + n) + f.write(bytes(1)) + + +def background_alias(): + # What Finder stores for /.background/background.tiff on the volume, minus anything about the + # machine (dmgbuild writes the same kind of alias from a mounted image). Disk type 5 (ejectable), + # the volume flags and the folder/file ids (25, 26) are what Finder wrote on a test image; the ids + # are only hints, as the volume's creation date. + volume = VolumeInfo(VOLUME, FIXED_DATE, b"H+", 5, 0x0D02, b"\0\0") + volume.posix_path = f"/Volumes/{VOLUME}" + target = TargetInfo(0, "background.tiff", 25, 26, FIXED_DATE, b"\0\0\0\0", b"\0\0\0\0") + target.folder_name = ".background" + target.cnid_path = [25] + target.carbon_path = f"{VOLUME}:.background:\0background.tiff" + target.posix_path = "/.background/background.tiff" + return Alias(volume=volume, target=target).to_bytes() + + +def write_ds_store(out): + if os.path.exists(out): + os.remove(out) + with DSStore.open(out, "w+") as d: + d["."]["bwsp"] = { + "ShowStatusBar": False, + "ShowToolbar": False, + "ShowTabView": False, + "ContainerShowSidebar": False, + "ShowSidebar": False, + "WindowBounds": f"{{{{200, 528}}, {{{WIDTH}, {HEIGHT + TITLE_BAR}}}}}", + } + d["."]["icvp"] = { + "viewOptionsVersion": 1, + "backgroundType": 2, + "backgroundImageAlias": background_alias(), + "backgroundColorRed": 1.0, + "backgroundColorGreen": 1.0, + "backgroundColorBlue": 1.0, + "gridOffsetX": 0.0, + "gridOffsetY": 0.0, + "gridSpacing": 100.0, + "arrangeBy": "none", + "showIconPreview": True, + "showItemInfo": False, + "labelOnBottom": True, + "textSize": 16.0, + "iconSize": float(ICON_SIZE), + } + d["."]["vSrn"] = ("long", 1) + for name, pos in ICONS.items(): + d[name]["Iloc"] = pos + + +def main(): + if not shutil.which("resvg"): + sys.exit("error: resvg not found (brew install resvg / cargo install resvg --locked)") + write_tiff(os.path.join(HERE, "background.svg"), os.path.join(HERE, "background.tiff")) + write_ds_store(os.path.join(HERE, "dmg-layout.DS_Store")) + + +if __name__ == "__main__": + main() diff --git a/packaging/macos/package.sh b/packaging/macos/package.sh index 7f69443b..507e911d 100755 --- a/packaging/macos/package.sh +++ b/packaging/macos/package.sh @@ -130,10 +130,15 @@ STAGE="$WORK/dmg" mkdir -p "$STAGE" ditto "$APP" "$STAGE/PdfCraft.app" ln -s /Applications "$STAGE/Applications" +# Finder window layout: background, icon size and positions (packaging/macos/dmg/README.md). +mkdir -p "$STAGE/.background" +cp "$HERE/dmg/background.tiff" "$STAGE/.background/background.tiff" +cp "$HERE/dmg/dmg-layout.DS_Store" "$STAGE/.DS_Store" rm -f "$DMG" "$WORK/raw.dmg" # makehybrid + convert builds the image without attaching a device, unlike `create -srcfolder`, # which is flaky on CI runners ("Resource busy") and hangs in sandboxed sessions. -hdiutil makehybrid -hfs -hfs-volume-name "PdfCraft $VERSION" -hfs-openfolder "$STAGE" -o "$WORK/raw.dmg" "$STAGE" +# The volume name has no version: .DS_Store finds the background through an alias that includes it. +hdiutil makehybrid -hfs -hfs-volume-name "PdfCraft" -hfs-openfolder "$STAGE" -o "$WORK/raw.dmg" "$STAGE" hdiutil convert "$WORK/raw.dmg" -format UDZO -imagekey zlib-level=9 -o "$DMG" rm -f "$WORK/raw.dmg" sign "$DMG"