1{ stdenv, lib, fetchFromGitHub, kernel }:
2
3assert stdenv.lib.versionAtLeast kernel.version "4.4";
4
5stdenv.mkDerivation {
6 name = "sch_cake-2017-07-16";
7
8 src = fetchFromGitHub {
9 owner = "dtaht";
10 repo = "sch_cake";
11 rev = "e641a56f27b6848736028f87eda65ac3df9f99f7";
12 sha256 = "08582jy01j32b3mj8hf6m8687qrcz64zv2m236j24inlkmd94q21";
13 };
14
15 hardeningDisable = [ "pic" ];
16
17 makeFlags = [
18 "KERNEL_VERSION=${kernel.version}"
19 "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
20 ];
21
22 installPhase = ''
23 install -v -m 644 -D sch_cake.ko \
24 $out/lib/modules/${kernel.modDirVersion}/kernel/net/sched/sch_cake.ko
25 '';
26
27 meta = with lib; {
28 description = "The cake qdisc scheduler";
29 homepage = https://www.bufferbloat.net/projects/codel/wiki/Cake/;
30 license = with licenses; [ bsd3 gpl2 ];
31 maintainers = with maintainers; [ fpletz ];
32 platforms = platforms.linux;
33 broken = !stdenv.lib.versionOlder kernel.version "4.13";
34 };
35}