Opened 12 years ago

Last modified 3 years ago

#36707 new defect

graphviz +smyrna fails when gtk2 is installed +quartz -x11

Reported by: i3roly Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.1.2
Keywords: Cc: cooljeanius (Eric Gallager), mascguy (Christopher Nielsen)
Port: graphviz-devel

Description

Hi,

I'm on OSX 10.8 with the latest xcode installed.

I've managed to install graphviz-devel, but when specifying the smyrna variant (i.e. graphviz-devel +smyrna), it does not produce a smyrna executable.

Attachments (2)

main.log.bz2 (29.9 KB) - added by ryandesign (Ryan Carsten Schmidt) 12 years ago.
Screenshot 2021-10-09 at 5.40.12 PM.png (768.9 KB) - added by i3roly 3 years ago.

Download all attachments as: .zip

Change History (16)

comment:1 Changed 12 years ago by mf2k (Frank Schima)

Keywords: smyrna graphviz plots removed
Owner: changed from macports-tickets@… to ryandesign@…

In the future, please Cc the port maintainer(s).

comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

So the port builds successfully, but does not end up containing smyrna?

Can you test whether the graphviz port has the same problem?

comment:3 Changed 12 years ago by i3roly

both have the same problem.

even when building graphviz from source, this is the same issue.

however when I try to build from source it gives some information about what part of the configure process failed.

i suspect it's the same issue, which is finding the proper glut headers. I have pasted the relevant chunks from the "configure" command.:

GagansMacPro:graphviz-2.29.20121016.0445 Gagan$ ./configure with_smyrna=yes

*snip*

checking for connect... (cached) yes
checking for gethostbyname... (cached) yes
checking for expat-config... no
checking expat.h usability... yes
checking expat.h presence... yes
checking for expat.h... yes
checking for main in -lexpat... yes
checking IL/il.h usability... no
checking IL/il.h presence... no
checking for IL/il.h... no
configure: WARNING: Optional DevIL library not available - missing headers
checking for main in -lIL... no
configure: WARNING: Optional DevIL library not available
checking for main in -lXpm... yes
checking X11/Intrinsic.h usability... yes
checking X11/Intrinsic.h presence... yes
checking for X11/Intrinsic.h... yes
checking for X11/Xaw/Text.h... yes
checking for main in -lXaw... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for main in -lz... yes
checking for deflateBound... yes
checking for RSVG... no
checking ghostscript/iapi.h usability... no
checking ghostscript/iapi.h presence... no
checking for ghostscript/iapi.h... no
checking for PANGOCAIRO... yes
checking for PANGOFT2... yes
checking for pango_fc_font_lock_face... yes
checking for pango_fc_font_unlock_face... yes
checking for LASI... yes
checking for FREETYPE2... yes
checking for FONTCONFIG... yes
checking for GDK_PIXBUF... yes
checking for GTK... yes
checking for GTKGL... no
checking for GTKGLEXT... yes
checking for GTS... yes
checking for GLADE... yes
checking for qmake-qt4... no
checking for qmake-qt3... no
checking for qmake... no
checking for gdlib-config... /opt/local/bin/gdlib-config
checking gd.h usability... yes
checking gd.h presence... yes
checking for gd.h... yes
checking for main in -lgd... yes
checking GL/glut.h usability... no
checking GL/glut.h presence... no
checking for GL/glut.h... no
configure: WARNING: Optional glut library not available - no GL/glut.h
configure: WARNING: SMYRNA requires GLUT
checking if have working sincos()... no
checking if FILE struct contains _cnt... no
checking if FILE struct contains _r... yes
checking if FILE struct contains _next... no
checking if FILE struct contains _IO_read_end... no
checking if errno externs are declared... yes
checking if getopt externs are declared... yes
checking if intptr_t is declared... yes
checking if assert needs __eprintf... no
checking size of long long... 8
checking size of int... 4
configure: creating ./config.status
config.status: creating Makefile
config.status: creating debian/changelog

*snip*

