Commit Graph

210 Commits

Author SHA1 Message Date
Nicolas Pierron
ef63ea98f4 Experiment with dual option types (list & attribute sets).
svn path=/nixos/trunk/; revision=27978
2011-07-27 20:55:35 +00:00
Eelco Dolstra
1e5bd11a53 * Create /run in the initrd and bind-mount it into the target root.
This allows Udev to share its database between stage 1 and 2, which
  in turn is expected by the LVM Udev rules.

svn path=/nixos/trunk/; revision=27926
2011-07-24 23:36:30 +00:00
Eelco Dolstra
14636ba057 * The Powers That Be have decided that there shall be a /run to
replace /var/run and /var/lock.  For instance, udev now keeps state
  in /run/udev instead of /dev/.udev.  See

    http://lists.fedoraproject.org/pipermail/devel/2011-March/150031.html
    http://bugs.freestandards.org/show_bug.cgi?id=718

  So this patch creates /run as a tmpfs, and symlinks /var/run to /run
  and /var/lock to /run/lock.

  TODO: create /run in stage 1 and propagate it to stage 2.    

svn path=/nixos/trunk/; revision=27803
2011-07-16 19:27:45 +00:00
Eelco Dolstra
c41b01ea23 * Canonicalize boot.loader.grub.device before calling grub-install to
ensure that values such as /dev/disk/by-id/ata-WDC... work.

