# New Installer Package for macOS

**URL:** <https://forum.graphviz.org/t/new-installer-package-for-macos/1812>\
**Category:** Dev\
**Created:** [October 6, 2023, 1:37am UTC](https://forum.graphviz.org/t/new-installer-package-for-macos/1812 "2023-10-06T01:37:40Z")\
**Posts on this page:** 3\
**Page:** 2

<div class="post-metadata">

**Author:** ![zosmac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/zosmac/32/1185_2.png) [@zosmac](https://forum.graphviz.org/u/zosmac)\
**Post date:** [November 5, 2023, 2:14pm UTC](https://forum.graphviz.org/t/new-installer-package-for-macos/1812/21 "2023-11-05T14:14:04Z")

</div>

This is what I see with make dist on the Mac: it fails attempting to add gvedit because there is no QMAKE, so the command to create the qMakefile is blank. Can the command itself be moved to the part of the build on the deployment host or installation?

```auto
QT_SELECT=5 -o qMakefile gvedit.pro

```

I tried configuring --without-qt --without-gvedit. Regardless, the make dist fails with this output from cmd/gvedit/Makefile:

```auto
 (cd gvedit && /Applications/Xcode.app/Contents/Developer/usr/bin/make top_distdir=../../graphviz-10.0.0~dev.20231103.0952 distdir=../../graphviz-10.0.0~dev.20231103.0952/cmd/gvedit am __remove_distdir=: am__ skip_length_check=: am__skip_mode_fix=: distdir)

```

I can run the failing command directly to illustrate:

```auto
make distdir-am
QT_SELECT=5 -o qMakefile gvedit.pro
/bin/sh: -o: command not found
make[6]: *** [qMakefile] Error 127
make[5]: *** [distdir] Error 2
make[4]: *** [distdir-am] Error 1
make[3]: *** [distdir] Error 2
make[2]: *** [distdir-am] Error 1
make[1]: *** [distdir] Error 2
make: *** [dist] Error 2

```

---

<div class="post-metadata">

**Author:** ![zosmac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/zosmac/32/1185_2.png) [@zosmac](https://forum.graphviz.org/u/zosmac)\
**Post date:** [November 11, 2023, 7:09pm UTC](https://forum.graphviz.org/t/new-installer-package-for-macos/1812/22 "2023-11-11T19:09:01Z")

</div>

I have submitted a merge request (as user Elaeagnus) to create a macOS installer package:

> **[\#2468 make pkg for macOS to produce graphviz.pkg (!3437) · Merge requests ·...](https://gitlab.com/graphviz/graphviz/-/merge_requests/3437)**
>
> This request defines a Makefile to build a macOS installer package. Its changes updates macosx/graphviz.xcodeproj to build for Apple Silicon and macOS 13.5 Ventura...

---

<div class="post-metadata">

**Author:** ![scnorth](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/scnorth/32/89_2.png) [@scnorth](https://forum.graphviz.org/u/scnorth)\
**Post date:** [June 3, 2026, 11:38am UTC](https://forum.graphviz.org/t/new-installer-package-for-macos/1812/23 "2026-06-03T11:38:43Z")

</div>

To summarize, the situation today is that the arm64 installer package is built in CI. See, for example, [this recent pipeline log file](https://gitlab.com/graphviz/graphviz/-/jobs/14670025186).

It’s not ready for distribution for general use. One show stopper and several other things noted:

1. The package is not signed, so it can’t be installed without a lot of intentional awkwardness. Apparently signing involves paying Apple $100/year for a developer certificate, and running an additional command in the pipeline to submit the package to Apple for notarization. Apple only grants “free” licenses to projects represented by a nonprofit or charitable legal corporation. Graphviz does not have one or belong to one.

2. It’s not good, though apparently benign, that there are a lot of messages saying `dyld_info: unknown option: -linked_dylibs` in the MacOS build log. Anyone could try to fix this.

3. The install packages have names like `Darwin_23.6.0_graphviz-15.0.1~dev.20260530.0911-arm64.pkg` that should probably be simplified.

Because apparently people are generally satisfied to install through Homebrew or Macports, I’m only making these comments for the public record.

[Previous page](https://forum.graphviz.org/t/new-installer-package-for-macos/1812.md?page=1)
