nixpkgs/pkgs/os-specific/linux/kernel/patches.nix
Shea Levy dfcd4dd559 Add a kernel patch for the efi boot stub to read a config file when booted without arguments, and base removable media booting off of that patch
The patch is currently being discussed on LKML and hopefully will be included
in mainline in some form in the future. Note that booting from the livecd has
to do a lot of work before anything is output to the console, so if the drive
is still busy don't assume the boot has hanged

svn path=/nixpkgs/trunk/; revision=33235
2012-03-18 17:14:52 +00:00

363 lines
11 KiB
Nix

{ stdenv, fetchurl, fetchgit }:
let
fbcondecorConfig =
''
FB_CON_DECOR y
# fbcondecor is picky about some other settings.
FB y
FB_TILEBLITTING n
FB_MATROX n
FB_S3 n
FB_VT8623 n
FB_ARK n
FB_CFB_FILLRECT y
FB_CFB_COPYAREA y
FB_CFB_IMAGEBLIT y
FB_VESA y
FRAMEBUFFER_CONSOLE y
'';
makeTuxonicePatch = { version, kernelVersion, sha256,
url ? "http://tuxonice.net/files/tuxonice-${version}-for-${kernelVersion}.patch.bz2" }:
{ name = "tuxonice-${kernelVersion}";
patch = stdenv.mkDerivation {
name = "tuxonice-${version}-for-${kernelVersion}.patch";
src = fetchurl {
inherit url sha256;
};
phases = [ "installPhase" ];
installPhase = ''
source $stdenv/setup
bunzip2 -c $src > $out
'';
};
};
makeAufs3StandalonePatch = {version, rev, sha256}:
stdenv.mkDerivation {
name = "aufs3-standalone-${version}.patch";
src = fetchgit {
url = git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git;
inherit sha256 rev;
};
phases = [ "unpackPhase" "installPhase" ];
# Instructions from http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs3-standalone.git;a=blob;f=Documentation/filesystems/aufs/README;h=b8cf077635b323d1b454266366f05f476bbd09cb;hb=1067b9d8d64d23c70d905c9cd3c90a669e39c4d4
installPhase = ''
cat aufs3-base.patch aufs3-proc_map.patch aufs3-standalone.patch > $out
'';
};
in
rec {
sec_perm_2_6_24 =
{ name = "sec_perm-2.6.24";
patch = ./sec_perm-2.6.24.patch;
features.secPermPatch = true;
};
fbcondecor_2_6_25 =
{ name = "fbcondecor-0.9.4-2.6.25-rc6";
patch = fetchurl {
url = http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.25-rc6.patch;
sha256 = "1wm94n7f0qyb8xvafip15r158z5pzw7zb7q8hrgddb092c6ibmq8";
};
extraConfig = fbcondecorConfig;
features.fbConDecor = true;
};
fbcondecor_2_6_27 =
{ name = "fbcondecor-0.9.4-2.6.27";
patch = fetchurl {
url = http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.4-2.6.27.patch;
sha256 = "170l9l5fvbgjrr4klqcwbgjg4kwvrrhjpmgbfpqj0scq0s4q4vk6";
};
extraConfig = fbcondecorConfig;
features.fbConDecor = true;
};
fbcondecor_2_6_31 =
{ name = "fbcondecor-0.9.6-2.6.31.2";
patch = fetchurl {
url = http://dev.gentoo.org/~spock/projects/fbcondecor/archive/fbcondecor-0.9.6-2.6.31.2.patch;
sha256 = "1avk0yn0y2qbpsxf31r6d14y4a1mand01r4k4i71yfxvpqcgxka9";
};
extraConfig = fbcondecorConfig;
features.fbConDecor = true;
};
fbcondecor_2_6_35 =
rec {
name = "fbcondecor-0.9.6-2.6.35-rc4";
patch = fetchurl {
url = "http://dev.gentoo.org/~spock/projects/fbcondecor/archive/${name}.patch";
sha256 = "0dlks1arr3b3hlmw9k1a1swji2x655why61sa0aahm62faibsg1r";
};
extraConfig = fbcondecorConfig;
features.fbConDecor = true;
};
fbcondecor_2_6_38 =
rec {
name = "fbcondecor-0.9.6-2.6.38";
patch = fetchurl {
url = "http://dev.gentoo.org/~spock/projects/fbcondecor/archive/${name}.patch";
sha256 = "1l8xqf5z227m5ay6azqba1qw10y26a4cwfhzzapzmmwq1bpr8mlw";
};
extraConfig = fbcondecorConfig;
features.fbConDecor = true;
};
gcov_2_6_28 =
{ name = "gcov";
patch = fetchurl {
url = http://buildfarm.st.ewi.tudelft.nl/~eelco/dist/linux-2.6.28-gcov.patch;
sha256 = "0ck9misa3pgh3vzyb7714ibf7ix7piyg5dvfa9r42v15scjqiyny";
};
extraConfig =
''
GCOV_PROFILE y
GCOV_ALL y
GCOV_PROC m
GCOV_HAMMER n
'';
};
tracehook_2_6_32 =
{ # From <http://userweb.kernel.org/~frob/utrace/>.
name = "tracehook";
patch = fetchurl {
url = http://userweb.kernel.org/~frob/utrace/2.6.32/tracehook.patch;
sha256 = "1y009p8dyqknbjm8ryb495jqmvl372gfhswdn167xh2g1f24xqv8";
};
};
utrace_2_6_32 =
{ # From <http://userweb.kernel.org/~frob/utrace/>, depends on the
# `tracehook' patch above.
# See also <http://sourceware.org/systemtap/wiki/utrace>.
name = "utrace";
patch = fetchurl {
url = http://userweb.kernel.org/~frob/utrace/2.6.32/utrace.patch;
sha256 = "0argf19k9f0asiv4l4cnsxm5hw2xx8d794npaln88vwz87sj5nnq";
};
extraConfig =
'' UTRACE y
'';
};
aufs2_2_6_32 =
{ # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2-32;hb=aufs2-32
# Note that this merely the patch needed to build AUFS2 as a
# standalone package.
name = "aufs2";
patch = ./aufs2.patch;
features.aufsBase = true;
features.aufs2 = true;
};
aufs2_2_6_34 =
{ # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2-34;hb=aufs2-34
# Note that this merely the patch needed to build AUFS2 as a
# standalone package.
name = "aufs2";
patch = ./aufs2-34.patch;
features.aufsBase = true;
features.aufs2 = true;
};
aufs2_2_6_35 =
{ # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2-35;hb=aufs2-35
# Note that this merely the patch needed to build AUFS2 as a
# standalone package.
name = "aufs2";
patch = ./aufs2-35.patch;
features.aufsBase = true;
features.aufs2 = true;
};
aufs2_2_6_36 =
{ # From http://git.c3sl.ufpr.br/gitweb?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-36;hb=aufs2.1-36
# Note that this merely the patch needed to build AUFS2 as a
# standalone package.
name = "aufs2";
patch = ./aufs2.1-36.patch;
features.aufsBase = true;
features.aufs2_1 = true;
};
aufs2_1_2_6_38 =
{ # From http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-38;hb=refs/heads/aufs2.1-38
# Note that this merely the patch needed to build AUFS2.1 as a
# standalone package.
name = "aufs2.1";
patch = ./aufs2.1-38.patch;
features.aufsBase = true;
features.aufs2_1 = true;
};
aufs2_1_2_6_39 =
{ # From http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs2-standalone.git;a=tree;h=refs/heads/aufs2.1-39;hb=refs/heads/aufs2.1-39
# Note that this merely the patch needed to build AUFS2.1 as a
# standalone package.
name = "aufs2.1";
patch = ./aufs2.1-39.patch;
features.aufsBase = true;
features.aufs2_1 = true;
};
aufs2_1_3_0 =
{ # From http://aufs.git.sourceforge.net/git/gitweb.cgi?p=aufs/aufs2-standalone.git;a=tree;h=ac52a37b0debba539bdfabba101f82b99136b380;hb=ac52a37b0debba539bdfabba101f82b99136b380
# Note that this merely the patch needed to build AUFS2.1 as a
# standalone package.
name = "aufs2.1";
patch = ./aufs2.1-3.0.patch;
features.aufsBase = true;
features.aufs2_1 = true;
};
aufs3_0 = rec {
name = "aufs3.0";
version = "3.0";
utilRev = "cabe3601001ab3838215116c32715c9de9412e62";
utilHash = "7fc6cfe1e69a0b2438eaee056e15d42a2d6be396a637fcfb1b89858fcecc832f";
patch = makeAufs3StandalonePatch {
inherit version;
rev = "517b27621cdfb793959acac849dae9888338526a";
sha256 = "8085200ac78d0c1e082d4c721a09f4a4c1d96ae86e307075836d09c3e7d502df";
};
features.aufsBase = true;
features.aufs3 = true;
};
aufs3_1 = rec {
name = "aufs3.1";
version = "3.1";
utilRev = "cabe3601001ab3838215116c32715c9de9412e62";
utilHash = "7fc6cfe1e69a0b2438eaee056e15d42a2d6be396a637fcfb1b89858fcecc832f";
patch = makeAufs3StandalonePatch {
inherit version;
rev = "7386b57432ec5e73632a5375804239b02b6c00f0";
sha256 = "af4e9ad890e1b72d14170c97d8ead53291f09e275db600932724e6181530be2d";
};
features.aufsBase = true;
features.aufs3 = true;
};
aufs3_2 = rec {
name = "aufs3.2";
version = "3.2";
utilRev = "a953b0218667e06b722f4c41df29edacd8dc8e1f";
utilHash = "28ac4c1a07b2c30fb61a6facc9cedcf67b14f303baedf1b121aeb6293ea49eb4";
patch = makeAufs3StandalonePatch {
inherit version;
rev = "9c4bbeb58f0ecc235ea820ae320efa2c0006e033";
sha256 = "5363a7f5fbadaef9457e743a5781f2525332c4bbb91693ca2596ab2d8f7860ea";
};
features.aufsBase = true;
features.aufs3 = true;
};
aufs3_3 = rec {
name = "aufs3.x-rcN-20120312";
version = "3.3";
utilRev = "8f8b22d8b29c8f7ccc10b212f2deec8848c020a1";
utilHash = "0a54efeeb17d5d7542ebee3f10bb4b82364a600858893e34c0e4221e4307ccd0";
patch = makeAufs3StandalonePatch {
inherit version;
rev = "187f3c592873b1d30efd2c9b5073aa7fe728620b";
sha256 = "d22b75165cbc8cb0417c114a9f3e3306bb9288b3557f57a1d20481e8cd339b8f";
};
features.aufsBase = true;
features.aufs3 = true;
};
# Increase the timeout on CIFS requests from 15 to 120 seconds to
# make CIFS more resilient to high load on the CIFS server.
cifs_timeout_2_6_15 =
{ name = "cifs-timeout";
patch = ./cifs-timeout-2.6.15.patch;
features.cifsTimeout = true;
};
cifs_timeout_2_6_25 =
{ name = "cifs-timeout";
patch = ./cifs-timeout-2.6.25.patch;
features.cifsTimeout = true;
};
cifs_timeout_2_6_29 =
{ name = "cifs-timeout";
patch = ./cifs-timeout-2.6.29.patch;
features.cifsTimeout = true;
};
cifs_timeout_2_6_35 =
{ name = "cifs-timeout";
patch = ./cifs-timeout-2.6.35.patch;
features.cifsTimeout = true;
};
cifs_timeout_2_6_38 =
{ name = "cifs-timeout";
patch = ./cifs-timeout-2.6.38.patch;
features.cifsTimeout = true;
};
cifs_timeout = cifs_timeout_2_6_29;
no_xsave =
{ name = "no-xsave";
patch = fetchurl {
url = "http://kernel.ubuntu.com/git?p=rtg/ubuntu-maverick.git;a=blobdiff_plain;f=arch/x86/xen/enlighten.c;h=f7ff4c7d22954ab5eda464320241300bd5a32ee5;hp=1ea06f842a921557e958110e22941d53a2822f3c;hb=1a30f99;hpb=8f2ff69dce18ed856a8d1b93176f768b47eeed86";
name = "no-xsave.patch";
sha256 = "18732s3vmav5rpg6zqpiw2i0ll83pcc4gw266h6545pmbh9p7hky";
};
features.noXsave = true;
};
dell_rfkill =
{ name = "dell-rfkill";
patch = ./dell-rfkill.patch;
};
sheevaplug_modules_2_6_35 =
{ name = "sheevaplug_modules-2.6.35";
patch = ./sheevaplug_modules-2.6.35.patch;
};
efi_bootstub_config_3_3 =
{ name = "efi-config-3.3";
patch = ./efi-bootstub-config-3.3.patch;
};
mips_restart_2_6_36 =
{ name = "mips_restart_2_6_36";
patch = ./mips_restart.patch;
};
guruplug_defconfig =
{ # Default configuration for the GuruPlug. From
# <http://www.openplug.org/plugwiki/images/c/c6/Guruplug-patchset-2.6.33.2.tar.bz2>.
name = "guruplug-defconfig";
patch = ./guruplug-defconfig.patch;
};
guruplug_arch_number =
{ # Hack to match the `arch_number' of the U-Boot that ships with the
# GuruPlug. This is only needed when using this specific U-Boot
# binary. See
# <http://www.plugcomputer.org/plugwiki/index.php/Compiling_Linux_Kernel_for_the_Plug_Computer>.
name = "guruplug-arch-number";
patch = ./guruplug-mach-type.patch;
};
}