* [RFC/PROPOSAL] Shifting the x.y.z Stable Tree to a Continuous, Signed Patch-Stream Model @ 2026-05-24 9:38 Artem S. Tashkinov 2026-05-24 10:56 ` Greg Kroah-Hartman 0 siblings, 1 reply; 3+ messages in thread From: Artem S. Tashkinov @ 2026-05-24 9:38 UTC (permalink / raw) To: Linux Kernel Mailing List, Greg Kroah-Hartman, Sasha Levin, stable Hi all, The relentless cadence of critical vulnerability disclosures and public exploits over the past month—including Copy Fail (CVE-2026-31431), Dirty Frag (CVE-2026-43284/500), Fragnesia (CVE-2026-46300), and the ptrace exit race (CVE-2026-46333)—has highlighted a severe structural bottleneck in how we package and distribute stable backports. When fatal logic flaws or memory corruptions strike core subsystems, our current point-release model fractures. Spinning up whole new point releases (7.0.4, 7.0.5, 7.0.7) in a matter of days just to address incomplete fixes, subsystem regressions, or independent public disclosures (such as the recent GRO managed-frag UAF exploit dropped directly to GitHub gists by researchers) creates massive administrative fatigue for maintainers and downstream teams alike. Upstream has long maintained that the stable tree is effectively a continuous stream of fixes, and that users should track the tip of the stable branch rather than cherry-picking. It is time our release infrastructure matches this reality. ### The Proposal I propose transitioning the stable tree (`linux-x.y.y`) away from manual,discrete point-release tarballs (`x.y.z`). Instead, we should treat the stable sub-version purely as an append-only, continuous, git-native patch stream. Major releases (e.g., 7.0, 7.1) remain the foundational code boundaries, but sub-versions are eliminated as monolithic manual artifacts. ### The Implementation: How It Works To ensure downstream distributions, enterprise compliance engines, and automated testing rings can still securely ingest code, we can replace the manual tarball with a decoupled, automated asset pipeline: 1. **The Git-First Stream:** The stable branch (`linux-7.0.y`) remains the single source of truth. Commits are pushed as soon as they pass stable criteria and automated sanity testing. 2. **The Signed Patch-Stream Archive:** Instead of packaging the entire 30M+ line source code tree into a new tarball for every quick fix, upstream infrastructure maintains a rolling, cumulative patch sequence for the major cycle: linux-7.0-stable.series = \sum (patch_1 + patch_2 + ... + patch_n) Every time a fix is merged to the stable branch, the patch is appended to a publicly accessible, cryptographically signed manifest file (`linux-7.0-stable-patches.tar.bz2` or a standard `series` file) alongside a detached signature. 3. **Automated Snapshot Tags:** If the industry strictly requires an immutable archive for compliance, point-release numbers can be replaced by automated, time-stamped git tags and machine-generated source snapshots cut on a strict, automated interval (e.g., every 48 hours), removing human maintainers entirely from the release timing. ### Why This Benefits the Ecosystem * **Eliminates Churn and Latency:** When a patch introduces an edge-case regression or requires an immediate follow-up (a common reason for rapid point-release sequences), maintainers do not need to coordinate a whole new release event. The follow-up fix is simply patch $n+1$. Downstream CI pipelines ingest it natively via standard git fetches. * **Maintains Git-Native Debugging:** Debugging stable regressions via `git bisect` has always been patch-based, not release-based. Since point releases are meant strictly for backported bug fixes, removing the arbitrary `x.y.z` release tags changes nothing about a developer's ability to isolate a regression. If anything, it prevents downstream vendors from pulling out-of-order patches that complicate bisection across distros. * **Eases Downstream Automation:** Modern tracking distributions (Arch, Fedora snapshotting, etc.) can switch to trunk-based intake, automatically building from the signed tip. For enterprise distributions (RHEL, Ubuntu LTS) where constant kernel packaging and reboots are untenable, a fluid patch stream allows vendor security teams to more rapidly feed live-patching infrastructure (`kpatch`, `kgraft`), applying critical CVE fixes directly to runtime memory without changing the base package version. * **Bridges the Compliance Gap:** Embedded, automotive, or medical compliance pipelines that legally require a static, verifiable code artifact can validate their software against the base major release tarball ($7.0.0$) plus the cryptographically signed, append-only stable patch series manifest. The manual compilation, testing, and cutting of sub-version tarballs is an administrative artifact of the late 1990s. Shifting to an explicit, signed patch-stream architecture acknowledges the velocity of modern vulnerability research, strips away artificial latency, and frees our stable maintainers to focus on code quality rather than release management overhead. I would love to hear thoughts, architectural blockers, or feedback from the stable maintainers and distribution teams on the feasibility of this transition. Best regards, Artem S. Tashkinov ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC/PROPOSAL] Shifting the x.y.z Stable Tree to a Continuous, Signed Patch-Stream Model 2026-05-24 9:38 [RFC/PROPOSAL] Shifting the x.y.z Stable Tree to a Continuous, Signed Patch-Stream Model Artem S. Tashkinov @ 2026-05-24 10:56 ` Greg Kroah-Hartman 2026-05-25 0:33 ` Theodore Tso 0 siblings, 1 reply; 3+ messages in thread From: Greg Kroah-Hartman @ 2026-05-24 10:56 UTC (permalink / raw) To: Artem S. Tashkinov; +Cc: Linux Kernel Mailing List, Sasha Levin, stable On Sun, May 24, 2026 at 01:38:55PM +0400, Artem S. Tashkinov wrote: > Hi all, > > The relentless cadence of critical vulnerability disclosures and public > exploits over the past month—including Copy Fail (CVE-2026-31431), Dirty > Frag (CVE-2026-43284/500), Fragnesia (CVE-2026-46300), and the ptrace exit > race (CVE-2026-46333)—has highlighted a severe structural bottleneck in how > we package and distribute stable backports. Who is "we"? And there's nothing really "new" here, these issues are all normal, remember, we resolve, on average, 13 CVEs a day, most much more severe than the ones that happened to get marketing names that you list here (and how many systems have untrusted users?) > When fatal logic flaws or memory corruptions strike core subsystems, our > current point-release model fractures. Spinning up whole new point releases > (7.0.4, 7.0.5, 7.0.7) in a matter of days just to address incomplete fixes, > subsystem regressions, or independent public disclosures (such as the recent > GRO managed-frag UAF exploit dropped directly to GitHub gists by > researchers) creates massive administrative fatigue for maintainers and > downstream teams alike. it takes just a minute to "spin up" a point release, what is difficult about that? If needed, just let us know and we can easily do so. > Upstream has long maintained that the stable tree is effectively a > continuous stream of fixes, and that users should track the tip of the > stable branch rather than cherry-picking. It is time our release > infrastructure matches this reality. > > ### The Proposal > > I propose transitioning the stable tree (`linux-x.y.y`) away from > manual,discrete point-release tarballs (`x.y.z`). Instead, we should treat > the stable sub-version purely as an append-only, continuous, git-native > patch stream. That's what we do today, we just happen go "jump" on a weekly basis. > Major releases (e.g., 7.0, 7.1) remain the foundational code boundaries, but > sub-versions are eliminated as monolithic manual artifacts. > > ### The Implementation: How It Works > > To ensure downstream distributions, enterprise compliance engines, and > automated testing rings can still securely ingest code, we can replace the > manual tarball with a decoupled, automated asset pipeline: > > 1. **The Git-First Stream:** The stable branch (`linux-7.0.y`) remains the > single source of truth. Commits are pushed as soon as they pass stable > criteria and automated sanity testing. Again, that's what we do today. > 2. **The Signed Patch-Stream Archive:** Instead of packaging the entire 30M+ > line source code tree into a new tarball for every quick fix, upstream > infrastructure maintains a rolling, cumulative patch sequence for the major > cycle: > > linux-7.0-stable.series = \sum (patch_1 + patch_2 + ... + patch_n) > > Every time a fix is merged to the stable branch, the patch is appended to a > publicly accessible, cryptographically signed manifest file > (`linux-7.0-stable-patches.tar.bz2` or a standard `series` file) alongside a > detached signature. Who would use/need such a thing? What's wrong with the 2 systems we have today that this would somehow help out with? > 3. **Automated Snapshot Tags:** If the industry strictly requires an > immutable archive for compliance, What "compliance"? > point-release numbers can be replaced by > automated, time-stamped git tags and machine-generated source snapshots cut > on a strict, automated interval (e.g., every 48 hours), removing human > maintainers entirely from the release timing. That's probably not a good idea anyway. Are you doing continous testing of the stable queue? If so, great, just take from there today. Everyone adds patches on top of releases anyway, what's a few more if it happens to resolve specific issues for a day or so before a .y release can be cut? > ### Why This Benefits the Ecosystem > > * **Eliminates Churn and Latency:** > > When a patch introduces an edge-case regression or requires an immediate > follow-up (a common reason for rapid point-release sequences), maintainers > do not need to coordinate a whole new release event. No real "coordination" happens here. > The follow-up fix is simply patch $n+1$. Downstream CI pipelines > ingest it natively via standard git fetches. Again, we do that today. > * **Maintains Git-Native Debugging:** > > Debugging stable regressions via `git bisect` has always been patch-based, > not release-based. Since point releases are meant strictly for backported > bug fixes, removing the arbitrary `x.y.z` release tags changes nothing about > a developer's ability to isolate a regression. If anything, it prevents > downstream vendors from pulling out-of-order patches that complicate > bisection across distros. Who bisects across distros? > * **Eases Downstream Automation:** > > Modern tracking distributions (Arch, Fedora snapshotting, etc.) can switch > to trunk-based intake, automatically building from the signed tip. Have you asked them if they need/want this? > For enterprise distributions (RHEL, Ubuntu LTS) where constant kernel > packaging and reboots are untenable, Why are reboots for these systems untenable? Why not fix that root problem instead? > a fluid patch stream allows vendor > security teams to more rapidly feed live-patching infrastructure (`kpatch`, > `kgraft`), applying critical CVE fixes directly to runtime memory without > changing the base package version. They can do that today, and do do that today. So again, what distro needs this? > * **Bridges the Compliance Gap:** > > Embedded, automotive, or medical compliance pipelines > that legally require a static, verifiable code artifact can validate their > software against the base major release tarball ($7.0.0$) plus the > cryptographically signed, append-only stable patch series manifest. Do they really need that? Again, they can have that today, nothing new here. > The manual compilation, testing, and cutting of sub-version tarballs is an > administrative artifact of the late 1990s. Weekly releases is not an artivact of the 1990s :) > Shifting to an explicit, signed > patch-stream architecture acknowledges the velocity of modern vulnerability > research, strips away artificial latency, and frees our stable maintainers > to focus on code quality rather than release management overhead. Again, we have that today, on a weekly basis. greg k-h ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [RFC/PROPOSAL] Shifting the x.y.z Stable Tree to a Continuous, Signed Patch-Stream Model 2026-05-24 10:56 ` Greg Kroah-Hartman @ 2026-05-25 0:33 ` Theodore Tso 0 siblings, 0 replies; 3+ messages in thread From: Theodore Tso @ 2026-05-25 0:33 UTC (permalink / raw) To: Greg Kroah-Hartman Cc: Artem S. Tashkinov, Linux Kernel Mailing List, Sasha Levin, stable On Sun, May 24, 2026 at 12:56:54PM +0200, Greg Kroah-Hartman wrote: > > point-release numbers can be replaced by > > automated, time-stamped git tags and machine-generated source snapshots cut > > on a strict, automated interval (e.g., every 48 hours), removing human > > maintainers entirely from the release timing. > > That's probably not a good idea anyway. Are you doing continous testing > of the stable queue? If so, great, just take from there today. > Everyone adds patches on top of releases anyway, what's a few more if it > happens to resolve specific issues for a day or so before a .y release > can be cut? It's already the case that not all maintainers have the time to test the stable queue, and it's not clear that current testing of the weekly release is all that great. I have seen stabilty regressions where an xfstest running against ext4 will cause the kernel to crash with the 6.1 and 6.6 LTS kernels. It took me several days to figure out the 6.1 regression, and I still haven't had time to look into the 6.6 regression, because my day job (which is not ext4, but herding cats for an AI infrastructure project --- it's amazing how many fellow developers I met at LSF/MM are actually doing AI infrastructure projects for $WORK, and not kernel development as their primary job responsibilities.) So even the weekly cadence is starting to creek a bit from a quality perspective. I can't even *imagine* what a continuous, automated, "it builds, ship it!" would do to the quality of the stable kernel series. - Ted P.S. If someone is interesting in helping to test ext4 and xfs stable kernel patches, talk to me. There is partial automation to test updates to the stable-rc trees, but I've never had time to automate the rest of the test regression analysis combined with the automated "which patches need to be backed out to avoid the regression / kernel crash". There had been a few companies contributing fractions of engineers to do XFS stable maintainenace, all of those resources have been withdrawn by their respective companies in the past year. > > > ### Why This Benefits the Ecosystem > > > > * **Eliminates Churn and Latency:** > > > > When a patch introduces an edge-case regression or requires an immediate > > follow-up (a common reason for rapid point-release sequences), maintainers > > do not need to coordinate a whole new release event. > > No real "coordination" happens here. > > > The follow-up fix is simply patch $n+1$. Downstream CI pipelines > > ingest it natively via standard git fetches. > > Again, we do that today. > > > * **Maintains Git-Native Debugging:** > > > > Debugging stable regressions via `git bisect` has always been patch-based, > > not release-based. Since point releases are meant strictly for backported > > bug fixes, removing the arbitrary `x.y.z` release tags changes nothing about > > a developer's ability to isolate a regression. If anything, it prevents > > downstream vendors from pulling out-of-order patches that complicate > > bisection across distros. > > Who bisects across distros? > > > * **Eases Downstream Automation:** > > > > Modern tracking distributions (Arch, Fedora snapshotting, etc.) can switch > > to trunk-based intake, automatically building from the signed tip. > > Have you asked them if they need/want this? > > > For enterprise distributions (RHEL, Ubuntu LTS) where constant kernel > > packaging and reboots are untenable, > > Why are reboots for these systems untenable? Why not fix that root > problem instead? > > > a fluid patch stream allows vendor > > security teams to more rapidly feed live-patching infrastructure (`kpatch`, > > `kgraft`), applying critical CVE fixes directly to runtime memory without > > changing the base package version. > > They can do that today, and do do that today. So again, what distro > needs this? > > > * **Bridges the Compliance Gap:** > > > > Embedded, automotive, or medical compliance pipelines > > that legally require a static, verifiable code artifact can validate their > > software against the base major release tarball ($7.0.0$) plus the > > cryptographically signed, append-only stable patch series manifest. > > Do they really need that? Again, they can have that today, nothing new > here. > > > The manual compilation, testing, and cutting of sub-version tarballs is an > > administrative artifact of the late 1990s. > > Weekly releases is not an artivact of the 1990s :) > > > Shifting to an explicit, signed > > patch-stream architecture acknowledges the velocity of modern vulnerability > > research, strips away artificial latency, and frees our stable maintainers > > to focus on code quality rather than release management overhead. > > Again, we have that today, on a weekly basis. > > greg k-h > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-25 0:33 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-24 9:38 [RFC/PROPOSAL] Shifting the x.y.z Stable Tree to a Continuous, Signed Patch-Stream Model Artem S. Tashkinov 2026-05-24 10:56 ` Greg Kroah-Hartman 2026-05-25 0:33 ` Theodore Tso
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox