diff --git a/.github/workflows/pr-if-new-kernel.yml b/.github/workflows/pr-if-new-kernel.yml index 99704e6..9109fdc 100644 --- a/.github/workflows/pr-if-new-kernel.yml +++ b/.github/workflows/pr-if-new-kernel.yml @@ -9,7 +9,7 @@ jobs: # Matrix build for maintenance of multiple kernels strategy: matrix: - branch: ['main', 'maint-6.6'] + branch: ['main', 'maint-6.12', 'maint-6.6'] permissions: pull-requests: write contents: write diff --git a/README.md b/README.md index babb8f5..f898513 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,10 @@ In some cases, we need to make changes to those to get a working build. | branch | description | | ------------- | -------------- | -| `main` | latest lts kernel we maintain (6.12 as of December 2025) | +| `main` | latest lts kernel we maintain (6.18) | +| `maint-6.12` | maintenance of source code for kernel 6.12 | | `maint-6.6` | maintenance of source code for kernel 6.6 | -| `rel-1877` | backport for 1877, merge code from `main` | +| `rel-1877` | backport for 1877, merge code from `maint-6.12` | | `rel-1592` | backport for 1592, merge code from `maint-6.6` | @@ -55,10 +56,10 @@ git push ``` > [!Tip] -> You can find out the correct `.container` file by copying it from the corresponding tag of the https://github.com/gardenlinux/repo branch, for example [1443.0](https://github.com/gardenlinux/repo/blob/1443.0/.container) +> You can find out the correct `.container` file by copying it from the corresponding tag of the https://github.com/gardenlinux/repo branch, for example [1877.0](https://github.com/gardenlinux/repo/blob/1877.0/.container) > [!Note] -> We must create rel- branches to include the respective `.container` file, and not use maint for backports. This is required because multiple releases can use the same kernel version (e.g. rel-1443 and rel-1592 both use maint-6.6) +> We must create `rel-*` branches to include the respective `.container` file, and not use `maint-*` for backports. This is required because multiple releases can use the same kernel version (e.g. `rel-1443` and `rel-1592` both use `maint-6.6`) ## Automated kernel patch level upgrades diff --git a/config/amd64/defines.toml b/config/amd64/defines.toml index d340a09..559064a 100644 --- a/config/amd64/defines.toml +++ b/config/amd64/defines.toml @@ -24,8 +24,6 @@ config = [ 'amd64/config.cloud-amd64', 'config.gardenlinux' ] -[flavour.defs] -is_quick = true [flavour.description] hardware = 'x86-64 cloud' hardware_long = 'cloud platforms including Amazon EC2, Microsoft Azure, and Google Compute Engine' @@ -34,8 +32,8 @@ hardware_long = 'cloud platforms including Amazon EC2, Microsoft Azure, and Goog name = 'none' [build] +enable_rust = true enable_signed = false -enable_vdso = true kernel_file = 'arch/x86/boot/bzImage' kernel_stem = 'vmlinuz' diff --git a/config/arm64/defines.toml b/config/arm64/defines.toml index 1b51e9d..a44f4ce 100644 --- a/config/arm64/defines.toml +++ b/config/arm64/defines.toml @@ -25,8 +25,6 @@ config = [ 'arm64/config.cloud-arm64', 'config.gardenlinux' ] -[flavour.defs] -is_quick = true [flavour.description] hardware = 'arm64 cloud' hardware_long = 'cloud platforms supporting arm64 virtual machines' @@ -36,8 +34,8 @@ name = 'none' [build] compiler_gnutype_compat = 'arm-linux-gnueabihf' +enable_rust = true enable_signed = false -enable_vdso = true kernel_file = 'arch/arm64/boot/Image' kernel_stem = 'vmlinuz' diff --git a/config/defines.toml b/config/defines.toml index ee6ad3e..1f528a1 100644 --- a/config/defines.toml +++ b/config/defines.toml @@ -13,7 +13,12 @@ name = 'x86' name = 'none' [build] -compiler = 'gcc' +c_compiler = 'gcc' +rust_build_depends = [ + 'rustc:native', + 'bindgen:native', + 'rust-src', +] [relations.image] depends = [ diff --git a/config/riscv64/defines.toml b/config/riscv64/defines.toml index 56e2a27..386d0fd 100644 --- a/config/riscv64/defines.toml +++ b/config/riscv64/defines.toml @@ -11,6 +11,6 @@ installer = true name = 'none' [build] -enable_vdso = true +enable_rust = true kernel_file = 'arch/riscv/boot/Image' kernel_stem = 'vmlinux' diff --git a/finalize_source b/finalize_source index 8fac27f..55a5e65 100644 --- a/finalize_source +++ b/finalize_source @@ -1,5 +1,5 @@ ( apt-get install --no-install-recommends -y kernel-wedge python3-jinja2 python3-dacite cd "$dir/src" - { PYTHONDONTWRITEBYTECODE=1 make -f debian/rules debian/control-real || true; } | grep 'generated SUCCESSFULLY' + PYTHONDONTWRITEBYTECODE=1 make -f debian/rules debian/control-real && echo "PASS" || echo "FAIL" ) diff --git a/fixes_debian/series b/fixes_debian/series deleted file mode 100644 index 2d20a0c..0000000 --- a/fixes_debian/series +++ /dev/null @@ -1 +0,0 @@ -series.patch diff --git a/fixes_debian/series.patch b/fixes_debian/series.patch deleted file mode 100644 index edd0499..0000000 --- a/fixes_debian/series.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/debian/patches/series 2025-09-10 12:02:09.721924979 +0000 -+++ b/debian/patches/series 2025-09-10 14:50:59.976526194 +0000 -@@ -75,10 +75,6 @@ - bugfix/all/disable-some-marvell-phys.patch - bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch - bugfix/all/documentation-use-relative-source-paths-in-abi-documentation.patch --bugfix/all/ext4-don-t-try-to-clear-the-orphan_present-feature-b.patch --bugfix/all/proc-fix-missing-pde_set_flags-for-net-proc-files.patch --bugfix/all/alloc_fdtable-change-calling-conventions.patch --bugfix/all/net-ipv4-fix-regression-in-local-broadcast-routes.patch - - # Miscellaneous features diff --git a/prepare_source b/prepare_source index 47b942e..55c46b8 100755 --- a/prepare_source +++ b/prepare_source @@ -1,10 +1,10 @@ pkg=linux -version_orig=6.12.63 -version="$version_orig-3" +version_orig=6.18.3 +version="$version_orig-1" ( debian_repo=https://salsa.debian.org/kernel-team/linux.git - debian_ref="debian/6.12.43-1" + debian_ref="debian/6.18.3-1" tmp_dir="$(mktemp -d)" trap 'cd / && rm -rf "$tmp_dir"' EXIT diff --git a/update-kernel.py b/update-kernel.py index 9f05871..d74467d 100644 --- a/update-kernel.py +++ b/update-kernel.py @@ -5,7 +5,7 @@ # Script to automate the process of selecting the latest patch version of linux # Update this when we base our kernel build on a newer lts branch -current_lts = "6.12" +current_lts = "6.18" def get_latest_kernel_version(): @@ -15,7 +15,7 @@ def get_latest_kernel_version(): r["version"] for r in releases if r["version"].startswith(current_lts) - and r["moniker"] == "longterm" + # (not officially lts yet ) and r["moniker"] == "longterm" and r["iseol"] == False ] assert len(latest_current_lts) == 1