From d45679c137a64ea989fbd189d52bf9bfc4f7fe6d Mon Sep 17 00:00:00 2001
From: Laurent Bercot
Date: Fri, 23 Jan 2026 23:57:01 +0000
Subject: Update deps and doc
---
INSTALL | 6 +++---
README | 3 ++-
doc/faq.html | 49 ++++++++++++++++++++++++++++---------------------
doc/index.html | 12 ++++++------
doc/upgrade.html | 9 +++++----
patch-for-solaris | 2 +-
6 files changed, 45 insertions(+), 36 deletions(-)
diff --git a/INSTALL b/INSTALL
index d411724..64b1454 100644
--- a/INSTALL
+++ b/INSTALL
@@ -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:
diff --git a/README b/README
index 3e867f2..54f509f 100644
--- a/README
+++ b/README
@@ -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 -- change.
The source format for
-s6-rc-compile is not very convenient.
+s6-rc-compile is not very convenient.
Why not put all the information for a service in a single file ?
@@ -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.)
There are no "Provides:", no virtual services. What do I do
@@ -184,14 +186,14 @@ according to your preferences, but keep the same idea)
- Make sure your s6-rc-init invocation,
-in your init scripts, always uses the /etc/s6-rc/compiled name
+in your init scripts, always uses the /etc/s6-rc/compiled/current name
to refer to the database to use at boot time.
- - Make sure /etc/s6-rc/compiled is a symbolic link
+
- Make sure /etc/s6-rc/compiled/current is a symbolic link
that points to your current compiled database. For instance, the first
time you compile a service database, you could run:
- 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
- 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:
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
- To replace your current compiled database with the one you just
created, run s6-rc-update on the new
name:
- s6-rc-update /etc/s6-rc/compiled-$stamp
+ s6-rc-update /etc/s6-rc/compiled/$stamp
- At this point, your current database is the new one, but if
your machine reboots, it will still use the old one (because
-the /etc/s6-rc/compiled link is still pointing to the old one).
+the /etc/s6-rc/compiled/current 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:
- 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
The use of the
s6-ln
@@ -223,24 +225,23 @@ utility is recommended, because the
ln
standard actually forbids an atomic replacement, so utilities that
follow it to the letter, for instance, ln from GNU coreutils, cannot
-be atomic: they first remove the old link, then create the new one. If you
-do not have
-s6-ln,
-you need to perform an unintuitive workaround to get POSIX-compliant tools to
-do the right thing:
- ln -sf compiled-$stamp /etc/s6-rc/compiled/compiled &&
-mv -f /etc/s6-rc/compiled/compiled /etc/s6-rc
+be atomic: they first remove the old link, then create the new one.
- Your current compiled database, stored in
-/etc/s6-rc/compiled-$stamp, is now accessible via the
-/etc/s6-rc/compiled symlink and will be used at boot time. You do
+/etc/s6-rc/compiled/$stamp, is now accessible via the
+/etc/s6-rc/compiled/current 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:
rm -rf $olddb
+ - All of these operations are now automated in the
+s6-frontend package:
+s6 live install
+will do all this for you, if you create your service database via
+s6 set
+commands.
-
Switching from another service manager
@@ -443,5 +444,11 @@ requires adaptation and more work for the admin to use OpenRC outside of
that frame.
+
+s6-frontend 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.
+
+