* Let KDEDIRS, XDG_CONFIG_DIRS and XDG_DATA_DIRS contain the KDE
packages that we need rather than just /var/run/current-system/sw. This ensures consistency when upgrading a system (e.g. you don't end up with a mix of KDE versions at runtime). This partially reverts r14148 (in particular the update-mime-database hack in the systemPath post-build). svn path=/nixos/trunk/; revision=14887
This commit is contained in:
parent
3b494865b1
commit
d5e97ab056
@ -15,9 +15,9 @@ 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
|
export KDEDIRS=@kdeDirs@
|
||||||
export XDG_CONFIG_DIRS=/var/run/current-system/sw/etc/xdg
|
export XDG_CONFIG_DIRS=@xdgConfigDirs@
|
||||||
export XDG_DATA_DIRS=/var/run/current-system/sw/share
|
export XDG_DATA_DIRS=@xdgDataDirs@
|
||||||
|
|
||||||
|
|
||||||
# Set up secure multi-user builds: non-root users build through the
|
# Set up secure multi-user builds: non-root users build through the
|
||||||
@ -44,11 +44,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.
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{ config, pkgs, upstartJobs, systemPath, wrapperDir
|
{ config, pkgs, upstartJobs, systemPath, wrapperDir
|
||||||
, defaultShell, extraEtc, nixEnvVars, modulesTree, nssModulesPath, binsh
|
, defaultShell, extraEtc, nixEnvVars, modulesTree, nssModulesPath, binsh
|
||||||
|
, kdePackages
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -19,7 +20,7 @@ let
|
|||||||
|
|
||||||
pamConsolePerms = ./security/console.perms;
|
pamConsolePerms = ./security/console.perms;
|
||||||
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
|
|
||||||
@ -108,6 +109,11 @@ import ../helpers/make-etc.nix {
|
|||||||
timeZone = config.time.timeZone;
|
timeZone = config.time.timeZone;
|
||||||
defaultLocale = config.i18n.defaultLocale;
|
defaultLocale = config.i18n.defaultLocale;
|
||||||
inherit nixEnvVars;
|
inherit nixEnvVars;
|
||||||
|
# !!! in the modular NixOS these should be declared by the KDE
|
||||||
|
# component.
|
||||||
|
kdeDirs = pkgs.lib.concatStringsSep ":" kdePackages;
|
||||||
|
xdgConfigDirs = pkgs.lib.makeSearchPath "etc/xdg" kdePackages;
|
||||||
|
xdgDataDirs = pkgs.lib.makeSearchPath "share" kdePackages;
|
||||||
};
|
};
|
||||||
target = "bashrc";
|
target = "bashrc";
|
||||||
}
|
}
|
||||||
|
@ -117,14 +117,15 @@ rec {
|
|||||||
# The services (Upstart) configuration for the system.
|
# The services (Upstart) configuration for the system.
|
||||||
upstartJobs = import ../upstart-jobs/default.nix {
|
upstartJobs = import ../upstart-jobs/default.nix {
|
||||||
inherit config pkgs nix modprobe nssModulesPath nixEnvVars
|
inherit config pkgs nix modprobe nssModulesPath nixEnvVars
|
||||||
optionDeclarations kernelPackages mount;
|
optionDeclarations kernelPackages mount kdePackages;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
# The static parts of /etc.
|
# The static parts of /etc.
|
||||||
etc = import ../etc/default.nix {
|
etc = import ../etc/default.nix {
|
||||||
inherit config pkgs upstartJobs systemPath wrapperDir
|
inherit config pkgs upstartJobs systemPath wrapperDir
|
||||||
defaultShell nixEnvVars modulesTree nssModulesPath binsh;
|
defaultShell nixEnvVars modulesTree nssModulesPath binsh
|
||||||
|
kdePackages;
|
||||||
extraEtc =
|
extraEtc =
|
||||||
(pkgs.lib.concatLists (map (job: job.extraEtc) upstartJobs.jobs))
|
(pkgs.lib.concatLists (map (job: job.extraEtc) upstartJobs.jobs))
|
||||||
++ config.environment.etc;
|
++ config.environment.etc;
|
||||||
@ -262,18 +263,26 @@ rec {
|
|||||||
inherit (config.environment) pathsToLink;
|
inherit (config.environment) pathsToLink;
|
||||||
|
|
||||||
ignoreCollisions = true;
|
ignoreCollisions = true;
|
||||||
|
|
||||||
postBuild =
|
|
||||||
if config.services.xserver.sessionType == "kde4" 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 "";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
# The list of packages that need to appear in KDEDIRS,
|
||||||
|
# XDG_CONFIG_DIRS and XDG_DATA_DIRS.
|
||||||
|
# !!! This should be defined somewhere else.
|
||||||
|
kdePackages =
|
||||||
|
pkgs.lib.optionals (config.services.xserver.sessionType == "kde4")
|
||||||
|
[ pkgs.kde42.kdelibs
|
||||||
|
pkgs.kde42.kdebase
|
||||||
|
pkgs.kde42.kdebase_runtime
|
||||||
|
pkgs.kde42.kdebase_workspace
|
||||||
|
pkgs.shared_mime_info
|
||||||
|
]
|
||||||
|
++ pkgs.lib.optionals (config.services.xserver.sessionType == "kde")
|
||||||
|
[ pkgs.kdebase
|
||||||
|
pkgs.kdelibs
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
usersGroups = import ./users-groups.nix { inherit pkgs config upstartJobs defaultShell; };
|
usersGroups = import ./users-groups.nix { inherit pkgs config upstartJobs defaultShell; };
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
{config, pkgs, nix, modprobe, nssModulesPath, nixEnvVars, optionDeclarations, kernelPackages, mount}:
|
{ config, pkgs, nix, modprobe, nssModulesPath, nixEnvVars, optionDeclarations
|
||||||
|
, kernelPackages, mount, kdePackages
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
|
||||||
@ -230,7 +232,7 @@ let
|
|||||||
# X server.
|
# X server.
|
||||||
++ optional config.services.xserver.enable
|
++ optional config.services.xserver.enable
|
||||||
(import ../upstart-jobs/xserver.nix {
|
(import ../upstart-jobs/xserver.nix {
|
||||||
inherit config pkgs kernelPackages;
|
inherit config pkgs kernelPackages kdePackages;
|
||||||
fontDirectories = import ../system/fonts.nix {inherit pkgs config;};
|
fontDirectories = import ../system/fonts.nix {inherit pkgs config;};
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, kernelPackages
|
{ config, pkgs, kernelPackages, kdePackages
|
||||||
|
|
||||||
, # List of font directories.
|
, # List of font directories.
|
||||||
fontDirectories
|
fontDirectories
|
||||||
@ -7,6 +7,7 @@
|
|||||||
let
|
let
|
||||||
|
|
||||||
inherit (pkgs.lib) optional isInList getAttr;
|
inherit (pkgs.lib) optional isInList getAttr;
|
||||||
|
|
||||||
# Abbreviations.
|
# Abbreviations.
|
||||||
cfg = config.services.xserver;
|
cfg = config.services.xserver;
|
||||||
xorg = cfg.package;
|
xorg = cfg.package;
|
||||||
@ -15,14 +16,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]; };
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -289,9 +290,6 @@ let
|
|||||||
${if sessionType == "kde" then ''
|
${if sessionType == "kde" then ''
|
||||||
|
|
||||||
# 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
|
||||||
|
|
||||||
'' else if sessionType == "kde4" then ''
|
'' else if sessionType == "kde4" then ''
|
||||||
@ -384,24 +382,17 @@ rec {
|
|||||||
gnome.gconfeditor
|
gnome.gconfeditor
|
||||||
]
|
]
|
||||||
++ optional (sessionType == "kde") [
|
++ optional (sessionType == "kde") [
|
||||||
pkgs.kdelibs
|
|
||||||
pkgs.kdebase
|
|
||||||
xorg.xset # used by startkde, non-essential
|
xorg.xset # used by startkde, non-essential
|
||||||
]
|
]
|
||||||
++ optional (sessionType == "kde4") [
|
++ optional (sessionType == "kde4") [
|
||||||
xorg.xmessage # so that startkde can show error messages
|
xorg.xmessage # so that startkde can show error messages
|
||||||
pkgs.qt4 # needed for qdbus
|
pkgs.qt4 # needed for qdbus
|
||||||
pkgs.kde42.kdelibs
|
|
||||||
pkgs.kde42.kdebase
|
|
||||||
pkgs.kde42.kdebase_runtime
|
|
||||||
pkgs.kde42.kdebase_workspace
|
|
||||||
pkgs.kde42.kdegames
|
|
||||||
pkgs.shared_mime_info
|
|
||||||
xorg.xset # used by startkde, non-essential
|
xorg.xset # used by startkde, non-essential
|
||||||
]
|
]
|
||||||
++ optional (videoDriver == "nvidia") [
|
++ optional (videoDriver == "nvidia") [
|
||||||
kernelPackages.nvidia_x11
|
kernelPackages.nvidia_x11
|
||||||
];
|
]
|
||||||
|
++ kdePackages;
|
||||||
|
|
||||||
|
|
||||||
extraEtc =
|
extraEtc =
|
||||||
|
Loading…
Reference in New Issue
Block a user