Commit graph

619 commits

Author SHA1 Message Date
Eelco Dolstra
5c17d7d2a6 Lack of laziness strikes again... 2013-10-07 11:32:28 +02:00
Eelco Dolstra
3ba15358bc Make GRUB 2 the default
Fixes #269.
2013-10-07 11:07:07 +02:00
Eelco Dolstra
8ec44f343d Add some missing option types 2013-10-07 11:07:06 +02:00
Eelco Dolstra
7459f6fa38 Disallow Memtest86+ with GRUB 1
The GRUB entry as given is syntactically invalid.
2013-10-07 11:07:06 +02:00
Eelco Dolstra
c13041c65c Unify the two Memtest modules
This means we now have Memtest86+ on the installation CD.
2013-10-02 12:33:06 +02:00
Peter Simons
c811d79c98 Merge pull request #262 from offlinehacker/fix/stage_2_lib_var_db
stage-2-init: create /var/lib and /var/db at boot, so some modules that create user home folders here don't fail
2013-09-30 01:38:56 -07:00
Eelco Dolstra
82e1d0c8b1 Remove services.ttyBackgrounds
This hasn't worked in a long time.
2013-09-26 17:33:52 +02:00
Jaka Hudoklin
12dda685ee stage-2-init: create /var/lib and /var/db at boot, so some modules that create user home folders here don't fail 2013-09-26 16:38:12 +02:00
Rickard Nilsson
3a17c2b30b Add option systemd.automounts, for definining automount units 2013-09-23 23:16:45 +02:00
Eelco Dolstra
9df40867b9 In environment.variables, unify "value" and "list" 2013-09-23 23:07:32 +02:00
Mathijs Kwik
3840e96e79 Merge pull request #256 from oxij/shells-environment
I tested the previous "version" and found my environment to be exactly the same.

Let's start discussing possible extensions/improvements somewhere else. For now it's a nice improvement.
2013-09-23 11:23:10 -07:00
Jan Malakhovski
b3f4040512 Radically change the way NixOS handles environment variables and make it possible not to use Bash as the default interactive shell.
This change does two things:

* "NixOSizes" environment variables generation. This allows some more
  error-checking and opens possibilities for a modular environment
  configuration. From now on the most of environment variables are
  generated directly by the nix code. Generating sh code that
  generates environment variables is left in a few places where
  nontrivial access to a local environment state is needed.
* By doing the first change this patch untangles bash from the
  environment configuration and makes it trivial to add a support for
  other non bash-compatible shells.

Now to the sad part. This change is quite large (and I'm not sure it's
possible to split it) and yet is not quite complete, it needs some
changes to nixpkgs to be perfect.
See !!! comments in modules/config/shells-environment.nix.

Main principle behind this change is "change environment generation
and nothing else". In particular, shell configuration principles stay
exactly the same as before.
2013-09-23 16:55:25 +00:00
Eelco Dolstra
f19065c283 Fix broken systemd shutdown services
The services systemd-random-seed-save.service and
systemd-update-utmp-shutdown.service from systemd 203 don't work,
because they have a RequiresMountFor dependency on /var/lib and
/var/log.  Such a dependency produces a cycle, causing systemd to drop
those services:

  Fixing conflicting jobs by deleting job poweroff.target/stop
  Deleting job systemd-poweroff.service/stop as dependency of job poweroff.target/stop
  Deleting job umount.target/stop as dependency of job systemd-poweroff.service/stop
  Deleting job -.mount/start as dependency of job umount.target/stop
  Deleting job systemd-random-seed-save.service/start as dependency of job -.mount/start
  Deleting job systemd-update-utmp-shutdown.service/start as dependency of job -.mount/start

Dropping the RequiresMountFor doesn't work either, because then
/var/... may have meen unmounted or remounted read-only.

Upstream systemd fixes this by doing the actual work from an ExecStop
action in an already-running service than conflicts with
shutdown.target.  So I backported that here.  The main consequence is
that wtmp shutdown records now get written properly.