svn path=/nixos/trunk/; revision=27519
2011-06-22 18:22:58 +00:00
Eelco Dolstra
7579933824 * Don't mount /dev/cgroup with the "ns" subsystem. If it's mounted,
then every unshare(CLONE_NEWNS) system call causes a new entry to be
  created in /dev/cgroup/<pid>, which is not removed automatically.
  This can cause subsequent calls to unshare() to fail if the PID has
  wrapped around.  Worse, a large number of entries in /dev/cgroup
  causes a very substantial system slowdown: doing 10,000
  fork()/unshare(CLONE_NEWNS)/exit() calls took 21s without the "ns"
  subsystem, but 2m43s with it, and the system slows down permanently
  until the entries in /dev/cgroup are removed (going to a load of > 6
  on my laptop).

  This is particularly important for Nix because its chroot feature
  uses unshare(CLONE_NEWNS).  (http://yellowgrass.org/issue/Nix/219)

svn path=/nixos/trunk/; revision=27216
2011-05-11 09:33:24 +00:00
Eelco Dolstra
97a37f7c12 * "stage1panic" -> "stage1panic=1" to get rid of a harmless warning.
svn path=/nixos/trunk/; revision=26756
2011-04-08 14:42:35 +00:00
Eelco Dolstra
ef80abc886 * Remove some dead code.
svn path=/nixos/trunk/; revision=26634
2011-03-31 21:21:55 +00:00
Eelco Dolstra
e46fca2185 * Mount /dev/cgroup to enable cgroup support.
svn path=/nixos/trunk/; revision=26112
2011-02-25 14:31:15 +00:00
Eelco Dolstra
63bd2744b7 * Partially revert r25991 because it depends on the x-updates branch.
svn path=/nixos/trunk/; revision=25995
2011-02-16 16:48:34 +00:00
Eelco Dolstra
131f3c8e63 * Because cdrom_id now links against libpthread, LD_LIBRARY_PATH must
be set when udevd calls external programs.  (The udev manpage claims
  that udevd passes its own environment variables, but this is not the
  case.)
* Get rid of some udev rule hacks that no longer seem needed.

svn path=/nixos/trunk/; revision=25991
2011-02-16 14:38:52 +00:00
Eelco Dolstra
c2f7256101 * Added an option `system.upstartEnvironment' to add a variable to all
Upstart jobs.

svn path=/nixos/trunk/; revision=25478
2011-01-09 22:00:41 +00:00
Lluís Batlle i Rossell
d5fb41795f Adding a wake on lan module.
svn path=/nixos/trunk/; revision=24958
2010-12-02 20:23:45 +00:00
Eelco Dolstra
dff372db3c * Fix evaluation of the luksroot module when luksRoot == null. The
problem is that configuration values below a mkIf are evaluated
  strictly even if the condition is false.  Thus "${luksRoot}" causes
  an evaluation error.  As a workaround, use the empty string instead
  of `null' as the default value.  However, we should really fix the
  laziness of mkIf.  It's likely that NixOS evaluation would be much
  faster if it didn't have to evaluate disabled configuration values.

svn path=/nixos/trunk/; revision=24477
2010-10-25 22:21:51 +00:00
Evgeny Egorochkin
791c758b41 Encrypted root support via LUKS
svn path=/nixos/trunk/; revision=24459
2010-10-25 00:57:30 +00:00
Eelco Dolstra
cda2e41c01 * Added a "xendomains" job to automatically start the domains defined
in /etc/xen/auto at boot time, to save all running domains during
  shutdown, and to restore all saved domains at boot time.

svn path=/nixos/trunk/; revision=24121
2010-10-06 16:07:16 +00:00
Eelco Dolstra
aeb89fc753 * Set /proc/sys/kernel/poweroff_cmd to Upstart's poweroff command
(rather than /sbin/poweroff).  Xen's "xm shutdown" needs this to
  enable the host to cleanly shutdown the guest.

svn path=/nixos/trunk/; revision=24094
2010-10-05 17:58:58 +00:00
Eelco Dolstra
8a6fad83f4 * Add a job attribute (path) to allow adding packages to the job's
$PATH environment variable.

svn path=/nixos/trunk/; revision=23780
2010-09-14 11:22:17 +00:00
Eelco Dolstra
c4f910f550 * Substitute the path of the system derivation directly in the stage 2
init script.  This removes the need for the `systemConfig' boot
  parameter; `init=<stage-2-init>' is enough.  However, the GRUB menu
  builder still needs to add `systemConfig' to the kernel command line
  for compatibility with old configurations.

svn path=/nixos/trunk/; revision=23775
2010-09-13 22:10:25 +00:00
Eelco Dolstra
4046056cdc * In the activation script, don't require the path to the "system"
derivation on the command line.

svn path=/nixos/trunk/; revision=23770
2010-09-13 18:19:15 +00:00
Eelco Dolstra
c8d1774f09 * Speed up the initialisation of /etc in the activation script a lot
by doing it in Perl instead of in Bash.  Forking a zillion times is
  slow.

svn path=/nixos/trunk/; revision=23766
2010-09-13 17:26:42 +00:00
Eelco Dolstra
f729f12e4e Some cleanups in the activation script:
* Moved some scriptlets to the appropriate modules.
* Put the scriptlet that sets the default path at the start, since it
  never makes sense not to have it there.  It no longer needs to be
  declared as a dependency.
* If a scriptlet has no dependencies, it can be denoted as a plain
  string (i.e., `noDepEntry' is not needed anymore).

svn path=/nixos/trunk/; revision=23762
2010-09-13 15:41:38 +00:00
Eelco Dolstra
c1295661c4 * Added a command `nixos-rebuild build-vm-with-bootloader'. This is
like `build-vm', but boots using the regular boot loader (i.e. GRUB
  1 or 2) rather than booting directly from the kernel/initrd.  Thus
  it allows testing of GRUB.

svn path=/nixos/trunk/; revision=23747
2010-09-13 12:34:58 +00:00
Eelco Dolstra
987dd76811 * Added a module to enable the Xen hypervisor.
svn path=/nixos/trunk/; revision=23739
2010-09-12 22:43:45 +00:00
Eelco Dolstra
6258845b61 svn path=/nixos/trunk/; revision=23727 2010-09-10 15:25:58 +00:00
Nicolas Pierron
c9dc3651da Replace mkOverride by its alias mkOverrideTemplate to remove the unused
template argument of mkOverride later.

