nixpkgs/pkgs/tools/networking/s6-networking/default.nix
Profpatsch 49be064fa5 skawarePackages: release 2020-03
Hello,

  New versions of all the skarnet.org packages are available.
This is mostly a bugfix release (there was an installation bug in
some circumstances with shared libraries) but some packages, notably
execline and s6, have new, useful features.

  The new versions are the following:

skalibs-2.9.2.0
nsss-0.0.2.2
utmps-0.0.3.2
execline-2.6.0.0
s6-2.9.1.0
s6-rc-0.5.1.2
s6-linux-init-1.0.4.0
s6-dns-2.3.2.0
s6-networking-2.3.1.2
s6-portable-utils-2.2.2.2
s6-linux-utils-2.5.1.2
mdevd-0.1.1.2
bcnm-0.0.1.0

  Here are details for the packages that have more than bugfixes:

* skalibs-2.9.2.0
   ---------------

  - New header: skalibs/bigkv.h. It's a set of functions allowing
efficient lookups in a large set of strings (typically read from the
command line or the environment).

  https://skarnet.org/software/skalibs/
  git://git.skarnet.org/skalibs

  * execline-2.6.0.0
    ----------------

  - It's a major release because an API has been modified: dollarat.
Beforehand, dollarat's -0 option would always prevail over any -d
option. Now, dollarat has its conflicting -0 and -d options handled
in the conventional way, with rightmost priority.

  - The runblock program now accepts a command line prefix, which is
given as runblock's own command line. This allows blocks to serve as
arguments to a new command, instead of having to be full command lines
by themselves.

  - New binary: posix-umask.

  - The former "cd" program is now named "execline-cd" and the former
"umask" program is named "execline-umask". When the=20
--enable-pedantic-posix
option is not given at configure time, "cd" and "umask" are symbolic
links created at installation time and pointing to execline-cd and
execline-umask respectively. When the --enable-pedantic-posix option is
given, the symbolic links point to posix-cd and posix-umask instead.

  - With posix-cd and posix-umask (and the changes to wait done in the
previous version), execline is now fully POSIX-compliant when built with
the --enable-pedantic-posix option. This will certainly, without the
slightest hint of a doubt, change distributions' attitudes about it.

  https://skarnet.org/software/execline/
  git://git.skarnet.org/execline

  * s6-2.9.1.0
    ----------

  - A new '?' directive has been added to s6-log. It behaves exactly like
'!', except that it spawns the given processor with /bin/sh as an
interpreter instead of execlineb.

  - execline support is now optional: it can be disabled by specifying
--disable-execline at configure time. Some functionality is unavailable
when execline support is disabled:
    * s6-log's '!' directive
    * s6-notifyoncheck's -c option
    * s6-ipcserver-access's support for 'exec' directives in a ruleset

  - A new -X option has been added to s6-svscan, to specify a descriptor
that will be passed as stderr to a service spawned by this s6-svscan and
named s6-svscan-log. This is used in the new s6-linux-init, to avoid
needing to hardcode the /dev/console name for the catch-all logger's
standard error.

  - On systems that define SIGPWR and SIGWINCH, s6-svscan -s now diverts
those signals. This allows powerfail and kbrequest events to be handled
when s6-svscan runs as process 1.

  https://skarnet.org/software/s6/
  git://git.skarnet.org/s6

  * s6-linux-init-1.0.4.0
    ---------------------

  - New options have been added to s6-linux-init-maker: to support
running s6-linux-init without a catch-all logger, and to support running
it in a container.

  - s6-linux-init-maker now adds a SIGPWR handler to the default image:
on receipt of a SIGPWR, the system's shutdown procedure is triggered.

  - s6-linux-init now handles kbrequest, which triggers a SIGWINCH in
init when a special, configurable set of keys is pressed. By default,
no SIGWINCH handler is declared in the image, and no set of keys is
bound to kbrequest.

  https://skarnet.org/software/s6-linux-init/
  git://git.skarnet.org/s6-linux-init

  * s6-dns-2.3.2.0
    --------------

  - New library: libdcache, implementing a clean cache structure
to contain DNS data. It's still not used at the moment.

  https://skarnet.org/software/s6-dns/
  git://git.skarnet.org/s6-dns

  * bcnm-0.0.1.0
    ------------

  - First numbered release, because the Ad=C3=A9lie Linux distribution,
which uses libwpactrl, needs an official release instead of pulling
from git.

  - libwpactrl is a set of C functions helping control a wpa_supplicant
process.

  - bcnm-waitif is a binary that waits for network interface state
events such as appearance/disappearance, up/down, running/not-running.
It is useful to avoid race conditions during a boot sequence, for
instance.

  https://skarnet.org/software/bcnm/
  git://git.skarnet.org/bcnm

  Enjoy,
  Bug-reports welcome.

--
  Laurent
2020-03-30 01:23:46 +02:00

68 lines
1.8 KiB
Nix

{ stdenv, skawarePackages
# Whether to build the TLS/SSL tools and what library to use
# acceptable values: "libressl", false
# TODO: add bearssl
, sslSupport ? "libressl" , libressl
}:
with skawarePackages;
let
inherit (stdenv) lib;
sslSupportEnabled = sslSupport != false;
sslLibs = {
libressl = libressl;
};
in
assert sslSupportEnabled -> sslLibs ? ${sslSupport};
buildPackage {
pname = "s6-networking";
version = "2.3.1.2";
sha256 = "1029bgwfmv903y5ji93j75m7p2jgchdxya1khxzb42q2z7yxnlyr";
description = "A suite of small networking utilities for Unix systems";
outputs = [ "bin" "lib" "dev" "doc" "out" ];
# TODO: nsss support
configureFlags = [
"--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-include=${s6-dns.dev}/include"
"--with-lib=${skalibs.lib}/lib"
"--with-lib=${execline.lib}/lib"
"--with-lib=${s6.out}/lib"
"--with-lib=${s6-dns.lib}/lib"
"--with-dynlib=${skalibs.lib}/lib"
"--with-dynlib=${execline.lib}/lib"
"--with-dynlib=${s6.out}/lib"
"--with-dynlib=${s6-dns.lib}/lib"
]
++ (lib.optionals sslSupportEnabled [
"--enable-ssl=${sslSupport}"
"--with-include=${lib.getDev sslLibs.${sslSupport}}/include"
"--with-lib=${lib.getLib sslLibs.${sslSupport}}/lib"
"--with-dynlib=${lib.getLib sslLibs.${sslSupport}}/lib"
]);
postInstall = ''
# remove all s6 executables from build directory
rm $(find -name "s6-*" -type f -mindepth 1 -maxdepth 1 -executable)
rm minidentd
rm libs6net.* libstls.*
mv doc $doc/share/doc/s6-networking/html
'';
}