[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/03: talks: Add preliminary PackagingCon talk.
From: |
Ludovic Courtès |
Subject: |
01/03: talks: Add preliminary PackagingCon talk. |
Date: |
Wed, 10 Nov 2021 12:47:20 -0500 (EST) |
civodul pushed a commit to branch master
in repository maintenance.
commit 55f9081d0412408db984cd1dae59d89f28c03a5f
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Fri Oct 29 18:17:29 2021 +0200
talks: Add preliminary PackagingCon talk.
* talks/packaging-con-2021/grail: New directory.
---
.../grail/images/Guix-horizontal-print.pdf | 1 +
.../images/bootstrap-graph-further-reduced.dot | 462 +++++++++++++++++++++
.../grail/images/bootstrap-graph-reduced.dot | 1 +
.../grail/images/bootstrap-graph.dot | 1 +
.../grail/images/bootstrappable.pdf | 1 +
.../grail/images/inria-white-2019.pdf | 1 +
talks/packaging-con-2021/grail/images/parcel.jpg | Bin 0 -> 429299 bytes
.../grail/images/reflections-on-trusting-trust.png | 1 +
.../grail/images/reproducible-builds.pdf | 1 +
.../grail/images/strawhorse-attack.pdf | Bin 0 -> 96220 bytes
talks/packaging-con-2021/grail/rules.ini | 9 +
talks/packaging-con-2021/grail/talk.tex | 404 ++++++++++++++++++
12 files changed, 882 insertions(+)
diff --git a/talks/packaging-con-2021/grail/images/Guix-horizontal-print.pdf
b/talks/packaging-con-2021/grail/images/Guix-horizontal-print.pdf
new file mode 120000
index 0000000..36698cb
--- /dev/null
+++ b/talks/packaging-con-2021/grail/images/Guix-horizontal-print.pdf
@@ -0,0 +1 @@
+../../../ust4hpc-2021/images/Guix-horizontal-print.pdf
\ No newline at end of file
diff --git
a/talks/packaging-con-2021/grail/images/bootstrap-graph-further-reduced.dot
b/talks/packaging-con-2021/grail/images/bootstrap-graph-further-reduced.dot
new file mode 100644
index 0000000..f0e90e1
--- /dev/null
+++ b/talks/packaging-con-2021/grail/images/bootstrap-graph-further-reduced.dot
@@ -0,0 +1,462 @@
+digraph "Guix package" {
+ "139865243951632" [label = "make-boot0@4.3", shape = box, fontname = sans];
+ "139865243951632" -> "139865243951808" [color = dimgrey];
+ "139865243951632" -> "139865243951984" [color = dimgrey];
+ "139865243951632" -> "139865243952160" [color = dimgrey];
+ "139865243951632" -> "139865243952512" [color = dimgrey];
+ "139865243951632" -> "139865243952864" [color = dimgrey];
+ "139865243951632" -> "139865243953216" [color = dimgrey];
+ "139865243951632" -> "139865243954272" [color = dimgrey];
+ "139865243951632" -> "139865243954624" [color = dimgrey];
+ "139865243951632" -> "139865243914416" [color = dimgrey];
+ "139865243951632" -> "139865243954800" [color = dimgrey];
+ "139865243951632" -> "139865243954448" [color = dimgrey];
+ "139865243951632" -> "139865243914592" [color = dimgrey];
+ "139865243951632" -> "139865243916704" [color = dimgrey];
+ "139865243951632" -> "139865243916176" [color = dimgrey];
+ "139865243951632" -> "139865243917056" [color = dimgrey];
+ "139865243951632" -> "139865243916000" [color = dimgrey];
+ "139865243951808" [label = "coreutils-mesboot@8.32", shape = box, fontname =
sans];
+ "139865243951808" -> "139865243951984" [color = peachpuff4];
+ "139865243951808" -> "139865243952160" [color = peachpuff4];
+ "139865243951808" -> "139865243952512" [color = peachpuff4];
+ "139865243951808" -> "139865243952864" [color = peachpuff4];
+ "139865243951808" -> "139865243953216" [color = peachpuff4];
+ "139865243951808" -> "139865243954272" [color = peachpuff4];
+ "139865243951808" -> "139865243954976" [color = peachpuff4];
+ "139865243951808" -> "139865243954624" [color = peachpuff4];
+ "139865243951808" -> "139865243914416" [color = peachpuff4];
+ "139865243951808" -> "139865243954800" [color = peachpuff4];
+ "139865243951808" -> "139865243954448" [color = peachpuff4];
+ "139865243951808" -> "139865243914592" [color = peachpuff4];
+ "139865243951808" -> "139865424551360" [color = peachpuff4];
+ "139865243951808" -> "139865243916704" [color = peachpuff4];
+ "139865243951808" -> "139865243916176" [color = peachpuff4];
+ "139865243951808" -> "139865243917056" [color = peachpuff4];
+ "139865243951808" -> "139865243916000" [color = peachpuff4];
+ "139865243951984" [label = "gcc-mesboot-wrapper@4.9.4", shape = box,
fontname = sans];
+ "139865243951984" -> "139865243954272" [color = darkseagreen];
+ "139865243951984" -> "139865243954976" [color = darkseagreen];
+ "139865243951984" -> "139865243952512" [color = darkseagreen];
+ "139865243951984" -> "139865243952160" [color = darkseagreen];
+ "139865243954272" [label = "bash-mesboot@4.4", shape = box, fontname = sans];
+ "139865243954272" -> "139865243914768" [color = red];
+ "139865243954272" -> "139865424551360" [color = red];
+ "139865243954272" -> "139865243914944" [color = red];
+ "139865243954272" -> "139865243915648" [color = red];
+ "139865243954272" -> "139865243915120" [color = red];
+ "139865243954272" -> "139865243916528" [color = red];
+ "139865243954272" -> "139865243916704" [color = red];
+ "139865243954272" -> "139865243916176" [color = red];
+ "139865243954272" -> "139865243917056" [color = red];
+ "139865243954272" -> "139865243916000" [color = red];
+ "139865243954272" -> "139865243915824" [color = red];
+ "139865243954272" -> "139865243916880" [color = red];
+ "139865243954272" -> "139865243917936" [color = red];
+ "139865243954272" -> "139865243917760" [color = red];
+ "139865243954272" -> "139865243918112" [color = red];
+ "139865243954272" -> "139865424551712" [color = red];
+ "139865243914768" [label = "gcc-mesboot0@2.95.3", shape = box, fontname =
sans];
+ "139865243914768" -> "139865243914944" [color = darkgoldenrod];
+ "139865243914768" -> "139865424551360" [color = darkgoldenrod];
+ "139865243914768" -> "139865243915648" [color = darkgoldenrod];
+ "139865243914768" -> "139865243915120" [color = darkgoldenrod];
+ "139865243914768" -> "139865243915472" [color = darkgoldenrod];
+ "139865243914768" -> "139865243916528" [color = darkgoldenrod];
+ "139865243914768" -> "139865243916704" [color = darkgoldenrod];
+ "139865243914768" -> "139865243916176" [color = darkgoldenrod];
+ "139865243914768" -> "139865243917056" [color = darkgoldenrod];
+ "139865243914768" -> "139865243916000" [color = darkgoldenrod];
+ "139865243914768" -> "139865243915824" [color = darkgoldenrod];
+ "139865243914768" -> "139865243916880" [color = darkgoldenrod];
+ "139865243914768" -> "139865243917936" [color = darkgoldenrod];
+ "139865243914768" -> "139865243917760" [color = darkgoldenrod];
+ "139865243914768" -> "139865243918112" [color = darkgoldenrod];
+ "139865243914768" -> "139865424551712" [color = darkgoldenrod];
+ "139865243914944" [label = "glibc-mesboot0@2.2.5", shape = box, fontname =
sans];
+ "139865243914944" -> "139865243915296" [color = darkgoldenrod];
+ "139865243914944" -> "139865243915648" [color = darkgoldenrod];
+ "139865243914944" -> "139865243915120" [color = darkgoldenrod];
+ "139865243914944" -> "139865243915472" [color = darkgoldenrod];
+ "139865243914944" -> "139865243916528" [color = darkgoldenrod];
+ "139865243914944" -> "139865243916704" [color = darkgoldenrod];
+ "139865243914944" -> "139865243916176" [color = darkgoldenrod];
+ "139865243914944" -> "139865243917056" [color = darkgoldenrod];
+ "139865243914944" -> "139865243916000" [color = darkgoldenrod];
+ "139865243914944" -> "139865243915824" [color = darkgoldenrod];
+ "139865243914944" -> "139865243916880" [color = darkgoldenrod];
+ "139865243914944" -> "139865243917936" [color = darkgoldenrod];
+ "139865243914944" -> "139865243917760" [color = darkgoldenrod];
+ "139865243914944" -> "139865243918112" [color = darkgoldenrod];
+ "139865243914944" -> "139865424551712" [color = darkgoldenrod];
+ "139865243915296" [label = "mesboot-headers@0.22", shape = box, fontname =
sans];
+ "139865243915296" -> "139865424551360" [color = magenta];
+ "139865243915296" -> "139865243916528" [color = magenta];
+ "139865243915296" -> "139865243916704" [color = magenta];
+ "139865243915296" -> "139865243916176" [color = magenta];
+ "139865243915296" -> "139865243917056" [color = magenta];
+ "139865243915296" -> "139865243916000" [color = magenta];
+ "139865243915296" -> "139865243915824" [color = magenta];
+ "139865243915296" -> "139865243916352" [color = magenta];
+ "139865243915296" -> "139865243916880" [color = magenta];
+ "139865243915296" -> "139865243917936" [color = magenta];
+ "139865243915296" -> "139865243917760" [color = magenta];
+ "139865243915296" -> "139865243918112" [color = magenta];
+ "139865243915296" -> "139865424551712" [color = magenta];
+ "139865424551360" [label = "linux-libre-headers-bootstrap@0", shape = box,
fontname = sans];
+ "139865243916528" [label = "bash-mesboot0@2.05b", shape = box, fontname =
sans];
+ "139865243916528" -> "139865243916880" [color = darkviolet];
+ "139865243916528" -> "139865243917232" [color = darkviolet];
+ "139865243916528" -> "139865243917936" [color = darkviolet];
+ "139865243916528" -> "139865243917760" [color = darkviolet];
+ "139865243916528" -> "139865243918112" [color = darkviolet];
+ "139865243916528" -> "139865424551712" [color = darkviolet];
+ "139865243916880" [label = "make-mesboot0@3.80", shape = box, fontname =
sans];
+ "139865243916880" -> "139865243917232" [color = dimgrey];
+ "139865243916880" -> "139865243917936" [color = dimgrey];
+ "139865243916880" -> "139865243917760" [color = dimgrey];
+ "139865243916880" -> "139865243918112" [color = dimgrey];
+ "139865243916880" -> "139865424551712" [color = dimgrey];
+ "139865243917232" [label = "tcc-boot0@0.9.26-1103-g6e62e0e", shape = box,
fontname = sans];
+ "139865243917232" -> "139865243917408" [color = darkviolet];
+ "139865243917232" -> "139865424550656" [color = darkviolet];
+ "139865243917232" -> "139865243917936" [color = darkviolet];
+ "139865243917232" -> "139865243917760" [color = darkviolet];
+ "139865243917232" -> "139865243918112" [color = darkviolet];
+ "139865243917232" -> "139865424551712" [color = darkviolet];
+ "139865243917408" [label = "mes-boot@0.22", shape = box, fontname = sans];
+ "139865243917408" -> "139865243917584" [color = dimgrey];
+ "139865243917408" -> "139865424550656" [color = dimgrey];
+ "139865243917408" -> "139865243917936" [color = dimgrey];
+ "139865243917408" -> "139865243917760" [color = dimgrey];
+ "139865243917408" -> "139865243918112" [color = dimgrey];
+ "139865243917408" -> "139865424551712" [color = dimgrey];
+ "139865243917584" [label = "bootstrap-mes-rewired@0.19", shape = box,
fontname = sans];
+ "139865243917584" -> "139865424550480" [color = peachpuff4];
+ "139865243917584" -> "139865243917936" [color = peachpuff4];
+ "139865424550480" [label = "bootstrap-mes@0", shape = box, fontname = sans];
+ "139865243917936" [label = "gash-boot@0.2.0", shape = box, fontname = sans];
+ "139865243917936" -> "139865243918112" [color = red];
+ "139865243917936" -> "139865424551712" [color = red];
+ "139865243918112" [label = "bootar@1a", shape = box, fontname = sans];
+ "139865243918112" -> "139865424551712" [color = magenta];
+ "139865424551712" [label = "guile-bootstrap@2.0", shape = box, fontname =
sans];
+ "139865424550656" [label = "bootstrap-mescc-tools@0.5.2", shape = box,
fontname = sans];
+ "139865243917760" [label = "gash-utils-boot@0.1.0", shape = box, fontname =
sans];
+ "139865243917760" -> "139865243918112" [color = magenta];
+ "139865243917760" -> "139865243917936" [color = magenta];
+ "139865243917760" -> "139865424551712" [color = magenta];
+ "139865243916704" [label = "bzip2-mesboot@1.0.8", shape = box, fontname =
sans];
+ "139865243916704" -> "139865243916880" [color = blue];
+ "139865243916704" -> "139865243917232" [color = blue];
+ "139865243916704" -> "139865243917936" [color = blue];
+ "139865243916704" -> "139865243917760" [color = blue];
+ "139865243916704" -> "139865243918112" [color = blue];
+ "139865243916704" -> "139865424551712" [color = blue];
+ "139865243916176" [label = "diffutils-mesboot@2.7", shape = box, fontname =
sans];
+ "139865243916176" -> "139865243916880" [color = peachpuff4];
+ "139865243916176" -> "139865243917232" [color = peachpuff4];
+ "139865243916176" -> "139865243917936" [color = peachpuff4];
+ "139865243916176" -> "139865243917760" [color = peachpuff4];
+ "139865243916176" -> "139865243918112" [color = peachpuff4];
+ "139865243916176" -> "139865424551712" [color = peachpuff4];
+ "139865243917056" [label = "gzip-mesboot@1.2.4", shape = box, fontname =
sans];
+ "139865243917056" -> "139865243917232" [color = magenta];
+ "139865243917056" -> "139865243917936" [color = magenta];
+ "139865243917056" -> "139865243917760" [color = magenta];
+ "139865243917056" -> "139865243918112" [color = magenta];
+ "139865243917056" -> "139865424551712" [color = magenta];
+ "139865243916000" [label = "patch-mesboot@2.5.9", shape = box, fontname =
sans];
+ "139865243916000" -> "139865243916880" [color = magenta];
+ "139865243916000" -> "139865243917232" [color = magenta];
+ "139865243916000" -> "139865243917936" [color = magenta];
+ "139865243916000" -> "139865243917760" [color = magenta];
+ "139865243916000" -> "139865243918112" [color = magenta];
+ "139865243916000" -> "139865424551712" [color = magenta];
+ "139865243915824" [label = "sed-mesboot0@1.18", shape = box, fontname =
sans];
+ "139865243915824" -> "139865243916880" [color = darkviolet];
+ "139865243915824" -> "139865243917232" [color = darkviolet];
+ "139865243915824" -> "139865243917936" [color = darkviolet];
+ "139865243915824" -> "139865243917760" [color = darkviolet];
+ "139865243915824" -> "139865243918112" [color = darkviolet];
+ "139865243915824" -> "139865424551712" [color = darkviolet];
+ "139865243916352" [label = "tcc-boot@0.9.27", shape = box, fontname = sans];
+ "139865243916352" -> "139865243916704" [color = blue];
+ "139865243916352" -> "139865243916880" [color = blue];
+ "139865243916352" -> "139865243917232" [color = blue];
+ "139865243916352" -> "139865243917936" [color = blue];
+ "139865243916352" -> "139865243917760" [color = blue];
+ "139865243916352" -> "139865243918112" [color = blue];
+ "139865243916352" -> "139865424551712" [color = blue];
+ "139865243915648" [label = "binutils-mesboot0@2.14", shape = box, fontname =
sans];
+ "139865243915648" -> "139865243916528" [color = blue];
+ "139865243915648" -> "139865243916704" [color = blue];
+ "139865243915648" -> "139865243916176" [color = blue];
+ "139865243915648" -> "139865243917056" [color = blue];
+ "139865243915648" -> "139865243916000" [color = blue];
+ "139865243915648" -> "139865243915824" [color = blue];
+ "139865243915648" -> "139865243916352" [color = blue];
+ "139865243915648" -> "139865243916880" [color = blue];
+ "139865243915648" -> "139865243917936" [color = blue];
+ "139865243915648" -> "139865243917760" [color = blue];
+ "139865243915648" -> "139865243918112" [color = blue];
+ "139865243915648" -> "139865424551712" [color = blue];
+ "139865243915120" [label = "gawk-mesboot0@3.0.0", shape = box, fontname =
sans];
+ "139865243915120" -> "139865243916528" [color = magenta];
+ "139865243915120" -> "139865243916704" [color = magenta];
+ "139865243915120" -> "139865243916176" [color = magenta];
+ "139865243915120" -> "139865243917056" [color = magenta];
+ "139865243915120" -> "139865243916000" [color = magenta];
+ "139865243915120" -> "139865243915824" [color = magenta];
+ "139865243915120" -> "139865243916352" [color = magenta];
+ "139865243915120" -> "139865243916880" [color = magenta];
+ "139865243915120" -> "139865243917936" [color = magenta];
+ "139865243915120" -> "139865243917760" [color = magenta];
+ "139865243915120" -> "139865243918112" [color = magenta];
+ "139865243915120" -> "139865424551712" [color = magenta];
+ "139865243915472" [label = "gcc-core-mesboot0@2.95.3", shape = box, fontname
= sans];
+ "139865243915472" -> "139865243915648" [color = darkgoldenrod];
+ "139865243915472" -> "139865243916528" [color = darkgoldenrod];
+ "139865243915472" -> "139865243916704" [color = darkgoldenrod];
+ "139865243915472" -> "139865243916176" [color = darkgoldenrod];
+ "139865243915472" -> "139865243917056" [color = darkgoldenrod];
+ "139865243915472" -> "139865243916000" [color = darkgoldenrod];
+ "139865243915472" -> "139865243915824" [color = darkgoldenrod];
+ "139865243915472" -> "139865243916352" [color = darkgoldenrod];
+ "139865243915472" -> "139865243916880" [color = darkgoldenrod];
+ "139865243915472" -> "139865243917936" [color = darkgoldenrod];
+ "139865243915472" -> "139865243917760" [color = darkgoldenrod];
+ "139865243915472" -> "139865243918112" [color = darkgoldenrod];
+ "139865243915472" -> "139865424551712" [color = darkgoldenrod];
+ "139865243954976" [label = "coreutils-mesboot0@5.0", shape = box, fontname =
sans];
+ "139865243954976" -> "139865243914768" [color = darkgoldenrod];
+ "139865243954976" -> "139865424551360" [color = darkgoldenrod];
+ "139865243954976" -> "139865243914944" [color = darkgoldenrod];
+ "139865243954976" -> "139865243915648" [color = darkgoldenrod];
+ "139865243954976" -> "139865243915120" [color = darkgoldenrod];
+ "139865243954976" -> "139865243916528" [color = darkgoldenrod];
+ "139865243954976" -> "139865243916704" [color = darkgoldenrod];
+ "139865243954976" -> "139865243916176" [color = darkgoldenrod];
+ "139865243954976" -> "139865243917056" [color = darkgoldenrod];
+ "139865243954976" -> "139865243916000" [color = darkgoldenrod];
+ "139865243954976" -> "139865243915824" [color = darkgoldenrod];
+ "139865243954976" -> "139865243916880" [color = darkgoldenrod];
+ "139865243954976" -> "139865243917936" [color = darkgoldenrod];
+ "139865243954976" -> "139865243917760" [color = darkgoldenrod];
+ "139865243954976" -> "139865243918112" [color = darkgoldenrod];
+ "139865243954976" -> "139865424551712" [color = darkgoldenrod];
+ "139865243952512" [label = "glibc-mesboot@2.16.0", shape = box, fontname =
sans];
+ "139865243952512" -> "139865243952688" [color = red];
+ "139865243952512" -> "139865243952864" [color = red];
+ "139865243952512" -> "139865243953216" [color = red];
+ "139865243952512" -> "139865243953392" [color = red];
+ "139865243952512" -> "139865243954272" [color = red];
+ "139865243952512" -> "139865243954976" [color = red];
+ "139865243952512" -> "139865243954624" [color = red];
+ "139865243952512" -> "139865243914416" [color = red];
+ "139865243952512" -> "139865243954800" [color = red];
+ "139865243952512" -> "139865243954448" [color = red];
+ "139865243952512" -> "139865243914592" [color = red];
+ "139865243952512" -> "139865424551360" [color = red];
+ "139865243952512" -> "139865243914944" [color = red];
+ "139865243952512" -> "139865243916704" [color = red];
+ "139865243952512" -> "139865243916176" [color = red];
+ "139865243952512" -> "139865243917056" [color = red];
+ "139865243952512" -> "139865243916000" [color = red];
+ "139865243952688" [label = "glibc-headers-mesboot@2.16.0", shape = box,
fontname = sans];
+ "139865243952688" -> "139865243915296" [color = darkseagreen];
+ "139865243952688" -> "139865243952864" [color = darkseagreen];
+ "139865243952688" -> "139865243953216" [color = darkseagreen];
+ "139865243952688" -> "139865243953392" [color = darkseagreen];
+ "139865243952688" -> "139865243954272" [color = darkseagreen];
+ "139865243952688" -> "139865243954976" [color = darkseagreen];
+ "139865243952688" -> "139865243954624" [color = darkseagreen];
+ "139865243952688" -> "139865243914416" [color = darkseagreen];
+ "139865243952688" -> "139865243954800" [color = darkseagreen];
+ "139865243952688" -> "139865243954448" [color = darkseagreen];
+ "139865243952688" -> "139865243914592" [color = darkseagreen];
+ "139865243952688" -> "139865424551360" [color = darkseagreen];
+ "139865243952688" -> "139865243914944" [color = darkseagreen];
+ "139865243952688" -> "139865243916704" [color = darkseagreen];
+ "139865243952688" -> "139865243916176" [color = darkseagreen];
+ "139865243952688" -> "139865243917056" [color = darkseagreen];
+ "139865243952688" -> "139865243916000" [color = darkseagreen];
+ "139865243952864" [label = "binutils-mesboot@2.20.1a", shape = box, fontname
= sans];
+ "139865243952864" -> "139865243953216" [color = cyan3];
+ "139865243952864" -> "139865243953392" [color = cyan3];
+ "139865243952864" -> "139865243954272" [color = cyan3];
+ "139865243952864" -> "139865243914240" [color = cyan3];
+ "139865243952864" -> "139865243954976" [color = cyan3];
+ "139865243952864" -> "139865243954624" [color = cyan3];
+ "139865243952864" -> "139865243914416" [color = cyan3];
+ "139865243952864" -> "139865243954800" [color = cyan3];
+ "139865243952864" -> "139865243954448" [color = cyan3];
+ "139865243952864" -> "139865243914592" [color = cyan3];
+ "139865243952864" -> "139865424551360" [color = cyan3];
+ "139865243952864" -> "139865243914944" [color = cyan3];
+ "139865243952864" -> "139865243916704" [color = cyan3];
+ "139865243952864" -> "139865243916176" [color = cyan3];
+ "139865243952864" -> "139865243917056" [color = cyan3];
+ "139865243952864" -> "139865243916000" [color = cyan3];
+ "139865243953216" [label = "xz-mesboot@5.0.0", shape = box, fontname = sans];
+ "139865243953216" -> "139865243953392" [color = dimgrey];
+ "139865243953216" -> "139865243954272" [color = dimgrey];
+ "139865243953216" -> "139865243914240" [color = dimgrey];
+ "139865243953216" -> "139865243954976" [color = dimgrey];
+ "139865243953216" -> "139865243954624" [color = dimgrey];
+ "139865243953216" -> "139865243914416" [color = dimgrey];
+ "139865243953216" -> "139865243954800" [color = dimgrey];
+ "139865243953216" -> "139865243954448" [color = dimgrey];
+ "139865243953216" -> "139865243914592" [color = dimgrey];
+ "139865243953216" -> "139865424551360" [color = dimgrey];
+ "139865243953216" -> "139865243914944" [color = dimgrey];
+ "139865243953216" -> "139865243916704" [color = dimgrey];
+ "139865243953216" -> "139865243916176" [color = dimgrey];
+ "139865243953216" -> "139865243917056" [color = dimgrey];
+ "139865243953216" -> "139865243916000" [color = dimgrey];
+ "139865243953392" [label = "gcc-mesboot1@4.6.4", shape = box, fontname =
sans];
+ "139865243953392" -> "139865243954272" [color = red];
+ "139865243953392" -> "139865243914240" [color = red];
+ "139865243953392" -> "139865243954976" [color = red];
+ "139865243953392" -> "139865243954624" [color = red];
+ "139865243953392" -> "139865243914416" [color = red];
+ "139865243953392" -> "139865243954800" [color = red];
+ "139865243953392" -> "139865243954448" [color = red];
+ "139865243953392" -> "139865243914592" [color = red];
+ "139865243953392" -> "139865243914768" [color = red];
+ "139865243953392" -> "139865424551360" [color = red];
+ "139865243953392" -> "139865243914944" [color = red];
+ "139865243953392" -> "139865243916704" [color = red];
+ "139865243953392" -> "139865243916176" [color = red];
+ "139865243953392" -> "139865243917056" [color = red];
+ "139865243953392" -> "139865243916000" [color = red];
+ "139865243914240" [label = "binutils-mesboot1@2.14", shape = box, fontname =
sans];
+ "139865243914240" -> "139865243914768" [color = peachpuff4];
+ "139865243914240" -> "139865424551360" [color = peachpuff4];
+ "139865243914240" -> "139865243914944" [color = peachpuff4];
+ "139865243914240" -> "139865243915648" [color = peachpuff4];
+ "139865243914240" -> "139865243915120" [color = peachpuff4];
+ "139865243914240" -> "139865243916528" [color = peachpuff4];
+ "139865243914240" -> "139865243916704" [color = peachpuff4];
+ "139865243914240" -> "139865243916176" [color = peachpuff4];
+ "139865243914240" -> "139865243917056" [color = peachpuff4];
+ "139865243914240" -> "139865243916000" [color = peachpuff4];
+ "139865243914240" -> "139865243915824" [color = peachpuff4];
+ "139865243914240" -> "139865243916880" [color = peachpuff4];
+ "139865243914240" -> "139865243917936" [color = peachpuff4];
+ "139865243914240" -> "139865243917760" [color = peachpuff4];
+ "139865243914240" -> "139865243918112" [color = peachpuff4];
+ "139865243914240" -> "139865424551712" [color = peachpuff4];
+ "139865243954624" [label = "gawk-mesboot@3.1.8", shape = box, fontname =
sans];
+ "139865243954624" -> "139865243914768" [color = cyan3];
+ "139865243954624" -> "139865424551360" [color = cyan3];
+ "139865243954624" -> "139865243914944" [color = cyan3];
+ "139865243954624" -> "139865243915648" [color = cyan3];
+ "139865243954624" -> "139865243915120" [color = cyan3];
+ "139865243954624" -> "139865243916528" [color = cyan3];
+ "139865243954624" -> "139865243916704" [color = cyan3];
+ "139865243954624" -> "139865243916176" [color = cyan3];
+ "139865243954624" -> "139865243917056" [color = cyan3];
+ "139865243954624" -> "139865243916000" [color = cyan3];
+ "139865243954624" -> "139865243915824" [color = cyan3];
+ "139865243954624" -> "139865243916880" [color = cyan3];
+ "139865243954624" -> "139865243917936" [color = cyan3];
+ "139865243954624" -> "139865243917760" [color = cyan3];
+ "139865243954624" -> "139865243918112" [color = cyan3];
+ "139865243954624" -> "139865424551712" [color = cyan3];
+ "139865243954624" -> "139865243915296" [color = cyan3];
+ "139865243914416" [label = "grep-mesboot@2.0", shape = box, fontname = sans];
+ "139865243914416" -> "139865243914768" [color = darkgoldenrod];
+ "139865243914416" -> "139865424551360" [color = darkgoldenrod];
+ "139865243914416" -> "139865243914944" [color = darkgoldenrod];
+ "139865243914416" -> "139865243915648" [color = darkgoldenrod];
+ "139865243914416" -> "139865243915120" [color = darkgoldenrod];
+ "139865243914416" -> "139865243916528" [color = darkgoldenrod];
+ "139865243914416" -> "139865243916704" [color = darkgoldenrod];
+ "139865243914416" -> "139865243916176" [color = darkgoldenrod];
+ "139865243914416" -> "139865243917056" [color = darkgoldenrod];
+ "139865243914416" -> "139865243916000" [color = darkgoldenrod];
+ "139865243914416" -> "139865243915824" [color = darkgoldenrod];
+ "139865243914416" -> "139865243916880" [color = darkgoldenrod];
+ "139865243914416" -> "139865243917936" [color = darkgoldenrod];
+ "139865243914416" -> "139865243917760" [color = darkgoldenrod];
+ "139865243914416" -> "139865243918112" [color = darkgoldenrod];
+ "139865243914416" -> "139865424551712" [color = darkgoldenrod];
+ "139865243954800" [label = "make-mesboot@3.82", shape = box, fontname =
sans];
+ "139865243954800" -> "139865243914768" [color = magenta];
+ "139865243954800" -> "139865424551360" [color = magenta];
+ "139865243954800" -> "139865243914944" [color = magenta];
+ "139865243954800" -> "139865243915648" [color = magenta];
+ "139865243954800" -> "139865243915120" [color = magenta];
+ "139865243954800" -> "139865243916528" [color = magenta];
+ "139865243954800" -> "139865243916704" [color = magenta];
+ "139865243954800" -> "139865243916176" [color = magenta];
+ "139865243954800" -> "139865243917056" [color = magenta];
+ "139865243954800" -> "139865243916000" [color = magenta];
+ "139865243954800" -> "139865243915824" [color = magenta];
+ "139865243954800" -> "139865243916880" [color = magenta];
+ "139865243954800" -> "139865243917936" [color = magenta];
+ "139865243954800" -> "139865243917760" [color = magenta];
+ "139865243954800" -> "139865243918112" [color = magenta];
+ "139865243954800" -> "139865424551712" [color = magenta];
+ "139865243954448" [label = "sed-mesboot@4.0.6", shape = box, fontname =
sans];
+ "139865243954448" -> "139865243914768" [color = peachpuff4];
+ "139865243954448" -> "139865424551360" [color = peachpuff4];
+ "139865243954448" -> "139865243914944" [color = peachpuff4];
+ "139865243954448" -> "139865243915648" [color = peachpuff4];
+ "139865243954448" -> "139865243915120" [color = peachpuff4];
+ "139865243954448" -> "139865243916528" [color = peachpuff4];
+ "139865243954448" -> "139865243916704" [color = peachpuff4];
+ "139865243954448" -> "139865243916176" [color = peachpuff4];
+ "139865243954448" -> "139865243917056" [color = peachpuff4];
+ "139865243954448" -> "139865243916000" [color = peachpuff4];
+ "139865243954448" -> "139865243915824" [color = peachpuff4];
+ "139865243954448" -> "139865243916880" [color = peachpuff4];
+ "139865243954448" -> "139865243917936" [color = peachpuff4];
+ "139865243954448" -> "139865243917760" [color = peachpuff4];
+ "139865243954448" -> "139865243918112" [color = peachpuff4];
+ "139865243954448" -> "139865424551712" [color = peachpuff4];
+ "139865243914592" [label = "tar-mesboot@1.22", shape = box, fontname = sans];
+ "139865243914592" -> "139865243914768" [color = cyan3];
+ "139865243914592" -> "139865424551360" [color = cyan3];
+ "139865243914592" -> "139865243914944" [color = cyan3];
+ "139865243914592" -> "139865243915648" [color = cyan3];
+ "139865243914592" -> "139865243915120" [color = cyan3];
+ "139865243914592" -> "139865243916528" [color = cyan3];
+ "139865243914592" -> "139865243916704" [color = cyan3];
+ "139865243914592" -> "139865243916176" [color = cyan3];
+ "139865243914592" -> "139865243917056" [color = cyan3];
+ "139865243914592" -> "139865243916000" [color = cyan3];
+ "139865243914592" -> "139865243915824" [color = cyan3];
+ "139865243914592" -> "139865243916880" [color = cyan3];
+ "139865243914592" -> "139865243917936" [color = cyan3];
+ "139865243914592" -> "139865243917760" [color = cyan3];
+ "139865243914592" -> "139865243918112" [color = cyan3];
+ "139865243914592" -> "139865424551712" [color = cyan3];
+ "139865243952160" [label = "gcc-mesboot@4.9.4", shape = box, fontname =
sans];
+ "139865243952160" -> "139865243952336" [color = darkviolet];
+ "139865243952160" -> "139865243953392" [color = darkviolet];
+ "139865243952160" -> "139865243952688" [color = darkviolet];
+ "139865243952160" -> "139865243952512" [color = darkviolet];
+ "139865243952160" -> "139865243952864" [color = darkviolet];
+ "139865243952160" -> "139865243953216" [color = darkviolet];
+ "139865243952160" -> "139865243953392" [color = darkviolet];
+ "139865243952160" -> "139865243954272" [color = darkviolet];
+ "139865243952160" -> "139865243954976" [color = darkviolet];
+ "139865243952160" -> "139865243954624" [color = darkviolet];
+ "139865243952160" -> "139865243914416" [color = darkviolet];
+ "139865243952160" -> "139865243954800" [color = darkviolet];
+ "139865243952160" -> "139865243954448" [color = darkviolet];
+ "139865243952160" -> "139865243914592" [color = darkviolet];
+ "139865243952160" -> "139865424551360" [color = darkviolet];
+ "139865243952160" -> "139865243916704" [color = darkviolet];
+ "139865243952160" -> "139865243916176" [color = darkviolet];
+ "139865243952160" -> "139865243917056" [color = darkviolet];
+ "139865243952160" -> "139865243916000" [color = darkviolet];
+ "139865243952336" [label = "gcc-mesboot1-wrapper@4.6.4", shape = box,
fontname = sans];
+ "139865243952336" -> "139865243954272" [color = darkseagreen];
+ "139865243952336" -> "139865243954976" [color = darkseagreen];
+ "139865243952336" -> "139865243952512" [color = darkseagreen];
+ "139865243952336" -> "139865243953392" [color = darkseagreen];
+
+}
diff --git a/talks/packaging-con-2021/grail/images/bootstrap-graph-reduced.dot
b/talks/packaging-con-2021/grail/images/bootstrap-graph-reduced.dot
new file mode 120000
index 0000000..d0cf419
--- /dev/null
+++ b/talks/packaging-con-2021/grail/images/bootstrap-graph-reduced.dot
@@ -0,0 +1 @@
+../../../fosdem-2020/containers/images/bootstrap-graph-reduced.dot
\ No newline at end of file
diff --git a/talks/packaging-con-2021/grail/images/bootstrap-graph.dot
b/talks/packaging-con-2021/grail/images/bootstrap-graph.dot
new file mode 120000
index 0000000..6c98a03
--- /dev/null
+++ b/talks/packaging-con-2021/grail/images/bootstrap-graph.dot
@@ -0,0 +1 @@
+../../../fosdem-2020/containers/images/bootstrap-graph.dot
\ No newline at end of file
diff --git a/talks/packaging-con-2021/grail/images/bootstrappable.pdf
b/talks/packaging-con-2021/grail/images/bootstrappable.pdf
new file mode 120000
index 0000000..b6f0536
--- /dev/null
+++ b/talks/packaging-con-2021/grail/images/bootstrappable.pdf
@@ -0,0 +1 @@
+../../../ust4hpc-2021/images/bootstrappable.pdf
\ No newline at end of file
diff --git a/talks/packaging-con-2021/grail/images/inria-white-2019.pdf
b/talks/packaging-con-2021/grail/images/inria-white-2019.pdf
new file mode 120000
index 0000000..4b04b21
--- /dev/null
+++ b/talks/packaging-con-2021/grail/images/inria-white-2019.pdf
@@ -0,0 +1 @@
+../../../ust4hpc-2021/images/inria-white-2019.pdf
\ No newline at end of file
diff --git a/talks/packaging-con-2021/grail/images/parcel.jpg
b/talks/packaging-con-2021/grail/images/parcel.jpg
new file mode 100644
index 0000000..1bd6b42
Binary files /dev/null and b/talks/packaging-con-2021/grail/images/parcel.jpg
differ
diff --git
a/talks/packaging-con-2021/grail/images/reflections-on-trusting-trust.png
b/talks/packaging-con-2021/grail/images/reflections-on-trusting-trust.png
new file mode 120000
index 0000000..cd5d62a
--- /dev/null
+++ b/talks/packaging-con-2021/grail/images/reflections-on-trusting-trust.png
@@ -0,0 +1 @@
+../../../fosdem-2020/containers/images/reflections-on-trusting-trust.png
\ No newline at end of file
diff --git a/talks/packaging-con-2021/grail/images/reproducible-builds.pdf
b/talks/packaging-con-2021/grail/images/reproducible-builds.pdf
new file mode 120000
index 0000000..d32ed25
--- /dev/null
+++ b/talks/packaging-con-2021/grail/images/reproducible-builds.pdf
@@ -0,0 +1 @@
+../../../ust4hpc-2021/images/reproducible-builds.pdf
\ No newline at end of file
diff --git a/talks/packaging-con-2021/grail/images/strawhorse-attack.pdf
b/talks/packaging-con-2021/grail/images/strawhorse-attack.pdf
new file mode 100644
index 0000000..773f4a1
Binary files /dev/null and
b/talks/packaging-con-2021/grail/images/strawhorse-attack.pdf differ
diff --git a/talks/packaging-con-2021/grail/rules.ini
b/talks/packaging-con-2021/grail/rules.ini
new file mode 100644
index 0000000..5a74423
--- /dev/null
+++ b/talks/packaging-con-2021/grail/rules.ini
@@ -0,0 +1,9 @@
+;; Rules for Rubber.
+
+[dot-pdf]
+target = (.*)\.pdf
+source = \1.dot
+rule = shell
+cost = 0
+command = dot -Tpdf -Gratio=.78 -o $target $source
+message = rendering $source into $target
diff --git a/talks/packaging-con-2021/grail/talk.tex
b/talks/packaging-con-2021/grail/talk.tex
new file mode 100644
index 0000000..a18fdc7
--- /dev/null
+++ b/talks/packaging-con-2021/grail/talk.tex
@@ -0,0 +1,404 @@
+% The comment below tells Rubber to compile the .dot files.
+%
+% rubber: module graphics
+% rubber: rules rules.ini
+
+% Make sure URLs are broken on hyphens.
+% See <https://tex.stackexchange.com/questions/3033/forcing-linebreaks-in-url>.
+\RequirePackage[hyphens]{url}
+
+\documentclass[aspectratio=169]{beamer}
+
+\usetheme{default}
+
+\usefonttheme{structurebold}
+
+% Nice sans-serif font.
+\usepackage[sfdefault,lining]{FiraSans} %% option 'sfdefault' activates Fira
Sans as the default text font
+\renewcommand*\oldstylenums[1]{{\firaoldstyle #1}}
+
+% Nice monospace font.
+\usepackage{inconsolata}
+%% \renewcommand*\familydefault{\ttdefault} %% Only if the base font of the
document is to be typewriter style
+\usepackage[T1]{fontenc}
+
+\usepackage[utf8]{inputenc}
+\PassOptionsToPackage{hyphens}{url}\usepackage{hyperref,xspace,multicol}
+
+\usecolortheme{seagull} % white on black
+\usepackage[absolute,overlay]{textpos}
+\usepackage{tikz}
+\usetikzlibrary{arrows,shapes,trees,shadows,positioning}
+\usepackage{fancyvrb} % for '\Verb'
+\usepackage{xifthen} % for '\isempty'
+
+% 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{guixred3}{RGB}{115,34,27} % dark red
+\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{guixdarkgrey}{RGB}{46,47,55} % guixdarkgrey 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
+
+\definecolor{rescienceyellow}{RGB}{254,246,91}
+
+\setbeamerfont{title}{size=\huge}
+\setbeamerfont{frametitle}{size=\huge}
+\setbeamerfont{normal text}{size=\Large}
+
+% 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{The Packaging Grail}
+
+\author{Ludovic Courtès}
+\date{10 November 2021}
+
+\setbeamertemplate{navigation symbols}{} % remove the navigation bar
+
+\AtBeginSection[]{
+ \begin{frame}
+ \frametitle{}
+ \tableofcontents[currentsection]
+ \end{frame}
+}
+
+
+\newcommand{\screenshot}[2][width=\paperwidth]{
+ \begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[{#1}]{#2}};
+ \end{tikzpicture}
+ \end{frame}
+}
+
+
+\begin{document}
+
+\setbeamercolor{normal text}{fg=black,bg=white}
+\begin{frame}[plain, fragile]
+ \begin{tikzpicture}[overlay]
+ \node [at=(current page.center), opacity=.3, inner sep=10mm] {
+ %
https://thumbs.dreamstime.com/z/parcel-illustration-drawing-engraving-ink-line-art-vector-what-made-pencil-paper-then-was-digitalized-143335396.jpg
+ \includegraphics[width=.9\textwidth]{images/parcel}
+ };
+ \node [at=(current page.center), fill=guixorange2, opacity=.4,
+ text width=1.3\textwidth, text height=\textheight] {
+ };
+ \node [at=(current page.center), fill=black, opacity=.15,
+ text width=1.3\textwidth, text height=\textheight] {};
+ \end{tikzpicture}
+
+ \vspace{35mm}
+ \Huge{\textbf{The Packaging Grail}}
+ \\[15mm]
+ \large{Ludovic Courtès}
+ \\[2mm]
+ \textbf{PackagingCon \oldstylenums{2021}}
+
+ \vfill{}
+ \hfill{\includegraphics[width=0.2\paperwidth]{images/inria-white-2019}}
+ \vspace{15mm}
+\end{frame}
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Part 1: Guix's grail
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\setbeamercolor{normal text}{fg=black,bg=white}
+\begin{frame}[fragile]
+ \begin{tikzpicture}[overlay]
+ \node(logo) [at=(current page.center), inner sep=0pt]
+ {\includegraphics[width=.8\textwidth]{images/Guix-horizontal-print}};
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=white}
+\begin{frame}[plain, fragile]
+ \begin{tikzpicture}[overlay]
+ \node [at=(current page.center)] {
+ \includegraphics[width=.7\paperwidth]{images/reproducible-builds}
+ };
+ \node [at=(current page.south), anchor=south, text=guixgrey] {
+ \url{https://reproducible-builds.org}
+ };
+ \end{tikzpicture}
+\end{frame}
+\setbeamercolor{normal text}{bg=black}
+
+% TODO: Add snap bitcoin miner
+
+\setbeamercolor{normal text}{bg=guixblue2}
+\begin{frame}[fragile]
+ \begin{semiverbatim}
+$ \alert{guix challenge} --substitute-urls="https://ci.guix.gnu.org
https://example.org"
+\alert{/gnu/store/\dots{}-openssl-1.0.2d contents differ}:
+ local hash: 0725l22\dots{}
+ http://ci.guix.gnu.org/\dots{}-openssl-1.0.2d: 0725l22\dots{}
+ http://example.org/\dots{}-openssl-1.0.2d: 1zy4fma\dots{}
+\alert{/gnu/store/\dots{}-git-2.5.0 contents differ}:
+ local hash: 00p3bmr\dots{}
+ http://ci.guix.gnu.org/\dots{}-git-2.5.0: 069nb85\dots{}
+ http://example.org/\dots{}-git-2.5.0: 0mdqa9w\dots{}
+\alert{/gnu/store/\dots{}-pius-2.1.1 contents differ}:
+ local hash: 0k4v3m9\dots{}
+ http://ci.guix.gnu.org/\dots{}-pius-2.1.1: 0k4v3m9\dots{}
+ http://example.org/\dots{}-pius-2.1.1: 1cy25x1\dots{}
+ \end{semiverbatim}
+\end{frame}
+\setbeamercolor{normal text}{bg=black}
+
+\setbeamercolor{normal text}{bg=guixdarkgrey}
+
+
+\begin{frame}[plain]
+ \LARGE{
+ $\texttt{emacs} = f(\texttt{gtk+}, \texttt{gcc}, \texttt{make},
\texttt{coreutils})$
+ \\[1.1cm]
+ \uncover<2->{$\texttt{gtk+} = g(\texttt{glib}, \texttt{gcc},
\texttt{make}, \texttt{coreutils})$}
+ \\[1.1cm]
+ \uncover<3->{$\texttt{gcc} = h(\texttt{make}, \texttt{coreutils},
\texttt{gcc}_0)$}
+ \\[1.1cm]
+ \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}[fragile]
+%% \begin{tikzpicture}[overlay]
+%% \node [at=(current page.north west), anchor=north west,
+%% outer sep=4mm, text=white, text width=13mm]{
+%% \texttt{configure},
+%% \texttt{src/hello.c},
+%% GCC,\\
+%% Binutils,
+%% etc.
+%% };
+%% \node [at=(current page.center), outer sep=3mm, font=\rmfamily]{
+%% {\fontfamily{roman}\fontsize{45}{45}{$f(x,y,z)$}}
+%% };
+%% \end{tikzpicture}
+%% \end{frame}
+\setbeamercolor{normal text}{bg=black}
+
+\begin{frame}[fragile]
+ %% \frametitle{Bit-Reproducible Builds$^*$}
+ %% \framesubtitle{$^*$ almost!}
+
+ \begin{semiverbatim}
+ \Large{
+\$ 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.29
+/gnu/store/\textrm{...}-gcc-7.4.0-lib
+/gnu/store/\textrm{...}-hello-2.10
+}}
+ \end{semiverbatim}
+
+ \begin{tikzpicture}[overlay]
+ \node<1>(labelnixhash) [fill=white, text=black, inner sep=0.5cm,
+ rounded corners] 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}}};
+ \end{tikzpicture}
+
+\end{frame}
+
+\setbeamercolor{normal text}{bg=white}
+\begin{frame}[plain, fragile]
+ \begin{tikzpicture}[overlay]
+ \node [at=(current page.center)] {
+ \includegraphics[width=.9\paperwidth]{images/bootstrappable}
+ };
+ \node [at=(current page.south), anchor=south, text=guixgrey] {
+ \url{https://bootstrappable.org}
+ };
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{fg=black,bg=white}
+\begin{frame}[fragile]
+ \vspace{2.5cm}
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt,
+ drop shadow={opacity=0.5}, draw, color=guixgrey, line width=1pt]
+
{\includegraphics[height=0.9\paperheight]{images/reflections-on-trusting-trust}};
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[fragile]
+ \vspace{2.5cm}
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt, rotate=8,
+ drop shadow={opacity=0.5}, draw, color=guixgrey, line width=1pt]
+ {\includegraphics[width=0.9\paperwidth]{images/strawhorse-attack}};
+ % TODO: SolarWinds
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{bg=white}
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[height=\paperheight]{images/bootstrap-graph}};
+ \node<2-> [at=(current page.center), anchor=north, inner sep=20pt,
text=guixgrey]
+ {\Large{\textbf{250 MiB of binary blobs}}};
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+ {\includegraphics[height=\paperheight]{images/bootstrap-graph-reduced}};
+ \node<2-> [at=(current page.center), fill=guixorange1, rounded
corners=10pt,
+ inner sep=10pt, opacity=.8, text opacity=1]
+ {\Large{\textbf{250 MiB $\rightarrow$ 130 MiB of binary blobs}}};
+ \node<2-> [at=(current page.south), anchor=south,
+ inner sep=2mm, outer sep=3mm, rounded corners,
+ fill=white, opacity=.7, text opacity=1, text=black]
+
{\url{https://guix.gnu.org/en/blog/2019/guix-reduces-bootstrap-seed-by-50/}};
+ \end{tikzpicture}
+\end{frame}
+
+\begin{frame}[plain]
+ \begin{tikzpicture}[remember picture, overlay]
+ \node [at=(current page.center), inner sep=0pt]
+
{\includegraphics[height=.8\paperheight]{images/bootstrap-graph-further-reduced}};
+ \node<2-> [at=(current page.center), fill=guixorange1, rounded
corners=10pt,
+ inner sep=10pt, opacity=.8, text opacity=1]
+ {\Large{\textbf{130 MiB $\rightarrow$ 60 MiB of binary blobs}}};
+ \node<2-> [at=(current page.south), anchor=south,
+ inner sep=2mm, outer sep=3mm, rounded corners,
+ fill=white, opacity=.7, text opacity=1, text=black]
+
{\url{https://guix.gnu.org/en/blog/2020/guix-further-reduces-bootstrap-seed-to-25/}};
+ \end{tikzpicture}
+\end{frame}
+
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Part 2: The mess we're in
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\setbeamercolor{normal text}{fg=white,bg=black}
+
+% pytorch (image with logo; first white background, then red one)
+% link to https://hpc.guix.info/blog/2021/09/whats-in-a-package/
+% dependency graph
+% pip install screenshot ("went to my colleague next door: they use pip")
+% unzip -l ...
+
+\begin{frame}[plain, fragile]
+ \Huge{curated → ``community (mis)managed''}
+\end{frame}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Part 3: The way forward
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+\begin{frame}{}
+ \begin{textblock}{12}(2, 6)
+ \tiny{
+ Copyright \copyright{} 2010, 2012--2021 Ludovic Courtès
\texttt{ludo@gnu.org}.\\[3.0mm]
+ GNU Guix logo, CC-BY-SA 4.0, \url{https://gnu.org/s/guix/graphics}.
+ \\[1.5mm]
+ Smoothie image and hexagon image \copyright{} 2019 Ricardo Wurmus,
+ CC-BY-SA 4.0.
+ \\[1.5mm]
+ Hand-drawn arrows by Freepik from flaticon.com.
+ \\[1.5mm]
+ DeLorean time machine picture \copyright{} 2014 Oto Godfrey and
+ Justin Morton, CC-BY-SA 4.0,
+
\url{https://commons.wikimedia.org/wiki/File:TeamTimeCar.com-BTTF_DeLorean_Time_Machine-OtoGodfrey.com-JMortonPhoto.com-07.jpg}.
+ \\[1.5mm]
+ Whale engraving in the public domain,
+
\url{https://publicdomainreview.org/essay/a-bestiary-of-sir-thomas-browne}
+ \\[1.5mm]
+ 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{https://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{https://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{https://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: "francais"
+% compile-command: "guix time-machine
--commit=c81457a5883ea43950eb2ecdcbb58a5b144bcd11 -- environment --ad-hoc
texlive rubber -- rubber --pdf talk.pdf"
+% End:
+
+%% LocalWords: Reproducibility