Commit graph

225 commits

Author SHA1 Message Date
Eelco Dolstra
f70fbb1791 Fix duplicated environment values
All profileVariables listed each profile twice (e.g. $PATH contained
$HOME/.nix-profile/bin twice).  This is because mergeAttrsWithFunc is
broken (and deprecated):

  nix-repl> :p mergeAttrsWithFunc concat { x = [1]; } { y = [2]; }
  { x = [ 1 ]; y = [ 2 2 ]; }

So use zipAttrsWith instead.
2013-09-25 00:48:28 +02:00
Shea Levy
9ce148e738 Don't break compatibility with pre-1.6 nix
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-09-24 09:40:06 -04:00
Eelco Dolstra
ec2266b2e2 Make environment variables overridable 2013-09-24 11:27:25 +02:00
Eelco Dolstra
b933b15d72 Don't generate /etc/environment
/etc/environment, if it exists, should be a list of NAME=VALUE pairs,
not a shell script.  See the pam_env manpage.
2013-09-24 11:01:55 +02:00
Eelco Dolstra
9df40867b9 In environment.variables, unify "value" and "list" 2013-09-23 23:07:32 +02: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
Bjørn Forsman
8a01d244b1 Add services.samba.nsswins option
This option allows for seamless WINS/NetBIOS name lookup, using
nsswitch.
2013-09-07 15:09:44 +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
2dd8b19eac Fix description for PowerManagement units. 2013-08-27 08:06:53 +02:00
Mathijs Kwik
d860f9f78e power management: provide a post-resume target and unify
suspend/hibernate/hybrid-sleep handling
2013-08-25 13:58:09 +02:00
Evgeny Egorochkin
51c84aadaa Merge pull request #213 from ivan/extraUsers-root
Document that extraUsers options apply to root
2013-08-10 22:14:10 -07:00
Ivan Kozik
390fdb3e60 Fix typos, especially those that end up in the NixOS manual 2013-08-10 21:07:13 +00:00
Ivan Kozik
2fc123f148 Document that extraUsers options apply to root 2013-08-09 01:28:21 +00:00
Eelco Dolstra
39f67d9d38 Hide kernel pointers for unprivileged users via kptr_restrict 2013-07-31 16:11:04 +02:00
Rickard Nilsson
cd0da98b03 pulseaudio service: Use the configured pulseaudio package instead of the default. 2013-07-23 19:07:07 +02:00
Rickard Nilsson
279248f6c5 time.timeZone: Set the TZ environment variable, which is used by Java. 2013-06-29 18:43:38 +02:00
Eelco Dolstra
eb110fd3ce fontconfig: Set the default hinting style to "slight"
This works around a bug in infinality that causes broken rendering in
some cases.  Issue NixOS/nixpkgs#663.

