Release a macOS disk image (.dmg) for Apple silicon
Maintainers usually reply within 1 day
Assessment
This issue has not been assessed yet.
Description
Releases ship Linux archives only. On macOS, the README sends users to a build from source, with Homebrew's LLVM 20. A ctrace built that way loads LLVM, Clang, Z3 and zstd from Homebrew by absolute path (otool -L build/ctrace), and OpenSSL and Brotli too, which cpp-httplib links whenever it finds them: it cannot be copied to another Mac.
To do
- A "Build macOS binary (arm64)" job in
release-binaries.yml, run on every pull request like the Linux ones, that producescoretrace-<version>-macos-arm64.dmgand its.sha256, with the Python analyzer. - The image holds one folder laid out as the Linux archive. The Homebrew libraries
ctraceloads ship inlib/, and every Mach-O file loads them relative to itself: the macOS counterpart of thepatchelfstep. - Licenses as on Linux: an inventory of what the image ships, the license and version of each Homebrew formula collected from its keg, and a packaging that fails on an unlisted library.
- Before the upload, the image is mounted, its folder copied out and run with Homebrew moved away: the Python analyzer, a C analysis and a concurrency analysis.
- On a tag, the image is attached to the release with its provenance attestation.
- The README says how to install it, and how to remove the Gatekeeper mark.
Out of scope
- Signing with a Developer ID, and notarization. CoreTrace has no Apple Developer account. The image is signed ad hoc, which Apple silicon requires; macOS refuses to run a
ctracethat a browser downloaded until the quarantine mark is removed. Once an account exists: import the certificate into a temporary keychain, sign each Mach-O file withcodesign --options runtime --timestamp, then runxcrun notarytool submit --waitandxcrun stapler stapleon the image. - Intel Macs. They need an x86_64 runner and Homebrew libraries built for it.
- The runtime analyzer. It is released for Linux only.
Acceptance
- The job passes on pull requests, and the image it builds runs from any folder, without Homebrew.
check-licenses.shpasses on the image with the macOS inventory.- A release attaches the
.dmg, its.sha256and its attestation.
- Dominant language
- C++
- Stars
- 5
- Forks
- 4
- Avg merge
- 1h 9m
- Merged PRs (30d)
- 81
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CoreTrace/coretrace
-
chore good first issue severity/minor
Difficulty 1/5 Under an hour Newbie friendliness 90/100
Maintainers usually reply within 1 day
-
build severity/minor
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
CoreTrace/coretrace#176 · 1 comment ·
Maintainers usually reply within 1 day
-
build good first issue severity/minor
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
test: add unit tests for ctrace::RunDirectoryPossibly taken @tecnolgd claimed this 3 days ago. Opengood first issue test
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
CoreTrace/coretrace#164 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Builds without a build type are unoptimized: the README's commands and CI's main jobPossibly taken @SizzleUnrlsd claimed this 2 days ago. Openbuild severity/minor
CoreTrace/coretrace#192 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in CoreTrace/coretrace
Similar issues
-
backlog bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
EchoTools/nevr-runtime#653 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
InfiniTimeOrg/InfiniTime#2492 ·
-
accessibility good first issue hacktoberfest help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
OpenChemistry/avogadrolibs#3184 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Tracktion/tracktion_engine#475 ·
Maintainers usually reply within 1 day