From 543833c50df86c9c8bfe288ad9e83e90e1e08543 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Sat, 3 Oct 2026 21:54:22 +0000 Subject: [PATCH] Mac packaging: Igneum Devnet.app and DMG for Apple silicon miners packaging/mac: build-dmg.sh assembles Igneum Devnet.app (shell launcher that opens igneum-devnet.sh in Terminal, stripped ad-hoc-signed copies of igneumd, igneum-miner and the Metal worker), README.txt, Stop Igneum.command and an Applications link into dist/igneum-devnet-mac.dmg (17 MB, lzfse). The script starts the node peered to SEED_PEERS, waits for sync, runs one miner identity mac- on the Metal worker, prints a status line every 30 s, uploads logs every 60 s, keeps the Mac awake and stops everything in order on Ctrl+C, window close, --stop or the Stop command. Tested on this Mac from the mounted DMG against a test node on 27310/27311 peered to the live node: sync in 22 s, 24 accepted blocks, listed on igneum.network/live, clean stop with no stray process on SIGINT, SIGTERM and Stop Igneum.command. Co-Authored-By: Claude Fable 5.1 --- packaging/mac/.gitignore | 3 + packaging/mac/README.md | 96 ++++++ packaging/mac/app/Info.plist | 32 ++ packaging/mac/app/Stop Igneum.command | 20 ++ packaging/mac/app/igneum-devnet.sh | 454 ++++++++++++++++++++++++++ packaging/mac/app/launcher.sh | 19 ++ packaging/mac/build-dmg.sh | 82 +++++ packaging/mac/dmg/README.txt | 9 + 8 files changed, 715 insertions(+) create mode 100644 packaging/mac/.gitignore create mode 100644 packaging/mac/README.md create mode 100644 packaging/mac/app/Info.plist create mode 100755 packaging/mac/app/Stop Igneum.command create mode 100755 packaging/mac/app/igneum-devnet.sh create mode 100755 packaging/mac/app/launcher.sh create mode 100755 packaging/mac/build-dmg.sh create mode 100644 packaging/mac/dmg/README.txt diff --git a/packaging/mac/.gitignore b/packaging/mac/.gitignore new file mode 100644 index 000000000..ad79fc56e --- /dev/null +++ b/packaging/mac/.gitignore @@ -0,0 +1,3 @@ +# built outputs: the app with its binaries, and the DMG +build/ +dist/ diff --git a/packaging/mac/README.md b/packaging/mac/README.md new file mode 100644 index 000000000..25fa30722 --- /dev/null +++ b/packaging/mac/README.md @@ -0,0 +1,96 @@ +# Igneum Devnet for Mac (packaging/mac) + +A DMG a friend can open on an Apple silicon Mac to run a devnet node and the Metal miner, and show up on +igneum.network/live. Built 3 October 2026 from the binaries already compiled in this repo; nothing is compiled here. + +## Build + + packaging/mac/build-dmg.sh + +Output: `packaging/mac/dist/igneum-devnet-mac.dmg` (about 17 MB, lzfse). The script takes +`vendor/igneum-node/target-rename/release/igneumd` (falls back to `target/release/kaspad` renamed, and says so), +`vendor/igneum-node/target/release/igneum-miner` and `proto-metal/igneum-bench` (the plain build, the one whose +`--serve` protocol matches that miner), copies them into the bundle, strips the copies and signs them ad hoc again +(strip invalidates the linker signature and arm64 macOS refuses an unsigned binary), and checks that each copy still +runs. The originals are untouched. The icon comes from `site/icon-512.png`. `build/` and `dist/` are ignored by git. + +## What is on the DMG + +| Item | What it is | +|---|---| +| `Igneum Devnet.app` | the launcher bundle (below) | +| `README.txt` | 9 lines for the friend (`dmg/README.txt`) | +| `Stop Igneum.command` | stops a copy whose window was closed without Ctrl+C (`app/Stop Igneum.command`) | +| `Applications` | symlink, for the drag | + +## The app bundle + + Igneum Devnet.app/Contents/MacOS/Igneum Devnet app/launcher.sh: removes quarantine from Resources, opens the script in Terminal + Igneum Devnet.app/Contents/Resources/igneum-devnet.sh the run script (app/igneum-devnet.sh) + Igneum Devnet.app/Contents/Resources/bin/igneumd, igneum-miner, igneum-bench + Igneum Devnet.app/Contents/Resources/AppIcon.icns + Igneum Devnet.app/Contents/Info.plist app/Info.plist (CFBundleVersion = build stamp) + +Why a shell launcher and not an AppleScript applet: `open -a Terminal