MOTHBALLED-graphviz icon indicating copy to clipboard operation
MOTHBALLED-graphviz copied to clipboard

No way to obtain Graphviz on OS X

Open xapple opened this issue 8 years ago • 29 comments

So it seems like the distribution of binaries is over and that the recommended way is to use the HomeBrew package manager. That's fine, except that with the latest version of brew and the latest version of OS X, it doesn't build. There is no way to obtain Graphviz.app on OS X anymore.

xapple@local ~ $ brew install graphviz --with-app
==> Downloading http://graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz
######################################################################## 100.0%
==> Downloading https://raw.githubusercontent.com/Homebrew/patches/ec8d133/graphviz/patch-pr
######################################################################## 100.0%
==> Patching
==> Applying patch-project.pbxproj.diff
patching file macosx/graphviz.xcodeproj/project.pbxproj
==> ./configure --prefix=/usr/local/Cellar/graphviz/2.38.0 --without-qt --with-quartz --disa
==> make install
Last 15 lines from /Users/xapple/Library/Logs/Homebrew/graphviz/02.make:
libtool: install: /usr/local/bin/ginstall -c .libs/libgvplugin_core.6.dylib /usr/local/Cellar/graphviz/2.38.0/lib/graphviz/libgvplugin_core.6.dylib
libtool: install: (cd /usr/local/Cellar/graphviz/2.38.0/lib/graphviz && { ln -s -f libgvplugin_core.6.dylib libgvplugin_core.dylib || { rm -f libgvplugin_core.dylib && ln -s libgvplugin_core.6.dylib libgvplugin_core.dylib; }; })
libtool: install: /usr/local/bin/ginstall -c .libs/libgvplugin_core.lai /usr/local/Cellar/graphviz/2.38.0/lib/graphviz/libgvplugin_core.la
Making install in devil
  CC       gvdevice_devil.lo
  CC       gvplugin_devil.lo
  CCLD     libgvplugin_devil_C.la
  CCLD     libgvplugin_devil.la
ld: file not found: /usr/local/lib/gcc/4.9/libstdc++.6.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [libgvplugin_devil.la] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [install-recursive] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2

xapple avatar Mar 26 '16 16:03 xapple

Well, it built ok for me last night, so maybe it is something specific to your computer.

It would be nice if someone could do the work to create an install package from the homebrew executables.

On Saturday, March 26, 2016, Lucas Sinclair [email protected] wrote:

So it seems like the distribution of binaries is over and that the recommended way is to use the HomeBrew package manager. That's fine, except that with the latest version of brew and the latest version of OS X, it doesn't build. There is no way to obtain Graphviz.app on OS X anymore.

xapple@local ~ $ brew install graphviz --with-app ==> Downloading http://graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz ######################################################################## 100.0% ==> Downloading https://raw.githubusercontent.com/Homebrew/patches/ec8d133/graphviz/patch-pr ######################################################################## 100.0% ==> Patching ==> Applying patch-project.pbxproj.diff patching file macosx/graphviz.xcodeproj/project.pbxproj ==> ./configure --prefix=/usr/local/Cellar/graphviz/2.38.0 --without-qt --with-quartz --disa ==> make install Last 15 lines from /Users/xapple/Library/Logs/Homebrew/graphviz/02.make: libtool: install: /usr/local/bin/ginstall -c .libs/libgvplugin_core.6.dylib /usr/local/Cellar/graphviz/2.38.0/lib/graphviz/libgvplugin_core.6.dylib libtool: install: (cd /usr/local/Cellar/graphviz/2.38.0/lib/graphviz && { ln -s -f libgvplugin_core.6.dylib libgvplugin_core.dylib || { rm -f libgvplugin_core.dylib && ln -s libgvplugin_core.6.dylib libgvplugin_core.dylib; }; }) libtool: install: /usr/local/bin/ginstall -c .libs/libgvplugin_core.lai /usr/local/Cellar/graphviz/2.38.0/lib/graphviz/libgvplugin_core.la Making install in devil CC gvdevice_devil.lo CC gvplugin_devil.lo CCLD libgvplugin_devil_C.la CCLD libgvplugin_devil.la ld: file not found: /usr/local/lib/gcc/4.9/libstdc++.6.dylib for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[3]: *** [libgvplugin_devil.la] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [install-recursive] Error 1 make[1]: *** [install-recursive] Error 1 make: *** [install] Error 2

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/ellson/graphviz/issues/80

