# Graphviz 9.0.0
# ===============
# To clean up files from an old version before installing this one, or
# to uninstall Graphviz, skip down to the bottom for instructions.
# The easiest way would be to run 'make uninstall' from the (configure'd)
# source directory as root.
# Prerequisites:
# flex
# bison
# pkg-config
# TCL, TK (optional)
# XFree86 or X.org (optional)
# swig (optional)
# And if you have SWIG (all optional):
# mono's mcs (optional)
# guile (optional)
# java (optional)
# lua (optional)
# ocaml (optional)
# Perl (optional)
# PHP + zend (optional; for PHP packages)
# Python (optional)
# R (no idea what this is)
# Ruby (optional)
# expat (optional)
# DevIL (optional)
# zlib
# librsvg (optional)
# Ghostscript (optional)
# pango's libpangocairo >= 1.14.9 (optional)
# libLASi (optional)
# Freetype (optional)
# Fontconfig (optional)
# GTK+ >= 2.7.0 (optional)
# GTS (optional)
# libglade (optional)
# GD >= 2.0.34 (optional; preferably built with Freetype support)
# libpng (optional; if you don't have GD)
# Get the source tarball
cd
test -f installed/graphviz-9.0.0.tar.xz &&
mv installed/graphviz-9.0.0.tar.xz .
test ! -f graphviz-9.0.0.tar.xz &&
wget https://gitlab.com/api/v4/projects/4207231/packages/generic/\
graphviz-releases/9.0.0/graphviz-9.0.0.tar.xz
# Extract the source
mkdir -p -m 0700 ~/src
cd ~/src
find -maxdepth 1 -type d -name "graphviz-*" -exec rm -r {} \;
tar xJvf ~/graphviz-9.0.0.tar.xz
cd graphviz-9.0.0
test $UID = 0 && chown -R root:root .
# With an earlier version (I don't have ocaml installed this time),
# I had to add this to get it to find my ocaml includes:
CPPFLAGS=-I/usr/local/lib/ocaml \
# With an earlier version (I don't have lua (or swig) installed this time),
# I had to add this to get it to find lua:
LIBS=-lm \
# With 2.38.0, I had to use this before configure to get it to see DevIL:
LIBS=-lcom_err \
# If you don't have X and/or libXrender installed, make sure you pass
# --with-rsvg=no or it will fail building that plugin
## If you get an error like this:
# In file included from gv_php_init.c:14:0:
# /usr/include/php/main/php.h:298:46: warning: function declaration isn't a
# prototype [-Wstrict-prototypes]
# gv_php_init.c: In function 'gv_string_writer':
# gv_php_init.c:28:12: error: 'tsrm_ls' undeclared (first use in this
# function)
## run 'make distclean' then re-run configure with --enable-php=no
## (or upgrade PHP and try again)
## --enable-php gives you PHP bindings for Graphviz
# Configure the build for 64-bit
test $(uname -m) = 'x86_64' &&
./configure --docdir=/usr/local/doc/graphviz --libdir=/usr/local/lib64 \
--mandir=/usr/local/man --with-rsvg=no --enable-php=no
# Configure the build for anything else
test $(uname -m) != 'x86_64' &&
./configure --docdir=/usr/local/doc/graphviz --mandir=/usr/local/man \
--with-rsvg=no --enable-php=no
# Build it
make
# Become root to install it
su
# Remove this if it exists, from an older version of this howto
rm -f /etc/profile.d/graphviz.sh
# Install Graphviz
make install
ldconfig
# Make sure your non-root user can remove the source later
chown -R $(logname) .
chmod -R u+w .
# Become yourself again
exit
# Save the source for later
cd
mkdir -p -m 0700 installed
rm -f installed/graphviz-*.tar.*
mv graphviz-9.0.0.tar.xz installed/
# If you ever want to uninstall Graphviz, this should do it:
# (the 'make uninstall' should do it, the rest is just in case)
cd
su
test -d src/graphviz-* && ( cd src/graphviz-* ; make uninstall )
( cd /usr/local/bin
rm -f acyclic bcomps ccomps cluster diffimg dijkstra dot dotty \
dot_builtins edgepaint gc gml2gv graphml2gv gv2gml gvcolor gvgen \
gvmap gvmap.sh gvpack gvpr gxl2gv lneato mm2gv nop prune sccmap tred \
unflatten )
test -d /usr/local/include/graphviz && rm -r /usr/local/include/graphviz
for libdir in /usr/local/lib /usr/local/lib64;
do
test -d $libdir &&
( cd $libdir
test -d lib/graphviz && rm -r lib/graphviz
test -d lib64/graphviz && rm -r lib64/graphviz
test -d pkgconfig &&
( cd pkgconfig
rm -f libcdt.pc libcgraph.pc libgvc.pc libgvpr.pc libpathplan.pc \
libxdot.pc )
rm -f libcdt.* libcgraph.* libgraph.* libgvc.* libpathplan.* libxdot.* )
done
test -d /usr/local/share/graphviz && rm -r /usr/local/share/graphviz
for mandir in /usr/local/man /usr/local/share/man;
do
( cd ${mandir}/man1
rm -f acyclic.1 bcomps.1 ccomps.1 cluster.1 diffimg.1 dijkstra.1 dot.1 \
dotty.1 edgepaint.1 gc.1 gml2gv.1 graphml2gv.1 gvcolor.1 gvgen.1 \
gvmap.1 gvmap.sh.1 gvpack.1 gvpr.1 gxl2gv.1 latten.1 lneato.1 mm2gv.1 \
nop.1 osage.1 patchwork.1 prune.1 sccmap.1 tred.1 unflatten.1 vimdot.1 )
( cd ${mandir}/man3
rm -f cdt.3 cgraph.3 expr.3 gv.3guile gv.3perl gv.3python gv.3ruby \
gvc.3 gvpr.3 pack.3 pathplan.3 xdot.3 )
test ${mandir}/man7/graphviz.7 && rm ${mandir}/man7/graphviz.7
done
ldconfig
exit
find ~/src -maxdepth 1 -type d -name "graphviz-*" -exec rm -r {} \;
rm -f ~/installed/graphviz-*.tar.*