diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2026-01-23 23:57:01 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska-skaware@skarnet.org> | 2026-01-23 23:57:01 +0000 |
| commit | d45679c137a64ea989fbd189d52bf9bfc4f7fe6d (patch) | |
| tree | 78753819fd9a7c23a25354d3bec23d0039f592f5 | |
| parent | 044e7a2b7975c0b4170f4c0d61ac2bdaee1873ea (diff) | |
| download | s6-rc-d45679c137a64ea989fbd189d52bf9bfc4f7fe6d.tar.gz | |
Update deps and doc
| -rw-r--r-- | INSTALL | 6 | ||||
| -rw-r--r-- | README | 3 | ||||
| -rw-r--r-- | doc/faq.html | 49 | ||||
| -rw-r--r-- | doc/index.html | 12 | ||||
| -rw-r--r-- | doc/upgrade.html | 9 | ||||
| -rwxr-xr-x | patch-for-solaris | 2 |
6 files changed, 45 insertions, 36 deletions
@@ -6,9 +6,9 @@ Build Instructions - A POSIX-compliant C development environment - GNU make version 3.81 or later - - skalibs version 2.14.5.0 or later: https://skarnet.org/software/skalibs/ - - execline version 2.9.8.0 or later: https://skarnet.org/software/execline/ - - s6 version 2.14.0.0 or later: https://skarnet.org/software/s6/ + - skalibs version 2.14.5.1 or later: https://skarnet.org/software/skalibs/ + - execline version 2.9.8.1 or later: https://skarnet.org/software/execline/ + - s6 version 2.14.0.1 or later: https://skarnet.org/software/s6/ This software will run on any operating system that implements POSIX.1-2024, available at: @@ -13,7 +13,8 @@ supervised, and that short-lived instructions are run in a reproducible manner. It also provides commands to help distributions organize service -definitions automatically installed by a package manager. +definitions automatically installed by a package manager, and meant to +be a backend to the s6-frontend package. See https://skarnet.org/software/s6-rc/ for details. diff --git a/doc/faq.html b/doc/faq.html index ee230c8..acf6e79 100644 --- a/doc/faq.html +++ b/doc/faq.html @@ -76,7 +76,7 @@ after <tt>-- change</tt>. </a> <h3> The source format for -<a href="s6-rc-compile.html">s6-rc-compile</a> is not very convenient. +<a href="s6-rc-compile.html#source">s6-rc-compile</a> is not very convenient. Why not put all the information for a service in a single file ? </h3> <p> @@ -115,7 +115,9 @@ s6-rc source format will make it easy on those tools. indubitably easier to do in other languages than C), and want to write a program that takes a text file, parses it and outputs a service definition directory in the s6-rc-compile source format, it should also be -rather easy - please, feel free! +rather easy - please, feel free! (There are talks in the community of an +initiative to design a common declarative syntax for service files, with +backends for OpenRC, s6-rc, and systemd. It may happen at some point.) </p> <h3> There are no "Provides:", no virtual services. What do I do @@ -184,14 +186,14 @@ according to your preferences, but keep the same idea) <ul> <li> Make sure your <a href="s6-rc-init.html">s6-rc-init</a> invocation, -in your init scripts, always uses the <tt>/etc/s6-rc/compiled</tt> name +in your init scripts, always uses the <tt>/etc/s6-rc/compiled/current</tt> name to refer to the database to use at boot time. </li> - <li> Make sure <tt>/etc/s6-rc/compiled</tt> is a <em>symbolic link</em> + <li> Make sure <tt>/etc/s6-rc/compiled/current</tt> is a <em>symbolic link</em> that points to your current compiled database. For instance, the first time you compile a service database, you could run: <pre> - s6-rc-compile /etc/s6-rc/compiled-initial /etc/s6-rc/source-initial - ln -sf compiled-initial /etc/s6-rc/compiled + s6-rc-compile /etc/s6-rc/compiled/initial /etc/s6-rc/source-initial + ln -sf initial /etc/s6-rc/compiled/current </pre> </li> <li> When you compile a new service database, always compile it to a unique name, preferrably in the same directory as your current compiled @@ -200,22 +202,22 @@ database. You can for instance use a TAI64N timestamp, obtained by to create such a name: <pre> stamp=`s6-clock` - s6-rc-compile /etc/s6-rc/compiled-$stamp /etc/s6-rc/source-current + s6-rc-compile /etc/s6-rc/compiled/$stamp /etc/s6-rc/source-current </pre> </li> <li> To replace your current compiled database with the one you just created, run <a href="s6-rc-update.html">s6-rc-update</a> on the new name: <pre> - s6-rc-update /etc/s6-rc/compiled-$stamp + s6-rc-update /etc/s6-rc/compiled/$stamp </pre> </li> <li> At this point, your current database is the new one, but if your machine reboots, it will still use the old one (because -the <tt>/etc/s6-rc/compiled</tt> link is still pointing to the old one). +the <tt>/etc/s6-rc/compiled/current</tt> link is still pointing to the old one). To ensure that the new database will be used on the next boot, atomically update the link: <pre> - olddb=`s6-linkname -f /etc/s6-rc/compiled` - s6-ln -nsf compiled-$stamp /etc/s6-rc/compiled + olddb=`s6-linkname -f /etc/s6-rc/compiled/current` + s6-ln -nsf $stamp /etc/s6-rc/compiled/current </pre> The use of the <a href="//skarnet.org/software/s6-portable-utils/s6-ln.html">s6-ln</a> @@ -223,24 +225,23 @@ utility is recommended, because the <a href="https://pubs.opengroup.org/onlinepubs/9799919799/utilities/ln.html">ln</a> standard actually <em>forbids</em> an atomic replacement, so utilities that follow it to the letter, for instance, <tt>ln</tt> from GNU coreutils, cannot -be atomic: they first remove the old link, then create the new one. If you -do not have -<a href="//skarnet.org/software/s6-portable-utils/s6-ln.html">s6-ln</a>, -you need to perform an unintuitive workaround to get POSIX-compliant tools to -do the right thing: - <tt>ln -sf compiled-$stamp /etc/s6-rc/compiled/compiled && -mv -f /etc/s6-rc/compiled/compiled /etc/s6-rc</tt> </li> +be atomic: they first remove the old link, then create the new one. </li> <li> Your current compiled database, stored in -<tt>/etc/s6-rc/compiled-$stamp</tt>, is now accessible via the -<tt>/etc/s6-rc/compiled</tt> symlink and will be used at boot time. You do +<tt>/etc/s6-rc/compiled/$stamp</tt>, is now accessible via the +<tt>/etc/s6-rc/compiled/current</tt> symlink and will be used at boot time. You do not need to modify your init scripts. If you wish, you can dispose of the old database you just replaced: <pre> rm -rf $olddb </pre> </li> + <li> All of these operations are now automated in the +<a href="//skarnet.org/software/s6-frontend/">s6-frontend</a> package: +<a href="//skarnet.org/software/s6-frontend/s6_live.html#install"><tt>s6 live install</tt></a> +will do all this for you, if you create your service database via +<a href="//skarnet.org/software/s6-frontend/s6_set.html"><tt>s6 set</tt></a> +commands. </li> </ul> - <a name="switching"> <h2> Switching from another service manager </h2> </a> @@ -443,5 +444,11 @@ requires adaptation and more work for the admin to use OpenRC outside of that frame. </p> +<p> +<a href="//skarnet.org/software/s6-frontend/">s6-frontend</a> makes s6-rc +more accessible, but does not provide policy files either. Work is underway +on a policy package that will provide a turnkey bootable s6 ecosystem. +</p> + </body> </html> diff --git a/doc/index.html b/doc/index.html index 38e8972..8bf2512 100644 --- a/doc/index.html +++ b/doc/index.html @@ -49,12 +49,12 @@ scripts are also run in a controlled environment. <li> A POSIX-compliant system with a standard C development environment </li> <li> GNU make, version 3.81 or later </li> <li> <a href="//skarnet.org/software/skalibs/">skalibs</a> version -2.14.5.0 or later. It's a build-time requirement. It's also a run-time +2.14.5.1 or later. It's a build-time requirement. It's also a run-time requirement if you link against the shared version of the skalibs library. </li> <li> <a href="//skarnet.org/software/execline/">execline</a> version -2.9.8.0 or later. It's a build-time <em>and</em> run-time requirement. </li> +2.9.8.1 or later. It's a build-time <em>and</em> run-time requirement. </li> <li> <a href="//skarnet.org/software/s6/">s6</a> version -2.14.0.0 or later. It's a build-time <em>and</em> run-time requirement. </li> +2.14.0.1 or later. It's a build-time <em>and</em> run-time requirement. </li> </ul> <h3> Licensing </h3> @@ -155,9 +155,9 @@ on incremental improvement. <p> The <a href="//skarnet.org/software/s6-frontend/">s6-frontend</a> project is -a higher-level interface to the s6 ecosystem, and s6-rc in particular. -It is currently in development and should land in a major Linux distribution -in 2025 or 2026. +a higher-level interface to the s6 ecosystem, and s6-rc in particular. If +you're looking for an entry point to s6, s6-frontend is what you want. +s6-rc is more of a part of the engine. </p> <h3> Discussion </h3> diff --git a/doc/upgrade.html b/doc/upgrade.html index cf12ebb..c0b3e62 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -34,14 +34,15 @@ minor and bugfix version changes. <ul> <li> <a href="//skarnet.org/software/skalibs/">skalibs</a> -dependency bumped to 2.14.5.0. </li> +dependency bumped to 2.14.5.1. </li> <li> <a href="//skarnet.org/software/execline/">execline</a> -dependency bumped to 2.9.8.0. </li> +dependency bumped to 2.9.8.1. </li> <li> <a href="//skarnet.org/software/s6/">s6</a> -dependency bumped to 2.14.0.0. </li> +dependency bumped to 2.14.0.1. </li> <li> The macros in <tt>s6-rc/config.h</tt> have changed. <tt>S6RC_LIVE_BASE</tt> is now named <tt>S6RC_LIVEDIR</tt>, in -addition to the new <tt>S6RC_REPODIR</tt> and <tt>S6RC_BOOTDB</tt>. </li> +addition to the new <tt>S6RC_REPODIR</tt> and <tt>S6RC_BOOTDB</tt>. + <li> Lots of <a href="repodefs.html">new commands</a>. </li> </ul> <h2> in 0.5.6.0 </h2> diff --git a/patch-for-solaris b/patch-for-solaris index f209bab..bc4def1 100755 --- a/patch-for-solaris +++ b/patch-for-solaris @@ -4,7 +4,7 @@ patchit () { echo '#!/usr/xpg4/bin/sh' > $1.tmp tail -n +2 $1 >> $1.tmp mv -f $1.tmp $1 - chmod 755 $1 + chmod 0755 $1 } # Solaris doesn't understand POSIX.1-2008 either. |
