* Use a klibc-based udev. Hopefully this fixes the problems

encountered on x86-64 when udev is compiled against dietlibc.

svn path=/nixos/trunk/; revision=12555
This commit is contained in:
Eelco Dolstra 2008-08-08 19:07:07 +00:00
parent 2e9dc1ea47
commit a33d2f3adc
2 changed files with 17 additions and 4 deletions

View File

@ -13,6 +13,11 @@ rec {
bootStdenv = pkgs.useDietLibC pkgs.stdenv;
};
pkgsKlibc = import "${nixpkgsPath}/pkgs/top-level/all-packages.nix" {
system = pkgs.stdenv.system;
bootStdenv = pkgs.useKlibc pkgs.stdenv kernelPackages.klibc;
};
pkgsStatic = import "${nixpkgsPath}/pkgs/top-level/all-packages.nix" {
system = pkgs.stdenv.system;
bootStdenv = pkgs.makeStaticBinaries pkgs.stdenv;
@ -40,10 +45,10 @@ rec {
extraUtils = pkgs.runCommand "extra-utils"
{ buildInputs = [pkgs.nukeReferences];
inherit (pkgsStatic) utillinux;
inherit (pkgsDiet) udev;
e2fsprogs = pkgs.e2fsprogsDiet;
devicemapper = if config.boot.initrd.lvm then pkgs.devicemapperStatic else null;
lvm2 = if config.boot.initrd.lvm then pkgs.lvm2Static else null;
inherit (pkgsKlibc) udev;
e2fsprogs = pkgsDiet.e2fsprogs;
devicemapper = if config.boot.initrd.lvm then pkgsStatic.devicemapper else null;
lvm2 = if config.boot.initrd.lvm then pkgsStatic.lvm2 else null;
allowedReferences = []; # prevent accidents like glibc being included in the initrd
}
''
@ -92,6 +97,9 @@ rec {
rootLabel = if config.boot.autoDetectRootDevice then config.boot.rootLabel else "";
path = [
# `extraUtils' comes first because it overrides the `mount'
# command provided by klibc (which isn't capable of
# auto-detecting FS types).
extraUtils
kernelPackages.klibcShrunk
];

View File

@ -4,6 +4,7 @@
}:
rec {
configComponents = [
configuration
(import ./options.nix)
@ -118,6 +119,7 @@ rec {
extraEtc = pkgs.lib.concatLists (map (job: job.extraEtc) upstartJobs.jobs);
};
# Font aggregation
fontDir = import ./fontdir.nix {
inherit config pkgs;
@ -125,6 +127,7 @@ rec {
inherit (pkgs.xorg) mkfontdir mkfontscale fontalias;
};
# The wrapper setuid programs (since we can't have setuid programs
# in the Nix store).
wrapperDir = "/var/setuid-wrappers";
@ -227,6 +230,7 @@ rec {
# a reboot.
++ nssModules;
# We don't want to put all of `startPath' and `path' in $PATH, since
# then we get an embarrassingly long $PATH. So use the user
# environment builder to make a directory with symlinks to those
@ -358,4 +362,5 @@ rec {
configurationName = config.boot.configurationName;
}) config.environment.checkConfigurationOptions
optionDeclarations config;
}