Bug 259178

Summary: sysutils/s6-rc meta-update for the skarnet suite
Product: Ports & Packages Reporter: dewayne
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: New ---    
Severity: Affects Some People CC: crest
Priority: --- Flags: bugzilla: maintainer-feedback? (crest)
Version: Latest   
Hardware: Any   
OS: Any   
Description Flags
Patch updating the skalibs port to
crest: maintainer-approval+
Patch updating lang/execline to version
crest: maintainer-approval+
Patch updating sysutils/s6 to version
crest: maintainer-approval+
Patch updating sysutils/s6-rc to version crest: maintainer-approval+

Description dewayne 2021-10-15 03:27:44 UTC
There are three supporting layers to s6-rc.  Which typically need to be upgraded together.  The package, ports version and available current version are:
sysutils/s6-rc  to
sysutils/s6 to
lang/execline  to
devel/skalib to

The skalib changes (from are:
    libbiguint removed.
    Obsolete skalibs/environ.h and skalibs/getpeereid.h headers removed.
    rc4 and md5 functions removed.
    iobuffer removed. fd_cat() and fd_catn() changed signatures.
    All *_t types renamed without the _t suffix, in order to preserve POSIX namespace.
    subgetopt() renamed to lgetopt().
    All signal functions entirely reworked; cruft removed.
    skalibs/cdb_make.h renamed to skalibs/cdbmake.h; cdbmake functions now return 1 on success and 0 on failure.
    skalibs/cdb.h redesigned to remove reader state from the cdb structure itself.
    The unsafe cdb_successor() API has been removed.
    New skalibs/posixplz.h function: munmap_void().
which flows upwards to the other packages. Changes to signal handling is noteworthy.

execline introduces a highly beneficial case "statement".
Comment 1 crest 2021-12-26 23:19:20 UTC
I'll test those tomorrow. The reminders for outdated ports got stuck in my overagressive rspamd.
Comment 2 crest 2022-01-03 09:34:12 UTC
Created attachment 230662 [details]
Patch updating the skalibs port to

Added an initial patch updating skalibs. Please commit the updates to all skaware ports together (or in very quick succession), because they have to be kept in sync.
Comment 3 crest 2022-01-03 17:47:27 UTC
Created attachment 230670 [details]
Patch updating lang/execline to version

Update execline to version (s6 and s6-rc are still missing)
Comment 4 crest 2022-01-03 22:33:51 UTC
Created attachment 230674 [details]
Patch updating sysutils/s6 to version
Comment 5 crest 2022-01-04 19:03:56 UTC
Created attachment 230706 [details]
Patch updating sysutils/s6-rc to version

While at it restore support for --livedir=/run/s6-rc in the form of the run flavor (the default flavor remains hier(7) compatible). Some setups require a writeable file system very early during boot which can only be provided by a tmpfs mountpoint like the /run mountpoint expected by s6-rc when --livedir is omitted from the configure arguments.
Comment 6 crest 2022-01-04 19:09:17 UTC
The removal of _t typedefs from skalibs may have helped avoid name clashes with reserved names, but it broke the unmaintained sysutils/runwhen port.
Comment 7 dewayne 2022-01-05 06:22:49 UTC
(In reply to crest from comment #5)
Thank-you for updating the suite.  I like the approach of providing different options for LIVEDIR which should placate BSD vs s6 folder conventions. 

Would it be possible to include a ? before =, as follows:
.if ${FLAVOR} == hier # Follow hier(7)
LIVEDIR?=       /var/run/${PORTNAME}
.else                                   # Expect a dedicated /run mountpoint. Can be required if /v
LIVEDIR?=       /run/${PORTNAME}
as we define a different value for LIVEDIR?
Comment 8 dewayne 2022-01-05 06:49:00 UTC
(In reply to crest from comment #6)
Unfortunate that an update to a dependency (skalibs) breaks runwhen.  Though this is a task for the runwhen author.  We use sysutils/snooze to perform a similar function.