diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-01-08 18:11:56 +0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-01-08 18:11:56 +0100 |
commit | cdb2f64a3553ac20824c4fd5b40c1115cbaf06e3 (patch) | |
tree | 0ce5dea3202b9363e15b23d89d25795afb2827f7 /pkgs | |
parent | 30201193eab7832b05a962743591d5ee8bdda503 (diff) | |
download | nixpkgs-cdb2f64a3553ac20824c4fd5b40c1115cbaf06e3.tar nixpkgs-cdb2f64a3553ac20824c4fd5b40c1115cbaf06e3.tar.gz nixpkgs-cdb2f64a3553ac20824c4fd5b40c1115cbaf06e3.tar.bz2 nixpkgs-cdb2f64a3553ac20824c4fd5b40c1115cbaf06e3.tar.lz nixpkgs-cdb2f64a3553ac20824c4fd5b40c1115cbaf06e3.tar.xz nixpkgs-cdb2f64a3553ac20824c4fd5b40c1115cbaf06e3.tar.zst nixpkgs-cdb2f64a3553ac20824c4fd5b40c1115cbaf06e3.zip |
systemd: Get rescue.service and emergency.service to work
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/os-specific/linux/systemd/default.nix | 9 | ||||
-rw-r--r-- | pkgs/os-specific/linux/sysvinit/default.nix | 11 |
2 files changed, 12 insertions, 8 deletions
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix index 975a37fffce..e605b998c4a 100644 --- a/pkgs/os-specific/linux/systemd/default.nix +++ b/pkgs/os-specific/linux/systemd/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, dbus, kmod , xz, pam, acl, cryptsetup, libuuid, m4, utillinux -, glib, kbd, libxslt, coreutils, libgcrypt +, glib, kbd, libxslt, coreutils, libgcrypt, sysvtools }: assert stdenv.gcc.libc or null != null; @@ -42,14 +42,17 @@ stdenv.mkDerivation rec { preConfigure = '' # FIXME: patch this in systemd properly (and send upstream). - for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c; do + # FIXME: use sulogin from util-linux once updated. + for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.m4.in; do test -e $i substituteInPlace $i \ --replace /bin/mount ${utillinux}/bin/mount \ --replace /bin/umount ${utillinux}/bin/umount \ --replace /sbin/swapon ${utillinux}/sbin/swapon \ --replace /sbin/swapoff ${utillinux}/sbin/swapoff \ - --replace /sbin/fsck ${utillinux}/sbin/fsck + --replace /sbin/fsck ${utillinux}/sbin/fsck \ + --replace /bin/echo ${coreutils}/bin/echo \ + --replace /sbin/sulogin ${sysvtools}/sbin/sulogin done substituteInPlace src/journal/catalog.c \ diff --git a/pkgs/os-specific/linux/sysvinit/default.nix b/pkgs/os-specific/linux/sysvinit/default.nix index 7b3ea62ea2d..99aebd11667 100644 --- a/pkgs/os-specific/linux/sysvinit/default.nix +++ b/pkgs/os-specific/linux/sysvinit/default.nix @@ -4,12 +4,12 @@ let version = "2.88dsf"; in stdenv.mkDerivation { name = (if withoutInitTools then "sysvtools" else "sysvinit") + "-" + version; - + src = fetchurl { url = "mirror://savannah/sysvinit/sysvinit-${version}.tar.bz2"; sha256 = "068mvzaz808a673zigyaqb63xc8bndh2klk16zi5c83rw70wifv0"; }; - + prePatch = '' # Patch some minimal hard references, so halt/shutdown work sed -i -e "s,/sbin/,$out/sbin/," src/halt.c src/init.c src/paths.h @@ -27,16 +27,17 @@ stdenv.mkDerivation { ''; postInstall = stdenv.lib.optionalString withoutInitTools - '' + '' mv $out/sbin/killall5 $out/bin ln -sf killall5 $out/bin/pidof - rm -rf $out/sbin + shopt -s extglob + rm -rf $out/sbin/!(sulogin) rm -rf $out/include rm -rf $out/share/man/man5 rm $(for i in $out/share/man/man8/*; do echo $i; done | grep -v 'pidof\|killall5') rm $out/bin/{mountpoint,wall} $out/share/man/man1/{mountpoint.1,wall.1} ''; - + meta = { homepage = http://www.nongnu.org/sysvinit/; description = "Utilities related to booting and shutdown"; |