diff options
author | Thomas Trepl (Moody) <thomas@linuxfromscratch.org> | 2022-08-07 18:00:23 +0200 |
---|---|---|
committer | Thomas Trepl (Moody) <thomas@linuxfromscratch.org> | 2022-08-07 18:00:23 +0200 |
commit | 193913e25def32a96d04baaec3671fb4b3b31a6c (patch) | |
tree | 5566c98f70e7fa59b1c58fc0904f7ff8e965825e | |
parent | f628276ff7d33aa1deac280b81c773d508f39b42 (diff) |
First commit to add S6 as init system (like systemd)
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | chapter01/whatsnew.xml | 2 | ||||
-rw-r--r-- | chapter03/packages.xml | 50 | ||||
-rw-r--r-- | chapter07/createfiles.xml | 6 | ||||
-rw-r--r-- | chapter08/chapter08.xml | 9 | ||||
-rw-r--r-- | chapter08/eudev.xml | 4 | ||||
-rw-r--r-- | chapter08/execline.xml | 104 | ||||
-rw-r--r-- | chapter08/man-db.xml | 4 | ||||
-rw-r--r-- | chapter08/meson.xml | 2 | ||||
-rw-r--r-- | chapter08/procps.xml | 2 | ||||
-rw-r--r-- | chapter08/s6-init.xml | 104 | ||||
-rw-r--r-- | chapter08/s6-rc.xml | 103 | ||||
-rw-r--r-- | chapter08/s6.xml | 105 | ||||
-rw-r--r-- | chapter08/skalibs.xml | 103 | ||||
-rw-r--r-- | chapter08/util-linux.xml | 2 | ||||
-rw-r--r-- | chapter09/chapter09.xml | 5 | ||||
-rw-r--r-- | chapter09/introduction6.xml | 91 | ||||
-rw-r--r-- | chapter09/network6.xml | 247 | ||||
-rw-r--r-- | chapter09/profile.xml | 2 | ||||
-rw-r--r-- | chapter09/symlinks.xml | 4 | ||||
-rw-r--r-- | chapter09/udev.xml | 4 | ||||
-rw-r--r-- | chapter09/usage6.xml | 16 | ||||
-rw-r--r-- | chapter10/fstab.xml | 2 | ||||
-rw-r--r-- | chapter10/kernel.xml | 4 | ||||
-rw-r--r-- | chapter11/reboot.xml | 2 | ||||
-rw-r--r-- | general.ent | 15 | ||||
-rwxr-xr-x | git-version.sh | 15 | ||||
-rw-r--r-- | packages.ent | 50 | ||||
-rw-r--r-- | prologue/why.xml | 2 |
29 files changed, 1046 insertions, 27 deletions
@@ -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 > /etc/passwd << "EOF" +<screen revision="sysv,s6"><userinput>cat > /etc/passwd << "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 > /etc/group << "EOF" +<screen revision="sysv,s6"><userinput>cat > /etc/group << "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 — halt +1 — Single user mode +2 — User definable +3 — Full multiuser mode +4 — User definable +5 — Full multiuser mode with display manager +6 — 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 > ifconfig.<replaceable>eth0</replaceable> << "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 > /etc/resolv.conf << "EOF" +<literal># Begin /etc/resolv.conf + +domain <replaceable><Your Domain Name></replaceable> +nameserver <replaceable><IP address of your primary nameserver></replaceable> +nameserver <replaceable><IP address of your secondary nameserver></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><IP address of the nameserver></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><lfs></replaceable>" > /etc/hostname</userinput></screen> + + <para><replaceable><lfs></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—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 > /etc/hosts << "EOF" +<literal># Begin /etc/hosts + +127.0.0.1 localhost.localdomain localhost +127.0.1.1 <replaceable><FQDN></replaceable> <replaceable><HOSTNAME></replaceable> +<replaceable><192.168.1.1></replaceable> <replaceable><FQDN></replaceable> <replaceable><HOSTNAME></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><192.168.1.1></replaceable>, + <replaceable><FQDN></replaceable>, and + <replaceable><HOSTNAME></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 > /etc/hosts << "EOF" +<literal># Begin /etc/hosts (no network card version) + +127.0.0.1 localhost +127.0.1.1 <replaceable><FQDN></replaceable> <replaceable><HOSTNAME></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 > /etc/fstab << "EOF" +<screen revision="sysv,s6"><userinput>cat > /etc/fstab << "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] < > Enable kernel headers through /sys/kernel/kheaders.tar.xz [CONFIG_IKHEADERS] Device Drivers ---> @@ -156,7 +156,7 @@ File systems ---> 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, |