Upstream suggests that "slight" is a better/safer default in any case.
It also looks better, IMHO, YMMV.
2013-06-27 13:28:22 +02:00
Eelco Dolstra
0cbf0605d2 Refactoring: Split fonts.nix into smaller modules 2013-06-27 13:12:45 +02:00
Ricardo M. Correia
02d9a8066a Add chrony service
Also, do not build and add ntp to the system unless it is enabled.
2013-05-23 02:07:49 +00:00
Mathijs Kwik
4630ad4d26 filesystems: add priority option for swap devices.
Useful for setting up raid0-like load balancing for swap.
By giving multiple swap devices the same prio.
2013-05-17 09:22:07 +02:00
Eelco Dolstra
8af81ad66b Don't start nscd if it's not already running
"systemctl restart" will start a service if it's not already
running...
2013-05-07 14:22:35 +02:00
modulistic
bdb22d37f1 typo in networking.dnsSingleRequest documentation 2013-05-04 11:26:56 +02:00
Eelco Dolstra
447691836a Create a /etc/zoneinfo symlink and use it in $TZDIR
Setting $TZDIR to ${pkgs.tzdata}/share/zoneinfo can cause logged-in
sessions to refer to a garbage-collected zoneinfo directory.  So use
/etc/zoneinfo instead.
2013-04-22 19:08:16 +02:00
Eelco Dolstra
945849b86f Don't set $TZ
We don't need to set $TZ, because we have /etc/localtime.  In fact,
setting $TZ without $TZDIR doesn't work anymore since Glibc no longer
contains zone info.
2013-04-22 18:56:19 +02:00
Rickard Nilsson
0ccc107300 nslcd: Start after network.target (but don't require network) 2013-04-09 22:47:59 +02:00
Peter Simons
0139f015be modules/config/networking.nix: strip trailing whitespace 2013-04-03 12:48:36 +02:00
Peter Simons
e2eaae1155 Let resolvconf 'restart' the nscd service instead of 'reload'ing it.
Sometimes nscd starts up before a /etc/resolv.conf file has been written, and
apparently triggering a cache flush (reload) is not good enough to make it
recover from that problem. To remedy the issue, we restart the service instead.
See <https://github.com/NixOS/nixos/issues/34> for further details.
2013-04-03 12:48:25 +02:00
Nicolas B. Pierron
8b2256686b Merge pull request #123 from MarcWeber/feed-upstream/toList
replace list by listOf using same style as for attrsOf
2013-03-23 16:21:21 -07:00
Peter Simons
c5ba924143 Revert "Add /run/nss to LD_LIBRARY_PATH".
Commit c948494342 exports too many shared
objects into the LD_LIBRARY_PATH, which causes problems with mplayer.
2013-03-21 11:25:25 +01:00
Rickard Nilsson
be698e93a4 Merge hardware.pulseaudio and services.pulseaudio
More specifically, this removes services.pulseaudio and adds the option
hardware.pulseaudio.systemWide which defaults to false but can be used to turn
on the system-wide PulseAudio server (previously defined in
services.pulseaudio). Since the two PulseAudio modes are mutually exclusive
anyway (maybe not strictly true, but I don't think is a good idea combining
them) its nicer to be able to reuse server and ALSA configuration between them.

Also the system-wide PulseAudio service has been adjusted to systemd, and a few
things has been fixed (there was no alsa.conf before, for example).

The bottomline is that people that was using hardware.pulseaudio before should
be able to keep doing it in exactly the same way, and people that used
services.pulseaudio must switch over to hardware.pulseaudio.systemWide instead.
2013-03-14 23:33:45 +01:00
Marc Weber
f3e6b42258 replace list by listOf using same style as for attrsOf 2013-03-14 17:09:21 +01:00
Peter Simons
8f679fef5b Merge pull request #116 from rickynils/nss
Add /run/nss to LD_LIBRARY_PATH
2013-03-13 02:57:32 -07:00
Rob Vermaas
28f3d02c29 symlink /etc/localtime was broken, /etc/localtime now points to a location in tzdata in stead of glibc 2013-03-12 10:56:43 +01:00
Rickard Nilsson
78f3da65ec Revert "nslcd: Require network.target"
This reverts commit af152556e3.

The network target is probably not really required, needs
further testing.
2013-03-12 09:38:22 +01:00
Shea Levy
763835e770 Console key map: Make option uniq
Signed-off-by: Shea Levy <shea@shealevy.com>
2013-03-09 06:27:27 -05:00
Rickard Nilsson
c948494342 Add /run/nss to LD_LIBRARY_PATH
This fixes issues with glibc-binaries (getent for example) that can't
find NSS modules that are not distributed with glibc.

See this discussion:
http://comments.gmane.org/gmane.linux.distributions.nixos/9940
2013-03-07 16:54:42 +01:00
Rickard Nilsson
af152556e3 nslcd: Require network.target 2013-03-05 19:45:27 +01:00
Shea Levy
bfe6c13f09 D'oh! 2013-03-04 10:03:01 -05:00
Shea Levy
0a81724a88 systemd-sysctl.service: Don't depend on basic.target 2013-03-04 09:57:24 -05:00
Eelco Dolstra
7f7e18cfce Enable hardlink and symlink restrictions
This prevents many time-of-check-time-of-use security bugs.  Ubuntu
enables these by default as well so they shouldn't cause many
problems.
2013-03-02 20:06:02 +01:00
Eelco Dolstra
080bf5614f Add a module for setting sysctl parameters
This adds an option ‘boot.kernel.sysctl’ and generates a file
/etc/sysctl/nixos.conf read by systemd-sysctl.service.
2013-03-02 20:06:02 +01:00
Peter Simons
09bfc9a53e modules/config/fonts.nix: revert "export GDFONTPATH in /etc/profile"
This reverts commit 2802538dc2. The idea
was good, but unfortunately $GDFONTPATH has a different format, i.e.
programs that use this variable don't descend into the directories
listed here like fontconfig does, so we cannot use the same values for
both settings.
2013-02-17 23:13:27 +01:00
Peter Simons
2802538dc2 modules/config/fonts.nix: export GDFONTPATH in /etc/profile
Set the environment variable GDFONTPATH to the list of directories where fonts
are expected to be installed. This is search path is used by same GD-based
applications, such as Gnuplot.

Alternatively, we could rely on fontconfig to achieve the same thing, i.e. by
running

  for n in $(fc-list | sed -r -e 's|^([^:]+):.*$|\1|'); do echo $(dirname "$n"); done | sort | uniq

to get that list at run-time, but the static approach feels more deterministic.
2013-02-17 22:47:08 +01:00
Eelco Dolstra
8ef4074811 Use nss_myhostname from systemd 2013-02-04 15:50:37 +01:00
Eelco Dolstra
1daab1ebf5 environment.etc: Add convenience option 'text'
This allows writing

  environment.etc.hosts.text = "127.0.0.1 localhost";

instead of

  environment.etc.hosts.source = pkgs.writeText "hosts" "127.0.0.1 localhost";
2013-02-03 14:28:18 +01:00
Eelco Dolstra
ab238804b8 Turn environment.etc into an attribute set
This provides a more convenient syntax and allows easier overriding.

For example,

  environment.etc = singleton
    { target = "vconsole.conf";
      source = vconsoleConf;
    };

can now be written as

  environment.etc."vconsole.conf".source = vconsoleConf;
2013-02-03 14:28:18 +01:00
Eelco Dolstra
37985ad66b Make xz available by default
NixOS depends on xz anyway, so we may as well make it available.
2013-01-30 15:01:31 +01:00
Rickard Nilsson
27414c4656 nslcd: Adjust service definition to systemd 2013-01-27 20:07:37 +01:00
Eelco Dolstra
f0a1e5e356 Use systemd.targets to define ip-up 2013-01-24 15:40:56 +01:00
Rickard Nilsson
4eb2b099e6 Generate share/glib-2.0/schemas/gschemas.compiled in system-path.
This is required to create a gschemas.compiled file with content
from all gschemas. Otherwise, gschemas.compiled will be taken
from a random package, and gsettings programs will not find what
they are looking for. I had to add this to get NetworkManager-applet
to work. You'll also have to add share/glib-2.0 to the pathsToLink
list.

Generating this in the activation script (along with gtk icons
etc), is not the nicest solution. But I have no real idea on
how to modularise it.
2013-01-23 09:10:14 +01:00