because /proc/swaps contains resolved paths as well. Without this,
the swap device will be turned off again by the $unused code.
svn path=/nixos/trunk/; revision=19278
pkgs/build-support/vm). This should make the NixOS regression tests
more robust on heavily loaded systems, where they now frequently
fail:
server# mounting //10.0.2.4/qemu on /hostfs...
server# [ 8.233991] Slow work thread pool: Starting up
server# [ 8.234721] Slow work thread pool: Ready
server# [ 23.271708] CIFS VFS: No response for cmd 114 mid 1
server# [ 23.272443] CIFS VFS: cifs_mount failed w/return code = -112
server# mount: Host is down
server# [ 23.275188] Kernel panic - not syncing: Attempted to kill init!
Maybe there is a configurable timeout somewhere, which would be much
nicer...
svn path=/nixos/trunk/; revision=19248
automatically. This is mostly useful for testing. (KDM also has
this feature, but it's nice not to depend on KDE for non-KDE tests.)
svn path=/nixos/trunk/; revision=19239
write some magic string to ttyS0. This removes the dependency on
having a CIFS mount.
* Use a thread to process the stdout/stderr of each QEMU instance.
* Add a kernel command line parameter "stage1panic" to tell stage 1 to
panic if an error occurs. This is faster than waiting until
connect() times out.
svn path=/nixos/trunk/; revision=19212
installation-cd-minimal.nix is now 2.6.32. Added most of its extra
tools to installation-cd-base.nix.
* Put memtest86 at the bottom of the GRUB menu. (There is currently
no good way to do this other than to change the module inclusion
order.)
svn path=/nixos/trunk/; revision=19188
* Miss-interpretation of the --skip option of cryptsetup. Ciphered partition labels are not supported. Labels are erased when doing mkswap on the ciphered partition.
* Avoid doing swapon on devices which are already listed in /proc/swaps.
* Remove no longer listed devices with only one swapoff command.
svn path=/nixos/trunk/; revision=19164
* Assemble devices only if there is a new entry.
* Add 'new-raid-array' flag to assemble new arrays.
* Emit new-devices flag to triggers the 'filesystems' task.
svn path=/nixos/trunk/; revision=19145
use exec so that upstart knows when automount shuts down.
If a mount is used upstart will send SIGKILL.
Automount doesn't clean up. So unmount everything using a post script.
svn path=/nixos/trunk/; revision=19105
trunk) doesn't have a -s flag. 0.7.0 in the stdenv branch
presumably does, but it's marked as unstable upstream.
svn path=/nixos/trunk/; revision=19047
/nix bind mounted from a fs not rootfs.
As niksnut found, if the sources of bind mounted directories are
umounted before remounting them as "ro", a "mount -o remount,ro" on the
bind targets will not leave the filesystem properly umounted, the same
way as a "-o remount,ro" would do on a usual filesystem.
So, the trick of always remounting as 'ro' before attempting an umount seems
to fix the problem.
svn path=/nixos/trunk/; revision=19008
partition from /. If so, copy the kernels and initrds to /boot and
use paths relative to /boot in the GRUB configuration file. This
makes the boot.loader.grub.bootDevice option obsolete. (Is there a
way to mark obsolete options?) It also makes it unnecessary to set
boot.loader.grub.copyKernels, although that option is still
available since it can speed up GRUB if the Nix store is very
large.
svn path=/nixos/trunk/; revision=18998
GRUB version changes. (That's the complete version from the name
attribute, not the boot.loader.grub.version attribute.) The current
version is recorded in /boot/grub/version. This is required to
prevent massive breakage when we change the default value of
boot.loader.grub.version to "2".
svn path=/nixos/trunk/; revision=18997
problem:
Nix only recognizes nixbld users which have nixbld set in extraGroups.
After installation the user was created by activate with group='nixbld'
and extraGroups=[]
After rebooting a conditional shell script fixed this by adding
extraGroups=["nixbld"].
This patches creates the user they way it was in the past with
group='nobody' and extraGroups=["nixbld"].
Another solution would be making nix be aware of the primary group as
well. However this would require everyone to update Nix after updating
NixOS.
svn path=/nixos/trunk/; revision=18985
expose makeInfo (used by test now)
expose config hack
* Adding tests to release.nix
* fixes
* removing dependency on perl
refactoring details:
Move all configuration modules used by the NixOS installation test script
into one directory.
svn path=/nixos/trunk/; revision=18982
is not on the same partition as /boot (i.e. when
boot.loader.grub.bootDevice is set): just copy the background image
and the font to /boot.
svn path=/nixos/trunk/; revision=18979
modules that should be added to the initrd, but should only be
loaded on demand (e.g. by the kernel or by udev). This is
especially useful in the installation CD, where we now only load the
modules needed by the hardware.
* Enable automatic modprobing by udev in the initrd.
svn path=/nixos/trunk/; revision=18975
automatically loaded by the kernel, load it at boot time.
* Put the ext2 module (which used to be built in) in the initrd to
prevent unexpected breakage.
svn path=/nixos/trunk/; revision=18963
You can run the kvm nixos installation test by:
nix-build --no-out-link tests/test-nixos-install-from-cd.nix
It boots the installed system.
It still fails sshd isn't started (yet)
adding nixos-bootstrapping-archive:
You can install NixOS easily using any live cd now.
See README-BOOTSTRAP-NIXOS
svn path=/nixos/trunk/; revision=18950
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
of usual system counters).
It sets up some cron jobs for collecting the data, and not that often, generating the
graphs. Then the httpd server is configured with a directory with the generated
static files.
http://www.brianlane.com/software/systemhealth/
svn path=/nixos/trunk/; revision=18866
* Add serverAddress option.
* Evaluate the client daemon in foreground, otherwise upstart get the hand
and tries to restart it.
svn path=/nixos/trunk/; revision=18799
the `sendmail' command (i.e. ssmtp). This is hacky - there should
be some global config value that specifies the path to sendmail,
which the ssmtp module and others can then set.
svn path=/nixos/trunk/; revision=18777
By using this approach we no longer have to specify schemas like this:
schema = "${myDatabaseSchemaDrvFun}/prefix/to/the/sqlfile.sql";
but like this:
schema = myDataBaseSchemaDrv;
which is in some cases more convenient.
svn path=/nixos/branches/upstart-0.6/; revision=18450
the acpid service.
* Add a pm-utils hook to allow commands to be executed when the system
suspends/resumes etc.
svn path=/nixos/branches/upstart-0.6/; revision=18353
the /init and /system symlinks on the CD (since it removes the
cyclic dependency between building the Grub menu and the system
derivation).
svn path=/nixos/branches/upstart-0.6/; revision=18344
stdenv-updates stuff. Still to be reviewed, but at least an implementation to have
some different armv5tel-linux platforms: qemu versatile and the sheevaplug.
svn path=/nixos/trunk/; revision=18290
option. Otherwise, the system may depends on unused/unsupported
softwares and users will be force to use properties in their
configuration.nix file to override this default value. (too complex for
new users)
svn path=/nixos/trunk/; revision=18288
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
* dbus: don't signal Upstart, since that seems to make it forget about
pending events or something. In any case starting dbus after acpid
was running wouldn't trigger hal to be started (but the other way
around did work).
svn path=/nixos/branches/upstart-0.6/; revision=18251
initialisation will be incredibly slow (minutes instead of
seconds). An strace shows that it's continuously looking up
timezone information if TZ is empty.
svn path=/nixos/branches/upstart-0.6/; revision=18235
statically configured interface (i.e. we're not running dhclient).
Otherwise the ntpd job won't be triggered.
* Use the "-n" flag of "initctl emit" to send the event
asynchronously.
svn path=/nixos/branches/upstart-0.6/; revision=18227
no longer emits specific events for those. Instead it emits a
"runlevel" event. The "runlevel" task starts the "shutdown" task to
perform the desired action.
* Upstart 0.6 no longer has a "shutdown" event, so "stop on shutdown"
no longer works. Therefore the shutdown task explicitly stops all
running Upstart jobs, before sending a TERM/KILL signal to all
remaining processes.
* Do a "chvt 1" at the start of the shutdown task to switch to the
console.
* Use /dev/console instead of /dev/tty1, since if somebody is logged
in on tty1, bad things will happen.
svn path=/nixos/branches/upstart-0.6/; revision=18224
is "ready". This prevents ugly race conditions, e.g. HAL failing to
start because dbus hasn't finished starting yet.
* Support post-start scripts. These are executed after the job's main
process has started but before the job's "started" event is
emitted. For instance, the udev job uses this to perform "udevadm
trigger / settle" to create all devices. Previously this had to be
done in the pre-start script, so the daemon had to started in the
pre-start script as well.
svn path=/nixos/branches/upstart-0.6/; revision=18211
driver (in services.xserver.videoDriver), the X server is now given
a set of drivers, and will use PCI ids to find the right one.
The only problem is that the choice of OpenGL driver (the
/var/run/opengl-driver symlink) depends on what driver is selected
at runtime (i.e. the NVIDIA implementation for "nvidia", and Mesa
for all other drivers). However this isn't a big problem right now
since "nvidia" isn't included in the default set of drivers anyway
for legal reasons.
* `services.xserver.resolutions' now defaults to [], meaning that the
X server should figure out the desired resolution(s) itself.
Likewise, `services.xserver.defaultDepth' defaults to 0 to let the X
server figure it out.
* Removed some options from xorg.conf that no longer appear needed
("Composite" and the DRI "Mode").
svn path=/nixos/trunk/; revision=18176
* Add deprecated options for "serviceType", "serviceName", "function" and
"config" without changing the behavior.
svn path=/nixos/trunk/; revision=18150
* Replace an obscure piece of code by its equivalent based on the
recursiveUpdate function. Undefined the obsolete name of
boot.grubDevice to avoid conflicts.
svn path=/nixos/trunk/; revision=18049
The continue keyword was previously used to mount the next device, but
the loop in has been removed. (see r17919)
svn path=/nixos/trunk/; revision=17973
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
style of declaring Upstart jobs. While at it, converted them to the
current NixOS module style and improved some option descriptions.
Hopefully I didn't break too much :-)
svn path=/nixos/trunk/; revision=17761
Purpose: Allow overwriding of properties such as:
config.jobAttrs.sshd.startOn = "never";
thanks to Nicolas Pierron for reviewing and
extending nixpkgs to make this possible
I'll convert most of the jobs ASAP so please don't care
about the depreceateion much right now
svn path=/nixos/trunk/; revision=17650
* Renamed some of the new Grub options to more sensible names
(e.g. extraGrubEntries to extraEntries, bootMount to bootDevice,
etc.).
svn path=/nixos/trunk/; revision=17494
fetch definitions of oldest options and to add them inside the new option.
Properties are still valid and will not be affected by the renaming. e.g:
with: rename alias "foo.bar" to "baz.quz"
and with the following module:
{
foo.bar = (mkOverride 10 {}) 42;
baz.quz = 21;
}
the result of baz.quz would be 42 because the priority is still working
after the renaming.
svn path=/nixos/trunk/; revision=17484
needed now that we don't use pam_devperm anymore. When udev is
restarted, it now asks ConsoleKit to get the active users and sets
device ACLs accordingly.
svn path=/nixos/trunk/; revision=17474
grub. Its options are no more inside 'boot', but inside 'boot.loader.grub'.
I added a new bootloader configuration for nixos, generationsDir. It creates
/boot/default/{init,initrd,kernel,system} symlinks, and the same for the generations
in /boot/system-$gen/{init,initrd,kernel,system}.
I can program the u-boot loader to load /boot/default files always, and have
a minimal nixos boot loader installer functionality. Additionally, I can refer
to the other system generations easily, with a simple 'ls' in /boot.
svn path=/nixos/trunk/; revision=17460
* Don't try to remount CIFS filesystems.
* For devices specified by label, use /dev/disk/by-label instead of
LABEL=. The initrd already did this.
* Improved the flagging of pseudo devices.
svn path=/nixos/trunk/; revision=17431
recognise X logins as active sessions (i.e. ck-list-sessions will
show "active = FALSE", and the user doesn't get ownership of
devices). I guess console-kit-daemon (which is started by dbus)
needs some device in /dev to exist.
svn path=/nixos/trunk/; revision=17428
numbers. This also requires kbd and tty-backgrounds to be updated
(and by extension syslogd and rogue). Also updated the style of
those modules.
svn path=/nixos/trunk/; revision=17424
fix creating directories by skipping comments and interpreting quotes,
take input from ${exports} which may be different from /etc/exports
which also restarts the service in this case updating the export list
Also run rpc.statd in forground so that it doesn't get respawned
svn path=/nixos/trunk/; revision=17358
* Change the module syntax of the example to follow Eelco's suggestions.
* Add a section "Building your own NixOS CD", which explain how to replace
configuration.nix by the configuration file of a live CD/DVD.
* Fix "Testing the installer" and "Testing the initrd" to fit the location
of derivations.
svn path=/nixos/trunk/; revision=17105
to directly boot into any of the Grub menu entries. This doesn't
work yet though. Probably Grub needs some messing with the
savedefault option.
svn path=/nixos/trunk/; revision=17091
work for X logins. (The documentation also says so.) Instead just
call ck-launch-session from the xsession script.
svn path=/nixos/trunk/; revision=17090
default session is selected. This is because we always want to run
our own initialisation (like starting ssh-agent).
* ssh-agent: don't start it is a child but have it re-exec the
xsession script. This ensures that ssh-agent quits when we log out.
* In the xsession script, don't redirect output to ~/.xsession-errors
if the display manager is kdm, since kdm already does that. In fact
it uses ~/.xsession-errors<optional number> if there are concurrent
X sessions.
* For consistency with other distros and the xdm manpage, exec the
~/.xsession script instead of sourcing it. Do this for the "custom"
session type provided by kdm.
svn path=/nixos/trunk/; revision=17087
some reason:
Sep 10 17:52:49 dutibo kernel: mtrr: no MTRR for f0000000,400000 found
Sep 10 17:52:50 dutibo kdm[2960]: X server for display :0 terminated unexpectedly
Sep 10 17:52:50 dutibo kdm[2960]: Unable to fire up local display :0; disabling.
svn path=/nixos/trunk/; revision=17013
* Modularised the xorg.conf generation. For instance, the Wacom and
Synaptics support has been moved into separate modules. The
contents of xorg.conf is defined by the option
services.xserver.config, and various other options for specific
sections (e.g. services.xserver.serverLayoutSection).
* displayManager.job.env: made this an attribute set.
* tcpEnable -> enableTCP for naming consistency.
* defaultDepth can be set to 0 to leave it undefined (needed for the
vmware driver).
* Removed some options that seem obsolete or are now the default
(e.g. RenderAccel, AllowGLXWithComposite).
* Removed services.xserver.package. This can now be done using
nixpkgs.config.packageOverrides.
svn path=/nixos/trunk/; revision=17004
- Added rpc.statd service, which prevents messages that tell you that you should use -o nolock
- Create /var/lib/nfs on initialization
- Create /etc/exports, so that exportfs can create /var/lib/nfs/etab. This prevents errors such as: mount.nfs: an incorrect mount option was specified
svn path=/nixos/trunk/; revision=16953
substitute some values, just prepend them to the start of kdmrc.
KDM will merge multiple sections with the same name (even though it
complains a bit). Option definitions that occur first have
precedence.
svn path=/nixos/trunk/; revision=16940
adding an attribute "password" that defines the default password for
an account. The default (null, as opposed to the empty string)
means not to set a password.
svn path=/nixos/trunk/; revision=16937
into one argument "modules".
* release.nix: fixed the manual job.
* ISO generation: break an infinite recursion. Don't know why this
suddenly happens. Probably because of the nixpkgs.config change,
but I don't see why. Maybe the option evaluation is too strict.
svn path=/nixos/trunk/; revision=16878
be set from the NixOS configuration. For instance, you can say
nixpkgs.config.firefox.enableGeckoMediaPlayer = true;
environment.systemPackages = [ pkgs.firefox ];
but the more interesting application is to apply global overrides to
Nixpkgs throughout NixOS, e.g.
nixpkgs.config.packageOverrides = pkgs:
{ glibc = pkgs.glibc27;
gcc = pkgs.gcc42;
};
would build the whole system with Glibc 2.7 and GCC 4.2. (There are
some issues with "useFromStdenv" in all-packages.nix that need to be
fixed for packages in the stdenv bootstrap though.)
The implementation of this option is kind of evil though due to the
need to prevent a circularity between the evaluation of
nixpkgs.config and the "pkgs" module argument.
svn path=/nixos/trunk/; revision=16866
separate module, which just declares a configuration value that
causes the xinetd module to add it to xinetd.conf. Also Nixified
the service declarations to abstract over the inetd implementation.
* Renamed the services.xinetd.tftpd options to services.tftpd. The
fact that the tftpd module uses xinetd is an implementation detail.
* xinetd: use -dontfork to let Upstart monitor it, and use -syslog to
get error messages at startup.
svn path=/nixos/trunk/; revision=16803
* Let ConsoleKit track the current logins instead of pam_console.
Udev now takes care of setting the device permissions to the active
user. This works much better, since pam_console wouldn't apply
permissions to new (hot-plugged) devices. Also, the udev+ConsoleKit
approach supports user switching. (We don't have that for X yet,
but it already works for logins on virtual consoles: if you switch
between different users on differents VCs with Alt+Fn, the device
ownership will be changed automatically.)
svn path=/nixos/trunk/; revision=16743
the bus daemon can start on demand). ConsoleKit and PolicyKit need
this. This requires a setuid wrapper for dbus-daemon-launch-helper,
as well as a "messagebus" group.
svn path=/nixos/trunk/; revision=16736
mkOption argument, because then we lose them if somebody sets
security.setuidPrograms somewhere else. (Shouldn't "default" be
merged as well?)
svn path=/nixos/trunk/; revision=16734
programs require that the mode is 4550 so that execution of the
setuid program can be restricted to members of a group.
* setuid-wrappers: remove a race condition in the creation of the
wrappers if the ownership or mode was different than root:root and
4555.
* setuid-wrappers: allow the full path of the wrapped program to be
specified, rather than looking it up in $PATH.
svn path=/nixos/trunk/; revision=16733
option security.pam.services containing the list of PAM services.
For instance, the SLiM module simply declares:
security.pam.services = [ { name = "slim"; localLogin = true; } ];
svn path=/nixos/trunk/; revision=16729
interface names, use udev's own firmware loader, and dropped the
sndMode option (udev puts all audio devices in the "audio" group, so
users can be added to that group if necessary).
svn path=/nixos/trunk/; revision=16692
util-linux-ng instead of e2fsprogs, blkid is in util-linux-ng, and
we need to manually create /dev/.udev prior to starting udevd for
some reason.
svn path=/nixos/trunk/; revision=16691
machine containing a replica (minus the state) of the system
configuration. This is mostly useful for testing configuration
changes prior to doing an actual "nixos-rebuild switch" (or even
"nixos-rebuild test"). The VM can be started as follows:
$ nixos-rebuild build-vm
$ ./result/bin/run-*-vm
which starts a KVM/QEMU instance. Additional QEMU options can be
passed through the QEMU_OPTS environment variable
(e.g. QEMU_OPTS="-redir tcp:8080::80" to forward a host port to the
guest). The fileSystem attribute of the regular system
configuration is ignored (using mkOverride), because obviously we
can't allow the VM to access the host's block devices. Instead, at
startup the VM creates an empty disk image in ./<hostname>.qcow2 to
store the VM's root filesystem.
Building a VM in this way is efficient because the VM shares its Nix
store with the host (through a CIFS mount). However, because the
Nix store of the host is mounted read-only in the guest, you cannot
run Nix build actions inside the VM. Therefore the VM can only be
reconfigured by re-running "nixos-rebuild build-vm" on the host and
restarting the VM.
svn path=/nixos/trunk/; revision=16662
* Simplified the udev rules generation: merged nixRules into
services.udev.extraRules, and handle services.udev.extraRules using
services.udev.packages.
svn path=/nixos/trunk/; revision=16655
With these modifications, a user can configure a tomcat instance with web applications and web services by writing a service, such as:
...
services = {
tomcat = {
enable = true;
webapps = [ mypkgs.HelloWorldWebApplication ];
axis2 = {
enable = true;
services = [ mypkgs.HelloService mypkgs.HelloWorldService ];
};
};
};
svn path=/nixos/trunk/; revision=16619
(e.g. --install-grub instead of $NIXOS_INSTALL_GRUB). Also support
some nix-build options (e.g. --show-trace and -j).
svn path=/nixos/branches/modular-nixos/; revision=16560