mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-10-01 01:57:37 +03:00
* Synced with trunk @ 14905
svn path=/nixos/branches/modular-nixos/; revision=14986
This commit is contained in:
commit
16a916f297
@ -15,9 +15,7 @@ export LANG=@defaultLocale@
|
|||||||
export EDITOR=nano
|
export EDITOR=nano
|
||||||
export INFOPATH=/var/run/current-system/sw/info:/var/run/current-system/sw/share/info
|
export INFOPATH=/var/run/current-system/sw/info:/var/run/current-system/sw/share/info
|
||||||
export LOCATE_PATH=/var/cache/locatedb
|
export LOCATE_PATH=/var/cache/locatedb
|
||||||
export KDEDIRS=/var/run/current-system/sw
|
@shellInit@
|
||||||
export XDG_CONFIG_DIRS=/var/run/current-system/sw/etc/xdg
|
|
||||||
export XDG_DATA_DIRS=/var/run/current-system/sw/share
|
|
||||||
|
|
||||||
# Set up secure multi-user builds: non-root users build through the
|
# Set up secure multi-user builds: non-root users build through the
|
||||||
# Nix daemon.
|
# Nix daemon.
|
||||||
@ -43,11 +41,11 @@ for i in $NIX_PROFILES; do # !!! reverse
|
|||||||
export PKG_CONFIG_PATH="$i/lib/pkgconfig:$PKG_CONFIG_PATH"
|
export PKG_CONFIG_PATH="$i/lib/pkgconfig:$PKG_CONFIG_PATH"
|
||||||
|
|
||||||
# Automake's `aclocal' bails out if it finds non-existent directories
|
# Automake's `aclocal' bails out if it finds non-existent directories
|
||||||
# in its path. !!! We should fix aclocal instead.
|
# in its path. !!! This has been fixed in the stdenv branch.
|
||||||
if [ -d "$i/share/aclocal" ]
|
if [ -d "$i/share/aclocal" ]; then
|
||||||
then
|
export ACLOCAL_PATH="$i/share/aclocal:$ACLOCAL_PATH"
|
||||||
export ACLOCAL_PATH="$i/share/aclocal:$ACLOCAL_PATH"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PERL5LIB="$i/lib/site_perl:$PERL5LIB"
|
export PERL5LIB="$i/lib/site_perl:$PERL5LIB"
|
||||||
|
|
||||||
# GStreamer.
|
# GStreamer.
|
||||||
|
@ -19,12 +19,23 @@ let
|
|||||||
List of files that have to be linked in /etc.
|
List of files that have to be linked in /etc.
|
||||||
";
|
";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# !!! This should be moved outside of /etc/default.nix.
|
||||||
|
shellInit = mkOption {
|
||||||
|
default = "";
|
||||||
|
example = ''export PATH=/godi/bin/:$PATH'';
|
||||||
|
description = "
|
||||||
|
Script used to initialized user shell environments.
|
||||||
|
";
|
||||||
|
merge = pkgs.lib.mergeStringOption;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
let
|
let
|
||||||
|
shellInit = config.environment.shellInit;
|
||||||
nixEnvVars = config.nix.envVars;
|
nixEnvVars = config.nix.envVars;
|
||||||
modulesTree = config.system.modulesTree;
|
modulesTree = config.system.modulesTree;
|
||||||
nssModulesPath = config.system.nssModules.path;
|
nssModulesPath = config.system.nssModules.path;
|
||||||
@ -114,7 +125,7 @@ let
|
|||||||
inherit (pkgs) glibc;
|
inherit (pkgs) glibc;
|
||||||
timeZone = config.time.timeZone;
|
timeZone = config.time.timeZone;
|
||||||
defaultLocale = config.i18n.defaultLocale;
|
defaultLocale = config.i18n.defaultLocale;
|
||||||
inherit nixEnvVars;
|
inherit nixEnvVars shellInit;
|
||||||
};
|
};
|
||||||
target = "bashrc";
|
target = "bashrc";
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ in
|
|||||||
|
|
||||||
|
|
||||||
pathsToLink = mkOption {
|
pathsToLink = mkOption {
|
||||||
default = ["/bin" "/sbin" "/lib" "/share" "/man" "/info" "/etc"];
|
default = ["/bin" "/sbin" "/lib" "/share/man" "/share/info" "/man" "/info"];
|
||||||
example = ["/"];
|
example = ["/"];
|
||||||
description = "
|
description = "
|
||||||
Lists directories to be symlinked in `/var/run/current-system/sw'.
|
Lists directories to be symlinked in `/var/run/current-system/sw'.
|
||||||
|
@ -162,6 +162,7 @@ in
|
|||||||
";
|
";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# !!! The mount option should not stay in /system/option.nix
|
||||||
mount = mkOption {
|
mount = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
default = pkgs.utillinuxng.override {
|
default = pkgs.utillinuxng.override {
|
||||||
@ -171,6 +172,7 @@ in
|
|||||||
paths = [
|
paths = [
|
||||||
pkgs.ntfs3g
|
pkgs.ntfs3g
|
||||||
pkgs.mount_cifs
|
pkgs.mount_cifs
|
||||||
|
pkgs.nfsUtils
|
||||||
];
|
];
|
||||||
pathsToLink = "/sbin";
|
pathsToLink = "/sbin";
|
||||||
} + "/sbin";
|
} + "/sbin";
|
||||||
@ -442,6 +444,7 @@ in
|
|||||||
(import ../upstart-jobs/zabbix-agent.nix)
|
(import ../upstart-jobs/zabbix-agent.nix)
|
||||||
(import ../upstart-jobs/zabbix-server.nix)
|
(import ../upstart-jobs/zabbix-server.nix)
|
||||||
(import ../upstart-jobs/disnix.nix)
|
(import ../upstart-jobs/disnix.nix)
|
||||||
|
(import ../upstart-jobs/consolekit.nix)
|
||||||
(import ../upstart-jobs/cron.nix)
|
(import ../upstart-jobs/cron.nix)
|
||||||
(import ../upstart-jobs/fcron.nix)
|
(import ../upstart-jobs/fcron.nix)
|
||||||
(import ../upstart-jobs/cron/locate.nix)
|
(import ../upstart-jobs/cron/locate.nix)
|
||||||
|
@ -64,16 +64,6 @@ let
|
|||||||
inherit (config.environment) pathsToLink;
|
inherit (config.environment) pathsToLink;
|
||||||
|
|
||||||
ignoreCollisions = true;
|
ignoreCollisions = true;
|
||||||
|
|
||||||
# TODO: move this to upstart-jobs/xserver/desktopManager/kde4.nix
|
|
||||||
postBuild =
|
|
||||||
if config.services.xserver.desktopManager.kde4.enable then
|
|
||||||
# Rebuild the MIME database. Otherwise KDE won't be able to
|
|
||||||
# find many MIME types.
|
|
||||||
''
|
|
||||||
${pkgs.shared_mime_info}/bin/update-mime-database $out/share/mime
|
|
||||||
''
|
|
||||||
else "";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -224,7 +224,11 @@ rec {
|
|||||||
pkgs.diffutils
|
pkgs.diffutils
|
||||||
pkgs.upstart # for initctl
|
pkgs.upstart # for initctl
|
||||||
];
|
];
|
||||||
# !!! wtf does this do???
|
# This attribute is responsible for creating boot entries for
|
||||||
|
# child configuration. They are only (directly) accessible
|
||||||
|
# when the parent configuration is boot default. For example,
|
||||||
|
# you can provide an easy way to boot the same configuration
|
||||||
|
# as you use, but with another kernel
|
||||||
children = map (x: ((import ./system.nix)
|
children = map (x: ((import ./system.nix)
|
||||||
{ inherit platform;
|
{ inherit platform;
|
||||||
configuration = x//{boot=((x.boot)//{grubDevice = "";});};}).system)
|
configuration = x//{boot=((x.boot)//{grubDevice = "";});};}).system)
|
||||||
|
59
upstart-jobs/consolekit.nix
Normal file
59
upstart-jobs/consolekit.nix
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{pkgs, config, ...}:
|
||||||
|
|
||||||
|
###### interface
|
||||||
|
let
|
||||||
|
inherit (pkgs.lib) mkOption;
|
||||||
|
|
||||||
|
options = {
|
||||||
|
services = {
|
||||||
|
|
||||||
|
consolekit = {
|
||||||
|
enable = mkOption {
|
||||||
|
default = false;
|
||||||
|
description = "
|
||||||
|
Whether to start the ConsoleKit daemon.
|
||||||
|
";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
let
|
||||||
|
cfg = config.services.consolekit;
|
||||||
|
inherit (pkgs.lib) mkIf;
|
||||||
|
inherit (pkgs) ConsoleKit;
|
||||||
|
|
||||||
|
job = {
|
||||||
|
name = "consolekit";
|
||||||
|
|
||||||
|
job = ''
|
||||||
|
description "Console Kit Service"
|
||||||
|
|
||||||
|
start on dbus
|
||||||
|
stop on shutdown
|
||||||
|
|
||||||
|
respawn ${ConsoleKit}/sbin/console-kit-daemon
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
mkIf cfg.enable {
|
||||||
|
require = [
|
||||||
|
(import ../upstart-jobs/default.nix) # config.services.extraJobs
|
||||||
|
(import ../upstart-jobs/dbus.nix) # services.dbus.*
|
||||||
|
options
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
extraJobs = [job];
|
||||||
|
|
||||||
|
dbus = {
|
||||||
|
enable = true;
|
||||||
|
services = [ConsoleKit];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -24,6 +24,10 @@ let
|
|||||||
crontab. See the manual page for crontab for the expected
|
crontab. See the manual page for crontab for the expected
|
||||||
format. If you want to get the results mailed you must setuid
|
format. If you want to get the results mailed you must setuid
|
||||||
sendmail. See <option>security.setuidOwners</option>
|
sendmail. See <option>security.setuidOwners</option>
|
||||||
|
|
||||||
|
If neither /var/cron/cron.deny nor /var/cron/cron.allow exist only root
|
||||||
|
will is allowed to have its own crontab file. The /var/cron/cron.deny file
|
||||||
|
is created automatically for you. So every user can use a crontab.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -86,6 +90,16 @@ in
|
|||||||
# Needed to interpret times in the local timezone.
|
# Needed to interpret times in the local timezone.
|
||||||
env TZ=${config.time.timeZone}
|
env TZ=${config.time.timeZone}
|
||||||
|
|
||||||
|
start script
|
||||||
|
mkdir -m 710 -p /var/cron
|
||||||
|
|
||||||
|
# By default, allow all users to create a crontab. This
|
||||||
|
# is denoted by the existence of an empty cron.deny file.
|
||||||
|
if ! test -e /var/cron/cron.allow -o -e /var/cron/cron.deny; then
|
||||||
|
touch /var/cron/cron.deny
|
||||||
|
fi
|
||||||
|
end script
|
||||||
|
|
||||||
respawn ${pkgs.cron}/sbin/cron -n
|
respawn ${pkgs.cron}/sbin/cron -n
|
||||||
'';
|
'';
|
||||||
}];
|
}];
|
||||||
|
@ -44,8 +44,7 @@ let
|
|||||||
name = "dbus-conf";
|
name = "dbus-conf";
|
||||||
buildCommand = "
|
buildCommand = "
|
||||||
ensureDir $out
|
ensureDir $out
|
||||||
substitute ${dbus}/etc/dbus-1/system.conf $out/system.conf \\
|
ln -s ${dbus}/etc/dbus-1/system.conf $out/system.conf
|
||||||
--replace '<fork/>' ''
|
|
||||||
|
|
||||||
ensureDir $out/system.d
|
ensureDir $out/system.d
|
||||||
for i in ${toString services}; do
|
for i in ${toString services}; do
|
||||||
@ -77,14 +76,18 @@ let
|
|||||||
|
|
||||||
mkdir -m 0755 -p /var/lib/dbus
|
mkdir -m 0755 -p /var/lib/dbus
|
||||||
${dbus.tools}/bin/dbus-uuidgen --ensure
|
${dbus.tools}/bin/dbus-uuidgen --ensure
|
||||||
|
|
||||||
|
rm -f ${homeDir}/pid
|
||||||
|
${dbus}/bin/dbus-daemon --config-file=${configFile}/system.conf
|
||||||
end script
|
end script
|
||||||
|
|
||||||
respawn
|
respawn sleep 1000000
|
||||||
|
|
||||||
script
|
stop script
|
||||||
rm -f ${homeDir}/pid
|
pid=$(cat ${homeDir}/pid)
|
||||||
exec ${dbus}/bin/dbus-daemon --config-file=${configFile}/system.conf
|
if test -n "$pid"; then
|
||||||
|
kill -9 $pid
|
||||||
|
fi
|
||||||
end script
|
end script
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -41,11 +41,6 @@ let
|
|||||||
start on dbus
|
start on dbus
|
||||||
stop on shutdown
|
stop on shutdown
|
||||||
|
|
||||||
start script
|
|
||||||
# !!! quick hack: wait until dbus has started
|
|
||||||
sleep 3
|
|
||||||
end script
|
|
||||||
|
|
||||||
respawn ${pkgs.bash}/bin/sh -c 'export PATH=/var/run/current-system/sw/bin:$PATH; export HOME=/root; export DISNIX_ACTIVATE_HOOK=${cfg.activateHook}; export DISNIX_DEACTIVATE_HOOK=${cfg.deactivateHook}; ${pkgs.disnix}/bin/disnix-service'
|
respawn ${pkgs.bash}/bin/sh -c 'export PATH=/var/run/current-system/sw/bin:$PATH; export HOME=/root; export DISNIX_ACTIVATE_HOOK=${cfg.activateHook}; export DISNIX_DEACTIVATE_HOOK=${cfg.deactivateHook}; ${pkgs.disnix}/bin/disnix-service'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -51,9 +51,6 @@ let
|
|||||||
|
|
||||||
start script
|
start script
|
||||||
|
|
||||||
# !!! quick hack: wait until dbus has started
|
|
||||||
sleep 3
|
|
||||||
|
|
||||||
mkdir -m 0755 -p /var/cache/hald
|
mkdir -m 0755 -p /var/cache/hald
|
||||||
|
|
||||||
end script
|
end script
|
||||||
|
@ -98,6 +98,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Environment variables for running Nix.
|
# Environment variables for running Nix.
|
||||||
|
# !!! Fix description.
|
||||||
envVars = mkOption {
|
envVars = mkOption {
|
||||||
internal = true;
|
internal = true;
|
||||||
default = "";
|
default = "";
|
||||||
|
@ -290,14 +290,14 @@ let
|
|||||||
|
|
||||||
knownVideoDrivers = {
|
knownVideoDrivers = {
|
||||||
nvidia = { modulesFirst = [ kernelPackages.nvidia_x11 ]; }; #make sure it first loads the nvidia libs
|
nvidia = { modulesFirst = [ kernelPackages.nvidia_x11 ]; }; #make sure it first loads the nvidia libs
|
||||||
vesa = { modules = [xorg.xf86videovesa]; };
|
vesa = { modules = [xorg.xf86videovesa]; };
|
||||||
vga = { modules = [xorg.xf86videovga]; };
|
vga = { modules = [xorg.xf86videovga]; };
|
||||||
sis = { modules = [xorg.xf86videosis]; };
|
sis = { modules = [xorg.xf86videosis]; };
|
||||||
i810 = { modules = [xorg.xf86videoi810]; };
|
i810 = { modules = [xorg.xf86videoi810]; };
|
||||||
intel = { modules = [xorg.xf86videointel]; };
|
intel = { modules = [xorg.xf86videointel]; };
|
||||||
nv = { modules = [xorg.xf86videonv]; };
|
nv = { modules = [xorg.xf86videonv]; };
|
||||||
ati = { modules = [xorg.xf86videoati]; };
|
ati = { modules = [xorg.xf86videoati]; };
|
||||||
via = { modules = [xorg.xf86videovia]; };
|
via = { modules = [xorg.xf86videovia]; };
|
||||||
cirrus = { modules = [xorg.xf86videocirrus]; };
|
cirrus = { modules = [xorg.xf86videocirrus]; };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -19,7 +19,12 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
mkIf cfg.enable {
|
mkIf cfg.enable {
|
||||||
require = options;
|
require = [
|
||||||
|
options
|
||||||
|
|
||||||
|
# environment.kdePackages
|
||||||
|
(import ./kdeEnvironment.nix)
|
||||||
|
];
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
xserver = {
|
||||||
@ -29,9 +34,6 @@ mkIf cfg.enable {
|
|||||||
name = "kde";
|
name = "kde";
|
||||||
start = ''
|
start = ''
|
||||||
# Start KDE.
|
# Start KDE.
|
||||||
export KDEDIRS=$HOME/.nix-profile:/nix/var/nix/profiles/default:${pkgs.kdebase}:${pkgs.kdelibs}
|
|
||||||
export XDG_CONFIG_DIRS=${pkgs.kdebase}/etc/xdg:${pkgs.kdelibs}/etc/xdg
|
|
||||||
export XDG_DATA_DIRS=${pkgs.kdebase}/share
|
|
||||||
exec ${pkgs.kdebase}/bin/startkde
|
exec ${pkgs.kdebase}/bin/startkde
|
||||||
'';
|
'';
|
||||||
}];
|
}];
|
||||||
@ -47,9 +49,12 @@ mkIf cfg.enable {
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
extraPackages = [
|
kdePackages = [
|
||||||
pkgs.kdelibs
|
pkgs.kdelibs
|
||||||
pkgs.kdebase
|
pkgs.kdebase
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPackages = [
|
||||||
xorg.xset # used by startkde, non-essential
|
xorg.xset # used by startkde, non-essential
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -19,7 +19,12 @@ let
|
|||||||
in
|
in
|
||||||
|
|
||||||
mkIf cfg.enable {
|
mkIf cfg.enable {
|
||||||
require = options;
|
require = [
|
||||||
|
options
|
||||||
|
|
||||||
|
# environment.kdePackages
|
||||||
|
(import ./kdeEnvironment.nix)
|
||||||
|
];
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
xserver = {
|
||||||
@ -44,15 +49,17 @@ mkIf cfg.enable {
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
extraPackages = [
|
kdePackages = [
|
||||||
xorg.xmessage # so that startkde can show error messages
|
|
||||||
pkgs.qt4 # needed for qdbus
|
|
||||||
pkgs.kde42.kdelibs
|
pkgs.kde42.kdelibs
|
||||||
pkgs.kde42.kdebase
|
pkgs.kde42.kdebase
|
||||||
pkgs.kde42.kdebase_runtime
|
pkgs.kde42.kdebase_runtime
|
||||||
pkgs.kde42.kdebase_workspace
|
pkgs.kde42.kdebase_workspace
|
||||||
pkgs.kde42.kdegames
|
|
||||||
pkgs.shared_mime_info
|
pkgs.shared_mime_info
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPackages = [
|
||||||
|
xorg.xmessage # so that startkde can show error messages
|
||||||
|
pkgs.qt4 # needed for qdbus
|
||||||
xorg.xset # used by startkde, non-essential
|
xorg.xset # used by startkde, non-essential
|
||||||
];
|
];
|
||||||
|
|
||||||
|
51
upstart-jobs/xserver/desktopManager/kdeEnvironment.nix
Normal file
51
upstart-jobs/xserver/desktopManager/kdeEnvironment.nix
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{pkgs, config, ...}:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (pkgs.lib) mkOption mkIf;
|
||||||
|
kdePackages = config.environment.kdePackages;
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
kde = {
|
||||||
|
|
||||||
|
extraPackages = mkOption {
|
||||||
|
default = [];
|
||||||
|
merge = builtins.trace "!!! kde.extraPackages is obsolete, you should use environment.kdePackages." pkgs.lib.mergeDefaultOption;
|
||||||
|
description = ''
|
||||||
|
** Obsolete **
|
||||||
|
Additional KDE packages to be used when you use KDE as a desktop
|
||||||
|
manager. By default, you only get the KDE base packages.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
|
||||||
|
kdePackages = mkOption {
|
||||||
|
default = [];
|
||||||
|
example = [ pkgs.kde42.kdegames ];
|
||||||
|
description = ''
|
||||||
|
Additional KDE packages to be used when you use KDE as a desktop
|
||||||
|
manager. By default, you only get the KDE base packages.
|
||||||
|
'';
|
||||||
|
apply = pkgs: pkgs ++ config.kde.extraPackages
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
|
|
||||||
|
mkIf (kdePackages != []) {
|
||||||
|
require = options;
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
extraPackages = kdePackages;
|
||||||
|
|
||||||
|
shellInit = ''
|
||||||
|
export KDEDIRS="${pkgs.lib.concatStringsSep ":" kdePackages}"
|
||||||
|
export XDG_CONFIG_DIRS="${pkgs.lib.makeSearchPath "etc/xdg" kdePackages}"
|
||||||
|
export XDG_DATA_DIRS="${pkgs.lib.makeSearchPath "share" kdePackages}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user