2009-05-25 19:41:03 +02:00
|
|
|
# This module defines the packages that appear in
|
2012-07-16 17:27:59 +02:00
|
|
|
# /run/current-system/sw.
|
2009-05-25 19:41:03 +02:00
|
|
|
|
2012-03-04 16:47:44 +01:00
|
|
|
{ config, pkgs, ... }:
|
2009-05-25 19:41:03 +02:00
|
|
|
|
|
|
|
with pkgs.lib;
|
|
|
|
|
|
|
|
let
|
|
|
|
|
2010-04-16 07:09:10 +02:00
|
|
|
cfg = config.environment;
|
2011-09-14 20:20:50 +02:00
|
|
|
|
2012-03-04 16:47:44 +01:00
|
|
|
extraManpages = pkgs.runCommand "extra-manpages" { buildInputs = [ pkgs.help2man ]; }
|
|
|
|
''
|
|
|
|
mkdir -p $out/share/man/man1
|
|
|
|
help2man ${pkgs.gnutar}/bin/tar > $out/share/man/man1/tar.1
|
|
|
|
'';
|
|
|
|
|
2009-05-29 15:15:31 +02:00
|
|
|
requiredPackages =
|
2012-06-15 20:18:26 +02:00
|
|
|
[ config.environment.nix
|
2009-05-25 19:41:03 +02:00
|
|
|
pkgs.acl
|
|
|
|
pkgs.attr
|
|
|
|
pkgs.bashInteractive # bash with ncurses support
|
|
|
|
pkgs.bzip2
|
|
|
|
pkgs.coreutils
|
|
|
|
pkgs.cpio
|
|
|
|
pkgs.curl
|
2009-06-12 13:12:46 +02:00
|
|
|
pkgs.diffutils
|
2009-09-26 20:57:34 +02:00
|
|
|
pkgs.eject # HAL depends on it anyway
|
2009-05-25 19:41:03 +02:00
|
|
|
pkgs.findutils
|
2009-06-12 13:12:46 +02:00
|
|
|
pkgs.gawk
|
2009-05-25 19:41:03 +02:00
|
|
|
pkgs.glibc # for ldd, getent
|
|
|
|
pkgs.gnugrep
|
2009-06-12 13:12:46 +02:00
|
|
|
pkgs.gnupatch
|
2009-05-25 19:41:03 +02:00
|
|
|
pkgs.gnused
|
2012-03-04 16:47:44 +01:00
|
|
|
pkgs.gnutar
|
2009-05-25 19:41:03 +02:00
|
|
|
pkgs.gzip
|
2013-01-30 15:01:31 +01:00
|
|
|
pkgs.xz
|
2009-05-25 19:41:03 +02:00
|
|
|
pkgs.less
|
|
|
|
pkgs.libcap
|
|
|
|
pkgs.man
|
|
|
|
pkgs.nano
|
|
|
|
pkgs.ncurses
|
|
|
|
pkgs.netcat
|
|
|
|
pkgs.openssh
|
|
|
|
pkgs.pciutils
|
|
|
|
pkgs.perl
|
|
|
|
pkgs.procps
|
|
|
|
pkgs.rsync
|
|
|
|
pkgs.strace
|
|
|
|
pkgs.sysvtools
|
|
|
|
pkgs.time
|
|
|
|
pkgs.usbutils
|
2012-12-17 19:09:05 +01:00
|
|
|
pkgs.utillinux
|
2013-01-30 15:01:31 +01:00
|
|
|
extraManpages
|
2009-09-28 20:26:18 +02:00
|
|
|
];
|
2009-06-05 14:57:44 +02:00
|
|
|
|
2009-05-25 19:41:03 +02:00
|
|
|
|
|
|
|
options = {
|
|
|
|
|
|
|
|
environment = {
|
|
|
|
|
|
|
|
systemPackages = mkOption {
|
2009-09-28 20:26:18 +02:00
|
|
|
default = [];
|
2010-05-28 13:24:41 +02:00
|
|
|
example = "[ pkgs.icecat3 pkgs.thunderbird ]";
|
2009-05-25 19:41:03 +02:00
|
|
|
description = ''
|
|
|
|
The set of packages that appear in
|
2012-07-16 17:27:59 +02:00
|
|
|
/run/current-system/sw. These packages are
|
2009-05-25 19:41:03 +02:00
|
|
|
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,
|
2011-10-30 16:19:58 +01:00
|
|
|
<filename>/nix/var/nix/profiles/default</filename>.
|
2009-05-25 19:41:03 +02:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
pathsToLink = mkOption {
|
2010-04-15 17:46:55 +02:00
|
|
|
# Note: We need `/lib' to be among `pathsToLink' for NSS modules
|
|
|
|
# to work.
|
2010-04-16 07:09:10 +02:00
|
|
|
default = [];
|
2009-05-25 19:41:03 +02:00
|
|
|
example = ["/"];
|
|
|
|
description = "
|
2012-07-16 17:27:59 +02:00
|
|
|
Lists directories to be symlinked in `/run/current-system/sw'.
|
2009-05-25 19:41:03 +02:00
|
|
|
";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
system = {
|
|
|
|
|
|
|
|
path = mkOption {
|
2010-04-16 07:09:10 +02:00
|
|
|
default = cfg.systemPackages;
|
2009-05-25 19:41:03 +02:00
|
|
|
description = ''
|
|
|
|
The packages you want in the boot environment.
|
|
|
|
'';
|
2011-09-14 20:20:50 +02:00
|
|
|
|
2009-05-25 19:41:03 +02:00
|
|
|
apply = list: pkgs.buildEnv {
|
|
|
|
name = "system-path";
|
|
|
|
paths = list;
|
2010-04-16 07:09:10 +02:00
|
|
|
inherit (cfg) pathsToLink;
|
2009-05-25 19:41:03 +02:00
|
|
|
ignoreCollisions = true;
|
2010-08-09 23:59:34 +02:00
|
|
|
# !!! Hacky, should modularise.
|
2010-07-08 14:55:18 +02:00
|
|
|
postBuild =
|
|
|
|
''
|
2011-02-05 07:58:15 +01:00
|
|
|
if [ -x $out/bin/update-mime-database -a -w $out/share/mime/packages ]; then
|
2010-07-08 14:55:18 +02:00
|
|
|
$out/bin/update-mime-database -V $out/share/mime
|
|
|
|
fi
|
2010-08-09 23:59:34 +02:00
|
|
|
|
2010-08-11 17:10:17 +02:00
|
|
|
if [ -x $out/bin/gtk-update-icon-cache -a -f $out/share/icons/hicolor/index.theme ]; then
|
2010-08-09 23:59:34 +02:00
|
|
|
$out/bin/gtk-update-icon-cache $out/share/icons/hicolor
|
|
|
|
fi
|
2013-01-17 12:52:54 +01:00
|
|
|
|
|
|
|
if [ -x $out/bin/glib-compile-schemas -a -w $out/share/glib-2.0/schemas ]; then
|
|
|
|
$out/bin/glib-compile-schemas $out/share/glib-2.0/schemas
|
|
|
|
fi
|
2010-07-08 14:55:18 +02:00
|
|
|
'';
|
2009-05-25 19:41:03 +02:00
|
|
|
};
|
2011-09-14 20:20:50 +02:00
|
|
|
|
2009-05-25 19:41:03 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
};
|
2011-09-14 20:20:50 +02:00
|
|
|
|
2009-05-25 19:41:03 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
in
|
|
|
|
|
|
|
|
{
|
2011-12-29 20:37:54 +01:00
|
|
|
require = [ options ];
|
2009-05-29 15:15:31 +02:00
|
|
|
|
|
|
|
environment.systemPackages = requiredPackages;
|
2011-12-29 20:37:54 +01:00
|
|
|
environment.pathsToLink = [
|
|
|
|
"/bin"
|
|
|
|
"/etc/xdg"
|
|
|
|
"/info"
|
|
|
|
"/lib"
|
|
|
|
"/man"
|
|
|
|
"/sbin"
|
|
|
|
"/share/emacs"
|
2012-01-23 18:14:24 +01:00
|
|
|
"/share/org"
|
2011-12-29 20:37:54 +01:00
|
|
|
"/share/info"
|
2011-12-29 20:38:00 +01:00
|
|
|
"/share/terminfo"
|
2011-12-29 20:37:54 +01:00
|
|
|
"/share/man"
|
|
|
|
];
|
2009-05-25 19:41:03 +02:00
|
|
|
}
|