Commit graph

381 commits

Author SHA1 Message Date
Eelco Dolstra
362d1389d3 * mountall: make the "console output" Upstart stanza do its work. We
were redirecting output to /var/log/upstart/<job>, so it didn't work
  properly.
* mountall-ip-up: send the USR1 signal to the mountall process by
  looking up its PID, rather than doing "pkill -USR1 mountall".  This
  prevents a very subtle race condition where USR1 is delivered to a
  child process of mountall (such as fsck), if pkill sees the child
  just before its execve().  There is actually still a race condition
  because mountall installs its USR1 handler *after* daemonising, so
  mountall-ip-up could accidentally kill mountall.  Should report this
  to upstream.

svn path=/nixos/trunk/; revision=33236
2012-03-18 17:48:19 +00:00
Eelco Dolstra
2cc8d0363e * Move the implementation of boot.kernelModules to udev's postStart.
It needs udevd to be running because the modules may require
  firmware.  Thanks to Mathijs and Arie for pointing this out.

svn path=/nixos/trunk/; revision=33234
2012-03-18 14:03:42 +00:00
Eelco Dolstra
21393eed1e * Use the --quiet flag.
svn path=/nixos/trunk/; revision=33225
2012-03-18 02:36:44 +00:00
Eelco Dolstra
86d8d62d16 * Allow Upstart jobs to declare that they shouldn't be restarted by
switch-to-configuration.  E.g. the X server shouldn't be restarted
  because that kills all the X clients.

svn path=/nixos/trunk/; revision=33223
2012-03-18 02:10:39 +00:00
Eelco Dolstra
3495a773f9 * Improved Upstart job handling in switch-to-configuration. It no
longer compares the current configuration to the previous
  configuration, but instead compares the current Upstart state to the
  intended state.  Thus, if the switch script is interrupted, running
  nixos-rebuild again will resume starting/stopping Upstart jobs where
  the previous run left off.

  We determine if an Upstart job has changed by having the pre-start
  script of each Upstart job put a symlink to its .conf file in
  /var/run/upstart-jobs.  So if this symlink differs from the target
  of /etc/init/<job>.conf, then the job has changed.  This also
  prevents multiple restarts of dependent jobs.  E.g., if job B has
  "start on started A" and "stop on stopping A", then restarting A
  will cause B to be restarted, so B shouldn't B restarted a second
  time.

  We only start jobs that are not running if 1) they're tasks that
  have been previously run (like mountall); or 2) they're jobs that
  have a "start on" condition.  This seems a reasonable heuristic.

svn path=/nixos/trunk/; revision=33222
2012-03-18 01:53:35 +00:00
Eelco Dolstra
ee6c9bb998 * Provide two utility functions in Upstart jobs: "ensure JOBNAME"
starts the given job and waits until it's running; "stop_check"
  checks that the current job hasn't been asked to stop.

svn path=/nixos/trunk/; revision=33214
2012-03-17 19:12:33 +00:00
Eelco Dolstra
573877c1ac * Use boot.kernelModules everywhere instead of explicit calls to
modprobe.
* Move the implementation of boot.kernelModules from the udev job to
  the activation script.  This prevents races with the udev job.
* Drop references to the "capability" kernel module, which no longer
  exists.

svn path=/nixos/trunk/; revision=33208
2012-03-17 17:26:17 +00:00
Shea Levy
8ad872ca03 Revert r33139
I didn't end up needing it and there's a better way to do what I wanted if I
did.

svn path=/nixos/trunk/; revision=33150
2012-03-16 12:01:08 +00:00
Shea Levy
b89a65e54c Allow multiple definitions of boot.loader.kernelFile as long as they are all the same
svn path=/nixos/trunk/; revision=33139
2012-03-16 03:20:12 +00:00
Shea Levy
001fcad421 First shot at EFI booting.
Note: This feature is INCOMPLETE. Moreover, when runEfibootmgr is true it will
MODIFY NVRAM and, on Apple systems, possibly brick your firmware. PLEASE be
careful while further testing is performed

