2021-08-18 18:15:47 +01:00
|
|
|
{ lib, stdenv, skawarePackages, targetPackages }:
|
2015-09-25 02:15:36 +01:00
|
|
|
|
2018-09-02 22:31:26 +01:00
|
|
|
with skawarePackages;
|
2015-09-25 02:15:36 +01:00
|
|
|
|
2018-09-02 22:31:26 +01:00
|
|
|
buildPackage {
|
|
|
|
pname = "s6-rc";
|
skawarePackages: Winter 2021-2022 release
I bumped all versions of all packages that we packaged so far (I
hope). We might want to build an update script at some point, there is
a lot of potential for copy & paste errors in these updates.
Laurent’s notes below:
Hello,
New versions of all the skarnet.org packages are available.
The changes are, for the most part, minimal: essentially, the new
versions fix a bug in the build system that made cross-building under
slashpackage more difficult than intended. Very few people should
have been impacted by this bug.
Some packages had a few more bugfixes; and some packages have
additional functionality. No major update; no compatibility break.
The new versions are the following:
skalibs-2.11.1.0 (minor)
nsss-0.2.0.1 (release)
utmps-0.1.1.0 (minor)
execline-2.8.2.0 (minor)
s6-2.11.0.1 (release)
s6-rc-0.5.3.0 (minor)
s6-portable-utils-2.2.3.4 (release)
s6-linux-utils-2.5.1.7 (release)
s6-linux-init-1.0.7.0 (minor)
s6-dns-2.3.5.3 (release)
s6-networking-2.5.1.0 (minor)
mdevd-0.1.5.1 (release)
bcnm-0.0.1.5 (release)
dnsfunnel-0.0.1.3 (release)
smtpd-starttls-proxy-0.0.1.1 (release)
Dependencies have all been updated to the latest versions. They are not
strict: libraries and binaries may build with older releases of their
dependencies, although this is not guaranteed.
You do not need to recompile your s6-rc service databases. To make use
of the new s6-linux-init functionality, however, you will have to
recreate your run-image.
You do not need to restart your supervision tree, unless you're
deleting
your old s6 binaries.
Details of minor package changes follow.
* skalibs-2.11.1.0
----------------
- New function: opendir_at()
* utmps-0.1.1.0
------------
- New binary: utmps-write, a generic utmp client that can write
user-crafted records to the utmp and/or wtmp databases.
* execline-2.8.2.0
----------------
- New -s option to the case binary, enabling fnmatch() (shell)
expression matching instead of regular expression matching.
* s6-rc-0.5.3.0
-------------
- Bundle contents are now read in a "contents.d/" subdirectory, one
file per content, instead of one per line in a "contents" file. In
the same way, service dependencies are now read in a "dependencies.d/"
subdirectory, one file per dependency. Old "contents" and "dependencies"
files are still supported, but deprecated. This change allows better
integration of s6-rc service definitions with package managers.
* s6-linux-init-1.0.7.0
---------------------
- New -S option to s6-linux-init-maker, forcing a sync on halt even
in a container.
* s6-networking-2.5.1.0
---------------------
- SNI wildcarding is implemented, as well as a workaround for a
bearssl bug causing errors on certificate signatures in certain cases.
Enjoy,
Bug-reports welcome.
And happy holidays to you all!
--
Laurent
2021-12-24 17:06:58 +00:00
|
|
|
version = "0.5.3.0";
|
|
|
|
sha256 = "09rznjlz988fk9pff6mxc3dknwh2mibbawr9g62gcscmscmiv8wk";
|
2015-09-25 02:15:36 +01:00
|
|
|
|
2018-09-02 22:31:26 +01:00
|
|
|
description = "A service manager for s6-based systems";
|
2021-08-18 18:33:31 +01:00
|
|
|
platforms = lib.platforms.unix;
|
2015-09-25 02:15:36 +01:00
|
|
|
|
2018-07-22 16:03:19 +01:00
|
|
|
outputs = [ "bin" "lib" "dev" "doc" "out" ];
|
|
|
|
|
2015-09-25 02:15:36 +01:00
|
|
|
configureFlags = [
|
2018-07-22 16:03:19 +01:00
|
|
|
"--libdir=\${lib}/lib"
|
|
|
|
"--libexecdir=\${lib}/libexec"
|
|
|
|
"--dynlibdir=\${lib}/lib"
|
|
|
|
"--bindir=\${bin}/bin"
|
|
|
|
"--includedir=\${dev}/include"
|
|
|
|
"--with-sysdeps=${skalibs.lib}/lib/skalibs/sysdeps"
|
|
|
|
"--with-include=${skalibs.dev}/include"
|
|
|
|
"--with-include=${execline.dev}/include"
|
|
|
|
"--with-include=${s6.dev}/include"
|
|
|
|
"--with-lib=${skalibs.lib}/lib"
|
|
|
|
"--with-lib=${execline.lib}/lib"
|
|
|
|
"--with-lib=${s6.out}/lib"
|
|
|
|
"--with-dynlib=${skalibs.lib}/lib"
|
|
|
|
"--with-dynlib=${execline.lib}/lib"
|
|
|
|
"--with-dynlib=${s6.out}/lib"
|
2018-09-02 22:31:26 +01:00
|
|
|
];
|
2015-09-25 02:15:36 +01:00
|
|
|
|
2021-08-18 18:15:47 +01:00
|
|
|
# s6-rc-compile generates built-in service definitions containing
|
|
|
|
# absolute paths to execline, s6, and s6-rc programs. If we're
|
|
|
|
# running s6-rc-compile as part of a Nix derivation, and we want to
|
|
|
|
# cross-compile that derivation, those paths will be wrong --
|
|
|
|
# they'll be for execline, s6, and s6-rc on the platform we're
|
|
|
|
# running s6-rc-compile on, not the platform we're targeting.
|
|
|
|
#
|
|
|
|
# We can detect this special case of s6-rc being used at build time
|
|
|
|
# in a derivation that's being cross-compiled, because that's the
|
|
|
|
# only time hostPlatform != targetPlatform. When that happens we
|
|
|
|
# modify s6-rc-compile to use the configuration headers for the
|
|
|
|
# system we're cross-compiling for.
|
|
|
|
postConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.targetPlatform) ''
|
|
|
|
substituteInPlace src/s6-rc/s6-rc-compile.c \
|
|
|
|
--replace '<execline/config.h>' '"${targetPackages.execline.dev}/include/execline/config.h"' \
|
|
|
|
--replace '<s6/config.h>' '"${targetPackages.s6.dev}/include/s6/config.h"' \
|
|
|
|
--replace '<s6-rc/config.h>' '"${targetPackages.s6-rc.dev}/include/s6-rc/config.h"'
|
|
|
|
'';
|
|
|
|
|
2018-07-22 16:03:19 +01:00
|
|
|
postInstall = ''
|
2018-09-02 22:31:26 +01:00
|
|
|
# remove all s6 executables from build directory
|
|
|
|
rm $(find -name "s6-rc-*" -type f -mindepth 1 -maxdepth 1 -executable)
|
|
|
|
rm s6-rc libs6rc.*
|
|
|
|
|
2018-07-22 16:03:19 +01:00
|
|
|
mv doc $doc/share/doc/s6-rc/html
|
|
|
|
mv examples $doc/share/doc/s6-rc/examples
|
|
|
|
'';
|
|
|
|
|
2015-09-25 02:15:36 +01:00
|
|
|
}
|