Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 86 lines 2.3 kB view raw
1{ 2 fetchurl, 3 bash, 4 glibc, 5 lib, 6 stdenv, 7 installShellFiles, 8}: 9 10let 11 man-pages = fetchurl { 12 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"; 13 sha256 = "sha256-om5r1ddUx1uObp9LR+SwCLLtm+rRuLoq28OLbhWhdzU="; 14 }; 15in 16stdenv.mkDerivation rec { 17 pname = "daemontools"; 18 version = "0.76"; 19 20 src = fetchurl { 21 url = "https://cr.yp.to/daemontools/daemontools-${version}.tar.gz"; 22 sha256 = "07scvw88faxkscxi91031pjkpccql6wspk4yrlnsbrrb5c0kamd5"; 23 }; 24 25 patches = [ 26 (fetchurl { 27 url = "https://salsa.debian.org/debian/daemontools/-/raw/1844f0e704ab66844da14354a16ea068eba0403f/debian/patches/0005-fix-ftbfs.patch"; 28 hash = "sha256-Q7t0kwajjTW2Ms5m44E4spBwHi5Xi6Y39FQVsawr8LA="; 29 }) 30 ./fix-nix-usernamespace-build.patch 31 ]; 32 33 outputs = [ 34 "out" 35 "man" 36 ]; 37 38 nativeBuildInputs = [ installShellFiles ]; 39 40 configurePhase = '' 41 runHook preConfigure 42 43 cd daemontools-${version} 44 45 sed -i -e '1 s_$_ -include ${glibc.dev}/include/errno.h_' src/conf-cc 46 47 substituteInPlace src/Makefile \ 48 --replace-fail '/bin/sh' '${bash}/bin/bash -oxtrace' 49 50 sed -i -e "s_^PATH=.*_PATH=$src/daemontools-${version}/compile:''${PATH}_" src/rts.tests 51 52 cat ${glibc.dev}/include/errno.h 53 54 runHook postConfigure 55 ''; 56 57 buildPhase = '' 58 package/compile 59 ''; 60 61 installPhase = '' 62 for cmd in $(cat package/commands); do 63 install -Dm755 "command/$cmd" "$out/bin/$cmd" 64 done 65 66 tar -xz --strip-components=2 -f ${man-pages} 67 installManPage daemontools-man/*.8 68 install -v -Dm644 daemontools-man/README $man/share/doc/daemontools/README.man 69 # fix svscanboot 70 sed -i "s_/command/__" "$out/bin/svscanboot" 71 sed -i "s_/service_/var/service_g" "$out/bin/svscanboot" 72 sed -i "s_^PATH=.*_PATH=$out/bin:\$PATH_" "$out/bin/svscanboot" 73 ''; 74 75 # Keep README.man in the man output (see _multioutDocs()) 76 outputDoc = "man"; 77 78 meta = { 79 license = lib.licenses.publicDomain; 80 homepage = "https://cr.yp.to/daemontools.html"; 81 description = "Collection of tools for managing UNIX services"; 82 83 maintainers = with lib.maintainers; [ kevincox ]; 84 platforms = lib.platforms.unix; 85 }; 86}