The main lesson: shutdown.target is useless for pulling in services
during shutdown if they need to write anywhere.
2013-09-22 21:39:05 +02:00
Eelco Dolstra
14f55a2f67 Remove unused runlevel targets 2013-09-22 21:39:05 +02:00
Eelco Dolstra
50d942960e Write a reboot record to /var/log/wtmp 2013-09-22 21:39:05 +02:00
Eelco Dolstra
b825169404 Add kexec support
You can now do a fast reboot (bypassing the BIOS, which may take
several minutes on servers) by running ‘systemctl kexec’.

Unfortunately the QEMU test for this is unreliable due to a QEMU bug
(it randomly crashes with a message like ‘Guest moved used index from
8 to 0’), so it's commented out.
2013-09-16 17:42:13 +02:00
Eelco Dolstra
17457297cb Update all legacy-style modules
I.e., modules that use "require = [options]".  Nowadays that should be
written as

  {
    options = { ... };
    config = { ... };
  };

Also, use "imports" instead of "require" in places where we actually
import another module.
2013-09-04 13:05:09 +02:00
Mathijs Kwik
388f1d48fb do not activate hybrid-sleep during config switches 2013-08-31 12:05:50 +02:00
Marc Weber
d97ea69a81 systemd: check service.name.Type and service.name.Restart 2013-08-15 09:19:51 +03:00
Ivan Kozik
390fdb3e60 Fix typos, especially those that end up in the NixOS manual 2013-08-10 21:07:13 +00:00
Eelco Dolstra
4a83c97d3d Stage 1: Use modprobe from kmod instead of module-init-tools
The latter is obsolete.

http://hydra.nixos.org/build/5663799
2013-08-07 18:30:30 +02:00
Eelco Dolstra
438b057eb3 Lower the default console log level
It used to be set to 7 (debug) so you get lots of crap on the console.
The new value of 4 is also what Ubuntu uses.  Red Hat uses 3.

A nice side effect is that it's more likely that the LUKS passphrase
prompt doesn't get clobbered by kernel log messages.
2013-07-23 22:18:25 +02:00
Eelco Dolstra
8dc09be07b Fix indentation / tabs 2013-07-23 22:18:25 +02:00
Bjørn Forsman
8d596006dd Ensure /var/log/journal permission bits are set
Ensure permission bits are (re)set on each system activation with
explicit chmod call.

mkdir -m MODE PATH will only set the permission bits if PATH is
*created*, which means users that have old NixOS versions will continue
to have the old 700 permissions on /var/log/journal until they chmod
manually. With this commit the permissions will be set to 755 on system
activation.
2013-07-22 20:09:50 +02:00
Eelco Dolstra
c52fd85990 Set permissions on /var/log/journal properly
This makes the system journal readable by users in the
systemd-journal, wheel and adm groups.  It also allows users to read
their own journals.

Note that this doesn't change the permissions of existing journals.
2013-07-19 21:18:44 +02:00
Eelco Dolstra
bf21bbcf01 Mount /var and some other filesystems automatically in stage 1
Bad things happen if /var is mounted in a late stage.
2013-07-19 17:24:18 +02:00
Eelco Dolstra
2d57847f16 NFS: Use network-online.target instead of remote-fs-pre.target
Turns out that remote-fs-pre.target is not actually "wanted" anywhere,
so statd is not started before remote filesystems are mounted.  But
remote filesystems do "want" network-online.target, so we can use that
to pull in statd and idmapd.

Not sure if this is really the right thing to do, but it works for
now.  Background:

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

