Commit Graph

397 Commits

Author SHA1 Message Date
Eelco Dolstra
5f077e2296 Factor out option renaming
Option aliases/deprecations can now be declared in any NixOS module,
not just in nixos/modules/rename.nix. This is more modular (since it
allows for example grub-related aliases to be declared in the grub
module), and allows aliases outside of NixOS (e.g. in NixOps modules).

The syntax is a bit funky. Ideally we'd have something like:

  options = {
    foo.bar.newOption = mkOption { ... };
    foo.bar.oldOption = mkAliasOption [ "foo" "bar" "newOption" ];
  };

but that's not possible because options cannot define values in
*other* options - you need to have a "config" for that. So instead we
have functions that return a *module*: mkRemovedOptionModule,
mkRenamedOptionModule and mkAliasOptionModule. These can be used via
"imports", e.g.

  imports = [
    (mkAliasOptionModule [ "foo" "bar" "oldOption" ] [ "foo" "bar" "newOption" ]);
  ];

As an added bonus, deprecation warnings now show the file name of the
offending module.

Fixes #10385.
2015-10-14 18:18:47 +02:00
Thomas Strobel
7a8980193d nixos grub: trustedBoot: introduce safety check that TPM is available 2015-10-06 20:12:39 +02:00
ts468
1ddc1cdcf2 Merge pull request #10076 from ts468/upstream.systemd
systemd module: add option to specify generators
2015-09-30 15:12:43 +02:00
Thomas Strobel
05c46bfc05 systemd module: add option to specify generators
Adding the configuration option 'systemd.generators' to
specify systemd system-generators. The option allows to
either add new system-generators to systemd, or to over-
ride or disable the system-generators provided by systemd.

Internally, the configuration option 'systemd.generators'
maps onto the 'environment.etc' configuration option.
Having a convenience wrapper around 'environment.etc' helps
to group the systemd system-generator configuration more
easily with other 'systemd...' configurations.
2015-09-29 11:53:25 +02:00
Eelco Dolstra
3fada8c5a0 Remove unnecessary "|| true" from the stage 1 script 2015-09-28 22:15:47 +02:00
Eelco Dolstra
9d92bd7845 Add filesystem option to automatically grow to the maximum size
This is primarily for EC2 and other cloud environments, where the disk
may be bigger than the original image.
2015-09-24 19:59:44 +02:00
Jaka Hudoklin
e0881324ac Merge pull request #9925 from oxij/nixos-cleanups-and-fixes
nixos types: cleanups and fixes
2015-09-19 00:28:49 +02:00
Jan Malakhovski
a153de28bb nixos: rename some outputs for better discoverability in /nix/store 2015-09-18 19:00:20 +00:00
Jan Malakhovski
6eadb16022 nixos: fix some types 2015-09-18 18:48:50 +00:00
Mathnerd314
87012187b2 kmod-debian-aliases: init at 21-1 2015-09-13 10:55:44 +02:00
Eelco Dolstra
6ab7e0de29 Create /var/log/journal
Fixes #9614.
2015-09-03 11:35:47 +02:00
lethalman
d025500186 Merge pull request #9383 from anderspapitto/master
also generate startAt timers for systemd user units
2015-08-26 10:42:44 +02:00
Eelco Dolstra
e4610f2965 buildEnv: Support package priorities like nix-env
This gets rid of a bunch of collision warnings.
2015-08-25 00:40:40 +02:00
Eelco Dolstra
9c61317002 Put all firmware in $out/lib/firmware
This way, hardware.firmware can be a list of packages.
2015-08-25 00:40:34 +02:00
Anders Papitto
57f7798b51 also generate startAt timers for systemd user units 2015-08-20 23:46:08 -07:00
Eelco Dolstra
80d9b42663 Allow units to specify that they shouldn't be stopped when removed 2015-08-07 05:37:23 +02:00
Spencer Janssen
2a31397f53 stage-1: fix typo that breaks resume
$d should be $sd, this causes resume from hibernate to fail if
resumeDevice is not explicitly set in config.  Introduced in commit:
'stage-1: Shut up warnings about swap devices that don't exist yet'
2015-07-30 16:30:20 -05:00
viric
982ce5ed58 Merge pull request #8978 from dezgeg/pr-arm-images
ARM SD card image expressions
2015-07-29 14:13:57 +02:00
Eelco Dolstra
f07b2121f9 Fix grub-reboot 2015-07-27 01:07:38 +02:00
Tuomas Tynkkynen
8665b0d8b1 extlinux-conf-builder: Fix warning when building in chroot
When using extlinux-conf-builder in a nix build using chroots, the
following error message could be seen:

