mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2026-08-17 16:34:44 -05:00
A signed, notarised and stapled pgAdmin 4.app was rejected by Gatekeeper with "invalid destination for symbolic link in bundle". Gatekeeper walks every symlink in the bundle and rejects the whole app if any link does not resolve to a real file inside it; notarisation does not catch this, so a broken link slips through stapling and only surfaces as a Gatekeeper failure on the end user's machine. The embedded Python.framework ships such links: an arm64-only build still carries a bin/python3-intel64 launcher symlink (whose target _strip_architecture deletes when it removes the foreign-arch files), and the bundled Tcl/Tk frameworks carry PrivateHeaders links pointing at a Versions/Current that has none. Add a _prune_dangling_symlinks step that removes every dangling symlink in the bundle after architecture stripping and before signing, then fails the build if any remain, so this cannot slip past notarisation again.