There is nothing in this commit except for the changes made by nix-shell -p nixfmt-rfc-style --run "nixfmt ." If this has mucked up your open branches then sorry about that. You can probably nixfmt them to match before merging
86 lines
2.5 KiB
Nix
86 lines
2.5 KiB
Nix
{
|
|
stdenv,
|
|
git,
|
|
python2,
|
|
which,
|
|
fetchgit,
|
|
fetchFromGitHub,
|
|
coccinelle,
|
|
}:
|
|
let
|
|
donorTree = fetchFromGitHub {
|
|
owner = "torvalds";
|
|
repo = "linux";
|
|
rev = "e2c1a934fd8e4288e7a32f4088ceaccf469eb74c"; # 5.15.94
|
|
hash = "sha256-Jg3EgL86CseuzYMAlUG3CDWPCo8glMSIZs10l7EuhWI=";
|
|
};
|
|
backports = stdenv.mkDerivation {
|
|
name = "linux-backports";
|
|
version = "dfe0f60ca8a";
|
|
nativeBuildInputs = [ python2 ];
|
|
|
|
src = fetchgit {
|
|
url = "https://git.kernel.org/pub/scm/linux/kernel/git/backports/backports.git";
|
|
name = "backports";
|
|
rev = "dfe0f60ca8a1065e63b4db703b3bd2708ee23a0e";
|
|
hash = "sha256-V+unO0rCom+TZS7WuaXFrb3C1EBImmflCPuOoP+LvBY=";
|
|
};
|
|
buildPhase = ''
|
|
patchShebangs .
|
|
'';
|
|
installPhase = ''
|
|
mkdir -p $out
|
|
cp -a . $out
|
|
rm $out/patches/0073-netdevice-mtu-range.cocci
|
|
# fq.patch is obsoleted by kernel commit 48a54f6bc45 and no longer
|
|
# applies
|
|
# rm $out/patches/0091-fq-no-siphash_key_t/fq.patch
|
|
# don't know why this doesn't apply but it's only important for
|
|
# compiling against linux < 4.1
|
|
# rm $out/patches/0058-ptp_getsettime64/ptp_getsettime64.cocci
|
|
'';
|
|
patches = [
|
|
# (fetchpatch {
|
|
# url = "https://github.com/telent/nixwrt/blob/28ff2559e811c740b0a2922f52291b335804857b/nixwrt/kernel/gentree-writable-outputs.patch";
|
|
# hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
|
|
# })#
|
|
./gentree-writable-outputs.patch
|
|
# ./update-usb-sg-backport-patch.patch
|
|
# ./backport_kfree_sensitive.patch
|
|
];
|
|
};
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
inherit donorTree;
|
|
KERNEL_VERSION = builtins.substring 0 11 donorTree.rev;
|
|
BACKPORTS_VERSION = backports.version;
|
|
name = "backported-kernel-${KERNEL_VERSION}-${BACKPORTS_VERSION}";
|
|
|
|
# gentree uses "which" at runtime to test for the presence of git,
|
|
# and I don't have the patience to patch it out. There is no other
|
|
# reason we need either of them as build inputs.
|
|
depsBuildBuild = [ coccinelle ];
|
|
nativeBuildInputs = [
|
|
which
|
|
git
|
|
python2
|
|
];
|
|
|
|
phases = [
|
|
"backportFromFuture"
|
|
"installPhase"
|
|
];
|
|
|
|
backportFromFuture = ''
|
|
echo $KERNEL_VERSION $BACKPORTS_VERSION
|
|
WORK=`pwd`/build
|
|
mkdir -p $WORK
|
|
cat ${backports}/copy-list > copy-list
|
|
echo 'include/linux/key.h' >> copy-list
|
|
python ${backports}/gentree.py --verbose --clean --copy-list copy-list ${donorTree} $WORK
|
|
'';
|
|
installPhase = ''
|
|
cp -a ./build/ $out
|
|
'';
|
|
}
|