Last active
March 8, 2021 11:28
-
-
Save emarsk/7cd1d17b77ac6a0015b6 to your computer and use it in GitHub Desktop.
Xorg graphviz dependency graph, as in BLFS book. To generate the image: "dot -Tpng xorg_depgraph.dot >xorg_depgraph.png".
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Xorg dependency graph (dot) | |
// BLFS 7.8 | |
// | |
// style=solid : required | |
// style=dashed : recommended | |
// style=dotted : optional | |
// style=solid arrowhead=dot color=grey : required at runtime | |
strict digraph xorg { | |
label="Xorg dependencies | |
required + recommended | |
as per BLFS 7.8 | |
" labelloc=t | |
node [style=filled fillcolor=snow] | |
// Xorg stuff: {{{1============================================================= | |
"util-macros" | |
"xorg protocol headers" -> "util-macros" [style=solid] | |
"xorg protocol headers" -> {sudo wget} [style=dashed] | |
/* "xorg protocol headers" -> {fop libxslt xmlto asciidoc} [style=dotted] */ // to build additional documentation | |
libxau -> "xorg protocol headers" [style=solid] | |
libxdmcp -> "xorg protocol headers" [style=solid] | |
"xcb-proto" -> "python 2 or 3" [style=solid] | |
/* "xcb-proto" -> libxml2 [style=dotted] */ // required to run the tests | |
libxcb -> {libxau "xcb-proto"} [style=solid] | |
libxcb -> libxdmcp [style=dashed] | |
/* libxcb -> doxygen [style=dotted] */ // to generate API documentation | |
/* libxcb -> check [style=dotted] */ // to run tests | |
/* libxcb -> libxslt [style=dotted] */ | |
"xorg libs" -> {fontconfig libxcb} [style=solid] | |
/* "xorg libs" -> {"xmlto with …"} [style=dotted] */ // to generate additional PDF or text documentation for the libXfont package | |
"xcb-util" -> libxcb [style=solid] | |
"xcb-util-image" -> "xcb-util" [style=solid] | |
"xcb-util-keysyms" -> libxcb [style=solid] | |
"xcb-util-renderutil" -> libxcb [style=solid] | |
"xcb-util-wm" -> libxcb [style=solid] | |
/* "xcb-util-wm" -> doxygen [style=dotted] */ | |
mesalib -> {"xorg libs" libdrm} [style=solid] | |
mesalib -> elfutils [style=dashed] // required for Gallium3D radeonsi driver | |
mesalib -> libvdpau [style=dashed] // to build VDPAU drivers | |
mesalib -> llvm [style=dashed] // required for Gallium3D r300, r600 and radeonsi drivers | |
// and for llvmpipe which is intended to be the fastest of the three sw rasterizers | |
// see http://www.mesa3d.org/faq.html#part3 | |
/* mesalib -> {"mesa-demos"} [style=dotted] */ // provides more than 300 extra demos to test MesaLib; this includes the same programs added by the patch above | |
/* mesalib -> {"Bellagio OpenMAX Integration Layer"} [style=dotted] */ // for mobile platforms | |
/* mesalib -> {wayland} [style=dotted] */ | |
xbitmaps -> "util-macros" [style=solid] | |
"xorg apps" -> {libpng mesalib xbitmaps "xcb-util"} [style=solid] | |
/* "xorg apps" -> OPTIONAL {"linux-pam" "cairo-5c" nickle} [style=dotted] */ // to run the undocumented xkeyhost script | |
"xcursor-themes" -> "xorg apps" [style=solid] | |
"xorg fonts" -> "xcursor-themes" [style=solid] | |
"xkeyboard-config" -> "xorg libs" [style=solid] | |
"xorg-server" -> {"libgcrypt or nettle or openssl" pixman "xorg fonts" "xkeyboard-config"} [style=solid] | |
"xorg-server" -> libepoxy [style=dashed] // required for glamor | |
"xorg-server" -> "xcb-util-keysyms" [style=dashed] // used by xnest | |
/* "xorg-server" -> acpid [style=dotted color=grey arrowhead=dot] */ // runtime | |
/* "xorg-server" -> {"xcb-util-image" "xcb-util-renderutil" "xcb-util-wm"} [style=dotted] */ // to build Xephyr | |
/* "xorg-server" -> {doxygen fop ghostscript xmlto} [style=dotted] */ // to build documentation | |
twm -> "xorg-server" [style=solid] | |
xterm -> "xorg apps" [style=solid] | |
/* xterm -> {valgrind man2html} [style=dotted] */ | |
xclock -> "xorg libs" [style=solid] | |
xinit -> {twm xterm xclock} [style=solid arrowhead=dot color=grey] // required at runtime | |
// }}}-------------------------------------------------------------------------- | |
// Xorg Drivers: {{{1=========================================================== | |
"xorg evdev driver" -> {libevdev "xorg-server"} [style=solid] | |
"xorg evdev driver" -> mtdev [style=dashed] | |
"xorg synaptics driver" -> {libevdev "xorg-server"} [style=solid] | |
xorg_drivers -> "xorg-server" [style=solid] // ATI: recommended to be built with glamor enabled | |
xorg_drivers [label= | |
"xorg ati driver | |
xorg fbdev driver | |
xorg nouveau driver | |
xorg vmware driver | |
xorg vmmouse driver | |
xorg wacom driver | |
" shape=box] | |
/* "xorg wacom driver" -> {doxygen graphviz} [style=dotted] */ | |
"xorg intel driver" -> {"xcb-util" "xorg-server"} [style=solid] | |
libva -> mesalib [style=solid] | |
/* libva -> {doxygen wayland} [style=dotted] */ | |
libvdpau -> "xorg libs" [style=solid] | |
/* libvdpau -> {doxygen graphviz "texlive or install-tl-unx"} [style=dotted] */ | |
libvdpau -> mesalib [style=solid arrowhead=dot color=grey] // required at runtime | |
// }}}-------------------------------------------------------------------------- | |
// Non-Xorg stuff: {{{1========================================================= | |
"desktop-file-utils" [style=filled fillcolor=ghostwhite] | |
elfutils [style=filled fillcolor=ghostwhite] | |
fontconfig [style=filled fillcolor=ghostwhite] | |
freetype [style=filled fillcolor=ghostwhite] | |
glib [style=filled fillcolor=ghostwhite] | |
"gnutls or openssl" [style=filled fillcolor=ghostwhite] | |
"libgcrypt or nettle or openssl" [style=filled fillcolor=ghostwhite] | |
harfbuzz [style=filled fillcolor=ghostwhite] | |
icu [style=filled fillcolor=ghostwhite] | |
libdrm [style=filled fillcolor=ghostwhite] | |
libepoxy [style=filled fillcolor=ghostwhite] | |
libffi [style=filled fillcolor=ghostwhite] | |
libgcrypt [style=filled fillcolor=ghostwhite] | |
"libgpg-error" [style=filled fillcolor=ghostwhite] | |
libpng [style=filled fillcolor=ghostwhite] | |
llvm [style=filled fillcolor=ghostwhite] | |
mtdev [style=filled fillcolor=ghostwhite] | |
nettle [style=filled fillcolor=ghostwhite] | |
openssl [style=filled fillcolor=ghostwhite] | |
pcre [style=filled fillcolor=ghostwhite] | |
pixman [style=filled fillcolor=ghostwhite] | |
"python 2 or 3" [style=filled fillcolor=ghostwhite] | |
"python-2" [style=filled fillcolor=ghostwhite] | |
"python-3" [style=filled fillcolor=ghostwhite] | |
"shared-mime-info" [style=filled fillcolor=ghostwhite] | |
sudo [style=filled fillcolor=ghostwhite] | |
wget [style=filled fillcolor=ghostwhite] | |
which [style=filled fillcolor=ghostwhite] | |
freetype -> {harfbuzz libpng which} [style=dashed] | |
fontconfig -> freetype [style=solid] | |
/* fontconfig -> {"docbook-utils and libxml2 "texlive or install-tl-unx"}[style=dotted] */ | |
glib -> {libffi "python 2 or 3"} [style=solid] | |
glib -> pcre [style=dashed] | |
/* glib -> { "d-bus" elfutils "gtk-doc" "fam library"} [style=dotted] */ | |
glib -> {"shared-mime-info" "desktop-file-utils"} [style=solid color=grey arrowhead=dot] | |
harfbuzz -> {glib icu freetype} [style=dashed] | |
/* harfbuzz -> { cairo "gobject-introspection" "gtk-doc" graphite2}[style=dotted] */ | |
libdrm -> "xorg libs" [style=dashed] // for Intel KMS API support required by Mesa | |
/* libdrm -> {"docbook-xml" "docbook-xsl" libxslt} [style=dotted] */ // to build manual pages | |
/* libdrm -> valgrind [style=dotted] */ | |
libepoxy -> mesalib [style=solid] | |
llvm -> {libffi "python-2"} [style=dashed] | |
/* llvm -> { cmake doxygen graphviz libxml2 "texlive or install-tl-unx" valgrind zip ocaml sphinx} [style=dotted] */ | |
libevdev -> "python 2 or 3" [style=solid] | |
/* libevdev -> check [style=dotted] */ // required for tests | |
/* libevdev -> {doxygen valgrind} [style=dotted] */ // optional for tests | |
/* libffi -> dejagnu [style=dotted] */ // to run the testsuite | |
"libgcrypt or nettle or openssl" [shape=box] | |
"libgcrypt or nettle or openssl" -> {libgcrypt nettle openssl} [style=solid] | |
libgcrypt -> "libgpg-error" [style=solid] | |
/* libgcrypt -> {"libcap with PAM and Pth" "texlive (or install-tl-unx)"} [style=dotted] */ | |
/* nettle -> openssl [style=dotted] */ // for examples | |
/* openssl -> "MIT Kerberos V5" [style=dotted] */ | |
/* pcre -> valgrind [style=dotted] */ | |
/* pixman -> {"gtk+2" libpng} [style=dotted] */ // for tests and demos | |
"python 2 or 3" [shape=box] | |
"python 2 or 3" -> {"python-2" "python-3"} [style=solid] | |
"python-2" -> libffi [style=dashed] | |
/* "python-2" -> {bluez valgrind} [style=dotted] */ | |
/* "python-2" -> {openssl sqlite tk} [style=dotted] */ // for additional modules | |
"python-3" -> libffi [style=dashed] | |
/* "python-3" -> {bluez gdb} [style=dotted] */ // required for some tests | |
/* "python-3" -> {"berkeley-db" openssl sqlite tk} [style=dotted] */ // for additional modules | |
/* sudo -> { "linux-pam" "mit kerberos v5" "openldap" MTA afs fwtk opie} [style=dotted] */ | |
wget -> "gnutls or openssl" [style=dashed] // since gnutls is recommended, openssl should, too | |
// openssl has fewer dependencies and is required by others | |
/* wget -> {libidn PCRE libpsl} [style=dotted] */ | |
/* wget -> {"libwww-perl with IO::Socket::SSL"} [style=dotted] */ // required for the test suite | |
/* wget -> {valgrind} [style=dotted] */ // optional for the test suite | |
"gnutls or openssl" [shape=box] | |
/* "gnutls or openssl" -> {gnutls openssl} [style=solid] */ // OMITTED for clarity | |
/* gnutls -> nettle [style=solid] */ // OMITTED for clarity | |
/* gnutls -> {"CA certificates" libtasn1 "p11-kit"} */ // OMITTED for clarity | |
/* gnutls -> { doxygen "gtk-doc" guile libidn "texlive or install-tl-unx" unbound valgrind autogen trousers} [style=dotted] */ | |
// }}}-------------------------------------------------------------------------- | |
} | |
// vi:ft=dot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Xorg dependency graph (dot) | |
// BLFS 7.8 | |
// Required only | |
// | |
// style=solid : required | |
// style=solid arrowhead=dot color=grey : required at runtime | |
strict digraph xorg { | |
label="Xorg dependencies | |
required only | |
as per BLFS 7.8 | |
" labelloc=t | |
node [style=filled fillcolor=snow] | |
// Xorg stuff: {{{1============================================================= | |
"util-macros" | |
"xorg protocol headers" -> "util-macros" [style=solid] | |
libxau -> "xorg protocol headers" [style=solid] | |
"xcb-proto" -> "python 2 or 3" [style=solid] | |
libxcb -> {libxau "xcb-proto"} [style=solid] | |
"xorg libs" -> {fontconfig libxcb} [style=solid] | |
"xcb-util" -> libxcb [style=solid] | |
"xcb-util-image" -> "xcb-util" [style=solid] | |
"xcb-util-keysyms" -> libxcb [style=solid] | |
"xcb-util-renderutil" -> libxcb [style=solid] | |
"xcb-util-wm" -> libxcb [style=solid] | |
mesalib -> {"xorg libs" libdrm} [style=solid] | |
xbitmaps -> "util-macros" [style=solid] | |
"xorg apps" -> {libpng mesalib xbitmaps "xcb-util"} [style=solid] | |
"xcursor-themes" -> "xorg apps" [style=solid] | |
"xorg fonts" -> "xcursor-themes" [style=solid] | |
"xkeyboard-config" -> "xorg libs" [style=solid] | |
"xorg-server" -> {"libgcrypt or nettle or openssl" pixman "xorg fonts" "xkeyboard-config"} [style=solid] | |
twm -> "xorg-server" [style=solid] | |
xterm -> "xorg apps" [style=solid] | |
xclock -> "xorg libs" [style=solid] | |
xinit -> {twm xterm xclock} [style=solid arrowhead=dot color=grey] // required at runtime | |
// }}}-------------------------------------------------------------------------- | |
// Xorg Drivers: {{{1=========================================================== | |
libevdev -> "python 2 or 3" [style=solid] | |
"xorg evdev driver" -> {libevdev "xorg-server"} [style=solid] | |
"xorg synaptics driver" -> {libevdev "xorg-server"} [style=solid] | |
xorg_drivers -> "xorg-server" [style=solid] // ATI: recommended to be built with glamor enabled | |
xorg_drivers [label= | |
"xorg ati driver | |
xorg fbdev driver | |
xorg nouveau driver | |
xorg vmware driver | |
xorg vmmouse driver | |
xorg wacom driver | |
" shape=box] | |
"xorg intel driver" -> {"xcb-util" "xorg-server"} [style=solid] | |
// }}}-------------------------------------------------------------------------- | |
// Non-Xorg stuff: {{{1========================================================= | |
fontconfig [style=filled fillcolor=ghostwhite] | |
freetype [style=filled fillcolor=ghostwhite] | |
libdrm [style=filled fillcolor=ghostwhite] | |
"libgcrypt or nettle or openssl" [style=filled fillcolor=ghostwhite] | |
libgcrypt [style=filled fillcolor=ghostwhite] | |
"libgpg-error" [style=filled fillcolor=ghostwhite] | |
libpng [style=filled fillcolor=ghostwhite] | |
nettle [style=filled fillcolor=ghostwhite] | |
openssl [style=filled fillcolor=ghostwhite] | |
pixman [style=filled fillcolor=ghostwhite] | |
"python 2 or 3" [style=filled fillcolor=ghostwhite] | |
"python-2" [style=filled fillcolor=ghostwhite] | |
"python-3" [style=filled fillcolor=ghostwhite] | |
fontconfig -> freetype [style=solid] | |
"libgcrypt or nettle or openssl" [shape=box] | |
"libgcrypt or nettle or openssl" -> {libgcrypt nettle openssl} [style=solid] | |
libgcrypt -> "libgpg-error" [style=solid] | |
"python 2 or 3" [shape=box] | |
"python 2 or 3" -> {"python-2" "python-3"} [style=solid] | |
// }}}-------------------------------------------------------------------------- | |
} | |
// vi:ft=dot |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment