nixpkgs/pkgs/tools/admin/daemontools/default.nix
Michal Sojka 2507e7c69f daemontools: add manpages from Debian
Using software, whose documentation is only available online is not
always convenient. This package has only online docuemntation and
upstream provides no manpages.

This commit extends the package by manpages prepared by Debian
developers. The manpages are added to a separate output. Listing of
the outputs of this package now looks like this:

    result
    └── bin
        ├── envdir
        ├── envuidgid
        ├── fghack
        ├── multilog
        ├── pgrphack
        ├── readproctitle
        ├── setlock
        ├── setuidgid
        ├── softlimit
        ├── supervise
        ├── svc
        ├── svok
        ├── svscan
        ├── svscanboot
        ├── svstat
        ├── tai64n
        └── tai64nlocal
    result-man
    └── share
        ├── doc
        │   └── daemontools
        │       └── README.man
        └── man
            └── man8
                ├── envdir.8.gz
                ├── envuidgid.8.gz
                ├── fghack.8.gz
                ├── multilog.8.gz
                ├── pgrphack.8.gz
                ├── readproctitle.8.gz
                ├── setlock.8.gz
                ├── setuidgid.8.gz
                ├── softlimit.8.gz
                ├── supervise.8.gz
                ├── svc.8.gz
                ├── svok.8.gz
                ├── svscan.8.gz
                ├── svscanboot.8.gz
                ├── svstat.8.gz
                ├── tai64n.8.gz
                └── tai64nlocal.8.gz
2022-08-21 21:20:33 +02:00

63 lines
1.7 KiB
Nix

{ fetchurl, bash, glibc, lib, stdenv, installShellFiles }:
let
man-pages = fetchurl {
url = "https://salsa.debian.org/debian/daemontools/-/archive/debian/1%250.76-8/daemontools-debian-1%250.76-8.tar.gz?path=debian/daemontools-man";
sha256 = "sha256-om5r1ddUx1uObp9LR+SwCLLtm+rRuLoq28OLbhWhdzU=";
};
in
stdenv.mkDerivation rec {
pname = "daemontools";
version = "0.76";
src = fetchurl {
url = "https://cr.yp.to/daemontools/daemontools-${version}.tar.gz";
sha256 = "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5";
};
patches = [ ./fix-nix-usernamespace-build.patch ];
outputs = [ "out" "man" ];
nativeBuildInputs = [ installShellFiles ];
configurePhase = ''
cd daemontools-${version}
sed -ie '1 s_$_ -include ${glibc.dev}/include/errno.h_' src/conf-cc
substituteInPlace src/Makefile \
--replace '/bin/sh' '${bash}/bin/bash -oxtrace'
sed -ie "s_^PATH=.*_PATH=$src/daemontools-${version}/compile:''${PATH}_" src/rts.tests
cat ${glibc.dev}/include/errno.h
'';
buildPhase = ''
package/compile
'';
installPhase = ''
for cmd in $(cat package/commands); do
install -Dm755 "command/$cmd" "$out/bin/$cmd"
done
tar -xz --strip-components=2 -f ${man-pages}
installManPage daemontools-man/*.8
install -v -Dm644 daemontools-man/README $man/share/doc/daemontools/README.man
'';
# Keep README.man in the man output (see _multioutDocs())
outputDoc = "man";
meta = {
license = lib.licenses.publicDomain;
homepage = "https://cr.yp.to/daemontools.html";
description = "A collection of tools for managing UNIX services";
maintainers = with lib.maintainers; [ kevincox ];
platforms = lib.platforms.unix;
};
}