Unverified Commit b6d7ec16 authored by K900's avatar K900 Committed by GitHub
Browse files

Merge pull request #330862 from K900/linux-6.11-rc1

Linux 6.11-rc1 (and misc fixes)
parents 2144bab1 d44b3f0e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
{
    "testing": {
        "version": "6.10-rc7",
        "hash": "sha256:0i29ga9lzqd4zcsbr4bbb122i8nyfhcalihnq3bgsg04dwb36s19"
        "version": "6.11-rc1",
        "hash": "sha256:0c9an2xlils8lk9yx883jb3li6ylj4k1jpbqp5k0z71xifa5fxb1"
    },
    "6.1": {
        "version": "6.1.102",
+3 −3
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
, ... } @ args:

let
  version = "6.1.99-rt36"; # updated by ./update-rt.sh
  version = "6.1.102-rt37"; # updated by ./update-rt.sh
  branch = lib.versions.majorMinor version;
  kversion = builtins.elemAt (lib.splitString "-" version) 0;
in buildLinux (args // {
@@ -19,14 +19,14 @@ in buildLinux (args // {

  src = fetchurl {
    url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
    sha256 = "1lsdwdx7i7xw1rzq88k3bz8sar77gb4rnmjx11pbmvmiwaffx1n0";
    sha256 = "1v4p4i8pfg4i6v90dr7m65npkxjnqv3fxcj8zs3pbb8y84xzk98v";
  };

  kernelPatches = let rt-patch = {
    name = "rt";
    patch = fetchurl {
      url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
      sha256 = "17a468lar9kf0q6n3vmknrbasrwp6pmq2gg39n1sp1bmmpr43qsf";
      sha256 = "07cpbq8jrwqmv15qm2szrgqwgy33kxwglxll93cqqnklr4in1lmy";
    };
  }; in [ rt-patch ] ++ kernelPatches;

+3 −3
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
, ... } @ args:

let
  version = "6.6.41-rt37"; # updated by ./update-rt.sh
  version = "6.6.43-rt38"; # updated by ./update-rt.sh
  branch = lib.versions.majorMinor version;
  kversion = builtins.elemAt (lib.splitString "-" version) 0;
in buildLinux (args // {
@@ -19,14 +19,14 @@ in buildLinux (args // {

  src = fetchurl {
    url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
    sha256 = "1vrjw0yhzmmnbrxyzjrfyz1s8bixciv1ly9pkgcqbasqh5brrjcy";
    sha256 = "0pha226h5011kl5r2iiddxi0rib3xraslmcdjjnil2kq38d3pn0a";
  };

  kernelPatches = let rt-patch = {
    name = "rt";
    patch = fetchurl {
      url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
      sha256 = "0b2l0bdyb49x7by8wamqfr3yhy722pz55k5a9bvq8pvmqn9s8a3b";
      sha256 = "0flxji623fy11l7z2syj5nlpkjfrc2nkqfpqvbgwzqpzms028mzj";
    };
  }; in [ rt-patch ] ++ kernelPatches;

+24 −16
Original line number Diff line number Diff line
#!/usr/bin/env nix-shell
#!nix-shell -i python3 -p "python3.withPackages (ps: [ ps.beautifulsoup4 ps.lxml ps.packaging ])"
from functools import cached_property
from itertools import groupby
import json
import os
@@ -29,20 +30,33 @@ class KernelNature(Enum):
class KernelRelease:
    nature: KernelNature
    version: str
    branch: str
    date: str
    link: str
    eol: bool = False

    @cached_property
    def parsed_version(self) -> Version:
        return parse_version(self.version)

    @cached_property
    def branch(self) -> str:
        version = self.parsed_version
        # This is a testing kernel.
        if version.is_prerelease:
            return "testing"
        else:
            return f"{version.major}.{version.minor}"


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:
        # skip linux-next
        return None

    version = parse_version(columns[1].get_text().rstrip(" [EOL]"))
    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):
@@ -52,7 +66,6 @@ def parse_release(release: Tag) -> KernelRelease | None:

    return KernelRelease(
        nature=nature,
        branch=get_branch(version),
        version=version,
        date=date,
        link=link,
@@ -60,14 +73,6 @@ def parse_release(release: Tag) -> KernelRelease | None:
    )


def get_branch(version: Version):
    # This is a testing kernel.
    if version.is_prerelease:
        return "testing"
    else:
        return f"{version.major}.{version.minor}"


def get_hash(kernel: KernelRelease):
    if kernel.branch == "testing":
        args = ["--unpack"]
@@ -108,16 +113,19 @@ def main():
        sys.exit(1)

    releases = release_table.find_all("tr")
    parsed_releases = filter(None, [parse_release(release) for release in releases])
    parsed_releases = [
        parsed for release in releases
        if (parsed := parse_release(release)) is not None
    ]
    all_kernels = json.load(VERSIONS_FILE.open())

    oldest_branch = get_oldest_branch()

    for (branch, kernels) in groupby(parsed_releases, lambda kernel: get_branch(kernel.version)):
        kernel = max(kernels, key=lambda kernel: kernel.version)
    for (branch, kernels) in groupby(parsed_releases, lambda kernel: kernel.branch):
        kernel = max(kernels, key=lambda kernel: kernel.parsed_version)
        nixpkgs_branch = branch.replace(".", "_")

        old_version = parse_version(all_kernels.get(branch, {}).get("version"))
        old_version = all_kernels.get(branch, {}).get("version")
        if old_version == kernel.version:
            print(f"linux_{nixpkgs_branch}: {kernel.version} is latest, skipping...")
            continue
@@ -144,7 +152,7 @@ def main():
        print(message, file=sys.stderr)

        all_kernels[branch] = {
            "version": str(kernel.version),
            "version": kernel.version,
            "hash": get_hash(kernel),
        }