Skip to content

graphviz: early issues - need to build from source, fix stderr #9

@glvnst

Description

@glvnst

STDERR getting merged into STDOUT

First, see moby/moby#725 (comment)

When running this image as I'm currently suggesting, docker melds stdout and stderr. This is bad for a common use pattern (as I'm currently using it): graphviz dot graph.dot -Tpng >out.png. I can drop the --tty flag on the run command (like I do with compose_sort, grta, jq, myip, pygmentize, vueenv but I want to understand the implications of that a bit better in this case.

Build from source

When trying to find the right layouts for a project, I'm running into the need to build graphviz with different options:

$ graphviz sfdp -Goverlap=false graph.dot
Error: remove_overlap: Graphviz not built with triangulation library

The I think the missing config arg here is --with-gts=yes

Here are all the current config options for graphviz-2.44.0

$ ./configure --help
`configure' configures graphviz 2.44.0 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/graphviz]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

Program names:
  --program-prefix=PREFIX            prepend PREFIX to installed program names
  --program-suffix=SUFFIX            append SUFFIX to installed program names
  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names

X features:
  --x-includes=DIR    X include files are in DIR
  --x-libraries=DIR   X library files are in DIR

System types:
  --build=BUILD     configure for building on BUILD [guessed]
  --host=HOST       cross-compile to build programs to run on HOST [BUILD]

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-silent-rules   less verbose build output (undo: "make V=1")
  --disable-silent-rules  verbose build output (undo: "make V=0")
  --enable-static         build static executable
  --enable-static[=PKGS]  build static libraries [default=yes]
  --enable-shared         build shared executable
  --enable-shared[=PKGS]  build shared libraries [default=yes]
  --enable-dependency-tracking
                          do not reject slow dependency extractors
  --disable-dependency-tracking
                          speeds up one-time build
  --enable-fast-install[=PKGS]
                          optimize for fast installation [default=yes]
  --disable-libtool-lock  avoid locking (might break parallel builds)
  --enable-debug          Compile the debug version (default: disabled)
  --enable-ltdl-install   install libltdl
  --enable-ltdl           support on-demand plugin loading
  --enable-swig=yes       swig-generated language bindings
  --enable-sharp=yes      C# language bindings
  --enable-d=no           d language bindings
  --enable-go=yes         go language bindings
  --enable-guile=yes      guile language bindings
  --enable-io=no          io language bindings
  --enable-java=yes       java language bindings
  --enable-javascript=no  d language bindings
  --enable-lua=yes        lua language bindings
  --enable-ocaml=yes      ocaml language bindings
  --enable-perl=yes       perl language bindings
  --enable-php=yes        php language bindings
  --enable-python=yes     python language bindings
  --enable-python2=yes    python2 language bindings
  --enable-python3=yes    python3 language bindings
  --enable-r=yes          R language bindings
  --enable-ruby=yes       ruby language bindings
  --enable-tcl=yes        tcl language bindings

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
                          both]
  --with-aix-soname=aix|svr4|both
                          shared library versioning (aka "SONAME") variant to
                          provide on AIX, [default=aix].
  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
  --with-sysroot[=DIR]    Search for dependent libraries within DIR (or the
                          compiler's sysroot if not specified).
  --with-tclsh=PROG       use a specific tclsh
  --with-included-ltdl    use the GNU ltdl sources included here
  --with-ltdl-include=DIR use the ltdl headers installed in DIR
  --with-ltdl-lib=DIR     use the libltdl.la installed in DIR
  --with-efence=no        use efence for debugging memory use
  --with-x                use the X Window System
  --with-javaincludedir=DIR
                          use JAVA includes from DIR
  --with-javalibdir=DIR   use JAVA libraries from DIR
  --with-extraincludedir=DIR
                          use extra includes from DIR
  --with-extralibdir=DIR  use extra libraries from DIR
  --with-expat=yes        use expat
  --with-expatincludedir=DIR
                          use EXPAT includes from DIR
  --with-expatlibdir=DIR  use EXPAT libraries from DIR
  --with-devil=yes        DevIL plugin
  --with-devilincludedir=DIR
                          use DevIL includes from DIR
  --with-devillibdir=DIR  use DevIL libraries from DIR
  --with-Xpmincludedir=DIR
                          use Xpm includes from DIR
  --with-Xpmlibdir=DIR    use Xpm libraries from DIR
  --with-Xawincludedir=DIR
                          use Xaw includes from DIR
  --with-Xawlibdir=DIR    use Xaw libraries from DIR
  --with-zincludedir=DIR  use Z includes from DIR
  --with-zlibdir=DIR      use Z libraries from DIR
  --with-webp=yes         webp library
  --with-poppler=yes      poppler library
  --with-rsvg=yes         rsvg library
  --with-ghostscript=yes  ghostscript library
  --with-visio=yes        visio library
  --with-pangocairo=yes   pangocairo library
  --with-lasi=yes         lasi library
  --with-glitz=no         glitz library
  --with-freetype2=yes    freetype2 library
  --with-fontconfig=yes   use fontconfig library
  --with-gdk=yes          gdklibrary
  --with-gdk-pixbuf=yes   gdk-pixbuf library
  --with-gtk=yes          gtk+ library
  --with-gtkgl=yes        gtkgl library
  --with-gtkglext=yes     gtkglext library
  --with-gts=yes          gts library
  --with-ann=yes          ANN library
  --with-glade=yes        glade library
  --with-ming=no          ming library (plugin for -Tswf)
  --with-qt=yes           Qt features
  --with-quartz=no        Quartz framework (Mac OS X)
  --with-platformsdkincludedir=DIR
                          use Platform SDK (Windows) includes from DIR
  --with-platformsdklibdir=DIR
                          use Platform SDK (Windows) libraries from DIR
  --with-gdiplus=no       GDI+ framework (Windows)
  --with-libgd=yes        use gd library
  --with-gdincludedir=DIR use GD includes from DIR
  --with-gdlibdir=DIR     use GD libraries from DIR
  --with-glut=yes         GLUT library
  --with-glutincludedir=DIR
                          use GLUT includes from DIR
  --with-glutlibdir=DIR   use GLUT libraries from DIR
  --with-sfdp=yes         sfdp layout engine
  --with-smyrna=yes       SMYRNA large graph viewer
  --with-ortho=yes        ORTHO features in neato layout engine
  --with-digcola=yes      DIGCOLA features in neato layout engine
  --with-ipsepcola=yes    IPSEPCOLA features in neato layout engine

Some influential environment variables:
  LIBPOSTFIX  subscript to lib, e.g. "/64" for "/usr/lib/64" on Solaris
  INTGOSIZE   integer size for go, 32 or 64
  RUBY_VER    version number of the ruby package
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  YACC        The `Yet Another Compiler Compiler' implementation to use.
              Defaults to the first program found out of: `bison -y', `byacc',
              `yacc'.
  YFLAGS      The list of arguments that will be passed by default to $YACC.
              This script will default YFLAGS to the empty string to avoid a
              default value of `-d' given by some make applications.
  LT_SYS_LIBRARY_PATH
              User-defined run-time library search path.
  CPP         C preprocessor
  PKG_CONFIG  path to pkg-config utility
  PKG_CONFIG_PATH
              directories to add to pkg-config's search path
  PKG_CONFIG_LIBDIR
              path overriding pkg-config's built-in search path
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  CXXCPP      C++ preprocessor
  OBJC        Objective C compiler command
  OBJCFLAGS   Objective C compiler flags
  XMKMF       Path to xmkmf, Makefile generator for X Window System
  XRENDER_CFLAGS
              C compiler flags for XRENDER, overriding pkg-config
  XRENDER_LIBS
              linker flags for XRENDER, overriding pkg-config
  GUILE_CFLAGS
              C compiler flags for GUILE, overriding pkg-config
  GUILE_LIBS  linker flags for GUILE, overriding pkg-config
  R_CFLAGS    C compiler flags for R, overriding pkg-config
  R_LIBS      linker flags for R, overriding pkg-config
  RUBY_CFLAGS C compiler flags for RUBY, overriding pkg-config
  RUBY_LIBS   linker flags for RUBY, overriding pkg-config
  WEBP_CFLAGS C compiler flags for WEBP, overriding pkg-config
  WEBP_LIBS   linker flags for WEBP, overriding pkg-config
  POPPLER_CFLAGS
              C compiler flags for POPPLER, overriding pkg-config
  POPPLER_LIBS
              linker flags for POPPLER, overriding pkg-config
  RSVG_CFLAGS C compiler flags for RSVG, overriding pkg-config
  RSVG_LIBS   linker flags for RSVG, overriding pkg-config
  SVG_2_36_CFLAGS
              C compiler flags for SVG_2_36, overriding pkg-config
  SVG_2_36_LIBS
              linker flags for SVG_2_36, overriding pkg-config
  PANGOCAIRO_CFLAGS
              C compiler flags for PANGOCAIRO, overriding pkg-config
  PANGOCAIRO_LIBS
              linker flags for PANGOCAIRO, overriding pkg-config
  PANGOFT2_CFLAGS
              C compiler flags for PANGOFT2, overriding pkg-config
  PANGOFT2_LIBS
              linker flags for PANGOFT2, overriding pkg-config
  LASI_CFLAGS C compiler flags for LASI, overriding pkg-config
  LASI_LIBS   linker flags for LASI, overriding pkg-config
  GLITZ_CFLAGS
              C compiler flags for GLITZ, overriding pkg-config
  GLITZ_LIBS  linker flags for GLITZ, overriding pkg-config
  FREETYPE2_CFLAGS
              C compiler flags for FREETYPE2, overriding pkg-config
  FREETYPE2_LIBS
              linker flags for FREETYPE2, overriding pkg-config
  FONTCONFIG_CFLAGS
              C compiler flags for FONTCONFIG, overriding pkg-config
  FONTCONFIG_LIBS
              linker flags for FONTCONFIG, overriding pkg-config
  GDK_CFLAGS  C compiler flags for GDK, overriding pkg-config
  GDK_LIBS    linker flags for GDK, overriding pkg-config
  GDK_PIXBUF_CFLAGS
              C compiler flags for GDK_PIXBUF, overriding pkg-config
  GDK_PIXBUF_LIBS
              linker flags for GDK_PIXBUF, overriding pkg-config
  GTK_CFLAGS  C compiler flags for GTK, overriding pkg-config
  GTK_LIBS    linker flags for GTK, overriding pkg-config
  GTKGL_CFLAGS
              C compiler flags for GTKGL, overriding pkg-config
  GTKGL_LIBS  linker flags for GTKGL, overriding pkg-config
  GTKGLEXT_CFLAGS
              C compiler flags for GTKGLEXT, overriding pkg-config
  GTKGLEXT_LIBS
              linker flags for GTKGLEXT, overriding pkg-config
  GTS_CFLAGS  C compiler flags for GTS, overriding pkg-config
  GTS_LIBS    linker flags for GTS, overriding pkg-config
  ANN_CFLAGS  C compiler flags for ANN, overriding pkg-config
  ANN_LIBS    linker flags for ANN, overriding pkg-config
  GLADE_CFLAGS
              C compiler flags for GLADE, overriding pkg-config
  GLADE_LIBS  linker flags for GLADE, overriding pkg-config
  MING_CFLAGS C compiler flags for MING, overriding pkg-config
  MING_LIBS   linker flags for MING, overriding pkg-config
  QTCORE_CFLAGS
              C compiler flags for QTCORE, overriding pkg-config
  QTCORE_LIBS linker flags for QTCORE, overriding pkg-config
  QTGUI_CFLAGS
              C compiler flags for QTGUI, overriding pkg-config
  QTGUI_LIBS  linker flags for QTGUI, overriding pkg-config

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to <http://www.graphviz.org/>.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions