Add Fedora section.
authorRichard W.M. Jones <rjones@redhat.com>
Thu, 15 Sep 2016 13:30:00 +0000 (14:30 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 15 Sep 2016 14:20:52 +0000 (15:20 +0100)
2016-redhat/.gitignore
2016-redhat/3000-fedora-demo.term [new file with mode: 0755]
2016-redhat/3100-fedora-aims.html [new file with mode: 0644]
2016-redhat/3110-fedora-scope.html [new file with mode: 0644]
2016-redhat/3120-fedora-stages.html [new file with mode: 0644]
2016-redhat/functions [new file with mode: 0644]
2016-redhat/notes.txt
2016-redhat/run [new file with mode: 0755]

index 317d723..8792c02 100644 (file)
@@ -2,3 +2,8 @@
 
 /bindings
 /history
+/stage3-disk.img
+/stage3-disk.img.xz
+/stage4-disk.img
+/stage4-disk.img.xz
+/vmlinux
diff --git a/2016-redhat/3000-fedora-demo.term b/2016-redhat/3000-fedora-demo.term
new file mode 100755 (executable)
index 0000000..3229b52
--- /dev/null
@@ -0,0 +1,11 @@
+#!/bin/bash -
+
+source functions
+
+# History.
+
+remember 'qemu-system-riscv -m 4G -kernel /usr/bin/bbl -append vmlinux -drive file=stage3-disk.img,format=raw -nographic'
+
+echo "Running Fedora/RISC-V"
+
+terminal
diff --git a/2016-redhat/3100-fedora-aims.html b/2016-redhat/3100-fedora-aims.html
new file mode 100644 (file)
index 0000000..f0f8811
--- /dev/null
@@ -0,0 +1,11 @@
+<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>Fedora: Aims</h1>
+
+<ul>
+<li> Downloadable Fedora disk images
+<li> Repository of RPMs and SRPMs
+<li> Working command line environment with compilers, editors, etc.
+</ul>
diff --git a/2016-redhat/3110-fedora-scope.html b/2016-redhat/3110-fedora-scope.html
new file mode 100644 (file)
index 0000000..17880c7
--- /dev/null
@@ -0,0 +1,14 @@
+<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>Fedora: Scope</h1>
+
+<ul>
+<li> 64-bit only (RV64G)
+<li> Only @Core packages, and a whitelist of compilers, editors, utilities
+<li> No X
+<li> No Anaconda
+<li> No Koji
+<li> No grub or UEFI
+</ul>
diff --git a/2016-redhat/3120-fedora-stages.html b/2016-redhat/3120-fedora-stages.html
new file mode 100644 (file)
index 0000000..c52dcab
--- /dev/null
@@ -0,0 +1,48 @@
+<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>Fedora: Bootstrap stages</h1>
+
+<style>
+ol {
+  list-style-type: none;
+  counter-reset: item;
+  margin: 0;
+  padding: 0;
+}
+
+ol > li {
+  display: table;
+  counter-increment: item;
+  margin-bottom: 0.6em;
+}
+
+ol > li:before {
+  content: "Stage " counters(item, ".") ". ";
+  display: table-cell;
+  padding-right: 0.6em;    
+}
+
+li ol > li {
+  margin: 0;
+}
+
+li ol > li:before {
+  content: counters(item, ".") " ";
+}
+</style>
+
+<ol>
+<li> Emulators
+<li> Cross-compiled tool chain
+<li> Cross-compile enough packages so we can run rpmbuild &amp; GCC <br/>
+  Build RPMs from Fedora SRPMs
+<li> 
+  <ol>
+    <li> Clean disk image built entirely from RPMs <b>☜</b>
+    <li> Auto-build packages from Fedora Koji
+    <li> Get everything upstream <br/>
+         Spec file changes into Fedora
+  </ol>
+</ul>
diff --git a/2016-redhat/functions b/2016-redhat/functions
new file mode 100644 (file)
index 0000000..7baaed0
--- /dev/null
@@ -0,0 +1,40 @@
+# -*- 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 "$@"
+}
index 5ea3c55..f169c6d 100644 (file)
@@ -17,6 +17,7 @@ compressed instructions extension
 32 general purpose registers
 32 floating point registers (extension)
 zero register
+always little-endian
 influenced by MIPS
 proven to be patent-free
 
@@ -65,6 +66,22 @@ Missing bits:
 
 Fedora
 
+Demo
+
+Aims
+  Explain why: current software is crap
+  Busybox
+  Almost like an embedded system
+
+Scope
+
+Four stage bootstrap process
+  Stage 3 is a "hack job" containing a mix of cross-compiled
+  packages built on the host, layered with "--nodeps"-installed RPMs on top.
+
+  Stage 4 is the clean image built entirely from RPMs, with all
+  dependencies satisfied and all files controlled by RPM.
+
 ----------------------------------------------------------------------
 
 Software development and the community
diff --git a/2016-redhat/run b/2016-redhat/run
new file mode 100755 (executable)
index 0000000..4ad069a
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash -
+# Run the talk.
+
+set -e
+
+# Avoid GNOME keyring stupidity
+export GNOME_KEYRING_CONTROL=
+export GNOME_KEYRING_PID=
+
+# No proxy.
+#unset http_proxy
+#unset https_proxy
+#unset ftp_proxy
+
+# Uncompress from the pristine image.
+unxz -k stage3-disk.img.xz
+
+# Run techtalk.
+#techtalk-pse
+~/d/techtalk-pse/techtalk-pse