2009-05-25 10:41:03 -07:00
|
|
|
# This module defines the packages that appear in
|
2012-07-16 08:27:59 -07:00
|
|
|
# /run/current-system/sw.
|
2009-05-25 10:41:03 -07:00
|
|
|
|
2014-04-14 07:26:48 -07:00
|
|
|
{ config, lib, pkgs, ... }:
|
2009-05-25 10:41:03 -07:00
|
|
|
|
2014-04-14 07:26:48 -07:00
|
|
|
with lib;
|
2009-05-25 10:41:03 -07:00
|
|
|
|
|
|
|
let
|
|
|
|
|
2009-05-29 06:15:31 -07:00
|
|
|
requiredPackages =
|
2013-10-28 08:28:04 -07:00
|
|
|
[ config.nix.package
|
2009-05-25 10:41:03 -07:00
|
|
|
pkgs.acl
|
|
|
|
pkgs.attr
|
|
|
|
pkgs.bashInteractive # bash with ncurses support
|
|
|
|
pkgs.bzip2
|
|
|
|
pkgs.coreutils
|
|
|
|
pkgs.cpio
|
|
|
|
pkgs.curl
|
2009-06-12 04:12:46 -07:00
|
|
|
pkgs.diffutils
|
2009-05-25 10:41:03 -07:00
|
|
|
pkgs.findutils
|
2009-06-12 04:12:46 -07:00
|
|
|
pkgs.gawk
|
2009-05-25 10:41:03 -07:00
|
|
|
pkgs.glibc # for ldd, getent
|
|
|
|
pkgs.gnugrep
|
2009-06-12 04:12:46 -07:00
|
|
|
pkgs.gnupatch
|
2009-05-25 10:41:03 -07:00
|
|
|
pkgs.gnused
|
2012-03-04 07:47:44 -08:00
|
|
|
pkgs.gnutar
|
2009-05-25 10:41:03 -07:00
|
|
|
pkgs.gzip
|
2013-01-30 06:01:31 -08:00
|
|
|
pkgs.xz
|
2009-05-25 10:41:03 -07:00
|
|
|
pkgs.less
|
|
|
|
pkgs.libcap
|
|
|
|
pkgs.nano
|
|
|
|
pkgs.ncurses
|
|
|
|
pkgs.netcat
|
2015-06-26 17:09:58 -07:00
|
|
|
config.programs.ssh.package
|
2009-05-25 10:41:03 -07:00
|
|
|
pkgs.perl
|
|
|
|
pkgs.procps
|
|
|
|
pkgs.rsync
|
|
|
|
pkgs.strace
|
2014-04-05 11:41:23 -07:00
|
|
|
pkgs.su
|
2009-05-25 10:41:03 -07:00
|
|
|
pkgs.time
|
2015-08-17 09:04:16 -07:00
|
|
|
pkgs.texinfoInteractive
|
2012-12-17 10:09:05 -08:00
|
|
|
pkgs.utillinux
|
2009-09-28 11:26:18 -07:00
|
|
|
];
|
2009-06-05 05:57:44 -07:00
|
|
|
|
2013-09-04 04:05:09 -07:00
|
|
|
in
|
2009-05-25 10:41:03 -07:00
|
|
|
|
2013-09-04 04:05:09 -07:00
|
|
|
{
|
2009-05-25 10:41:03 -07:00
|
|
|
options = {
|
|
|
|
|
|
|
|
environment = {
|
|
|
|
|
|
|
|
systemPackages = mkOption {
|
2015-02-09 12:49:01 -08:00
|
|
|
type = types.listOf types.package;
|
2009-09-28 11:26:18 -07:00
|
|
|
default = [];
|
2014-08-27 13:44:56 -07:00
|
|
|
example = literalExample "[ pkgs.firefox pkgs.thunderbird ]";
|
2009-05-25 10:41:03 -07:00
|
|
|
description = ''
|
|
|
|
The set of packages that appear in
|
2012-07-16 08:27:59 -07:00
|
|
|
/run/current-system/sw. These packages are
|
2009-05-25 10:41:03 -07: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 08:19:58 -07:00
|
|
|
<filename>/nix/var/nix/profiles/default</filename>.
|
2009-05-25 10:41:03 -07:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
pathsToLink = mkOption {
|
2013-10-30 06:18:41 -07:00
|
|
|
type = types.listOf types.str;
|
2010-04-15 08:46:55 -07:00
|
|
|
# Note: We need `/lib' to be among `pathsToLink' for NSS modules
|
|
|
|
# to work.
|
2010-04-15 22:09:10 -07:00
|
|
|
default = [];
|
2009-05-25 10:41:03 -07:00
|
|
|
example = ["/"];
|
2015-10-30 06:13:47 -07:00
|
|
|
description = "List of directories to be symlinked in <filename>/run/current-system/sw</filename>.";
|
2009-05-25 10:41:03 -07:00
|
|
|
};
|
2015-10-30 06:13:47 -07:00
|
|
|
|
2016-01-28 02:24:18 -08:00
|
|
|
extraOutputsToLink = mkOption {
|
2015-10-30 06:13:47 -07:00
|
|
|
type = types.listOf types.str;
|
2015-11-27 05:49:54 -08:00
|
|
|
default = [ ];
|
2016-01-28 02:24:18 -08:00
|
|
|
example = [ "doc" "info" "docdev" ];
|
|
|
|
description = "List of additional package outputs to be symlinked into <filename>/run/current-system/sw</filename>.";
|
2009-05-25 10:41:03 -07:00
|
|
|
};
|
2015-10-30 06:13:47 -07:00
|
|
|
|
2009-05-25 10:41:03 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
system = {
|
|
|
|
|
|
|
|
path = mkOption {
|
2013-10-23 07:59:33 -07:00
|
|
|
internal = true;
|
2009-05-25 10:41:03 -07:00
|
|
|
description = ''
|
|
|
|
The packages you want in the boot environment.
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
|
|
|
};
|
2011-09-14 11:20:50 -07:00
|
|
|
|
2009-05-25 10:41:03 -07:00
|
|
|
};
|
|
|
|
|
2013-09-04 04:05:09 -07:00
|
|
|
config = {
|
2009-05-25 10:41:03 -07:00
|
|
|
|
2013-09-04 04:05:09 -07:00
|
|
|
environment.systemPackages = requiredPackages;
|
2009-05-25 10:41:03 -07:00
|
|
|
|
2013-09-04 04:05:09 -07:00
|
|
|
environment.pathsToLink =
|
|
|
|
[ "/bin"
|
|
|
|
"/etc/xdg"
|
|
|
|
"/info"
|
2015-10-30 07:16:48 -07:00
|
|
|
"/lib" # FIXME: remove and update debug-info.nix
|
2015-04-01 13:46:40 -07:00
|
|
|
"/sbin"
|
2015-09-02 15:31:34 -07:00
|
|
|
"/share/applications"
|
|
|
|
"/share/desktop-directories"
|
2014-10-18 02:30:31 -07:00
|
|
|
"/share/doc"
|
2013-09-04 04:05:09 -07:00
|
|
|
"/share/emacs"
|
2015-09-02 15:31:34 -07:00
|
|
|
"/share/icons"
|
2013-09-04 04:05:09 -07:00
|
|
|
"/share/info"
|
2015-09-02 15:31:34 -07:00
|
|
|
"/share/menus"
|
|
|
|
"/share/mime"
|
2014-10-18 02:30:31 -07:00
|
|
|
"/share/nano"
|
|
|
|
"/share/org"
|
|
|
|
"/share/terminfo"
|
2015-09-02 15:31:34 -07:00
|
|
|
"/share/themes"
|
2014-10-18 02:30:31 -07:00
|
|
|
"/share/vim-plugins"
|
2013-09-04 04:05:09 -07:00
|
|
|
];
|
|
|
|
|
2013-10-23 07:34:38 -07:00
|
|
|
system.path = pkgs.buildEnv {
|
|
|
|
name = "system-path";
|
2015-11-27 05:49:54 -08:00
|
|
|
paths =
|
2016-01-28 02:24:18 -08:00
|
|
|
# The default output probably shouldn't be globally configurable.
|
|
|
|
# Services and users should specify them explicitly unless they want this default.
|
|
|
|
map (p: if p.outputUnspecified or false then p.bin or p.out or p else p)
|
|
|
|
config.environment.systemPackages;
|
|
|
|
inherit (config.environment) pathsToLink extraOutputsToLink;
|
2013-10-23 07:34:38 -07:00
|
|
|
ignoreCollisions = true;
|
|
|
|
# !!! Hacky, should modularise.
|
2016-01-28 02:24:18 -08:00
|
|
|
# outputs TODO: note that the tools will often not be linked by default
|
2013-10-23 07:34:38 -07:00
|
|
|
postBuild =
|
|
|
|
''
|
2015-12-17 04:10:16 -08:00
|
|
|
if [ -x $out/bin/update-mime-database -a -w $out/share/mime ]; then
|
2013-10-30 10:36:16 -07:00
|
|
|
XDG_DATA_DIRS=$out/share $out/bin/update-mime-database -V $out/share/mime > /dev/null
|
2013-10-23 07:34:38 -07:00
|
|
|
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
|
|
|
|
|
|
|
|
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
|
2014-04-12 07:30:29 -07:00
|
|
|
|
|
|
|
if [ -x $out/bin/update-desktop-database -a -w $out/share/applications ]; then
|
|
|
|
$out/bin/update-desktop-database $out/share/applications
|
|
|
|
fi
|
2015-08-17 09:04:16 -07:00
|
|
|
|
|
|
|
if [ -x $out/bin/install-info -a -w $out/share/info ]; then
|
|
|
|
shopt -s nullglob
|
|
|
|
for i in $out/share/info/*.info $out/share/info/*.info.gz; do
|
|
|
|
$out/bin/install-info $i $out/share/info/dir
|
|
|
|
done
|
|
|
|
fi
|
2013-10-23 07:34:38 -07:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2013-09-04 04:05:09 -07:00
|
|
|
};
|
2009-05-25 10:41:03 -07:00
|
|
|
}
|