svn path=/nixos/trunk/; revision=23631
2010-09-03 19:10:59 +00:00
Eelco Dolstra
f1a6a8b6e0 svn path=/nixos/trunk/; revision=23614 2010-09-03 11:39:48 +00:00
Eelco Dolstra
f067d179ab * Create /nix/var/nix/gcroots/tmp in the activation script. The
build hook uses this directory to store temporary GC roots.  (It
  creates it if it doesn't exist, but it's better to do it here as
  well to ensure the right ownership and permissions.)
* Clear /nix/var/nix/gcroots/tmp and /nix/var/nix/temproots at boot
  time.

svn path=/nixos/trunk/; revision=23417
2010-08-25 11:59:04 +00:00
Eelco Dolstra
3f10cf70f6 * Regression test for the build hook mechanism.
svn path=/nixos/trunk/; revision=23395
2010-08-24 13:27:28 +00:00
Lluís Batlle i Rossell
fe2f7eae17 Making the stage1 work on mips too (for the name of the dynamic loader)
svn path=/nixos/trunk/; revision=23325
2010-08-21 18:23:55 +00:00
Michael Raskin
295df77f21 Move resume section after udev launch - on some systems devices are recognized by kernel only after udev works.
svn path=/nixos/trunk/; revision=23176
2010-08-14 20:12:05 +00:00
Eelco Dolstra
313629adcf * Add ext4 to the default initrd.
svn path=/nixos/trunk/; revision=23088
2010-08-10 10:12:18 +00:00
Eelco Dolstra
e41e6a65bb * Make sure that /tmp/.ICE-unix is owned by root and has 1777
permissions.  Otherwise it ends up being owned by the first user to
  log in, and other users' iceauth calls fail.

svn path=/nixos/trunk/; revision=23052
2010-08-09 10:59:20 +00:00
Eelco Dolstra
e8e7ee356c * In the installation CD, pass the label of the CD through the
root=... kernel command line parameter, instead of hard-coding it in
  `fileSystems'.  This is to allow CD-to-USB converters such as
  UNetbootin to rewrite the kernel command line to the label or UUID
  of the USB stick.

svn path=/nixos/trunk/; revision=23024
2010-08-07 14:16:18 +00:00
Eelco Dolstra
21e62884e7 * switch-to-configuration.sh: Signal dbus to reload its configuration.
svn path=/nixos/trunk/; revision=22718
2010-07-23 10:52:51 +00:00
Evgeny Egorochkin
88a400f578 Fix LVM failing test due to /proc/devices not being available in some of OpenVZ containers
svn path=/nixos/trunk/; revision=22717
2010-07-22 22:45:24 +00:00
Eelco Dolstra
d659488209 * Use the regular GRUB menu builder for Amazon. There are two issues:
we want to generate the GRUB menu without actually installing GRUB
  (because Amazon supplies its own pv-grub), and each menu entry
  requires "root (hd0)".  For the first, allow boot.loader.grub.device
  to be set to "nodev" to indicate that the GRUB menu should be
  generated without installing GRUB.  For the second, add an option
  boot.loader.grub.extraPerEntryConfig to allow commands to be added
  to each GRUB menu entry (in this case, "root (hd0)").

svn path=/nixos/trunk/; revision=22712
2010-07-22 14:40:29 +00:00
Eelco Dolstra
e7c0c929ed * Work around a bug in QEMU, which doesn't implement the "READ DISC
INFORMATION" SCSI command:

    https://bugzilla.redhat.com/show_bug.cgi?id=609049

  As a result, `cdrom_id' doesn't print
  ID_CDROM_MEDIA_TRACK_COUNT_DATA, which in turn prevents the
  /dev/disk/by-label symlinks from being created.  We need these in
  the NixOS installation CD, so use ID_CDROM_MEDIA in the
  corresponding udev rules for now.  This was the behaviour in udev <=
  154.  See also
       
    http://www.spinics.net/lists/hotplug/msg03935.html

