I'm sick of OpenOffice.
--- /dev/null
+*.d/disk.img
+builder.d/nohup.out
+bindings
+history
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<div id="titlepage">
+ <p class="title">
+ libguestfs, virt-builder, <br/>
+ virt-sparsify and virt-sysprep <br/>
+ </p>
+ <p><author>
+ Richard W.M. Jones <br/>
+ <small>rjones @ redhat.com</small>
+ </author></p>
+ <p>
+ <i>libguestfs is a C library for modifying <br/>
+ virtual machine disk images, <br/>
+ plus a large set of tools</i>
+ </p>
+</div>
--- /dev/null
+#!/bin/bash -
+
+source functions
+
+# History.
+remember 'emacs -nw builder.sh'
+remember 'nohup ./builder.sh'
+remember 'tail -f nohup.out'
+
+echo "Running virt-builder"
+
+cd builder.d
+terminal
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<script src="2000-virt-builder.js" type="text/javascript"></script>
+
+<style>
+p#star {
+ font-size: 56pt;
+ color: #cccc00;
+
+ position: absolute;
+ top: -16px;
+ left: 500px;
+}
+</style>
+<p id="star">★</p>
--- /dev/null
+
+// poor man's file include
+document.write('<h1>Build virtual machines in seconds</h1>')
+document.write('<pre>')
+document.write('virt-builder centos-6 \\ <br/>');
+document.write(' --format qcow2 --size 20G \\ <br/>');
+document.write(' --hostname cent6 \\ <br/>');
+document.write(' --install @XFCE,cloud-init \\ <br/>');
+document.write(' --edit \'/etc/sysconfig/keyboard: \\ <br/>');
+document.write(' s/^KEYTABLE=.*/KEYTABLE="uk"/\' \\ <br/>');
+document.write(' --firstboot-command \'yum -y update\' \\ <br/>');
+document.write('</pre>');
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<script src="2000-virt-builder.js" type="text/javascript"></script>
+
+<style>
+p#star {
+ font-size: 56pt;
+ color: #cccc00;
+
+ position: absolute;
+ top: 24px;
+ left: 32px;
+}
+</style>
+<p id="star">★</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<script src="2000-virt-builder.js" type="text/javascript"></script>
+
+<style>
+p#star {
+ font-size: 56pt;
+ color: #cccc00;
+
+ position: absolute;
+ top: 70px;
+ left: 32px;
+}
+</style>
+<p id="star">★</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<script src="2000-virt-builder.js" type="text/javascript"></script>
+
+<style>
+p#star {
+ font-size: 56pt;
+ color: #cccc00;
+
+ position: absolute;
+ top: 118px;
+ left: 32px;
+}
+</style>
+<p id="star">★</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<script src="2000-virt-builder.js" type="text/javascript"></script>
+
+<style>
+p#star {
+ font-size: 56pt;
+ color: #cccc00;
+
+ position: absolute;
+ top: 166px;
+ left: 32px;
+}
+</style>
+<p id="star">★</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<script src="2000-virt-builder.js" type="text/javascript"></script>
+
+<style>
+p#star {
+ font-size: 56pt;
+ color: #cccc00;
+
+ position: absolute;
+ top: 270px;
+ left: 32px;
+}
+</style>
+<p id="star">★</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<pre>
+$ <b>virt-builder -l</b>
+centos-6 CentOS 6.5
+cirros-0.3.1 CirrOS 0.3.1
+debian-6 Debian 6 (Squeeze)
+debian-7 Debian 7 (Wheezy)
+fedora-18 Fedora® 18
+fedora-19 Fedora® 19
+fedora-20 Fedora® 20
+scientificlinux-6 Scientific Linux 6.4
+ubuntu-10.04 Ubuntu 10.04 (Lucid)
+ubuntu-12.04 Ubuntu 12.04 (Precise)
+ubuntu-13.10 Ubuntu 13.10 (Saucy)
+</pre>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Build your own templates</h1>
+
+<p style="text-align: center;">
+<br/>
+<b>virt-install</b><br/>
+↓<br/>
+<b>virt-sysprep</b><br/>
+↓<br/>
+<b>virt-sparsify</b><br/>
+↓<br/>
+<b>xz</b><br/>
+</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>virt-sparsify</h1>
+
+<img id="cheese0" width="300" src="cheese0.svg" />
+
+<!--
+<p id="command">
+<small>↓</small><br/>
+<b>virt-sparsify f20.img f20.out</b><br/>
+<small>↓</small><br/>
+</p>
+
+<img id="cheese1" width="300" src="cheese1.svg" />
+-->
+
+<p id="content0">
+/ <br/>
+/bin <br/>
+/boot <br/>
+/dev <br/>
+/etc <br/>
+/home <br/>
+/lib
+</p>
+
+<style>
+img#cheese0 {
+ position: absolute;
+ top: 100px;
+ left: 200px;
+}
+p#content0 {
+ font-size: 14pt;
+ position: absolute;
+ top: 110px;
+ left: 250px;
+}
+p#command {
+ position: absolute;
+ top: 290px;
+ left: 200px;
+}
+img#cheese1 {
+ position: absolute;
+ top: 450px;
+ left: 200px;
+}
+</style>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>virt-sparsify</h1>
+
+<img id="cheese0" width="300" src="cheese0.svg" />
+
+<p id="command">
+<small>↓</small><br/>
+<b>virt-sparsify f20.img f20.out</b><br/>
+<small>↓</small><br/>
+</p>
+
+<img id="cheese1" width="300" src="cheese1.svg" />
+
+<p id="content0">
+/ <br/>
+/bin <br/>
+/boot <br/>
+/dev <br/>
+/etc <br/>
+/home <br/>
+/lib
+</p>
+
+<style>
+img#cheese0 {
+ position: absolute;
+ top: 100px;
+ left: 200px;
+}
+p#content0 {
+ font-size: 14pt;
+ position: absolute;
+ top: 110px;
+ left: 250px;
+}
+p#command {
+ position: absolute;
+ top: 290px;
+ left: 200px;
+}
+img#cheese1 {
+ position: absolute;
+ top: 450px;
+ left: 200px;
+}
+</style>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>Build your own templates</h1>
+
+<p style="text-align: center;">
+<br/>
+<b>virt-install</b><br/>
+↓<br/>
+<b>virt-sysprep</b><br/>
+↓<br/>
+<b>virt-sparsify</b><br/>
+↓<br/>
+<b>xz</b><br/>
+</p>
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>virt-sparsify & xz</h1>
+
+<table width="90%">
+
+<tr>
+<td></td>
+<th align="right"> Disk size </th>
+<th align="right"> Used </th>
+<th align="right"> Final </th>
+</tr>
+
+<tr>
+<td align="right"> CirrOS 0.3.1</td>
+<td align="right"> 39 </td>
+<td align="right"> 18 </td>
+<td align="right"> <b>11</b> <small>MB</small> </td>
+</tr>
+
+<tr>
+<td align="right"> Debian 7 </td>
+<td align="right"> 4096 </td>
+<td align="right"> 719 </td>
+<td align="right"> <b>142</b> <small>MB</small> </td>
+</tr>
+
+<tr>
+<td align="right"> Fedora 20 </td>
+<td align="right"> 6144 </td>
+<td align="right"> 826 </td>
+<td align="right"> <b>174</b> <small>MB</small> </td>
+</tr>
+
+<tr>
+<td align="right"> Ubuntu 13.10 </td>
+<td align="right"> 4096 </td>
+<td align="right"> 1019 </td>
+<td align="right"> <b>187</b> <small>MB</small> </td>
+</tr>
+
+</table>
--- /dev/null
+#!/bin/bash -
+
+source functions
+
+# History.
+remember 'tail -f nohup.out'
+
+#echo "How is virt-builder doing?"
+
+cd builder.d
+terminal
--- /dev/null
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+<link rel="stylesheet" href="style.css" type="text/css"/>
+<script src="code.js" type="text/javascript"></script>
+
+<h1>libguestfs.org</h1>
+
+<p>
+ <table width="90%">
+ <tr>
+ <td valign="top">
+ guestfish <br/>
+ guestmount <br/>
+ virt-alignment-scan <br/>
+ virt-builder <br/>
+ virt-cat <br/>
+ virt-copy-in <br/>
+ virt-copy-out <br/>
+ virt-df <br/>
+ virt-diff <br/>
+ virt-edit <br/>
+ </td>
+ <td valign="top">
+ virt-filesystems <br/>
+ virt-format <br/>
+ virt-inspector <br/>
+ virt-ls <br/>
+ virt-make-fs <br/>
+ virt-rescue <br/>
+ virt-resize <br/>
+ virt-sparsify <br/>
+ virt-sysprep <br/>
+ </td>
+ <td valign="top">
+ virt-tar-in <br/>
+ virt-tar-out <br/>
+ virt-win-reg <br/>
+ hivexget <br/>
+ hivexml <br/>
+ hivexregedit <br/>
+ hivexsh <br/>
+ </td>
+ </tr>
+ </table>
+</p>
--- /dev/null
+#!/bin/bash -
+
+source functions
+
+# History.
+remember 'killall builder.sh; killall virt-builder'
+remember 'virt-builder fedora-20'
+remember 'guestfish -a fedora-20.img -i'
+
+echo "libguestfs"
+sleep 1
+
+terminal
--- /dev/null
+# -*- shell-script -*-
+
+# Colour ls.
+if [ -f /etc/profile.d/colorls.sh ]; then . /etc/profile.d/colorls.sh; fi
+
+# Fancy prompt colours (see
+# https://wiki.archlinux.org/index.php/Color_Bash_Prompt)
+promptcol='\e[0;32m' ;# colour for the prompt
+commandcol='\e[1;31m' ;# colour for the typed command
+outputcol='\e[0m' ;# colour for command output
+
+export PS1="\n\[$promptcol\]\$ \[$commandcol\]"
+
+trap 'echo -ne "$outputcol"' DEBUG
+
+# Load key bindings (if any).
+bind -f $talkdir/bindings
#!/bin/bash -
-VIRT_BUILDER_SOURCE=file://$HOME/d/libguestfs/builder/website/index.asc
-export VIRT_BUILDER_SOURCE
-
guests=( $(
virt-builder -l | awk '{print $1}'
) )
--- /dev/null
+# -*- shell-script -*-
+# This creates some standard functions. See also $talkdir/bashrc
+# which runs in the same bash context as the terminal.
+
+# Place any local environment variables and settings in "local".
+if [ -f local ]; then source local; fi
+
+# Environment variables.
+export HISTFILE=$talkdir/history
+export PATH=$talkdir:$PATH
+export EDITOR="emacs -nw"
+
+# remember <command> <args ...>
+#
+# This function does two things: (1) It adds the command and arguments
+# to the shell history, so that commands can be recalled using up
+# arrow or reverse search. (2) It makes a function key recall the
+# command. The first command is assigned to F2, the second to F3 and
+# so forth.
+
+rm -f $HISTFILE
+touch $HISTFILE
+rm -f $talkdir/bindings
+touch bindings
+
+fnum=2
+keys=(- OP OQ OR OS '[15~' '[17~' '[18~' '[19~' '[20~' '[21~')
+
+remember ()
+{
+ echo "$@" >> $HISTFILE
+ echo \"\\e${keys[$fnum]}\":\"\\C-k \\C-u"$@"\" >> $talkdir/bindings
+ ((fnum++))
+}
+
+terminal ()
+{
+ chmod -w $HISTFILE
+ /bin/bash --rcfile $talkdir/bashrc "$@"
+}
--- /dev/null
+#!/bin/bash -
+# Run the talk.
+
+# Avoid GNOME keyring stupidity
+export GNOME_KEYRING_CONTROL=
+export GNOME_KEYRING_PID=
+
+# Set virt-builder environment for no-network.
+export VIRT_BUILDER_SOURCE=file:///home/rjones/d/libguestfs/builder/website/index.asc
+
+# Clean up everything.
+find -name '*~' -delete
+rm -f builder.d/*.img
+
+# No proxy.
+unset http_proxy
+unset https_proxy
+unset ftp_proxy
+
+# Get everything into the cache.
+guestfish -a /dev/null run > /dev/null &
+
+# Run techtalk.
+techtalk-pse
+++ /dev/null
-export PS1='\$ '
--- /dev/null
+/* Red Hat red is rgb(204,0,0). */
+
+body {
+ background: url(redhat.png) no-repeat;
+ background-position: 98% 0;
+ font-size: 28pt; /* For max */
+ /* font-size: 20pt; */ /* For 1024x768 */
+ /* font-family: liberation, helvetica; */
+ font-family: helvetica;
+}
+
+body td, body th { /* why?? */
+ font-size: 24pt;
+ padding-bottom: 8px;
+}
+
+h1 {
+ color: rgb(204,0,0);
+ /*font-size: 48px;*/
+ font-size: 40px;
+ top: 8;
+ left: 0;
+ border-bottom: 2px solid rgb(204,0,0);
+}
+
+b {
+ color: rgb(204,0,0);
+}
+
+div#titlepage {
+ margin-top: 100px;
+ text-align: center;
+}
+
+div#titlepage p.title {
+ color: rgb(204,0,0);
+ font-weight: bold;
+ font-size: 48px;
+}
+
+div#titlepage author {
+ font-size: 36px;
+}
+
+/* Code */
+pre.code {
+ margin-left: 1em;
+ background: #eee;
+}
+
+code {
+ color: rgb(204,0,0);
+}
+
+/* Bullet points */
+li {
+ padding-bottom: 16px;
+}
+
+/* Logo */
+img#fish {
+ position: absolute;
+ top: 128px;
+ right: 32px;
+ width: 200px;
+ /*height: 256px;*/
+}
\ No newline at end of file