about summary refs log tree commit diff
path: root/pkgs/os-specific/linux/upstart/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/upstart/default.nix')
-rw-r--r--pkgs/os-specific/linux/upstart/default.nix29
1 files changed, 22 insertions, 7 deletions
diff --git a/pkgs/os-specific/linux/upstart/default.nix b/pkgs/os-specific/linux/upstart/default.nix
index 938f4edd2fb8..d5b9be34d9c3 100644
--- a/pkgs/os-specific/linux/upstart/default.nix
+++ b/pkgs/os-specific/linux/upstart/default.nix
@@ -1,17 +1,20 @@
-{ stdenv, fetchurl, pkgconfig, dbus, libnih }:
+{ stdenv, fetchurl, pkgconfig, dbus, libnih, python, makeWrapper, utillinux
+, writeScript }:
 
-let version = "1.5"; in
+let
+  inherit (stdenv.lib) makeBinPath;
+  version = "1.5";
 
-stdenv.mkDerivation rec {
+  upstart = stdenv.mkDerivation rec {
   name = "upstart-${version}";
-  
+
   src = fetchurl {
     url = "http://upstart.ubuntu.com/download/${version}/${name}.tar.gz";
     sha256 = "01w4ab6nlisz5blb0an1sxjkndwikr7sjp0cmz4lg00g3n7gahmx";
   };
 
-  buildInputs = [ pkgconfig dbus libnih ];
-  
+  buildInputs = [ pkgconfig dbus libnih python makeWrapper];
+
   NIX_CFLAGS_COMPILE =
     ''
       -DSHELL="${stdenv.shell}"
@@ -33,6 +36,16 @@ stdenv.mkDerivation rec {
       t=$out/etc/bash_completion.d
       mkdir -p $t
       cp ${./upstart-bash-completion} $t/upstart
+
+      # Patch some binaries to refer to the correct binary location.
+      sed -i "s,/sbin/init,$out/bin/init,g" $out/bin/init-checkconf
+      sed -i "s,initctl,$out/bin/initctl," $out/bin/initctl2dot
+
+      # Add some missing executable permissions, and wrap binaries.
+      chmod +x $out/bin/init-checkconf $out/bin/init-checkconf
+      wrapProgram $out/bin/init-checkconf \
+        --prefix PATH : $out/bin:${makeBinPath [utillinux dbus]}
+      wrapProgram $out/bin/initctl2dot --prefix PATH : $out/bin
     '';
 
   meta = {
@@ -40,4 +53,6 @@ stdenv.mkDerivation rec {
     description = "An event-based replacement for the /sbin/init daemon";
     platforms = stdenv.lib.platforms.linux;
   };
-}
+};
+
+in upstart