=== configuring in libltdl (/Users/Gagan/Downloads/graphviz-2.29.20121016.0445/libltdl)
configure: running /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  'with_smyrna=yes' '--enable-ltdl-convenience' --cache-file=/dev/null --srcdir=.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... config/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-apple-darwin12.2.0
checking host system type... x86_64-apple-darwin12.2.0
checking how to print strings... printf
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld
checking if the linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) is GNU ld... no
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm
checking the name lister (/usr/bin/nm) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-apple-darwin12.2.0 file names to x86_64-apple-darwin12.2.0 format... func_convert_file_noop
checking how to convert x86_64-apple-darwin12.2.0 file names to toolchain format... func_convert_file_noop
checking for /usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld option to reload object files... -r
checking for objdump... no
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm output from gcc object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking for dsymutil... dsymutil
checking for nmedit... nmedit
checking for lipo... lipo
checking for otool... otool
checking for otool64... no
checking for -single_module linker flag... yes
checking for -exported_symbols_list linker flag... yes
checking for -force_load linker flag... yes
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fno-common -DPIC
checking if gcc PIC flag -fno-common -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/llvm-gcc-4.2/libexec/gcc/i686-apple-darwin11/4.2.1/ld) supports shared libraries... yes
checking dynamic linker characteristics... darwin12.2.0 dyld
checking how to hardcode library paths into programs... immediate
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... yes
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking which extension is used for runtime loadable modules... .so
checking which variable specifies run-time module search path... DYLD_LIBRARY_PATH
checking for the default library search path... /usr/local/lib /lib /usr/lib
checking for library containing dlopen... none required
checking for dlerror... yes
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dld_link in -ldld... no
checking for _ prefix in compiled symbols... yes
checking whether we have to add an underscore for dlsym... no
checking whether deplibs are loaded by dlopen... yes
checking for argz.h... no
checking for error_t... no
checking for argz_add... no
checking for argz_append... no
checking for argz_count... no
checking for argz_create_sep... no
checking for argz_insert... no
checking for argz_next... no
checking for argz_stringify... no
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for unistd.h... (cached) yes
checking for dl.h... no
checking for sys/dl.h... no
checking for dld.h... no
checking for mach-o/dyld.h... yes
checking for dirent.h... yes
checking for closedir... yes
checking for opendir... yes
checking for readdir... yes
checking for strlcat... yes
checking for strlcpy... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

----------------------------------------------------------------

graphviz-2.29.20121016.0445 will be compiled with the following:

options:
  graph:         No (disabled deprecated)
  cgraph:        Yes
  digcola:       Yes
  expat:         Yes
  fontconfig:    Yes
  freetype:      Yes
  glut:          No (missing GL/glut.h)
  gts:           Yes
  ipsepcola:     No (disabled by default - C++ portability issues)
  ltdl:          Yes
  ortho:         Yes
  sfdp:          Yes
  shared:        Yes
  static:        No (disabled by default)
  qt:            No (qmake not found)
  x:             Yes

commands:
  dot:           Yes (always enabled)
  neato:         Yes (always enabled)
  fdp:           Yes (always enabled)
  circo:         Yes (always enabled)
  twopi:         Yes (always enabled)
  gvpr:          Yes (always enabled)
  gvmap:         Yes (always enabled)
  lefty:         Yes
  smyrna:        No (requires: glut)
  gvedit:        No (qmake not found)

plugin libraries:
  dot_layout:    Yes (always enabled)
  neato_layout:  Yes (always enabled)
  core:          Yes (always enabled)
  devil:         No (missing library)
  gd:            Yes
  gdiplus:       No (disabled by default - Windows only)
  gdk_pixbuf:    Yes
  ghostscript:   No (missing headers)
  glitz:         No (disabled by default - incomplete)
  gtk:           Yes
  lasi:          Yes
  ming:          No (disabled by default - incomplete)
  pangocairo:    Yes
  quartz:        No (disabled by default - Mac only)
  rsvg:          No (rsvg library not available)
  visio:         No (disabled by default - experimental)
  webp:          No (disabled by default - experimental)
  xlib:          Yes

comment:4 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

We were missing the freeglut dependency, which I added in r99088. Please wait 30 minutes, then "sudo port selfupdate", "sudo port clean graphviz-devel" and then try again. Does that help?

comment:5 Changed 12 years ago by i3roly

hi, I tried this and smyrna *does* install, however it cannot render graphics.

Can you ensure that it is compiled with quartz instead of x_11? The binary executes fine, but there is no graphics in the window, instead it will take the graphics of whatever window I alt tab from.