http://hydra.nixos.org/build/5542230
2013-07-16 11:55:12 +02:00
aszlig
ff84facca3
grub: Add mdadm to search path.
Grub uses mdadm to find out the device it is on, especially when mdadm itself
resides in a separate boot partition. When bootstrapping from a NixOS
installation CD, it's not a big issue because usually the paths from the Nix
store of the installation CD are matching with the ones in the chrooted
environment.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-07-08 14:29:37 +02:00
Eelco Dolstra
7810f7f61a Build unit files locally 2013-06-20 19:39:09 +02:00
Eelco Dolstra
d210f30fa7 Omit GRUB if boot.loader.grub.device is set to "nodev"
If we only need to generate a GRUB boot menu, we don't need GRUB
itself.  This cuts 38 MiB from EC2 system closures (in particular
because it gets rid of the need for the 32-bit Glibc).
2013-06-04 14:07:25 +02:00
Rickard Nilsson
70586f03fe systemd.sockets: Add listenStreams option for specifying several sockets 2013-05-20 16:26:24 +02:00
Eelco Dolstra
95d02c0c40 initrd: Remove serio and atkbd
These modules don't exist as far as I can tell.
2013-05-15 12:52:15 +02:00
Eelco Dolstra
b3ae70ddb6 initrd: Add ehci_pci and hid_generic
These are required to get some (all?) USB keyboards to work in recent
kernels.
2013-05-15 12:52:14 +02:00
Shea Levy
51bc82960a btrfsck doesn't respect any flags
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-05-13 14:25:48 -04:00
Eelco Dolstra
ffb581c739 Fix suspend in systemd
Systemd 203 expects the file /etc/systemd/sleep.conf to exist,
otherwise suspend doesn't work.
2013-05-09 16:26:13 +02:00
Eelco Dolstra
ebac0220d1 systemd.nix: Use environment.etc attribute syntax 2013-05-09 16:26:12 +02:00
Phreedom
6c988a593a Merge pull request #136 from MarcWeber/submit/grubDevice
s/boot.grubDevice/boot.loader.grub.device/ to shut down warnings
2013-05-05 07:41:22 -07:00
Shea Levy
17f10f70ad Include xhci_hcd in the initrd for usb3 devices
Fixes #158, I don't think there is an `xhci' module

Signed-off-by: Shea Levy <shea@shealevy.com>
2013-05-04 11:35:01 -04:00
Shea Levy
2415787040 gummiboot: Fix bug where old conf scripts for single-digit generations weren't removed
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-04-30 13:03:14 -04:00
Mathijs Kwik
8de00c328a systemd: add "requiredBy" option.
"require" is a stronger version of "want",
and just like wantedBy allows you to specify this relation in reverse,
requiredBy does the same.

It may seem pointless to be able to specify these stronger relations in
reverse, because if something is really required, you would expect the
other unit to specify this himself.

However, this is still useful for virtual/automatic units (like
devices) that are created by systemd on demand and hence have no unit
file you can alter.
2013-04-22 14:24:15 +02:00
Lluís Batlle i Rossell
3be4fd3f38 Making grub display 'All configurations', not 'Old'
That confused some people, as the first generation shown is
the 'current'.
2013-04-16 11:09:25 +02:00
Marc Weber
9bf073b58b s/boot.grubDevice/boot.loader.grub.device/ to shut down warnings 2013-04-10 23:54:37 +02:00
Eelco Dolstra
86f11dadaa switch-to-configuration: Use full path to sync 2013-04-08 17:34:14 +02:00
Eelco Dolstra
ee29054da1 Create an empty /etc/resolv.conf to shut up nscd 2013-04-03 13:27:41 +02:00
Eelco Dolstra
f40a38b2c8 Remove /etc lock files at boot time 2013-03-31 15:40:13 +02:00
Eelco Dolstra
fbde5e027e Sync after installing the boot loader
Previously we synced just before calling switch-to-configuration.
That prevents corruption of the Nix store, but it can leave the boot
loader configuration and kernel files in /boot corrupted.  So do the
sync after installing the boot loader.
2013-03-28 16:11:54 +01:00
Eelco Dolstra
9000fd81d5 Hack: force timers.target to be started
Usually timers.target is pulled in by basic.target, but we don't
restart basic.target.  So timers.target wouldn't be started when
coming from an older systemd.
2013-03-28 15:02:11 +01:00
Eelco Dolstra
7ad91f31d6 Add support for systemd timers 2013-03-28 11:54:19 +01:00
Eelco Dolstra
c039e286b9 Set the kernel.poweroff_cmd sysctl
This allows Xen (and EC2) to power off an instance properly.  We had
this before (see aeb89fc753), but it got
lost in the systemd migration.
2013-03-27 23:03:37 +01:00
Eelco Dolstra
f3bea050f8 Updates for systemd 198/199 2013-03-27 23:03:37 +01:00