base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / da / daemontools / package.nix
blob491a03bb81e2b5ef615f4f13f81ee51ed4ee0096
1 { fetchurl, bash, glibc, lib, stdenv, installShellFiles }:
3 let
4   man-pages = fetchurl {
5     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";
6     sha256 = "sha256-om5r1ddUx1uObp9LR+SwCLLtm+rRuLoq28OLbhWhdzU=";
7   };
8 in
9 stdenv.mkDerivation rec {
10   pname = "daemontools";
11   version = "0.76";
13   src = fetchurl {
14     url = "https://cr.yp.to/daemontools/daemontools-${version}.tar.gz";
15     sha256 = "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5";
16   };
18   patches = [ ./fix-nix-usernamespace-build.patch ];
20   outputs = [ "out" "man" ];
22   nativeBuildInputs = [ installShellFiles ];
24   configurePhase = ''
25     cd daemontools-${version}
27     sed -ie '1 s_$_ -include ${glibc.dev}/include/errno.h_' src/conf-cc
29     substituteInPlace src/Makefile \
30       --replace '/bin/sh' '${bash}/bin/bash -oxtrace'
32     sed -ie "s_^PATH=.*_PATH=$src/daemontools-${version}/compile:''${PATH}_" src/rts.tests
34     cat ${glibc.dev}/include/errno.h
35   '';
37   buildPhase = ''
38     package/compile
39   '';
41   installPhase = ''
42     for cmd in $(cat package/commands); do
43       install -Dm755 "command/$cmd" "$out/bin/$cmd"
44     done
46     tar -xz --strip-components=2 -f ${man-pages}
47     installManPage daemontools-man/*.8
48     install -v -Dm644 daemontools-man/README $man/share/doc/daemontools/README.man
49     # fix svscanboot
50     sed -i "s_/command/__"                    "$out/bin/svscanboot"
51     sed -i "s_/service_/var/service_g"        "$out/bin/svscanboot"
52     sed -i "s_^PATH=.*_PATH=$out/bin:\$PATH_" "$out/bin/svscanboot"
53   '';
55   # Keep README.man in the man output (see _multioutDocs())
56   outputDoc = "man";
58   meta = {
59     license = lib.licenses.publicDomain;
60     homepage = "https://cr.yp.to/daemontools.html";
61     description = "Collection of tools for managing UNIX services";
63     maintainers = with lib.maintainers; [ kevincox ];
64     platforms = lib.platforms.unix;
65   };