1144 lines
50 KiB
HTML
1144 lines
50 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en" class="no-js">
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
<meta name="description" content="The wiki for the Cloud Special Interest Group of the Rocky Linux project">
|
|
|
|
|
|
|
|
<link rel="canonical" href="https://sig-cloud.rocky.page/packages/kernel/">
|
|
|
|
|
|
<link rel="prev" href="../..">
|
|
|
|
|
|
|
|
<link rel="icon" href="../../assets/images/favicon.png">
|
|
<meta name="generator" content="mkdocs-1.5.3, mkdocs-material-9.5.6">
|
|
|
|
|
|
|
|
<title>SIG/Cloud Kernel Package - SIG/Cloud Wiki</title>
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/main.50c56a3b.min.css">
|
|
|
|
|
|
<link rel="stylesheet" href="../../assets/stylesheets/palette.06af60db.min.css">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
|
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
|
|
|
|
|
|
|
<script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="teal">
|
|
|
|
|
|
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
|
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
|
<label class="md-overlay" for="__drawer"></label>
|
|
<div data-md-component="skip">
|
|
|
|
|
|
<a href="#sigcloud-kernel-package" class="md-skip">
|
|
Skip to content
|
|
</a>
|
|
|
|
</div>
|
|
<div data-md-component="announce">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<header class="md-header" data-md-component="header">
|
|
<nav class="md-header__inner md-grid" aria-label="Header">
|
|
<a href="../.." title="SIG/Cloud Wiki" class="md-header__button md-logo" aria-label="SIG/Cloud Wiki" data-md-component="logo">
|
|
|
|
<img src="../../assets/icon-white.svg" alt="logo">
|
|
|
|
</a>
|
|
<label class="md-header__button md-icon" for="__drawer">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
|
|
</label>
|
|
<div class="md-header__title" data-md-component="header-title">
|
|
<div class="md-header__ellipsis">
|
|
<div class="md-header__topic">
|
|
<span class="md-ellipsis">
|
|
SIG/Cloud Wiki
|
|
</span>
|
|
</div>
|
|
<div class="md-header__topic" data-md-component="header-topic">
|
|
<span class="md-ellipsis">
|
|
|
|
SIG/Cloud Kernel Package
|
|
|
|
</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<form class="md-header__option" data-md-component="palette">
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="teal" data-md-color-accent="teal" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_0">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_1" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m17.75 4.09-2.53 1.94.91 3.06-2.63-1.81-2.63 1.81.91-3.06-2.53-1.94L12.44 4l1.06-3 1.06 3 3.19.09m3.5 6.91-1.64 1.25.59 1.98-1.7-1.17-1.7 1.17.59-1.98L15.75 11l2.06-.05L18.5 9l.69 1.95 2.06.05m-2.28 4.95c.83-.08 1.72 1.1 1.19 1.85-.32.45-.66.87-1.08 1.27C15.17 23 8.84 23 4.94 19.07c-3.91-3.9-3.91-10.24 0-14.14.4-.4.82-.76 1.27-1.08.75-.53 1.93.36 1.85 1.19-.27 2.86.69 5.83 2.89 8.02a9.96 9.96 0 0 0 8.02 2.89m-1.64 2.02a12.08 12.08 0 0 1-7.8-3.47c-2.17-2.19-3.33-5-3.49-7.82-2.81 3.14-2.7 7.96.31 10.98 3.02 3.01 7.84 3.12 10.98.31Z"/></svg>
|
|
</label>
|
|
|
|
|
|
|
|
|
|
|
|
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="teal" data-md-color-accent="teal" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_1">
|
|
|
|
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_0" hidden>
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 7a5 5 0 0 1 5 5 5 5 0 0 1-5 5 5 5 0 0 1-5-5 5 5 0 0 1 5-5m0 2a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3m0-7 2.39 3.42C13.65 5.15 12.84 5 12 5c-.84 0-1.65.15-2.39.42L12 2M3.34 7l4.16-.35A7.2 7.2 0 0 0 5.94 8.5c-.44.74-.69 1.5-.83 2.29L3.34 7m.02 10 1.76-3.77a7.131 7.131 0 0 0 2.38 4.14L3.36 17M20.65 7l-1.77 3.79a7.023 7.023 0 0 0-2.38-4.15l4.15.36m-.01 10-4.14.36c.59-.51 1.12-1.14 1.54-1.86.42-.73.69-1.5.83-2.29L20.64 17M12 22l-2.41-3.44c.74.27 1.55.44 2.41.44.82 0 1.63-.17 2.37-.44L12 22Z"/></svg>
|
|
</label>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
<script>var media,input,key,value,palette=__md_get("__palette");if(palette&&palette.color){"(prefers-color-scheme)"===palette.color.media&&(media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']"),palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent"));for([key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
|
|
|
|
|
|
|
|
<label class="md-header__button md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
|
</label>
|
|
<div class="md-search" data-md-component="search" role="dialog">
|
|
<label class="md-search__overlay" for="__search"></label>
|
|
<div class="md-search__inner" role="search">
|
|
<form class="md-search__form" name="search">
|
|
<input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
|
<label class="md-search__icon md-icon" for="__search">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
|
|
</label>
|
|
<nav class="md-search__options" aria-label="Search">
|
|
|
|
<button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
|
|
</button>
|
|
</nav>
|
|
|
|
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
|
|
|
</form>
|
|
<div class="md-search__output">
|
|
<div class="md-search__scrollwrap" data-md-scrollfix>
|
|
<div class="md-search-result" data-md-component="search-result">
|
|
<div class="md-search-result__meta">
|
|
Initializing search
|
|
</div>
|
|
<ol class="md-search-result__list" role="presentation"></ol>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="md-header__source">
|
|
<a href="https://git.resf.org/sig_cloud/wiki" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
sig_cloud/wiki
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
</nav>
|
|
|
|
</header>
|
|
|
|
<div class="md-container" data-md-component="container">
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
|
|
<div class="md-grid">
|
|
<ul class="md-tabs__list">
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item">
|
|
<a href="../.." class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
Rocky Linux SIG/Cloud Wiki
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-tabs__item md-tabs__item--active">
|
|
<a href="./" class="md-tabs__link">
|
|
|
|
|
|
|
|
|
|
Packages
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</div>
|
|
</nav>
|
|
|
|
|
|
|
|
<main class="md-main" data-md-component="main">
|
|
<div class="md-main__inner md-grid">
|
|
|
|
|
|
|
|
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
|
<div class="md-sidebar__scrollwrap">
|
|
<div class="md-sidebar__inner">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label="Navigation" data-md-level="0">
|
|
<label class="md-nav__title" for="__drawer">
|
|
<a href="../.." title="SIG/Cloud Wiki" class="md-nav__button md-logo" aria-label="SIG/Cloud Wiki" data-md-component="logo">
|
|
|
|
<img src="../../assets/icon-white.svg" alt="logo">
|
|
|
|
</a>
|
|
SIG/Cloud Wiki
|
|
</label>
|
|
|
|
<div class="md-nav__source">
|
|
<a href="https://git.resf.org/sig_cloud/wiki" title="Go to repository" class="md-source" data-md-component="source">
|
|
<div class="md-source__icon md-icon">
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
|
|
</div>
|
|
<div class="md-source__repository">
|
|
sig_cloud/wiki
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item">
|
|
<a href="../.." class="md-nav__link">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Rocky Linux SIG/Cloud Wiki
|
|
</span>
|
|
|
|
|
|
</a>
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested">
|
|
|
|
|
|
|
|
|
|
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" checked>
|
|
|
|
|
|
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
Packages
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="true">
|
|
<label class="md-nav__title" for="__nav_2">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Packages
|
|
</label>
|
|
<ul class="md-nav__list" data-md-scrollfix>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li class="md-nav__item md-nav__item--active">
|
|
|
|
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__link md-nav__link--active" for="__toc">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
SIG/Cloud Kernel Package
|
|
</span>
|
|
|
|
|
|
<span class="md-nav__icon md-icon"></span>
|
|
</label>
|
|
|
|
<a href="./" class="md-nav__link md-nav__link--active">
|
|
|
|
|
|
<span class="md-ellipsis">
|
|
SIG/Cloud Kernel Package
|
|
</span>
|
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<label class="md-nav__title" for="__toc">
|
|
<span class="md-nav__icon md-icon"></span>
|
|
Table of contents
|
|
</label>
|
|
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#requirements" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Requirements
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#general-process" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
General Process
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#diagram-production" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Diagram Production
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#developer-process" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Developer Process
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Developer Process">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prep-for-srpmproc-cloning-patchkernel" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Prep for SRPMPROC: Cloning patch/kernel
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#srpmproc-1st-run" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
srpmproc 1st run
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#build-local-git-tree-repo" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Build Local git tree repo
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#backporting-process-cherry-picks-mostly" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Backporting process (cherry-picks mostly)
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Backporting process (cherry-picks mostly)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#local-git-tree-state-after-desired-patches-known-bug-fixes" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Local Git Tree state after desired patches + known bug fixes:
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#local-kernel-builds" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Local Kernel Builds
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#prepare-changes-for-srpmproc-integration" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Prepare changes for srpmproc integration
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Prepare changes for srpmproc integration">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#generate-monolithic-patch" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Generate Monolithic Patch
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#generate-cherry-pick-patch-and-changelog-entries-a-basic-method" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Generate cherry-pick patch and changelog entries (a basic method)
|
|
</span>
|
|
</a>
|
|
|
|
<nav class="md-nav" aria-label="Generate cherry-pick patch and changelog entries (a basic method)">
|
|
<ul class="md-nav__list">
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#example-results" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Example Results
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#copy-monolithic-patch" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Copy Monolithic Patch
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#modify-srpmproc-directives" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Modify SRPMPROC directives
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#commit-locally-and-rerun-srpmproc" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Commit locally and rerun srpmproc
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#rebuild-with-local-dist-git" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
Rebuild with local dist-git
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
<li class="md-nav__item">
|
|
<a href="#create-pr-to-resf" class="md-nav__link">
|
|
<span class="md-ellipsis">
|
|
CREATE PR to RESF
|
|
</span>
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
</li>
|
|
|
|
|
|
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="md-content" data-md-component="content">
|
|
<article class="md-content__inner md-typeset">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h1 id="sigcloud-kernel-package">SIG/Cloud Kernel Package<a class="headerlink" href="#sigcloud-kernel-package" title="Permanent link">¶</a></h1>
|
|
<h2 id="requirements">Requirements<a class="headerlink" href="#requirements" title="Permanent link">¶</a></h2>
|
|
<ul>
|
|
<li>RESF Account: https://accounts.rockylinux.org/</li>
|
|
<li>srpmproc: https://github.com/rocky-linux/srpmproc</li>
|
|
<li>sideline: https://github.com/rocky-linux/sideline</li>
|
|
</ul>
|
|
<h2 id="general-process">General Process<a class="headerlink" href="#general-process" title="Permanent link">¶</a></h2>
|
|
<p>The RESF primary purpose is to rebuild and debrand a 1:1 bug replica of RHEL and have built tools that support this process. The SIGs are modifications to that initial purpose while reusing the tooling already developed for the base dist-git process. The SIG dist-gits are controlled by automation that executes the <code>srpmproc</code> command so to modify the dist-git in any manner a developer needs to integrate their changes to the <code>sig/cloud/patch</code> configs related to that SIG. <a href="https://git.rockylinux.org/sig/cloud/kernel">SIG/CLOUD - SRPMPROC Kernel Patches</a> -> <a href="https://git.rockylinux.org/sig/cloud/rpms/kernel">SIG/CLOUD - Kernel dist-git</a>
|
|
<code>srpmproc</code> is designed to only modify the <code>dist-git</code> and if a SIG wants a particular driver branch, that cleanly applies, they need to use another program called <code>sideline</code> to create a monolithic patch against a point in time source code base. That is then added to the <code>SIDELINE/_supporting</code> directory of the <code>sig/cloud/patch/kernel</code> directory. <code>srpmproc</code> knows that these patches are to be included into <code>SOURCES/</code> and added to <code>applypatch</code> directives in the <code>kernel.spec</code> with appropriate config settings for <code>srpmproc</code>.</p>
|
|
<h2 id="diagram-production">Diagram Production<a class="headerlink" href="#diagram-production" title="Permanent link">¶</a></h2>
|
|
<div class="highlight"><pre><span></span><code> |--------------------------|
|
|
| : SRPMPRROC : |
|
|
| Pulls RESF dist-git |
|
|
| Alters dist-git files |
|
|
| Injects SIDELINE patches |
|
|
|---Pull---| into soruce/ and .spec |---Automation:--|
|
|
| |--------------------------| Push |
|
|
v v
|
|
|----------| |-----------|
|
|
| : RESF : | | : RESF : |
|
|
| dist-git | | SIG/CLOUD |
|
|
|----------| | dist-git |
|
|
|-----------|
|
|
</code></pre></div>
|
|
<h2 id="developer-process">Developer Process<a class="headerlink" href="#developer-process" title="Permanent link">¶</a></h2>
|
|
<p>The general process by the RESF was not initially created with ad-hoc development in mind but rather pulling entire branches from upstream into the current RESF base releases. The following is to provide a general guide on how to develop with <code>srpmproc</code> as the <code>SIG/CLOUD</code> dist-git is not to be modified directly for development support.<br />
|
|
Basic Process
|
|
1. Clone <code>sig/cloud/patch/kernel</code> repo
|
|
2. Run Local <code>srpmproc</code>
|
|
3. Build local git repo for kernel source
|
|
4. Make Changes, local builds and testing (not covered in doc)
|
|
5. Source changes from local build to <code>sig/cloud/patch/kernel</code>
|
|
6. Regenerate <code>dist-git</code> with srpmproc
|
|
7. Mock test rpm builds.</p>
|
|
<p>The following sections are going to be based off real work that was ultimately abandoned for Rocky8.</p>
|
|
<h3 id="prep-for-srpmproc-cloning-patchkernel">Prep for SRPMPROC: Cloning patch/kernel<a class="headerlink" href="#prep-for-srpmproc-cloning-patchkernel" title="Permanent link">¶</a></h3>
|
|
<p>This is the general prep of the directories used. Note some directions for <code>srpmproc</code> use a temp directory, that is not used here as depending on how long development can last you could lose important work, specifically around the <code>srpmproc-cache</code></p>
|
|
<p>Create Needed Directories
|
|
<div class="highlight"><pre><span></span><code>mkdir -p SIG/cloud/
|
|
cd SIG/cloud/
|
|
mkdir -p {rpms,patch,src,srpmproc-cache,src-git}
|
|
</code></pre></div></p>
|
|
<p>Clone the configuration Directives and Patches repo
|
|
<div class="highlight"><pre><span></span><code>git clone ssh://git@git.rockylinux.org:22220/sig/cloud/patch/kernel.git patch/kernel.git
|
|
</code></pre></div></p>
|
|
<p>Script example used to manage running <code>srpmproc</code> during
|
|
<div class="highlight"><pre><span></span><code>#!/bin/bash
|
|
set -x
|
|
|
|
MYHOME=`pwd`
|
|
~/bin/srpmproc --cdn rocky8 --version 8 \
|
|
--upstream-prefix "file://${MYHOME}/" \
|
|
--storage-addr file:///${MYHOME}/srpmproc-cache \
|
|
--import-branch-prefix 'r' --strict-branch-mode \
|
|
--rpm-prefix "https://git.rockylinux.org/staging/rpms" \
|
|
--ssh-key-location ~/.ssh/resfgit \
|
|
--source-rpm kernel --tmpfs-mode kernel
|
|
</code></pre></div></p>
|
|
<h3 id="srpmproc-1st-run"><code>srpmproc</code> 1st run<a class="headerlink" href="#srpmproc-1st-run" title="Permanent link">¶</a></h3>
|
|
<p>This step will be missing a lot of output just so that we can focus on the results and where we source building a local source git tree.</p>
|
|
<p>RUN SRPMPROC with script or by hand.
|
|
<div class="highlight"><pre><span></span><code>./sprmproc.sh
|
|
</code></pre></div></p>
|
|
<p>After <code>srpmproc</code> runs you'll have a a new directory (<code>kernel</code>) in your current path that will have a working copy of the <code>sig/cloud</code> <code>dist-git</code> used to build the RPMs for <code>sig/cloud</code> </p>
|
|
<p>Example:
|
|
<div class="highlight"><pre><span></span><code>$ ls -a kernel/r8/
|
|
. .. .gitignore .kernel.checksum .kernel.metadata SOURCES SPECS
|
|
</code></pre></div></p>
|
|
<h3 id="build-local-git-tree-repo">Build Local git tree repo<a class="headerlink" href="#build-local-git-tree-repo" title="Permanent link">¶</a></h3>
|
|
<p>At this point the dist-git can extracted and modified for change however the individual wants.
|
|
Below is how the author did this.</p>
|
|
<p>Extract the TarBall note this was the original 8.9 change and the exact version has incremented.
|
|
<div class="highlight"><pre><span></span><code>tar xvf kernel/r8/SOURCES/linux-4.18.0-513.9.1.el8_9.tar.xz -C src-git/
|
|
cd src-git/linux-4.18.0-513.9.1.el8_9/
|
|
</code></pre></div></p>
|
|
<p>Commit to a local branch so we have a starting point.
|
|
<div class="highlight"><pre><span></span><code>git init .
|
|
git add .
|
|
git commit
|
|
</code></pre></div>
|
|
Results:
|
|
<div class="highlight"><pre><span></span><code>$ git log
|
|
commit 4be223b7a767b0d9ac27525ab26fc37ebdea52bb (HEAD -> mainline)
|
|
Author: Jonathan Maple <jmaple@ciq.com>
|
|
Date: Tue Jan 2 15:44:17 2024 -0500
|
|
|
|
Initial Commit from RESF Source
|
|
</code></pre></div></p>
|
|
<p>Find and apply patches from <code>kernel.spec</code>
|
|
<div class="highlight"><pre><span></span><code>egrep -i "apply.*\.patch" ../../kernel/r8/SPECS/kernel.spec
|
|
</code></pre></div>
|
|
Results:
|
|
<div class="highlight"><pre><span></span><code>ApplyOptionalPatch linux-kernel-test.patch
|
|
ApplyPatch 4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch
|
|
</code></pre></div>
|
|
Note: <code>linux-kernel-test.patch</code> is empty.
|
|
Note2: <code>4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch</code> is a massive monopatch.</p>
|
|
<p>Apply Patches
|
|
<div class="highlight"><pre><span></span><code>patch -p1 < ../../patch/kernel.git/SIDELINE/_supporting/4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch
|
|
</code></pre></div>
|
|
Results:
|
|
<div class="highlight"><pre><span></span><code>patching file drivers/net/ethernet/google/Kconfig
|
|
patching file drivers/net/ethernet/google/gve/gve.h
|
|
patching file drivers/net/ethernet/google/gve/gve_adminq.c
|
|
patching file drivers/net/ethernet/google/gve/gve_adminq.h
|
|
patching file drivers/net/ethernet/google/gve/gve_desc_dqo.h
|
|
patching file drivers/net/ethernet/google/gve/gve_ethtool.c
|
|
patching file drivers/net/ethernet/google/gve/gve_main.c
|
|
patching file drivers/net/ethernet/google/gve/gve_rx.c
|
|
patching file drivers/net/ethernet/google/gve/gve_rx_dqo.c
|
|
patching file drivers/net/ethernet/google/gve/gve_tx.c
|
|
patching file drivers/net/ethernet/google/gve/gve_tx_dqo.c
|
|
patching file drivers/net/ethernet/google/gve/gve_utils.c
|
|
patching file drivers/net/ethernet/google/gve/gve_utils.h
|
|
</code></pre></div></p>
|
|
<p>Commit changes:
|
|
<div class="highlight"><pre><span></span><code>git commit .
|
|
</code></pre></div>
|
|
Results:
|
|
<div class="highlight"><pre><span></span><code>$ git log
|
|
commit 26523a2078fe35af623eb7c885be23c9d1078c32 (HEAD -> mainline)
|
|
Author: Jonathan Maple <jmaple@ciq.com>
|
|
Date: Tue Jan 2 15:50:54 2024 -0500
|
|
|
|
Add RESF Google Patch
|
|
|
|
4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch
|
|
</code></pre></div></p>
|
|
<h3 id="backporting-process-cherry-picks-mostly">Backporting process (cherry-picks mostly)<a class="headerlink" href="#backporting-process-cherry-picks-mostly" title="Permanent link">¶</a></h3>
|
|
<p>This is ultimately up to the back porter but due to the massive monolithic patch that is preferred by <code>srpmproc</code> and its current configuration changes its best to leave some markers in the backport commits. In the following example we used these markers to make sure we could reproduce the upstream change log for future cherry-picks
|
|
<div class="highlight"><pre><span></span><code><subject unaltered >
|
|
|
|
<ticket_system> <ticket>
|
|
<opt: CVE> <CVE-NUMBER>
|
|
commit <sha1 of original commit>
|
|
<opt: upstream-diff> <diff commtent on why it differs from upstream>
|
|
|
|
<original commit message>
|
|
\t<original signoffs> (indented as we don't nessicarily want to notify everyone for this)
|
|
(cherry picked from commit: <sha1>)
|
|
Signed-off-by: Author <email>
|
|
</code></pre></div>
|
|
Note the last two items are auto added by <code>git cherry-pick -nsx <sha1></code></p>
|
|
<p>EXAMPLE of <code>cherry-pick</code> with output:
|
|
<div class="highlight"><pre><span></span><code>$ git cherry-pick -nsx 4775bc63f880
|
|
Auto-merging arch/arm/include/asm/arch_timer.h
|
|
Auto-merging arch/arm64/include/asm/arch_timer.h
|
|
Auto-merging drivers/clocksource/arm_arch_timer.c
|
|
|
|
$ git status
|
|
On branch ampereone
|
|
Changes to be committed:
|
|
(use "git restore --staged <file>..." to unstage)
|
|
modified: arch/arm/include/asm/arch_timer.h
|
|
modified: arch/arm64/include/asm/arch_timer.h
|
|
modified: drivers/clocksource/arm_arch_timer.c
|
|
|
|
$ git add .
|
|
|
|
$ git commit
|
|
|
|
[ampereone 8be2a2c2ce27] clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses
|
|
3 files changed, 32 insertions(+), 1 deletion(-)
|
|
|
|
$ git log
|
|
commit 8be2a2c2ce27af0fd99ecc72da1977685021afd1 (HEAD -> ampereone)
|
|
Author: Jonathan Maple <jmaple@ciq.com>
|
|
Date: Wed Jan 10 16:10:14 2024 -0500
|
|
|
|
clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses
|
|
|
|
jira ROC-2809
|
|
commit 4775bc63f880001ee4fbd6456b12ab04674149e3
|
|
|
|
As we are about to change the registers that are used by the driver,
|
|
start by adding build-time checks to ensure that we always handle
|
|
all registers and access modes.
|
|
|
|
Suggested-by: Mark Rutland <mark.rutland@arm.com>
|
|
Signed-off-by: Marc Zyngier <maz@kernel.org>
|
|
Link: https://lore.kernel.org/r/20211017124225.3018098-2-maz@kernel.org
|
|
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
|
|
|
|
(cherry picked from commit 4775bc63f880001ee4fbd6456b12ab04674149e3)
|
|
Signed-off-by: Jonathan Maple <jmaple@ciq.com>
|
|
|
|
ommit 26523a2078fe35af623eb7c885be23c9d1078c32 (mainline)
|
|
Author: Jonathan Maple <jmaple@ciq.com>
|
|
Date: Tue Jan 2 15:50:54 2024 -0500
|
|
|
|
Add RESF Google Patch
|
|
|
|
4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch
|
|
|
|
commit 4be223b7a767b0d9ac27525ab26fc37ebdea52bb
|
|
Author: Jonathan Maple <jmaple@ciq.com>
|
|
Date: Tue Jan 2 15:44:17 2024 -0500
|
|
|
|
Initial Commit from RESF Source
|
|
</code></pre></div></p>
|
|
<h4 id="local-git-tree-state-after-desired-patches-known-bug-fixes">Local Git Tree state after desired patches + known bug fixes:<a class="headerlink" href="#local-git-tree-state-after-desired-patches-known-bug-fixes" title="Permanent link">¶</a></h4>
|
|
<div class="highlight"><pre><span></span><code> git log --oneline
|
|
c92984ca64bb (HEAD -> ampereone) clocksource/drivers/arm_arch_timer: Remove arch_timer_rate1
|
|
1a4edf30d579 clocksource/drivers/arm_arch_timer: Fix CNTPCT_LO and CNTVCT_LO value
|
|
c50e0c82b622 clocksource/drivers/arm_arch_timer: Fix XGene-1 TVAL register math error
|
|
c4b9ba6322bd arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro
|
|
d6c3b12badb6 clocksource/drivers/arm_arch_timer: Force inlining of erratum_set_next_event_generic()
|
|
612170156e8e clocksource/drivers/arm_arch_timer: Fix handling of ARM erratum 858921
|
|
ecd5b3bc64e6 clocksource/drivers/arm_arch_timer: Disable timer before programming CVAL
|
|
d0736a304c83 clocksource/drivers/arm_arch_timer: limit XGene-1 workaround
|
|
c44180277750 clocksource/drivers/arch_arm_timer: Move workaround synchronisation around
|
|
4245d37d01b5 clocksource/drivers/arm_arch_timer: Fix masking for high freq counters
|
|
c9a41f6ca50a clocksource/drivers/arm_arch_timer: Drop unnecessary ISB on CVAL programming
|
|
79cbc595435b clocksource/drivers/arm_arch_timer: Remove any trace of the TVAL programming interface
|
|
5ce552b7c335 clocksource/drivers/arm_arch_timer: Work around broken CVAL implementations
|
|
e616b69d5656 clocksource/drivers/arm_arch_timer: Advertise 56bit timer to the core code
|
|
7d8301d23b2d clocksource/drivers/arm_arch_timer: Move MMIO timer programming over to CVAL
|
|
96f3d866ac46 clocksource/drivers/arm_arch_timer: Fix MMIO base address vs callback ordering issue
|
|
405b16cdf7ea clocksource/drivers/arm_arch_timer: Add __ro_after_init and __init
|
|
a674842337c0 clocksource/drivers/arm_arch_timer: Move drop _tval from erratum function names
|
|
7362b3b1507d clocksource/drivers/arm_arch_timer: Move system register timer programming over to CVAL
|
|
fa7e8c083474 clocksource/drivers/arm_arch_timer: Extend write side of timer register accessors to u64
|
|
39df82354a3b clocksource/drivers/arm_arch_timer: Drop CNT*_TVAL read accessors
|
|
8be2a2c2ce27 clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses
|
|
26523a2078fe (mainline) Add RESF Google Patch
|
|
4be223b7a767 Initial Commit from RESF Source
|
|
</code></pre></div>
|
|
<h4 id="local-kernel-builds">Local Kernel Builds<a class="headerlink" href="#local-kernel-builds" title="Permanent link">¶</a></h4>
|
|
<p>Compile the kernel in place (outside the scope of this document).
|
|
You could also export all these patches and manually add them to the <code>dist-git</code> like by many other <code>dist-git</code> builds however they can not be submitted to the SIG from this state. So this would be exclusively for your local testing. If you choose to do this and are not sure how to use <code>mock</code> builds, <a href="https://skip.linuxdn.org/blog.html#005_Rocky5_BuildLab_Part1">Skip's Blog</a> as a relevant primer tutorial for Rocky</p>
|
|
<h3 id="prepare-changes-for-srpmproc-integration">Prepare changes for srpmproc integration<a class="headerlink" href="#prepare-changes-for-srpmproc-integration" title="Permanent link">¶</a></h3>
|
|
<p>This is the part deviates pretty drastically from normal developer workflows.</p>
|
|
<h4 id="generate-monolithic-patch">Generate Monolithic Patch<a class="headerlink" href="#generate-monolithic-patch" title="Permanent link">¶</a></h4>
|
|
<p>In this case you'll want to take the commit you're branched off to the HEAD of your branch and create a single patch. Using the local commits in the above output we'll want <code>26523a2078fe</code> to be the first sha and <code>c92984ca64bb</code> to be the final</p>
|
|
<div class="highlight"><pre><span></span><code>git diff 26523a2078fe c92984ca64bb > ../ampereone.patch
|
|
</code></pre></div>
|
|
<h4 id="generate-cherry-pick-patch-and-changelog-entries-a-basic-method">Generate cherry-pick patch and changelog entries (a basic method)<a class="headerlink" href="#generate-cherry-pick-patch-and-changelog-entries-a-basic-method" title="Permanent link">¶</a></h4>
|
|
<p>This segment is a manual way of producing the needed changelog entries and a nicer patch header than a standard <code>git diff</code>. And is being used to show examples of how and where to contribute.
|
|
<div class="highlight"><pre><span></span><code>echo -e "Backport AmpereOne CPU clocksource and related bug fixes\n\nThis is just a monolithic diff.\nThe Commits backported are in git log order.\n" > ../patch_msg.resf.txt;
|
|
echo -n "" > ../srpmproc_changelog.resf.txt;
|
|
|
|
git log --pretty="format:%b" \
|
|
| grep ^commit | awk '{print $2}' \
|
|
| sed 's/)$//' | \
|
|
while read commit; do \
|
|
git log -1 --pretty="format:%h %s" ${commit} >> ../patch_msg.resf.txt; \
|
|
echo "\n" >> ../patch_msg.resf.txt; \
|
|
git log -1 --pretty="format:message: \"%h - %an - %cs - %s\"" ${commit} >> ../srpmproc_changelog.resf.txt; \
|
|
echo "\n" >> ../srpmproc_changelog.resf.txt; \
|
|
done;
|
|
|
|
echo -e "\n\nBackport-By: Jonathan Maple (jmaple@ciq.com)\n\n" >> ../patch_msg.resf.txt;
|
|
cat ../patch_msg.resf.txt > ../ampereone.resf.patch;
|
|
cat ../ampereone.patch >> ../ampereone.resf.patch;
|
|
</code></pre></div></p>
|
|
<h5 id="example-results">Example Results<a class="headerlink" href="#example-results" title="Permanent link">¶</a></h5>
|
|
<p>For <code>srpmproc</code> specfile changelog section
|
|
<div class="highlight"><pre><span></span><code>$ cat ../srpmproc_changelog.resf.txt
|
|
message: "4f9f4f0f6261 - Jisheng Zhang - 2021-06-03 - clocksource/drivers/arm_arch_timer: Remove arch_timer_rate1"\n
|
|
message: "af246cc6d0ed - Yang Guo - 2022-09-27 - clocksource/drivers/arm_arch_timer: Fix CNTPCT_LO and CNTVCT_LO value"\n
|
|
[19 lines ommited for readability]
|
|
message: "4775bc63f880 - Marc Zyngier - 2021-10-17 - clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses"\n
|
|
</code></pre></div></p>
|
|
<p>Patch File so there is local reference to what was done. Its important to show how the monolithic patch is generated in the event the changes need to be re-played in the event of a code correction:
|
|
<div class="highlight"><pre><span></span><code>$ cat ../ampereone.resf.patch
|
|
Backport AmpereOne CPU clocksource and related bug fixes
|
|
|
|
This is just a monolithic diff.
|
|
The Commits backported are in git log order.
|
|
|
|
4f9f4f0f6261 clocksource/drivers/arm_arch_timer: Remove arch_timer_rate1\n
|
|
af246cc6d0ed clocksource/drivers/arm_arch_timer: Fix CNTPCT_LO and CNTVCT_LO value\n
|
|
[19 lines ommited for readability]
|
|
4775bc63f880 clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses\n
|
|
|
|
|
|
Backport-By: Jonathan Maple (jmaple@ciq.com)
|
|
|
|
|
|
diff --git a/arch/arm/include/asm/arch_timer.h b/arch/arm/include/asm/arch_timer.h
|
|
index 4b66ecd6be99..5063cdaad21d 100644
|
|
--- a/arch/arm/include/asm/arch_timer.h
|
|
+++ b/arch/arm/include/asm/arch_timer.h
|
|
</code></pre></div></p>
|
|
<h4 id="copy-monolithic-patch">Copy Monolithic Patch<a class="headerlink" href="#copy-monolithic-patch" title="Permanent link">¶</a></h4>
|
|
<div class="highlight"><pre><span></span><code>cp ../ampereone.resf.patch ../../patch/kernel.git/SIDELINE/_supporting/
|
|
</code></pre></div>
|
|
<h3 id="modify-srpmproc-directives">Modify SRPMPROC directives<a class="headerlink" href="#modify-srpmproc-directives" title="Permanent link">¶</a></h3>
|
|
<p>This requires manual modification of directives file as <code>srpmproc</code> needs to be told what to do with the new file.</p>
|
|
<p>Some unique notes about <code>srpmproc</code>
|
|
* <code>patch</code> - directive applies a patch to the <code>dist-git</code> files themselves, NOT adding a patch the <code>.spec</code> file
|
|
* <code>add: {file: <path>}</code> is what will copy the file from <code>srpmproc</code> directories INTO the <code>dist-git</code> <code>SOURCES/</code> location.
|
|
* <code>spec_change</code> is where we configure changes to the specfile like would be done to a standard <code>dist-git</code>
|
|
* This is processed in order, so <code>search_and_replace</code> will be processed in order for adding patches. Make sure the patches are applied in correct order.
|
|
* Since the file is processed in order the changelog items need to be placed in reverse order ie newest item at the top.</p>
|
|
<p>Example of a modification, NOTE <code>search_and_replace</code> were below the <code>chagnelog</code> entries. They were moved on this abandoned work such that the <code>file</code> and <code>search_and_replace</code> were located generally in order relation to how they would be modified in a pure <code>dist-git</code> style repo. In a hope to avoid jumping back and forth in the file.
|
|
<div class="highlight"><pre><span></span><code>$ git diff
|
|
diff --git a/ROCKY/CFG/directives.cfg b/ROCKY/CFG/directives.cfg
|
|
index 6c21c18..2889b25 100644
|
|
--- a/ROCKY/CFG/directives.cfg
|
|
+++ b/ROCKY/CFG/directives.cfg
|
|
@@ -1,12 +1,61 @@
|
|
add: {
|
|
file: "SIDELINE/_supporting/4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch"
|
|
}
|
|
+add: {
|
|
+ file: "SIDELINE/_supporting/ampereone.patch
|
|
+}
|
|
spec_change: {
|
|
file: {
|
|
name: "4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch"
|
|
type: Patch
|
|
add: true
|
|
}
|
|
+ search_and_replace: {
|
|
+ any: true
|
|
+ find: "ApplyOptionalPatch linux-kernel-test.patch"
|
|
+ replace: "ApplyOptionalPatch linux-kernel-test.patch\nApplyPatch 4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch"
|
|
+ n: 1
|
|
+ }
|
|
+
|
|
+ file: {
|
|
+ name: ampereone.patch
|
|
+ type: Patch
|
|
+ add: true
|
|
+ }
|
|
+ search_and_replace: {
|
|
+ any: true
|
|
+ find: "ApplyPatch 4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch"
|
|
+ replace: "ApplyPatch 4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5.patch\nApplyPatch google_ampere_clocksource_diff.patch"
|
|
+ n: 1
|
|
+ }
|
|
+
|
|
+ changelog: {
|
|
+ author_name: "Jonathan Maple"
|
|
+ author_email: "jmaple@ciq.com"
|
|
+ message: "4f9f4f0f6261 - Jisheng Zhang - 2021-06-03 - clocksource/drivers/arm_arch_timer: Remove arch_timer_rate1"
|
|
+ message: "af246cc6d0ed - Yang Guo - 2022-09-27 - clocksource/drivers/arm_arch_timer: Fix CNTPCT_LO and CNTVCT_LO value"
|
|
+ message: "45ae272a948a - Joe Korty - 2022-12-02 - clocksource/drivers/arm_arch_timer: Fix XGene-1 TVAL register math error"
|
|
+ message: "8ec8490a1950 - D Scott Phillips - 2022-11-09 - arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro"
|
|
+ message: "1edb7e74a7d3 - Marc Zyngier - 2021-12-10 - clocksource/drivers/arm_arch_timer: Force inlining of erratum_set_next_event_generic()"
|
|
+ message: "6c3b62d93e19 - Kunkun Jiang - 2022-09-20 - clocksource/drivers/arm_arch_timer: Fix handling of ARM erratum 858921"
|
|
+ message: "e7d65e40ab5a - Walter Chang - 2023-08-18 - clocksource/drivers/arm_arch_timer: Disable timer before programming CVAL"
|
|
+ message: "851354cbd12b - Andre Przywara - 2023-10-18 - clocksource/drivers/arm_arch_timer: limit XGene-1 workaround"
|
|
+ message: "db26f8f2da92 - Marc Zyngier - 2021-10-18 - clocksource/drivers/arch_arm_timer: Move workaround synchronisation around"
|
|
+ message: "c1153d52c414 - Oliver Upton - 2021-10-18 - clocksource/drivers/arm_arch_timer: Fix masking for high freq counters"
|
|
+ message: "ec8f7f3342c8 - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Drop unnecessary ISB on CVAL programming"
|
|
+ message: "41f8d02a6a55 - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Remove any trace of the TVAL programming interface"
|
|
+ message: "012f18850452 - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Work around broken CVAL implementations"
|
|
+ message: "30aa08da35e0 - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Advertise 56bit timer to the core code"
|
|
+ message: "8b82c4f883a7 - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Move MMIO timer programming over to CVAL"
|
|
+ message: "72f47a3f0ea4 - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Fix MMIO base address vs callback ordering issue"
|
|
+ message: "e2bf384d4329 - Jisheng Zhang - 2021-04-08 - clocksource/drivers/arm_arch_timer: Add __ro_after_init and __init"
|
|
+ message: "ac9ef4f24cb2 - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Move drop _tval from erratum function names"
|
|
+ message: "a38b71b0833e - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Move system register timer programming over to CVAL"
|
|
+ message: "1e8d929231cf - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Extend write side of timer register accessors to u64"
|
|
+ message: "d72689988d67 - Marc Zyngier - 2021-10-17 - clocksource/drivers/arm_arch_timer: Drop CNT*_TVAL read accessors"
|
|
+ message: "4775bc63f880 - Marc Zyngier - 2021-10-17 - clocksource/arm_arch_timer: Add build-time guards for unhandled register accesses"
|
|
+ }
|
|
+
|
|
changelog: {
|
|
author_name: "RESF Sideline (Backporter)"
|
|
author_email: "releng+sideline@rockylinux.org"
|
|
@@ -138,12 +187,6 @@ spec_change: {
|
|
message: "f5cedc84a30d2d3d0e0a7f3eb53fbd66d9bf5517 - Catherine Sullivan - 2019-07-01 - gve: Add transmit and receive support"
|
|
message: "893ce44df56580fb878ca5af9c4a5fd87567da50 - Catherine Sullivan - 2019-07-01 - gve: Add basic driver framework for Compute Engine Virtual NIC"
|
|
}
|
|
- search_and_replace: {
|
|
- any: true
|
|
- find: "ApplyOptionalPatch linux-kernel-test.patch"
|
|
- replace: "ApplyOptionalPatch linux-kernel-test.patch\nApplyPatch 4-backport-changes-from-https-kernel-googlesource-com-pub-scm-linux-kernel-git-torvalds-linux-tag-v6-5
|
|
.patch"
|
|
- n: 1
|
|
- }
|
|
search_and_replace: {
|
|
any: true
|
|
find: "ApplyOptionalPatch debrand-single-cpu.patch"
|
|
</code></pre></div></p>
|
|
<h3 id="commit-locally-and-rerun-srpmproc">Commit locally and rerun <code>srpmproc</code><a class="headerlink" href="#commit-locally-and-rerun-srpmproc" title="Permanent link">¶</a></h3>
|
|
<p>As of 2024.01.29 <code>srpmproc</code> cannot work off dev branches so this code will need to be on the main <code>r<version></code> branch. Once this is done re-running <code>srpmproc</code> using the above script or exact same command parameters used when creating the local <code>srpmproc</code> will use the new local HEAD.</p>
|
|
<div class="highlight"><pre><span></span><code>$ git log
|
|
commit b32760fa1ed8a29145ca05d6bda391256a2aa70c (HEAD -> r8)
|
|
Author: Jonathan Maple <jmaple@ciq.com>
|
|
Date: Thu Jan 11 14:54:14 2024 -0500
|
|
|
|
Add AmpereOne CPU clocksource patches to r8
|
|
|
|
There is a request in the cloud to support fixes for AmpereOne CPUs with
|
|
clocksource fixes in the Rocky8 kernels. This was a large manual
|
|
backport with cherry-picks and picking up all known bugfixes for pulled
|
|
patches.
|
|
</code></pre></div>
|
|
<p>Example using the new commit:
|
|
<div class="highlight"><pre><span></span><code>[jmaple@devbox cloud]$ ./srpmproc.sh
|
|
2024/01/12 13:25:15 Discovered --cdn distro: rocky8 . Using override CDN URL Pattern: https://rocky-linux-sources-staging.a1.rockylinux.org/{{.Hash}}
|
|
2024/01/12 13:25:15 using tmpfs dir: kernel
|
|
2024/01/12 13:25:29 tag: imports/r8/kernel-4.18.0-513.11.1.el8_9
|
|
2024/01/12 13:25:29 using remote: file:///home/jmaple/workspace/code/r89builder/SIG/cloud//rpms/kernel.git
|
|
2024/01/12 13:25:29 using refspec: +refs/heads/r8:refs/remotes/origin/r8
|
|
2024/01/12 13:25:29 set reference to ref: refs/heads/r8
|
|
Found branchname that does not start w/ refs/heads :: r8
|
|
[SNIP]
|
|
{"branch_versions":{"r8":{"version":"4.18.0","release":"513.11.1.el8_9"}}}
|
|
|
|
[jmaple@devbox cloud]$ find kernel/ -type f | xargs grep ampereone; find kernel/ -type f | grep ampereone
|
|
kernel/r8/SPECS/kernel.spec:Patch1002: ampereone.patch
|
|
kernel/r8/SPECS/kernel.spec:ApplyPatch ampereone.patch
|
|
kernel/r8/SOURCES/ampereone.patch
|
|
</code></pre></div></p>
|
|
<h3 id="rebuild-with-local-dist-git">Rebuild with local <code>dist-git</code><a class="headerlink" href="#rebuild-with-local-dist-git" title="Permanent link">¶</a></h3>
|
|
<p>Reuse methods above</p>
|
|
<h3 id="create-pr-to-resf">CREATE PR to RESF<a class="headerlink" href="#create-pr-to-resf" title="Permanent link">¶</a></h3>
|
|
<p>This is following the developer guidelines.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<aside class="md-source-file">
|
|
|
|
|
|
<span class="md-source-file__fact">
|
|
<span class="md-icon" title="Last update">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
|
|
</span>
|
|
2024-01-29
|
|
</span>
|
|
|
|
|
|
|
|
|
|
|
|
</aside>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</article>
|
|
</div>
|
|
|
|
|
|
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
|
</div>
|
|
|
|
<button type="button" class="md-top md-icon" data-md-component="top" hidden>
|
|
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12Z"/></svg>
|
|
Back to top
|
|
</button>
|
|
|
|
</main>
|
|
|
|
<footer class="md-footer">
|
|
|
|
<div class="md-footer-meta md-typeset">
|
|
<div class="md-footer-meta__inner md-grid">
|
|
<div class="md-copyright">
|
|
|
|
<div class="md-copyright__highlight">
|
|
Copyright © 2022 Rocky Enterprise Software Foundation
|
|
</div>
|
|
|
|
|
|
Made with
|
|
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
|
Material for MkDocs
|
|
</a>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
</div>
|
|
<div class="md-dialog" data-md-component="dialog">
|
|
<div class="md-dialog__inner md-typeset"></div>
|
|
</div>
|
|
|
|
|
|
<script id="__config" type="application/json">{"base": "../..", "features": ["navigation.expand", "navigation.indexes", "navigation.instant", "navigation.tabs", "navigation.top", "navigation.tracking", "search.highlight", "search.suggest", "toc.integrate"], "search": "../../assets/javascripts/workers/search.b8dbb3d2.min.js", "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}}</script>
|
|
|
|
|
|
<script src="../../assets/javascripts/bundle.e1c3ead8.min.js"></script>
|
|
|
|
|
|
</body>
|
|
</html> |