aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Trepl (Moody) <thomas@linuxfromscratch.org>2022-08-07 18:00:23 +0200
committerThomas Trepl (Moody) <thomas@linuxfromscratch.org>2022-08-07 18:00:23 +0200
commit193913e25def32a96d04baaec3671fb4b3b31a6c (patch)
tree5566c98f70e7fa59b1c58fc0904f7ff8e965825e
parentf628276ff7d33aa1deac280b81c773d508f39b42 (diff)
First commit to add S6 as init system (like systemd)
-rw-r--r--Makefile14
-rw-r--r--chapter01/whatsnew.xml2
-rw-r--r--chapter03/packages.xml50
-rw-r--r--chapter07/createfiles.xml6
-rw-r--r--chapter08/chapter08.xml9
-rw-r--r--chapter08/eudev.xml4
-rw-r--r--chapter08/execline.xml104
-rw-r--r--chapter08/man-db.xml4
-rw-r--r--chapter08/meson.xml2
-rw-r--r--chapter08/procps.xml2
-rw-r--r--chapter08/s6-init.xml104
-rw-r--r--chapter08/s6-rc.xml103
-rw-r--r--chapter08/s6.xml105
-rw-r--r--chapter08/skalibs.xml103
-rw-r--r--chapter08/util-linux.xml2
-rw-r--r--chapter09/chapter09.xml5
-rw-r--r--chapter09/introduction6.xml91
-rw-r--r--chapter09/network6.xml247
-rw-r--r--chapter09/profile.xml2
-rw-r--r--chapter09/symlinks.xml4
-rw-r--r--chapter09/udev.xml4
-rw-r--r--chapter09/usage6.xml16
-rw-r--r--chapter10/fstab.xml2
-rw-r--r--chapter10/kernel.xml4
-rw-r--r--chapter11/reboot.xml2
-rw-r--r--general.ent15
-rwxr-xr-xgit-version.sh15
-rw-r--r--packages.ent50
-rw-r--r--prologue/why.xml2
29 files changed, 1046 insertions, 27 deletions
diff --git a/Makefile b/Makefile
index bd6884a66..c2dfc109a 100644
--- a/Makefile
+++ b/Makefile
@@ -18,20 +18,32 @@ endif
ifneq ($(REV), sysv)
ifneq ($(REV), systemd)
- $(error REV must be 'sysv' (default) or 'systemd'.)
+ ifneq ($(REV), s6)
+ $(error REV must be 'sysv' (default), 'systemd' or 's6'.)
+ endif
endif
endif
ifeq ($(REV), sysv)
+ # SysV
BASEDIR ?= ~/lfs-book
PDF_OUTPUT ?= LFS-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-BOOK.html
DUMPDIR ?= ~/cross-lfs-commands
else
+ifeq ($(REV), systemd)
+ # systemd
BASEDIR ?= ~/lfs-systemd
PDF_OUTPUT ?= LFS-SYSD-BOOK.pdf
NOCHUNKS_OUTPUT ?= LFS-SYSD-BOOK.html
DUMPDIR ?= ~/lfs-sysd-commands
+else
+ # S6
+ BASEDIR ?= ~/lfs-s6
+ PDF_OUTPUT ?= LFS-S6-BOOK.pdf
+ NOCHUNKS_OUTPUT ?= LFS-S6-BOOK.html
+ DUMPDIR ?= ~/lfs-s6-commands
+endif
endif
book: validate profile-html
diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml
index 66affa2dd..f0c82a0de 100644
--- a/chapter01/whatsnew.xml
+++ b/chapter01/whatsnew.xml
@@ -71,7 +71,7 @@
<listitem>
<para>E2fsprogs-&e2fsprogs-version;</para>
</listitem>
- <!--<listitem revision="sysv">
+ <!--<listitem revision="sysv,s6">
<para>Eudev-&eudev-version;</para>
</listitem>-->
<listitem>
diff --git a/chapter03/packages.xml b/chapter03/packages.xml
index aa927e60a..4edc5950c 100644
--- a/chapter03/packages.xml
+++ b/chapter03/packages.xml
@@ -174,7 +174,7 @@
</listitem>
</varlistentry>
- <varlistentry revision="sysv">
+ <varlistentry revision="sysv,s6">
<term>Eudev (&eudev-version;) - <token>&eudev-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&eudev-url;"/></para>
@@ -182,6 +182,15 @@
</listitem>
</varlistentry>
+ <varlistentry revision="s6">
+ <term>execline (&execline-version;) - <token>&execline-size;</token>:</term>
+ <listitem>
+ <para>Home page: <ulink url="&execline-home;"/></para>
+ <para>Download: <ulink url="&execline-url;"/></para>
+ <para>MD5 sum: <literal>&execline-md5;</literal></para>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term>Expat (&expat-version;) - <token>&expat-size;</token>:</term>
<listitem>
@@ -656,6 +665,42 @@
</listitem>
</varlistentry>
+ <varlistentry revision="s6">
+ <term>skalibs (&skalibs-version;) - <token>&skalibs-size;</token>:</term>
+ <listitem>
+ <para>Home page: <ulink url="&skalibs-home;"/></para>
+ <para>Download: <ulink url="&skalibs-url;"/></para>
+ <para>MD5 sum: <literal>&skalibs-md5;</literal></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry revision="s6">
+ <term>S6 (&s6-version;) - <token>&s6-size;</token>:</term>
+ <listitem>
+ <para>Home page: <ulink url="&s6-home;"/></para>
+ <para>Download: <ulink url="&s6-url;"/></para>
+ <para>MD5 sum: <literal>&s6-md5;</literal></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry revision="s6">
+ <term>S6-rc (&s6-rc-version;) - <token>&s6-rc-size;</token>:</term>
+ <listitem>
+ <para>Home page: <ulink url="&s6-rc-home;"/></para>
+ <para>Download: <ulink url="&s6-rc-url;"/></para>
+ <para>MD5 sum: <literal>&s6-rc-md5;</literal></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry revision="s6">
+ <term>S6-linux-init (&s6-init-version;) - <token>&s6-init-size;</token>:</term>
+ <listitem>
+ <para>Home page: <ulink url="&s6-init-home;"/></para>
+ <para>Download: <ulink url="&s6-init-url;"/></para>
+ <para>MD5 sum: <literal>&s6-init-md5;</literal></para>
+ </listitem>
+ </varlistentry>
+
<varlistentry revision="sysv">
<term>Sysklogd (&sysklogd-version;) - <token>&sysklogd-size;</token>:</term>
<listitem>
@@ -689,7 +734,6 @@
</listitem>
</varlistentry>
-
<varlistentry revision="sysv">
<term>Sysvinit (&sysvinit-version;) - <token>&sysvinit-size;</token>:</term>
<listitem>
@@ -743,7 +787,7 @@
</listitem>
</varlistentry>
- <varlistentry revision="sysv">
+ <varlistentry revision="sysv,s6">
<term>Udev-lfs Tarball (&udev-lfs-version;) - <token>&udev-lfs-size;</token>:</term>
<listitem>
<para>Download: <ulink url="&udev-lfs-url;"/></para>
diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml
index eda30ed2e..7ad90a976 100644
--- a/chapter07/createfiles.xml
+++ b/chapter07/createfiles.xml
@@ -60,7 +60,7 @@ EOF</userinput></screen>
<para>Create the <filename>/etc/passwd</filename> file by running the following
command:</para>
-<screen revision="sysv"><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
+<screen revision="sysv,s6"><userinput>cat &gt; /etc/passwd &lt;&lt; "EOF"
<literal>root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/usr/bin/false
daemon:x:6:6:Daemon User:/dev/null:/usr/bin/false
@@ -92,7 +92,7 @@ EOF</userinput></screen>
<para>Create the <filename>/etc/group</filename> file by running the following
command:</para>
-<screen revision="sysv"><userinput>cat &gt; /etc/group &lt;&lt; "EOF"
+<screen revision="sysv,s6"><userinput>cat &gt; /etc/group &lt;&lt; "EOF"
<literal>root:x:0:
bin:x:1:daemon
sys:x:2:
@@ -168,7 +168,7 @@ EOF</userinput></screen>
with a GID of 1 be present. The GID of 5 is widely used for
<systemitem class="groupname">tty</systemitem> group, and the number 5 is
also used in <phrase revision="systemd">systemd</phrase>
- <phrase revision="sysv"><filename>/etc/fstab</filename></phrase> for the
+ <phrase revision="sysv,s6"><filename>/etc/fstab</filename></phrase> for the
<systemitem class="filesystem">devpts</systemitem> filesystem.
All other group names and GIDs can be chosen freely by the system
administrator since well-written programs do not depend on GID numbers,
diff --git a/chapter08/chapter08.xml b/chapter08/chapter08.xml
index 902d1bf48..fde5897a1 100644
--- a/chapter08/chapter08.xml
+++ b/chapter08/chapter08.xml
@@ -96,14 +96,19 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="man-db.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="procps.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="util-linux.xml"/>
-
- <!-- Both sysv and systemd builds -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="e2fsprogs.xml"/>
<!-- sysv only -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sysklogd.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="sysvinit.xml"/>
+ <!-- s6 only -->
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="skalibs.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="execline.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="s6.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="s6-rc.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="s6-init.xml"/>
+
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="aboutdebug.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stripping.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="cleanup.xml"/>
diff --git a/chapter08/eudev.xml b/chapter08/eudev.xml
index efaba9d30..59061f60b 100644
--- a/chapter08/eudev.xml
+++ b/chapter08/eudev.xml
@@ -5,7 +5,7 @@
%general-entities;
]>
-<sect1 id="ch-system-eudev" role="wrap" revision="sysv">
+<sect1 id="ch-system-eudev" role="wrap" revision="sysv,s6">
<?dbhtml filename="eudev.html"?>
<sect1info condition="script">
@@ -133,7 +133,7 @@ make -f &udev-lfs-version;/Makefile.lfs install</userinput></screen>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<?dbhtml list-presentation="table"?>
- <varlistentry id="udevadm" revision="sysv">
+ <varlistentry id="udevadm" revision="sysv,s6">
<term><command>udevadm</command></term>
<listitem>
<para>Generic udev administration tool: controls the udevd daemon,
diff --git a/chapter08/execline.xml b/chapter08/execline.xml
new file mode 100644
index 000000000..8800e7beb
--- /dev/null
+++ b/chapter08/execline.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+
+<sect1 id="ch-system-execline" role="wrap" revision="s6">
+ <?dbhtml filename="execline.html"?>
+
+ <sect1info condition="script">
+ <productname>execline</productname>
+ <productnumber>&execline-version;</productnumber>
+ <address>&execline-url;</address>
+ </sect1info>
+
+ <title>execline-&execline-version;</title>
+
+ <indexterm zone="ch-system-execline">
+ <primary sortas="a-execline">execline</primary>
+ </indexterm>
+
+ <sect2 role="package">
+ <title/>
+
+ <para>The execline package is a (non-interactive) scripting
+ language, like sh - but its syntax is quite different from
+ a traditional shell syntax. Used internally by the S6 ecosystem.</para>
+
+ <segmentedlist>
+ <segtitle>&buildtime;</segtitle>
+ <segtitle>&diskspace;</segtitle>
+
+ <seglistitem>
+ <seg>&execline-fin-sbu;</seg>
+ <seg>&execline-fin-du;</seg>
+ </seglistitem>
+ </segmentedlist>
+ </sect2>
+
+ <sect2 role="installation">
+ <title>Installation of execline</title>
+
+ <para>Prepare execline for compilation:</para>
+
+<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
+
+<!--
+ <variablelist>
+ <title>The meaning of the configure options:</title>
+
+ <varlistentry>
+ <term><parameter>- -blah=blubb</parameter></term>
+ <listitem>
+ <para>blah blah</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+-->
+
+ <para>Compile the package:</para>
+
+<screen><userinput remap="make">make</userinput></screen>
+
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ </sect2>
+
+ <sect2 id="contents-execline" role="content">
+ <title>Contents of execline</title>
+
+ <segmentedlist>
+ <segtitle>Installed programs</segtitle>
+ <segtitle>Installed libraries</segtitle>
+ <segtitle>Installed directories</segtitle>
+
+ <seglistitem>
+ <seg>execline-x, execline-y, execline-z, ...</seg>
+ <seg>libx, liby, libz ...</seg>
+ <seg>dirx, diry, dirz ...</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ <variablelist>
+ <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+ <?dbfo list-presentation="list"?>
+ <?dbhtml list-presentation="table"?>
+
+ <varlistentry id="execline-x">
+ <term><command>execline-x</command></term>
+ <listitem>
+ <para>Is used to blah blah</para>
+ <indexterm zone="ch-system-execline execline-x">
+ <primary sortas="b-execline-x">execline-x</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </sect2>
+
+</sect1>
diff --git a/chapter08/man-db.xml b/chapter08/man-db.xml
index 523962c9a..f3c90f7f9 100644
--- a/chapter08/man-db.xml
+++ b/chapter08/man-db.xml
@@ -52,7 +52,7 @@
--with-vgrind=/usr/bin/vgrind \
--with-grap=/usr/bin/grap</userinput></screen>
-<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
+<screen revision="sysv,s6"><userinput remap="configure">./configure --prefix=/usr \
--docdir=/usr/share/doc/man-db-&man-db-version; \
--sysconfdir=/etc \
--disable-setuid \
@@ -97,7 +97,7 @@
</listitem>
</varlistentry>
- <varlistentry revision="sysv">
+ <varlistentry revision="sysv,s6">
<term><parameter>--with-systemd...</parameter></term>
<listitem>
<para>These parameters prevent installing unneeded systemd
diff --git a/chapter08/meson.xml b/chapter08/meson.xml
index d2132b5a1..12a43fd08 100644
--- a/chapter08/meson.xml
+++ b/chapter08/meson.xml
@@ -35,7 +35,7 @@
</seglistitem>
</segmentedlist>
- <tip revision="sysv">
+ <tip revision="sysv,s6">
<para>This section is not strictly required for LFS if not using
systemd. On the other hand, meson/ninja is a powerful build system,
which is expected to be used more and more often. It is required for
diff --git a/chapter08/procps.xml b/chapter08/procps.xml
index a78f7fa90..ed1b6a086 100644
--- a/chapter08/procps.xml
+++ b/chapter08/procps.xml
@@ -42,7 +42,7 @@
<para>Prepare procps-ng for compilation:</para>
-<screen revision="sysv"><userinput remap="configure">./configure --prefix=/usr \
+<screen revision="sysv,s6"><userinput remap="configure">./configure --prefix=/usr \
--docdir=/usr/share/doc/procps-ng-&procps-ng-version; \
--disable-static \
--disable-kill</userinput></screen>
diff --git a/chapter08/s6-init.xml b/chapter08/s6-init.xml
new file mode 100644
index 000000000..c79b5b1f9
--- /dev/null
+++ b/chapter08/s6-init.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+
+<sect1 id="ch-system-s6-init" role="wrap" revision="s6">
+ <?dbhtml filename="s6-init.html"?>
+
+ <sect1info condition="script">
+ <productname>s6-init</productname>
+ <productnumber>&s6-init-version;</productnumber>
+ <address>&s6-init-url;</address>
+ </sect1info>
+
+ <title>s6-init-&s6-init-version;</title>
+
+ <indexterm zone="ch-system-s6-init">
+ <primary sortas="a-s6-init">s6-init</primary>
+ </indexterm>
+
+ <sect2 role="package">
+ <title/>
+
+ <para>s6-linux-init is a set of minimalistic tools used to
+ create a s6-based init system, including a /sbin/init binary,
+ on a Linux kernel.</para>
+
+ <segmentedlist>
+ <segtitle>&buildtime;</segtitle>
+ <segtitle>&diskspace;</segtitle>
+
+ <seglistitem>
+ <seg>&s6-init-fin-sbu;</seg>
+ <seg>&s6-init-fin-du;</seg>
+ </seglistitem>
+ </segmentedlist>
+ </sect2>
+
+ <sect2 role="installation">
+ <title>Installation of s6-linux-init</title>
+
+ <para>Prepare s6-init for compilation:</para>
+
+<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
+
+<!--
+ <variablelist>
+ <title>The meaning of the configure options:</title>
+
+ <varlistentry>
+ <term><parameter>- -blah=blubb</parameter></term>
+ <listitem>
+ <para>blah blah</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+-->
+
+ <para>Compile the package:</para>
+
+<screen><userinput remap="make">make</userinput></screen>
+
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ </sect2>
+
+ <sect2 id="contents-s6-init" role="content">
+ <title>Contents of s6-init</title>
+
+ <segmentedlist>
+ <segtitle>Installed programs</segtitle>
+ <segtitle>Installed libraries</segtitle>
+ <segtitle>Installed directories</segtitle>
+
+ <seglistitem>
+ <seg>s6-init-x, s6-init-y, s6-init-z, ...</seg>
+ <seg>libx, liby, libz ...</seg>
+ <seg>dirx, diry, dirz ...</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ <variablelist>
+ <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+ <?dbfo list-presentation="list"?>
+ <?dbhtml list-presentation="table"?>
+
+ <varlistentry id="s6-init-x">
+ <term><command>s6-init-x</command></term>
+ <listitem>
+ <para>Is used to blah blah</para>
+ <indexterm zone="ch-system-s6-init s6-init-x">
+ <primary sortas="b-s6-init-x">s6-init-x</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </sect2>
+
+</sect1>
diff --git a/chapter08/s6-rc.xml b/chapter08/s6-rc.xml
new file mode 100644
index 000000000..82f5214a1
--- /dev/null
+++ b/chapter08/s6-rc.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+
+<sect1 id="ch-system-s6-rc" role="wrap" revision="s6">
+ <?dbhtml filename="s6-rc.html"?>
+
+ <sect1info condition="script">
+ <productname>s6-rc</productname>
+ <productnumber>&s6-rc-version;</productnumber>
+ <address>&s6-rc-url;</address>
+ </sect1info>
+
+ <title>s6-rc-&s6-rc-version;</title>
+
+ <indexterm zone="ch-system-s6-rc">
+ <primary sortas="a-s6-rc">s6-rc</primary>
+ </indexterm>
+
+ <sect2 role="package">
+ <title/>
+
+ <para>The s6-rc package contains library routines for the
+ S6 init system.</para>
+
+ <segmentedlist>
+ <segtitle>&buildtime;</segtitle>
+ <segtitle>&diskspace;</segtitle>
+
+ <seglistitem>
+ <seg>&s6-rc-fin-sbu;</seg>
+ <seg>&s6-rc-fin-du;</seg>
+ </seglistitem>
+ </segmentedlist>
+ </sect2>
+
+ <sect2 role="installation">
+ <title>Installation of s6-rc</title>
+
+ <para>Prepare s6-rc for compilation:</para>
+
+<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
+
+<!--
+ <variablelist>
+ <title>The meaning of the configure options:</title>
+
+ <varlistentry>
+ <term><parameter>- -blah=blubb</parameter></term>
+ <listitem>
+ <para>blah blah</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+-->
+
+ <para>Compile the package:</para>
+
+<screen><userinput remap="make">make</userinput></screen>
+
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ </sect2>
+
+ <sect2 id="contents-s6-rc" role="content">
+ <title>Contents of s6-rc</title>
+
+ <segmentedlist>
+ <segtitle>Installed programs</segtitle>
+ <segtitle>Installed libraries</segtitle>
+ <segtitle>Installed directories</segtitle>
+
+ <seglistitem>
+ <seg>s6-rc-x, s6-rc-y, s6-rc-z, ...</seg>
+ <seg>libx, liby, libz ...</seg>
+ <seg>dirx, diry, dirz ...</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ <variablelist>
+ <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+ <?dbfo list-presentation="list"?>
+ <?dbhtml list-presentation="table"?>
+
+ <varlistentry id="s6-rc-x">
+ <term><command>s6-rc-x</command></term>
+ <listitem>
+ <para>Is used to blah blah</para>
+ <indexterm zone="ch-system-s6-rc s6-rc-x">
+ <primary sortas="b-s6-rc-x">s6-rc-x</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </sect2>
+
+</sect1>
diff --git a/chapter08/s6.xml b/chapter08/s6.xml
new file mode 100644
index 000000000..cdc3de7c0
--- /dev/null
+++ b/chapter08/s6.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+
+<sect1 id="ch-system-s6" role="wrap" revision="s6">
+ <?dbhtml filename="s6.html"?>
+
+ <sect1info condition="script">
+ <productname>s6</productname>
+ <productnumber>&s6-version;</productnumber>
+ <address>&s6-url;</address>
+ </sect1info>
+
+ <title>S6-&s6-version;</title>
+
+ <indexterm zone="ch-system-s6">
+ <primary sortas="a-s6">s6</primary>
+ </indexterm>
+
+ <sect2 role="package">
+ <title/>
+
+ <para>The s6 package contains programs for controlling the startup,
+ running, and shutdown of the system.</para>
+
+ <segmentedlist>
+ <segtitle>&buildtime;</segtitle>
+ <segtitle>&diskspace;</segtitle>
+
+ <seglistitem>
+ <seg>&s6-fin-sbu;</seg>
+ <seg>&s6-fin-du;</seg>
+ </seglistitem>
+ </segmentedlist>
+ </sect2>
+
+ <sect2 role="installation">
+ <title>Installation of s6</title>
+
+ <para>Prepare s6 for compilation:</para>
+
+<screen><userinput remap="configure">./configure --prefix=/usr \
+ --datadir=/etc \
+ --docdir=/usr/share/doc/s6-&s6-version;</userinput></screen>
+
+<!--
+ <variablelist>
+ <title>The meaning of the configure options:</title>
+
+ <varlistentry>
+ <term><parameter>- -blah=blubb</parameter></term>
+ <listitem>
+ <para>blah blah</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+-->
+
+ <para>Compile the package:</para>
+
+<screen><userinput remap="make">make</userinput></screen>
+
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ </sect2>
+
+ <sect2 id="contents-s6" role="content">
+ <title>Contents of s6</title>
+
+ <segmentedlist>
+ <segtitle>Installed programs</segtitle>
+ <segtitle>Installed libraries</segtitle>
+ <segtitle>Installed directories</segtitle>
+
+ <seglistitem>
+ <seg>s6-x, s6-y, s6-z, ...</seg>
+ <seg>libx, liby, libz ...</seg>
+ <seg>dirx, diry, dirz ...</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ <variablelist>
+ <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+ <?dbfo list-presentation="list"?>
+ <?dbhtml list-presentation="table"?>
+
+ <varlistentry id="s6-x">
+ <term><command>s6-x</command></term>
+ <listitem>
+ <para>Is used to blah blah</para>
+ <indexterm zone="ch-system-s6 s6-x">
+ <primary sortas="b-s6-x">s6-x</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </sect2>
+
+</sect1>
diff --git a/chapter08/skalibs.xml b/chapter08/skalibs.xml
new file mode 100644
index 000000000..43b0a48ad
--- /dev/null
+++ b/chapter08/skalibs.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+
+<sect1 id="ch-system-skalibs" role="wrap" revision="s6">
+ <?dbhtml filename="skalibs.html"?>
+
+ <sect1info condition="script">
+ <productname>skalibs</productname>
+ <productnumber>&skalibs-version;</productnumber>
+ <address>&skalibs-url;</address>
+ </sect1info>
+
+ <title>skalibs-&skalibs-version;</title>
+
+ <indexterm zone="ch-system-skalibs">
+ <primary sortas="a-skalibs">skalibs</primary>
+ </indexterm>
+
+ <sect2 role="package">
+ <title/>
+
+ <para>The skalibs package contains library routines for the
+ S6 init system.</para>
+
+ <segmentedlist>
+ <segtitle>&buildtime;</segtitle>
+ <segtitle>&diskspace;</segtitle>
+
+ <seglistitem>
+ <seg>&skalibs-fin-sbu;</seg>
+ <seg>&skalibs-fin-du;</seg>
+ </seglistitem>
+ </segmentedlist>
+ </sect2>
+
+ <sect2 role="installation">
+ <title>Installation of skalibs</title>
+
+ <para>Prepare skalibs for compilation:</para>
+
+<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>
+
+<!--
+ <variablelist>
+ <title>The meaning of the configure options:</title>
+
+ <varlistentry>
+ <term><parameter>- -blah=blubb</parameter></term>
+ <listitem>
+ <para>blah blah</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+-->
+
+ <para>Compile the package:</para>
+
+<screen><userinput remap="make">make</userinput></screen>
+
+ <para>Install the package:</para>
+
+<screen><userinput remap="install">make install</userinput></screen>
+
+ </sect2>
+
+ <sect2 id="contents-skalibs" role="content">
+ <title>Contents of skalibs</title>
+
+ <segmentedlist>
+ <segtitle>Installed programs</segtitle>
+ <segtitle>Installed libraries</segtitle>
+ <segtitle>Installed directories</segtitle>
+
+ <seglistitem>
+ <seg>skalibs-x, skalibs-y, skalibs-z, ...</seg>
+ <seg>libx, liby, libz ...</seg>
+ <seg>dirx, diry, dirz ...</seg>
+ </seglistitem>
+ </segmentedlist>
+
+ <variablelist>
+ <bridgehead renderas="sect3">Short Descriptions</bridgehead>
+ <?dbfo list-presentation="list"?>
+ <?dbhtml list-presentation="table"?>
+
+ <varlistentry id="skalibs-x">
+ <term><command>skalibs-x</command></term>
+ <listitem>
+ <para>Is used to blah blah</para>
+ <indexterm zone="ch-system-skalibs skalibs-x">
+ <primary sortas="b-skalibs-x">skalibs-x</primary>
+ </indexterm>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </sect2>
+
+</sect1>
diff --git a/chapter08/util-linux.xml b/chapter08/util-linux.xml
index d659666db..ab57e0a8f 100644
--- a/chapter08/util-linux.xml
+++ b/chapter08/util-linux.xml
@@ -44,7 +44,7 @@
<para>Prepare Util-linux for compilation:</para>
-<screen revision="sysv"><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
+<screen revision="sysv,s6"><userinput remap="configure">./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
--bindir=/usr/bin \
--libdir=/usr/lib \
--sbindir=/usr/sbin \
diff --git a/chapter09/chapter09.xml b/chapter09/chapter09.xml
index 499e66a6f..d94612401 100644
--- a/chapter09/chapter09.xml
+++ b/chapter09/chapter09.xml
@@ -19,6 +19,11 @@
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introductiond.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="networkd.xml"/>
+ <!-- s6 -->
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction6.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="network6.xml"/>
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="usage6.xml"/>
+
<!-- common -->
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="udev.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="symlinks.xml"/>
diff --git a/chapter09/introduction6.xml b/chapter09/introduction6.xml
new file mode 100644
index 000000000..fcfa85837
--- /dev/null
+++ b/chapter09/introduction6.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+
+<sect1 id="ch-config-introduction" revision="s6">
+ <?dbhtml filename="introduction.html"?>
+
+ <title>Introduction</title>
+
+ <para>Booting a Linux system involves several tasks. The process must
+ mount both virtual and real file systems, initialize devices, activate swap,
+ check file systems for integrity, mount any swap partitions or files, set
+ the system clock, bring up networking, start any daemons required by the
+ system, and accomplish any other custom tasks needed by the user. This
+ process must be organized to ensure the tasks are performed in the correct
+ order but, at the same time, be executed as fast as possible.</para>
+
+ <sect2 id='sysv-desc'>
+ <title>System V</title>
+
+ <para>System V is the classic boot process that has been used in Unix and
+ Unix-like systems such as Linux since about 1983. It consists of a small
+ program, <command>init</command>, that sets up basic programs such as
+ <command>login</command> (via getty) and runs a script. This script,
+ usually named <command>rc</command>, controls the execution of a set of
+ additional scripts that perform the tasks required to initialize the
+ system.</para>
+
+ <para>The <command>init</command> program is controlled by the
+ <filename>/etc/inittab</filename> file and is organized into run levels that
+ can be run by the user. In LFS, they are used as follows:</para>
+
+<literallayout>0 &mdash; halt
+1 &mdash; Single user mode
+2 &mdash; User definable
+3 &mdash; Full multiuser mode
+4 &mdash; User definable
+5 &mdash; Full multiuser mode with display manager
+6 &mdash; reboot</literallayout>
+
+ <para>The usual default run level is 3 or 5.</para>
+
+ <bridgehead renderas="sect3">Advantages</bridgehead>
+
+ <itemizedlist>
+ <listitem>
+ <para>Established, well understood system.</para>
+ </listitem>
+
+ <listitem>
+ <para>Easy to customize.</para>
+ </listitem>
+
+ </itemizedlist>
+
+
+ <bridgehead renderas="sect3">Disadvantages</bridgehead>
+
+ <itemizedlist>
+ <listitem>
+ <para>May be slower to boot. A medium speed base LFS system
+ takes 8-12 seconds where the boot time is measured from the
+ first kernel message to the login prompt. Network
+ connectivity is typically established about 2 seconds
+ after the login prompt.</para>
+ </listitem>
+
+ <listitem>
+ <para>Serial processing of boot tasks. This is related to the previous
+ point. A delay in any process such as a file system check, will
+ delay the entire boot process.</para>
+ </listitem>
+
+ <listitem>
+ <para>Does not directly support advanced features like
+ control groups (cgroups), and per-user fair share scheduling.</para>
+ </listitem>
+
+ <listitem>
+ <para>Adding scripts requires manual, static sequencing decisions.</para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+
+</sect1>
+
diff --git a/chapter09/network6.xml b/chapter09/network6.xml
new file mode 100644
index 000000000..291abb95e
--- /dev/null
+++ b/chapter09/network6.xml
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ %general-entities;
+]>
+
+<sect1 id="ch-config-network" revision="s6">
+ <?dbhtml filename="network.html"?>
+
+ <title>General Network Configuration</title>
+
+ <indexterm zone="ch-config-network">
+ <primary sortas="d-network">network</primary>
+ <secondary>configuring</secondary></indexterm>
+
+ <sect2>
+ <title>Creating Network Interface Configuration Files</title>
+
+ <para>Which interfaces are brought up and down by the network script
+ usually depends on the files in <filename
+ class="directory">/etc/sysconfig/</filename>. This directory should
+ contain a file for each interface to be configured, such as
+ <filename>ifconfig.xyz</filename>, where <quote>xyz</quote> should describe
+ the network card. The interface name (e.g. eth0) is usually appropriate.
+ Inside this file are attributes to this interface, such as its IP
+ address(es), subnet masks, and so forth. It is necessary that the stem of
+ the filename be <emphasis>ifconfig</emphasis>.</para>
+
+ <note>
+ <para>If the procedure in the previous section was not used, udev
+ will assign network card interface names based on system physical
+ characteristics such as enp2s1. If you are not sure what your interface
+ name is, you can always run <command>ip link</command> or <command>ls
+ /sys/class/net</command> after you have booted your system.
+ </para>
+
+ <para>The interface names depend on the implementation and
+ configuration of the udev daemon running on the system. The udev
+ daemon for LFS (installed in <xref linkend="ch-system-eudev"/>) will
+ not run until the LFS system is booted. So it's unreliable to
+ determine the interface names being used in LFS system by running
+ those commands on the host distro,
+ <emphasis>even though in the chroot environment</emphasis>.</para>
+ </note>
+
+ <para>The following command creates a sample file for the
+ <emphasis>eth0</emphasis> device with a static IP address:</para>
+<!-- jhalfs relies on the values for IFACE, IP, etc. If you want to change
+ them, please inform the jhalfs maintainer(s). -->
+<screen><userinput>cd /etc/sysconfig/
+cat &gt; ifconfig.<replaceable>eth0</replaceable> &lt;&lt; "EOF"
+<literal>ONBOOT=<replaceable>yes</replaceable>
+IFACE=<replaceable>eth0</replaceable>
+SERVICE=<replaceable>ipv4-static</replaceable>
+IP=<replaceable>192.168.1.2</replaceable>
+GATEWAY=<replaceable>192.168.1.1</replaceable>
+PREFIX=<replaceable>24</replaceable>
+BROADCAST=<replaceable>192.168.1.255</replaceable></literal>
+EOF</userinput></screen>
+
+ <para>The values in italics must be changed in every file to match
+ the proper setup.</para>
+
+ <para>If the <envar>ONBOOT</envar> variable is set to <quote>yes</quote> the
+ System V network script will bring up the Network Interface Card (NIC) during
+ the system boot process. If set to anything but <quote>yes</quote> the NIC
+ will be ignored by the network script and not be automatically brought up.
+ The interface can be manually started or stopped with the
+ <command>ifup</command> and <command>ifdown</command> commands.</para>
+
+ <para>The <envar>IFACE</envar> variable defines the interface name,
+ for example, eth0. It is required for all network device configuration
+ files. The filename extension must match this value.</para>
+
+ <para>The <envar>SERVICE</envar> variable defines the method used for
+ obtaining the IP address. The LFS-Bootscripts package has a modular IP
+ assignment format, and creating additional files in the <filename
+ class="directory">/lib/services/</filename> directory allows other IP
+ assignment methods. This is commonly used for Dynamic Host Configuration
+ Protocol (DHCP), which is addressed in the BLFS book.</para>
+
+ <para>The <envar>GATEWAY</envar> variable should contain the default
+ gateway IP address, if one is present. If not, then comment out the
+ variable entirely.</para>
+
+ <para>The <envar>PREFIX</envar> variable contains the number of
+ bits used in the subnet. Each octet in an IP address is 8 bits. If the
+ subnet's netmask is 255.255.255.0, then it is using the first three octets
+ (24 bits) to specify the network number. If the netmask is 255.255.255.240,
+ it would be using the first 28 bits. Prefixes longer than 24 bits are
+ commonly used by DSL and cable-based Internet Service Providers (ISPs).
+ In this example (PREFIX=24), the netmask is 255.255.255.0. Adjust the
+ <envar>PREFIX</envar> variable according to your specific subnet.
+ If omitted, the PREFIX defaults to 24.</para>
+
+ <para>For more information see the <command>ifup</command> man page.</para>
+
+ </sect2>
+ <sect2 id="resolv.conf">
+ <title>Creating the /etc/resolv.conf File</title>
+
+ <indexterm zone="resolv.conf">
+ <primary sortas="e-/etc/resolv.conf">/etc/resolv.conf</primary>
+ </indexterm>
+
+ <para>The system will need some means of obtaining Domain Name Service
+ (DNS) name resolution to resolve Internet domain names to IP addresses, and
+ vice versa. This is best achieved by placing the IP address of the DNS
+ server, available from the ISP or network administrator, into
+ <filename>/etc/resolv.conf</filename>. Create the file by running the
+ following:</para>
+
+<screen><userinput>cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
+<literal># Begin /etc/resolv.conf
+
+domain <replaceable>&lt;Your Domain Name&gt;</replaceable>
+nameserver <replaceable>&lt;IP address of your primary nameserver&gt;</replaceable>
+nameserver <replaceable>&lt;IP address of your secondary nameserver&gt;</replaceable>
+
+# End /etc/resolv.conf</literal>
+EOF</userinput></screen>
+
+ <para>The <varname>domain</varname> statement can be omitted
+ or replaced with a <varname>search</varname> statement. See the man page for
+ resolv.conf for more details.</para>
+
+ <para>Replace <replaceable>&lt;IP address of the nameserver&gt;</replaceable>
+ with the IP address of the DNS most appropriate for the setup. There will
+ often be more than one entry (requirements demand secondary servers for
+ fallback capability). If you only need or want one DNS server, remove the
+ second <emphasis>nameserver</emphasis> line from the file. The IP address
+ may also be a router on the local network.</para>
+
+ <note>
+ <para>The Google Public IPv4 DNS addresses are 8.8.8.8 and 8.8.4.4.</para>
+ </note>
+
+ </sect2>
+
+ <sect2 id="ch-config-hostname">
+ <title>Configuring the system hostname</title>
+
+ <indexterm zone="ch-config-hostname">
+ <primary sortas="d-hostname">hostname</primary>
+ <secondary>configuring</secondary>
+ </indexterm>
+
+ <para>During the boot process, the file <filename>/etc/hostname</filename>
+ is used for establishing the system's hostname.</para>
+
+ <para>Create the <filename>/etc/hostname</filename> file and enter a
+ hostname by running:</para>
+
+<screen><userinput>echo "<replaceable>&lt;lfs&gt;</replaceable>" &gt; /etc/hostname</userinput></screen>
+
+ <para><replaceable>&lt;lfs&gt;</replaceable> needs to be replaced with the
+ name given to the computer. Do not enter the Fully Qualified Domain Name
+ (FQDN) here. That information is put in the
+ <filename>/etc/hosts</filename> file.</para>
+
+ </sect2>
+
+ <sect2 id="ch-config-hosts">
+ <title>Customizing the /etc/hosts File</title>
+
+ <indexterm zone="ch-config-hosts">
+ <primary sortas="e-/etc/hosts">/etc/hosts</primary>
+ </indexterm>
+
+ <indexterm zone="ch-config-hosts">
+ <primary sortas="d-localnet">localnet</primary>
+ <secondary>/etc/hosts</secondary>
+ </indexterm>
+
+ <indexterm zone="ch-config-hosts">
+ <primary sortas="d-network">network</primary>
+ <secondary>/etc/hosts</secondary>
+ </indexterm>
+
+ <para>Decide on the IP address, fully-qualified domain name (FQDN), and
+ possible aliases for use in the <filename>/etc/hosts</filename> file. The
+ syntax is:</para>
+
+<screen><literal>IP_address myhost.example.org aliases</literal></screen>
+
+ <para>Unless the computer is to be visible to the Internet (i.e., there is
+ a registered domain and a valid block of assigned IP addresses&mdash;most
+ users do not have this), make sure that the IP address is in the private
+ network IP address range. Valid ranges are:</para>
+
+<screen><literal>Private Network Address Range Normal Prefix
+10.0.0.1 - 10.255.255.254 8
+172.x.0.1 - 172.x.255.254 16
+192.168.y.1 - 192.168.y.254 24</literal></screen>
+
+ <para>x can be any number in the range 16-31. y can be any number in the
+ range 0-255.</para>
+
+ <para>A valid private IP address could be 192.168.1.1. A valid FQDN for
+ this IP could be lfs.example.org.</para>
+
+ <para>Even if not using a network card, a valid FQDN is still required.
+ This is necessary for certain programs to operate correctly.</para>
+
+ <para>Create the <filename>/etc/hosts</filename> file by running:</para>
+
+<screen><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
+<literal># Begin /etc/hosts
+
+127.0.0.1 localhost.localdomain localhost
+127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
+<replaceable>&lt;192.168.1.1&gt;</replaceable> <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable> <replaceable>[alias1] [alias2 ...]</replaceable>
+::1 localhost ip6-localhost ip6-loopback
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
+
+# End /etc/hosts</literal>
+EOF</userinput></screen>
+
+ <para>The <replaceable>&lt;192.168.1.1&gt;</replaceable>,
+ <replaceable>&lt;FQDN&gt;</replaceable>, and
+ <replaceable>&lt;HOSTNAME&gt;</replaceable> values need to be
+ changed for specific uses or requirements (if assigned an IP address by a
+ network/system administrator and the machine will be connected to an
+ existing network). The optional alias name(s) can be omitted.</para>
+
+<!-- This is not very useful
+
+ <para>If a network card is not going to be configured, create the
+ <filename>/etc/hosts</filename> file by running:</para>
+
+<screen role="nodump"><userinput>cat &gt; /etc/hosts &lt;&lt; "EOF"
+<literal># Begin /etc/hosts (no network card version)
+
+127.0.0.1 localhost
+127.0.1.1 <replaceable>&lt;FQDN&gt;</replaceable> <replaceable>&lt;HOSTNAME&gt;</replaceable>
+::1 localhost ip6-localhost ip6-loopback
+ff02::1 ip6-allnodes
+ff02::2 ip6-allrouters
+
+# End /etc/hosts (no network card version)</literal>
+EOF</userinput></screen> -->
+
+ </sect2>
+
+</sect1>
diff --git a/chapter09/profile.xml b/chapter09/profile.xml
index e47153830..b95183bca 100644
--- a/chapter09/profile.xml
+++ b/chapter09/profile.xml
@@ -5,7 +5,7 @@
%general-entities;
]>
-<sect1 id="ch-config-profile" revision="sysv">
+<sect1 id="ch-config-profile" revision="sysv,s6">
<?dbhtml filename="profile.html"?>
<title>The Bash Shell Startup Files</title>
diff --git a/chapter09/symlinks.xml b/chapter09/symlinks.xml
index 24ebf537d..b4437f60f 100644
--- a/chapter09/symlinks.xml
+++ b/chapter09/symlinks.xml
@@ -10,7 +10,7 @@
<title>Managing Devices</title>
- <sect2 revision="sysv">
+ <sect2 revision="sysv,s6">
<title>Network Devices</title>
@@ -116,7 +116,7 @@
</sect2>
- <sect2 revision="sysv">
+ <sect2 revision="sysv,s6">
<title>CD-ROM symlinks</title>
diff --git a/chapter09/udev.xml b/chapter09/udev.xml
index a2ff35511..80db2c2de 100644
--- a/chapter09/udev.xml
+++ b/chapter09/udev.xml
@@ -16,7 +16,7 @@
</indexterm>
<para>In <xref linkend="chapter-building-system"/>, we installed the udev
- package when <phrase revision="sysv">eudev</phrase>
+ package when <phrase revision="sysv,s6">eudev</phrase>
<phrase revision="systemd">systemd</phrase> was built. Before we go into the
details regarding how this works, a brief history of previous methods of
handling devices is in order.</para>
@@ -227,7 +227,7 @@
the <filename>modprobe.d(5)</filename> manual page for more information
on <quote>softdep</quote> syntax and capabilities.</para>
- <para revision="sysv">If the module in question is not a wrapper and is
+ <para revision="sysv,s6">If the module in question is not a wrapper and is
useful by itself, configure the <command>modules</command> bootscript to
load this module on system boot. To do this, add the module name to the
<filename>/etc/sysconfig/modules</filename> file on a separate line.
diff --git a/chapter09/usage6.xml b/chapter09/usage6.xml
new file mode 100644
index 000000000..4d089a8d7
--- /dev/null
+++ b/chapter09/usage6.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+ "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+ <!ENTITY % general-entities SYSTEM "../general.ent">
+ <!ENTITY site SYSTEM "../appendices/rc.site.script">
+ %general-entities;
+]>
+
+<sect1 id="ch-config-usage" revision="s6">
+ <?dbhtml filename="usage.html"?>
+
+ <title>S6 Usage and Configuration</title>
+
+ <para>Add more info about S6 here.</para>
+
+</sect1>
diff --git a/chapter10/fstab.xml b/chapter10/fstab.xml
index ebfae3aaf..f24a83a31 100644
--- a/chapter10/fstab.xml
+++ b/chapter10/fstab.xml
@@ -19,7 +19,7 @@
which must be checked (for integrity errors) prior to mounting. Create a new
file systems table like this:</para>
-<screen revision="sysv"><userinput>cat &gt; /etc/fstab &lt;&lt; "EOF"
+<screen revision="sysv,s6"><userinput>cat &gt; /etc/fstab &lt;&lt; "EOF"
<literal># Begin /etc/fstab
# file system mount-point type options dump fsck
diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml
index 1bf8b112e..5bc457294 100644
--- a/chapter10/kernel.xml
+++ b/chapter10/kernel.xml
@@ -105,7 +105,7 @@
<para>Be sure to enable/disable/set the following features or the system might
not work correctly or boot at all:</para>
- <screen role="nodump" revision="sysv">General setup -->
+ <screen role="nodump" revision="sysv,s6">General setup -->
[ ] Compile the kernel with warnings as errors [CONFIG_WERROR]
&lt; &gt; Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS]
Device Drivers ---&gt;
@@ -156,7 +156,7 @@ File systems ---&gt;
required, it is highly recommended by the systemd developers.</para>
</note>
- <para revision="sysv">There are several other options that may be desired
+ <para revision="sysv,s6">There are several other options that may be desired
depending on the requirements for the system. For a list of options needed
for BLFS packages, see the <ulink
url="&lfs-root;blfs/view/&short-version;/longindex.html#kernel-config-index">BLFS
diff --git a/chapter11/reboot.xml b/chapter11/reboot.xml
index 3d7953897..bd8198df6 100644
--- a/chapter11/reboot.xml
+++ b/chapter11/reboot.xml
@@ -75,7 +75,7 @@
<listitem><para>/etc/vimrc </para></listitem>
<listitem><para>/root/.bash_profile </para></listitem>
<listitem><para>/root/.bashrc </para></listitem>
- <listitem revision="sysv"><para>/etc/sysconfig/ifconfig.eth0 </para></listitem>
+ <listitem revision="sysv,s6"><para>/etc/sysconfig/ifconfig.eth0 </para></listitem>
</itemizedlist>
</listitem>
</itemizedlist>
diff --git a/general.ent b/general.ent
index f378f7e20..8ae793d54 100644
--- a/general.ent
+++ b/general.ent
@@ -30,6 +30,10 @@
<!ENTITY short-version "systemd"> <!-- Used below in &blfs-book; -->
<!ENTITY errata "&lfs-root;lfs/errata/systemd/">
]]>
+<![ %s6; [
+<!ENTITY short-version "svn-s6"> <!-- Used below in &blfs-book; -->
+<!ENTITY errata "&lfs-root;lfs/errata/development/">
+]]>
<!ENTITY generic-version "development"> <!-- Used below in
&patches-root;,
&donwloads-root;, and
@@ -45,6 +49,10 @@
<!ENTITY version "%relnum;-systemd">
<!ENTITY short-version "stable-systemd"> <!-- Used below in &blfs-book; -->
]]>
+<![ %s6; [
+<!ENTITY version "%relnum;-s6">
+<!ENTITY short-version "%relnum;-s6"> <!-- Used below in &blfs-book; -->
+]]>
<!ENTITY errata "&lfs-root;lfs/errata/&version;/">
<!ENTITY generic-version "%relnum;"> <!-- Used below in
&patches-root;,
@@ -63,6 +71,10 @@
<!ENTITY version "%relnum;-systemd-rc%rcnum;">
<!ENTITY short-version "systemd"> <!-- Used below in &blfs-book; -->
]]>
+<![ %s6; [
+<!ENTITY version "%relnum;-s6-rc%rcnum;">
+<!ENTITY short-version "s6"> <!-- Used below in &blfs-book; -->
+]]>
<!ENTITY errata "&lfs-root;lfs/errata/&version;/">
<!ENTITY generic-version "%relnum;-rc%rcnum;"> <!-- Used below in
&patches-root;,
@@ -78,6 +90,9 @@
<![ %systemd; [
<!ENTITY wget-list "wget-list-systemd">
]]>
+<![ %s6; [
+<!ENTITY wget-list "wget-list-s6">
+]]>
<!ENTITY lfs-root "https://www.linuxfromscratch.org/">
<!ENTITY blfs-root "&lfs-root;blfs/">
diff --git a/git-version.sh b/git-version.sh
index 7e0b3b4df..08132d4e9 100755
--- a/git-version.sh
+++ b/git-version.sh
@@ -3,9 +3,15 @@
if [ "$1" = sysv ]; then
SYSV="INCLUDE"
SYSTEMD="IGNORE "
+ S6="IGNORE "
elif [ "$1" = systemd ]; then
SYSV="IGNORE "
SYSTEMD="INCLUDE"
+ S6="IGNORE "
+elif [ "$1" = s6 ]; then
+ SYSV="IGNORE "
+ SYSTEMD="IGNORE "
+ S6="INCLUDE "
else
echo You must provide either \"sysv\" or \"systemd\" as argument
exit 1
@@ -13,6 +19,7 @@ fi
echo "<!ENTITY % sysv \"$SYSV\">" > conditional.ent
echo "<!ENTITY % systemd \"$SYSTEMD\">" >> conditional.ent
+echo "<!ENTITY % s6 \"$S6\">" >> conditional.ent
if ! git status > /dev/null; then
# Either it's not a git repository, or git is unavaliable.
@@ -23,6 +30,9 @@ if ! git status > /dev/null; then
echo "<![ %systemd; [" >> version.ent
echo "<!ENTITY version \"unknown-systemd\">" >> version.ent
echo "]]>" >> version.ent
+ echo "<![ %s6; [" >> version.ent
+ echo "<!ENTITY version \"unknown-s6\">" >> version.ent
+ echo "]]>" >> version.ent
echo "<!ENTITY releasedate \"unknown\">" >> version.ent
echo "<!ENTITY copyrightdate \"1999-2022\">" >> version.ent
exit 0
@@ -51,10 +61,12 @@ sha="$(git describe --abbrev=1)"
rev=$(echo "$sha" | sed 's/-g[^-]*$//')
version="$rev"
versiond="$rev-systemd"
+version6="$rev-s6"
if [ "$(git diff HEAD | wc -l)" != "0" ]; then
version="$version+"
versiond="$versiond+"
+ version6="$version6+"
fi
echo "<![ %sysv; [" > version.ent
@@ -63,5 +75,8 @@ echo "]]>" >> version.ent
echo "<![ %systemd; [" >> version.ent
echo "<!ENTITY version \"$versiond\">" >> version.ent
echo "]]>" >> version.ent
+echo "<![ %s6; [" >> version.ent
+echo "<!ENTITY version \"$version6\">" >> version.ent
+echo "]]>" >> version.ent
echo "<!ENTITY releasedate \"$full_date\">" >> version.ent
echo "<!ENTITY copyrightdate \"1999-$year\">" >> version.ent
diff --git a/packages.ent b/packages.ent
index 5d6eef04a..eee92adc5 100644
--- a/packages.ent
+++ b/packages.ent
@@ -163,6 +163,16 @@
<!ENTITY eudev-fin-du "83 MB">
<!ENTITY eudev-fin-sbu "0.2 SBU">
+<!ENTITY execline-version "2.9.0.1"><!-- S6 init -->
+<!ENTITY execline-size "9999 KB">
+<!ENTITY execline-url "https://skarnet.org/software/execline/execline-&execline-version;.tar.gz">
+<!ENTITY execline-md5 "8652a16f687ff766da137e199f9183e0">
+<!ENTITY execline-home "https://skarnet.org/software/execline/">
+<!ENTITY execline-tmp-du "9999 MB">
+<!ENTITY execline-tmp-sbu "9999 SBU">
+<!ENTITY execline-fin-du "9999 MB">
+<!ENTITY execline-fin-sbu "9999 SBU">
+
<!ENTITY expat-version "2.4.8">
<!ENTITY expat-size "444 KB">
<!ENTITY expat-url "&sourceforge;expat/expat-&expat-version;.tar.xz">
@@ -614,6 +624,46 @@
<!ENTITY readline-fin-du "15 MB">
<!ENTITY readline-fin-sbu "0.1 SBU">
+<!ENTITY skalibs-version "2.12.0.1"><!-- S6 init -->
+<!ENTITY skalibs-size "9999 KB">
+<!ENTITY skalibs-url "https://skarnet.org/software/skalibs/skalibs-&skalibs-version;.tar.gz">
+<!ENTITY skalibs-md5 "296c02c94adea3355faed44e65893d2e">
+<!ENTITY skalibs-home "https://skarnet.org/software/skalibs/">
+<!ENTITY skalibs-tmp-du "9999 MB">
+<!ENTITY skalibs-tmp-sbu "9999 SBU">
+<!ENTITY skalibs-fin-du "9999 MB">
+<!ENTITY skalibs-fin-sbu "9999 SBU">
+
+<!ENTITY s6-version "2.11.1.2"><!-- S6 init -->
+<!ENTITY s6-size "9999 KB">
+<!ENTITY s6-url "https://skarnet.org/software/s6/s6-&s6-version;.tar.gz">
+<!ENTITY s6-md5 "55725b335698c79d41ebde5608bf313d">
+<!ENTITY s6-home "https://skarnet.org/software/s6/">
+<!ENTITY s6-tmp-du "9999 MB">
+<!ENTITY s6-tmp-sbu "9999 SBU">
+<!ENTITY s6-fin-du "9999 MB">
+<!ENTITY s6-fin-sbu "9999 SBU">
+
+<!ENTITY s6-rc-version "0.5.3.2"><!-- S6 init -->
+<!ENTITY s6-rc-size "9999 KB">
+<!ENTITY s6-rc-url "https://skarnet.org/software/s6-rc/s6-rc-&s6-rc-version;.tar.gz">
+<!ENTITY s6-rc-md5 "30395a4bfaea2b1720765b087a0d7aa9">
+<!ENTITY s6-rc-home "https://skarnet.org/software/s6-rc/">
+<!ENTITY s6-rc-tmp-du "9999 MB">
+<!ENTITY s6-rc-tmp-sbu "9999 SBU">
+<!ENTITY s6-rc-fin-du "9999 MB">
+<!ENTITY s6-rc-fin-sbu "9999 SBU">
+
+<!ENTITY s6-init-version "1.0.8.0"><!-- S6 init -->
+<!ENTITY s6-init-size "9999 KB">
+<!ENTITY s6-init-url "https://skarnet.org/software/s6-linux-init/s6-linux-init-&s6-init-version;.tar.gz">
+<!ENTITY s6-init-md5 "c970118871adc59c2c8126a83fb93589">
+<!ENTITY s6-init-home "https://skarnet.org/software/s6-linux-init/">
+<!ENTITY s6-init-tmp-du "9999 MB">
+<!ENTITY s6-init-tmp-sbu "9999 SBU">
+<!ENTITY s6-init-fin-du "9999 MB">
+<!ENTITY s6-init-fin-sbu "9999 SBU">
+
<!ENTITY sed-version "4.8">
<!ENTITY sed-size "1,317 KB">
<!ENTITY sed-url "&gnu;sed/sed-&sed-version;.tar.xz">
diff --git a/prologue/why.xml b/prologue/why.xml
index dd6a27c96..136715afa 100644
--- a/prologue/why.xml
+++ b/prologue/why.xml
@@ -137,7 +137,7 @@
tested file systems that Linux supports.</para>
</listitem>
- <listitem revision="sysv">
+ <listitem revision="sysv,s6">
<para>Eudev</para>
<para>This package is a device manager. It dynamically controls the ownership,