a daemon (it just starts some kernel threads). In the post-stop
script, stop the kernel threads.
* exportfs: fix the createMountPoints option.
* Mount the nfsd filesystem on /proc/fs/nfsd because mountd prefers
this.
svn path=/nixos/branches/boot-order/; revision=22187
it allows the `mountall' task to start mounting filesystems as soon
as udev is running and devices become available (i.e. it doesn't
have to wait for all devices). This means that some jobs should
depend on "stopped udevtrigger" instead of "started udev".
svn path=/nixos/branches/boot-order/; revision=22167
during boot. Mountall ensures that these are done in the right
order. It's informed by udev about devices becoming available. It
emits some Upstart events upon reaching certain states, in
particular ‘local-filesystems’ after all local filesystems have been
mounted successfully, ‘remote-filesystems’ after all network
filesystems have been mounted, and ‘filesystem’ (sic) when all
filesystems have been mounted.
Currently, if a filesystem fails to mount or doesn't exist, then the
mingettys won't start and the boot will appear to hang. This is
because mountall doesn't emit an event for failing filesystems and
waits indefinitely for the filesystems to become available.
* The ‘filesystems’ and ‘swap’ Upstart jobs are gone. (Support for
encrypted swap devices is temporarily gone.)
* Generate a proper /etc/fstab from the ‘fileSystems’ and
‘swapDevices’ options.
svn path=/nixos/branches/boot-order/; revision=22148
`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
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
or Google Earth) on 64-bit NixOS on NVIDIA hardware. The 32-bit
OpenGL library is symlinked from /var/run/opengl-driver-32, which is
added to the LD_LIBRARY_PATH so that 32-bit binaries can find it.
svn path=/nixos/trunk/; revision=22062
requieres a patch in openssh that I just commited to nixpkgs)
Before this, in the shell spawned, backspace could not work over UTF-8 strings in the readline.
svn path=/nixos/trunk/; revision=21679
I made the system sw path include /etc/xdg - awesome looks for some file
in the XDG_CONFIG_DIRS, which in bashrc is set to point to the profiles/etc/xdg
svn path=/nixos/trunk/; revision=21675
I kept the defaults as they where, to avoid surprises.
(150 httpd processes simultaneously answering? Too much for my machines)
svn path=/nixos/trunk/; revision=21220
- Implemented initialScript option to configure database properties on first startup (such as granting permissions)
svn path=/nixos/trunk/; revision=21135
We could not start on 'filesystems', because filesystems is written as an upstart task.
Additionally, as upstart calls the postfix start/stop script and it does not act as a
daemon, we write it as a preStart/postStop job. Then we don't have monitoring or respawn,
but at least upstart does not get confused on its state.
svn path=/nixos/trunk/; revision=21061
"sshd" because changing it to "opensshd" causes breakage (like the
activation script saying "useradd: UID 2 is not unique."). Also,
OpenSSH requires it to be named "sshd", I think.
svn path=/nixos/trunk/; revision=20577
The file contents were taken as a file path. This resulted in a system with a totally broken /etc:
lrwxrwxrwx 1 root nixbld 51 22 feb 21:45 bashrc -> /nix/store/gh71a6w50cxrl4124kxfn24yi0b7aaka-useradd
lrwxrwxrwx 1 root nixbld 44 22 feb 21:45 nix.conf -> 192.168.1.4(rw,no_root_squash,no_all_squash)
lrwxrwxrwx 1 root nixbld 58 22 feb 21:45 inputrc -> /nix/store/1czhdj7q74dc556frqrh51jyshfsxhl3-bashrc-user.sh
lrwxrwxrwx 1 root nixbld 51 22 feb 21:45 nsswitch.conf -> /nix/store/qsgsli992hd1g8245d8am9izn9xmw90x-inputrc
lrwxrwxrwx 1 root nixbld 20 22 feb 21:45 exports -> /home/sheevaplugroot
Notice that the inputrc has strange contents. In my case, that disabled me to type 's' or 'i' (at least) in any new interactive shell.
If you notice, the 'exports' symlink should point to a store file, which contents had to look like:
/home/sheevaplugroot 192.168.1.4(rw,no_root_squash,no_all_squash)
This patch achieves this later behaviour rather than the former.
svn path=/nixos/trunk/; revision=20181
create an empty job `foo' if the condition is false. Instead use
`jobs = optionalAttrs condition { foo = { ... }; }'.
* Enable portmap automatically when using the NFS server or client.
svn path=/nixos/trunk/; revision=20178
that it can be restarted. Zabbix is kind of hard to monitor, so use
a trick with an open fifo to detect when it goes down.
svn path=/nixos/trunk/; revision=20039
and running. `pg_ctl status' merely checks whether PostgreSQL is
running, not whether it is already accepting connections. This
causes Upstart jobs that depend on PostgreSQL to fail.
svn path=/nixos/trunk/; revision=20024
replaced by `services.apache.phpOptions' (of type string).
* Allow Apache subservices to add to phpOptions.
* Set the TZ environment variable in Apache.
* Updated the Zabbix web interface.
svn path=/nixos/trunk/; revision=20023
supplied by the lvm package). This makes the "lvm" Upstart task
unnecessary. Also, we now get /dev/disk/by-{label,uuid} symlinks
for LVM logical disks.
svn path=/nixos/trunk/; revision=19300
readd r19267 (the issue should be fixed now)
Eelco Dolstra and Nicolas Pierron both kept asking me to pay attention
to the rendered manual. There is one catch: example settings such as
pkgs.kernelPackages_2_6_25 are correct however they don't render
properly. Moreover you don't want those examples to be evaluated (maybe
compiling a kernel ?) when building the manual only.
So use Strings and add a copy & paste note.
This is still a hacky. Maybe a kind of typed "verbatim" expression
should be added (?)
svn path=/nixos/trunk/; revision=19281
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
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
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
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
* 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
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
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
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
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
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
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
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
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
gets rid of endless dhclient log messages such as
Jul 16 19:09:30 dutibo dhclient: DHCPDISCOVER on wmaster0 to 255.255.255.255 port 67 interval 19
Jul 16 19:09:30 dutibo dhclient: send_packet: Network is down
svn path=/nixos/branches/modular-nixos/; revision=16407
* Simplified the pre-start script of the network-interfaces module.
* Removed wireless support from the network-interfaces module. It
only worked for static WEP configurations anyway, and AFAIK nobody
used it.
svn path=/nixos/branches/modular-nixos/; revision=16406
jobs, e.g. (from the nscd job)
{ name = "nscd";
description = "Name Service Cache Daemon";
startOn = "startup";
stopOn = "shutdown";
environment = { LD_LIBRARY_PATH = nssModulesPath; };
preStart =
''
mkdir -m 0755 -p /var/run/nscd
mkdir -m 0755 -p /var/db/nscd
'';
exec = "${pkgs.glibc}/sbin/nscd -f ${./nscd.conf} -d 2> /dev/null";
};
The Upstart job is generated from this. The main goal is to provide
some abstraction from the Upstart syntax. For instance, this should
make it easier to upgrade to newer versions of Upstart, to switch to
an entirely different process management system (e.g. initng or
launchd), or to test a job independantly from Upstart. (However the
startOn and stopOn attributes are tied to Upstart's event model.)
svn path=/nixos/branches/modular-nixos/; revision=16376
It allows it to know whether `libnss-mdns' is available, which clients
can ask via the `IsNSSSupportAvailable' D-Bus method.
svn path=/nixos/branches/modular-nixos/; revision=16125
-> No longer install graphical packages if the xserver is disabled.
-> avoid duplication of "mkIf config.services.xserver.enable".
svn path=/nixos/branches/modular-nixos/; revision=16044
disabled. Other desktop/display/window manager modules should be
conditional on config.services.xserver.enable as well, but at least
they're disabled by default due to other options.
svn path=/nixos/branches/modular-nixos/; revision=16031
need some devices. In particular this fixes the "Cannot open
virtual console 7" errors in VirtualBox. (There's nothing special
about VirtualBox, but the different timing makes it more likely to
trigger this bug.)
svn path=/nixos/branches/modular-nixos/; revision=15836
previously failed to resolve the NTP server hostnames in its config
file, it will happily sit in a loop forever doing nothing.
svn path=/nixos/branches/modular-nixos/; revision=15830
start script. It's probably not necessary, but more importantly, it
can hang forever if the network is down. (Actually it will sit in a
loop waiting for UDP packets that will never arrive.) This causes
the NixOS reboot to hang, since Upstart can't kill jobs stuck in
their start script.
svn path=/nixos/branches/modular-nixos/; revision=15829
enabled as a session type. Since I'm lazy, provide it
unconditionally. Also have it include "common-console" to set
device ownership when logging in.
svn path=/nixos/branches/modular-nixos/; revision=15800
passwords is now done in an activation scriptlet rather than an
Upstart job (not tested). BTW, we should get rid of this module and
add support to the users-groups.nix module for creating accounts
with an empty password.
svn path=/nixos/branches/modular-nixos/; revision=15769
empty now), do more of bashrc.sh declaratively, and moved nsswitch
generation to modules/config/nsswitch.nix.
svn path=/nixos/branches/modular-nixos/; revision=15754
modules/config/system-path.nix. system/system.nix is now almost
empty.
* Removed the cleanStart option - it should be possible to get the
same functionality by overriding config.system.path (or defining
config.system.systemPackages with a higher priority - don't know if
that works though).
svn path=/nixos/branches/modular-nixos/; revision=15727
those that run daemons) to modules/services. This probably broke
some things since there are a few relative paths in modules
(e.g. imports of system/ids.nix).
* Moved some PAM modules out of etc/pam.d to the directories of NixOS
modules that use them.
svn path=/nixos/branches/modular-nixos/; revision=15717