pkg/mac/build-functions.sh reverted to bd841b882's state - keeps the notarization diagnostic fix (print REQUEST_STATUS + fetch notarytool log on failure), drops everything from0296de48ethrough6891b5e12. Five iterations trying to fix _fixup_imports's otool handling of "pgAdmin 4 Helper (GPU)" (newline-based path list, otool-classic fallback via bare name, via resolved absolute path, absolute-path retries for otool/install_name_tool) all failed to get the appbundle build past this file. Confirmed along the way: the path itself is byte-for-byte correct and the file verifiably exists at the moment otool runs (od -c / ls -la evidence from a live buildfarm run); both otool and otool-classic, called directly with correct quoting and a resolved absolute path, still fail identically on it. That's a real bug/limitation in Apple's tooling on this build node, not fixable by further changes to how this script constructs or passes the path. Reverting rather than continuing to guess. The stale nspkg.pth / --system-site-packages fix in pkg/linux/build-functions.sh (verified working, pgadmin4-rpm-build #180 succeeded) is untouched by this.
pgAdmin macOS Builds
Required Packages
Either build the sources or get them from macports or similar:
-
Yarn & NodeJS
-
PostgreSQL 12 or above from http://www.postgresql.org/
-
Python 3.6+ (required for building). The build environment should run this version of python in response to the python command.
Building
-
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 -
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 -
If you want to codesign the appbundle, copy codesign.conf.in to codesign.conf and set the values accordingly.
-
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.
-
To build only DMG file, go to pgAdmin4 source root directory and execute:
make appbundleTo 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.