/nix/store/XXX-extlinux-conf-builder.sh: line 121: cd: /nix/var/nix/profiles: No such file or directory

To avoid this, just skip the code path parsing /nix/var/nix/profiles
when $numGenerations (passed from the command line) is 0 (which is the
only legal value of $numGenerations in a nix build context).
2015-07-26 00:31:20 +03:00
Eelco Dolstra
c49b24c940 Fix capitalisation 2015-07-25 19:06:07 +02:00
Eelco Dolstra
174dd0eae7 Fix description of boot.consoleLogLevel 2015-07-25 19:06:07 +02:00
Tuomas Tynkkynen
a6c95a3f7d extlinux-conf-builder: Set menu title to force prompt display
Without a menu title, U-Boot's distro scripts just autoboot the first
entry by default.

When I initially wrote this, my board wasn't apparently running stock
U-Boot but had some local hacks saved in the U-Boot's environment
which made it always display the prompt.
2015-07-22 16:08:18 +03:00
Tuomas Tynkkynen
8496f71e92 extlinux-conf-builder: Make it work on non-DTB systems
With this, boot.loader.generic-extlinux-compatible can be used with
linuxPackages_rpi on the Raspberry Pi.
2015-07-22 16:08:17 +03:00
Tuomas Tynkkynen
6147909f8e extlinux-conf-builder: Properly copy kernels for the default entry
When calling addEntry inside a subshell, the filesCopied array would
be updated only in the subshell's environment. This would only cause an
issue if no -g flag was passed to the script, causing no kernels
to be copied.
2015-07-22 16:08:17 +03:00
Tuomas Tynkkynen
5d02c02a9b systemd: Use upstream tmpfiles.d rules
This fixes a failing assert in systemd-timesyncd (issue #5913) as it
expects the directory /run/systemd/netif/links/ to exist, and nothing in
NixOS currently creates it.

Also we get a net reduction in our code as rules for /run/utmp and
/var/log/journal are also provided by the same upstream file.

(cherry picked from commit a278a9224a)
2015-07-22 12:27:05 +02:00
Eelco Dolstra
925e1f91c5 Set up /etc/machine-id before starting systemd
Otherwise, systemd will try to populate /etc, which we don't want.

(cherry picked from commit c8501a4218)
2015-07-22 12:24:32 +02:00
Eelco Dolstra
0ab320a884 stage-1: Shut up warnings about swap devices that don't exist yet
(cherry picked from commit 388dac478d)
2015-07-22 12:24:06 +02:00
Eelco Dolstra
ec82157ac5 stage-2: Don't run hwclock in containers
(cherry picked from commit b978df019a)
2015-07-22 12:23:52 +02:00
Eelco Dolstra
9647609e3e stage-1: Don't mount /dev/shm if it's already mounted
(cherry picked from commit c8ef598945)
2015-07-22 12:23:48 +02:00
Eelco Dolstra
6bd4e0b8cd Create systemd-{network,resolve} user/group unconditionally
This shuts up this error from dbus:

May 11 13:52:16 machine dbus-daemon[259]: Unknown username "systemd-network" in message bus configuration file
May 11 13:52:16 machine dbus-daemon[259]: Unknown username "systemd-resolve" in message bus configuration file

which happens because the D-Bus config for networkd/resolved is
enabled unconditionally, and we don't have an easy way to turn it off.

(cherry picked from commit f19b58fb6a)
2015-07-22 12:23:45 +02:00
Eelco Dolstra
65700b435c Use ConditionVirtualization to disable some services in containers
(cherry picked from commit c52a983806)
2015-07-22 12:23:40 +02:00
Eelco Dolstra
dc62669335 Set ‘allowSubstitutes = false’ on various derivations
This reduces the number of binary cache requests. See
b64988bb35.
2015-07-09 15:10:37 +02:00
William A. Kennington III
08ff83eab3 nixos/btrfs: Fix parsing of btrfs subvolume show with btrfsprogs 4.1 2015-07-07 11:34:50 -07:00
William A. Kennington III
cb343e7be6 nixos/install-grub: Fix symlink installation for boot filesystems which don't support symlinking
Some filesystems like fat32 don't support symlinking and need to be
supported on /boot as an efi system partition. Instead of creating the symlink directly in boot, create the symlink in
a temporary directory which has to support symlinking.
2015-07-05 18:34:47 -07:00
Thomas Strobel
4ee2d39fbf grub installation: fix: simplify code 2015-07-05 21:55:56 +02:00
Thomas Strobel
65cbbc75b0 grub installation: integrate trustedGRUB + fix broken equality check 2015-07-05 19:51:53 +02:00
Marcin Falkiewicz
c1becad3eb nixos/modules/system/boot/luksroot.nix: allow for LUKS devices with detached header 2015-06-29 17:36:47 +02:00
William A. Kennington III
d4fc2b4d99 nixos/install-grub: Fix grub1 installation 2015-06-17 11:47:36 -07:00
Eelco Dolstra
6e6a96d42c Some more type cleanup 2015-06-15 18:18:46 +02:00
Eelco Dolstra
19ffa212af types.uniq types.int -> types.int
types.int already implies uniqueness.
2015-06-15 18:11:32 +02:00
Bjørn Forsman
74d5adcb4d nixos: move environment.{variables => sessionVariables}.MODULE_DIR
This solves the problem that modprobe does not know about $MODULE_DIR
when run via sudo, and instead wrongly tries to read /lib/modules/:

  $ sudo strace -efile modprobe foo |& grep modules
  open("/lib/modules/3.14.37/modules.softdep", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  open("/lib/modules/3.14.37/modules.dep.bin", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  open("/lib/modules/3.14.37/modules.dep.bin", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
  open("/lib/modules/3.14.37/modules.alias.bin", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Without this patch, one would have to use sudo -E (preserves environment
vars). But that option is reserved for sudo users with extra rights
(SETENV), so it's not a solution.

environment.sessionVariables are set by PAM, so they are included in the
environment used by sudo.
2015-06-14 18:56:58 +02:00
Luca Bruno
033605e87f Merge branch 'nixos-subdir'
Conflicts:
	nixos/modules/system/boot/loader/grub/grub.nix
2015-06-13 15:18:12 +02:00
Luca Bruno
c3e832b323 stage-1: mkdir -p /mnt-root, it may be created earlier by some hooks 2015-06-13 15:02:51 +02:00
Luca Bruno
3754de550f nixos/grub: allow customization of the nix store path 2015-06-13 15:02:00 +02:00
William A. Kennington III
502a19b2b4 nixos/grub: Support labeling efi bootloaders with independent id's 2015-06-10 15:47:08 -07:00
William A. Kennington III
c891134b77 nixos/grub: Prevent module errors and make gfxmode configurable 2015-06-10 11:50:35 -07:00
Lluís Batlle i Rossell
1c22734cd2 Forcing the load of atkbd in initrd.
In some computers, having the module available does not really load it,
therefore, it results in not having the keyboard avaiable in initrd.
2015-06-10 12:16:25 +02:00
William A. Kennington III
48381b7621 nixos-artwork: Make into a derivation and use fetchfromgithub 2015-06-08 18:32:32 -07:00
Eelco Dolstra
7318ff0e38 Add option ‘system.extraDependencies’ for including stuff in the system closure
Mostly useful for installer tests that don't have network access. This
generalizes virtualisation.pathsInNixDB and isoImage.storeContents.
2015-06-04 11:06:44 +02:00