magneticnorth avatar Mar 26 '16 16:03 magneticnorth

So maybe an incompatibility with some other package installed ? Here is some more info on my configuration, everything is pretty much standard:

xapple@local ~ $ brew doctor
Your system is ready to brew.
xapple@local ~ $ brew list
atk         gtk+            parallel
autoconf        harfbuzz        pcre
automake        hicolor-icon-theme  pillow
autotrace       hqx         pixman
bash-completion     htop-osx        pkg-config
boost           icu4c           popt
cairo           imagemagick     portmidi
cloc            isl         potrace
cloog           jpeg            pygame
cmake           libevent        python
coreutils       libexif         r
devil           libffi          readline
dos2unix        libmpc          rsync
exif            libpng          sdl
exiftool        libtiff         sdl_image
fluid-synth     libtool         sdl_mixer
fontconfig      little-cms2     sdl_ttf
freetype        matplotlib      sloccount
gcc         matplotlib-basemap  smpeg
gd          md5sha1sum      sqlite
gdbm            mercurial       swig
gdk-pixbuf      mpfr            tig
geos            node            unrar
gettext         ntfs-3g         webp
git         numpy           wget
glib            open-mpi        wxmac
gmp         openssl         wxpython
gnu-sed         p7zip           xz
gobject-introspection   pandoc
graphviz        pango

xapple avatar Mar 26 '16 16:03 xapple

Can't you just add a ZIP archive of the Graphviz.app directory (package) you were able to generate at https://github.com/ellson/graphviz/releases and be done with it ?

xapple avatar Mar 26 '16 16:03 xapple

The configure line was truncated in my first post. Here it is in full:

==> ./configure --prefix=/usr/local/Cellar/graphviz/2.38.0 --without-qt --with-quartz --disable-swig --without-pangocairo --without-freetype2 --without-x --without-rsvg

xapple avatar Mar 26 '16 16:03 xapple

My gcc-5, installed with brew, is version 5.3 /usr/bin/gcc, installed via Xcode, is Apple LLVM version 7.3.0 (clang-703.0.29)

If your system is up to date, why does the build system look for /usr/local/lib/gcc/4.9/libstdc++.6.dylib

Is it possible your system has the remnants of a previous version of gcc that was not correctly removed or updated?

On Mar 26, 2016, at 12:21 PM, Lucas Sinclair [email protected] wrote:

So maybe an incompatibility with some other package installed ? Here is some more info on my configuration, everything is pretty much standard:

xapple@local ~ $ brew doctor Your system is ready to brew. xapple@local ~ $ brew list atk gtk+ parallel autoconf harfbuzz pcre automake hicolor-icon-theme pillow autotrace hqx pixman bash-completion htop-osx pkg-config boost icu4c popt cairo imagemagick portmidi cloc isl potrace cloog jpeg pygame cmake libevent python coreutils libexif r devil libffi readline dos2unix libmpc rsync exif libpng sdl exiftool libtiff sdl_image fluid-synth libtool sdl_mixer fontconfig little-cms2 sdl_ttf freetype matplotlib sloccount gcc matplotlib-basemap smpeg gd md5sha1sum sqlite gdbm mercurial swig gdk-pixbuf mpfr tig geos node unrar gettext ntfs-3g webp git numpy wget glib open-mpi wxmac gmp openssl wxpython gnu-sed p7zip xz gobject-introspection pandoc graphviz pango — You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/ellson/graphviz/issues/80#issuecomment-201880894

graphviz avatar Mar 26 '16 17:03 graphviz

I have no idea why it looks there, that directory does not exist:

xapple@local home (master) $ brew info gcc
gcc: stable 5.3.0 (bottled), HEAD
GNU compiler collection
https://gcc.gnu.org
/usr/local/Cellar/gcc/5.2.0 (1,353 files, 251.8M)
  Poured from bottle
/usr/local/Cellar/gcc/5.3.0 (1,361 files, 261.9M) *
  Built from source
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/gcc.rb
==> Dependencies
Required: gmp ✔, libmpc ✔, mpfr ✔, isl ✔
xapple@local home (master) $ ls /usr/local/lib/gcc
5
xapple@local home (master) $ /usr/bin/gcc
clang: error: no input files
xapple@local home (master) $

xapple avatar Mar 26 '16 17:03 xapple

OK, if you can give me ssh access to your computer, I’ll look at it when I have time. Stephen

