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
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
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
* 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
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
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
`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
qemu_kvm. Installation doesn't take place yet. VM is started
printing a remote controlled "Hello".
This serves as example how to run a vm within a bulid job.
svn path=/nixos/trunk/; revision=18887
unmounted or at least remounted read-only during shutdown. Upstart
0.6 apparently uses nscd to do some name lookups, resulting in it
holding some mmap mappings to deleted files in /var/run/nscd.
E.g. lsof shows:
init 1 root DEL REG 253,0 1850313 /var/run/nscd/dbyn3Piz
init 1 root DEL REG 253,0 1850312 /var/run/nscd/dbt2e8PH
See also http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=324900.
This is a workaround - it would be better if Upstart didn't do this.
svn path=/nixos/branches/upstart-0.6/; revision=18258
with an empty password, rather than with a hashed empty password.
The latter is a security risk, because it allows remote root logins
if a user enables sshd before setting a proper root password.
* Allow empty passwords for login and slim, but nothing else.
svn path=/nixos/trunk/; revision=17833
modules/programs/pwdutils.
* Renamed config.system.shell to config.users.defaultUserShell and
updated the description to make clear it has to be a non-store
path.
svn path=/nixos/branches/modular-nixos/; revision=15761