Files
pgadmin4/pkg/mac
Dave Page 1884356245 fix: fail the macOS build if any bundled library links outside the bundle (#10135)
9.16 failed to start on Intel Macs (#10123): cryptography had no
prebuilt Intel macOS wheel, pip compiled it from source, and its
openssl-sys build linked the builder's Homebrew OpenSSL into
_rust.abi3.so instead of the bundled one. _fixup_imports deliberately
skips _rust.abi3.so, so the dangling reference shipped unnoticed and
the app died on startup for anyone without that external dylib.

Add _verify_bundle_linkage, run after the bundle is assembled and
relocated but before code-signing: walks every .so/.dylib and fails
the build if any install-name points at a build-host prefix
(/usr/local, /opt/homebrew, /opt/local, $SLAVE_HOME). OS libraries
and @loader_path/@rpath/@executable_path references pass untouched.
Turns this class of bug into a build-time failure instead of a
runtime one.
2026-07-24 18:22:08 +05:30
..
2026-01-05 13:33:45 +05:30
2026-01-27 12:25:34 +05:30

pgAdmin macOS Builds

Required Packages

Either build the sources or get them from macports or similar:

  1. Yarn & NodeJS

  2. PostgreSQL 12 or above from http://www.postgresql.org/

  3. Python 3.6+ (required for building). The build environment should run this version of python in response to the python command.

Building

  1. To bundle a different version of Python from the default of 3.13.1, set the PGADMIN_PYTHON_VERSION environment variable, e.g:

    export PGADMIN_PYTHON_VERSION=3.13.11
    
  2. If a path different from the default of /usr/local/pgsql for the PostgreSQL installation has been used, set the PGADMIN_POSTGRES_DIR environment variable appropriately, e.g:

    export PGADMIN_POSTGRES_DIR=/opt/local/pgsql
    
  3. If you want to codesign the appbundle, copy codesign.conf.in to codesign.conf and set the values accordingly.

  4. If you want to notarize the appbundle, copy notarization.conf.in to notarization.conf and set the values accordingly. Note that notarization will fail if the code isn't signed.

  5. To build only DMG file, go to pgAdmin4 source root directory and execute:

    make appbundle
    

    To build both DMG and ZIP files, go to pgAdmin4 source root directory and execute:

    make appbundle BUILD_OPTS="--zip"
    

    This will create the python virtual environment and install all the required python modules mentioned in the requirements file using pip, build the runtime code and finally create the app bundle and the DMG and/or ZIP in ./dist directory.