svn path=/nixos/trunk/; revision=33047
2012-03-13 19:27:59 +00:00
Lluís Batlle i Rossell
dd6eb81797 Adding /etc/mdadm.conf, with the contents supplied at boot.initrd.mdadmConf.
This allows setting a fixed device name per array, thus ensuring that at boot,
the arrays will always be mounted with the same names. I think this allows
solving the problem of grub getting confused about softraid device names
(prefix and root), if the devices always get the same naming at initrd.


svn path=/nixos/trunk/; revision=33033
2012-03-13 13:26:21 +00:00
Eelco Dolstra
b6d43e1aca * Fix Amazon image generation (broken by r32913).
svn path=/nixos/trunk/; revision=33032
2012-03-13 13:17:43 +00:00
Eelco Dolstra
7281a851b3 * Create a /usr/bin/env symlink. This allows scripts from other
distributions with shebang lines such as

    #! /usr/bin/env python

  to work correctly.

svn path=/nixos/trunk/; revision=33011
2012-03-12 10:41:39 +00:00
Lluís Batlle i Rossell
9e980235bd Properly filter a possible lack of "grub.device", in case of using only "grub.devices".
svn path=/nixos/trunk/; revision=33009
2012-03-12 09:42:24 +00:00
Lluís Batlle i Rossell
3c0fdaf877 Adding /dev/tty to the stage1, so 'more' and 'less' now page well.
svn path=/nixos/trunk/; revision=33006
2012-03-11 23:04:29 +00:00
Lluís Batlle i Rossell
ee163c2c80 Making the stage2 interpreter bash non-interactive, while keeping the
interactive shell with bash interactive. Suggested by Eelco.


svn path=/nixos/trunk/; revision=33005
2012-03-11 22:43:37 +00:00
Lluís Batlle i Rossell
1a48572b75 Disabling the initrd extra tools by default, until further review.
svn path=/nixos/trunk/; revision=33004
2012-03-11 22:28:31 +00:00
Lluís Batlle i Rossell
2fc537277b Removing a 'set -x' in the stage1 extra tools.
svn path=/nixos/trunk/; revision=33003
2012-03-11 22:26:01 +00:00
Lluís Batlle i Rossell
d2e2bb4bc4 Typo
svn path=/nixos/trunk/; revision=33002
2012-03-11 22:07:37 +00:00
Lluís Batlle i Rossell
331b1f46d3 Making the stage2 'debug2' spawn a shell with job control, like in stage1, running it in a
virtual terminal and not in the console. This brings wonderful things like ^C.


svn path=/nixos/trunk/; revision=33001
2012-03-11 22:01:46 +00:00
Lluís Batlle i Rossell
bbebba68f7 A more friendly stage1, with interactive bash, busybox plenty of tools, etc.
I set it as default because users can benefit of this without having to prepare
their nixos first, and I don't think it will break any nixos for the initrd
size increase.

It can be disabled with 'boot.initrd.withExtraTools = false'.


svn path=/nixos/trunk/; revision=33000
2012-03-11 21:56:47 +00:00
Lluís Batlle i Rossell
6a0958cc06 Making stage2 get a full interactive bash for the stage2 init, so there the shell has readline,
jobs, etc.


svn path=/nixos/trunk/; revision=32999
2012-03-11 21:50:35 +00:00
Eelco Dolstra
03ebb883d1 * Modularize filesystem support. Filesystems such as btrfs and
reiserfs now have separate modules that are conditional on
  boot.supportedFilesystems and boot.initrd.supportedFilesystems.
  By default, these include the filesystems specified in the fsType
  attribute in fileSystems.  Ext2/3/4 support is currently
  unconditional.

  Also unbreak the installer test (http://hydra.nixos.org/build/2272302). 

svn path=/nixos/trunk/; revision=32954
2012-03-09 14:37:58 +00:00
Lluís Batlle i Rossell
13ac0a309b Allow a way to install grub to multiple devices (for /boot on soft raid arrays).
svn path=/nixos/trunk/; revision=32913
2012-03-08 21:37:30 +00:00
Lluís Batlle i Rossell
98dde13782 If enabling luks on initrd, also adding cryptsetup to system packages. I think it's useful.
svn path=/nixos/trunk/; revision=32910
2012-03-08 20:49:26 +00:00
Lluís Batlle i Rossell
1adaabef58 Adding an option to luksroot, so it allows to define whether to launch cryptsetup after or before LVM.
To allow dmcrypt over lvm and lvm over dmcrypt.


svn path=/nixos/trunk/; revision=32784
2012-03-04 21:00:35 +00:00
Eelco Dolstra
8935db253c * Upstart jobs: don't emit a description if there is none.
svn path=/nixos/trunk/; revision=32775
2012-03-04 16:17:56 +00:00
Mathijs Kwik
dc8ca0ea4a upstart: options for setuid and setgid
as jobs running as different users cannot create their logfile, I moved that to an activationScript

svn path=/nixos/trunk/; revision=32762
2012-03-04 12:58:06 +00:00
Lluís Batlle i Rossell
79d4b11aeb Making the luks thing of initrd a bit more flexible. I used it to get a
ciphered swap, where I could hibernate ciphered.


svn path=/nixos/trunk/; revision=32754
2012-03-03 16:07:18 +00:00
Eelco Dolstra
ee0769cc42 * If debug2 is passed on the kernel command line, run Upstart with
the --verbose flag to see what it's doing.

svn path=/nixos/trunk/; revision=32747
2012-03-02 16:37:28 +00:00
Eelco Dolstra
f61ad97833 * Run the stage 2 debug shell at a more useful point (just before
starting Upstart).  This also causes $PATH to be set to something
  more sensible.

svn path=/nixos/trunk/; revision=32740
2012-03-02 13:17:05 +00:00
Eelco Dolstra
84bff53ca7 * Set the default value for the ‘path’ job attribute using the NixOS
module system so that it can be overriden.  Also use an ‘apply’ to
  compute the actual $PATH.

svn path=/nixos/trunk/; revision=32440
2012-02-20 19:23:15 +00:00
Eelco Dolstra
a218a602d4 * Use openresolv to set the static nameserver configuration. Next
step is to get the DHCP client, OpenVPN etc. to use openresolv as
  well.

svn path=/nixos/trunk/; revision=32411
2012-02-20 00:00:50 +00:00
Peter Simons
e91c6ea1ce modules/system/upstart-events/shutdown.nix: refer to bash binary with full path
Upstart won't find a "bash" binary in $PATH when those commands are run, so we
refer to it using an absolute path.

svn path=/nixos/trunk/; revision=31157
2011-12-30 16:57:39 +00:00
Florian Friesdorf
eb755d4692 switched all mergeOptionString to pkgs.lib.types.string
pierron recommended the use of types.string over mergeOptionString, as
it is superior but might break things.

For my system the change evaluated to the exactly same.

svn path=/nixos/trunk/; revision=31138
2011-12-29 00:51:35 +00:00
Florian Friesdorf
3ebc7727f7 Revert "test we have cryptsetup-1.4.1 in initrd"
This reverts commit 025f8c40b40fad50086e8761eee61098d8fb2651.

The check was intened for building the initrd of the installer.

svn path=/nixos/trunk/; revision=31137
2011-12-28 22:37:38 +00:00
Florian Friesdorf
0544a008db Revert "added an "error" to luksroot that should be caught"
This reverts commit c7967af35a13f68a8785c142582b639dc8c8e92c.

svn path=/nixos/trunk/; revision=31136
2011-12-28 22:36:26 +00:00
Florian Friesdorf
829bd9a727 added an "error" to luksroot that should be caught
svn path=/nixos/trunk/; revision=31135
2011-12-28 22:21:31 +00:00
Florian Friesdorf
c7fd05a650 test we have cryptsetup-1.4.1 in initrd
svn path=/nixos/trunk/; revision=31132
2011-12-28 21:46:50 +00:00
Florian Friesdorf
c15aa7aea3 luksroot uses preLVMCommands instead of postDeviceCommands
svn path=/nixos/trunk/; revision=31131
2011-12-28 21:46:48 +00:00
Florian Friesdorf
90756a787c add preLVMCommands hook
svn path=/nixos/trunk/; revision=31130
2011-12-28 21:46:45 +00:00
Florian Friesdorf
0a9f3a36ec luksroot waits for usb drive
svn path=/nixos/trunk/; revision=31129
2011-12-28 21:46:42 +00:00
Florian Friesdorf
dd8e725d7d copy only cryptsetup deps to stage-1 and test cryptsetup
popt-0.16 and cryptsetup-1.4.1 both generated pkgconfig (in contrast
to older versions). The pkgconfig files (popt.pc and cryptsetup.pc)
contain references into the store that are not removed by patchelf and
stage-1 fails with errors like: "output is not allowed to refer to
path `/nix/store/qccjhn063cfv171rcaxvxh0yk96zf7l2-cryptsetup-1.4.1'".

Now, only the cryptsetup binaries and its dependencies are copied,
determined by ldd. In addition the cryptsetup binary and lvm are
tested after patchelf has adjusted the library paths.

Thanks to Peter Simons and Eelco Dolstra for giving the rights hints.

svn path=/nixos/trunk/; revision=31128
2011-12-28 21:46:40 +00:00
Florian Friesdorf
d98ecd1d9e enable testing of extraUtilsCommands after patchelf
svn path=/nixos/trunk/; revision=31127
2011-12-28 21:46:35 +00:00
Lluís Batlle i Rossell
0de75cde39 Asking for an interactive shell in case of error umounting filesystems. I've
not tested it; sometimes I hit the trouble, but not always.


svn path=/nixos/trunk/; revision=31104
2011-12-26 16:40:13 +00:00
Eelco Dolstra
2ff7b1284a * Handle the util-linux-ng -> util-linux rename
(http://hydra.nixos.org/build/1646277/nixlog/1).

svn path=/nixos/trunk/; revision=30984
2011-12-20 13:36:11 +00:00
Eelco Dolstra
6e95485a28 * Set boot.vesa to false if we don't have a fbcondecor-enabled kernel.
svn path=/nixos/trunk/; revision=30802
2011-12-08 12:25:33 +00:00
Eelco Dolstra
508fea8dac * Remove the cfq_iosched module.
svn path=/nixos/trunk/; revision=30618
2011-11-29 14:19:55 +00:00
Eelco Dolstra
1d5d7036d0 * Add a module for managing cgroups.
svn path=/nixos/trunk/; revision=30551
2011-11-24 18:28:45 +00:00
Eelco Dolstra
fdc51c2c97 * Disable all fbcondecor-related stuff if boot.vesa is disabled.
svn path=/nixos/trunk/; revision=30343
2011-11-08 19:43:15 +00:00
Eelco Dolstra
a4d2682238 * Remove loopback devices during shutdown, since they may prevent
filesystems from being unmounted.

svn path=/nixos/trunk/; revision=30203
2011-11-03 02:15:33 +00:00
Eelco Dolstra
aac71e8f95 * Add a module for DRBD.
svn path=/nixos/trunk/; revision=30202
2011-11-03 02:14:57 +00:00
Eelco Dolstra
fe566d84ae * Remove references to the "safemode" boot option, which doesn't do
anything.

svn path=/nixos/trunk/; revision=30199
2011-11-03 00:46:29 +00:00
Eelco Dolstra
3fd482677e * modprobe wants /etc/modprobe.d now.
svn path=/nixos/trunk/; revision=30164
2011-11-01 15:39:30 +00:00
Peter Simons
20b364f4de Reverting revisions 30103-30106: "always set nixpkgs.config.{state,store}Dir", etc.
After the change from revision 30103, nixos-rebuild suddenly consumed
freaky amounts of memory. I had to abort the process after it had
allocated well in excess of 30GB(!) of RAM. I'm not sure what is causing
this behavior, but undoing that assignment fixes the problem. The other
two commits needed to be revoked, too, because they depend on 30103.

svn path=/nixos/trunk/; revision=30127
2011-10-30 15:19:58 +00:00
Shea Levy
09cf6ce70c find modules | fgrep .nix | fgrep -v .svn | fgrep -v nixpkgs.nix | xargs sed -i -e 's|/nix/var|${config.nixpkgs.config.nix.stateDir}|g' -e 's|/nix/store|${config.nixpkgs.config.nix.storeDir}|g'
Don't assume /nix/store or /nix/var in NixOS modules, this is configurable

svn path=/nixos/trunk/; revision=30104
2011-10-29 21:03:57 +00:00
Eelco Dolstra
926091c265 * Make the permissions on /run less liberal.
svn path=/nixos/trunk/; revision=30065
2011-10-27 17:34:16 +00:00
Eelco Dolstra
9076456b15 * Don't restart udevtrigger from the switch script. It's triggered by
udev.

svn path=/nixos/trunk/; revision=29962
2011-10-21 16:22:38 +00:00
Nicolas Pierron
38bc39c299 Add support for NFS root file system.
Patch by Rickard Nilsson.

svn path=/nixos/trunk/; revision=29855
2011-10-15 21:01:30 +00:00
Eelco Dolstra
3fa2bbd029 * Properly shut down udevd in stage 1. Otherwise there is a slight
possibility that a udevd process survives, preventing udevd from
  starting in stage 2:

  machine# udevd[1421]: bind failed: Address already in use
  machine# udevd[1421]: error binding udev control socket

svn path=/nixos/trunk/; revision=29434
2011-09-22 08:26:58 +00:00
Peter Simons
eb6e1310b8 strip trailing whitespace; no functional change
svn path=/nixos/trunk/; revision=29285
2011-09-14 18:20:50 +00:00
Peter Simons
a499049ce5 Strip trailing whitespace.
svn path=/nixos/trunk/; revision=29246
2011-09-13 18:49:50 +00:00
Peter Simons
d3528a3c4e modules/system/boot/stage-1-init.sh: added "boot.runSize" option to determine the maximum size of the /run tmpfs
svn path=/nixos/trunk/; revision=29245
2011-09-13 18:49:47 +00:00
Peter Simons
c01c41e2da modules/system/boot/kernel.nix: disable "elevator=cfq" boot parameter for the time being
This setting causes the init ram disk to hang indefinitely on some systems.

svn path=/nixos/trunk/; revision=29228
2011-09-12 18:01:18 +00:00
Peter Simons
6c08bf40a6 modules/system/boot/kernel.nix: stripped trailing whitespace
svn path=/nixos/trunk/; revision=29101
2011-09-07 20:36:13 +00:00
Eelco Dolstra
ed1bc1e180 * Handle the case where a symlink in /etc needs to change into a
directory.  This happened with /etc/polkit-1, which used to be a
  symlink to /etc/static/polkit-1, which was itself a symlink but now
  is a directory.  Not handling this correctly led to /etc/static
  being clobbered with symlinks pointing to themselves.

svn path=/nixos/trunk/; revision=29061
2011-09-06 12:32:07 +00:00
Eelco Dolstra
4b8275d2c4 * Force loading of the CFQ module, i.e. don't do it on demand — that
seems to cause weird modprobe hangs.

svn path=/nixos/trunk/; revision=29027
2011-09-05 14:58:26 +00:00
Eelco Dolstra
8b3fd3ed49 * Use the CFQ I/O scheduler, rather than the ‘none’ scheduler. This
was already the case on Linux 2.6.32, but in newer kernels the CFQ
  scheduler is built as a module, so all block devices got the ‘none’
  scheduler instead.

svn path=/nixos/trunk/; revision=28972
2011-09-02 13:19:45 +00:00
Shea Levy
25594961ad modprobe.nix: Blacklist snd_pcsp by default
svn path=/nixos/trunk/; revision=28805
2011-08-24 23:37:40 +00:00
Yury G. Kudryashov
e5917ea6fc Merge with udev-173
The only conflict was the addition of two different options at the same place.

svn path=/nixos/trunk/; revision=28801
2011-08-24 21:24:39 +00:00
Eelco Dolstra
74586fd2bb * Fix the permissions on /tmp.
svn path=/nixos/trunk/; revision=28435
2011-08-09 15:32:39 +00:00
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
Eelco Dolstra
c089738bdc * Use the shadow' package instead of pwdutils', `pam_login' and
`su'.
* The `usermod' from `shadow' allows setting a supplementary group
  equal to the user's primary group, so the special hack for the
  `nixbld' group is no longer needed.
* Removed /etc/default/passwd since it's not used by the new passwd.
  The hash is configured in pam_unix.
* Move some values for `security.setuidPrograms' and
  `security.pam.services' to the appropriate modules.

svn path=/nixos/trunk/; revision=22107
2010-06-02 21:10:48 +00:00
Eelco Dolstra
8b308272df * We don't use pam_console anymore.
svn path=/nixos/trunk/; revision=22104
2010-06-02 17:11:20 +00:00
Eelco Dolstra
ad93acc295 * Make all Upstart jobs shut down on the `starting shutdown' event.
This ensures that they're gone by the time the shutdown job runs, so
  it doesn't have to stop them itself.
* Don't respawn tasks, as it doesn't seem useful (if they fail they're
  likely to fail again if they're restarted).

svn path=/nixos/trunk/; revision=22099
2010-06-02 16:04:08 +00:00
Eelco Dolstra
94b2268192 * Start "exec" jobs using the "script" stanza to allow redirects in
the job's "exec" to work properly.

svn path=/nixos/trunk/; revision=22094
2010-06-01 20:41:59 +00:00
Eelco Dolstra
95a9c5dd77 * Log the standard output/error of Upstart jobs to
/var/log/upstart/<jobname> rather than spamming the console with it.

svn path=/nixos/trunk/; revision=22093
2010-06-01 19:44:23 +00:00
Eelco Dolstra
18fd0a61de * Add `sleep' to the initrd.
svn path=/nixos/trunk/; revision=22089
2010-06-01 17:09:34 +00:00
Eelco Dolstra
9c900ee15c * Updates for the dynamically linked splash helper.
svn path=/nixos/trunk/; revision=22087
2010-06-01 16:38:42 +00:00
Eelco Dolstra
dc49a0ce3f * Don't use klibc in the initrd. It's simpler (and slightly smaller)
to use the standard (coreutils) tools.
* Use util-linux's `switch_root' to switch over to the target root
  FS.  It automatically moves over the /dev, /proc and /sys from stage
  1, so stage 2 doesn't need to set them up again.

svn path=/nixos/trunk/; revision=22085
2010-06-01 15:53:24 +00:00
Eelco Dolstra
eade772338 * Don't show the contents of linuxPackages in the manual.
svn path=/nixos/trunk/; revision=22044
2010-05-28 11:21:40 +00:00
Eelco Dolstra
7484774172 * Activate software RAID devices from udev. This makes the swraid
Upstart jobs unnecessary.
* Support having the root filesystem on swraid.

svn path=/nixos/trunk/; revision=21807
2010-05-16 20:40:04 +00:00
Eelco Dolstra
edee370883 * The default action for udevadm trigger' changed from add' to
`change'.  At boot time, however, we want an `add' event to trigger
  certain rules (e.g. LVM and mdadm).

svn path=/nixos/trunk/; revision=21804
2010-05-16 19:02:45 +00:00
Yury G. Kudryashov
7836f89242 stage-1.nix: copy libudev.so, verbose log
svn path=/nixos/trunk/; revision=21793
2010-05-15 21:28:31 +00:00
Nicolas Pierron
06bfb319fe Add extra module argument to provide a nesting.clone option. This option
does the same as nesting.children except that each configuration inherits
from the top-level configuration.

svn path=/nixos/trunk/; revision=21663
2010-05-08 17:18:26 +00:00
Marc Weber
6daed6b8d2 setting default of copySystemConfiguration to false.
http://thread.gmane.org/gmane.linux.distributions.nixos/3990

svn path=/nixos/trunk/; revision=21450
2010-04-30 07:43:29 +00:00
Marc Weber
d1e87dfc86 adding two new options:
- system.copySystemConfiguration (requested by Ludovic Courtès)
- system.extraSystemBuilderCmds

svn path=/nixos/trunk/; revision=21406
2010-04-28 14:55:26 +00:00
Yury G. Kudryashov
a5718503e5 Change firmware handling
This way should work with both old udev and new one.

svn path=/nixos/trunk/; revision=21308
2010-04-25 18:26:56 +00:00
Lluís Batlle i Rossell
a37743794d I forgot a 'toString' in front of an integer
svn path=/nixos/trunk/; revision=21242
2010-04-22 14:54:09 +00:00
Lluís Batlle i Rossell
d7406769ac Making /var/run/utmp writable by the 'utmp' group.
Then, people can choose a setgid utmp for their xterm, konsole or whatever to get the terminals
reported there.


svn path=/nixos/trunk/; revision=21238
2010-04-22 13:56:26 +00:00
Lluís Batlle i Rossell
33ed225a84 Making the /dev and /dev/shm tmpfs sizes configurable.
By default, they take the usual value of "50% of physical RAM".

As /dev/shm can be filled by anyone, and tmpfs does not trigger the OOM killer (and
can hang the machine due to a lack of RAM), I need to configure that down
in order to avoid crashes.

There is still left the /var/run/nscd tmpfs filesystem, also created with 50%
of the RAM, but at least not writeable by anyone. We could find a reasonable
low value for that, or allow configuration.


svn path=/nixos/trunk/; revision=21140
2010-04-17 15:20:13 +00:00
Yury G. Kudryashov
1e83fe6122 Remove tabs
svn path=/nixos/trunk/; revision=21104
2010-04-15 15:47:26 +00:00
Sander van der Burg
02e4a78c71 Disnix should also remain active during a switch
svn path=/nixos/trunk/; revision=20949
2010-04-05 20:35:08 +00:00
Eelco Dolstra
c1e313b5e1 * Remove obsolete references to kernelPackages in Nixpkgs.
svn path=/nixos/trunk/; revision=20647
2010-03-16 12:10:06 +00:00
Eelco Dolstra
5b5aefa030 * Remove some obsolete stuff.
svn path=/nixos/trunk/; revision=20631
2010-03-15 13:41:21 +00:00
Eelco Dolstra
4253490fd4 svn path=/nixos/trunk/; revision=20016 2010-02-15 15:55:54 +00:00
Eelco Dolstra
0432766399 * Fall back to the kernel modules used at boot time if the modules in
the current configuration don't match the running kernel.  This
  ensures that modprobe still works after a "nixos-rebuild switch" to
  a configuration that has a different kernel version.

svn path=/nixos/trunk/; revision=19696
2010-01-26 21:45:13 +00:00
Marc Weber
aad3d21ceb upstart: quote environment vars. John Altobelli hit the case TZ=New York
svn path=/nixos/trunk/; revision=19633
2010-01-23 22:38:30 +00:00
Eelco Dolstra
12a0a68749 * Initialise the Nix database in the VM.
* Set the hostname at startup.
* Mount the ephemeral data disk (/dev/sda2).


svn path=/nixos/trunk/; revision=19619
2010-01-22 17:31:23 +00:00
Eelco Dolstra
6d21e00776 * Some hacks to support running NixOS on Amazon EC2 (and other hosting
environment where you don't get to run stage 1 of the boot).

svn path=/nixos/trunk/; revision=19579
2010-01-20 18:06:33 +00:00
Michael Raskin
6502806689 Allow turning off VESA framebuffer
svn path=/nixos/trunk/; revision=19473
2010-01-15 21:55:51 +00:00