From 07491df186d562d0efa6a7fca2b7f8d07dbd0652 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Mon, 23 Dec 2019 13:05:25 +0000 Subject: Make execline dependency optional This includes: - adding a configure option to disable execline support - duplicating el_semicolon() and el_getstrict() into the s6 library when execline is disabled at build time, making a compat shim and using it where needed (s6-svlisten, s6-ftrig-listen) - Creating alternatives for execlineb script spawning: * s6-log: '?' directive (done in the previous commit) * s6-notifyoncheck: require hardcoding the check in ./data/check * s6-ipcserver-access: no support for exec files, add a warning - Updating the relevant parts of the doc --enable-execline will remain the default, and whiners can choke on their tears. --- doc/index.html | 7 +++++-- doc/s6-ipcserver-access.html | 5 ++++- doc/s6-log.html | 6 ++++-- doc/s6-notifyoncheck.html | 5 ++++- 4 files changed, 17 insertions(+), 6 deletions(-) (limited to 'doc') diff --git a/doc/index.html b/doc/index.html index 060f0ed..341a936 100644 --- a/doc/index.html +++ b/doc/index.html @@ -86,8 +86,11 @@ with s6 2.9.1.0 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. -
  • execline version -2.5.3.0 or later. It's a build-time and run-time requirement.
  • +
  • Optional: execline version +2.5.3.0 or later. When s6 is built with execline support (which is the default, +execline is a build-time requirement, and also a run-time requirement for +certain binaries that spawn scripts interpreted with +execlineb.
  • Licensing

    diff --git a/doc/s6-ipcserver-access.html b/doc/s6-ipcserver-access.html index b09d74a..2d35d84 100644 --- a/doc/s6-ipcserver-access.html +++ b/doc/s6-ipcserver-access.html @@ -168,7 +168,10 @@ is modified according to the contents of env.
  • An exec file containing newprog completely bypasses the rest of s6-ipcserver-access' command line. After environment modifications, if any, s6-ipcserver-access execs into -execlineb -c newprog.
  • +execlineb -c newprog. +Please be aware that the exec file functionality is only supported +when s6 has been built with execline support. Otherwise, a warning message +is printed and executable diversion is not performed. diff --git a/doc/s6-log.html b/doc/s6-log.html index 5cc4529..f042c70 100644 --- a/doc/s6-log.html +++ b/doc/s6-log.html @@ -234,14 +234,16 @@ padded with newlines so it is always statussize bytes long. 0 means an unpadded, unlimited status file. By default, statussize is 1001.
  • !processor: registers execlineb -Pc processor as a processor for the next logdirs; -execlineb must be found in s6-log's PATH. +execlineb must be found in s6-log's PATH. This directive is only +supported if s6 has been built with execline support; otherwise, it yields a +syntax error at starting time. If processor is empty, no processor will be set for the next logdirs. By default, no processor is set.
  • ?processor: registers /bin/sh -c processor as a processor for the next logdirs. It is just like the ! directive, except that the processor string is interpreted by /bin/sh, not execlineb. It is useful -for people who have built s6 without execline support.
  • +for people who want to build s6 without execline support.
  • t: the logged line will be prepended with a TAI64N timestamp (and a space) before being processed by the next action diff --git a/doc/s6-notifyoncheck.html b/doc/s6-notifyoncheck.html index 2b6bfc6..e154da0 100644 --- a/doc/s6-notifyoncheck.html +++ b/doc/s6-notifyoncheck.html @@ -114,7 +114,10 @@ instead of ./data/check. The checkprog string will be parsed b can contain a full command line. This option is mainly useful is the program used to poll the service is very simple and can be inlined as a simple command line, to avoid needing to manage a whole script and a ./data/check -file.
  • +file. This option is only supported if the +execline package is installed; +if it is not, the -c option cannot be used and the checking +script must always be placed in ./data/check.

    Usage

    -- cgit v1.2.3