svn path=/nixos/trunk/; revision=22691
2010-07-21 21:15:54 +00:00
Eelco Dolstra
1b04d3a813 * Absolutise $systemConfig in case it's a symlink.
svn path=/nixos/trunk/; revision=22677
2010-07-20 13:50:10 +00:00
Eelco Dolstra
63962dd7d6 * Disable the test to see whether $stage2Init exists. For some
unfathomable reason this test fails on EC2 if it's a symlink
  (despite the -L test).  I give up.

svn path=/nixos/trunk/; revision=22676
2010-07-20 13:49:04 +00:00
Eelco Dolstra
b14f80c89a * The modprobe wrapper nowadays checks whether the version of the
current kernel module tree matches the booted kernel, so it should
  be safe to use after an upgrade.

svn path=/nixos/trunk/; revision=22627
2010-07-18 20:19:27 +00:00
Eelco Dolstra
f3e1607758 * Don't run the emergency-shell task after nixos-rebuild because it
screws up the X server (CPU usage goes to 100%, switching virtual
  consoles no longer works, etc.).  TODO: we need some generic way to
  mark jobs that shouldn't be started automatically.

svn path=/nixos/trunk/; revision=22608
2010-07-15 12:31:18 +00:00
Eelco Dolstra
bfe46a653b * Mount /dev, /proc and /sys when booting without a stage 1 (e.g. on
Amazon).

svn path=/nixos/trunk/; revision=22598
2010-07-14 10:55:45 +00:00
Eelco Dolstra
54a4eead20 * Typos.
svn path=/nixos/trunk/; revision=22537
2010-07-08 16:21:55 +00:00
Eelco Dolstra
b076121430 * Don't use the -v flag because not every fsck backend knows it.
svn path=/nixos/trunk/; revision=22512
2010-07-07 14:25:16 +00:00
Eelco Dolstra
d43d321e86 * Sync with the trunk.
svn path=/nixos/branches/boot-order/; revision=22349
2010-06-20 20:54:31 +00:00
Eelco Dolstra
69c7175404 * During shutdown, don't unmount mount points that don't exist (in the
current namespace).  This prevents warnings about the aufs/tmpfs
  mounts from the initrd used by the installation CD.

svn path=/nixos/branches/boot-order/; revision=22299
2010-06-16 22:16:43 +00:00
Eelco Dolstra
a5c433696c * Put all of /var/run (not just /var/run/nscd) on a tmpfs to simplify
shutdown.  (Portmap and statd are needed during shutdown to unmount
  NFS volumes but have open files in /var/run.)
* In the shutdown job, don't kill PIDs belonging to Upstart jobs that
  are still running.  If they don't stop on the "starting shutdown"
  event, then they're needed during shutdown (such as portmap and
  statd).
* NFS test: test whether the shutdown quickly unmounts NFS volumes
  (i.e. whether portmap and statd are still running).

svn path=/nixos/branches/boot-order/; revision=22204
2010-06-09 22:29:06 +00:00
Eelco Dolstra
3eac003800 * Maintain /var/log/wtmp correctly during boot/shutdown.
svn path=/nixos/branches/boot-order/; revision=22182
2010-06-08 12:48:16 +00:00
Eelco Dolstra
7c3ae9e716 * During shutdown, warn explicitly about filesystems that could not be
unmounted or remounted read-only.
* Don't try to unmount / or /nix/store.

svn path=/nixos/branches/boot-order/; revision=22181
2010-06-08 11:52:16 +00:00
Eelco Dolstra
23cc979f61 * Run `swapoff -a' during shutdown. Otherwise filesystems containing
swapfiles cannot be unmounted or even remounted read-only.
* In the remount, pass `-t none' to get a more informative error
  message if the filesystem is in use.

svn path=/nixos/branches/boot-order/; revision=22179
2010-06-08 10:06:00 +00:00