On Mar 26, 2016, at 1:35 PM, Lucas Sinclair [email protected] wrote:

I have no idea why it looks there, that directory does not exist:

xapple@local home (master) $ brew info gcc gcc: stable 5.3.0 (bottled), HEAD GNU compiler collection https://gcc.gnu.org https://gcc.gnu.org/ /usr/local/Cellar/gcc/5.2.0 (1,353 files, 251.8M) Poured from bottle /usr/local/Cellar/gcc/5.3.0 (1,361 files, 261.9M) * Built from source From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/gcc.rb https://github.com/Homebrew/homebrew/blob/master/Library/Formula/gcc.rb ==> Dependencies Required: gmp ✔, libmpc ✔, mpfr ✔, isl ✔ xapple@local home (master) $ ls /usr/local/lib/gcc 5 xapple@local home (master) $

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/ellson/graphviz/issues/80#issuecomment-201903868

magneticnorth avatar Mar 26 '16 17:03 magneticnorth

Well I recognize that it is generous to offer your time to fix my problem in such a way. However, I don't think that unsupervised access to one's main machine is anything a professional developer would do, unfortunately. If you would like to have a look why not use remote screen control ? There is a simple solution accessible from Messages.app if you are also on OS X.

xapple avatar Mar 26 '16 17:03 xapple

Don't worry, no professional developers are supporting Graphviz any more!

On Saturday, March 26, 2016, Lucas Sinclair [email protected] wrote:

Well I recognize that it is generous to offer your time to fix my problem in such a way. However, I don't think that unsupervised access to one's main machine is anything a professional developer would do, unfortunately. If you would like to have a look why not use remote screen control ? There is a simple solution accessible from Messages.app if you are also on OS X.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/ellson/graphviz/issues/80#issuecomment-201905378

magneticnorth avatar Mar 26 '16 19:03 magneticnorth

Can't you just add a ZIP archive of the Graphviz.app that you were able to generate in the release/download list ? That's usually how applications are distributed on OS X.

xapple avatar Mar 26 '16 19:03 xapple

Now wait a minute. I am now a professional developer, and you'll see I have been supporting Graphviz. Just on Friday, one of my colleagues hit a bug that must been there for 20 years. So there. :)

On 3/26/16 3:13 PM, Stephen North wrote:

Don't worry, no professional developers are supporting Graphviz any more!

On Saturday, March 26, 2016, Lucas Sinclair [email protected] wrote:

Well I recognize that it is generous to offer your time to fix my problem in such a way. However, I don't think that unsupervised access to one's main machine is anything a professional developer would do, unfortunately. If you would like to have a look why not use remote screen control ? There is a simple solution accessible from Messages.app if you are also on OS X.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/ellson/graphviz/issues/80#issuecomment-201905378

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/ellson/graphviz/issues/80#issuecomment-201912871Web Bug from https://github.com/notifications/beacon/AFT_Mgzxjoj_eXV1hLoK-xZj6VBjhv6uks5pxYVtgaJpZM4H5RJN.gif

emdenrg avatar Mar 26 '16 21:03 emdenrg

have no idea why it looks there, that directory does not exist:

Try brew update && brew upgrade && brew cleanup && brew prune && brew unlink gcc && brew link gcc and then try again.

brew cleanup will kill off all the versions of formulae you've installed that are outdated by newer versions also installed. brew prune will hoover up any brew-related dead symlinks you've got lying around.

If nothing there works feel free to file a bug report with us.

DomT4 avatar Mar 26 '16 21:03 DomT4

I followed @DomT4 advice and it produced a slightly different error this time, though still quite similar:

libtool: install: /usr/local/bin/ginstall -c .libs/libgvplugin_core.lai /usr/local/Cellar/graphviz/2.38.0/lib/graphviz/libgvplugin_core.la
Making install in devil
  CC       gvplugin_devil.lo
  CC       gvdevice_devil.lo
  CCLD     libgvplugin_devil_C.la
  CCLD     libgvplugin_devil.la
ld: file not found: /usr/local/lib/gcc/4.9/libgcc_s.1.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [libgvplugin_devil.la] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [install-recursive] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2

Does this help in any way in the diagnostic ? When you say "with us", you mean at the homebrew repository ?

xapple avatar Mar 26 '16 23:03 xapple

That's a weird error. brew gist-logs graphviz produces a whole debug output that'd be handy to poke around here.

When you say "with us", you mean at the homebrew repository ?

Yup!

