20b364f4de
After the change from revision 30103, nixos-rebuild suddenly consumed freaky amounts of memory. I had to abort the process after it had allocated well in excess of 30GB(!) of RAM. I'm not sure what is causing this behavior, but undoing that assignment fixes the problem. The other two commits needed to be revoked, too, because they depend on 30103. svn path=/nixos/trunk/; revision=30127
128 lines
3.0 KiB
Nix
128 lines
3.0 KiB
Nix
# This module defines the packages that appear in
|
|
# /var/run/current-system/sw.
|
|
|
|
{pkgs, config, ...}:
|
|
|
|
with pkgs.lib;
|
|
|
|
let
|
|
|
|
cfg = config.environment;
|
|
|
|
requiredPackages =
|
|
[ config.system.sbin.modprobe # must take precedence over module_init_tools
|
|
config.system.sbin.mount # must take precedence over util-linux
|
|
config.system.build.upstart
|
|
config.environment.nix
|
|
pkgs.acl
|
|
pkgs.attr
|
|
pkgs.bashInteractive # bash with ncurses support
|
|
pkgs.bzip2
|
|
pkgs.coreutils
|
|
pkgs.cpio
|
|
pkgs.curl
|
|
pkgs.diffutils
|
|
pkgs.eject # HAL depends on it anyway
|
|
pkgs.findutils
|
|
pkgs.gawk
|
|
pkgs.glibc # for ldd, getent
|
|
pkgs.gnugrep
|
|
pkgs.gnupatch
|
|
pkgs.gnused
|
|
pkgs.gnutar
|
|
pkgs.gzip
|
|
pkgs.less
|
|
pkgs.libcap
|
|
pkgs.man
|
|
pkgs.module_init_tools
|
|
pkgs.nano
|
|
pkgs.ncurses
|
|
pkgs.netcat
|
|
pkgs.ntp
|
|
pkgs.openssh
|
|
pkgs.pciutils
|
|
pkgs.perl
|
|
pkgs.procps
|
|
pkgs.rsync
|
|
pkgs.seccure
|
|
pkgs.strace
|
|
pkgs.sysklogd
|
|
pkgs.sysvtools
|
|
pkgs.time
|
|
pkgs.udev
|
|
pkgs.usbutils
|
|
pkgs.utillinux
|
|
];
|
|
|
|
|
|
options = {
|
|
|
|
environment = {
|
|
|
|
systemPackages = mkOption {
|
|
default = [];
|
|
example = "[ pkgs.icecat3 pkgs.thunderbird ]";
|
|
description = ''
|
|
The set of packages that appear in
|
|
/var/run/current-system/sw. These packages are
|
|
automatically available to all users, and are
|
|
automatically updated every time you rebuild the system
|
|
configuration. (The latter is the main difference with
|
|
installing them in the default profile,
|
|
<filename>/nix/var/nix/profiles/default</filename>.
|
|
'';
|
|
};
|
|
|
|
pathsToLink = mkOption {
|
|
# Note: We need `/lib' to be among `pathsToLink' for NSS modules
|
|
# to work.
|
|
default = [];
|
|
example = ["/"];
|
|
description = "
|
|
Lists directories to be symlinked in `/var/run/current-system/sw'.
|
|
";
|
|
};
|
|
};
|
|
|
|
system = {
|
|
|
|
path = mkOption {
|
|
default = cfg.systemPackages;
|
|
description = ''
|
|
The packages you want in the boot environment.
|
|
'';
|
|
|
|
apply = list: pkgs.buildEnv {
|
|
name = "system-path";
|
|
paths = list;
|
|
inherit (cfg) pathsToLink;
|
|
ignoreCollisions = true;
|
|
# !!! Hacky, should modularise.
|
|
postBuild =
|
|
''
|
|
if [ -x $out/bin/update-mime-database -a -w $out/share/mime/packages ]; then
|
|
$out/bin/update-mime-database -V $out/share/mime
|
|
fi
|
|
|
|
if [ -x $out/bin/gtk-update-icon-cache -a -f $out/share/icons/hicolor/index.theme ]; then
|
|
$out/bin/gtk-update-icon-cache $out/share/icons/hicolor
|
|
fi
|
|
'';
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
in
|
|
|
|
{
|
|
require = [options];
|
|
|
|
environment.systemPackages = requiredPackages;
|
|
environment.pathsToLink = ["/bin" "/sbin" "/lib" "/share/man" "/share/info" "/share/emacs" "/man" "/info" "/etc/xdg"];
|
|
}
|