[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/02: talks: Add Rennes talk.
From: |
Ludovic Courtès |
Subject: |
01/02: talks: Add Rennes talk. |
Date: |
Tue, 10 Nov 2015 09:48:55 +0000 |
civodul pushed a commit to branch master
in repository maintenance.
commit 27f5095562e7395dc1d430d07de190a2c566118b
Author: Ludovic Courtès <address@hidden>
Date: Mon Nov 9 23:52:03 2015 +0100
talks: Add Rennes talk.
---
.gitignore | 9 +
.../rennes-2015/20150131-fosdem-distros-boring.pdf | Bin 0 -> 2501826 bytes
talks/rennes-2015/images/GuixSD.pdf | Bin 0 -> 9429 bytes
talks/rennes-2015/images/better.png | Bin 0 -> 14473 bytes
talks/rennes-2015/images/ci-jenkins-cropped.png | Bin 0 -> 54318 bytes
talks/rennes-2015/images/ci-jenkins.png | Bin 0 -> 94990 bytes
.../images/debian-upgrade-instructions.png | Bin 0 -> 100982 bytes
.../rennes-2015/images/debian-upgrade-warning.png | Bin 0 -> 54599 bytes
talks/rennes-2015/images/docker-security.png | Bin 0 -> 260587 bytes
talks/rennes-2015/images/gnunet-graph.dot | 1015 ++++++++++++++++++++
talks/rennes-2015/images/hope-hero.jpg | Bin 0 -> 114234 bytes
.../images/package-managers-cropped.png | Bin 0 -> 67606 bytes
talks/rennes-2015/images/package-managers.png | Bin 0 -> 109674 bytes
talks/rennes-2015/my-software.scm | 6 +
talks/rennes-2015/outline.org | 135 +++
talks/rennes-2015/rules.ini | 1 +
talks/rennes-2015/talk.tex | 769 +++++++++++++++
talks/reppar-2015/rules.ini | 2 +-
18 files changed, 1936 insertions(+), 1 deletions(-)
diff --git a/.gitignore b/.gitignore
index a305ed3..e429cc6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,12 @@
/talks/reppar-2015/talk.snm
/talks/reppar-2015/talk.toc
/talks/reppar-2015/talk.vrb
+/talks/rennes-2015/images/gnunet-graph.pdf
+/talks/rennes-2015/talk.aux
+/talks/rennes-2015/talk.log
+/talks/rennes-2015/talk.nav
+/talks/rennes-2015/talk.out
+/talks/rennes-2015/talk.pdf
+/talks/rennes-2015/talk.snm
+/talks/rennes-2015/talk.toc
+/talks/rennes-2015/talk.vrb
diff --git a/talks/rennes-2015/20150131-fosdem-distros-boring.pdf
b/talks/rennes-2015/20150131-fosdem-distros-boring.pdf
new file mode 100644
index 0000000..7672467
Binary files /dev/null and
b/talks/rennes-2015/20150131-fosdem-distros-boring.pdf differ
diff --git a/talks/rennes-2015/images/GuixSD.pdf
b/talks/rennes-2015/images/GuixSD.pdf
new file mode 100644
index 0000000..52c2cfa
Binary files /dev/null and b/talks/rennes-2015/images/GuixSD.pdf differ
diff --git a/talks/rennes-2015/images/better.png
b/talks/rennes-2015/images/better.png
new file mode 100644
index 0000000..29212e3
Binary files /dev/null and b/talks/rennes-2015/images/better.png differ
diff --git a/talks/rennes-2015/images/ci-jenkins-cropped.png
b/talks/rennes-2015/images/ci-jenkins-cropped.png
new file mode 100644
index 0000000..5bc4297
Binary files /dev/null and b/talks/rennes-2015/images/ci-jenkins-cropped.png
differ
diff --git a/talks/rennes-2015/images/ci-jenkins.png
b/talks/rennes-2015/images/ci-jenkins.png
new file mode 100644
index 0000000..e249d92
Binary files /dev/null and b/talks/rennes-2015/images/ci-jenkins.png differ
diff --git a/talks/rennes-2015/images/debian-upgrade-instructions.png
b/talks/rennes-2015/images/debian-upgrade-instructions.png
new file mode 100644
index 0000000..a2b8fc2
Binary files /dev/null and
b/talks/rennes-2015/images/debian-upgrade-instructions.png differ
diff --git a/talks/rennes-2015/images/debian-upgrade-warning.png
b/talks/rennes-2015/images/debian-upgrade-warning.png
new file mode 100644
index 0000000..d643a5c
Binary files /dev/null and
b/talks/rennes-2015/images/debian-upgrade-warning.png differ
diff --git a/talks/rennes-2015/images/docker-security.png
b/talks/rennes-2015/images/docker-security.png
new file mode 100644
index 0000000..fc3cb52
Binary files /dev/null and b/talks/rennes-2015/images/docker-security.png differ
diff --git a/talks/rennes-2015/images/gnunet-graph.dot
b/talks/rennes-2015/images/gnunet-graph.dot
new file mode 100644
index 0000000..ca37552
--- /dev/null
+++ b/talks/rennes-2015/images/gnunet-graph.dot
@@ -0,0 +1,1015 @@
+digraph "Guix package" {
+ "47325568" [label = "gnunet-0.10.1", shape = box, fontname = Helvetica];
+ "47325568" -> "31250880" [color = red];
+ "47325568" -> "43592896" [color = red];
+ "47325568" -> "38160640" [color = red];
+ "47325568" -> "47325760" [color = red];
+ "47325568" -> "30429760" [color = red];
+ "47325568" -> "47326144" [color = red];
+ "47325568" -> "44744448" [color = red];
+ "47325568" -> "30430720" [color = red];
+ "47325568" -> "47325952" [color = red];
+ "47325568" -> "31719168" [color = red];
+ "47325568" -> "31718976" [color = red];
+ "47325568" -> "30429568" [color = red];
+ "47325568" -> "35228864" [color = red];
+ "47325568" -> "34808960" [color = red];
+ "47325568" -> "45285568" [color = red];
+ "47325568" -> "45073920" [color = red];
+ "31250880" [label = "pkg-config-0.28", shape = box, fontname = Helvetica];
+ "43592896" [label = "python-2.7.10", shape = box, fontname = Helvetica];
+ "43592896" -> "31250880" [color = red];
+ "43592896" -> "45072960" [color = red];
+ "43592896" -> "45286720" [color = red];
+ "43592896" -> "31249536" [color = red];
+ "43592896" -> "45285568" [color = red];
+ "43592896" -> "30429568" [color = red];
+ "43592896" -> "30432640" [color = red];
+ "43592896" -> "45073920" [color = red];
+ "43592896" -> "42946944" [color = red];
+ "43592896" -> "42946560" [color = red];
+ "45072960" [label = "bzip2-1.0.6", shape = box, fontname = Helvetica];
+ "45286720" [label = "gdbm-1.11", shape = box, fontname = Helvetica];
+ "31249536" [label = "libffi-3.1", shape = box, fontname = Helvetica];
+ "45285568" [label = "sqlite-3.8.11.1", shape = box, fontname = Helvetica];
+ "45285568" -> "30432640" [color = red];
+ "30432640" [label = "readline-6.3", shape = box, fontname = Helvetica];
+ "30432640" -> "30432832" [color = red];
+ "30432832" [label = "ncurses-6.0", shape = box, fontname = Helvetica];
+ "30429568" [label = "openssl-1.0.2d", shape = box, fontname = Helvetica];
+ "30429568" -> "27446656" [color = red];
+ "27446656" [label = "perl-5.16.1", shape = box, fontname = Helvetica];
+ "45073920" [label = "zlib-1.2.7", shape = box, fontname = Helvetica];
+ "42946944" [label = "tcl-8.6.4", shape = box, fontname = Helvetica];
+ "42946560" [label = "tk-8.6.4", shape = box, fontname = Helvetica];
+ "42946560" -> "31250880" [color = red];
+ "42946560" -> "42433152" [color = red];
+ "42946560" -> "44510976" [color = red];
+ "42946560" -> "42946944" [color = red];
+ "42946560" -> "42839232" [color = red];
+ "42946560" -> "42764928" [color = red];
+ "42433152" [label = "libxft-2.3.2", shape = box, fontname = Helvetica];
+ "42433152" -> "31250880" [color = red];
+ "42433152" -> "42839232" [color = red];
+ "42433152" -> "42763584" [color = red];
+ "42433152" -> "42764352" [color = red];
+ "42433152" -> "44425216" [color = red];
+ "42433152" -> "44510976" [color = red];
+ "42839232" [label = "libx11-1.6.2", shape = box, fontname = Helvetica];
+ "42839232" -> "31250880" [color = red];
+ "42839232" -> "42361792" [color = red];
+ "42839232" -> "42569472" [color = red];
+ "42839232" -> "42704896" [color = red];
+ "42839232" -> "42361600" [color = red];
+ "42839232" -> "42839616" [color = red];
+ "42361792" [label = "inputproto-2.3.1", shape = box, fontname = Helvetica];
+ "42361792" -> "31250880" [color = red];
+ "42569472" [label = "xextproto-7.3.0", shape = box, fontname = Helvetica];
+ "42569472" -> "31250880" [color = red];
+ "42704896" [label = "xtrans-1.3.5", shape = box, fontname = Helvetica];
+ "42704896" -> "31250880" [color = red];
+ "42361600" [label = "kbproto-1.0.6", shape = box, fontname = Helvetica];
+ "42361600" -> "31250880" [color = red];
+ "42839616" [label = "libxcb-1.11", shape = box, fontname = Helvetica];
+ "42839616" -> "31250880" [color = red];
+ "42839616" -> "43591936" [color = red];
+ "42839616" -> "42497536" [color = red];
+ "42839616" -> "44740608" [color = red];
+ "42839616" -> "42434112" [color = red];
+ "42839616" -> "42763200" [color = red];
+ "42839616" -> "42433344" [color = red];
+ "43591936" [label = "python-wrapper-3.4.3", shape = box, fontname =
Helvetica];
+ "43591936" -> "31250880" [color = red];
+ "43591936" -> "30429568" [color = red];
+ "43591936" -> "45073920" [color = red];
+ "43591936" -> "43592320" [color = red];
+ "43592320" [label = "python-minimal-3.4.3", shape = box, fontname =
Helvetica];
+ "43592320" -> "31250880" [color = red];
+ "43592320" -> "30429568" [color = red];
+ "43592320" -> "45073920" [color = red];
+ "42497536" [label = "xcb-proto-1.11", shape = box, fontname = Helvetica];
+ "42497536" -> "31250880" [color = red];
+ "42497536" -> "43591936" [color = red];
+ "44740608" [label = "libxslt-1.1.28", shape = box, fontname = Helvetica];
+ "44740608" -> "44744448" [color = red];
+ "44740608" -> "44741184" [color = red];
+ "44740608" -> "43591936" [color = red];
+ "44740608" -> "45073920" [color = red];
+ "44744448" [label = "libgcrypt-1.6.3", shape = box, fontname = Helvetica];
+ "44744448" -> "44507136" [color = red];
+ "44744448" -> "44507136" [color = red];
+ "44507136" [label = "libgpg-error-1.19", shape = box, fontname = Helvetica];
+ "44741184" [label = "libxml2-2.9.2", shape = box, fontname = Helvetica];
+ "44741184" -> "27446656" [color = red];
+ "44741184" -> "45073920" [color = red];
+ "42434112" [label = "libpthread-stubs-0.3", shape = box, fontname =
Helvetica];
+ "42434112" -> "31250880" [color = red];
+ "42763200" [label = "libxau-1.0.8", shape = box, fontname = Helvetica];
+ "42763200" -> "31250880" [color = red];
+ "42763200" -> "42763584" [color = red];
+ "42763584" [label = "xproto-7.0.26", shape = box, fontname = Helvetica];
+ "42763584" -> "31250880" [color = red];
+ "42763584" -> "42498880" [color = red];
+ "42498880" [label = "util-macros-1.19.0", shape = box, fontname = Helvetica];
+ "42498880" -> "31250880" [color = red];
+ "42433344" [label = "libxdmcp-1.1.1", shape = box, fontname = Helvetica];
+ "42433344" -> "31250880" [color = red];
+ "42433344" -> "42763584" [color = red];
+ "42764352" [label = "libxrender-0.9.8", shape = box, fontname = Helvetica];
+ "42764352" -> "31250880" [color = red];
+ "42764352" -> "42763584" [color = red];
+ "42764352" -> "42839232" [color = red];
+ "42764352" -> "42430464" [color = red];
+ "42430464" [label = "renderproto-0.11.1", shape = box, fontname = Helvetica];
+ "42430464" -> "31250880" [color = red];
+ "44425216" [label = "freetype-2.6", shape = box, fontname = Helvetica];
+ "44510976" [label = "fontconfig-2.11.94", shape = box, fontname = Helvetica];
+ "44510976" -> "31250880" [color = red];
+ "44510976" -> "44508288" [color = red];
+ "44510976" -> "44741376" [color = red];
+ "44510976" -> "44425216" [color = red];
+ "44508288" [label = "gs-fonts-8.11", shape = box, fontname = Helvetica];
+ "44741376" [label = "expat-2.1.0", shape = box, fontname = Helvetica];
+ "42764928" [label = "libxext-1.3.3", shape = box, fontname = Helvetica];
+ "42764928" -> "31250880" [color = red];
+ "42764928" -> "42763200" [color = red];
+ "42764928" -> "42839232" [color = red];
+ "42764928" -> "42569472" [color = red];
+ "38160640" [label = "glpk-4.56", shape = box, fontname = Helvetica];
+ "38160640" -> "29009984" [color = red];
+ "29009984" [label = "gmp-6.0.0a", shape = box, fontname = Helvetica];
+ "29009984" -> "29010176" [color = red];
+ "29010176" [label = "m4-1.4.17", shape = box, fontname = Helvetica];
+ "47325760" [label = "gnurl-7.45.0", shape = box, fontname = Helvetica];
+ "47325760" -> "44507712" [color = red];
+ "47325760" -> "27446656" [color = red];
+ "47325760" -> "31250880" [color = red];
+ "47325760" -> "43592896" [color = red];
+ "47325760" -> "30429760" [color = red];
+ "47325760" -> "30430720" [color = red];
+ "47325760" -> "45073920" [color = red];
+ "44507712" [label = "groff-1.22.3", shape = box, fontname = Helvetica];
+ "44507712" -> "29008256" [color = red];
+ "44507712" -> "27446656" [color = red];
+ "44507712" -> "44509056" [color = red];
+ "44507712" -> "44617472" [color = red];
+ "44507712" -> "44508864" [color = red];
+ "44507712" -> "44507904" [color = red];
+ "29008256" [label = "bison-3.0.4", shape = box, fontname = Helvetica];
+ "29008256" -> "27446656" [color = red];
+ "29008256" -> "29010176" [color = red];
+ "29008256" -> "30433024" [color = red];
+ "29008256" -> "29010176" [color = red];
+ "30433024" [label = "flex-2.5.37", shape = box, fontname = Helvetica];
+ "30433024" -> "29010176" [color = red];
+ "30433024" -> "58065088" [color = red];
+ "30433024" -> "29007872" [color = red];
+ "30433024" -> "29010176" [color = red];
+ "58065088" [label = "bison-2.7.1", shape = box, fontname = Helvetica];
+ "58065088" -> "27446656" [color = red];
+ "58065088" -> "29010176" [color = red];
+ "58065088" -> "29010176" [color = red];
+ "29007872" [label = "indent-2.2.10", shape = box, fontname = Helvetica];
+ "44509056" [label = "psutils-17", shape = box, fontname = Helvetica];
+ "44509056" -> "27446656" [color = red];
+ "44617472" [label = "texinfo-6.0", shape = box, fontname = Helvetica];
+ "44617472" -> "43260160" [color = red];
+ "44617472" -> "30432832" [color = red];
+ "44617472" -> "45072576" [color = red];
+ "44617472" -> "27446656" [color = red];
+ "43260160" [label = "procps-3.2.8", shape = box, fontname = Helvetica];
+ "43260160" -> "30432832" [color = red];
+ "45072576" [label = "xz-5.0.4", shape = box, fontname = Helvetica];
+ "44508864" [label = "ghostscript-9.14.0", shape = box, fontname = Helvetica];
+ "44508864" -> "27446656" [color = red];
+ "44508864" -> "31250880" [color = red];
+ "44508864" -> "43592128" [color = red];
+ "44508864" -> "42946944" [color = red];
+ "44508864" -> "44425216" [color = red];
+ "44508864" -> "44509440" [color = red];
+ "44508864" -> "42950016" [color = red];
+ "44508864" -> "42950400" [color = red];
+ "44508864" -> "44509248" [color = red];
+ "44508864" -> "42949824" [color = red];
+ "44508864" -> "45073920" [color = red];
+ "43592128" [label = "python-wrapper-3.4.3", shape = box, fontname =
Helvetica];
+ "43592128" -> "31250880" [color = red];
+ "43592128" -> "45072960" [color = red];
+ "43592128" -> "45286720" [color = red];
+ "43592128" -> "31249536" [color = red];
+ "43592128" -> "45285568" [color = red];
+ "43592128" -> "30429568" [color = red];
+ "43592128" -> "30432640" [color = red];
+ "43592128" -> "45073920" [color = red];
+ "43592128" -> "42946944" [color = red];
+ "43592128" -> "42946560" [color = red];
+ "43592128" -> "43592704" [color = red];
+ "43592704" [label = "python-3.4.3", shape = box, fontname = Helvetica];
+ "43592704" -> "31250880" [color = red];
+ "43592704" -> "45072960" [color = red];
+ "43592704" -> "45286720" [color = red];
+ "43592704" -> "31249536" [color = red];
+ "43592704" -> "45285568" [color = red];
+ "43592704" -> "30429568" [color = red];
+ "43592704" -> "30432640" [color = red];
+ "43592704" -> "45073920" [color = red];
+ "43592704" -> "42946944" [color = red];
+ "43592704" -> "42946560" [color = red];
+ "44509440" [label = "lcms-2.6", shape = box, fontname = Helvetica];
+ "44509440" -> "42950016" [color = red];
+ "44509440" -> "42949824" [color = red];
+ "44509440" -> "45073920" [color = red];
+ "42950016" [label = "libjpeg-8d", shape = box, fontname = Helvetica];
+ "42949824" [label = "libtiff-4.0.5", shape = box, fontname = Helvetica];
+ "42949824" -> "45073920" [color = red];
+ "42949824" -> "42950208" [color = red];
+ "42950208" [label = "libjpeg-9a", shape = box, fontname = Helvetica];
+ "42950400" [label = "libpng-1.5.21", shape = box, fontname = Helvetica];
+ "42950400" -> "45073920" [color = red];
+ "44509248" [label = "libpaper-1.1.24", shape = box, fontname = Helvetica];
+ "44507904" [label = "netpbm-10.61.01", shape = box, fontname = Helvetica];
+ "44507904" -> "30433024" [color = red];
+ "44507904" -> "27446656" [color = red];
+ "44507904" -> "31250880" [color = red];
+ "44507904" -> "43592128" [color = red];
+ "44507904" -> "44508864" [color = red];
+ "44507904" -> "42950208" [color = red];
+ "44507904" -> "42950400" [color = red];
+ "44507904" -> "42949824" [color = red];
+ "44507904" -> "44741184" [color = red];
+ "44507904" -> "45073920" [color = red];
+ "30429760" [label = "gnutls-3.4.5", shape = box, fontname = Helvetica];
+ "30429760" -> "31250880" [color = red];
+ "30429760" -> "44617472" [color = red];
+ "30429760" -> "45074880" [color = red];
+ "30429760" -> "45433984" [color = red];
+ "30429760" -> "27446656" [color = red];
+ "30429760" -> "30430144" [color = red];
+ "30429760" -> "30430720" [color = red];
+ "30429760" -> "30430336" [color = red];
+ "30429760" -> "45073920" [color = red];
+ "45074880" [label = "which-2.21", shape = box, fontname = Helvetica];
+ "45433984" [label = "guile-2.0.11", shape = box, fontname = Helvetica];
+ "45433984" -> "31250880" [color = red];
+ "45433984" -> "31249536" [color = red];
+ "45433984" -> "30432640" [color = red];
+ "45433984" -> "31252032" [color = red];
+ "45433984" -> "31718976" [color = red];
+ "45433984" -> "31719168" [color = red];
+ "45433984" -> "31250304" [color = red];
+ "45433984" -> "29009984" [color = red];
+ "31252032" [label = "bash-4.3.39", shape = box, fontname = Helvetica];
+ "31252032" -> "29008256" [color = red];
+ "31252032" -> "30432640" [color = red];
+ "31252032" -> "30432832" [color = red];
+ "31718976" [label = "libunistring-0.9.6", shape = box, fontname = Helvetica];
+ "31719168" [label = "libltdl-2.4.6", shape = box, fontname = Helvetica];
+ "31250304" [label = "libgc-7.4.2", shape = box, fontname = Helvetica];
+ "31250304" -> "31250880" [color = red];
+ "31250304" -> "31250496" [color = red];
+ "31250496" [label = "libatomic-ops-7.4.2", shape = box, fontname =
Helvetica];
+ "30430144" [label = "libtasn1-4.5", shape = box, fontname = Helvetica];
+ "30430144" -> "27446656" [color = red];
+ "30430144" -> "44617472" [color = red];
+ "30430720" [label = "libidn-1.32", shape = box, fontname = Helvetica];
+ "30430336" [label = "nettle-3.1.1", shape = box, fontname = Helvetica];
+ "30430336" -> "29010176" [color = red];
+ "30430336" -> "29009984" [color = red];
+ "47326144" [label = "libextractor-1.3", shape = box, fontname = Helvetica];
+ "47326144" -> "31250880" [color = red];
+ "47326144" -> "39570048" [color = red];
+ "47326144" -> "35229440" [color = red];
+ "47326144" -> "41898176" [color = red];
+ "47326144" -> "35735424" [color = red];
+ "47326144" -> "41713408" [color = red];
+ "47326144" -> "35480896" [color = red];
+ "47326144" -> "35480704" [color = red];
+ "47326144" -> "42950208" [color = red];
+ "47326144" -> "34808576" [color = red];
+ "47326144" -> "42949824" [color = red];
+ "47326144" -> "31719168" [color = red];
+ "47326144" -> "34808384" [color = red];
+ "47326144" -> "45073920" [color = red];
+ "39570048" [label = "exiv2-0.23", shape = box, fontname = Helvetica];
+ "39570048" -> "44741376" [color = red];
+ "39570048" -> "45073920" [color = red];
+ "35229440" [label = "flac-1.3.1", shape = box, fontname = Helvetica];
+ "35229440" -> "34808576" [color = red];
+ "34808576" [label = "libogg-1.3.2", shape = box, fontname = Helvetica];
+ "41898176" [label = "ffmpeg-2.8", shape = box, fontname = Helvetica];
+ "41898176" -> "44803776" [color = red];
+ "41898176" -> "27446656" [color = red];
+ "41898176" -> "31250880" [color = red];
+ "41898176" -> "44617472" [color = red];
+ "41898176" -> "43592896" [color = red];
+ "41898176" -> "34808000" [color = red];
+ "41898176" -> "35481280" [color = red];
+ "41898176" -> "44510976" [color = red];
+ "41898176" -> "44425216" [color = red];
+ "41898176" -> "30429760" [color = red];
+ "41898176" -> "35228864" [color = red];
+ "41898176" -> "41769024" [color = red];
+ "41898176" -> "35482048" [color = red];
+ "41898176" -> "41899136" [color = red];
+ "41898176" -> "42200064" [color = red];
+ "41898176" -> "41898944" [color = red];
+ "41898176" -> "35227520" [color = red];
+ "41898176" -> "44902656" [color = red];
+ "41898176" -> "34808192" [color = red];
+ "41898176" -> "34808384" [color = red];
+ "41898176" -> "42200448" [color = red];
+ "41898176" -> "41899328" [color = red];
+ "41898176" -> "41767296" [color = red];
+ "41898176" -> "34808960" [color = red];
+ "41898176" -> "41829504" [color = red];
+ "41898176" -> "34808000" [color = red];
+ "41898176" -> "41829312" [color = red];
+ "41898176" -> "42198528" [color = red];
+ "41898176" -> "45073920" [color = red];
+ "44803776" [label = "bc-1.06", shape = box, fontname = Helvetica];
+ "44803776" -> "30433024" [color = red];
+ "44803776" -> "30432640" [color = red];
+ "34808000" [label = "speex-1.2rc1", shape = box, fontname = Helvetica];
+ "34808000" -> "34808576" [color = red];
+ "35481280" [label = "yasm-1.2.0", shape = box, fontname = Helvetica];
+ "35481280" -> "43592128" [color = red];
+ "35481280" -> "44840832" [color = red];
+ "44840832" [label = "xmlto-0.0.25", shape = box, fontname = Helvetica];
+ "44840832" -> "43260352" [color = red];
+ "44840832" -> "44741184" [color = red];
+ "44840832" -> "44740608" [color = red];
+ "43260352" [label = "util-linux-2.27", shape = box, fontname = Helvetica];
+ "43260352" -> "27446656" [color = red];
+ "43260352" -> "42415040" [color = red];
+ "43260352" -> "45073920" [color = red];
+ "43260352" -> "30432832" [color = red];
+ "42415040" [label = "net-base-5.3", shape = box, fontname = Helvetica];
+ "42415040" -> "44954560" [color = red];
+ "42415040" -> "45072576" [color = red];
+ "44954560" [label = "tar-1.28", shape = box, fontname = Helvetica];
+ "35228864" [label = "opus-1.1", shape = box, fontname = Helvetica];
+ "41769024" [label = "ladspa-1.13", shape = box, fontname = Helvetica];
+ "35482048" [label = "lame-3.99.5", shape = box, fontname = Helvetica];
+ "41899136" [label = "libass-0.12.1", shape = box, fontname = Helvetica];
+ "41899136" -> "31250880" [color = red];
+ "41899136" -> "35481280" [color = red];
+ "41899136" -> "44425216" [color = red];
+ "41899136" -> "41901440" [color = red];
+ "41899136" -> "44510976" [color = red];
+ "41899136" -> "41407040" [color = red];
+ "41899136" -> "41900672" [color = red];
+ "41901440" [label = "fribidi-0.19.6", shape = box, fontname = Helvetica];
+ "41407040" [label = "harfbuzz-1.0.5", shape = box, fontname = Helvetica];
+ "41407040" -> "41713216" [color = red];
+ "41407040" -> "31250880" [color = red];
+ "41407040" -> "43592896" [color = red];
+ "41407040" -> "41407232" [color = red];
+ "41407040" -> "41713408" [color = red];
+ "41407040" -> "44510400" [color = red];
+ "41407040" -> "35736768" [color = red];
+ "41713216" [label = "gobject-introspection-1.46.0", shape = box, fontname =
Helvetica];
+ "41713216" -> "41713408" [color = red];
+ "41713216" -> "29008256" [color = red];
+ "41713216" -> "41407232" [color = red];
+ "41713216" -> "30433024" [color = red];
+ "41713216" -> "41713408" [color = red];
+ "41713216" -> "31250880" [color = red];
+ "41713216" -> "43592896" [color = red];
+ "41713216" -> "31249536" [color = red];
+ "41713408" [label = "glib-2.46.1", shape = box, fontname = Helvetica];
+ "41713408" -> "44956672" [color = red];
+ "41713408" -> "41631936" [color = red];
+ "41713408" -> "31250880" [color = red];
+ "41713408" -> "43592128" [color = red];
+ "41713408" -> "27446656" [color = red];
+ "41713408" -> "31252032" [color = red];
+ "41713408" -> "44953792" [color = red];
+ "41713408" -> "31249536" [color = red];
+ "41713408" -> "45073920" [color = red];
+ "41713408" -> "45074112" [color = red];
+ "44956672" [label = "gettext-0.19.6", shape = box, fontname = Helvetica];
+ "44956672" -> "44741376" [color = red];
+ "41631936" [label = "dbus-1.10.0", shape = box, fontname = Helvetica];
+ "41631936" -> "31250880" [color = red];
+ "41631936" -> "44741376" [color = red];
+ "41631936" -> "42839232" [color = red];
+ "44953792" [label = "coreutils-8.24", shape = box, fontname = Helvetica];
+ "44953792" -> "27446656" [color = red];
+ "44953792" -> "44956096" [color = red];
+ "44953792" -> "29009984" [color = red];
+ "44953792" -> "43740544" [color = red];
+ "44956096" [label = "acl-2.2.52", shape = box, fontname = Helvetica];
+ "44956096" -> "44956672" [color = red];
+ "44956096" -> "27446656" [color = red];
+ "44956096" -> "44956288" [color = red];
+ "44956288" [label = "attr-2.4.46", shape = box, fontname = Helvetica];
+ "44956288" -> "44956672" [color = red];
+ "44956288" -> "27446656" [color = red];
+ "43740544" [label = "libcap-2.24", shape = box, fontname = Helvetica];
+ "43740544" -> "27446656" [color = red];
+ "43740544" -> "44956288" [color = red];
+ "45074112" [label = "tzdata-2015c", shape = box, fontname = Helvetica];
+ "41407232" [label = "cairo-1.14.2", shape = box, fontname = Helvetica];
+ "41407232" -> "31250880" [color = red];
+ "41407232" -> "43592128" [color = red];
+ "41407232" -> "44508864" [color = red];
+ "41407232" -> "44508096" [color = red];
+ "41407232" -> "38854208" [color = red];
+ "41407232" -> "42569472" [color = red];
+ "41407232" -> "45073920" [color = red];
+ "41407232" -> "44510976" [color = red];
+ "41407232" -> "44425216" [color = red];
+ "41407232" -> "41713408" [color = red];
+ "41407232" -> "42950400" [color = red];
+ "41407232" -> "42839232" [color = red];
+ "41407232" -> "42764928" [color = red];
+ "41407232" -> "42764352" [color = red];
+ "41407232" -> "37497280" [color = red];
+ "44508096" [label = "libspectre-0.2.7", shape = box, fontname = Helvetica];
+ "44508096" -> "31250880" [color = red];
+ "44508096" -> "44508864" [color = red];
+ "38854208" [label = "poppler-0.37.0", shape = box, fontname = Helvetica];
+ "38854208" -> "31250880" [color = red];
+ "38854208" -> "41713408" [color = red];
+ "38854208" -> "44510976" [color = red];
+ "38854208" -> "44425216" [color = red];
+ "38854208" -> "42950208" [color = red];
+ "38854208" -> "42950400" [color = red];
+ "38854208" -> "42949824" [color = red];
+ "38854208" -> "44509440" [color = red];
+ "38854208" -> "42948672" [color = red];
+ "38854208" -> "45073920" [color = red];
+ "38854208" -> "60265408" [color = red];
+ "38854208" -> "41713408" [color = red];
+ "42948672" [label = "openjpeg-1.5.2", shape = box, fontname = Helvetica];
+ "42948672" -> "44509440" [color = red];
+ "42948672" -> "42950400" [color = red];
+ "42948672" -> "42949824" [color = red];
+ "42948672" -> "45073920" [color = red];
+ "60265408" [label = "cairo-1.14.2", shape = box, fontname = Helvetica];
+ "60265408" -> "31250880" [color = red];
+ "60265408" -> "43592128" [color = red];
+ "60265408" -> "44508864" [color = red];
+ "60265408" -> "44508096" [color = red];
+ "60265408" -> "42569472" [color = red];
+ "60265408" -> "45073920" [color = red];
+ "60265408" -> "44510976" [color = red];
+ "60265408" -> "44425216" [color = red];
+ "60265408" -> "41713408" [color = red];
+ "60265408" -> "42950400" [color = red];
+ "60265408" -> "42839232" [color = red];
+ "60265408" -> "42764928" [color = red];
+ "60265408" -> "42764352" [color = red];
+ "60265408" -> "37497280" [color = red];
+ "37497280" [label = "pixman-0.32.8", shape = box, fontname = Helvetica];
+ "37497280" -> "31250880" [color = red];
+ "37497280" -> "42950400" [color = red];
+ "37497280" -> "45073920" [color = red];
+ "44510400" [label = "graphite2-1.3.3", shape = box, fontname = Helvetica];
+ "44510400" -> "43592896" [color = red];
+ "44510400" -> "44311872" [color = red];
+ "44510400" -> "44425216" [color = red];
+ "44311872" [label = "python2-fonttools-2.5", shape = box, fontname =
Helvetica];
+ "44311872" -> "43643840" [color = red];
+ "43643840" [label = "python2-setuptools-18.3.1", shape = box, fontname =
Helvetica];
+ "35736768" [label = "icu4c-55.1", shape = box, fontname = Helvetica];
+ "35736768" -> "27446656" [color = red];
+ "41900672" [label = "enca-1.16", shape = box, fontname = Helvetica];
+ "41900672" -> "41900864" [color = red];
+ "41900864" [label = "recode-3.7.0.201402", shape = box, fontname =
Helvetica];
+ "41900864" -> "43592896" [color = red];
+ "42200064" [label = "libbluray-0.9.0", shape = box, fontname = Helvetica];
+ "42200064" -> "31250880" [color = red];
+ "42200064" -> "42835968" [color = red];
+ "42200064" -> "44510976" [color = red];
+ "42200064" -> "44425216" [color = red];
+ "42200064" -> "44741184" [color = red];
+ "42200064" -> "27446656" [color = red];
+ "42200064" -> "37739712" [color = red];
+ "42835968" [label = "doxygen-1.8.7", shape = box, fontname = Helvetica];
+ "42835968" -> "29008256" [color = red];
+ "42835968" -> "30433024" [color = red];
+ "42835968" -> "44741184" [color = red];
+ "42835968" -> "27446656" [color = red];
+ "42835968" -> "43592896" [color = red];
+ "42835968" -> "42836352" [color = red];
+ "42836352" [label = "graphviz-2.38.0", shape = box, fontname = Helvetica];
+ "42836352" -> "29008256" [color = red];
+ "42836352" -> "31250880" [color = red];
+ "42836352" -> "42764352" [color = red];
+ "42836352" -> "42839232" [color = red];
+ "42836352" -> "42836160" [color = red];
+ "42836352" -> "35734656" [color = red];
+ "42836352" -> "41406848" [color = red];
+ "42836352" -> "44510976" [color = red];
+ "42836352" -> "44425216" [color = red];
+ "42836352" -> "31719168" [color = red];
+ "42836352" -> "42838656" [color = red];
+ "42836352" -> "44741376" [color = red];
+ "42836352" -> "42950208" [color = red];
+ "42836352" -> "42950400" [color = red];
+ "42836160" [label = "gts-0.7.6", shape = box, fontname = Helvetica];
+ "42836160" -> "31250880" [color = red];
+ "42836160" -> "41713408" [color = red];
+ "35734656" [label = "gd-2.1.1", shape = box, fontname = Helvetica];
+ "35734656" -> "31250880" [color = red];
+ "35734656" -> "44425216" [color = red];
+ "35734656" -> "42950400" [color = red];
+ "35734656" -> "45073920" [color = red];
+ "35734656" -> "44510976" [color = red];
+ "35734656" -> "42950208" [color = red];
+ "41406848" [label = "pango-1.38.1", shape = box, fontname = Helvetica];
+ "41406848" -> "31250880" [color = red];
+ "41406848" -> "41713408" [color = red];
+ "41406848" -> "41713216" [color = red];
+ "41406848" -> "45073920" [color = red];
+ "41406848" -> "42433152" [color = red];
+ "41406848" -> "41407232" [color = red];
+ "41406848" -> "41407040" [color = red];
+ "42838656" [label = "libxaw-1.0.12", shape = box, fontname = Helvetica];
+ "42838656" -> "31250880" [color = red];
+ "42838656" -> "42763584" [color = red];
+ "42838656" -> "42764928" [color = red];
+ "42838656" -> "42432768" [color = red];
+ "42838656" -> "42432576" [color = red];
+ "42838656" -> "42838848" [color = red];
+ "42432768" [label = "libxmu-1.1.2", shape = box, fontname = Helvetica];
+ "42432768" -> "31250880" [color = red];
+ "42432768" -> "42838848" [color = red];
+ "42432768" -> "42763584" [color = red];
+ "42432768" -> "42764928" [color = red];
+ "42838848" [label = "libxt-1.1.4", shape = box, fontname = Helvetica];
+ "42838848" -> "31250880" [color = red];
+ "42838848" -> "42839232" [color = red];
+ "42838848" -> "42839232" [color = red];
+ "42838848" -> "42763392" [color = red];
+ "42838848" -> "42433920" [color = red];
+ "42763392" [label = "libice-1.0.9", shape = box, fontname = Helvetica];
+ "42763392" -> "31250880" [color = red];
+ "42763392" -> "42704896" [color = red];
+ "42763392" -> "42763584" [color = red];
+ "42433920" [label = "libsm-1.2.2", shape = box, fontname = Helvetica];
+ "42433920" -> "31250880" [color = red];
+ "42433920" -> "42704896" [color = red];
+ "42433920" -> "43260352" [color = red];
+ "42433920" -> "42763392" [color = red];
+ "42432576" [label = "libxpm-3.5.11", shape = box, fontname = Helvetica];
+ "42432576" -> "31250880" [color = red];
+ "42432576" -> "44956672" [color = red];
+ "42432576" -> "42838848" [color = red];
+ "42432576" -> "42763584" [color = red];
+ "42432576" -> "42764928" [color = red];
+ "37739712" [label = "texlive-2015", shape = box, fontname = Helvetica];
+ "37739712" -> "31252032" [color = red];
+ "37739712" -> "37740096" [color = red];
+ "37739712" -> "37739904" [color = red];
+ "37740096" [label = "texlive-bin-2015", shape = box, fontname = Helvetica];
+ "37740096" -> "31250880" [color = red];
+ "37740096" -> "41407232" [color = red];
+ "37740096" -> "44510976" [color = red];
+ "37740096" -> "44509632" [color = red];
+ "37740096" -> "44425216" [color = red];
+ "37740096" -> "35734656" [color = red];
+ "37740096" -> "29009984" [color = red];
+ "37740096" -> "44508864" [color = red];
+ "37740096" -> "44510400" [color = red];
+ "37740096" -> "41407040" [color = red];
+ "37740096" -> "35736768" [color = red];
+ "37740096" -> "44509248" [color = red];
+ "37740096" -> "42950400" [color = red];
+ "37740096" -> "42838656" [color = red];
+ "37740096" -> "42838848" [color = red];
+ "37740096" -> "29009792" [color = red];
+ "37740096" -> "27446656" [color = red];
+ "37740096" -> "37497280" [color = red];
+ "37740096" -> "38854208" [color = red];
+ "37740096" -> "44510208" [color = red];
+ "37740096" -> "43592896" [color = red];
+ "37740096" -> "37229312" [color = red];
+ "37740096" -> "37498240" [color = red];
+ "37740096" -> "44510592" [color = red];
+ "37740096" -> "45073920" [color = red];
+ "37740096" -> "31717056" [color = red];
+ "44509632" [label = "fontforge-20120731-b", shape = box, fontname =
Helvetica];
+ "44509632" -> "44956672" [color = red];
+ "44509632" -> "42949824" [color = red];
+ "44509632" -> "42950208" [color = red];
+ "44509632" -> "42950400" [color = red];
+ "44509632" -> "42948480" [color = red];
+ "44509632" -> "44741184" [color = red];
+ "44509632" -> "42839232" [color = red];
+ "44509632" -> "42762624" [color = red];
+ "44509632" -> "42763392" [color = red];
+ "44509632" -> "42433920" [color = red];
+ "44509632" -> "44425216" [color = red];
+ "44509632" -> "44510208" [color = red];
+ "44509632" -> "44510016" [color = red];
+ "44509632" -> "45073920" [color = red];
+ "44509632" -> "41407232" [color = red];
+ "44509632" -> "44510976" [color = red];
+ "44509632" -> "44509824" [color = red];
+ "44509632" -> "41406848" [color = red];
+ "44509632" -> "41713408" [color = red];
+ "42948480" [label = "giflib-5.1.1", shape = box, fontname = Helvetica];
+ "42948480" -> "42839232" [color = red];
+ "42948480" -> "42763392" [color = red];
+ "42948480" -> "42433920" [color = red];
+ "42948480" -> "27446656" [color = red];
+ "42762624" [label = "libxi-1.7.4", shape = box, fontname = Helvetica];
+ "42762624" -> "31250880" [color = red];
+ "42762624" -> "42763584" [color = red];
+ "42762624" -> "42361792" [color = red];
+ "42762624" -> "42839232" [color = red];
+ "42762624" -> "42764928" [color = red];
+ "42762624" -> "42763008" [color = red];
+ "42763008" [label = "libxfixes-5.0.1", shape = box, fontname = Helvetica];
+ "42763008" -> "31250880" [color = red];
+ "42763008" -> "42763584" [color = red];
+ "42763008" -> "42839232" [color = red];
+ "42763008" -> "42765312" [color = red];
+ "42765312" [label = "fixesproto-5.0", shape = box, fontname = Helvetica];
+ "42765312" -> "31250880" [color = red];
+ "42765312" -> "42569472" [color = red];
+ "44510208" [label = "potrace-1.11", shape = box, fontname = Helvetica];
+ "44510208" -> "44508864" [color = red];
+ "44510208" -> "45073920" [color = red];
+ "44510016" [label = "libspiro-20071029", shape = box, fontname = Helvetica];
+ "44509824" [label = "libuninameslist-0.4.20140731", shape = box, fontname =
Helvetica];
+ "44509824" -> "31249344" [color = red];
+ "44509824" -> "31248576" [color = red];
+ "44509824" -> "31248384" [color = red];
+ "31249344" [label = "autoconf-2.69", shape = box, fontname = Helvetica];
+ "31249344" -> "27446656" [color = red];
+ "31249344" -> "29010176" [color = red];
+ "31248576" [label = "automake-1.15", shape = box, fontname = Helvetica];
+ "31248576" -> "61665472" [color = red];
+ "31248576" -> "27446656" [color = red];
+ "61665472" [label = "autoconf-wrapper-2.69", shape = box, fontname =
Helvetica];
+ "61665472" -> "27446656" [color = red];
+ "61665472" -> "29010176" [color = red];
+ "61665472" -> "45433984" [color = red];
+ "61665472" -> "31249344" [color = red];
+ "61665472" -> "31252032" [color = red];
+ "31248384" [label = "libtool-2.4.6", shape = box, fontname = Helvetica];
+ "31248384" -> "29010176" [color = red];
+ "31248384" -> "27446656" [color = red];
+ "31248384" -> "31248576" [color = red];
+ "31248384" -> "61810944" [color = red];
+ "31248384" -> "29010176" [color = red];
+ "61810944" [label = "autoconf-wrapper-2.69", shape = box, fontname =
Helvetica];
+ "61810944" -> "27446656" [color = red];
+ "61810944" -> "29010176" [color = red];
+ "61810944" -> "45433984" [color = red];
+ "61810944" -> "31249344" [color = red];
+ "61810944" -> "31252032" [color = red];
+ "29009792" [label = "mpfr-3.1.3", shape = box, fontname = Helvetica];
+ "29009792" -> "29009984" [color = red];
+ "37229312" [label = "ruby-2.2.3", shape = box, fontname = Helvetica];
+ "37229312" -> "30432640" [color = red];
+ "37229312" -> "30429568" [color = red];
+ "37229312" -> "31249536" [color = red];
+ "37229312" -> "45286720" [color = red];
+ "37229312" -> "45073920" [color = red];
+ "37498240" [label = "tcsh-6.18.01", shape = box, fontname = Helvetica];
+ "37498240" -> "31249344" [color = red];
+ "37498240" -> "44953792" [color = red];
+ "37498240" -> "30432832" [color = red];
+ "44510592" [label = "teckit-2.5.4", shape = box, fontname = Helvetica];
+ "44510592" -> "31249344" [color = red];
+ "44510592" -> "31248576" [color = red];
+ "44510592" -> "31248384" [color = red];
+ "44510592" -> "27446656" [color = red];
+ "44510592" -> "45073920" [color = red];
+ "31717056" [label = "zziplib-0.13.62", shape = box, fontname = Helvetica];
+ "31717056" -> "27446656" [color = red];
+ "31717056" -> "31250880" [color = red];
+ "31717056" -> "43592896" [color = red];
+ "31717056" -> "31717440" [color = red];
+ "31717056" -> "45073920" [color = red];
+ "31717440" [label = "zip-3.0", shape = box, fontname = Helvetica];
+ "31717440" -> "45072960" [color = red];
+ "37739904" [label = "texlive-texmf-2015", shape = box, fontname = Helvetica];
+ "37739904" -> "37740096" [color = red];
+ "37739904" -> "35734080" [color = red];
+ "37739904" -> "27446656" [color = red];
+ "37739904" -> "43592896" [color = red];
+ "37739904" -> "37229312" [color = red];
+ "37739904" -> "37498240" [color = red];
+ "35734080" [label = "lua-5.2.3", shape = box, fontname = Helvetica];
+ "35734080" -> "30432640" [color = red];
+ "41898944" [label = "libcaca-0.99.beta19", shape = box, fontname =
Helvetica];
+ "41898944" -> "31250880" [color = red];
+ "41898944" -> "42197952" [color = red];
+ "41898944" -> "42197760" [color = red];
+ "41898944" -> "42839232" [color = red];
+ "41898944" -> "42197184" [color = red];
+ "41898944" -> "30432832" [color = red];
+ "41898944" -> "45073920" [color = red];
+ "42197952" [label = "freeglut-3.0.0", shape = box, fontname = Helvetica];
+ "42197952" -> "42197184" [color = red];
+ "42197952" -> "42839232" [color = red];
+ "42197952" -> "42762624" [color = red];
+ "42197952" -> "42762432" [color = red];
+ "42197952" -> "42839808" [color = red];
+ "42197952" -> "42361792" [color = red];
+ "42197952" -> "42708544" [color = red];
+ "42197952" -> "42198144" [color = red];
+ "42197952" -> "42197184" [color = red];
+ "42197184" [label = "mesa-11.0.3", shape = box, fontname = Helvetica];
+ "42197184" -> "31250880" [color = red];
+ "42197184" -> "43737472" [color = red];
+ "42197184" -> "42292928" [color = red];
+ "42197184" -> "42292736" [color = red];
+ "42197184" -> "42431232" [color = red];
+ "42197184" -> "44741376" [color = red];
+ "42197184" -> "62228160" [color = red];
+ "42197184" -> "44741184" [color = red];
+ "42197184" -> "42762240" [color = red];
+ "42197184" -> "42431616" [color = red];
+ "42197184" -> "42197568" [color = red];
+ "42197184" -> "42362176" [color = red];
+ "42197184" -> "37497088" [color = red];
+ "42197184" -> "42839232" [color = red];
+ "42197184" -> "42765120" [color = red];
+ "42197184" -> "42763008" [color = red];
+ "42197184" -> "42361216" [color = red];
+ "42197184" -> "42839808" [color = red];
+ "43737472" [label = "eudev-3.1.5", shape = box, fontname = Helvetica];
+ "43737472" -> "31250880" [color = red];
+ "43737472" -> "27446656" [color = red];
+ "43737472" -> "31249728" [color = red];
+ "43737472" -> "43737664" [color = red];
+ "31249728" [label = "gperf-3.0.4", shape = box, fontname = Helvetica];
+ "43737664" [label = "kmod-17", shape = box, fontname = Helvetica];
+ "43737664" -> "31250880" [color = red];
+ "43737664" -> "45072576" [color = red];
+ "43737664" -> "45073920" [color = red];
+ "42292928" [label = "dri2proto-2.8", shape = box, fontname = Helvetica];
+ "42292736" [label = "dri3proto-1.0", shape = box, fontname = Helvetica];
+ "42431232" [label = "presentproto-1.0", shape = box, fontname = Helvetica];
+ "62228160" [label = "libva-without-mesa-1.6.1", shape = box, fontname =
Helvetica];
+ "62228160" -> "31250880" [color = red];
+ "62228160" -> "37497088" [color = red];
+ "62228160" -> "42839232" [color = red];
+ "62228160" -> "42764928" [color = red];
+ "62228160" -> "42763008" [color = red];
+ "37497088" [label = "libdrm-2.4.65", shape = box, fontname = Helvetica];
+ "37497088" -> "31250880" [color = red];
+ "37497088" -> "42434304" [color = red];
+ "37497088" -> "42434112" [color = red];
+ "42434304" [label = "libpciaccess-0.13.4", shape = box, fontname =
Helvetica];
+ "42434304" -> "31250880" [color = red];
+ "42434304" -> "45073920" [color = red];
+ "42762240" [label = "libxvmc-1.0.8", shape = box, fontname = Helvetica];
+ "42762240" -> "31250880" [color = red];
+ "42762240" -> "42763584" [color = red];
+ "42762240" -> "42764928" [color = red];
+ "42762240" -> "42839232" [color = red];
+ "42762240" -> "42763968" [color = red];
+ "42763968" [label = "libxv-1.0.10", shape = box, fontname = Helvetica];
+ "42763968" -> "31250880" [color = red];
+ "42763968" -> "42763584" [color = red];
+ "42763968" -> "42764928" [color = red];
+ "42763968" -> "42839232" [color = red];
+ "42763968" -> "42498688" [color = red];
+ "42498688" [label = "videoproto-2.3.2", shape = box, fontname = Helvetica];
+ "42498688" -> "31250880" [color = red];
+ "42431616" [label = "makedepend-1.0.5", shape = box, fontname = Helvetica];
+ "42431616" -> "31250880" [color = red];
+ "42431616" -> "42763584" [color = red];
+ "42197568" [label = "s2tc-1.0", shape = box, fontname = Helvetica];
+ "42197568" -> "31249344" [color = red];
+ "42197568" -> "31248576" [color = red];
+ "42197568" -> "31248384" [color = red];
+ "42197568" -> "42196992" [color = red];
+ "42196992" [label = "mesa-headers-11.0.3", shape = box, fontname =
Helvetica];
+ "42362176" [label = "glproto-1.4.17", shape = box, fontname = Helvetica];
+ "42362176" -> "31250880" [color = red];
+ "42765120" [label = "libxdamage-1.1.4", shape = box, fontname = Helvetica];
+ "42765120" -> "31250880" [color = red];
+ "42765120" -> "42293312" [color = red];
+ "42765120" -> "42763008" [color = red];
+ "42765120" -> "42763584" [color = red];
+ "42765120" -> "42839232" [color = red];
+ "42293312" [label = "damageproto-1.2.1", shape = box, fontname = Helvetica];
+ "42293312" -> "31250880" [color = red];
+ "42361216" [label = "libxshmfence-1.1", shape = box, fontname = Helvetica];
+ "42361216" -> "31250880" [color = red];
+ "42361216" -> "42763584" [color = red];
+ "42839808" [label = "libxxf86vm-1.1.3", shape = box, fontname = Helvetica];
+ "42839808" -> "31250880" [color = red];
+ "42839808" -> "42839232" [color = red];
+ "42839808" -> "42764928" [color = red];
+ "42839808" -> "42631552" [color = red];
+ "42631552" [label = "xf86vidmodeproto-2.3.1", shape = box, fontname =
Helvetica];
+ "42762432" [label = "libxrandr-1.4.2", shape = box, fontname = Helvetica];
+ "42762432" -> "31250880" [color = red];
+ "42762432" -> "42839232" [color = red];
+ "42762432" -> "42764928" [color = red];
+ "42762432" -> "42764352" [color = red];
+ "42762432" -> "42430848" [color = red];
+ "42762432" -> "42763584" [color = red];
+ "42430848" [label = "randrproto-1.4.0", shape = box, fontname = Helvetica];
+ "42430848" -> "31250880" [color = red];
+ "42708544" [label = "xinput-1.6.1", shape = box, fontname = Helvetica];
+ "42708544" -> "31250880" [color = red];
+ "42708544" -> "42764352" [color = red];
+ "42708544" -> "42762432" [color = red];
+ "42708544" -> "42764736" [color = red];
+ "42708544" -> "42764928" [color = red];
+ "42708544" -> "42762624" [color = red];
+ "42708544" -> "42839232" [color = red];
+ "42708544" -> "42361792" [color = red];
+ "42764736" [label = "libxinerama-1.1.3", shape = box, fontname = Helvetica];
+ "42764736" -> "31250880" [color = red];
+ "42764736" -> "42764928" [color = red];
+ "42764736" -> "42839232" [color = red];
+ "42764736" -> "42708736" [color = red];
+ "42708736" [label = "xineramaproto-1.2.1", shape = box, fontname =
Helvetica];
+ "42708736" -> "31250880" [color = red];
+ "42198144" [label = "glu-9.0.0", shape = box, fontname = Helvetica];
+ "42198144" -> "42197184" [color = red];
+ "42197760" [label = "ftgl-2.1.3-rc5", shape = box, fontname = Helvetica];
+ "42197760" -> "42839232" [color = red];
+ "42197760" -> "42197184" [color = red];
+ "42197760" -> "42198144" [color = red];
+ "42197760" -> "44425216" [color = red];
+ "35227520" [label = "libcdio-paranoia-10.2+0.93+1", shape = box, fontname =
Helvetica];
+ "35227520" -> "31250880" [color = red];
+ "35227520" -> "35227712" [color = red];
+ "35227712" [label = "libcdio-0.93", shape = box, fontname = Helvetica];
+ "35227712" -> "34810880" [color = red];
+ "35227712" -> "31250880" [color = red];
+ "35227712" -> "30432832" [color = red];
+ "35227712" -> "35227904" [color = red];
+ "34810880" [label = "help2man-1.47.2", shape = box, fontname = Helvetica];
+ "34810880" -> "27446656" [color = red];
+ "35227904" [label = "libcddb-1.3.0", shape = box, fontname = Helvetica];
+ "44902656" [label = "libquvi-0.4.1", shape = box, fontname = Helvetica];
+ "44902656" -> "31250880" [color = red];
+ "44902656" -> "44507520" [color = red];
+ "44902656" -> "35736960" [color = red];
+ "44902656" -> "44902848" [color = red];
+ "44902656" -> "35733888" [color = red];
+ "44902656" -> "30429568" [color = red];
+ "44902656" -> "45073920" [color = red];
+ "44507520" [label = "curl-7.45.0", shape = box, fontname = Helvetica];
+ "44507520" -> "27446656" [color = red];
+ "44507520" -> "44507712" [color = red];
+ "44507520" -> "31250880" [color = red];
+ "44507520" -> "43592896" [color = red];
+ "44507520" -> "30429760" [color = red];
+ "44507520" -> "40173312" [color = red];
+ "44507520" -> "30430720" [color = red];
+ "44507520" -> "36887552" [color = red];
+ "44507520" -> "38282944" [color = red];
+ "44507520" -> "45073920" [color = red];
+ "40173312" [label = "gss-1.0.3", shape = box, fontname = Helvetica];
+ "40173312" -> "30430336" [color = red];
+ "40173312" -> "39567552" [color = red];
+ "40173312" -> "45073920" [color = red];
+ "39567552" [label = "shishi-1.0.2", shape = box, fontname = Helvetica];
+ "39567552" -> "31250880" [color = red];
+ "39567552" -> "30429760" [color = red];
+ "39567552" -> "30430720" [color = red];
+ "39567552" -> "43260736" [color = red];
+ "39567552" -> "45073920" [color = red];
+ "39567552" -> "44744256" [color = red];
+ "39567552" -> "30430144" [color = red];
+ "43260736" [label = "linux-pam-1.2.1", shape = box, fontname = Helvetica];
+ "43260736" -> "30433024" [color = red];
+ "44744256" [label = "libgcrypt-1.5.4", shape = box, fontname = Helvetica];
+ "44744256" -> "44507136" [color = red];
+ "44744256" -> "44507136" [color = red];
+ "36887552" [label = "libssh2-1.4.3", shape = box, fontname = Helvetica];
+ "36887552" -> "44744448" [color = red];
+ "36887552" -> "45073920" [color = red];
+ "38282944" [label = "openldap-2.4.42", shape = box, fontname = Helvetica];
+ "38282944" -> "31248384" [color = red];
+ "38282944" -> "45286528" [color = red];
+ "38282944" -> "30429568" [color = red];
+ "38282944" -> "35736960" [color = red];
+ "38282944" -> "44507712" [color = red];
+ "38282944" -> "35736768" [color = red];
+ "38282944" -> "44744448" [color = red];
+ "38282944" -> "45073920" [color = red];
+ "45286528" [label = "bdb-5.3.21", shape = box, fontname = Helvetica];
+ "35736960" [label = "cyrus-sasl-2.1.26", shape = box, fontname = Helvetica];
+ "35736960" -> "45286720" [color = red];
+ "35736960" -> "35479744" [color = red];
+ "35736960" -> "30429568" [color = red];
+ "35479744" [label = "mit-krb5-1.11.3", shape = box, fontname = Helvetica];
+ "35479744" -> "29008256" [color = red];
+ "35479744" -> "27446656" [color = red];
+ "44902848" [label = "libquvi-scripts-0.4.21", shape = box, fontname =
Helvetica];
+ "35733888" [label = "lua-5.1.5", shape = box, fontname = Helvetica];
+ "35733888" -> "30432640" [color = red];
+ "34808192" [label = "libtheora-1.1.1", shape = box, fontname = Helvetica];
+ "34808192" -> "34808384" [color = red];
+ "34808192" -> "34808576" [color = red];
+ "34808384" [label = "libvorbis-1.3.5", shape = box, fontname = Helvetica];
+ "34808384" -> "34808576" [color = red];
+ "42200448" [label = "libvpx-1.4.0", shape = box, fontname = Helvetica];
+ "42200448" -> "27446656" [color = red];
+ "42200448" -> "35481280" [color = red];
+ "41899328" [label = "libx264-20150706-2245", shape = box, fontname =
Helvetica];
+ "41899328" -> "31250880" [color = red];
+ "41899328" -> "35481280" [color = red];
+ "41767296" [label = "openal-1.15.1", shape = box, fontname = Helvetica];
+ "41767296" -> "43258240" [color = red];
+ "41767296" -> "34808960" [color = red];
+ "43258240" [label = "alsa-lib-1.0.27.1", shape = box, fontname = Helvetica];
+ "34808960" [label = "pulseaudio-6.0", shape = box, fontname = Helvetica];
+ "34808960" -> "43258240" [color = red];
+ "34808960" -> "44839104" [color = red];
+ "34808960" -> "34808000" [color = red];
+ "34808960" -> "34809344" [color = red];
+ "34808960" -> "34809152" [color = red];
+ "34808960" -> "41631936" [color = red];
+ "34808960" -> "41713408" [color = red];
+ "34808960" -> "41713024" [color = red];
+ "34808960" -> "31250880" [color = red];
+ "34808960" -> "29010176" [color = red];
+ "34808960" -> "31719168" [color = red];
+ "34808960" -> "44803392" [color = red];
+ "34808960" -> "41711296" [color = red];
+ "34808960" -> "43737472" [color = red];
+ "34808960" -> "31718208" [color = red];
+ "34808960" -> "43740544" [color = red];
+ "34808960" -> "45286720" [color = red];
+ "44839104" [label = "json-c-0.12", shape = box, fontname = Helvetica];
+ "34809344" [label = "libsndfile-1.0.25", shape = box, fontname = Helvetica];
+ "34809344" -> "34808384" [color = red];
+ "34809344" -> "34808576" [color = red];
+ "34809344" -> "35229440" [color = red];
+ "34809344" -> "31250880" [color = red];
+ "34809152" [label = "libsamplerate-0.1.8", shape = box, fontname =
Helvetica];
+ "34809152" -> "31250880" [color = red];
+ "34809152" -> "34809344" [color = red];
+ "34809152" -> "44803584" [color = red];
+ "44803584" [label = "fftw-3.3.4", shape = box, fontname = Helvetica];
+ "44803584" -> "27446656" [color = red];
+ "41713024" [label = "intltool-0.51.0", shape = box, fontname = Helvetica];
+ "41713024" -> "35735424" [color = red];
+ "41713024" -> "44956672" [color = red];
+ "41713024" -> "44842752" [color = red];
+ "41713024" -> "27446656" [color = red];
+ "35735424" [label = "file-5.22", shape = box, fontname = Helvetica];
+ "44842752" [label = "perl-xml-parser-2.44", shape = box, fontname =
Helvetica];
+ "44842752" -> "44741376" [color = red];
+ "44803392" [label = "fftwf-3.3.4", shape = box, fontname = Helvetica];
+ "44803392" -> "27446656" [color = red];
+ "41711296" [label = "avahi-0.6.31", shape = box, fontname = Helvetica];
+ "41711296" -> "41713024" [color = red];
+ "41711296" -> "41713408" [color = red];
+ "41711296" -> "31250880" [color = red];
+ "41711296" -> "44741376" [color = red];
+ "41711296" -> "41713408" [color = red];
+ "41711296" -> "41631936" [color = red];
+ "41711296" -> "45286720" [color = red];
+ "41711296" -> "31718400" [color = red];
+ "31718400" [label = "libdaemon-0.14", shape = box, fontname = Helvetica];
+ "31718208" [label = "check-0.9.14", shape = box, fontname = Helvetica];
+ "41829504" [label = "soxr-0.1.1", shape = box, fontname = Helvetica];
+ "41829312" [label = "twolame-0.3.13", shape = box, fontname = Helvetica];
+ "41829312" -> "27446656" [color = red];
+ "41829312" -> "45074880" [color = red];
+ "41829312" -> "34809344" [color = red];
+ "42198528" [label = "xvid-1.3.3", shape = box, fontname = Helvetica];
+ "42198528" -> "35481280" [color = red];
+ "35480896" [label = "gstreamer-1.6.1", shape = box, fontname = Helvetica];
+ "35480896" -> "29008256" [color = red];
+ "35480896" -> "30433024" [color = red];
+ "35480896" -> "41713408" [color = red];
+ "35480896" -> "41713216" [color = red];
+ "35480896" -> "27446656" [color = red];
+ "35480896" -> "31250880" [color = red];
+ "35480896" -> "43592128" [color = red];
+ "35480896" -> "41713408" [color = red];
+ "35480704" [label = "gst-plugins-base-1.6.1", shape = box, fontname =
Helvetica];
+ "35480704" -> "31250880" [color = red];
+ "35480704" -> "41713408" [color = red];
+ "35480704" -> "41713216" [color = red];
+ "35480704" -> "43592128" [color = red];
+ "35480704" -> "35227136" [color = red];
+ "35480704" -> "35481088" [color = red];
+ "35480704" -> "41406848" [color = red];
+ "35480704" -> "34808576" [color = red];
+ "35480704" -> "34808192" [color = red];
+ "35480704" -> "34808384" [color = red];
+ "35480704" -> "42839232" [color = red];
+ "35480704" -> "45073920" [color = red];
+ "35480704" -> "42764928" [color = red];
+ "35480704" -> "42763968" [color = red];
+ "35480704" -> "43258240" [color = red];
+ "35480704" -> "35480896" [color = red];
+ "35227136" [label = "cdparanoia-10.2", shape = box, fontname = Helvetica];
+ "35481088" [label = "orc-0.4.24", shape = box, fontname = Helvetica];
+ "47325952" [label = "libmicrohttpd-0.9.45", shape = box, fontname =
Helvetica];
+ "47325952" -> "44507520" [color = red];
+ "47325952" -> "30429760" [color = red];
+ "47325952" -> "44744448" [color = red];
+ "47325952" -> "30429568" [color = red];
+ "47325952" -> "45073920" [color = red];
+
+}
diff --git a/talks/rennes-2015/images/hope-hero.jpg
b/talks/rennes-2015/images/hope-hero.jpg
new file mode 100644
index 0000000..09f0009
Binary files /dev/null and b/talks/rennes-2015/images/hope-hero.jpg differ
diff --git a/talks/rennes-2015/images/package-managers-cropped.png
b/talks/rennes-2015/images/package-managers-cropped.png
new file mode 100644
index 0000000..5793914
Binary files /dev/null and
b/talks/rennes-2015/images/package-managers-cropped.png differ
diff --git a/talks/rennes-2015/images/package-managers.png
b/talks/rennes-2015/images/package-managers.png
new file mode 100644
index 0000000..3f50eca
Binary files /dev/null and b/talks/rennes-2015/images/package-managers.png
differ
diff --git a/talks/rennes-2015/my-software.scm
b/talks/rennes-2015/my-software.scm
new file mode 100644
index 0000000..c5e1ac0
--- /dev/null
+++ b/talks/rennes-2015/my-software.scm
@@ -0,0 +1,6 @@
+(use-package-modules base gcc)
+
+(packages->manifest
+ (list gcc-5 glibc binutils
+ coreutils findutils sed grep
+ gnu-make))
diff --git a/talks/rennes-2015/outline.org b/talks/rennes-2015/outline.org
new file mode 100644
index 0000000..32db7c0
--- /dev/null
+++ b/talks/rennes-2015/outline.org
@@ -0,0 +1,135 @@
+#+TITLE: Reproducible Software Deployment with GNU Guix
+
+
+* Summary
+
+ “It used to work perfectly, then I upgraded something, and somehow…â€
+ Sounds like a déjà vu? Sometimes feel like software deployment is
+ unpredictable? You think reproducible research demands reproducible
+ software deployment? Ever wondered if you can trust your compiler or
+ the integrity of those binary packages you have downloaded?
+
+ This talk introduces GNU Guix, a package manager that implements the
+ /functional package management/ paradigm pioneered by Nix to address
+ these issues. Guix supports transactional upgrades and rollbacks, as
+ well as support for multiple software profiles. In this talk, I will
+ introduce functional package management and demonstrate Guix on
+ practical use cases. I will discuss the implications on
+ (bit-)reproducible packages and environments, and how this can lead to
+ /verifiable/ binaries. Lastly, we will see how this extends to
+ whole-system deployments with GuixSD, the Guix System Distribution.
+
+
+* COMMENT Random notes
+
+** Phases
+
+ - sentiments : surprise, déception, promesse, doute, angoisse (pick 3)
+ - registres : conceptuel, factuel, émotionnel
+
+** Breton (cf. [[http://www.lexilogos.com/breton_mots.htm][expressions]] &
[[https://fr.wikipedia.org/wiki/Breton][WP]])
+
+ - salut -> kenavo
+ - attention ! -> diwall !
+ - merci -> Mersi bras | Trugarez
+
+** Debian example with hooks
+
+#+BEGIN_VERBATIM
+$ sudo apt-get install gpm
+Reading package lists... Done
+Building dependency tree
+Reading state information... Done
+The following package was automatically installed and is no longer required:
+ liblwgeom-2.1.7
+Use 'apt-get autoremove' to remove it.
+The following NEW packages will be installed:
+ gpm
+0 upgraded, 1 newly installed, 0 to remove and 31 not upgraded.
+Need to get 229 kB of archives.
+After this operation, 496 kB of additional disk space will be used.
+Get:1 http://ftp.fr.debian.org/debian/ wheezy/main gpm i386 1.20.4-6 [229 kB]
+Fetched 229 kB in 0s (567 kB/s)
+Preconfiguring packages ...
+Selecting previously unselected package gpm.
+(Reading database ... 190889 files and directories currently installed.)
+Unpacking gpm (from .../archives/gpm_1.20.4-6_i386.deb) ...
+Processing triggers for man-db ...
+Processing triggers for install-info ...
+Setting up gpm (1.20.4-6) ...
+
+Creating config file /etc/gpm.conf with new version
+
+#+END_VERBATIM
+
+** Docker: add screenshot of
http://www.banyanops.com/blog/analyzing-docker-hub/
+
+** Docker: see
http://www.vitavonni.de/blog/201503/2015031201-the-sad-state-of-sysadmin-in-the-age-of-containers.html
+
+** [[http://blog.circleci.com/its-the-future/][It's the future!]]
+
+** deployment is hard
+
+*** side effects
+
+*** things not really under control
+
+*** sequence of effectful operations
+
+** deployment is harder in practice
+
+*** apt-get, pypi,
[[http://dustycloud.org/blog/javascript-packaging-dystopia/][npm, bower]],
cabal, gem, etc.
+
+*** environments: debootstrap,
[[http://blogs.rdoproject.org/7843/guix-tox-a-functional-version-of-tox][virtualenv/tox]],
[[http://dthompson.us/ruby-on-guix.html][RVM/Bundler]], etc.
+
+*** services?
+
+
+
+* The upgrade problem [doubt]
+
+ - apt-get dist-upgrade, breakage, etc.
+ + power outage => breakage!
+ + no unattended system upgrades
+ + no way back
+ + screenshots of debian.org
+
+* The "reproducibility" problem [angst]
+
+ - reproduce development environments
+ - reproduce bit-for-bit
+ + Debian reproducibility problem
+
+* The reproducibility problem, worst [angst]
+
+ - pypi etc.
+ - docker -> pizza, not recipe
+ - docker security issues, sysadmin problem
+
+* Guix solution [hope | facts]
+
+ - demo 'guix package' etc. (cf.
[[file:~/src/guix-maintenance/talks/reppar-2015/talk.tex::\$%20guix%20package%20-i%20gcc-toolchain%20coreutils%20sed%20grep][RepPar]])
+ - ci.inria.fr/alta screenshot
+
+* under the hood: FPM [hope | concepts]
+
+ - function, composition, etc.
+ - references
+ - the daemon, containers, etc.
+ - bootstrapping
+ - bit-reproducible builds
+
+* Corresponding Source [doubt | concepts]
+
+ - 'guix challenge'
+ - diverse double compilation
+
+* whole-system deployments
+
+ - GuixSD config
+
+* lively!
+
+ - contributor stats
+ - package stats
+ - release timeline
diff --git a/talks/rennes-2015/rules.ini b/talks/rennes-2015/rules.ini
new file mode 120000
index 0000000..07e2bdc
--- /dev/null
+++ b/talks/rennes-2015/rules.ini
@@ -0,0 +1 @@
+../reppar-2015/rules.ini
\ No newline at end of file
diff --git a/talks/rennes-2015/talk.tex b/talks/rennes-2015/talk.tex
new file mode 100644
index 0000000..c256546
--- /dev/null
+++ b/talks/rennes-2015/talk.tex
@@ -0,0 +1,769 @@
+% The comment below tells Rubber to compile the .dot files.
+%
+% rubber: module graphics
+% rubber: rules rules.ini
+
+\documentclass{beamer}
+
+\usetheme{default}
+
+\usepackage{helvet}
+\usecolortheme{seagull} % white on black
+
+\usepackage[utf8]{inputenc}
+\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref,xspace,multicol}
+\usepackage[absolute,overlay]{textpos}
+\usepackage{tikz}
+\usetikzlibrary{arrows,shapes,trees,shadows,positioning}
+\usepackage{fancyvrb} % for \Verb
+
+% Remember the position of every picture.
+\tikzstyle{every picture}+=[remember picture]
+
+\tikzset{onslide/.code args={<#1>#2}{%
+ \only<#1>{\pgfkeysalso{#2}} % \pgfkeysalso doesn't change the path
+}}
+
+% Colors.
+\definecolor{guixred1}{RGB}{226,0,38} % red P
+\definecolor{guixorange1}{RGB}{243,154,38} % guixorange P
+\definecolor{guixyellow}{RGB}{254,205,27} % guixyellow P
+\definecolor{guixred2}{RGB}{230,68,57} % red S
+\definecolor{guixorange2}{RGB}{236,117,40} % guixorange S
+\definecolor{guixtaupe}{RGB}{134,113,127} % guixtaupe S
+\definecolor{guixgrey}{RGB}{91,94,111} % guixgrey S
+\definecolor{guixblue1}{RGB}{38,109,131} % guixblue S
+\definecolor{guixblue2}{RGB}{10,50,80} % guixblue S
+\definecolor{guixgreen1}{RGB}{133,146,66} % guixgreen S
+\definecolor{guixgreen2}{RGB}{157,193,7} % guixgreen S
+
+\setbeamerfont{title}{size=\huge}
+\setbeamerfont{frametitle}{size=\huge}
+
+% White-on-black color theme.
+\setbeamercolor{structure}{fg=guixorange1,bg=black}
+\setbeamercolor{title}{fg=white,bg=black}
+\setbeamercolor{date}{fg=guixorange1,bg=black}
+\setbeamercolor{frametitle}{fg=white,bg=black}
+\setbeamercolor{titlelike}{fg=white,bg=black}
+\setbeamercolor{normal text}{fg=white,bg=black}
+\setbeamercolor{alerted text}{fg=guixyellow,bg=black}
+\setbeamercolor{section in toc}{fg=white,bg=black}
+\setbeamercolor{section in toc shaded}{fg=white,bg=black}
+\setbeamercolor{subsection in toc}{fg=guixorange1,bg=black}
+\setbeamercolor{subsection in toc shaded}{fg=white,bg=black}
+\setbeamercolor{subsubsection in toc}{fg=guixorange1,bg=black}
+\setbeamercolor{subsubsection in toc shaded}{fg=white,bg=black}
+\setbeamercolor{frametitle in toc}{fg=white,bg=black}
+\setbeamercolor{local structure}{fg=guixorange1,bg=black}
+
+\newcommand{\highlight}[1]{\alert{\textbf{#1}}}
+
+\title{Reproducible Software Deployment with GNU~Guix}
+
+\author{Ludovic Courtès}
+\date{\small{Inria Rennes Bretagne Atlantique, November 2015}}
+
+\setbeamertemplate{navigation symbols}{} % remove the navigation bar
+
+\AtBeginSection[]{
+ \begin{frame}
+ \frametitle{}
+ \tableofcontents[currentsection]
+ \end{frame}
+}
+
+
+\newcommand{\screenshot}[1]{
+ \begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[width=\paperwidth]{#1}};
+ \end{tikzpicture}
+ \end{frame}
+}
+
+
+\begin{document}
+
+\maketitle
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}
+ \Huge{\textbf{The difficulty of keeping software environments under
+ control.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}[plain]
+ \Huge{\#1. Upgrades are hard.}
+\end{frame}
+
+\screenshot{images/debian-upgrade-warning}
+\screenshot{images/debian-upgrade-instructions}
+
+\begin{frame}[plain]
+ \Huge{\#2. Stateful system management is intractable.}
+\end{frame}
+
+\begin{frame}[plain, fragile]
+ \begin{overlayarea}{\textwidth}{8cm}
+ \begin{tikzpicture}[stylish/.style = {
+ draw=guixorange1, very thick,
+ fill=white, text=black, text width=3.2cm,
+ rounded corners=2mm, minimum height=1.4cm,
+ text centered
+ }]
+ \matrix[row sep=6mm, column sep=1.5cm] {
+ \node(inita)[stylish]{\textbf{\Large{\$DISTRO}}};
+ & \node(initb)[stylish]{\textbf{\Large{\$DISTRO}}};
+ \\
+
+ \node<2->(state1a)[stylish]{state $1_a$};
+ & \node<2->(state1b)[stylish]{state $1_b$};
+ \\
+
+ \node<3->(state2a)[stylish]{state $2_a$};
+ & \node<3->(state2b)[stylish]{state $2_b$};
+ \\
+
+ \node<4->(state3a)[stylish]{state $3_a$};
+ & \node<4->(state3b)[stylish]{state $3_b$};
+ \\
+ };
+
+ \path[->, very thick, draw=white]<2->
+ (inita) edge node[right]{\texttt{apt-get update}} (state1a);
+ \path[->, very thick, draw=white]<3->
+ (state1a) edge node[right]{\texttt{apt-get install foo}} (state2a);
+ \path[->, very thick, draw=white]<4->
+ (state2a) edge node[right]{\texttt{apt-get remove bar}} (state3a);
+
+ \path[->, very thick, draw=white]<2->
+ (initb) edge node[right]{\texttt{apt-get update}} (state1b);
+ \path[->, very thick, draw=white]<3->
+ (state1b) edge node[right]{\texttt{apt-get remove bar}} (state2b);
+ \path[->, very thick, draw=white]<4->
+ (state2b) edge node[right]{\texttt{apt-get install foo}} (state3b);
+
+ \end{tikzpicture}
+ \end{overlayarea}
+
+ \begin{tikzpicture}[overlay]
+ \node<5>[rounded corners=4, text centered,
+ fill=guixorange1, text width=3cm,
+ inner sep=5mm, opacity=.75, text opacity=1,
+ drop shadow={opacity=0.5}] at (5, 4) {
+ \textbf{\Huge{= ?}}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[plain]
+ \Huge{\#3. It's worse than this.}
+\end{frame}
+
+\screenshot{images/package-managers-cropped}
+
+\begin{frame}[plain]
+ \Huge{It's worse, really.}
+\end{frame}
+
+\begin{frame}
+ \Large{``Let's Package jQuery: A Javascript Packaging Dystopian
+ Novella'' by Chris Webber}
+ \\[2.cm]
+
+ \url{http://dustycloud.org/blog/javascript-packaging-dystopia/}
+\end{frame}
+
+\begin{frame}[plain]
+ \LARGE{\textbf{Giving up?}}
+ \\[1.0cm]
+ \uncover<2->{$\rightarrow$ ``app bundles'' (Docker images)}
+\end{frame}
+
+\screenshot{images/docker-security}
+
+% TODO:
http://www.vitavonni.de/blog/201503/2015031201-the-sad-state-of-sysadmin-in-the-age-of-containers.html
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[height=\paperheight]{images/hope-hero}};
+ \end{tikzpicture}
+\end{frame}
+
+%% \section{Functional Package Management}
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}[plain]
+ \Huge{\textbf{Functional package management.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}[plain]
+ \Large{
+ $\texttt{openmpi} = f(\texttt{hwloc}, \texttt{gcc},
\texttt{make},\texttt{coreutils})$
+
+ \uncover<2->{$\texttt{hwloc} = g(\texttt{pciaccess}, \texttt{gcc},
\texttt{make}, \texttt{coreutils})$}
+
+ \uncover<3->{$\texttt{gcc} = h(\texttt{make}, \texttt{coreutils},
\texttt{gcc}_0)$}
+
+ \uncover<3->{\textrm{...}}
+ }
+
+ \uncover<1>{\large{where $f =$ \texttt{./configure \&\& make \&\& make
install}}}
+
+ \begin{tikzpicture}[overlay]
+ \node<4->[fill=guixorange1, text=black, text opacity=1, opacity=.7,
+ rounded corners=2mm, inner sep=5mm] at (5, 1) {
+ \textbf{\Large{the complete DAG is captured}}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}
+ \Large{
+ \begin{itemize}
+ %% \item<3-> \textit{Caching Function Calls Using Precise Dependencies}
+ %% (``Vesta''), Heydon et al., 2000
+ \item \textit{A Safe and Policy-Free System for Software
+ Deployment}, Dolstra et al., 2003\\ \alert{\textbf{Nix}},
+ \url{http://nixos.org/nix/}
+ \item \textit{Functional Package Management with Guix}, Courtès,
+ 2013
+ \end{itemize}
+ }
+\end{frame}
+
+\begin{frame}[fragile]
+ \begin{semiverbatim}
+(define hello
+ (\alert{package}
+ (name "hello")
+ (version "2.10")
+ (source (\alert{origin}
+ (method url-fetch)
+ (uri (string-append
+ "mirror://gnu/\textrm{...}/hello-" version
+ ".tar.gz"))
+ (sha256 (base32 "0wqd\textrm{...}dz6"))))
+ (\alert{build-system} gnu-build-system)
+ (synopsis "Hello, world!")
+ (description "Produce a friendly greeting.")
+ (home-page "http://www.gnu.org/software/hello/")
+ (license gpl3+)))
+ \end{semiverbatim}
+
+ % \begin{tikzpicture}[overlay]
+ % \node[rounded corners=4, text centered,
+ % fill=guixorange1, text width=3cm,
+ % inner sep=3mm, rotate=-5, opacity=.75, text opacity=1,
+ % drop shadow={opacity=0.5},
+ % at=(current page.center)] {
+ % \textbf{\large{Emacs + Geiser demo!}}
+ % };
+ % \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[fragile]{}
+ \begin{tikzpicture}[tools/.style = {
+ text width=35mm, minimum height=4cm,
+ text centered,
+ rounded corners=2mm,
+ fill=white, text=black
+ },
+ tool/.style = {
+ fill=white, text=black, text width=3cm,
+ text centered
+ },
+ daemon/.style = {
+ rectangle, text width=50mm, text centered,
+ rounded corners=2mm, minimum height=15mm,
+ top color=guixorange1,
+ bottom color=guixyellow,
+ text=black
+ },
+ builders/.style = {
+ draw=guixorange1, very thick, dashed,
+ fill=black, text=white, text width=5cm,
+ rounded corners=2mm,
+ },
+ builder/.style = {
+ draw=guixred2, thick, rectangle,
+ fill=black, text=white,
+ rotate=90
+ }]
+ \matrix[row sep=3mm, column sep=1cm] {
+ \node(builders)[builders, text height=5cm]{}
+ node[fill=black, text=white] at (0, 2) {\large{\textbf{build
processes}}}
+ node[fill=black, text=white] at (0, 1.5) {chroot, separate UIDs}
+ node[builder, onslide=<1-2>{black}] at (-1,-0.5) {\alert<3->{Guile},
make, etc.}
+ node[builder, onslide=<1-2>{black}] at ( 0,-0.5) {\alert<3->{Guile},
make, etc.}
+ node[builder, onslide=<1-2>{black}] at ( 1,-0.5) {\alert<3->{Guile},
make, etc.}; &
+ \node[tools]{}
+ node[fill=white, text=black] at (0, 1) {\large{\textbf{Guile
Scheme}}}
+ node[tool] at (0, 0) {\texttt{(guix packages)}}
+ node(client)[tool] at (0, -1) {\texttt{(guix store)}};
+ \\
+
+ \node(daemon)[daemon]{\large{\textbf{build daemon}}}; &
+ &
+ \\
+ };
+ \end{tikzpicture}
+
+ \begin{tikzpicture}[overlay]
+ \path[very thick, draw=guixorange1]<2->
+ (client.south) edge [out=-90, in=0, ->] node[below, sloped]{RPCs}
(daemon.east);
+ \path[->, very thick, draw=guixorange1]<3->
+ (daemon) edge (builders);
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[fragile]
+ %% \frametitle{Bit-Reproducible Builds$^*$}
+ %% \framesubtitle{$^*$ almost!}
+
+ \begin{semiverbatim}
+\$ guix build hello
+\uncover<2->{/gnu/store/\tikz[baseline]{\node[anchor=base](nixhash){\alert<2>{h2g4sf72\textrm{...}}};}-hello-2.10}
+
+\uncover<3->{\$ \alert<3>{guix gc --references
/gnu/store/\textrm{...}-hello-2.10}
+/gnu/store/\textrm{...}-glibc-2.22
+/gnu/store/\textrm{...}-gcc-4.9.3-lib
+/gnu/store/\textrm{...}-hello-2.10
+}
+ \end{semiverbatim}
+
+ \begin{tikzpicture}[overlay]
+ \node<1>(labelnixhash) [fill=white, text=black] at (current page.center) {%
+ \Large{\textbf{isolated build}: chroot, separate name spaces, etc.}
+ };
+
+ \node<2>(labelnixhash) [fill=white, text=black] at (4cm, 2cm) {%
+ hash of \textbf{all} the dependencies};
+ \path[->]<2>(labelnixhash.north) edge [bend left, in=180, out=-45]
(nixhash.south);
+
+ \draw<4-> (-10pt, 105pt) [very thick, color=guixorange2, rounded
corners=8pt]
+ arc (10:-50:-50pt and 110pt);
+ \node<4->[fill=white, text=black, text opacity=1, opacity=.7,
+ rounded corners=2mm, inner sep=5mm]
+ at (7, 2) {\textbf{\Large{(nearly) bit-identical for everyone}}};
+ %% \node<5>[fill=white, text=black, text opacity=1, opacity=.7,
+ %% rounded corners=1mm, inner sep=3mm]
+ %% at (8, 1) {\url{http://reproducible.debian.net}};
+ \end{tikzpicture}
+
+\end{frame}
+
+\begin{frame}[fragile]
+
+ \begin{semiverbatim}
+\$ guix package -i gcc-toolchain coreutils sed grep
+\textrm{...}
+
+\$ eval `guix package --search-paths`
+\textrm{...}
+
+\$ guix package --manifest=my-software.scm
+\textrm{...}
+ \end{semiverbatim}
+
+ \begin{tikzpicture}[overlay]
+ \node[rounded corners=4, text centered,
+ fill=guixorange1, text width=3cm,
+ inner sep=3mm, rotate=5, opacity=.75, text opacity=1,
+ drop shadow={opacity=0.5}] at (5, 4) {
+ \textbf{\large{demo}}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[fragile]
+ \Huge{Want your PhD student to hack on GNUnet?}
+ \\[2cm]
+ \uncover<2->{\Large{A simple matter of installing the deps, right?}}
+\end{frame}
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[width=\paperwidth]{images/gnunet-graph}};
+ \end{tikzpicture}
+\end{frame}
+
+
+\begin{frame}[fragile]
+ \begin{semiverbatim}
+\$ guix environment --container gnunet
+\textrm{...}
+
+\$ guix environment --ad-hoc python-ipython python-numpy \\
+ -E ipython
+\textrm{...}
+
+ \end{semiverbatim}
+\end{frame}
+
+\screenshot{images/ci-jenkins-cropped}
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}[plain]
+ \Huge{\textbf{Whole-system deployment.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}[fragile]
+ \begin{overlayarea}{\textwidth}{8cm}
+ \begin{tikzpicture}[kernel/.style = {
+ text width=10cm, minimum height=1.4cm,
+ text centered,
+ rounded corners=2mm,
+ fill=white, text=black
+ },
+ userland/.style = {
+ draw=guixorange1, very thick,
+ fill=white, text=black, text width=5cm,
+ rounded corners=2mm, minimum height=1.4cm,
+ text centered
+ }]
+ \matrix[row sep=6mm, column sep=1cm] {
+ \node(kernel)[kernel]{\textbf{\Large{Linux-libre}}};
+ \\
+
+ \node<2->(initrd)[userland]{\textbf{\Large{initial RAM disk}}};
+ \\
+
+ \node<4->(dmd)[userland]{\textbf{\Large{PID 1: GNU dmd}}
+ \\ services...};
+ \\
+
+ \node<6->(user)[userland, dashed]{\textbf{\Large{applications}}};
+ \\
+ };
+
+ \path[->, very thick, draw=guixred1]<2->
+ (kernel) edge (initrd);
+ \path[->, very thick, draw=guixred1]<4->
+ (initrd) edge (dmd);
+ \path[->, very thick, draw=guixred1]<6->
+ (dmd) edge (user);
+
+ \end{tikzpicture}
+ \end{overlayarea}
+
+ \begin{tikzpicture}[overlay,
+ guile/.style = {
+ fill=guixyellow, text=black, rotate=30,
+ rounded corners=4mm, text width=3cm,
+ opacity=.75, text opacity=1, text centered,
+ minimum height=1.3cm
+ }]
+ \node<3->(labelinitrd) [guile] at (initrd.east) {%
+ \Large{Guile}
+ };
+ \node<5->(labelinitrd) [guile] at (dmd.east) {%
+ \Large{Guile}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}[plain]
+ \Huge{\textbf{Trustworthiness.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}[plain]
+ \begin{quotation}
+ \noindent
+ \Large{Debian’s dirtiest secret:\\
+ \noindent
+ \textbf{Binary packages \alert{built by developers} are used in
+ the archive}}
+ \end{quotation}
+ \hfill{ --- Lucas Nussbaum, FOSDEM 2015}
+\end{frame}
+
+% TODO: CIA's XCode exploit here
+
+\begin{frame}[fragile]
+ \frametitle{Transparent binary/source deployment}
+ \begin{overlayarea}{\textwidth}{6cm}
+ \begin{semiverbatim}
address@hidden \alert{guix package --install=}emacs
+The following package will be installed:
+ emacs-24.5 /gnu/store/\dots{}-emacs-24.5
+\only<1>{
+The following files will be \alert{downloaded}:
+ /gnu/store/\dots{}-emacs-24.5
+ /gnu/store/\dots{}-libxpm-3.5.10
+ /gnu/store/\dots{}-libxext-1.3.1
+ /gnu/store/\dots{}-libxaw-1.0.11
+}\only<2>{
+The following files will be \alert{downloaded}:
+ /gnu/store/\dots{}-libxext-1.3.1
+ /gnu/store/\dots{}-libxaw-1.0.11
+The following derivations will be \alert{built}:
+ /gnu/store/\dots{}-emacs-24.5.drv
+ /gnu/store/\dots{}-libxpm-3.5.10.drv
+}
+ \end{semiverbatim}
+ \end{overlayarea}
+\end{frame}
+
+\begin{frame}[plain, fragile, t]
+ \begin{tikzpicture}[box/.style = {
+ rounded corners=2mm,
+ fill=white, text=black, text width=4.8cm,
+ inner sep=2mm
+ },
+ server/.style = {
+ text centered, rounded corners=2mm,
+ fill=guixorange1, text=black, text width=3.4cm,
+ inner sep=3mm
+ },
+ note/.style = {
+ rounded corners=4, text centered,
+ fill=guixorange1, text width=3cm,
+ inner sep=3mm, rotate=5, opacity=.75, text opacity=1,
+ drop shadow={opacity=0.5}
+ }]
+ \matrix[row sep=1.4cm, column sep=1.4cm] {
+ \node(def)[box]{\texttt{(define foo (package \textrm{...}))}};
+ & \node(user)[server]{\textbf{user}};
+ \\
+ \node<2->(build)[box]{\texttt{guix build foo}
+ \texttt{/gnu/store/\textrm{...}-foo-1.0}};
+ & \node<4-5>(hydra)[server]{hydra.gnu.org \textbf{build~farm}};
+ \\
+ \node<3->(push){\texttt{git push}};
+ & \node<3->(savannah)[server]{git.sv.gnu.org}; \\
+ \\
+ };
+
+ \path[->, very thick, draw=guixorange1]<2->
+ (def) edge node[left]{test} (build);
+ \path[->, very thick, draw=guixorange1]<3->
+ (build) edge (push);
+ \path[->, very thick, draw=guixorange1]<3->
+ (push) edge[->, in=-110, out=-70] (savannah);
+ \path[->, very thick, draw=guixorange1]<4-5>
+ (hydra) edge node[right]{pull} (savannah);
+ \path[->, very thick, draw=guixorange1]<4-6>
+ (user) edge[in=30,out=-30] node[left, sloped]{pull}
+ (savannah.north east);
+ \path[->, very thick, draw=guixorange1]<5>
+ (user) edge node[right]{get binary} (hydra);
+
+ \node<7>[overlay, fill=black, opacity=.8,
+ text height=9cm, text width=11cm,
+ at=(current page.center)] {};
+
+ \node<7>[note, rotate=3] at (2,1) {\textbf{no ``maintainer uploads''}};
+ \node<7>[note, rotate=-10] at (-2,-1) {\textbf{no single point of trust}};
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[plain, fragile]
+ \begin{tikzpicture}[white/.style = {
+ text centered, rounded corners=2mm,
+ fill=white, text=black, text width=2.8cm,
+ inner sep=3mm
+ },
+ orange/.style = {
+ text centered, rounded corners=2mm,
+ fill=guixorange1, text=black, text width=2.8cm,
+ inner sep=3mm
+ }]
+ \matrix[row sep=1cm, column sep=0.5cm] {
+ \node(source)[white]{\large{\textbf{source}}\\package~recipes};
+ & \node(binary)[orange]{\large{\textbf{binary}} \texttt{hydra.gnu.org}};
+ \\
+ \node{\texttt{(define emacs (\alert{package} \textrm{\dots{}}))}};
+ & \node{\texttt{/gnu/store/\textrm{\dots{}}-emacs-24.5}};
+ \\
+ };
+
+ \path[<->, very thick, draw=white]
+ (source) edge node[above]{\Huge{\textbf{?}}} (binary);
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}{The path to greater user control}
+ \Large{
+ \begin{enumerate}
+ \item{ \textbf{Bit-reproducible builds}
+ \begin{itemize}
+ \item<2-> we have \highlight{isolated build environments}!
+ \item<2-> ... but we need builds to be \highlight{deterministic}
+ \item<2-> \url{http://reproducible-builds.org}
+ \end{itemize}}
+ \item{\textbf{No single binary provider}
+ \begin{itemize}
+ \item<3-> \texttt{guix publish}
+ \item<3-> publish over GNUnet? (GSoC 2015)
+ \end{itemize}}
+ \item \textbf{\alert<4>{Tools for users to challenge binaries}}
+ \end{enumerate}
+ }
+\end{frame}
+
+\begin{frame}[fragile]
+ \begin{semiverbatim}
+$ \alert{guix challenge} --substitute-urls="http://hydra.gnu.org
http://guix.example.org"
+\alert{/gnu/store/\dots{}-openssl-1.0.2d contents differ}:
+ local hash: 0725l22\dots{}
+ http://hydra.gnu.org/\dots{}-openssl-1.0.2d: 0725l22\dots{}
+ http://guix.example.org/\dots{}-openssl-1.0.2d: 1zy4fma\dots{}
+\alert{/gnu/store/\dots{}-git-2.5.0 contents differ}:
+ local hash: 00p3bmr\dots{}
+ http://hydra.gnu.org/\dots{}-git-2.5.0: 069nb85\dots{}
+ http://guix.example.org/\dots{}-git-2.5.0: 0mdqa9w\dots{}
+\alert{/gnu/store/\dots{}-pius-2.1.1 contents differ}:
+ local hash: 0k4v3m9\dots{}
+ http://hydra.gnu.org/\dots{}-pius-2.1.1: 0k4v3m9\dots{}
+ http://guix.example.org/\dots{}-pius-2.1.1: 1cy25x1\dots{}
+ \end{semiverbatim}
+\end{frame}
+
+%% \begin{frame}
+%% \frametitle{Ken Thompson's attack?}
+
+%% \begin{itemize}
+%% \item ``Reflections on Trusting Trust'', Ken Thompson
+%% \item ``Countering ... Through Diverse Double Compilation'', David
+%% A. Wheeler
+%% \end{itemize}
+%% \end{frame}
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}[plain]
+ \Huge{\textbf{Status.}}
+\end{frame}
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+\begin{frame}{Timeline}
+ \begin{itemize}
+ \item Nov. 2012 --- dubbed GNU
+ \item{Jan. 2013 --- \alert{0.1}}
+ \item ...
+ \item{Apr. 2014 --- \alert{0.6}, signed binaries, \texttt{guix
+ system}}
+ \item{July 2014 --- \alert{0.7}, \textbf{installable operating
+ system}}
+ \item ...
+ \item{29 Jan. 2015 --- \alert{0.8.1}, \textbf{ARMv7 port}}
+ \item ...
+ \item Aug. 2015 --- Reproducibility in Parallel Computing Workshop
+ (RepPar)
+ \item{5 Nov. 2015 --- \alert{0.9.0}, new service framework, etc.}
+ \end{itemize}
+\end{frame}
+
+\screenshot{images/better}
+
+\begin{frame}{Status}
+ \Large{
+ \begin{itemize}
+ \item full-featured package manager
+ \item 2,600+ packages, 4 platforms
+ \item \textbf{Guix System Distribution$^\beta$}
+ \item binaries at \url{http://hydra.gnu.org}
+ \item tooling: auto-update, ``linting'', etc.
+ \item l10n: 8 languages!
+ \end{itemize}}
+\end{frame}
+
+\begin{frame}
+ \Large{
+ \begin{itemize}
+ \item $\approx$25 contributors each month
+ \item ... and lots of friendly people!
+ \item $\approx$400 commits per month
+ \item $\approx$200--500 new packages per release
+ \end{itemize}
+ }
+\end{frame}
+
+
+\begin{frame}[plain]
+
+ \vspace{0.7cm}
+ \Large{
+ \begin{itemize}
+ \item \textbf{install the distribution}
+ \item \textbf{use it}, report bugs, add packages
+ \item help with the \textbf{infrastructure} + admin
+ \item \textbf{donate} hardware/money
+ \item share your \textbf{ideas}!
+ \end{itemize}
+ }
+
+ \begin{textblock}{5}(7,8)
+ \tikz
+ \node[overlay, rounded corners=4, text centered,
+ minimum size=10mm, fill=guixorange1, text width=5cm,
+ inner sep=3mm, rotate=-7, opacity=.75, text opacity=1,
+ drop shadow={opacity=0.5}] at (3, 3) {
+ \textbf{your help needed!}
+ };
+ \end{textblock}
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{frame}[plain]
+
+\vfill{
+ \vspace{2.5cm}
+ \center{\includegraphics[width=0.3\textwidth]{images/GuixSD}}\\[1.0cm]
+ address@hidden://gnu.org/software/guix/}}}
+}
+
+\end{frame}
+
+\begin{frame}{}
+
+ \begin{textblock}{12}(2, 8)
+ \tiny{
+ Copyright \copyright{} 2010, 2012, 2013, 2014, 2015 Ludovic Courtès
address@hidden
+ GNU Guix logo, GFDL, \url{http://gnu.org/s/guix/graphics}
+
+ Copyright of other images included in this document is held by
+ their respective owners.
+ \\[3.0mm]
+ This work is licensed under the \alert{Creative Commons
+ Attribution-Share Alike 3.0} License. To view a copy of this
+ license, visit
+ \url{http://creativecommons.org/licenses/by-sa/3.0/} or send a
+ letter to Creative Commons, 171 Second Street, Suite 300, San
+ Francisco, California, 94105, USA.
+ \\[2.0mm]
+ At your option, you may instead copy, distribute and/or modify
+ this document under the terms of the \alert{GNU Free Documentation
+ License, Version 1.3 or any later version} published by the Free
+ Software Foundation; with no Invariant Sections, no Front-Cover
+ Texts, and no Back-Cover Texts. A copy of the license is
+ available at \url{http://www.gnu.org/licenses/gfdl.html}.
+ \\[2.0mm]
+ % Give a link to the 'Transparent Copy', as per Section 3 of the GFDL.
+ The source of this document is available from
+ \url{http://git.sv.gnu.org/cgit/guix/maintenance.git}.
+ }
+ \end{textblock}
+\end{frame}
+
+\end{document}
+
+% Local Variables:
+% coding: utf-8
+% comment-start: "%"
+% comment-end: ""
+% ispell-local-dictionary: "american"
+% compile-command: "rubber --pdf talk.tex"
+% End:
+
+%% LocalWords: Reproducibility
diff --git a/talks/reppar-2015/rules.ini b/talks/reppar-2015/rules.ini
index bb270ac..033a42b 100644
--- a/talks/reppar-2015/rules.ini
+++ b/talks/reppar-2015/rules.ini
@@ -5,5 +5,5 @@ target = (.*)\.pdf
source = \1.dot
rule = shell
cost = 0
-command = dot -Tpdf -o $target $source
+command = dot -Tpdf -Gratio=.7 -o $target $source
message = rendering $source into $target