DomT4 avatar Mar 27 '16 00:03 DomT4

Well it didn't produce much output actually.

xapple@local ~ $ brew gist-logs graphviz
https://gist.github.com/ac6fc1e37fd8e45fd0f0

xapple avatar Mar 27 '16 10:03 xapple

It might help if we can see the config.log from the attempted build.

It appears there is something unusual about the installed packages on your computer. So far, no one else has mentioned this problem.

On Mar 27, 2016, at 6:52 AM, Lucas Sinclair [email protected] wrote:

Well it didn't produce much output actually.

xapple@local ~ $ brew gist-logs graphviz https://gist.github.com/ac6fc1e37fd8e45fd0f0 — You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/ellson/graphviz/issues/80#issuecomment-202033509

magneticnorth avatar Mar 27 '16 11:03 magneticnorth

Oh, sorry, I see it’s already there.

magneticnorth avatar Mar 27 '16 11:03 magneticnorth

Yeah, agree with @magneticnorth this is some local configuration issue, although it's not particularly evident what.

You seem to have a problem with another library as well:

dyld: Library not loaded: /usr/local/lib/libtcl8.6.dylib
  Referenced from: /usr/local/bin/tclsh8.6
  Reason: image not found

Did you install that from Homebrew at some point or from an upstream package installer?

Well it didn't produce much output actually.

If you click through to the link you'll find the whole debug output I was referencing :smile:.

DomT4 avatar Mar 27 '16 13:03 DomT4

I have no idea what libtcl is and don't have a memory of installing that. It doesn't seem to be managed by brew either. I did a few searches for libtcl and ran into an other annoying issue with homebrew:

xapple@local test $ brew search libtcl
No formula found for "libtcl".
==> Searching pull requests...
Error: GitHub API rate limit exceeded for *.*.*.*. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)
Try again in 21 minutes 37 seconds, or create a personal access token:
  https://github.com/settings/tokens/new?scopes=&description=Homebrew
and then set the token as: export HOMEBREW_GITHUB_API_TOKEN="your_new_token"
xapple@local test $

This is quite a problem since I use github for my work... Could you maybe not do all those requests by default when just using the search command ?

xapple avatar Mar 27 '16 14:03 xapple

It doesn't seem to be managed by brew either.

The formula you'd be looking for is tcl-tk but it's not in your initial list. I'd try and hoover up those unexpected elements from /usr/local if you can.

Could you maybe not do all those requests by default when just using the search command ?

We ping the GitHub API in search to check for open pull requests and to see whether you need to do a full update when you call brew update. The usage on our side is pretty minimal. If you're running into that message I'd recommend using a token.

DomT4 avatar Mar 27 '16 17:03 DomT4

By "hoover up" you mean rm -rfI suppose ?

xapple avatar Mar 27 '16 17:03 xapple

I wouldn't necessary ever recommend going gung-ho with that particular command :smile:. You could mv /usr/local/bin/tclsh8.6 and /usr/local/bin/wish8.6 out of the way somewhere and see if compile proceeds any further.

DomT4 avatar Mar 27 '16 17:03 DomT4

Well I guess I'm starting to believe that's it a local configuration problem, but I usually always use brew for everything and never start installing things from source myself. Here is the result of your suggestion:

xapple@local ~ $ mkdir Desktop/hoover_up
xapple@local ~ $ mv /usr/local/bin/tclsh8.6 Desktop/hoover_up
xapple@local ~ $ mv /usr/local/bin/wish8.6 Desktop/hoover_up
xapple@local ~ $ brew install graphviz --with-app
==> Downloading http://graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.38.0.tar.gz
Already downloaded: /Library/Caches/Homebrew/graphviz-2.38.0.tar.gz
==> Downloading https://raw.githubusercontent.com/Homebrew/patches/ec8d133/graphviz/patch-
Already downloaded: /Library/Caches/Homebrew/graphviz--patch-7c8d5c2fd475f07de4ca3a4340d722f472362615a369dd3f8524021306605684.diff
==> Patching
==> Applying patch-project.pbxproj.diff
patching file macosx/graphviz.xcodeproj/project.pbxproj
==> ./configure --prefix=/usr/local/Cellar/graphviz/2.38.0 --without-qt --with-quartz --di
==> make install
Last 15 lines from /Users/xapple/Library/Logs/Homebrew/graphviz/02.make:
libtool: install: /usr/local/bin/ginstall -c .libs/libgvplugin_core.6.dylib /usr/local/Cellar/graphviz/2.38.0/lib/graphviz/libgvplugin_core.6.dylib
libtool: install: (cd /usr/local/Cellar/graphviz/2.38.0/lib/graphviz && { ln -s -f libgvplugin_core.6.dylib libgvplugin_core.dylib || { rm -f libgvplugin_core.dylib && ln -s libgvplugin_core.6.dylib libgvplugin_core.dylib; }; })
libtool: install: /usr/local/bin/ginstall -c .libs/libgvplugin_core.lai /usr/local/Cellar/graphviz/2.38.0/lib/graphviz/libgvplugin_core.la
Making install in devil
  CC       gvplugin_devil.lo
  CC       gvdevice_devil.lo
  CCLD     libgvplugin_devil_C.la
  CCLD     libgvplugin_devil.la
