diff options
Diffstat (limited to 'pkgs/os-specific/linux/kernel')
19 files changed, 249 insertions, 265 deletions
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 2e558267736..038a3105a18 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -1012,6 +1012,7 @@ let X86_AMD_PLATFORM_DEVICE = yes; X86_PLATFORM_DRIVERS_DELL = whenAtLeast "5.12" yes; + X86_PLATFORM_DRIVERS_HP = whenAtLeast "6.1" yes; LIRC = mkMerge [ (whenOlder "4.16" module) (whenAtLeast "4.17" yes) ]; diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json index 594b303a25a..c7893abad21 100644 --- a/pkgs/os-specific/linux/kernel/hardened/patches.json +++ b/pkgs/os-specific/linux/kernel/hardened/patches.json @@ -22,22 +22,22 @@ "5.10": { "patch": { "extra": "-hardened1", - "name": "linux-hardened-5.10.194-hardened1.patch", - "sha256": "1ba8ridhjz9y8ap1wgp7z41jmwzx8j0bxkyp1zjfls1z7mqq4vpf", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.194-hardened1/linux-hardened-5.10.194-hardened1.patch" + "name": "linux-hardened-5.10.195-hardened1.patch", + "sha256": "15liin3i9wh7hwr97pyc8rl79ri7frsprssl50si9z810zvc9chb", + "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.195-hardened1/linux-hardened-5.10.195-hardened1.patch" }, - "sha256": "15fr7krhpmqz0xqjg78m2xvfllbni3xh8xyhxh9ni31ppd3mw394", - "version": "5.10.194" + "sha256": "0n4vg2i9sq89wnz85arlyvwysh9s83cgzs5bk2wh98bivi5fwfs1", + "version": "5.10.195" }, "5.15": { "patch": { "extra": "-hardened1", - "name": "linux-hardened-5.15.131-hardened1.patch", - "sha256": "06hy3v9r2rqnqxsby2204grzjcll64561m26wlnkyiz20gpl16n4", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.131-hardened1/linux-hardened-5.15.131-hardened1.patch" + "name": "linux-hardened-5.15.132-hardened1.patch", + "sha256": "06wkcbhkdm8vnk1cqwngy9gdknqm4pb4za9lbh2q5j1f2nkcn7pq", + "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.132-hardened1/linux-hardened-5.15.132-hardened1.patch" }, - "sha256": "0sacnbw48lblnqaj56nybh588sq4k84gwf0r5zinzyrryj8k6z4r", - "version": "5.15.131" + "sha256": "1b0qjsaqjw2rk86shmmrj2aasblkn27acjmc761vnjg7sv2baxs1", + "version": "5.15.132" }, "5.4": { "patch": { @@ -52,12 +52,12 @@ "6.1": { "patch": { "extra": "-hardened1", - "name": "linux-hardened-6.1.53-hardened1.patch", - "sha256": "1v8k4rb3f24cpzvng7nyxllypmi8dc4cv0yj2jfvr64pxr7vzlkw", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.53-hardened1/linux-hardened-6.1.53-hardened1.patch" + "name": "linux-hardened-6.1.54-hardened1.patch", + "sha256": "0c8dmgciwc02pzhnx2mj5xlhds7mmicm8r6668di2zfw772rjgr4", + "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.54-hardened1/linux-hardened-6.1.54-hardened1.patch" }, - "sha256": "0zpdg3fcc12iyjhfs5w7cw75700z4i8m9jcg38mlzlhh92hf0msz", - "version": "6.1.53" + "sha256": "09sfrq2l8f777mx2n9mhb6bgz1064bl04921byqnmk87si31w653", + "version": "6.1.54" }, "6.4": { "patch": { @@ -72,11 +72,11 @@ "6.5": { "patch": { "extra": "-hardened1", - "name": "linux-hardened-6.5.3-hardened1.patch", - "sha256": "0p92x3f129hmk5r5xmxs5ihvg5cdl2bmqlhqza3wy4314f1kngl7", - "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.5.3-hardened1/linux-hardened-6.5.3-hardened1.patch" + "name": "linux-hardened-6.5.4-hardened1.patch", + "sha256": "0r411dgp17am2bnfpk8lbzmymp6w9d5raz7hni0mw0kpcq6z996n", + "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.5.4-hardened1/linux-hardened-6.5.4-hardened1.patch" }, - "sha256": "0kzbcc3iar9i0hb99xf9k3b16lxb4f8qzmia0gwxrn3vn7vi7b2c", - "version": "6.5.3" + "sha256": "0s8nzd8yaq06bq8byk7aakbk95gh0rhlif26h1biw94v48anrxxx", + "version": "6.5.4" } } diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json new file mode 100644 index 00000000000..ea31ad62891 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -0,0 +1,38 @@ +{ + "testing": { + "version": "6.6-rc3", + "hash": "sha256:1i0fii5lq8ij1y1pfypw08j4f7kv1nvj264x77mfcj1cjm1jx1zx" + }, + "6.5": { + "version": "6.5.5", + "hash": "sha256:15gg8sb6cfgk1afwj7fl7mj4nkj14w43vzwvw0qsg3nzyxwh7wcc" + }, + "6.4": { + "version": "6.4.16", + "hash": "sha256:0zgj1z97jyx7wf12zrnlcp0mj4cl43ais9qsy6dh1jwylf2fq9ln" + }, + "6.1": { + "version": "6.1.55", + "hash": "sha256:1h0mzx52q9pvdv7rhnvb8g68i7bnlc9rf8gy9qn4alsxq4g28zm8" + }, + "5.15": { + "version": "5.15.133", + "hash": "sha256:1paxzzcagc7s8i491zjny43rxhfamafyly438kj8hyw96iwmx17g" + }, + "5.10": { + "version": "5.10.197", + "hash": "sha256:1awkm7lln5gf6kld9z5h4mg39bd778jsdswwlwb7iv7bn03lafhq" + }, + "5.4": { + "version": "5.4.257", + "hash": "sha256:1w1x91slzg9ggakqhyxnmvz77v2cwfk8bz0knrpgz9qya9q5jxrf" + }, + "4.19": { + "version": "4.19.295", + "hash": "sha256:1b1qslpk1kka7nxam48s22xsqd9qmp716hmibgfsjxl5y3jc4cmp" + }, + "4.14": { + "version": "4.14.326", + "hash": "sha256:0y0lvzidw775mgx211wnc1c6223iqv8amz5y9jkz9h7l3l7y8p2m" + } +} diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix deleted file mode 100644 index dc0ead44be4..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-4.14.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "4.14.325"; - - # modDirVersion needs to be x.y.z, will automatically add .0 if needed - modDirVersion = versions.pad 3 version; - - # branchVersion needs to be x.y - extraMeta.branch = versions.majorMinor version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "117p1mdha57f6d3kdwac9jrbmib7g77q4xhir8ghl6fmrs1f2sav"; - }; -} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix deleted file mode 100644 index 6048caf8fa8..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-4.19.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "4.19.294"; - - # modDirVersion needs to be x.y.z, will automatically add .0 if needed - modDirVersion = versions.pad 3 version; - - # branchVersion needs to be x.y - extraMeta.branch = versions.majorMinor version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz"; - sha256 = "03x0xsb8a369zdr81hg6xdl5n5v48k6iwnhj6r29725777lvvbfc"; - }; -} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix deleted file mode 100644 index 213bf7e670f..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-5.10.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "5.10.195"; - - # modDirVersion needs to be x.y.z, will automatically add .0 if needed - modDirVersion = versions.pad 3 version; - - # branchVersion needs to be x.y - extraMeta.branch = versions.majorMinor version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "0n4vg2i9sq89wnz85arlyvwysh9s83cgzs5bk2wh98bivi5fwfs1"; - }; -} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-5.15.nix b/pkgs/os-specific/linux/kernel/linux-5.15.nix deleted file mode 100644 index d86b0cf0ce6..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-5.15.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "5.15.132"; - - # modDirVersion needs to be x.y.z, will automatically add .0 if needed - modDirVersion = versions.pad 3 version; - - # branchVersion needs to be x.y - extraMeta.branch = versions.majorMinor version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "1b0qjsaqjw2rk86shmmrj2aasblkn27acjmc761vnjg7sv2baxs1"; - }; -} // (args.argsOverride or { })) diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix deleted file mode 100644 index 0013636076a..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-5.4.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "5.4.256"; - - # modDirVersion needs to be x.y.z, will automatically add .0 if needed - modDirVersion = versions.pad 3 version; - - # branchVersion needs to be x.y - extraMeta.branch = versions.majorMinor version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz"; - sha256 = "0fim5q9xakwnjfg48bpsic9r2r8dvrjlalqqkm9vh1rml9mhi967"; - }; -} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/linux-6.1.nix b/pkgs/os-specific/linux/kernel/linux-6.1.nix deleted file mode 100644 index df99c986851..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-6.1.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "6.1.54"; - - # modDirVersion needs to be x.y.z, will automatically add .0 if needed - modDirVersion = versions.pad 3 version; - - # branchVersion needs to be x.y - extraMeta.branch = versions.majorMinor version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz"; - sha256 = "09sfrq2l8f777mx2n9mhb6bgz1064bl04921byqnmk87si31w653"; - }; -} // (args.argsOverride or { })) diff --git a/pkgs/os-specific/linux/kernel/linux-6.4.nix b/pkgs/os-specific/linux/kernel/linux-6.4.nix deleted file mode 100644 index d41cd21fbef..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-6.4.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, fetchurl, buildLinux, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "6.4.16"; - - # modDirVersion needs to be x.y.z, will automatically add .0 if needed - modDirVersion = versions.pad 3 version; - - # branchVersion needs to be x.y - extraMeta.branch = versions.majorMinor version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz"; - sha256 = "0zgj1z97jyx7wf12zrnlcp0mj4cl43ais9qsy6dh1jwylf2fq9ln"; - }; -} // (args.argsOverride or { })) diff --git a/pkgs/os-specific/linux/kernel/linux-6.5.nix b/pkgs/os-specific/linux/kernel/linux-6.5.nix deleted file mode 100644 index 28557090de6..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-6.5.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ lib, fetchurl, buildLinux, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "6.5.4"; - - # modDirVersion needs to be x.y.z, will automatically add .0 if needed - modDirVersion = versions.pad 3 version; - - # branchVersion needs to be x.y - extraMeta.branch = versions.majorMinor version; - - src = fetchurl { - url = "mirror://kernel/linux/kernel/v6.x/linux-${version}.tar.xz"; - sha256 = "0s8nzd8yaq06bq8byk7aakbk95gh0rhlif26h1biw94v48anrxxx"; - }; -} // (args.argsOverride or { })) diff --git a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix index 19b46d87308..eb2031b129d 100644 --- a/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix +++ b/pkgs/os-specific/linux/kernel/linux-rt-5.10.nix @@ -6,7 +6,7 @@ , ... } @ args: let - version = "5.10.186-rt91"; # updated by ./update-rt.sh + version = "5.10.180-rt89"; # updated by ./update-rt.sh branch = lib.versions.majorMinor version; kversion = builtins.elemAt (lib.splitString "-" version) 0; in buildLinux (args // { @@ -17,14 +17,14 @@ in buildLinux (args // { src = fetchurl { url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz"; - sha256 = "1qqv91r13akgik1q4jybf8czskxxizk6lpv4rsvjn9sx2dm2jq0y"; + sha256 = "0a8cicvcyl5w4vi7gxhgd59ny44gj9cbv4z5pnwn9jgny55rm0ys"; }; kernelPatches = let rt-patch = { name = "rt"; patch = fetchurl { url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "1h5p0p3clq0gmaszvddmfll17adv02wfp2bfrd5x3aigvigwfmjb"; + sha256 = "00m6psnjam26x70f8wpssvjp6v49dyllp356fpfbhjqmj7y142bm"; }; }; in [ rt-patch ] ++ kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix index d599c3bda31..f45926020b5 100644 --- a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix +++ b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix @@ -6,7 +6,7 @@ , ... } @ args: let - version = "6.1.46-rt14"; # updated by ./update-rt.sh + version = "6.1.54-rt15"; # updated by ./update-rt.sh branch = lib.versions.majorMinor version; kversion = builtins.elemAt (lib.splitString "-" version) 0; in buildLinux (args // { @@ -18,14 +18,14 @@ in buildLinux (args // { src = fetchurl { url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz"; - sha256 = "15m228bllks2p8gpsmvplx08yxzp7bij9fnmnafqszylrk7ppxpm"; + sha256 = "09sfrq2l8f777mx2n9mhb6bgz1064bl04921byqnmk87si31w653"; }; kernelPatches = let rt-patch = { name = "rt"; patch = fetchurl { url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz"; - sha256 = "0mrpsy175iz0b51hwgqbj15w83lm3m57il3gqwb489gln7mpzy17"; + sha256 = "0ihdid1ihg26kjini66j87vh4220gl8xm9dai7zignha2zh238kh"; }; }; in [ rt-patch ] ++ kernelPatches; diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix deleted file mode 100644 index 9a3b32a7f2d..00000000000 --- a/pkgs/os-specific/linux/kernel/linux-testing.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ lib, buildPackages, fetchzip, perl, buildLinux, nixosTests, ... } @ args: - -with lib; - -buildLinux (args // rec { - version = "6.6-rc1"; - extraMeta.branch = lib.versions.majorMinor version; - - # modDirVersion needs to be x.y.z, will always add .0 - modDirVersion = versions.pad 3 version; - - src = fetchzip { - url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; - hash = "sha256-DRai7HhWVtRB0GiRCvCv2JM2TFKRsZ60ohD6GW0b8As="; - }; - - # Should the testing kernels ever be built on Hydra? - extraMeta.hydraPlatforms = []; - -} // (args.argsOverride or {})) diff --git a/pkgs/os-specific/linux/kernel/mainline.nix b/pkgs/os-specific/linux/kernel/mainline.nix new file mode 100644 index 00000000000..4e1d5b8a9e8 --- /dev/null +++ b/pkgs/os-specific/linux/kernel/mainline.nix @@ -0,0 +1,27 @@ +{ branch, lib, fetchurl, fetchzip, buildLinux, ... } @ args: + +let + allKernels = builtins.fromJSON (builtins.readFile ./kernels-org.json); + thisKernel = allKernels.${branch}; + inherit (thisKernel) version; + + src = + # testing kernels are a special case because they don't have tarballs on the CDN + if branch == "testing" + then fetchzip { + url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz"; + inherit (thisKernel) hash; + } + else fetchurl { + url = "mirror://kernel/linux/kernel/v${lib.versions.major version}.x/linux-${version}.tar.xz"; + inherit (thisKernel) hash; + }; + + args' = (builtins.removeAttrs args ["branch"]) // { + inherit src version; + + modDirVersion = lib.versions.pad 3 version; + extraMeta.branch = branch; + } // (args.argsOverride or {}); +in +buildLinux args' diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix index f941ca9f007..ab3b4e56066 100644 --- a/pkgs/os-specific/linux/kernel/patches.nix +++ b/pkgs/os-specific/linux/kernel/patches.nix @@ -19,6 +19,16 @@ patch = ./bridge-stp-helper.patch; }; + # Reverts the buggy commit causing https://bugzilla.kernel.org/show_bug.cgi?id=217802 + dell_xps_regression = { + name = "dell_xps_regression"; + patch = fetchpatch { + name = "Revert-101bd907b424-misc-rtsx-judge-ASPM-Mode-to-set.patch"; + url = "https://raw.githubusercontent.com/openSUSE/kernel-source/1b02b1528a26f4e9b577e215c114d8c5e773ee10/patches.suse/Revert-101bd907b424-misc-rtsx-judge-ASPM-Mode-to-set.patch"; + sha256 = "sha256-RHJdQ4p0msTOVPR+/dYiKuwwEoG9IpIBqT4dc5cJjf8="; + }; + }; + request_key_helper = { name = "request-key-helper"; patch = ./request-key-helper.patch; diff --git a/pkgs/os-specific/linux/kernel/update-mainline.py b/pkgs/os-specific/linux/kernel/update-mainline.py new file mode 100755 index 00000000000..df8257fa0ef --- /dev/null +++ b/pkgs/os-specific/linux/kernel/update-mainline.py @@ -0,0 +1,130 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python3 -p "python3.withPackages (ps: [ ps.beautifulsoup4 ps.lxml ])" +import json +import os +import pathlib +import subprocess +import sys +import urllib.request +from dataclasses import dataclass +from enum import Enum + +from bs4 import BeautifulSoup, NavigableString, Tag + +HERE = pathlib.Path(__file__).parent +ROOT = HERE.parent.parent.parent.parent +VERSIONS_FILE = HERE / "kernels-org.json" + + +class KernelNature(Enum): + MAINLINE = 1 + STABLE = 2 + LONGTERM = 3 + + +@dataclass +class KernelRelease: + nature: KernelNature + version: str + branch: str + date: str + link: str + eol: bool = False + + +def parse_release(release: Tag) -> KernelRelease | None: + columns: list[Tag] = list(release.find_all("td")) + try: + nature = KernelNature[columns[0].get_text().rstrip(":").upper()] + except KeyError: + return None + + version = columns[1].get_text().rstrip(" [EOL]") + date = columns[2].get_text() + link = columns[3].find("a") + if link is not None and isinstance(link, Tag): + link = link.attrs.get("href") + assert link is not None, f"link for kernel {version} is non-existent" + eol = bool(release.find(class_="eolkernel")) + + return KernelRelease( + nature=nature, + branch=get_branch(version), + version=version, + date=date, + link=link, + eol=eol, + ) + + +def get_branch(version: str): + # This is a testing kernel. + if "rc" in version: + return "testing" + else: + major, minor, *_ = version.split(".") + return f"{major}.{minor}" + + +def get_hash(kernel: KernelRelease): + if kernel.branch == "testing": + args = ["--unpack"] + else: + args = [] + + hash = ( + subprocess.check_output(["nix-prefetch-url", kernel.link] + args) + .decode() + .strip() + ) + return f"sha256:{hash}" + + +def commit(message): + return subprocess.check_call(["git", "commit", "-m", message, VERSIONS_FILE]) + + +def main(): + kernel_org = urllib.request.urlopen("https://kernel.org/") + soup = BeautifulSoup(kernel_org.read().decode(), "lxml") + release_table = soup.find(id="releases") + if not release_table or isinstance(release_table, NavigableString): + print(release_table) + print("Failed to find the release table on https://kernel.org") + sys.exit(1) + + releases = release_table.find_all("tr") + parsed_releases = filter(None, [parse_release(release) for release in releases]) + all_kernels = json.load(VERSIONS_FILE.open()) + + for kernel in parsed_releases: + branch = get_branch(kernel.version) + nixpkgs_branch = branch.replace(".", "_") + + old_version = all_kernels.get(branch, {}).get("version") + if old_version == kernel.version: + print(f"linux_{nixpkgs_branch}: {kernel.version} is latest, skipping...") + continue + + if old_version is None: + message = f"linux_{nixpkgs_branch}: init at {kernel.version}" + else: + message = f"linux_{nixpkgs_branch}: {old_version} -> {kernel.version}" + + print(message) + + all_kernels[branch] = { + "version": kernel.version, + "hash": get_hash(kernel), + } + + with VERSIONS_FILE.open("w") as fd: + json.dump(all_kernels, fd, indent=4) + fd.write("\n") # makes editorconfig happy + + if os.environ.get("COMMIT") == "1": + commit(message) + + +if __name__ == "__main__": + main() diff --git a/pkgs/os-specific/linux/kernel/update.sh b/pkgs/os-specific/linux/kernel/update.sh index 4171b7492b7..37e1cc1a5cd 100755 --- a/pkgs/os-specific/linux/kernel/update.sh +++ b/pkgs/os-specific/linux/kernel/update.sh @@ -1,72 +1,14 @@ #!/usr/bin/env bash -set -e +cd "$(dirname "$(readlink -f "$0")")" || exit -# Get the latest versions from kernel.org -LINUXSED='s/.*linux-\([0-9]\+\(.[0-9]\+\)*\).*/\1/p' -KDATA="$(curl -s https://www.kernel.org | sed -n -e '/Download complete/p')" -VERSIONS=($(sed -n -e $LINUXSED <<< "$KDATA" | sort -Vr)) +echo "Update linux (mainline)" +COMMIT=1 ./update-mainline.py || echo "update-mainline failed with exit code $?" -# Remove mainline version if there is a stable update -# Note due to sorting these two will always exist at the bottom -if grep -q "^${VERSIONS[1]}" <<< "${VERSIONS[0]}"; then - VERSIONS=(${VERSIONS[@]:0:1} ${VERSIONS[@]:2}) -fi +echo "Update linux-rt" +COMMIT=1 ./update-rt.sh || echo "update-rt failed with exit code $?" -# Inspect each file and see if it has the latest version -NIXPKGS="$(git rev-parse --show-toplevel)" -ls $NIXPKGS/pkgs/os-specific/linux/kernel | while read FILE; do - KERNEL="$(sed -n -e $LINUXSED <<< "$FILE")" - [ -z "$KERNEL" ] && continue +echo "Update linux-libre" +COMMIT=1 ./update-libre.sh || echo "update-libre failed with exit code $?" - # Find the matching new kernel version - MATCHING="" - for V in "${VERSIONS[@]}"; do - if grep -q "^$KERNEL" <<< "$V"; then - MATCHING="$V" - break - fi - done - if [ -z "$MATCHING" ]; then - echo "Out-of-support $KERNEL" - continue - fi - - # Inspect the nix expression to check for changes - DATA="$(<$NIXPKGS/pkgs/os-specific/linux/kernel/$FILE)" - URL="$(sed -n -e 's/.*url = "\(.*\)";.*/\1/p' <<< "$DATA" | sed -e "s/\${version}/$MATCHING/g")" - OLDVER=$(sed -n -e 's/.*version = "\(.*\)".*/\1/p' <<< "$DATA") - if [ "$OLDVER" = "$V" ]; then - echo "No updates for $KERNEL" - continue - fi - - # Download the new file for the hash - if ! HASH="$(nix-prefetch-url $URL 2>/dev/null)"; then - echo "Failed to get hash of $URL" - continue - fi - sed -i -e "s/sha256 = \".*\"/sha256 = \"$HASH\"/g" $NIXPKGS/pkgs/os-specific/linux/kernel/$FILE - - # Rewrite the expression - sed -i -e '/version = /d' $NIXPKGS/pkgs/os-specific/linux/kernel/$FILE - sed -i -e "\#buildLinux (args // rec {#a \ version = \"$V\";" $NIXPKGS/pkgs/os-specific/linux/kernel/$FILE - - # Commit the changes - git add -u $NIXPKGS/pkgs/os-specific/linux/kernel/$FILE - git commit -m "linux: $OLDVER -> $V" >/dev/null 2>&1 - - echo "Updated $OLDVER -> $V" -done - -# Allowing errors again: one broken update script shouldn't inhibit the -# update of other kernel variants. -set +e - -echo Update linux-rt -COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-rt.sh || echo "update-rt failed with exit code $?" - -echo Update linux-libre -COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-libre.sh || echo "update-libre failed with exit code $?" - -echo Update linux-hardened -COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/hardened/update.py || echo "update-hardened failed with exit code $?" +echo "Update linux-hardened" +COMMIT=1 ./hardened/update.py || echo "update-hardened failed with exit code $?" diff --git a/pkgs/os-specific/linux/kernel/zen-kernels.nix b/pkgs/os-specific/linux/kernel/zen-kernels.nix index 28e0158394f..13c8ca22c4e 100644 --- a/pkgs/os-specific/linux/kernel/zen-kernels.nix +++ b/pkgs/os-specific/linux/kernel/zen-kernels.nix @@ -4,16 +4,16 @@ let # comments with variant added for update script # ./update-zen.py zen zenVariant = { - version = "6.5.3"; #zen + version = "6.5.5"; #zen suffix = "zen1"; #zen - sha256 = "0jc50cb30dzysqdhm91ykcg5xhy062dc69gwak6q33bn56n7dw3m"; #zen + sha256 = "069hxkww14dpz7k5hd93qnv6clc0dkpd3ncf1wzr5k84a0i9syj8"; #zen isLqx = false; }; # ./update-zen.py lqx lqxVariant = { - version = "6.4.15"; #lqx + version = "6.5.5"; #lqx suffix = "lqx1"; #lqx - sha256 = "1xhm73z074niz1dd0w24q5lxlpma6xraqil5kzp3j4qsyr5wg8hz"; #lqx + sha256 = "1sr23yjwl7sh58s5f9yy9ld163c5lm0qbn0gqg8bnkshx08r39h8"; #lqx isLqx = true; }; zenKernelsFor = { version, suffix, sha256, isLqx }: buildLinux (args // { @@ -74,10 +74,10 @@ let HZ = freeform "1000"; HZ_1000 = yes; } // lib.optionalAttrs (isLqx) { - # Google's BBRv2 TCP congestion Control - TCP_CONG_BBR2 = yes; - DEFAULT_BBR2 = yes; - DEFAULT_TCP_CONG = freeform "bbr2"; + # Google's BBRv3 TCP congestion Control + TCP_CONG_BBR = yes; + DEFAULT_BBR = yes; + DEFAULT_TCP_CONG = freeform "bbr"; # PDS Process Scheduler SCHED_ALT = yes; |