weird. much closer though heh.

comment:6 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Summary: Graphviz-devel 2.2x Smyrna does not buildgraphviz +smyrna fails when gtk2 is installed +quartz -x11

I had never tried compiling graphviz +smyrna when the gtk stack is installed with +quartz instead of +x11, but it would not surprise me if that did not work. It works for me when using +x11.

I just created a new MacPorts installation to compile everything with +quartz right now to test this. graphviz-devel +smyrna fails to build. The log is attached. graphviz +smyrna builds but when running smyrna I get a similar problem as you did, with random graphics memory showing up in the entire smyrna window. You can report these bugs to the developers of Graphviz if you like. Until they fix it, install the gtk stack with +x11 instead.

Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Attachment: main.log.bz2 added

comment:7 Changed 3 years ago by cooljeanius (Eric Gallager)

I have graphviz installed with +smyrna currently even though my gtk stack is installed with +quartz; I'm not sure if the smyrna functionality actually works, though:

$ port installed graphviz
The following ports are currently installed:
  graphviz @2.40.1_4+gdk_pixbuf+guile+java+ming+ocaml+pangocairo+perl+poppler+python27+rsvg+ruby+tcl+x11
  graphviz @2.49.1_0+gdk_pixbuf+guile+java+lua+ming+pangocairo+perl+poppler+python27+rsvg+ruby+smyrna+tcl+x11
  graphviz @2.49.1_0+gdk_pixbuf+guile+java+ming+pangocairo+perl+poppler+python27+rsvg+ruby+smyrna+tcl+x11 (active)
  graphviz @2.49.1_0+pangocairo+x11

comment:8 Changed 3 years ago by cooljeanius (Eric Gallager)

Cc: cooljeanius added

comment:9 Changed 3 years ago by mascguy (Christopher Nielsen)

Cc: mascguy added

comment:10 Changed 3 years ago by i3roly

hi,

when i install graphviz with smyrna, i simply (and only) add the +smyrna flag

i.e.

sudo port install graphviz +smyrna

since smyrna is a very powerful program, in spite of its primitive appearance, it will automatically install the appropriate packages.

you have way, way, too many graphviz variants installed. you should only need one. adding smyrna shouldn't affect the other programs (or so i'm assuming).

GagansMacPro:chapter 3 Gagan$ sudo port installed | grep graphviz
  graphviz @2.40.1_4+pangocairo+smyrna+x11 (active)

to verify smyrna is operating, you should call it on the command line and see a window in XQuartz

edit: oh i see, there's a 2.49 graphviz out. wow it's been some time! let me try it and follow-up.

edit2: working without issue. might even be slightly faster.

Version 2, edited 3 years ago by i3roly (previous) (next) (diff)

Changed 3 years ago by i3roly

comment:11 Changed 3 years ago by cooljeanius (Eric Gallager)

ah ok, so smyrna is installed for me, it just doesn't work:

$ smyrna
2021-10-09 20:02:04.552 smyrna[74214:2021616] *** WARNING: Method userSpaceScaleFactor in class NSView is deprecated on 10.7 and later. It should not be used in new applications. Use convertRectToBacking: instead. 
freeglut (smyrna): failed to open display ':0'
$

comment:12 Changed 3 years ago by i3roly

what version is that?

your active version seems very weird.

why can't you just install a pangocairo+x11+smyrna graphviz?

i dunno why it's using java, gdk, etc. i think if you can build against those, then yes you will probably have an issue.

i guess you may be going for a super-optimised version, which never crossed my mind, lol.

comment:13 Changed 3 years ago by i3roly

eric i'm just curious: are you trying to get smyrna to work *only* using the configuration you shared a few comments above?

did macports automatically add all of those packages to the command line? i just find those packages to be strange. i don't see why it would need perl, python, ruby and java...

are you interested in getting graphviz+smyrna to work, no matter what the options?

if so, just try

install port graphviz +smyrna -ming -gdk_pixbuf -lua -java -perl -poppler -python27 -rsvg -ruby -tcl

to see if it installs with just pangocairo and x11

comment:14 Changed 3 years ago by cooljeanius (Eric Gallager)

I selected those variants manually because I like to install my ports with maximum variants enabled in general when possible, just to see what works.

Note: See TracTickets for help on using tickets.