ld: file not found: /usr/local/lib/gcc/4.9/libgcc_s.1.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [libgvplugin_devil.la] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [install-recursive] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [install] Error 2

xapple avatar Mar 27 '16 18:03 xapple

My computer doesn’t have “devil (DEVice Independent Layer? of something) so maybe if nothing else needs it, you can remove it for now. It appears it can’t be built with any of the modern compilers, so I can’t even install it here. (I’m not rolling back to gcc 4.9!)

graphviz avatar Mar 27 '16 19:03 graphviz

So you mean to say, even if I fix this problem it is not going to build anyway ? Why don't you just distribute a precompiled binary like all other software on OS X ?

Are you suggesting I remove this package ? It doesn't seem to be related to graphviz:

$ brew info devil
devil: stable 1.7.8, HEAD
Cross-platform image library
https://sourceforge.net/projects/openil/
/usr/local/Cellar/devil/1.7.8_1 (23 files, 1.4M) *
  Built from source
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/devil.rb
==> Dependencies
Required: libpng ✔, jpeg ✔
==> Options
--universal
        Build a universal binary
--HEAD
        Install HEAD version

xapple avatar Mar 27 '16 19:03 xapple

Sorry for the problems. It would be nice to be able to build an OSX package but I don’t understand the intricacies of pkgutil, pkgbuild, productbuild that replace PackageMaker that we still use.

Surely there is a tool or script to take Homebrew packages (executable, libraries, support files) and bundles them up in a dmg or some kind of installer for OSX?

I don’t want to just zip the executables in /Applications/Graphviz.app - immediately you at least want a post install script to link the command line tools to /usr/local/bin, but what if someone wants to install somewhere else like /opt/usr/local/bin and why can’t I put Graphviz.app on my external shared drive? Also we might need to run fc-cache, and dot -c to initialize the plugins. It’s a slippery slope that probably leads to using a real package maker utility.

Stephen

On Mar 27, 2016, at 3:30 PM, Lucas Sinclair [email protected] wrote:

So you mean to say, even if I fix this problem it is not going to build anyway ? Why don't you just distribute a precompiled binary like all other software on OS X ?

Are you suggesting I remove this package ? It doesn't seem to be related to graphviz:

$ brew info devil devil: stable 1.7.8, HEAD Cross-platform image library https://sourceforge.net/projects/openil/ /usr/local/Cellar/devil/1.7.8_1 (23 files, 1.4M) * Built from source From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/devil.rb ==> Dependencies Required: libpng ✔, jpeg ✔ ==> Options --universal Build a universal binary --HEAD Install HEAD version — You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/ellson/graphviz/issues/80#issuecomment-202127970

graphviz avatar Mar 28 '16 01:03 graphviz

Well, yes, I can see how that could be bothersome. But you know, 95% of users don't care about linking the command line tools and will only use the GUI of your application. The other 5% will know about brew which does install graphviz fine when called with brew install graphviz. It just doesn't work with the --with-app option. Then about the plugins, I'm not so sure, but a plugin-less version to start with would already be a great boon.

xapple avatar Mar 28 '16 10:03 xapple

I'm not an expert on homebrew, but yes, most software packages come precompiled in some type of archive that has a .bottle extension to keep with the beer analogy. Maybe we should open a ticket over there as @DomT4 suggested ?

xapple avatar Mar 28 '16 10:03 xapple

@graphviz @xapple Yeah, usually a pre-compiled .app is distributed with all of the dependencies bundled. Helps ensure that the .app is guaranteed to work regardless of what is (or isn't) installed elsewhere.

joelday avatar Jan 18 '17 20:01 joelday