Re: [OS-BUILD PATCH] redhat/configs: enable RTL8822BU for rhel

2024-05-13 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3085#note_1903039287

@jtornosm - can anyone on your team give a quick ack before we rebase today so
we can merge it?
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] redhat/configs: remove CONFIG_DMA_PERNUMA_CMA and switch CONFIG_DMA_NUMA_CMA off

2024-05-13 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3099#note_1903033590

@jsnitsel @ddutile - we are rebasing today.   Is this worth approving and
merging today or just wait and rebase tomorrow?
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv3 0/2] configs: add CONFIG_BLK_SED_OPAL and CONFIG_BLK_DEV_UBLK

2024-05-13 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3071#note_1903029892

@jmoyer1 @vgoyal - reviews?
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH] Base automotive-devel on rt-devel

2024-03-26 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Base automotive-devel on rt-devel

The -rt kernel will be integrated into the CentOS-Stream/RHEL-10 kernel
and the automotive kernel will be a derivative of that.  So instead of
building the automotive kernel off of os-build, instead build it off of
the os-build-rt-devel kernel which mimics the CS/RHEL10 workflow.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -140,8 +140,12 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
 
git checkout "$prev_branch"
 # do the git rebase --onto $temp_devel_branch $temp_prev_branch
+   prev_rt_branch="$(git rev-parse --abbrev-ref $RT_DEVEL_BRANCH)"
ark_git_rebase "$RT_DEVEL_BRANCH" "$temp_prev_branch" 
"$temp_devel_branch"
-   ark_git_rebase "$AUTOMOTIVE_DEVEL_BRANCH" "$temp_prev_branch" 
"$temp_devel_branch"
+
+   # use the pre-rebase rt-devel branch and the post-rebase rt-devel
+   # branch as input to git rebase
+   ark_git_rebase "$AUTOMOTIVE_DEVEL_BRANCH" "$prev_rt_branch" 
"$RT_DEVEL_BRANCH"
git branch -D "$temp_prev_branch"
git branch -D "$temp_devel_branch"
 fi
@@ -154,9 +158,9 @@ ark_update_configs "$RT_DEVEL_BRANCH" || true
 # skip pushing config update MRs, keep them in pending-rhel
 ark_push_changes "$RT_DEVEL_BRANCH" "skip"
 
-## Build -automotive-devel branch, generate pending-rhel configs
-ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
-ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+## Build -automotive-devel branch based on the rt-devel branch, generate
+## pending-rhel configs
+ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" "$RT_DEVEL_BRANCH"
 # don't care if configs were added or not hence '|| true'
 ark_update_configs "$AUTOMOTIVE_DEVEL_BRANCH" || true
 # skip pushing config update MRs, keep them in pending-rhel

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3047
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 2/2] Octopus merges are too conservative, serialize instead

2024-03-11 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Octopus merges are too conservative, serialize instead

There are some commits in an octous merge that may overlap and the
octopus merging is to conservative.  Serializing the merges is more
successfull. Convert to that.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -56,23 +56,20 @@ ark_git_mirror()
 # Merge wrapper in case issues arise
 ark_git_merge()
 {
-   # support octopus merging with source_branch 1|2
-
target_branch="$1"
-   source_branch1="$2"
-   source_branch2="$3"
+   source_branch="$2"
 
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
-   ark_git_branch "$target_branch" "${source_branch1}"
+   ark_git_branch "$target_branch" "${source_branch}"
git checkout "$target_branch"
 
-   msg="Merge '${source_branch1} ${source_branch2}' into '$target_branch'"
-   if ! git merge -m "$msg" "${source_branch1}" "${source_branch2}"; then
+   msg="Merge '${source_branch}' into '$target_branch'"
+   if ! git merge -m "$msg" "${source_branch}"; then
git merge --abort
printf "Merge conflict; halting!\n"
printf "To reproduce:\n"
printf "* git checkout %s\n" "${target_branch}"
-   printf "* git merge %s\n" "${source_branch1} ${source_branch2}"
+   printf "* git merge %s\n" "${source_branch}"
die "Merge conflicts"
fi
 
diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -125,7 +125,6 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
# rebases usually go from prev version to new version
# rebuild the prev merge base as it isn't saved.
# then rebuild the current merge base as it isn't saved either
-   # because we use an octopus merge below.
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
temp_prev_branch="_temp_prev_rt_devel_$(date +%F)"
git branch -D "$temp_prev_branch" 2>/dev/null
@@ -133,7 +132,7 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
git checkout -b "$temp_prev_branch" "kernel-${OS_BUILD_VER_prev}.0-0"
git merge "$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_PREV_BRANCH"
 
-   # create devel merge branch to base octopus merge on.
+   # create devel merge branch to base merge on.
temp_devel_branch="_temp_devel_rt_devel_$(date +%F)"
git branch -D "$temp_devel_branch" 2>/dev/null
git checkout -b "$temp_devel_branch" "$OS_BUILD_BASE_BRANCH"
@@ -148,14 +147,16 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
 fi
 
 ## Build -rt-devel branch, generate pending-rhel configs
-ark_git_merge "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_merge "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_merge "$RT_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
 # don't care if configs were added or not hence '|| true'
 ark_update_configs "$RT_DEVEL_BRANCH" || true
 # skip pushing config update MRs, keep them in pending-rhel
 ark_push_changes "$RT_DEVEL_BRANCH" "skip"
 
 ## Build -automotive-devel branch, generate pending-rhel configs
-ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
 # don't care if configs were added or not hence '|| true'
 ark_update_configs "$AUTOMOTIVE_DEVEL_BRANCH" || true
 # skip pushing config update MRs, keep them in pending-rhel

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2972
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 1/2] Add tracking branches for rt-devel

2024-03-11 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add tracking branches for rt-devel

Without the tracking branches, the branches are created from scratch
which prevent a fast-forward merge later to rt-devel and
automotive-devel.

Signed-off-by: Don Zickus 

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index blahblah..blahblah 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -506,6 +506,10 @@ merge_rt_automotive:
   extends: .scheduled_setup
   script:
 - git remote add linux-rt-devel 
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
+- git checkout --track origin/os-build-rt-devel && git describe
+- git checkout --track origin/os-build-automotive-devel && git describe
+# make sure we are on correct code base before running script
+- git checkout os-build  && git describe
 - DIST_PUSH=1 redhat/scripts/ci/ark-merge-rt.sh
   retry: 2
   rules:

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2972
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 0/2] Cleanup fixes for rt-devel

2024-03-11 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2972

More cleanup fixes to handle daily merges for rt-devel and automotive-devel.

Tested by simulating the two daily cronjob in test-os-builds.

Signed-off-by: Don Zickus dzic...@redhat.com

---
 redhat/scripts/ci/ark-ci-env.sh   |  13 +
 redhat/scripts/ci/ark-merge-rt.sh |   9 +
 .gitlab-ci.yml|   4 
 3 files changed, 14 insertions(+), 12 deletions(-)
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 2/2] Octopus merges are too conservative, serialize instead

2024-03-06 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Octopus merges are too conservative, serialize instead

There are some commits in an octous merge that may overlap and the
octopus merging is to conservative.  Serializing the merges is more
successfull. Convert to that.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -56,23 +56,20 @@ ark_git_mirror()
 # Merge wrapper in case issues arise
 ark_git_merge()
 {
-   # support octopus merging with source_branch 1|2
-
target_branch="$1"
-   source_branch1="$2"
-   source_branch2="$3"
+   source_branch="$2"
 
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
-   ark_git_branch "$target_branch" "${source_branch1}"
+   ark_git_branch "$target_branch" "${source_branch}"
git checkout "$target_branch"
 
-   msg="Merge '${source_branch1} ${source_branch2}' into '$target_branch'"
-   if ! git merge -m "$msg" "${source_branch1}" "${source_branch2}"; then
+   msg="Merge '${source_branch}' into '$target_branch'"
+   if ! git merge -m "$msg" "${source_branch}"; then
git merge --abort
printf "Merge conflict; halting!\n"
printf "To reproduce:\n"
printf "* git checkout %s\n" "${target_branch}"
-   printf "* git merge %s\n" "${source_branch1} ${source_branch2}"
+   printf "* git merge %s\n" "${source_branch}"
die "Merge conflicts"
fi
 
diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -125,7 +125,6 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
# rebases usually go from prev version to new version
# rebuild the prev merge base as it isn't saved.
# then rebuild the current merge base as it isn't saved either
-   # because we use an octopus merge below.
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
temp_prev_branch="_temp_prev_rt_devel_$(date +%F)"
git branch -D "$temp_prev_branch" 2>/dev/null
@@ -133,7 +132,7 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
git checkout -b "$temp_prev_branch" "kernel-${OS_BUILD_VER_prev}.0-0"
git merge "$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_PREV_BRANCH"
 
-   # create devel merge branch to base octopus merge on.
+   # create devel merge branch to base merge on.
temp_devel_branch="_temp_devel_rt_devel_$(date +%F)"
git branch -D "$temp_devel_branch" 2>/dev/null
git checkout -b "$temp_devel_branch" "$OS_BUILD_BASE_BRANCH"
@@ -148,14 +147,16 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
 fi
 
 ## Build -rt-devel branch, generate pending-rhel configs
-ark_git_merge "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_merge "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_merge "$RT_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
 # don't care if configs were added or not hence '|| true'
 ark_update_configs "$RT_DEVEL_BRANCH" || true
 # skip pushing config update MRs, keep them in pending-rhel
 ark_push_changes "$RT_DEVEL_BRANCH" "skip"
 
 ## Build -automotive-devel branch, generate pending-rhel configs
-ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_merge "$AUTOMOTIVE_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
 # don't care if configs were added or not hence '|| true'
 ark_update_configs "$AUTOMOTIVE_DEVEL_BRANCH" || true
 # skip pushing config update MRs, keep them in pending-rhel

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2972
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 1/2] Add tracking branches for rt-devel

2024-03-06 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add tracking branches for rt-devel

Without the tracking branches, the branches are created from scratch
which prevent a fast-forward merge later to rt-devel and
automotive-devel.

Signed-off-by: Don Zickus 

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index blahblah..blahblah 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -450,6 +450,10 @@ merge_rt_automotive:
   extends: .scheduled_setup
   script:
 - git remote add linux-rt-devel 
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
+- git checkout --track origin/os-build-rt-devel && git describe
+- git checkout --track origin/os-build-automotive-devel && git describe
+# make sure we are on correct code base before running script
+- git checkout os-build  && git describe
 - DIST_PUSH=1 redhat/scripts/ci/ark-merge-rt.sh
   retry: 2
   rules:

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2972
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 0/2] Cleanup fixes for rt-devel

2024-03-06 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2972

More cleanup fixes to handle daily merges for rt-devel and automotive-devel.

Tested by simulating the two daily cronjob in test-os-builds.

Signed-off-by: Don Zickus dzic...@redhat.com

---
 redhat/scripts/ci/ark-ci-env.sh   |  13 +
 redhat/scripts/ci/ark-merge-rt.sh |   9 +
 .gitlab-ci.yml|   4 
 3 files changed, 14 insertions(+), 12 deletions(-)
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv3 2/2] Remove rt-automated and master-rt-devel logic

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Remove rt-automated and master-rt-devel logic

Rely on less branch logic to build and maintain the rt tree.  Using the
rt-automated-devel and master-rt-devel branches requires pushing them
and keeping them in sync.  With octopus merging, we don't need them and
can rely on temporary branches instead.

Remove the logic for those two branches.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -24,8 +24,6 @@ set -e
 #Upstream RT tree 
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
 
UPSTREAM_RT_TREE_URL="git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git"
 UPSTREAM_RT_TREE_NAME="linux-rt-devel"
-DOWNSTREAM_RT_BRANCH="master-rt-devel"
-RT_AUTOMATED_BRANCH="os-build-rt-automated"
 RT_DEVEL_BRANCH="os-build-rt-devel"
 AUTOMOTIVE_DEVEL_BRANCH="os-build-automotive-devel"
 
@@ -41,10 +39,6 @@ ark_git_mirror "master" "origin" "master"
 # make sure tags are available for git-describe to correctly work
 git fetch -t origin
 
-# upstream -rt devel branches are aligned with version numbers and are not
-# always up to date with master.  Figure out which branch to mirror based on
-# version number and existance.  We may have to trigger a rebase.
-
 # what are the current versions of rt-devel and os-build (use 'master' to
 # avoid fedora tagging of kernel-X.Y.0.0.)
 # use git tags which are always 'vX.Y-rcZ-aaa-gb' or 'vX.Y-aaa-gb'
@@ -94,56 +88,35 @@ get_prev_version()
 OS_BUILD_VER="$(get_upstream_version os-build)"
 OS_BUILD_VER_prev="$(get_prev_version "$OS_BUILD_VER")"
 
+# upstream -rt devel branches are aligned with version numbers and are not
+# always up to date with master.  Figure out which branch to mirror based on
+# version number and existance.  We may have to trigger a rebase.
+
 # check latest upstream RT branch
 if git fetch -q "$UPSTREAM_RT_TREE_NAME" "linux-${OS_BUILD_VER}.y-rt"; then
UPSTREAM_RT_DEVEL_VER="${OS_BUILD_VER}"
+   OS_BUILD_BASE_BRANCH="os-build"
 elif git fetch -q "$UPSTREAM_RT_TREE_NAME" "linux-${OS_BUILD_VER_prev}.y-rt"; 
then
UPSTREAM_RT_DEVEL_VER="${OS_BUILD_VER_prev}"
+   OS_BUILD_BASE_BRANCH="kernel-${UPSTREAM_RT_DEVEL_VER}.0-0"
 else
die "Neither version ($OS_BUILD_VER, $OS_BUILD_VER_prev) in upstream 
tree: $UPSTREAM_RT_TREE_NAME"
 fi
 
-OS_BUILD_BASE_BRANCH="os-build"
-RT_REBASE=""
-
-if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
-   # no newer upstream branch to rebase onto, continue with an
-   # os-build stable tag
-   OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
-fi
 UPSTREAM_RT_PREV_BRANCH=""
 
 # verify the core branches exist or use provided defaults
 UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
-ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_AUTOMATED_BRANCH" "$OS_BUILD_BASE_BRANCH"
 ark_git_branch "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
 ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
 
-MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
-RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
 RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
 AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
 
-# sanity check, sometimes broken scripts leave a mess
-if test "$MASTER_RT_DEVEL_VER" != "$UPSTREAM_RT_DEVEL_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$RT_AUTOMATED_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER"; then
-   # rebase time
-   RT_REBASE="yes"
-fi
-
-## PREP the upstream branches
-# on a rebase, propogate all the git resets
-# fetch the determined rt-devel branch
-ark_git_mirror "$DOWNSTREAM_RT_BRANCH" "$UPSTREAM_RT_TREE_NAME" 
"$UPSTREAM_RT_DEVEL_BRANCH" "$RT_REBASE"
-# finally merge the two correct branches
-ark_git_merge "$OS_BUILD_BASE_BRANCH" "$RT_AUTOMATED_BRANCH" "$RT_REBASE"
-ark_git_merge "$DOWNSTREAM_RT_BRANCH" "$RT_AUTOMATED_BRANCH"
 # handle rebasing
 if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
"$UPSTREAM_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER";

[OS-BUILD PATCHv3 1/2] Add support for CI octopus merging

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add support for CI octopus merging

The intermediate branch rt-automated-devel was getting in the way as it
needed to be pushed with rt-devel and automotive-devel.  In prep to
remove that logic, add support for an octopus merge.

This requires creating another temporary branch for rebasing and
changing how ark_git_merge logic works.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -56,22 +56,23 @@ ark_git_mirror()
 # Merge wrapper in case issues arise
 ark_git_merge()
 {
-   source_branch="$1"
-   target_branch="$2"
-   reset_branch="$3"
+   # support octopus merging with source_branch 1|2
+
+   target_branch="$1"
+   source_branch1="$2"
+   source_branch2="$3"
 
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
-   ark_git_branch "$target_branch" "$source_branch"
+   ark_git_branch "$target_branch" "${source_branch1}"
git checkout "$target_branch"
-   if test -n "$reset_branch"; then
-   # there are cases when the initial merge is a reset
-   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
-   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+
+   msg="Merge '${source_branch1} ${source_branch2}' into '$target_branch'"
+   if ! git merge -m "$msg" "${source_branch1}" "${source_branch2}"; then
git merge --abort
printf "Merge conflict; halting!\n"
printf "To reproduce:\n"
printf "* git checkout %s\n" "${target_branch}"
-   printf "* git merge %s\n" "${source_branch}"
+   printf "* git merge %s\n" "${source_branch1} ${source_branch2}"
die "Merge conflicts"
fi
 
diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -111,6 +111,7 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
# os-build stable tag
OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
 fi
+UPSTREAM_RT_PREV_BRANCH=""
 
 # verify the core branches exist or use provided defaults
 UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
@@ -140,33 +141,48 @@ ark_git_mirror "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_DE
 # finally merge the two correct branches
 ark_git_merge "$OS_BUILD_BASE_BRANCH" "$RT_AUTOMATED_BRANCH" "$RT_REBASE"
 ark_git_merge "$DOWNSTREAM_RT_BRANCH" "$RT_AUTOMATED_BRANCH"
+# handle rebasing
+if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
+   "$UPSTREAM_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER"; then
+   # we need the previous rt branch for rebase purposes
+   UPSTREAM_RT_PREV_BRANCH="linux-${OS_BUILD_VER_prev}.y-rt"
+   git fetch -q "$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_PREV_BRANCH"
 
-## MERGE the upstream branches to the development branches
-if test -n "$RT_REBASE"; then
# handle the rebase
# rebases usually go from prev version to new version
-   # rebuild the prev merge base in case the previous automated one is
-   # corrupted.
+   # rebuild the prev merge base as it isn't saved.
+   # then rebuild the current merge base as it isn't saved either
+   # because we use an octopus merge below.
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
-   temp_branch="_temp_rt_devel_$(date +%F)"
-   git branch -D "$temp_branch" 2>/dev/null
-   git checkout -b "$temp_branch" "kernel-${OS_BUILD_VER_prev}.0-0"
-   git merge "$UPSTREAM_RT_TREE_NAME/linux-${OS_BUILD_VER_prev}.y-rt"
+   temp_prev_branch="_temp_prev_rt_devel_$(date +%F)"
+   git branch -D "$temp_prev_branch" 2>/dev/null
+   git fetch "$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_PREV_BRANCH"
+   git checkout -b "$temp_prev_branch" "kernel-${OS_BUILD_VER_prev}.0-0"
+   git merge "$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_PREV_BRANCH"
+
+   # create devel merge branch to base octopus merge on.
+   temp_devel_branch="_temp_devel_rt_devel_$(date +%F)"
+   git branch -D "$temp

[OS-BUILD PATCHv3 0/2] Fix nightly rt and automotive merging

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2969

The nightly rt merging cronjob immediately failed the second night because I
forgot to push the intermediary branch rt-automated-devel.  So when it got
rebuilt the next night from scratch it got merged into rt-devel and
automotive-devel in a way that required those branches to be forced pushed.
Not good for development.

The easy way is to push that branch but that requires re-pushing rt-devel and
automotive-devel.  Not hard.  Instead I wanted to remove that intermediary
branch leaving less complicated logic and rely on an octopus merge.  Should
work better now and simpler to read.

Signed-off-by: Don Zickus dzic...@redhat.com

---
 redhat/scripts/ci/ark-ci-env.sh   |  19 
 redhat/scripts/ci/ark-merge-rt.sh |  81 --
 2 files changed, 45 insertions(+), 55 deletions(-)
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 3/3] Remove rt-automated and master-rt-devel logic

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Remove rt-automated and master-rt-devel logic

Rely on less branch logic to build and maintain the rt tree.  Using the
rt-automated-devel and master-rt-devel branches requires pushing them
and keeping them in sync.  With octopus merging, we don't need them and
can rely on temporary branches instead.

Remove the logic for those two branches.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -24,8 +24,6 @@ set -e
 #Upstream RT tree 
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
 
UPSTREAM_RT_TREE_URL="git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git"
 UPSTREAM_RT_TREE_NAME="linux-rt-devel"
-DOWNSTREAM_RT_BRANCH="master-rt-devel"
-RT_AUTOMATED_BRANCH="os-build-rt-automated"
 RT_DEVEL_BRANCH="os-build-rt-devel"
 AUTOMOTIVE_DEVEL_BRANCH="os-build-automotive-devel"
 
@@ -41,10 +39,6 @@ ark_git_mirror "master" "origin" "master"
 # make sure tags are available for git-describe to correctly work
 git fetch -t origin
 
-# upstream -rt devel branches are aligned with version numbers and are not
-# always up to date with master.  Figure out which branch to mirror based on
-# version number and existance.  We may have to trigger a rebase.
-
 # what are the current versions of rt-devel and os-build (use 'master' to
 # avoid fedora tagging of kernel-X.Y.0.0.)
 # use git tags which are always 'vX.Y-rcZ-aaa-gb' or 'vX.Y-aaa-gb'
@@ -94,56 +88,35 @@ get_prev_version()
 OS_BUILD_VER="$(get_upstream_version os-build)"
 OS_BUILD_VER_prev="$(get_prev_version "$OS_BUILD_VER")"
 
+# upstream -rt devel branches are aligned with version numbers and are not
+# always up to date with master.  Figure out which branch to mirror based on
+# version number and existance.  We may have to trigger a rebase.
+
 # check latest upstream RT branch
 if git fetch -q "$UPSTREAM_RT_TREE_NAME" "linux-${OS_BUILD_VER}.y-rt"; then
UPSTREAM_RT_DEVEL_VER="${OS_BUILD_VER}"
+   OS_BUILD_BASE_BRANCH="os-build"
 elif git fetch -q "$UPSTREAM_RT_TREE_NAME" "linux-${OS_BUILD_VER_prev}.y-rt"; 
then
UPSTREAM_RT_DEVEL_VER="${OS_BUILD_VER_prev}"
+   OS_BUILD_BASE_BRANCH="kernel-${UPSTREAM_RT_DEVEL_VER}.0-0"
 else
die "Neither version ($OS_BUILD_VER, $OS_BUILD_VER_prev) in upstream 
tree: $UPSTREAM_RT_TREE_NAME"
 fi
 
-OS_BUILD_BASE_BRANCH="os-build"
-RT_REBASE=""
-
-if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
-   # no newer upstream branch to rebase onto, continue with an
-   # os-build stable tag
-   OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
-fi
 UPSTREAM_RT_PREV_BRANCH=""
 
 # verify the core branches exist or use provided defaults
 UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
-ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_AUTOMATED_BRANCH" "$OS_BUILD_BASE_BRANCH"
 ark_git_branch "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
 ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
 
-MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
-RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
 RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
 AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
 
-# sanity check, sometimes broken scripts leave a mess
-if test "$MASTER_RT_DEVEL_VER" != "$UPSTREAM_RT_DEVEL_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$RT_AUTOMATED_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER"; then
-   # rebase time
-   RT_REBASE="yes"
-fi
-
-## PREP the upstream branches
-# on a rebase, propogate all the git resets
-# fetch the determined rt-devel branch
-ark_git_mirror "$DOWNSTREAM_RT_BRANCH" "$UPSTREAM_RT_TREE_NAME" 
"$UPSTREAM_RT_DEVEL_BRANCH" "$RT_REBASE"
-# finally merge the two correct branches
-ark_git_merge "$OS_BUILD_BASE_BRANCH" "$RT_AUTOMATED_BRANCH" "$RT_REBASE"
-ark_git_merge "$DOWNSTREAM_RT_BRANCH" "$RT_AUTOMATED_BRANCH"
 # handle rebasing
 if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
"$UPSTREAM_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER";

[OS-BUILD PATCHv2 2/3] Add support for CI octopus merging

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add support for CI octopus merging

The intermediate branch rt-automated-devel was getting in the way as it
needed to be pushed with rt-devel and automotive-devel.  In prep to
remove that logic, add support for an octopus merge.

This requires creating another temporary branch for rebasing and
changing how ark_git_merge logic works.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -56,22 +56,23 @@ ark_git_mirror()
 # Merge wrapper in case issues arise
 ark_git_merge()
 {
-   source_branch="$1"
-   target_branch="$2"
-   reset_branch="$3"
+   # support octopus merging with source_branch 1|2
+
+   target_branch="$1"
+   source_branch1="$2"
+   source_branch2="$3"
 
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
-   ark_git_branch "$target_branch" "$source_branch"
+   ark_git_branch "$target_branch" "${source_branch1}"
git checkout "$target_branch"
-   if test -n "$reset_branch"; then
-   # there are cases when the initial merge is a reset
-   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
-   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+
+   msg="Merge '${source_branch1} ${source_branch2}' into '$target_branch'"
+   if ! git merge -m "$msg" "${source_branch1}" "${source_branch2}"; then
git merge --abort
printf "Merge conflict; halting!\n"
printf "To reproduce:\n"
printf "* git checkout %s\n" "${target_branch}"
-   printf "* git merge %s\n" "${source_branch}"
+   printf "* git merge %s\n" "${source_branch1} ${source_branch2}"
die "Merge conflicts"
fi
 
diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -111,6 +111,7 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
# os-build stable tag
OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
 fi
+UPSTREAM_RT_PREV_BRANCH=""
 
 # verify the core branches exist or use provided defaults
 UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
@@ -140,33 +141,48 @@ ark_git_mirror "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_DE
 # finally merge the two correct branches
 ark_git_merge "$OS_BUILD_BASE_BRANCH" "$RT_AUTOMATED_BRANCH" "$RT_REBASE"
 ark_git_merge "$DOWNSTREAM_RT_BRANCH" "$RT_AUTOMATED_BRANCH"
+# handle rebasing
+if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
+   "$UPSTREAM_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER"; then
+   # we need the previous rt branch for rebase purposes
+   UPSTREAM_RT_PREV_BRANCH="linux-${OS_BUILD_VER_prev}.y-rt"
+   git fetch -q "$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_PREV_BRANCH"
 
-## MERGE the upstream branches to the development branches
-if test -n "$RT_REBASE"; then
# handle the rebase
# rebases usually go from prev version to new version
-   # rebuild the prev merge base in case the previous automated one is
-   # corrupted.
+   # rebuild the prev merge base as it isn't saved.
+   # then rebuild the current merge base as it isn't saved either
+   # because we use an octopus merge below.
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
-   temp_branch="_temp_rt_devel_$(date +%F)"
-   git branch -D "$temp_branch" 2>/dev/null
-   git checkout -b "$temp_branch" "kernel-${OS_BUILD_VER_prev}.0-0"
-   git merge "$UPSTREAM_RT_TREE_NAME/linux-${OS_BUILD_VER_prev}.y-rt"
+   temp_prev_branch="_temp_prev_rt_devel_$(date +%F)"
+   git branch -D "$temp_prev_branch" 2>/dev/null
+   git fetch "$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_PREV_BRANCH"
+   git checkout -b "$temp_prev_branch" "kernel-${OS_BUILD_VER_prev}.0-0"
+   git merge "$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_PREV_BRANCH"
+
+   # create devel merge branch to base octopus merge on.
+   temp_devel_branch="_temp_devel_rt_devel_$(date +%F)"
+   git branch -D "$temp

[OS-BUILD PATCHv2 1/3] [redhat] New configs in drivers/hid

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Fedora Kernel Team 

[redhat] New configs in drivers/hid

Hi,

As part of the ongoing rebase effort, the following configuration
options need to be reviewed.

As a reminder, the ARK configuration flow involves moving unreviewed
configuration options from the pending directory to the ark directory.
In the diff below, options are removed from the pending directory and
added to the ark hierarchy. The final options that need to be ACKed
are the files that are being added to the ark hierarchy.

If the value for a file that is added should be changed, please reply
with a better option.

 Symbol: HID_MCP2200 [=n]
 Type  : tristate
 Defined at drivers/hid/Kconfig:1300
   Prompt: Microchip MCP2200 HID USB-to-GPIO bridge
   Depends on: HID_SUPPORT [=y] && HID [=y] && USB_HID [=y] && GPIOLIB [=y]
   Location:
 -> Device Drivers
   -> HID bus support (HID_SUPPORT [=y])
 -> HID bus core support (HID [=y])
   -> Special HID drivers
 -> Microchip MCP2200 HID USB-to-GPIO bridge (HID_MCP2200 [=n])

---

Signed-off-by: Fedora Kernel Team 

diff --git a/redhat/configs/pending-rhel/generic/CONFIG_HID_MCP2200 
b/redhat/configs/pending-rhel/generic/CONFIG_HID_MCP2200
deleted file mode 100644
index blahblah..blahblah 0
--- a/redhat/configs/pending-rhel/generic/CONFIG_HID_MCP2200
+++ /dev/null
@@ -1,15 +0,0 @@
-# Symbol: HID_MCP2200 [=n]
-# Type  : tristate
-# Defined at drivers/hid/Kconfig:1300
-#   Prompt: Microchip MCP2200 HID USB-to-GPIO bridge
-#   Depends on: HID_SUPPORT [=y] && HID [=y] && USB_HID [=y] && GPIOLIB [=y]
-#   Location:
-# -> Device Drivers
-#   -> HID bus support (HID_SUPPORT [=y])
-# -> HID bus core support (HID [=y])
-#   -> Special HID drivers
-# -> Microchip MCP2200 HID USB-to-GPIO bridge (HID_MCP2200 [=n])
-# 
-# 
-# 
-# CONFIG_HID_MCP2200 is not set
diff --git a/redhat/configs/rhel/generic/CONFIG_HID_MCP2200 
b/redhat/configs/rhel/generic/CONFIG_HID_MCP2200
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/rhel/generic/CONFIG_HID_MCP2200
@@ -0,0 +1 @@
+# CONFIG_HID_MCP2200 is not set

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2969
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 0/3] Fix nightly rt and automotive merging

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2969

The nightly rt merging cronjob immediately failed the second night because I
forgot to push the intermediary branch rt-automated-devel.  So when it got
rebuilt the next night from scratch it got merged into rt-devel and
automotive-devel in a way that required those branches to be forced pushed.
Not good for development.

The easy way is to push that branch but that requires re-pushing rt-devel and
automotive-devel.  Not hard.  Instead I wanted to remove that intermediary
branch leaving less complicated logic and rely on an octopus merge.  Should
work better now and simpler to read.

Signed-off-by: Don Zickus dzic...@redhat.com

---
 redhat/configs/pending-rhel/generic/CONFIG_HID_MCP2200 |  15 ---
 redhat/configs/rhel/generic/CONFIG_HID_MCP2200 |   1 +
 redhat/scripts/ci/ark-ci-env.sh|  19 ++--
 redhat/scripts/ci/ark-merge-rt.sh  |  81 +++--
 4 files changed, 46 insertions(+), 70 deletions(-)
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 1/2] Add support for CI octopus merging

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add support for CI octopus merging

The intermediate branch rt-automated-devel was getting in the way as it
needed to be pushed with rt-devel and automotive-devel.  In prep to
remove that logic, add support for an octopus merge.

This requires creating another temporary branch for rebasing and
changing how ark_git_merge logic works.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -56,22 +56,28 @@ ark_git_mirror()
 # Merge wrapper in case issues arise
 ark_git_merge()
 {
-   source_branch="$1"
-   target_branch="$2"
-   reset_branch="$3"
+   target_branch="$1"
+   branches="$2"
 
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
-   ark_git_branch "$target_branch" "$source_branch"
+
+   # support octopus merge with branches variable.
+   # can't find a better way to convert multi branch string into
+   # something consumable for git-merge.  So convert to array and feed
+   # the array to git-merge.  Ugly but it works.
+   read -r -a source_branch <<< "$branches"
+   ark_git_branch "$target_branch" "${source_branch[@]}"
git checkout "$target_branch"
-   if test -n "$reset_branch"; then
-   # there are cases when the initial merge is a reset
-   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
-   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+
+   # array causes headache to git-merge, use temp var msg
+   msg="Merge '${source_branch[@]}' into '$target_branch'"
+
+   if ! git merge -m "$msg" "${source_branch[@]}"; then
git merge --abort
printf "Merge conflict; halting!\n"
printf "To reproduce:\n"
printf "* git checkout %s\n" "${target_branch}"
-   printf "* git merge %s\n" "${source_branch}"
+   printf "* git merge %s\n" "${source_branch[@]}"
die "Merge conflicts"
fi
 
diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -111,6 +111,7 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
# os-build stable tag
OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
 fi
+UPSTREAM_RT_PREV_BRANCH=""
 
 # verify the core branches exist or use provided defaults
 UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
@@ -140,33 +141,48 @@ ark_git_mirror "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_DE
 # finally merge the two correct branches
 ark_git_merge "$OS_BUILD_BASE_BRANCH" "$RT_AUTOMATED_BRANCH" "$RT_REBASE"
 ark_git_merge "$DOWNSTREAM_RT_BRANCH" "$RT_AUTOMATED_BRANCH"
+# handle rebasing
+if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
+   "$UPSTREAM_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER"; then
+   # we need the previous rt branch for rebase purposes
+   UPSTREAM_RT_PREV_BRANCH="linux-${OS_BUILD_VER_prev}.y-rt"
+   git fetch -q "$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_PREV_BRANCH"
 
-## MERGE the upstream branches to the development branches
-if test -n "$RT_REBASE"; then
# handle the rebase
# rebases usually go from prev version to new version
-   # rebuild the prev merge base in case the previous automated one is
-   # corrupted.
+   # rebuild the prev merge base as it isn't saved.
+   # then rebuild the current merge base as it isn't saved either
+   # because we use an octopus merge below.
prev_branch="$(git rev-parse --abbrev-ref HEAD)"
-   temp_branch="_temp_rt_devel_$(date +%F)"
-   git branch -D "$temp_branch" 2>/dev/null
-   git checkout -b "$temp_branch" "kernel-${OS_BUILD_VER_prev}.0-0"
-   git merge "$UPSTREAM_RT_TREE_NAME/linux-${OS_BUILD_VER_prev}.y-rt"
+   temp_prev_branch="_temp_prev_rt_devel_$(date +%F)"
+   git branch -D "$temp_prev_branch" 2>/dev/null
+   git fetch "$UPSTREAM_RT_TREE_NAME" "$UPSTREAM_RT_PREV_BRANCH"
+   git checkout -b "$temp_prev_branch" "kernel-${OS_BUILD_VER_prev}.0-0"
+   git m

[OS-BUILD PATCH 2/2] Remove rt-automated and master-rt-devel logic

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Remove rt-automated and master-rt-devel logic

Rely on less branch logic to build and maintain the rt tree.  Using the
rt-automated-devel and master-rt-devel branches requires pushing them
and keeping them in sync.  With octopus merging, we don't need them and
can rely on temporary branches instead.

Remove the logic for those two branches.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -24,8 +24,6 @@ set -e
 #Upstream RT tree 
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
 
UPSTREAM_RT_TREE_URL="git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git"
 UPSTREAM_RT_TREE_NAME="linux-rt-devel"
-DOWNSTREAM_RT_BRANCH="master-rt-devel"
-RT_AUTOMATED_BRANCH="os-build-rt-automated"
 RT_DEVEL_BRANCH="os-build-rt-devel"
 AUTOMOTIVE_DEVEL_BRANCH="os-build-automotive-devel"
 
@@ -41,10 +39,6 @@ ark_git_mirror "master" "origin" "master"
 # make sure tags are available for git-describe to correctly work
 git fetch -t origin
 
-# upstream -rt devel branches are aligned with version numbers and are not
-# always up to date with master.  Figure out which branch to mirror based on
-# version number and existance.  We may have to trigger a rebase.
-
 # what are the current versions of rt-devel and os-build (use 'master' to
 # avoid fedora tagging of kernel-X.Y.0.0.)
 # use git tags which are always 'vX.Y-rcZ-aaa-gb' or 'vX.Y-aaa-gb'
@@ -94,56 +88,35 @@ get_prev_version()
 OS_BUILD_VER="$(get_upstream_version os-build)"
 OS_BUILD_VER_prev="$(get_prev_version "$OS_BUILD_VER")"
 
+# upstream -rt devel branches are aligned with version numbers and are not
+# always up to date with master.  Figure out which branch to mirror based on
+# version number and existance.  We may have to trigger a rebase.
+
 # check latest upstream RT branch
 if git fetch -q "$UPSTREAM_RT_TREE_NAME" "linux-${OS_BUILD_VER}.y-rt"; then
UPSTREAM_RT_DEVEL_VER="${OS_BUILD_VER}"
+   OS_BUILD_BASE_BRANCH="os-build"
 elif git fetch -q "$UPSTREAM_RT_TREE_NAME" "linux-${OS_BUILD_VER_prev}.y-rt"; 
then
UPSTREAM_RT_DEVEL_VER="${OS_BUILD_VER_prev}"
+   OS_BUILD_BASE_BRANCH="kernel-${UPSTREAM_RT_DEVEL_VER}.0-0"
 else
die "Neither version ($OS_BUILD_VER, $OS_BUILD_VER_prev) in upstream 
tree: $UPSTREAM_RT_TREE_NAME"
 fi
 
-OS_BUILD_BASE_BRANCH="os-build"
-RT_REBASE=""
-
-if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
-   # no newer upstream branch to rebase onto, continue with an
-   # os-build stable tag
-   OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
-fi
 UPSTREAM_RT_PREV_BRANCH=""
 
 # verify the core branches exist or use provided defaults
 UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
-ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_AUTOMATED_BRANCH" "$OS_BUILD_BASE_BRANCH"
 ark_git_branch "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
 ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
 
-MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
-RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
 RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
 AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
 
-# sanity check, sometimes broken scripts leave a mess
-if test "$MASTER_RT_DEVEL_VER" != "$UPSTREAM_RT_DEVEL_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$RT_AUTOMATED_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
-   "$MASTER_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER"; then
-   # rebase time
-   RT_REBASE="yes"
-fi
-
-## PREP the upstream branches
-# on a rebase, propogate all the git resets
-# fetch the determined rt-devel branch
-ark_git_mirror "$DOWNSTREAM_RT_BRANCH" "$UPSTREAM_RT_TREE_NAME" 
"$UPSTREAM_RT_DEVEL_BRANCH" "$RT_REBASE"
-# finally merge the two correct branches
-ark_git_merge "$OS_BUILD_BASE_BRANCH" "$RT_AUTOMATED_BRANCH" "$RT_REBASE"
-ark_git_merge "$DOWNSTREAM_RT_BRANCH" "$RT_AUTOMATED_BRANCH"
 # handle rebasing
 if test "$UPSTREAM_RT_DEVEL_VER" != "$RT_DEVEL_VER" -o \
"$UPSTREAM_RT_DEVEL_VER" != "$AUTOMOTIVE_DEVEL_VER";

[OS-BUILD PATCH 0/2] Fix nightly rt and automotive merging

2024-02-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2969

The nightly rt merging cronjob immediately failed the second night because I
forgot to push the intermediary branch rt-automated-devel.  So when it got
rebuilt the next night from scratch it got merged into rt-devel and
automotive-devel in a way that required those branches to be forced pushed.
Not good for development.

The easy way is to push that branch but that requires re-pushing rt-devel and
automotive-devel.  Not hard.  Instead I wanted to remove that intermediary
branch leaving less complicated logic and rely on an octopus merge.  Should
work better now and simpler to read.

Signed-off-by: Don Zickus dzic...@redhat.com

---
 redhat/scripts/ci/ark-ci-env.sh   |  24 +++
 redhat/scripts/ci/ark-merge-rt.sh |  81 --
 2 files changed, 50 insertions(+), 55 deletions(-)
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 0/0] rcutorture: Also force sched priority to timersd on boosting test.

2024-02-27 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2963
NOTE: Truncated patchset since committer email 'bige...@linutronix.de'
  does not match the submitter's GitLab public email address
  'dzic...@redhat.com'.
ksoftirqd is statically boosted to the priority level right above the
one of rcu_torture_boost() so that timers, which torture readers rely on,
get a chance to run while rcu_torture_boost() is polling.

However timers processing got split from ksoftirqd into their own kthread
(timersd) that isn't boosted. It has the same SCHED_FIFO low prio as
rcu_torture_boost() and therefore timers can't preempt it and may
starve.

The issue can be triggered in practice on v5.17.1-rt17 using:

./kvm.sh --allcpus --configs TREE04 --duration 10m --kconfig
"CONFIG_EXPERT=y CONFIG_PREEMPT_RT=y"

Fix this with statically boosting timersd just like is done with
ksoftirqd in commit
   ea6d962e80b61 ("rcutorture: Judge RCU priority boosting on grace periods,
not callbacks")

Suggested-by: Mel Gorman 
Cc: Sebastian Andrzej Siewior 
Cc: Thomas Gleixner 
Signed-off-by: Frederic Weisbecker 
Link: https://lkml.kernel.org/r/20220405010752.1347437-1-frede...@kernel.org
Signed-off-by: Sebastian Andrzej Siewior 

---
 Documentation/admin-guide/kernel-parameters.txt   |   12 +
 arch/arm/mm/fault.c   |6 +
 arch/arm/vfp/vfpmodule.c  |   74 +-
 arch/arm/Kconfig  |6 +-
 arch/arm64/Kconfig|1 +
 arch/powerpc/include/asm/stackprotector.h |7 +-
 arch/powerpc/kernel/traps.c   |7 +-
 arch/powerpc/kvm/Kconfig  |1 +
 arch/powerpc/platforms/pseries/Kconfig|1 +
 arch/powerpc/platforms/pseries/iommu.c|   31 +-
 arch/powerpc/Kconfig  |2 +
 arch/riscv/include/asm/thread_info.h  |2 +
 arch/riscv/Kconfig|2 +
 arch/x86/include/asm/thread_info.h|6 +-
 arch/x86/Kconfig  |3 +
 drivers/acpi/processor_idle.c |2 +-
 drivers/block/zram/zram_drv.c |   37 +
 drivers/block/zram/zram_drv.h |3 +
 drivers/gpu/drm/i915/display/intel_crtc.c |   15 +-
 drivers/gpu/drm/i915/display/intel_vblank.c   |   38 +-
 drivers/gpu/drm/i915/gt/uc/intel_guc.h|2 +-
 drivers/gpu/drm/i915/gt/intel_breadcrumbs.c   |5 +-
 drivers/gpu/drm/i915/gt/intel_execlists_submission.c  |   17 +-
 drivers/gpu/drm/i915/Kconfig  |1 -
 drivers/gpu/drm/i915/i915_request.c   |2 -
 drivers/gpu/drm/i915/i915_trace.h |6 +-
 drivers/gpu/drm/i915/i915_utils.h |2 +-
 drivers/tty/serial/8250/8250_core.c   |   42 +-
 drivers/tty/serial/8250/8250_port.c   |  160 +++-
 drivers/tty/serial/amba-pl011.c   |   12 +-
 drivers/tty/serial/omap-serial.c  |   12 +-
 drivers/tty/tty_io.c  |9 +-
 fs/proc/consoles.c|   14 +-
 include/linux/sched/idle.h|8 +-
 include/linux/bottom_half.h   |2 +
 include/linux/console.h   |  127 ++-
 include/linux/entry-common.h  |2 +-
 include/linux/entry-kvm.h |2 +-
 include/linux/interrupt.h |   29 +
 include/linux/netdevice.h |4 +
 include/linux/printk.h|   32 +-
 include/linux/sched.h |   13 +-
 include/linux/serial_8250.h   |6 +
 include/linux/serial_core.h   |   31 +-
 include/linux/thread_info.h   |   24 +
 include/linux/trace_events.h  |8 +-
 kernel/entry/common.c |4 +-
 kernel/entry/kvm.c|2 +-
 kernel/locking/lockdep.c  |5 +
 kernel/printk/internal.h  |   98 +
 kernel/printk/nbcon.c |  732 +-
 kernel/printk/printk.c|  675 ++--
 kernel/printk/printk_ringbuffer.c |  335 +-
 kernel/printk

Re: [OS-BUILD PATCHv3] Enable merge-rt pipeline

2024-02-16 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2942#note_1777020734

rebased to latest os-build head to grab the kunit fix for CKI testing.
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv3] Enable merge-rt pipeline

2024-02-16 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Enable merge-rt pipeline

Add the gitlab-ci.yaml changes to enable a scheduled pipeline.

Also modify the ark-merge-rt.sh script to use OS_BUILD_BASE as the base
for the rt and automotive branches if they don't already exist.  This
avoids the giant config creation output if we use upstream-rt as the
base and merge in os-build.  The problem with that output is it
overflows the gitlab ci output buffer and you can't see the full output.
This is only seen the first time it is created or when run locally for
the first time.

Signed-off-by: Don Zickus 

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index blahblah..blahblah 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -446,6 +446,16 @@ rawhide_release:
 - *only-os-build-schedule
 - if: $RAWHIDE_RELEASE == "true"
 
+merge_rt_automotive:
+  extends: .scheduled_setup
+  script:
+- git remote add linux-rt-devel 
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
+- DIST_PUSH=1 redhat/scripts/ci/ark-merge-rt.sh
+  retry: 2
+  rules:
+- *only-os-build-schedule
+- if: $RAWHIDE_RELEASE == "rt"
+
 test_makefile:
   image: quay.io/fedora/fedora:rawhide
   variables:
diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -103,18 +103,6 @@ else
die "Neither version ($OS_BUILD_VER, $OS_BUILD_VER_prev) in upstream 
tree: $UPSTREAM_RT_TREE_NAME"
 fi
 
-# verify the core branches exist or use provided defaults
-UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
-ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_AUTOMATED_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-
-MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
-RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
-RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
-AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
-
 OS_BUILD_BASE_BRANCH="os-build"
 RT_REBASE=""
 
@@ -124,6 +112,18 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
 fi
 
+# verify the core branches exist or use provided defaults
+UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
+ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_branch "$RT_AUTOMATED_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_branch "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+
+MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
+RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
+RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
+AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
+
 # sanity check, sometimes broken scripts leave a mess
 if test "$MASTER_RT_DEVEL_VER" != "$UPSTREAM_RT_DEVEL_VER" -o \
"$MASTER_RT_DEVEL_VER" != "$RT_AUTOMATED_VER" -o \

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2942
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv2] Enable merge-rt pipeline

2024-02-15 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2942#note_1775590899

Forgot to add DIST_PUSH=1 option to actually push the branches: os-build-rt-
automated, os-build-rt-devel, os-build-automotive-devel
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2] Enable merge-rt pipeline

2024-02-15 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Enable merge-rt pipeline

Add the gitlab-ci.yaml changes to enable a scheduled pipeline.

Also modify the ark-merge-rt.sh script to use OS_BUILD_BASE as the base
for the rt and automotive branches if they don't already exist.  This
avoids the giant config creation output if we use upstream-rt as the
base and merge in os-build.  The problem with that output is it
overflows the gitlab ci output buffer and you can't see the full output.
This is only seen the first time it is created or when run locally for
the first time.

Signed-off-by: Don Zickus 

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index blahblah..blahblah 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -446,6 +446,16 @@ rawhide_release:
 - *only-os-build-schedule
 - if: $RAWHIDE_RELEASE == "true"
 
+merge_rt_automotive:
+  extends: .scheduled_setup
+  script:
+- git remote add linux-rt-devel 
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
+- DIST_PUSH=1 redhat/scripts/ci/ark-merge-rt.sh
+  retry: 2
+  rules:
+- *only-os-build-schedule
+- if: $RAWHIDE_RELEASE == "rt"
+
 test_makefile:
   image: quay.io/fedora/fedora:rawhide
   variables:
diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -103,18 +103,6 @@ else
die "Neither version ($OS_BUILD_VER, $OS_BUILD_VER_prev) in upstream 
tree: $UPSTREAM_RT_TREE_NAME"
 fi
 
-# verify the core branches exist or use provided defaults
-UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
-ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_AUTOMATED_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-
-MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
-RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
-RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
-AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
-
 OS_BUILD_BASE_BRANCH="os-build"
 RT_REBASE=""
 
@@ -124,6 +112,18 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
 fi
 
+# verify the core branches exist or use provided defaults
+UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
+ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_branch "$RT_AUTOMATED_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_branch "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+
+MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
+RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
+RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
+AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
+
 # sanity check, sometimes broken scripts leave a mess
 if test "$MASTER_RT_DEVEL_VER" != "$UPSTREAM_RT_DEVEL_VER" -o \
"$MASTER_RT_DEVEL_VER" != "$RT_AUTOMATED_VER" -o \

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2942
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Enable merge-rt pipeline

2024-02-15 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2942#note_1775588099

Tested by hacking in test-os-build again (some day I will be smarter and use
@mh21's ideas): https://gitlab.com/cki-project/kernel-ark/-/jobs/6185272673
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH] Enable merge-rt pipeline

2024-02-15 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Enable merge-rt pipeline

Add the gitlab-ci.yaml changes to enable a scheduled pipeline.

Also modify the ark-merge-rt.sh script to use OS_BUILD_BASE as the base
for the rt and automotive branches if they don't already exist.  This
avoids the giant config creation output if we use upstream-rt as the
base and merge in os-build.  The problem with that output is it
overflows the gitlab ci output buffer and you can't see the full output.
This is only seen the first time it is created or when run locally for
the first time.

Signed-off-by: Don Zickus 

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index blahblah..blahblah 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -446,6 +446,16 @@ rawhide_release:
 - *only-os-build-schedule
 - if: $RAWHIDE_RELEASE == "true"
 
+merge_rt_automotive:
+  extends: .scheduled_setup
+  script:
+- git remote add linux-rt-devel 
git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git
+- redhat/scripts/ci/ark-merge-rt.sh
+  retry: 2
+  rules:
+- *only-os-build-schedule
+- if: $RAWHIDE_RELEASE == "rt"
+
 test_makefile:
   image: quay.io/fedora/fedora:rawhide
   variables:
diff --git a/redhat/scripts/ci/ark-merge-rt.sh 
b/redhat/scripts/ci/ark-merge-rt.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-merge-rt.sh
+++ b/redhat/scripts/ci/ark-merge-rt.sh
@@ -103,18 +103,6 @@ else
die "Neither version ($OS_BUILD_VER, $OS_BUILD_VER_prev) in upstream 
tree: $UPSTREAM_RT_TREE_NAME"
 fi
 
-# verify the core branches exist or use provided defaults
-UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
-ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_AUTOMATED_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$RT_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
-
-MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
-RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
-RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
-AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
-
 OS_BUILD_BASE_BRANCH="os-build"
 RT_REBASE=""
 
@@ -124,6 +112,18 @@ if test "$UPSTREAM_RT_DEVEL_VER" != "$OS_BUILD_VER"; then
OS_BUILD_BASE_BRANCH="kernel-${MASTER_RT_DEVEL_VER}.0-0"
 fi
 
+# verify the core branches exist or use provided defaults
+UPSTREAM_RT_DEVEL_BRANCH="linux-${UPSTREAM_RT_DEVEL_VER}.y-rt"
+ark_git_branch "$DOWNSTREAM_RT_BRANCH" 
"$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH"
+ark_git_branch "$RT_AUTOMATED_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_branch "$RT_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+ark_git_branch "$AUTOMOTIVE_DEVEL_BRANCH" "$OS_BUILD_BASE_BRANCH"
+
+MASTER_RT_DEVEL_VER="$(get_upstream_version "$DOWNSTREAM_RT_BRANCH")"
+RT_AUTOMATED_VER="$(get_upstream_version $RT_AUTOMATED_BRANCH)"
+RT_DEVEL_VER="$(get_upstream_version $RT_DEVEL_BRANCH)"
+AUTOMOTIVE_DEVEL_VER="$(get_upstream_version $AUTOMOTIVE_DEVEL_BRANCH)"
+
 # sanity check, sometimes broken scripts leave a mess
 if test "$MASTER_RT_DEVEL_VER" != "$UPSTREAM_RT_DEVEL_VER" -o \
"$MASTER_RT_DEVEL_VER" != "$RT_AUTOMATED_VER" -o \

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2942
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix dist-get-buildreqs breakage around perl(ExtUtils::Embed)

2024-02-05 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2924#note_1759026096

@tales-aparecida - hmm I did the double quote : sudo dnf install "$missing"
and dnf complained it couldn't find the package named: "\".  So it treats the list as a single package which doesn't work.
:-/
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH] Fix dist-get-buildreqs breakage around perl(ExtUtils::Embed)

2024-02-05 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Fix dist-get-buildreqs breakage around perl(ExtUtils::Embed)

CKI fails with

$ export missing=$(make dist-get-buildreqs | grep "Missing dependencies:" | cut 
-d":" -f2)
$ if [ "$missing" == "" ]; then echo "Missing dependencies should not be null 
but are empty. Review test log." && exit 1; fi;
$ dnf -y install $missing
Last metadata expiration check: 0:00:29 ago on Sat Feb  3 23:44:30 2024.
No match for argument: perl(ExtUtils
Error: Unable to find a match: perl(ExtUtils

This is because it was trying to "cut -d':' -f2" this line:
Missing dependencies:  perl(ExtUtils::Embed)

And it grabbed the content between the ':', leaving out ::Embed.  Easy
fix, convert cut's parameter '-f2' to '-f2-' to included everything
after the first ':'.

Running the command locally resolves the issue.

Signed-off-by: Don Zickus 

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index blahblah..blahblah 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -461,10 +461,10 @@ test_makefile:
 - git config user.name "Fedora Kernel Team"
 - git config user.email "kernel-t...@fedoraproject.org"
   script:
-- export missing=$(make dist-get-buildreqs | grep "Missing dependencies:" 
| cut -d":" -f2)
+- export missing=$(make dist-get-buildreqs | grep "Missing dependencies:" 
| cut -d":" -f2-)
 - if [ "$missing" == "" ]; then echo "Missing dependencies should not be 
null but are empty. Review test log." && exit 1; fi;
 - dnf -y install $missing
-- export missingafter=$(make dist-get-buildreqs | grep "Missing 
dependencies:" | cut -d":" -f2)
+- export missingafter=$(make dist-get-buildreqs | grep "Missing 
dependencies:" | cut -d":" -f2-)
 - if [ "$missingafter" != "" ]; then echo "Missing dependencies should be 
null but are $missingafter. Review test log." && exit 1; fi;
   rules:
 - *only-os-build-mr

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2924
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv11] Add new os-build targets: rt-devel and automotive-devel

2024-02-02 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge tag kernel-N.V.0-0 and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from os-build-stable (linux-stable) to linux
master again.

NOTE: The script uses kernel-N.V.0-0 which is rebased after os-build
linux-x.y GA is created but before linux-x.y+1 pre-rc1 merges happen.
The reason for this is because linux-stable-x.y doesn't exist until
linux-x.y+1-rc1 exists thus leaving linux-stable-x.y-1 in the meantime.
An awkward gap exists, use kernel-N.V.0-0 as the base.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Cleanup namespace pollution because shellcheck doesn't like 'local'.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -8,24 +8,188 @@ die()
 
 ci_pre_check()
 {
-   if test -n "${TO_PUSH}"; then
-   if test -z "${GITLAB_PROJECT_URL}" || test -z 
"$GITLAB_PROJECT_PUSHURL"; then
-   echo "To enable git-push, please run:"
-   echo "git remote add gitlab "
-   echo "git remote set-url --push gitlab "
+   if test -z "${GITLAB_PROJECT_URL}" || test -z 
"$GITLAB_PROJECT_PUSHURL"; then
+echo "To enable git-push, please run:"
+   echo "git remote add gitlab "
+   echo "git remote set-url --push gitlab "
+   if test -n "${TO_PUSH}"; then
die "Misconfigured 'gitlab' entry for git"
fi
 fi
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# wrapper around branches that may not be exist yet
+ark_git_branch()
+{
+   _target_branch="$1"
+   _source_branch="$2"
+
+   # switch to branch if it exists otherwise create and set to source
+   # branch
+   git show-ref -q --heads "$_target_branch" || \
+   git branch "$_target_branch" "$_source_branch"
+}
+
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch="$1"
+   upstream_tree="$2"
+   source_branch="$3"
+   reset_branch="$4"
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   ark_git_branch "$target_branch" "$remote_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch="$1"
+   target_branch="$2"
+   reset_branch="$3"
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   ark_git_branch "$target_branch" "$source_branch"
+   git checkout "$target_branch"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
&q

Re: [OS-BUILD PATCH 0/2] tools/rtla: Fix Makefile compiler options for clang

2024-02-01 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2918#note_1754196046

@scweaver @jmflinuxtx - this MR should address the clang issues until accepted
upstream.
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 2/2] tools/rv: Fix Makefile compiler options for clang

2024-02-01 Thread Don Zickus (via Email Bridge)
From: Daniel Bristot de Oliveira 

tools/rv: Fix Makefile compiler options for clang

The following errors are showing up when compiling rv with clang:

 $ make HOSTCC=clang CC=clang LLVM_IAS=1
 [...]
  clang -O -g -DVERSION=\"6.8.0-rc1\" -flto=auto -ffat-lto-objects
  -fexceptions -fstack-protector-strong -fasynchronous-unwind-tables
  -fstack-clash-protection  -Wall -Werror=format-security
  -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
  -Wno-maybe-uninitialized $(pkg-config --cflags libtracefs)
  -I include   -c -o src/utils.o src/utils.c
  clang: warning: optimization flag '-ffat-lto-objects' is not supported 
[-Wignored-optimization-argument]
  warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean 
'-Wno-uninitialized'? [-Wunknown-warning-option]
  1 warning generated.

  clang -o rv -ggdb  src/in_kernel.o src/rv.o src/trace.o src/utils.o 
$(pkg-config --libs libtracefs)
  src/in_kernel.o: file not recognized: file format not recognized
  clang: error: linker command failed with exit code 1 (use -v to see 
invocation)
  make: *** [Makefile:110: rv] Error 1

Solve these issues by:
  - removing -ffat-lto-objects and -Wno-maybe-uninitialized if using clang
  - informing the linker about -flto=auto

Reported-by: Donald Zickus 
Signed-off-by: Daniel Bristot de Oliveira 

diff --git a/tools/verification/rv/Makefile b/tools/verification/rv/Makefile
index blahblah..blahblah 100644
--- a/tools/verification/rv/Makefile
+++ b/tools/verification/rv/Makefile
@@ -28,10 +28,15 @@ FOPTS   :=  -flto=auto -ffat-lto-objects 
-fexceptions -fstack-protector-strong \
-fasynchronous-unwind-tables -fstack-clash-protection
 WOPTS  :=  -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 
-Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized
 
+ifeq ($(CC),clang)
+  FOPTS := $(filter-out -ffat-lto-objects, $(FOPTS))
+  WOPTS := $(filter-out -Wno-maybe-uninitialized, $(WOPTS))
+endif
+
 TRACEFS_HEADERS:= $$($(PKG_CONFIG) --cflags libtracefs)
 
 CFLAGS :=  -O -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(MOPTS) $(WOPTS) 
$(TRACEFS_HEADERS) $(EXTRA_CFLAGS) -I include
-LDFLAGS:=  -ggdb $(EXTRA_LDFLAGS)
+LDFLAGS:=  -flto=auto -ggdb $(EXTRA_LDFLAGS)
 LIBS   :=  $$($(PKG_CONFIG) --libs libtracefs)
 
 SRC:=  $(wildcard src/*.c)

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2918
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 0/2] tools/rtla: Fix Makefile compiler options for clang

2024-02-01 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2918

The following errors are showing up when compiling rtla with clang:

 $ make HOSTCC=clang CC=clang LLVM_IAS=1
 [...]

  clang -O -g -DVERSION=\"6.8.0-rc1\" -flto=auto -ffat-lto-objects
-fexceptions -fstack-protector-strong
-fasynchronous-unwind-tables -fstack-clash-protection  -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized
$(pkg-config --cflags libtracefs)-c -o src/utils.o src/utils.c

  clang: warning: optimization flag '-ffat-lto-objects' is not supported
[-Wignored-optimization-argument]
  warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean
'-Wno-uninitialized'? [-Wunknown-warning-option]
  1 warning generated.

  clang -o rtla -ggdb  src/osnoise.o src/osnoise_hist.o src/osnoise_top.o
  src/rtla.o src/timerlat_aa.o src/timerlat.o src/timerlat_hist.o
  src/timerlat_top.o src/timerlat_u.o src/trace.o src/utils.o $(pkg-config
--libs libtracefs)

  src/osnoise.o: file not recognized: file format not recognized
  clang: error: linker command failed with exit code 1 (use -v to see
invocation)
  make: *** [Makefile:110: rtla] Error 1

Solve these issues by:
  - removing -ffat-lto-objects and -Wno-maybe-uninitialized if using clang
  - informing the linker about -flto=auto

Reported-by: Donald Zickus 
Signed-off-by: Daniel Bristot de Oliveira 

---
 tools/tracing/rtla/Makefile|  7 ++-
 tools/verification/rv/Makefile |  7 ++-
 2 files changed, 12 insertions(+), 2 deletions(-)
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 1/2] tools/rtla: Fix Makefile compiler options for clang

2024-02-01 Thread Don Zickus (via Email Bridge)
From: Daniel Bristot de Oliveira 

tools/rtla: Fix Makefile compiler options for clang

The following errors are showing up when compiling rtla with clang:

 $ make HOSTCC=clang CC=clang LLVM_IAS=1
 [...]

  clang -O -g -DVERSION=\"6.8.0-rc1\" -flto=auto -ffat-lto-objects
-fexceptions -fstack-protector-strong
-fasynchronous-unwind-tables -fstack-clash-protection  -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized
$(pkg-config --cflags libtracefs)-c -o src/utils.o src/utils.c

  clang: warning: optimization flag '-ffat-lto-objects' is not supported 
[-Wignored-optimization-argument]
  warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean 
'-Wno-uninitialized'? [-Wunknown-warning-option]
  1 warning generated.

  clang -o rtla -ggdb  src/osnoise.o src/osnoise_hist.o src/osnoise_top.o
  src/rtla.o src/timerlat_aa.o src/timerlat.o src/timerlat_hist.o
  src/timerlat_top.o src/timerlat_u.o src/trace.o src/utils.o $(pkg-config 
--libs libtracefs)

  src/osnoise.o: file not recognized: file format not recognized
  clang: error: linker command failed with exit code 1 (use -v to see 
invocation)
  make: *** [Makefile:110: rtla] Error 1

Solve these issues by:
  - removing -ffat-lto-objects and -Wno-maybe-uninitialized if using clang
  - informing the linker about -flto=auto

Reported-by: Donald Zickus 
Signed-off-by: Daniel Bristot de Oliveira 

diff --git a/tools/tracing/rtla/Makefile b/tools/tracing/rtla/Makefile
index blahblah..blahblah 100644
--- a/tools/tracing/rtla/Makefile
+++ b/tools/tracing/rtla/Makefile
@@ -28,10 +28,15 @@ FOPTS   :=  -flto=auto -ffat-lto-objects 
-fexceptions -fstack-protector-strong \
-fasynchronous-unwind-tables -fstack-clash-protection
 WOPTS  :=  -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 
-Wp,-D_GLIBCXX_ASSERTIONS -Wno-maybe-uninitialized
 
+ifeq ($(CC),clang)
+  FOPTS := $(filter-out -ffat-lto-objects, $(FOPTS))
+  WOPTS := $(filter-out -Wno-maybe-uninitialized, $(WOPTS))
+endif
+
 TRACEFS_HEADERS:= $$($(PKG_CONFIG) --cflags libtracefs)
 
 CFLAGS :=  -O -g -DVERSION=\"$(VERSION)\" $(FOPTS) $(MOPTS) $(WOPTS) 
$(TRACEFS_HEADERS) $(EXTRA_CFLAGS)
-LDFLAGS:=  -ggdb $(EXTRA_LDFLAGS)
+LDFLAGS:=  -flto=auto -ggdb $(EXTRA_LDFLAGS)
 LIBS   :=  $$($(PKG_CONFIG) --libs libtracefs)
 
 SRC:=  $(wildcard src/*.c)

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2918
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv10] Add new os-build targets: rt-devel and automotive-devel

2024-01-27 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732#note_1746544615

rebased to drop an old commit @scweaver noticed.
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv10] Add new os-build targets: rt-devel and automotive-devel

2024-01-27 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge tag kernel-N.V.0-0 and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from os-build-stable (linux-stable) to linux
master again.

NOTE: The script uses kernel-N.V.0-0 which is rebased after os-build
linux-x.y GA is created but before linux-x.y+1 pre-rc1 merges happen.
The reason for this is because linux-stable-x.y doesn't exist until
linux-x.y+1-rc1 exists thus leaving linux-stable-x.y-1 in the meantime.
An awkward gap exists, use kernel-N.V.0-0 as the base.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Cleanup namespace pollution because shellcheck doesn't like 'local'.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -8,24 +8,188 @@ die()
 
 ci_pre_check()
 {
-   if test -n "${TO_PUSH}"; then
-   if test -z "${GITLAB_PROJECT_URL}" || test -z 
"$GITLAB_PROJECT_PUSHURL"; then
-   echo "To enable git-push, please run:"
-   echo "git remote add gitlab "
-   echo "git remote set-url --push gitlab "
+   if test -z "${GITLAB_PROJECT_URL}" || test -z 
"$GITLAB_PROJECT_PUSHURL"; then
+echo "To enable git-push, please run:"
+   echo "git remote add gitlab "
+   echo "git remote set-url --push gitlab "
+   if test -n "${TO_PUSH}"; then
die "Misconfigured 'gitlab' entry for git"
fi
 fi
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# wrapper around branches that may not be exist yet
+ark_git_branch()
+{
+   _target_branch="$1"
+   _source_branch="$2"
+
+   # switch to branch if it exists otherwise create and set to source
+   # branch
+   git show-ref -q --heads "$_target_branch" || \
+   git branch "$_target_branch" "$_source_branch"
+}
+
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch="$1"
+   upstream_tree="$2"
+   source_branch="$3"
+   reset_branch="$4"
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   ark_git_branch "$target_branch" "$remote_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch="$1"
+   target_branch="$2"
+   reset_branch="$3"
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   ark_git_branch "$target_branch" "$source_branch"
+   git checkout "$target_branch"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
&q

Re: [OS-BUILD PATCHv9 0/2] Add new os-build targets: rt-devel and automotive-devel

2024-01-27 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732#note_1746504005

Ugh shell check doesn't like 'local'.  ark_git_branch created namespace
pollution.  Re-arrange code to address it. :-/  This code is getting hacky but
hopefully once it runs and we gain confidence, we will have a baseline that
can be used to clean things up.
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv9 2/2] Add new os-build targets: rt-devel and automotive-devel

2024-01-27 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge tag kernel-N.V.0-0 and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from os-build-stable (linux-stable) to linux
master again.

NOTE: The script uses kernel-N.V.0-0 which is rebased after os-build
linux-x.y GA is created but before linux-x.y+1 pre-rc1 merges happen.
The reason for this is because linux-stable-x.y doesn't exist until
linux-x.y+1-rc1 exists thus leaving linux-stable-x.y-1 in the meantime.
An awkward gap exists, use kernel-N.V.0-0 as the base.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Cleanup namespace pollution because shellcheck doesn't like 'local'.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -8,24 +8,188 @@ die()
 
 ci_pre_check()
 {
-   if test -n "${TO_PUSH}"; then
-   if test -z "${GITLAB_PROJECT_URL}" || test -z 
"$GITLAB_PROJECT_PUSHURL"; then
-   echo "To enable git-push, please run:"
-   echo "git remote add gitlab "
-   echo "git remote set-url --push gitlab "
+   if test -z "${GITLAB_PROJECT_URL}" || test -z 
"$GITLAB_PROJECT_PUSHURL"; then
+echo "To enable git-push, please run:"
+   echo "git remote add gitlab "
+   echo "git remote set-url --push gitlab "
+   if test -n "${TO_PUSH}"; then
die "Misconfigured 'gitlab' entry for git"
fi
 fi
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# wrapper around branches that may not be exist yet
+ark_git_branch()
+{
+   _target_branch="$1"
+   _source_branch="$2"
+
+   # switch to branch if it exists otherwise create and set to source
+   # branch
+   git show-ref -q --heads "$_target_branch" || \
+   git branch "$_target_branch" "$_source_branch"
+}
+
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch="$1"
+   upstream_tree="$2"
+   source_branch="$3"
+   reset_branch="$4"
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   ark_git_branch "$target_branch" "$remote_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch="$1"
+   target_branch="$2"
+   reset_branch="$3"
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   ark_git_branch "$target_branch" "$source_branch"
+   git checkout "$target_branch"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
&q

[OS-BUILD PATCHv9 1/2] Add python3-pyyaml to buildreqs for kernel-docs

2024-01-27 Thread Don Zickus (via Email Bridge)
From: Justin M. Forbes 

Add python3-pyyaml to buildreqs for kernel-docs

Upstream commit f061c9f7d058f added a script to parse the Netlink YAML
specs and generate RST files.  As a result, we need python3-pyyaml for
"make htmldocs" to succeed.

Signed-off-by: Justin M. Forbes 

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -673,7 +673,7 @@ BuildRequires: bpftool
 BuildRequires: rsync
 %endif
 %if %{with_doc}
-BuildRequires: xmlto, asciidoc, python3-sphinx, python3-sphinx_rtd_theme
+BuildRequires: xmlto, asciidoc, python3-sphinx, python3-sphinx_rtd_theme, 
python3-pyyaml
 %endif
 %if %{with_sparse}
 BuildRequires: sparse

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv9 0/2] Add new os-build targets: rt-devel and automotive-devel

2024-01-27 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge linux-stable and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from linux-stable to linux master again.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

---
 redhat/scripts/ci/ark-ci-env.sh   |  178 -
 redhat/scripts/ci/ark-merge-rt.sh |  173 
 redhat/kernel.spec.template   |2 +-
 3 files changed, 345 insertions(+), 8 deletions(-)
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv8 0/2] Add new os-build targets: rt-devel and automotive-devel

2024-01-26 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732#note_1746337464

@scweaver - big update.  most of it is just using 'local'.  But alot more
robustness around missing branches.  Then the rebases keep breaking because
things are corrupted, so removed a bunch of fragile ideas.  Now the thing can
corrupt all its branches and rebuild itself successfully.  I think i just need
to add the .gitlab-ci.yaml changes for the cronjob piece.
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv8 2/2] Add new os-build targets: rt-devel and automotive-devel

2024-01-26 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge tag kernel-N.V.0-0 and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from os-build-stable (linux-stable) to linux
master again.

NOTE: The script uses kernel-N.V.0-0 which is rebased after os-build
linux-x.y GA is created but before linux-x.y+1 pre-rc1 merges happen.
The reason for this is because linux-stable-x.y doesn't exist until
linux-x.y+1-rc1 exists thus leaving linux-stable-x.y-1 in the meantime.
An awkward gap exists, use kernel-N.V.0-0 as the base.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -8,24 +8,188 @@ die()
 
 ci_pre_check()
 {
-   if test -n "${TO_PUSH}"; then
-   if test -z "${GITLAB_PROJECT_URL}" || test -z 
"$GITLAB_PROJECT_PUSHURL"; then
-   echo "To enable git-push, please run:"
-   echo "git remote add gitlab "
-   echo "git remote set-url --push gitlab "
+   if test -z "${GITLAB_PROJECT_URL}" || test -z 
"$GITLAB_PROJECT_PUSHURL"; then
+echo "To enable git-push, please run:"
+   echo "git remote add gitlab "
+   echo "git remote set-url --push gitlab "
+   if test -n "${TO_PUSH}"; then
die "Misconfigured 'gitlab' entry for git"
fi
 fi
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# wrapper around branches that may not be exist yet
+ark_git_branch()
+{
+   local target_branch="$1"
+   local source_branch="$2"
+
+   # switch to branch if it exists otherwise create and set to source
+   # branch
+   git show-ref -q --heads "$target_branch" || \
+   git branch "$target_branch" "$source_branch"
+}
+
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   local target_branch="$1"
+   local upstream_tree="$2"
+   local source_branch="$3"
+   local reset_branch="$4"
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   ark_git_branch "$target_branch" "$remote_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   local source_branch="$1"
+   local target_branch="$2"
+   local reset_branch="$3"
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   ark_git_branch "$target_branch" "$source_branch"
+   git checkout "$target_branch"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+

[OS-BUILD PATCHv8 1/2] Add python3-pyyaml to buildreqs for kernel-docs

2024-01-26 Thread Don Zickus (via Email Bridge)
From: Justin M. Forbes 

Add python3-pyyaml to buildreqs for kernel-docs

Upstream commit f061c9f7d058f added a script to parse the Netlink YAML
specs and generate RST files.  As a result, we need python3-pyyaml for
"make htmldocs" to succeed.

Signed-off-by: Justin M. Forbes 

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -673,7 +673,7 @@ BuildRequires: bpftool
 BuildRequires: rsync
 %endif
 %if %{with_doc}
-BuildRequires: xmlto, asciidoc, python3-sphinx, python3-sphinx_rtd_theme
+BuildRequires: xmlto, asciidoc, python3-sphinx, python3-sphinx_rtd_theme, 
python3-pyyaml
 %endif
 %if %{with_sparse}
 BuildRequires: sparse

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv8 0/2] Add new os-build targets: rt-devel and automotive-devel

2024-01-26 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge linux-stable and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from linux-stable to linux master again.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

---
 redhat/scripts/ci/ark-ci-env.sh   |  178 -
 redhat/scripts/ci/ark-merge-rt.sh |  173 
 redhat/kernel.spec.template   |2 +-
 3 files changed, 345 insertions(+), 8 deletions(-)
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv8 0/3] redhat/Makefile: fix and clean up some of the logic

2024-01-23 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2892#note_1738665872

hopefully this makes it easier to limits regenerating a duplicate tarball
because they are in redhat/, not that they are slow to generate.  We do
similar things for TARBALL as that takes much longer.
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv7] Add new os-build targets: rt-devel and automotive-devel

2024-01-22 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge tag kernel-N.V.0-0 and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from os-build-stable (linux-stable) to linux
master again.

NOTE: The script uses kernel-N.V.0-0 which is rebased after os-build
linux-x.y GA is created but before linux-x.y+1 pre-rc1 merges happen.
The reason for this is because linux-stable-x.y doesn't exist until
linux-x.y+1-rc1 exists thus leaving linux-stable-x.y-1 in the meantime.
An awkward gap exists, use kernel-N.V.0-0 as the base.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -19,6 +19,156 @@ ci_pre_check()
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch=$1
+   upstream_tree=$2
+   source_branch=$3
+   reset_branch=$4
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch=$1
+   target_branch=$2
+   reset_branch=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${target_branch}"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+   git merge --abort
+   printf "Merge conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${target_branch}"
+   printf "* git merge %s\n" "${source_branch}"
+   die "Merge conflicts"
+   fi
+
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_git_rebase()
+{
+   branch=$1
+   upstream=$2
+   base=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+   if ! git rebase --onto "$base" "$upstream"; then
+   git rebase --abort
+   printf "Rebase conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${branch}"
+   printf "* git rebase --onto %s %s\n" "${base}" "${upstream}"
+   die "Rebase conflicts"
+   fi
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_update_configs()
+{
+   branch=$1
+   skip_configs=$2
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+
+   # Generates and commits all the pending configs
+   make -j FLAVOR=fedora dist-configs-commit
+   # Skip executing gen_config_patches.sh for new Fed

[OS-BUILD PATCHv6] Add new os-build targets: rt-devel and automotive-devel

2024-01-22 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge tag kernel-N.V.0-0 and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from os-build-stable (linux-stable) to linux
master again.

NOTE: The script uses kernel-N.V.0-0 which is rebased after os-build
linux-x.y GA is created but before linux-x.y+1 pre-rc1 merges happen.
The reason for this is because linux-stable-x.y doesn't exist until
linux-x.y+1-rc1 exists thus leaving linux-stable-x.y-1 in the meantime.
An awkward gap exists, use kernel-N.V.0-0 as the base.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -19,6 +19,156 @@ ci_pre_check()
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch=$1
+   upstream_tree=$2
+   source_branch=$3
+   reset_branch=$4
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   git checkout "$target_branch"
+   git fetch -t "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch=$1
+   target_branch=$2
+   reset_branch=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${target_branch}"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+   git merge --abort
+   printf "Merge conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${target_branch}"
+   printf "* git merge %s\n" "${source_branch}"
+   die "Merge conflicts"
+   fi
+
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_git_rebase()
+{
+   branch=$1
+   upstream=$2
+   base=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+   if ! git rebase --onto "$base" "$upstream"; then
+   git rebase --abort
+   printf "Rebase conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${branch}"
+   printf "* git rebase --onto %s %s\n" "${base}" "${upstream}"
+   die "Rebase conflicts"
+   fi
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_update_configs()
+{
+   branch=$1
+   skip_configs=$2
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+
+   # Generates and commits all the pending configs
+   make -j FLAVOR=fedora dist-configs-commit
+   # Skip executing gen_config_patches.sh for new Fed

Re: [OS-BUILD PATCHv5] Add new os-build targets: rt-devel and automotive-devel

2024-01-17 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732#note_1731611711

I had to refine my definition of 'stable' branch.  Things are working now.
Still fails periodically, but luckily won't do any damage and instead just
aborts the script.
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv5] Add new os-build targets: rt-devel and automotive-devel

2024-01-17 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge os-build-stable and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from os-build-stable (linux-stable) to linux
master again.

NOTE: The script uses os-build-stable which is rebased after os-build
linux-x.y GA is created but before linux-x.y+1 pre-rc1 merges happen.
The reason for this is because linux-stable-x.y doesn't exist until
linux-x.y+1-rc1 exists thus leaving linux-stable-x.y-1 in the meantime.
An awkward gap exists, use os-build-stable as the base.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -19,6 +19,156 @@ ci_pre_check()
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch=$1
+   upstream_tree=$2
+   source_branch=$3
+   reset_branch=$4
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch=$1
+   target_branch=$2
+   reset_branch=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${target_branch}"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+   git merge --abort
+   printf "Merge conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${target_branch}"
+   printf "* git merge %s\n" "${source_branch}"
+   die "Merge conflicts"
+   fi
+
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_git_rebase()
+{
+   branch=$1
+   upstream=$2
+   base=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+   if ! git rebase --onto "$base" "$upstream"; then
+   git rebase --abort
+   printf "Rebase conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${branch}"
+   printf "* git rebase --onto %s %s\n" "${base}" "${upstream}"
+   die "Rebase conflicts"
+   fi
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_update_configs()
+{
+   branch=$1
+   skip_configs=$2
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+
+   # Generates and commits all the pending configs
+   make -j FLAVOR=fedora dist-configs-commit
+   # Skip executing gen_config_patches.sh for new Fed

[OS-BUILD PATCHv4] Add new os-build targets: rt-devel and automotive-devel

2024-01-15 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge linux-stable and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from linux-stable to linux master again.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -19,6 +19,156 @@ ci_pre_check()
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch=$1
+   upstream_tree=$2
+   source_branch=$3
+   reset_branch=$4
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch=$1
+   target_branch=$2
+   reset_branch=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${target_branch}"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+   git merge --abort
+   printf "Merge conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${target_branch}"
+   printf "* git merge %s\n" "${source_branch}"
+   die "Merge conflicts"
+   fi
+
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_git_rebase()
+{
+   branch=$1
+   upstream=$2
+   base=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+   if ! git rebase --onto "$base" "$upstream"; then
+   git rebase --abort
+   printf "Rebase conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${branch}"
+   printf "* git rebase --onto %s %s\n" "${base}" "${upstream}"
+   die "Rebase conflicts"
+   fi
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_update_configs()
+{
+   branch=$1
+   skip_configs=$2
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+
+   # Generates and commits all the pending configs
+   make -j FLAVOR=fedora dist-configs-commit
+   # Skip executing gen_config_patches.sh for new Fedora configs
+
+   old_head="$(git rev-parse HEAD)"
+   make -j FLAVOR=rhel dist-configs-commit
+   new_head="$(git rev-parse HEAD)"
+
+
+   # Converts each new pending config from above into its finalized git
+   # configs// branch.  These commits are used for Merge
+   # Requests.
+   [ "$old_head" != "$new_head&qu

Re: [OS-BUILD PATCHv3 0/0] Add new os-build targets: rt-devel and automotive-devel

2024-01-15 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732#note_1728267647

/block

Need to figure out how to make os-build-stable from upstream stable.  linux-
rolling-stable??
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv3 0/0] Add new os-build targets: rt-devel and automotive-devel

2024-01-15 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732#note_1728267406

Updated script to handle -rc0 versioning.
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH 0/0] redhat: scripts: An automation script for disabling unused driver for x86

2023-12-07 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2832#note_1684727952

Right so you are kinda stuck and you default to on.  Ok, I get your data
source comment now (which is sorta the same as my who-decides-unnecessary
comment).I would have thought drivers like these with no intention going
on x86 would state that in the Kconfig, but perhaps they are stuck with the
same reasoning: why limit it?

So yeah, I am scratching my head how do we audit @hpa1 's list?
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH 0/0] redhat: scripts: An automation script for disabling unused driver for x86

2023-12-07 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2832#note_1684685920

This seems to conflict with Fedora's principle here a little.  I believe
Fedora purposely enables all drivers for an arch and thus is not interested in
package size.  The idea is that Fedora can cater to anyone who has the
hardware (and the distro maintenance is low).  Forcing the options off, while
it makes sense makes me wonder what the line in Fedora is for
enabling/disabling drivers?  ELN/RHEL it is obvious: support.  I feel like I
am missing an angle here.  Re-reading the changelog multiple times (I can
follow the logic), I think I am stuck on who decides 'unnecessary'?  Perhaps I
am not convinced of the problem statement (I think if I was, the approach
makes sense and I would have to think if that is a reasonable implementation).
I don't know.  Help?
--
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv2] Fix binutils breakage

2023-11-06 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1636180680

@vmalikrh - i just pushed v3, can you double check it matches your
expectations?
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2] Fix binutils breakage

2023-11-06 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Fix binutils breakage

The binutils package in Rawhide has stricter checks about PIE/PIC code
and will start reporting errors if it detects mixing and matching no-PIE
with PIE binaries (especially around bpf binaries).

Example errors look like:

/usr/bin/ld: /tmp/ccL7dkfR.o: relocation R_X86_64_32S against `.rodata'
can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status

Fix this by adding more CFLAGS to force PIE/PIC generated binaries to
bpf releated selftests, tools and samples.

This patch was provided by Carlos O'Donell and understands how it works.
I am just the middle man.

All -fPIE errors are resolved except for one about libbpf.a.  The static
version of the library doesn't take CFLAGS so it can't be forced to
build with PIE/PIC.  This error is ignored by the spec file, so it is
ignored by this patch too.

Signed-off-by: Don Zickus 

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -2769,7 +2769,7 @@ if [ ! -f include/generated/autoconf.h ]; then
%{make} %{?_smp_mflags} modules_prepare
 fi
 
-%{make} %{?_smp_mflags} ARCH=$Arch V=1 M=samples/bpf/ 
VMLINUX_H="${RPM_VMLINUX_H}" || true
+%{make} %{?_smp_mflags} TPROGS_USER_CFLAGS="%{?build_hostcflags}" 
TPROGS_USER_LDFLAGS="%{?build_hostldflags}" EXTRA_CFLAGS="%{?build_hostcflags}" 
EXTRA_LDFLAGS="%{?build_hostldflags}" ARCH=$Arch V=1 M=samples/bpf/ 
VMLINUX_H="${RPM_VMLINUX_H}" || true
 
 # Prevent bpf selftests to build bpftool repeatedly:
 export BPFTOOL=$(pwd)/tools/bpf/bpftool/bpftool
@@ -2783,7 +2783,7 @@ pushd tools/testing/selftests
   force_targets=""
 %endif
 
-%{make} %{?_smp_mflags} ARCH=$Arch V=1 TARGETS="bpf mm livepatch net 
net/forwarding net/mptcp netfilter tc-testing memfd drivers/net/bonding" 
SKIP_TARGETS="" $force_targets 
INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests VMLINUX_H="${RPM_VMLINUX_H}" 
install
+%{make} %{?_smp_mflags} USERCFLAGS="%{?build_hostcflags}" 
USERLDFLAGS="%{?build_hostldflags}" ARCH=$Arch V=1 TARGETS="bpf mm livepatch 
net net/forwarding net/mptcp netfilter tc-testing memfd drivers/net/bonding" 
SKIP_TARGETS="" $force_targets 
INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests VMLINUX_H="${RPM_VMLINUX_H}" 
install
 
 # 'make install' for bpf is broken and upstream refuses to fix it.
 # Install the needed files manually.

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH] Fix s390 zfcpfdump bpf build failures for cgroups

2023-11-06 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Fix s390 zfcpfdump bpf build failures for cgroups

BPF fails to build under s390's zfcpdump variant because cgroups is
disabled.  Zfcpdump is a dump kernel and isn't expected to run bpf.
Just disable bpf for that kernel variant.

Signed-off-by: Don Zickus 

diff --git 
a/redhat/configs/pending-rhel/generic/s390x/zfcpdump/CONFIG_BPF_SYSCALL 
b/redhat/configs/rhel/generic/s390x/zfcpdump/CONFIG_BPF_SYSCALL
rename from 
redhat/configs/pending-rhel/generic/s390x/zfcpdump/CONFIG_BPF_SYSCALL
rename to redhat/configs/rhel/generic/s390x/zfcpdump/CONFIG_BPF_SYSCALL
index blahblah..blahblah 100644
--- a/redhat/configs/pending-rhel/generic/s390x/zfcpdump/CONFIG_BPF_SYSCALL
+++ b/redhat/configs/rhel/generic/s390x/zfcpdump/CONFIG_BPF_SYSCALL

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2812
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2] [Scheduled job] Catch config mismatches early during upstream merge

2023-10-30 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

[Scheduled job] Catch config mismatches early during upstream merge

When merging the upstream git tree, the process commits all the new
configs to the -pending directory.  However, it needs another pass to
catch any new mismatches resulting in those new config settings.

This just adds another step, 'make dist-configs-check' to catch those
problems before we blindly merge the upstream tree.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-update-configs.sh 
b/redhat/scripts/ci/ark-update-configs.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-update-configs.sh
+++ b/redhat/scripts/ci/ark-update-configs.sh
@@ -67,6 +67,9 @@ old_head="$(git rev-parse HEAD)"
 make FLAVOR=rhel dist-configs-commit
 new_head="$(git rev-parse HEAD)"
 
+# check for config mismatches after setting configs in the commit step above
+make dist-configs-check || die "Config mismatch detected"
+
 # Converts each new pending config from above into its finalized git
 # configs// branch.  These commits are used for Merge
 # Requests.

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2768
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH] [Scheduled job] Catch config mismatches early during upstream merge

2023-10-30 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

[Scheduled job] Catch config mismatches early during upstream merge

When merging the upstream git tree, the process commits all the new
configs to the -pending directory.  However, it needs another pass to
catch any new mismatches resulting in those new config settings.

This just adds another step, 'make dist-configs-check' to catch those
problems before we blindly merge the upstream tree.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-update-configs.sh 
b/redhat/scripts/ci/ark-update-configs.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-update-configs.sh
+++ b/redhat/scripts/ci/ark-update-configs.sh
@@ -67,6 +67,9 @@ old_head="$(git rev-parse HEAD)"
 make FLAVOR=rhel dist-configs-commit
 new_head="$(git rev-parse HEAD)"
 
+# check for config mismatches after setting configs in the commit step above
+make dist-configs-check
+
 # Converts each new pending config from above into its finalized git
 # configs// branch.  These commits are used for Merge
 # Requests.

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2768
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-25 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1619009596

@codonell-rh - throwing the ball back into your court for above issue ^^
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-24 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1617007832

@vmalikrh - were you able to push patches upstream?  we were looking to bring
them in prematurely for ARK until upstream merges them.  This helps move
binutils forward.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-20 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1612950237

@vmalikrh thanks for the fixes!  I tried your suggestions and got this new
error:

```plaintext
+ /usr/bin/make -s 'HOSTCFLAGS=-O2  -fexceptions -g -grecord-gcc-switches
-pipe -Wall -Werror=format-security -Werror=implicit-function-declaration
-Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3
-Wp,-D_GLIBCXX_ASSERTIONS -
specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -march=x86-64-v3
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-
protection   ' 'HOSTLDF
LAGS=-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1
-specs=/usr/lib/rpm/redhat/redhat-package-notes ' -j8 'TPROGS_USER_CFLAGS=-O2
-fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security
-Werror=implicit-function-declaration -Werror=implicit-int
-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-har
dened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-
cc1  -m64  -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables
-fstack-clash-protection -fcf-protection   ' 'TPROGS_USER_LDFLAGS=-Wl,-z,relro
-Wl,--as-n
eeded  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1
-specs=/usr/lib/rpm/redhat/redhat-package-notes ' 'EXTRA_CFLAGS=-O2
-fexceptions -g -grecord-gcc-switches
-pipe -Wall -Werror=format-security -Werror=implicit-function-declaration
-Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3
-Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-fstack-protector-strong -sp
ecs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -march=x86-64-v3
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-
protection   ' 'EXTRA_LDFLAGS=-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now
-specs=/usr/lib/rpm/redhat
/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--
build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' ARCH=x86_64
V=1 M=samples/bpf/ VMLINUX_H=
  CLANG-bpf  samples/bpf/sockex1_kern.o
cc1: error: code model kernel does not support PIC mode
make[2]: *** [scripts/Makefile.build:116: samples/bpf/syscall_nrs.s] Error 1
make[2]: *** Waiting for unfinished jobs

```

Removing the EXTRA\_\* removes that error and reverts back to the previous
missing -fPIE warning.  I also somehow messed up my env such that I can't even
build an rpm any more.  I will have to poke at that.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH 0/2] random: Add hook to override device reads and getrandom(2)

2023-10-19 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2757#note_1611091360

@herbert.xu2 thanks!  Is there a reason why this isn't pushed upstream and
needs to be RHEL-only?  (We ask on all RHEL-only patches).
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-18 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1609196658

I guess I spoke too soon, moving the TPROGS_xxx before make still causes rpm
to fail.  hmm...
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-18 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1609190998

@hertonrk-rh @vmalikrh - moving TPROGS_xxx to before make resolved my missing
includes issue.  But I see what @vmalikrh means for that one target.

The rpm still builds, so I think we could move forward with this approach
independently of when Viktor gets this change upstream.  I still need the
TPROGS_LDFLAGS change though.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-17 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1607846588

@codonell-rh @vmalikrh - patching samples/bpf/Makefile (add quotes around
TPROGS_LDFLAGS) allowed me to use TPROGS_LDFLAGS correctly.

@vmalikrh - who to send this patch to upstream? I assume they will take it?

diff --git a/samples/bpf/Makefile b/samples/bpf/Makefile
index 4ccf4236031c..053f148e4b52 100644
--- a/samples/bpf/Makefile
+++ b/samples/bpf/Makefile
@@ -247,7 +247,7 @@ clean:
 $(LIBBPF): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) |
$(LIBBPF_OUTPUT)
 # Fix up variables inherited from Kbuild that tools/ build system won't like
$(MAKE) -C $(LIBBPF_SRC) RM='rm -rf' EXTRA_CFLAGS="$(TPROGS_CFLAGS)" \
-   LDFLAGS=$(TPROGS_LDFLAGS) srctree=$(BPF_SAMPLES_PATH)/../../ \
+   LDFLAGS="$(TPROGS_LDFLAGS)" srctree=$(BPF_SAMPLES_PATH)/../../
\
O= OUTPUT=$(LIBBPF_OUTPUT)/ DESTDIR=$(LIBBPF_DESTDIR) prefix=
\
$@ install_headers
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-17 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1607668819

@codonell-rh Sure.  Just struggling to figure out how to workaround that.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-16 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1605950727

For some reason adding the TPRROGS_LDFLAGS creates an ld usage failure.

+ /usr/bin/make -s 'HOSTCFLAGS=-O2  -fexceptions -g -grecord-gcc-switches
-pipe -Wall -Werror=format-security -Werror=implicit-function-declaration
-Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3
-Wp,-D_GLIBCXX_ASSERTIONS -
specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -march=x86-64-v3
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-
protection   ' 'HOSTLDF
LAGS=-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now
-specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1
-specs=/usr/lib/rpm/redhat/redhat-package-notes ' -j8 'TPROGS_CFLAGS=-O2
-fexc
eptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security
-Werror=implicit-function-declaration -Werror=implicit-int
-Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened
-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
-m64  -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-
clash-protection -fcf-protection   ' 'TPROGS_LDFLAGS=-Wl,-z,relro -Wl,--as-
needed  -Wl
,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1
-specs=/usr/lib/rpm/redhat/redhat-package-notes ' ARCH=x86_64 V=1
M=samples/bpf/ VMLINUX_H=
/usr/bin/make: invalid option -- 'c'
/usr/bin/make: invalid option -- '='
/usr/bin/make: invalid option -- '/'
/usr/bin/make: invalid option -- 'u'
/usr/bin/make: invalid option -- '/'
/usr/bin/make: invalid option -- 'c'
/usr/bin/make: invalid option -- '='
/usr/bin/make: invalid option -- '/'
/usr/bin/make: invalid option -- 'u'
/usr/bin/make: invalid option -- '/'
/usr/bin/make: invalid option -- 'c'
/usr/bin/make: invalid option -- '='
/usr/bin/make: invalid option -- '/'
/usr/bin/make: invalid option -- 'u'
/usr/bin/make: invalid option -- '/'
Usage: make [options] [target] ...
Options:
  -b, -m  Ignored for compatibility.
  -B, --always-make   Unconditionally make all targets.
  -C DIRECTORY, --directory=DIRECTORY
  Change to DIRECTORY before doing anything.
  -d  Print lots of debugging information.
  --debug[=FLAGS] Print various types of debugging information.
  -e, --environment-overrides
  Environment variables override makefiles.
  -E STRING, --eval=STRINGEvaluate STRING as a makefile statement.
  -f FILE, --file=FILE, --makefile=FILE
  Read FILE as a makefile.
  -h, --help  Print this message and exit.
  -i, --ignore-errors Ignore errors from recipes.
  -I DIRECTORY, --include-dir=DIRECTORY
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH] Fix binutils breakage

2023-10-13 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_1602503582

@vmalikrh - FYI as the approval rules won't automatically add you.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH] Fix binutils breakage

2023-10-13 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Fix binutils breakage

The binutils package in Rawhide has stricter checks about PIE/PIC code
and will start reporting errors if it detects mixing and matching no-PIE
with PIE binaries (especially around bpf binaries).

Example errors look like:

/usr/bin/ld: /tmp/ccL7dkfR.o: relocation R_X86_64_32S against `.rodata'
can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: failed to set dynamic section sizes: bad value
collect2: error: ld returned 1 exit status

Fix this by adding more CFLAGS to force PIE/PIC generated binaries to
bpf releated selftests, tools and samples.

This patch was provided by Carlos O'Donell and understands how it works.
I am just the middle man.

All -fPIE errors are resolved except for one about libbpf.a.  The static
version of the library doesn't take CFLAGS so it can't be forced to
build with PIE/PIC.  This error is ignored by the spec file, so it is
ignored by this patch too.

Signed-off-by: Don Zickus 

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -2769,7 +2769,7 @@ if [ ! -f include/generated/autoconf.h ]; then
%{make} %{?_smp_mflags} modules_prepare
 fi
 
-%{make} %{?_smp_mflags} ARCH=$Arch V=1 M=samples/bpf/ 
VMLINUX_H="${RPM_VMLINUX_H}" || true
+%{make} %{?_smp_mflags} TPROGS_CFLAGS="%{?build_hostcflags}" ARCH=$Arch V=1 
M=samples/bpf/ VMLINUX_H="${RPM_VMLINUX_H}" || true
 
 # Prevent bpf selftests to build bpftool repeatedly:
 export BPFTOOL=$(pwd)/tools/bpf/bpftool/bpftool
@@ -2783,7 +2783,7 @@ pushd tools/testing/selftests
   force_targets=""
 %endif
 
-%{make} %{?_smp_mflags} ARCH=$Arch V=1 TARGETS="bpf mm livepatch net 
net/forwarding net/mptcp netfilter tc-testing memfd drivers/net/bonding" 
SKIP_TARGETS="" $force_targets 
INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests VMLINUX_H="${RPM_VMLINUX_H}" 
install
+%{make} %{?_smp_mflags} USERCFLAGS="%{?build_hostcflags}" 
USERLDFLAGS="%{?build_hostldflags}" ARCH=$Arch V=1 TARGETS="bpf mm livepatch 
net net/forwarding net/mptcp netfilter tc-testing memfd drivers/net/bonding" 
SKIP_TARGETS="" $force_targets 
INSTALL_PATH=%{buildroot}%{_libexecdir}/kselftests VMLINUX_H="${RPM_VMLINUX_H}" 
install
 
 # 'make install' for bpf is broken and upstream refuses to fix it.
 # Install the needed files manually.

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv5 0/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1590319086

@jstancek with your ack, can I assume this is resolved?
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv5 0/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1590321109

@ptalbert what does Merge Warning mean?  I rebased this to top of tree for os-
build.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv5 0/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1590162968

updated with Jan's suggestion about 'cp %{SOURCE3001} .'
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv5 3/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add clang config framework

Compiling for clang is getting trickier to do because the configs are
different than gcc in some cases.  Mimic the kgcov framework (which uses
priority files) to setup clang to be easier to update their configs.

This leads to strange cases where clang debug configs need different
settings than clang non-debug configs.  The priority.snip can handle the
variety of partial snippets for variants and arches well, the
kernel.spec needed to be updated to apply it reasonably.

I created a generic partial snippet loop that focuses on arch and
non-debug vs debug.  This required adding debug options to
priority.snip.  Once implemented it is a matter of collecting the
snippets and applying them based on arch and debug.  This should provide
a variety of flexibility for teams like clang and make it easier to roll
in config changes based on which compiler is used.

Signed-off-by: Don Zickus 

diff --git a/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK 
b/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK
@@ -0,0 +1 @@
+CONFIG_KASAN_STACK=y
diff --git a/redhat/configs/common/clang/debug/CONFIG_KMSAN 
b/redhat/configs/common/clang/debug/CONFIG_KMSAN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/debug/CONFIG_KMSAN
@@ -0,0 +1 @@
+# CONFIG_KMSAN is not set
diff --git a/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK 
b/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK
@@ -0,0 +1 @@
+# CONFIG_KASAN_STACK is not set
diff --git a/redhat/configs/common/clang/generic/CONFIG_KMSAN 
b/redhat/configs/common/clang/generic/CONFIG_KMSAN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/generic/CONFIG_KMSAN
@@ -0,0 +1 @@
+# CONFIG_KMSAN is not set
diff --git a/redhat/configs/common/clang_lto/debug/README 
b/redhat/configs/common/clang_lto/debug/README
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/debug/README
diff --git a/redhat/configs/common/clang_lto/generic/README 
b/redhat/configs/common/clang_lto/generic/README
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/README
diff --git a/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN 
b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN
@@ -0,0 +1 @@
+CONFIG_LTO_CLANG_THIN=y
diff --git a/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE 
b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE
@@ -0,0 +1 @@
+# CONFIG_LTO_NONE is not set
diff --git a/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN 
b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN
@@ -0,0 +1 @@
+CONFIG_LTO_CLANG_THIN=y
diff --git a/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE 
b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE
@@ -0,0 +1 @@
+# CONFIG_LTO_NONE is not set
diff --git a/redhat/configs/priority.snip b/redhat/configs/priority.snip
index blahblah..blahblah 100644
--- a/redhat/configs/priority.snip
+++ b/redhat/configs/priority.snip
@@ -10,3 +10,12 @@ EMPTY=
 
 # gcov options
 kgcov=kgcov
+kgcov-debug=kgcov
+
+# clang options
+clang=clang-generic
+clang-debug=clang-debug
+clang_lto-x86_64=clang-generic:clang_lto-generic:clang_lto-generic-x86
+clang_lto-x86_64-debug=clang-debug:clang_lto-debug
+clang_lto-aarch64=clang-generic:clang_lto-generic:clang_lto-generic-arm
+clang_lto-aarch64-debug=clang-debug:clang_lto-debug
diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -908,7 +908,14 @@ Source65: filter-s390x.sh.fedora
 Source66: filter-modules.sh.fedora
 %endif
 
-Source75: partial-kgcov-snip.config
+Source70: partial-kgcov-snip.config
+Source71: partial-kgcov-debug-snip.config
+Source72: partial-clang-snip.config
+Source73: partial-clang-debug-snip.config
+Source74: partial-clang_lto-x86_64-snip.config
+Source75: partial-clang_lto-x86_64-debug-snip.config
+Source76: partial-clang_lto-aarch64-snip.config
+Source77

[OS-BUILD PATCHv5 2/3] Apply partial snippet configs to all configs

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Apply partial snippet configs to all configs

There is a macro all_arch_configs that tries to optimize what configs we
apply the partial snippets to.  While it speeds up things up a bit, it
creates conflicts with CLANG options.  The process_configs.sh script
still processes _all_ the arches and expects the CLANG options to be set
correctly.

I can either add in an arch specific option to process_configs.sh to
only process the configs the correct CLANG snippet was applied to _or_
just apply the snippets to _all_ the configs.

The latter is easier so that is what this change does.  The cost is an
extra second to apply the snippets to more config files.

Signed-off-by: Don Zickus 

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -470,6 +470,8 @@ Summary: The Linux kernel
 %endif
 %endif
 
+%define all_configs %{name}-%{specrpmversion}-*.config
+
 # don't build noarch kernels or headers (duh)
 %ifarch noarch
 %define with_up 0
@@ -481,7 +483,6 @@ Summary: The Linux kernel
 %define with_bpftool 0
 %define with_selftests 0
 %define with_debug 0
-%define all_arch_configs %{name}-%{specrpmversion}-*.config
 %endif
 
 # sparse blows up on ppc
@@ -510,13 +511,11 @@ Summary: The Linux kernel
 %ifarch i686
 %define asmarch x86
 %define hdrarch i386
-%define all_arch_configs %{name}-%{specrpmversion}-i?86*.config
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
 %ifarch x86_64
 %define asmarch x86
-%define all_arch_configs %{name}-%{specrpmversion}-x86_64*.config
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
@@ -527,19 +526,16 @@ Summary: The Linux kernel
 %define kernel_image vmlinux
 %define kernel_image_elf 1
 %define use_vdso 0
-%define all_arch_configs %{name}-%{specrpmversion}-ppc64le*.config
 %endif
 
 %ifarch s390x
 %define asmarch s390
 %define hdrarch s390
-%define all_arch_configs %{name}-%{specrpmversion}-s390x.config
 %define kernel_image arch/s390/boot/bzImage
 %define vmlinux_decompressor arch/s390/boot/vmlinux
 %endif
 
 %ifarch aarch64
-%define all_arch_configs %{name}-%{specrpmversion}-aarch64*.config
 %define asmarch arm64
 %define hdrarch arm64
 %define make_target vmlinuz.efi
@@ -1774,7 +1770,7 @@ FLAVOR=%{primary_target} SPECPACKAGE_NAME=%{name} 
SPECVERSION=%{specversion} SPE
 
 # Merge in any user-provided local config option changes
 %ifnarch %nobuildarches
-for i in %{all_arch_configs}
+for i in %{all_configs}
 do
   mv $i $i.tmp
   ./merge.py %{SOURCE3001} $i.tmp > $i

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv5 0/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654

Compiling for clang is getting trickier to do because the configs are
different than gcc in some cases.  Mimic the kgcov framework to setup
clang to be easier to update their configs.

This framework is designed to blindly merge.py with any configs fed to
it.  This is unlike the build_configs framework where it uses
priority.rhel|fedora rules to merge things.

This leads to strange cases where clang debug configs need different
settings than clang non-debug configs.  For non-lto clang, due to clang
bugs it is easy to disable the debug features and get away with this.
But once resolved we will have to reinvestigate.  For lto clang, I just
hack out the debug and kgcov config files due to clashing Kconfig depend
rules.

I don't expect this to be a long term solution.  Perhaps when our config
rework is fully realized this just melts away.  TBD.

Signed-off-by: Don Zickus 

---
 redhat/configs/common/clang/debug/CONFIG_KASAN_STACK  |   1 +
 redhat/configs/common/clang/debug/CONFIG_KMSAN|   1 +
 redhat/configs/common/clang/generic/CONFIG_KASAN_STACK|   1 +
 redhat/configs/common/clang/generic/CONFIG_KMSAN  |   1 +
 redhat/configs/common/clang_lto/debug/README  |   0 
 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN |   1 +
 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE   |   1 +
 redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN |   1 +
 redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE   |   1 +
 redhat/configs/common/clang_lto/generic/README|   0 
 redhat/configs/priority.fedora|   4 -
 redhat/configs/priority.rhel  |   4 -
 redhat/configs/priority.snip  |   9 +
 redhat/kernel.spec.template   |  79 
++---
 14 files changed, 71 insertions(+), 33 deletions(-)
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv5 1/3] Remove unpackaged kgcov config files

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Remove unpackaged kgcov config files

The kgcov option is applied as a partial snippet in the spec file.  The
generated kernel-*-kgcov.config are not packaged and therefore unused.

My motivation here is because they conflict with the CLANG options when
I overlay the CLANG options on the gcov config file.  Instead of special
casing them, let's just drop them.

Signed-off-by: Don Zickus 

diff --git a/redhat/configs/priority.fedora b/redhat/configs/priority.fedora
index blahblah..blahblah 100644
--- a/redhat/configs/priority.fedora
+++ b/redhat/configs/priority.fedora
@@ -22,21 +22,17 @@ EMPTY=s390x-zfcpdump
 # x86_64
 x86_64=generic:generic-x86
 x86_64-debug=generic:generic-x86:debug:debug-x86
-x86_64-kgcov=generic:generic-x86:kgcov
 
 # ppc64le
 ppc64le=generic:generic-powerpc
 ppc64le-debug=generic:generic-powerpc:debug:debug-powerpc
-ppc64le-kgcov=generic:generic-powerpc:kgcov
 
 # s390x
 s390x=generic:generic-s390x
 s390x-debug=generic:generic-s390x:debug:debug-s390x
-s390x-kgcov=generic:generic-s390x:kgcov
 
 # aarch64
 aarch64=generic:generic-arm:generic-arm-aarch64
 aarch64-debug=generic:generic-arm:generic-arm-aarch64:debug:debug-arm-aarch64
-aarch64-kgcov=generic:generic-arm:generic-arm-aarch64:kgcov
 aarch64-16k=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-16k
 
aarch64-16k-debug=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-16k:debug:debug-arm-aarch64:debug-arm-aarch64-16k
diff --git a/redhat/configs/priority.rhel b/redhat/configs/priority.rhel
index blahblah..blahblah 100644
--- a/redhat/configs/priority.rhel
+++ b/redhat/configs/priority.rhel
@@ -21,25 +21,21 @@ ORDER=common rhel pending-rhel custom-overrides
 # x86_64
 x86_64=generic:generic-x86
 x86_64-debug=generic:generic-x86:debug:debug-x86
-x86_64-kgcov=generic:generic-x86:kgcov
 x86_64-rt=generic:generic-x86:rt-generic:rt-generic-x86
 
x86_64-rt-debug=generic:generic-x86:debug:debug-x86:rt-generic:rt-generic-x86:rt-debug:rt-debug-x86
 
 # ppc64le
 ppc64le=generic:generic-powerpc
 ppc64le-debug=generic:generic-powerpc:debug:debug-powerpc
-ppc64le-kgcov=generic:generic-powerpc:kgcov
 
 # s390x
 s390x=generic:generic-s390x
 s390x-debug=generic:generic-s390x:debug:debug-s390x
 s390x-zfcpdump=generic:generic-s390x:generic-s390x-zfcpdump
-s390x-kgcov=generic:generic-s390x:kgcov
 
 # aarch64
 aarch64=generic:generic-arm:generic-arm-aarch64
 
aarch64-debug=generic:generic-arm:generic-arm-aarch64:debug:debug-arm:debug-arm-aarch64
-aarch64-kgcov=generic:generic-arm:generic-arm-aarch64:kgcov
 aarch64-64k=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-64k
 
aarch64-64k-debug=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-64k:debug:debug-arm-aarch64:debug-arm-aarch64-64k
 
aarch64-rt=generic:generic-arm:generic-arm-aarch64:rt-generic:rt-generic-arm:rt-generic-arm-aarch64

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH 3/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1590160321

Yeah, I wasn't sure if folks had a script that relied on a kernel-local or not
so I left it.  But will will happily update to take your suggestion.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv4 0/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1590158249

rebased to latest code to see if that fixes the strange x86 build issues
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv4 3/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add clang config framework

Compiling for clang is getting trickier to do because the configs are
different than gcc in some cases.  Mimic the kgcov framework (which uses
priority files) to setup clang to be easier to update their configs.

This leads to strange cases where clang debug configs need different
settings than clang non-debug configs.  The priority.snip can handle the
variety of partial snippets for variants and arches well, the
kernel.spec needed to be updated to apply it reasonably.

I created a generic partial snippet loop that focuses on arch and
non-debug vs debug.  This required adding debug options to
priority.snip.  Once implemented it is a matter of collecting the
snippets and applying them based on arch and debug.  This should provide
a variety of flexibility for teams like clang and make it easier to roll
in config changes based on which compiler is used.

Signed-off-by: Don Zickus 

diff --git a/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK 
b/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK
@@ -0,0 +1 @@
+CONFIG_KASAN_STACK=y
diff --git a/redhat/configs/common/clang/debug/CONFIG_KMSAN 
b/redhat/configs/common/clang/debug/CONFIG_KMSAN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/debug/CONFIG_KMSAN
@@ -0,0 +1 @@
+# CONFIG_KMSAN is not set
diff --git a/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK 
b/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK
@@ -0,0 +1 @@
+# CONFIG_KASAN_STACK is not set
diff --git a/redhat/configs/common/clang/generic/CONFIG_KMSAN 
b/redhat/configs/common/clang/generic/CONFIG_KMSAN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/generic/CONFIG_KMSAN
@@ -0,0 +1 @@
+# CONFIG_KMSAN is not set
diff --git a/redhat/configs/common/clang_lto/debug/README 
b/redhat/configs/common/clang_lto/debug/README
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/debug/README
diff --git a/redhat/configs/common/clang_lto/generic/README 
b/redhat/configs/common/clang_lto/generic/README
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/README
diff --git a/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN 
b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN
@@ -0,0 +1 @@
+CONFIG_LTO_CLANG_THIN=y
diff --git a/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE 
b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE
@@ -0,0 +1 @@
+# CONFIG_LTO_NONE is not set
diff --git a/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN 
b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN
@@ -0,0 +1 @@
+CONFIG_LTO_CLANG_THIN=y
diff --git a/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE 
b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE
@@ -0,0 +1 @@
+# CONFIG_LTO_NONE is not set
diff --git a/redhat/configs/priority.snip b/redhat/configs/priority.snip
index blahblah..blahblah 100644
--- a/redhat/configs/priority.snip
+++ b/redhat/configs/priority.snip
@@ -10,3 +10,12 @@ EMPTY=
 
 # gcov options
 kgcov=kgcov
+kgcov-debug=kgcov
+
+# clang options
+clang=clang-generic
+clang-debug=clang-debug
+clang_lto-x86_64=clang-generic:clang_lto-generic:clang_lto-generic-x86
+clang_lto-x86_64-debug=clang-debug:clang_lto-debug
+clang_lto-aarch64=clang-generic:clang_lto-generic:clang_lto-generic-arm
+clang_lto-aarch64-debug=clang-debug:clang_lto-debug
diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -908,7 +908,14 @@ Source65: filter-s390x.sh.fedora
 Source66: filter-modules.sh.fedora
 %endif
 
-Source75: partial-kgcov-snip.config
+Source70: partial-kgcov-snip.config
+Source71: partial-kgcov-debug-snip.config
+Source72: partial-clang-snip.config
+Source73: partial-clang-debug-snip.config
+Source74: partial-clang_lto-x86_64-snip.config
+Source75: partial-clang_lto-x86_64-debug-snip.config
+Source76: partial-clang_lto-aarch64-snip.config
+Source77

[OS-BUILD PATCHv4 2/3] Apply partial snippet configs to all configs

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Apply partial snippet configs to all configs

There is a macro all_arch_configs that tries to optimize what configs we
apply the partial snippets to.  While it speeds up things up a bit, it
creates conflicts with CLANG options.  The process_configs.sh script
still processes _all_ the arches and expects the CLANG options to be set
correctly.

I can either add in an arch specific option to process_configs.sh to
only process the configs the correct CLANG snippet was applied to _or_
just apply the snippets to _all_ the configs.

The latter is easier so that is what this change does.  The cost is an
extra second to apply the snippets to more config files.

Signed-off-by: Don Zickus 

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -470,6 +470,8 @@ Summary: The Linux kernel
 %endif
 %endif
 
+%define all_configs %{name}-%{specrpmversion}-*.config
+
 # don't build noarch kernels or headers (duh)
 %ifarch noarch
 %define with_up 0
@@ -481,7 +483,6 @@ Summary: The Linux kernel
 %define with_bpftool 0
 %define with_selftests 0
 %define with_debug 0
-%define all_arch_configs %{name}-%{specrpmversion}-*.config
 %endif
 
 # sparse blows up on ppc
@@ -510,13 +511,11 @@ Summary: The Linux kernel
 %ifarch i686
 %define asmarch x86
 %define hdrarch i386
-%define all_arch_configs %{name}-%{specrpmversion}-i?86*.config
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
 %ifarch x86_64
 %define asmarch x86
-%define all_arch_configs %{name}-%{specrpmversion}-x86_64*.config
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
@@ -527,19 +526,16 @@ Summary: The Linux kernel
 %define kernel_image vmlinux
 %define kernel_image_elf 1
 %define use_vdso 0
-%define all_arch_configs %{name}-%{specrpmversion}-ppc64le*.config
 %endif
 
 %ifarch s390x
 %define asmarch s390
 %define hdrarch s390
-%define all_arch_configs %{name}-%{specrpmversion}-s390x.config
 %define kernel_image arch/s390/boot/bzImage
 %define vmlinux_decompressor arch/s390/boot/vmlinux
 %endif
 
 %ifarch aarch64
-%define all_arch_configs %{name}-%{specrpmversion}-aarch64*.config
 %define asmarch arm64
 %define hdrarch arm64
 %define make_target vmlinuz.efi
@@ -1774,7 +1770,7 @@ FLAVOR=%{primary_target} SPECPACKAGE_NAME=%{name} 
SPECVERSION=%{specversion} SPE
 
 # Merge in any user-provided local config option changes
 %ifnarch %nobuildarches
-for i in %{all_arch_configs}
+for i in %{all_configs}
 do
   mv $i $i.tmp
   ./merge.py %{SOURCE3001} $i.tmp > $i

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv4 1/3] Remove unpackaged kgcov config files

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Remove unpackaged kgcov config files

The kgcov option is applied as a partial snippet in the spec file.  The
generated kernel-*-kgcov.config are not packaged and therefore unused.

My motivation here is because they conflict with the CLANG options when
I overlay the CLANG options on the gcov config file.  Instead of special
casing them, let's just drop them.

Signed-off-by: Don Zickus 

diff --git a/redhat/configs/priority.fedora b/redhat/configs/priority.fedora
index blahblah..blahblah 100644
--- a/redhat/configs/priority.fedora
+++ b/redhat/configs/priority.fedora
@@ -22,21 +22,17 @@ EMPTY=s390x-zfcpdump
 # x86_64
 x86_64=generic:generic-x86
 x86_64-debug=generic:generic-x86:debug:debug-x86
-x86_64-kgcov=generic:generic-x86:kgcov
 
 # ppc64le
 ppc64le=generic:generic-powerpc
 ppc64le-debug=generic:generic-powerpc:debug:debug-powerpc
-ppc64le-kgcov=generic:generic-powerpc:kgcov
 
 # s390x
 s390x=generic:generic-s390x
 s390x-debug=generic:generic-s390x:debug:debug-s390x
-s390x-kgcov=generic:generic-s390x:kgcov
 
 # aarch64
 aarch64=generic:generic-arm:generic-arm-aarch64
 aarch64-debug=generic:generic-arm:generic-arm-aarch64:debug:debug-arm-aarch64
-aarch64-kgcov=generic:generic-arm:generic-arm-aarch64:kgcov
 aarch64-16k=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-16k
 
aarch64-16k-debug=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-16k:debug:debug-arm-aarch64:debug-arm-aarch64-16k
diff --git a/redhat/configs/priority.rhel b/redhat/configs/priority.rhel
index blahblah..blahblah 100644
--- a/redhat/configs/priority.rhel
+++ b/redhat/configs/priority.rhel
@@ -21,25 +21,21 @@ ORDER=common rhel pending-rhel custom-overrides
 # x86_64
 x86_64=generic:generic-x86
 x86_64-debug=generic:generic-x86:debug:debug-x86
-x86_64-kgcov=generic:generic-x86:kgcov
 x86_64-rt=generic:generic-x86:rt-generic:rt-generic-x86
 
x86_64-rt-debug=generic:generic-x86:debug:debug-x86:rt-generic:rt-generic-x86:rt-debug:rt-debug-x86
 
 # ppc64le
 ppc64le=generic:generic-powerpc
 ppc64le-debug=generic:generic-powerpc:debug:debug-powerpc
-ppc64le-kgcov=generic:generic-powerpc:kgcov
 
 # s390x
 s390x=generic:generic-s390x
 s390x-debug=generic:generic-s390x:debug:debug-s390x
 s390x-zfcpdump=generic:generic-s390x:generic-s390x-zfcpdump
-s390x-kgcov=generic:generic-s390x:kgcov
 
 # aarch64
 aarch64=generic:generic-arm:generic-arm-aarch64
 
aarch64-debug=generic:generic-arm:generic-arm-aarch64:debug:debug-arm:debug-arm-aarch64
-aarch64-kgcov=generic:generic-arm:generic-arm-aarch64:kgcov
 aarch64-64k=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-64k
 
aarch64-64k-debug=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-64k:debug:debug-arm-aarch64:debug-arm-aarch64-64k
 
aarch64-rt=generic:generic-arm:generic-arm-aarch64:rt-generic:rt-generic-arm:rt-generic-arm-aarch64

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv4 0/3] Add clang config framework

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654

Compiling for clang is getting trickier to do because the configs are
different than gcc in some cases.  Mimic the kgcov framework to setup
clang to be easier to update their configs.

This framework is designed to blindly merge.py with any configs fed to
it.  This is unlike the build_configs framework where it uses
priority.rhel|fedora rules to merge things.

This leads to strange cases where clang debug configs need different
settings than clang non-debug configs.  For non-lto clang, due to clang
bugs it is easy to disable the debug features and get away with this.
But once resolved we will have to reinvestigate.  For lto clang, I just
hack out the debug and kgcov config files due to clashing Kconfig depend
rules.

I don't expect this to be a long term solution.  Perhaps when our config
rework is fully realized this just melts away.  TBD.

Signed-off-by: Don Zickus 

---
 redhat/configs/common/clang/debug/CONFIG_KASAN_STACK  |   1 +
 redhat/configs/common/clang/debug/CONFIG_KMSAN|   1 +
 redhat/configs/common/clang/generic/CONFIG_KASAN_STACK|   1 +
 redhat/configs/common/clang/generic/CONFIG_KMSAN  |   1 +
 redhat/configs/common/clang_lto/debug/README  |   0 
 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN |   1 +
 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE   |   1 +
 redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN |   1 +
 redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE   |   1 +
 redhat/configs/common/clang_lto/generic/README|   0 
 redhat/configs/priority.fedora|   4 -
 redhat/configs/priority.rhel  |   4 -
 redhat/configs/priority.snip  |   9 +
 redhat/kernel.spec.template   |  78 
++---
 14 files changed, 71 insertions(+), 32 deletions(-)
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 0/2] Add new os-build targets: rt-devel and automotive-devel

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge linux-stable and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from linux-stable to linux master again.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

---
 redhat/scripts/ci/ark-ci-env.sh  |  150 +++
 redhat/scripts/ci/ark-merge-rt.sh|   96 +
 redhat/scripts/ci/ark-update-configs.sh  |4 +-
 redhat/scripts/genspec/gen_config_patches.sh |   12 +-
 4 files changed, 257 insertions(+), 5 deletions(-)
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 2/2] Add new os-build targets: rt-devel and automotive-devel

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge linux-stable and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from linux-stable to linux master again.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -19,6 +19,156 @@ ci_pre_check()
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch=$1
+   upstream_tree=$2
+   source_branch=$3
+   reset_branch=$4
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch=$1
+   target_branch=$2
+   reset_branch=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${target_branch}"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+   git merge --abort
+   printf "Merge conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${target_branch}"
+   printf "* git merge %s\n" "${source_branch}"
+   die "Merge conflicts"
+   fi
+
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_git_rebase()
+{
+   branch=$1
+   upstream=$2
+   base=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+   if ! git rebase --onto "$base" "$upstream"; then
+   git rebase --abort
+   printf "Rebase conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${branch}"
+   printf "* git rebase --onto %s %s\n" "${base}" "${upstream}"
+   die "Rebase conflicts"
+   fi
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_update_configs()
+{
+   branch=$1
+   skip_configs=$2
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+
+   # Generates and commits all the pending configs
+   make -j FLAVOR=fedora dist-configs-commit
+   # Skip executing gen_config_patches.sh for new Fedora configs
+
+   old_head="$(git rev-parse HEAD)"
+   make -j FLAVOR=rhel dist-configs-commit
+   new_head="$(git rev-parse HEAD)"
+
+
+   # Converts each new pending config from above into its finalized git
+   # configs// branch.  These commits are used for Merge
+   # Requests.
+   [ "$old_head" != "$new_head&qu

[OS-BUILD PATCHv2 1/2] Add target_branch for gen_config_patches.sh

2023-10-04 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add target_branch for gen_config_patches.sh

To support new config updates in other brances besides os-build, we need
to be more flexible with the staging branch.  Currently new configs get
added to configs/$date/.  This won't work when new branches
like os-build-rt-devel and os-build-automotive-devel get implemented as
they will have duplicate entries here and cause script problems.  Add a
$branch name into the configs path to create separation.

configs/$date/  -->
configs/$target_branch/$date/

This is not expected to impact anything else.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-update-configs.sh 
b/redhat/scripts/ci/ark-update-configs.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-update-configs.sh
+++ b/redhat/scripts/ci/ark-update-configs.sh
@@ -73,7 +73,7 @@ new_head="$(git rev-parse HEAD)"
 [ "$old_head" != "$new_head" ] && CONFIGS_ADDED="1" || CONFIGS_ADDED=""
 
 if test "$CONFIGS_ADDED"; then
-   ./redhat/scripts/genspec/gen_config_patches.sh
+   ./redhat/scripts/genspec/gen_config_patches.sh "${BRANCH}"
 PUSH_VERB="Pushing"
 else
printf "No new configuration values exposed from merging %s into 
$BRANCH\n" "$UPSTREAM_REF"
@@ -84,7 +84,7 @@ echo
 PUSH_STR="branch ${BRANCH} to ${GITLAB_PROJECT_URL}"
 PUSH_CMD="git push gitlab ${BRANCH}"
 PUSH_CONFIG_STR="config update branches"
-PUSH_CONFIG_CMD="for branch in \$(git branch | grep configs/\"\$(date +%F)\"); 
do
+PUSH_CONFIG_CMD="for branch in \$(git branch | grep 
configs/${BRANCH}/\"\$(date +%F)\"); do
git push \\
-o merge_request.create \\
-o merge_request.target=\"$BRANCH\" \\
diff --git a/redhat/scripts/genspec/gen_config_patches.sh 
b/redhat/scripts/genspec/gen_config_patches.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/genspec/gen_config_patches.sh
+++ b/redhat/scripts/genspec/gen_config_patches.sh
@@ -8,6 +8,10 @@
 # information for the relevant maintainers using get_maintainers.pl. This
 # requires that you have $RHMAINTAINERS pointing to a valid maintainer file.
 
+target_branch=$1
+prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+git checkout "$target_branch"
+
 if ! git show -s --oneline HEAD | grep -q "AUTOMATIC: New configs"; then
echo "The git HEAD doesn't look like the correct commit"
exit 1
@@ -116,12 +120,14 @@ for f in "$config_bundles_dir"/*; do
rm redhat/configs/pending-rhel/generic/"$line"
done < "$f"
# We do a separate branch per config commit
-   if ! git checkout -b "configs/$(date +%F)/$_f"; then
-   printf "Unable to check out configs/%s/%s branch!\n" "$(date 
+%F)" "$_f"
+   if ! git checkout -b "configs/$target_branch/$(date +%F)/$_f"; then
+   printf "Unable to check out configs/%s/%s/%s branch!\n" 
"$target_branch" "$(date +%F)" "$_f"
exit 1
fi
# One file path is done, time to commit!
git add redhat/configs
git commit -s -F "$tmpdir"/commit
-   git checkout os-build
+   git checkout "$target_branch"
 done
+
+git checkout "$prev_branch"

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCHv3 0/3] Add clang config framework

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1584576862

Yeah, I am scratching my head on that too.  I got this working as a starter.
Open to ideas.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 2/2] Add new os-build targets: rt-devel and automotive-devel

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add new os-build targets: rt-devel and automotive-devel

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge linux-stable and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from linux-stable to linux master again.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-ci-env.sh b/redhat/scripts/ci/ark-ci-env.sh
index blahblah..blahblah 100644
--- a/redhat/scripts/ci/ark-ci-env.sh
+++ b/redhat/scripts/ci/ark-ci-env.sh
@@ -19,6 +19,157 @@ ci_pre_check()
 git diff-index --quiet HEAD || die "Dirty tree, please clean before 
merging."
 }
 
+# GitLab can only mirror one project at a time.  This wrapper function does
+# the mirroring for any other branches.
+ark_git_mirror()
+{
+   target_branch=$1
+   upstream_tree=$2
+   source_branch=$3
+   reset_branch=$4
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   remote_branch="$upstream_tree/$source_branch"
+   git checkout "$target_branch"
+   git fetch "$upstream_tree" "$source_branch"
+   if test -z "$reset_branch"; then
+   git merge "$remote_branch" || die "git merge $remote_branch 
failed"
+   else
+   git reset --hard "$remote_branch" || die "git reset 
$remote_branch failed"
+   fi
+   git checkout "$prev_branch"
+}
+
+# Merge wrapper in case issues arise
+ark_git_merge()
+{
+   source_branch=$1
+   target_branch=$2
+   reset_branch=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${target_branch}"
+   if test -n "$reset_branch"; then
+   # there are cases when the initial merge is a reset
+   git reset --hard "$source_branch"  || die "git reset 
$source_branch failed"
+   elif ! git merge -m "Merge '$source_branch' into '$target_branch'" 
"$source_branch"; then
+   git merge --abort
+   printf "Merge conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${target_branch}"
+   printf "* git merge %s\n" "${source_branch}"
+   die "Merge conflicts"
+   fi
+
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_git_rebase()
+{
+   branch=$1
+   upstream=$2
+   base=$3
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+   if ! git rebase --onto "$base" "$upstream"; then
+   git rebase --abort
+   printf "Rebase conflict; halting!\n"
+   printf "To reproduce:\n"
+   printf "* git checkout %s\n" "${branch}"
+   printf "* git rebase --onto %s %s\n" "${base}" "${upstream}"
+   die "Rebase conflicts"
+   fi
+   git checkout "$prev_branch"
+   return 0
+}
+
+ark_update_configs()
+{
+   branch=$1
+   skip_configs=$2
+
+   prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+   git checkout "${branch}"
+
+   # Generates and commits all the pending configs
+   make -j FLAVOR=fedora dist-configs-commit
+   # Skip executing gen_config_patches.sh for new Fedora configs
+
+   old_head="$(git rev-parse HEAD)"
+   make -j FLAVOR=rhel dist-configs-commit
+   new_head="$(git rev-parse HEAD)"
+
+
+   # Converts each new pending config from above into its finalized git
+   # configs// branch.  These commits are used for Merge
+   # Requests.
+   [ "$old_head" != "$new_head&qu

[OS-BUILD PATCH 1/2] Add target_branch for gen_config_patches.sh

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add target_branch for gen_config_patches.sh

To support new config updates in other brances besides os-build, we need
to be more flexible with the staging branch.  Currently new configs get
added to configs/$date/.  This won't work when new branches
like os-build-rt-devel and os-build-automotive-devel get implemented as
they will have duplicate entries here and cause script problems.  Add a
$branch name into the configs path to create separation.

configs/$date/  -->
configs/$target_branch/$date/

This is not expected to impact anything else.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-update-configs.sh 
b/redhat/scripts/ci/ark-update-configs.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-update-configs.sh
+++ b/redhat/scripts/ci/ark-update-configs.sh
@@ -73,7 +73,7 @@ new_head="$(git rev-parse HEAD)"
 [ "$old_head" != "$new_head" ] && CONFIGS_ADDED="1" || CONFIGS_ADDED=""
 
 if test "$CONFIGS_ADDED"; then
-   ./redhat/scripts/genspec/gen_config_patches.sh
+   ./redhat/scripts/genspec/gen_config_patches.sh "${BRANCH}"
 PUSH_VERB="Pushing"
 else
printf "No new configuration values exposed from merging %s into 
$BRANCH\n" "$UPSTREAM_REF"
@@ -84,7 +84,7 @@ echo
 PUSH_STR="branch ${BRANCH} to ${GITLAB_PROJECT_URL}"
 PUSH_CMD="git push gitlab ${BRANCH}"
 PUSH_CONFIG_STR="config update branches"
-PUSH_CONFIG_CMD="for branch in \$(git branch | grep configs/\"\$(date +%F)\"); 
do
+PUSH_CONFIG_CMD="for branch in \$(git branch | grep 
configs/${BRANCH}/\"\$(date +%F)\"); do
git push \\
-o merge_request.create \\
-o merge_request.target=\"$BRANCH\" \\
diff --git a/redhat/scripts/genspec/gen_config_patches.sh 
b/redhat/scripts/genspec/gen_config_patches.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/genspec/gen_config_patches.sh
+++ b/redhat/scripts/genspec/gen_config_patches.sh
@@ -8,6 +8,10 @@
 # information for the relevant maintainers using get_maintainers.pl. This
 # requires that you have $RHMAINTAINERS pointing to a valid maintainer file.
 
+target_branch=$1
+prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+git checkout "$target_branch"
+
 if ! git show -s --oneline HEAD | grep -q "AUTOMATIC: New configs"; then
echo "The git HEAD doesn't look like the correct commit"
exit 1
@@ -116,12 +120,14 @@ for f in "$config_bundles_dir"/*; do
rm redhat/configs/pending-rhel/generic/"$line"
done < "$f"
# We do a separate branch per config commit
-   if ! git checkout -b "configs/$(date +%F)/$_f"; then
-   printf "Unable to check out configs/%s/%s branch!\n" "$(date 
+%F)" "$_f"
+   if ! git checkout -b "configs/$target_branch/$(date +%F)/$_f"; then
+   printf "Unable to check out configs/%s/%s/%s branch!\n" 
"$target_branch" "$(date +%F)" "$_f"
exit 1
fi
# One file path is done, time to commit!
git add redhat/configs
git commit -s -F "$tmpdir"/commit
-   git checkout os-build
+   git checkout "$target_branch"
 done
+
+git checkout "$prev_branch"

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH 0/2] Add new os-build targets: rt-devel and automotive-devel

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2732

This is an attempt to automate the rt and automotive devel branches
using the upstream linux-rt-devel tree as the base combined with
os-build.

The overall process isn't too complicated but there are enough steps to
make it compilicated.

Steps:
* map upstream linux-rt-devel to master-rt branch
* update os-build
* grab linux version from master-rt and os-build
* if version the same then merge os-build and master-rt to
  os-build-rt-automated
* else merge linux-stable and master-rt to os-build-rt-automated until
  master-rt is update to os-build
* merge os-build-rt-automated into os-build-rt-devel
* merge os-build-rt-automated into os-build-automotive-devel
* run the generate pending-rhel config scripts on rt-devel and
  automotive-devel

The script has beginning logic to handle rebasing if necessary when the
rt-devel branch transitions from linux-stable to linux master again.

The script has no effect on the day-to-day operations of os-build.  They
are designed to be run from a gitlab cron job and update in the
background.  Once they are deemed stable, adding ARK MRs that target
either os-build-rt-devel or os-build-automotive-devel will be possible
and those branches can start proper parallel developement with os-build.

Signed-off-by: Don Zickus 

---
 redhat/scripts/ci/ark-ci-env.sh  |  151 +++
 redhat/scripts/ci/ark-merge-rt.sh|   96 +
 redhat/scripts/ci/ark-update-configs.sh  |4 +-
 redhat/scripts/genspec/gen_config_patches.sh |   12 +-
 4 files changed, 258 insertions(+), 5 deletions(-)
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv3 3/3] Add clang config framework

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add clang config framework

Compiling for clang is getting trickier to do because the configs are
different than gcc in some cases.  Mimic the kgcov framework (which uses
priority files) to setup clang to be easier to update their configs.

This leads to strange cases where clang debug configs need different
settings than clang non-debug configs.  The priority.snip can handle the
variety of partial snippets for variants and arches well, the
kernel.spec needed to be updated to apply it reasonably.

I created a generic partial snippet loop that focuses on arch and
non-debug vs debug.  This required adding debug options to
priority.snip.  Once implemented it is a matter of collecting the
snippets and applying them based on arch and debug.  This should provide
a variety of flexibility for teams like clang and make it easier to roll
in config changes based on which compiler is used.

Signed-off-by: Don Zickus 

diff --git a/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK 
b/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK
@@ -0,0 +1 @@
+CONFIG_KASAN_STACK=y
diff --git a/redhat/configs/common/clang/debug/CONFIG_KMSAN 
b/redhat/configs/common/clang/debug/CONFIG_KMSAN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/debug/CONFIG_KMSAN
@@ -0,0 +1 @@
+# CONFIG_KMSAN is not set
diff --git a/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK 
b/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK
@@ -0,0 +1 @@
+# CONFIG_KASAN_STACK is not set
diff --git a/redhat/configs/common/clang/generic/CONFIG_KMSAN 
b/redhat/configs/common/clang/generic/CONFIG_KMSAN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/generic/CONFIG_KMSAN
@@ -0,0 +1 @@
+# CONFIG_KMSAN is not set
diff --git a/redhat/configs/common/clang_lto/debug/README 
b/redhat/configs/common/clang_lto/debug/README
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/debug/README
diff --git a/redhat/configs/common/clang_lto/generic/README 
b/redhat/configs/common/clang_lto/generic/README
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/README
diff --git a/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN 
b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN
@@ -0,0 +1 @@
+CONFIG_LTO_CLANG_THIN=y
diff --git a/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE 
b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE
@@ -0,0 +1 @@
+# CONFIG_LTO_NONE is not set
diff --git a/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN 
b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN
@@ -0,0 +1 @@
+CONFIG_LTO_CLANG_THIN=y
diff --git a/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE 
b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE
@@ -0,0 +1 @@
+# CONFIG_LTO_NONE is not set
diff --git a/redhat/configs/priority.snip b/redhat/configs/priority.snip
index blahblah..blahblah 100644
--- a/redhat/configs/priority.snip
+++ b/redhat/configs/priority.snip
@@ -10,3 +10,12 @@ EMPTY=
 
 # gcov options
 kgcov=kgcov
+kgcov-debug=kgcov
+
+# clang options
+clang=clang-generic
+clang-debug=clang-debug
+clang_lto-x86_64=clang-generic:clang_lto-generic:clang_lto-generic-x86
+clang_lto-x86_64-debug=clang-debug:clang_lto-debug
+clang_lto-aarch64=clang-generic:clang_lto-generic:clang_lto-generic-arm
+clang_lto-aarch64-debug=clang-debug:clang_lto-debug
diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -908,7 +908,14 @@ Source65: filter-s390x.sh.fedora
 Source66: filter-modules.sh.fedora
 %endif
 
-Source75: partial-kgcov-snip.config
+Source70: partial-kgcov-snip.config
+Source71: partial-kgcov-debug-snip.config
+Source72: partial-clang-snip.config
+Source73: partial-clang-debug-snip.config
+Source74: partial-clang_lto-x86_64-snip.config
+Source75: partial-clang_lto-x86_64-debug-snip.config
+Source76: partial-clang_lto-aarch64-snip.config
+Source77

[OS-BUILD PATCHv3 0/3] Add clang config framework

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654

Compiling for clang is getting trickier to do because the configs are
different than gcc in some cases.  Mimic the kgcov framework to setup
clang to be easier to update their configs.

This framework is designed to blindly merge.py with any configs fed to
it.  This is unlike the build_configs framework where it uses
priority.rhel|fedora rules to merge things.

This leads to strange cases where clang debug configs need different
settings than clang non-debug configs.  For non-lto clang, due to clang
bugs it is easy to disable the debug features and get away with this.
But once resolved we will have to reinvestigate.  For lto clang, I just
hack out the debug and kgcov config files due to clashing Kconfig depend
rules.

I don't expect this to be a long term solution.  Perhaps when our config
rework is fully realized this just melts away.  TBD.

Signed-off-by: Don Zickus 

---
 redhat/configs/common/clang/debug/CONFIG_KASAN_STACK  |   1 +
 redhat/configs/common/clang/debug/CONFIG_KMSAN|   1 +
 redhat/configs/common/clang/generic/CONFIG_KASAN_STACK|   1 +
 redhat/configs/common/clang/generic/CONFIG_KMSAN  |   1 +
 redhat/configs/common/clang_lto/debug/README  |   0 
 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN |   1 +
 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE   |   1 +
 redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN |   1 +
 redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE   |   1 +
 redhat/configs/common/clang_lto/generic/README|   0 
 redhat/configs/priority.fedora|   4 -
 redhat/configs/priority.rhel  |   4 -
 redhat/configs/priority.snip  |   9 +
 redhat/kernel.spec.template   |  78 
++---
 14 files changed, 71 insertions(+), 32 deletions(-)
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv3 2/3] Apply partial snippet configs to all configs

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Apply partial snippet configs to all configs

There is a macro all_arch_configs that tries to optimize what configs we
apply the partial snippets to.  While it speeds up things up a bit, it
creates conflicts with CLANG options.  The process_configs.sh script
still processes _all_ the arches and expects the CLANG options to be set
correctly.

I can either add in an arch specific option to process_configs.sh to
only process the configs the correct CLANG snippet was applied to _or_
just apply the snippets to _all_ the configs.

The latter is easier so that is what this change does.  The cost is an
extra second to apply the snippets to more config files.

Signed-off-by: Don Zickus 

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -469,6 +469,8 @@ Summary: The Linux kernel
 %endif
 %endif
 
+%define all_configs %{name}-%{specrpmversion}-*.config
+
 # don't build noarch kernels or headers (duh)
 %ifarch noarch
 %define with_up 0
@@ -480,7 +482,6 @@ Summary: The Linux kernel
 %define with_bpftool 0
 %define with_selftests 0
 %define with_debug 0
-%define all_arch_configs %{name}-%{specrpmversion}-*.config
 %endif
 
 # sparse blows up on ppc
@@ -509,13 +510,11 @@ Summary: The Linux kernel
 %ifarch i686
 %define asmarch x86
 %define hdrarch i386
-%define all_arch_configs %{name}-%{specrpmversion}-i?86*.config
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
 %ifarch x86_64
 %define asmarch x86
-%define all_arch_configs %{name}-%{specrpmversion}-x86_64*.config
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
@@ -526,19 +525,16 @@ Summary: The Linux kernel
 %define kernel_image vmlinux
 %define kernel_image_elf 1
 %define use_vdso 0
-%define all_arch_configs %{name}-%{specrpmversion}-ppc64le*.config
 %endif
 
 %ifarch s390x
 %define asmarch s390
 %define hdrarch s390
-%define all_arch_configs %{name}-%{specrpmversion}-s390x.config
 %define kernel_image arch/s390/boot/bzImage
 %define vmlinux_decompressor arch/s390/boot/vmlinux
 %endif
 
 %ifarch aarch64
-%define all_arch_configs %{name}-%{specrpmversion}-aarch64*.config
 %define asmarch arm64
 %define hdrarch arm64
 %define make_target vmlinuz.efi
@@ -1781,7 +1777,7 @@ FLAVOR=%{primary_target} SPECPACKAGE_NAME=%{name} 
SPECVERSION=%{specversion} SPE
 
 # Merge in any user-provided local config option changes
 %ifnarch %nobuildarches
-for i in %{all_arch_configs}
+for i in %{all_configs}
 do
   mv $i $i.tmp
   ./merge.py %{SOURCE3001} $i.tmp > $i

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv3 1/3] Remove unpackaged kgcov config files

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Remove unpackaged kgcov config files

The kgcov option is applied as a partial snippet in the spec file.  The
generated kernel-*-kgcov.config are not packaged and therefore unused.

My motivation here is because they conflict with the CLANG options when
I overlay the CLANG options on the gcov config file.  Instead of special
casing them, let's just drop them.

Signed-off-by: Don Zickus 

diff --git a/redhat/configs/priority.fedora b/redhat/configs/priority.fedora
index blahblah..blahblah 100644
--- a/redhat/configs/priority.fedora
+++ b/redhat/configs/priority.fedora
@@ -22,21 +22,17 @@ EMPTY=s390x-zfcpdump
 # x86_64
 x86_64=generic:generic-x86
 x86_64-debug=generic:generic-x86:debug:debug-x86
-x86_64-kgcov=generic:generic-x86:kgcov
 
 # ppc64le
 ppc64le=generic:generic-powerpc
 ppc64le-debug=generic:generic-powerpc:debug:debug-powerpc
-ppc64le-kgcov=generic:generic-powerpc:kgcov
 
 # s390x
 s390x=generic:generic-s390x
 s390x-debug=generic:generic-s390x:debug:debug-s390x
-s390x-kgcov=generic:generic-s390x:kgcov
 
 # aarch64
 aarch64=generic:generic-arm:generic-arm-aarch64
 aarch64-debug=generic:generic-arm:generic-arm-aarch64:debug:debug-arm-aarch64
-aarch64-kgcov=generic:generic-arm:generic-arm-aarch64:kgcov
 aarch64-16k=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-16k
 
aarch64-16k-debug=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-16k:debug:debug-arm-aarch64:debug-arm-aarch64-16k
diff --git a/redhat/configs/priority.rhel b/redhat/configs/priority.rhel
index blahblah..blahblah 100644
--- a/redhat/configs/priority.rhel
+++ b/redhat/configs/priority.rhel
@@ -21,25 +21,21 @@ ORDER=common rhel pending-rhel custom-overrides
 # x86_64
 x86_64=generic:generic-x86
 x86_64-debug=generic:generic-x86:debug:debug-x86
-x86_64-kgcov=generic:generic-x86:kgcov
 x86_64-rt=generic:generic-x86:rt-generic:rt-generic-x86
 
x86_64-rt-debug=generic:generic-x86:debug:debug-x86:rt-generic:rt-generic-x86:rt-debug:rt-debug-x86
 
 # ppc64le
 ppc64le=generic:generic-powerpc
 ppc64le-debug=generic:generic-powerpc:debug:debug-powerpc
-ppc64le-kgcov=generic:generic-powerpc:kgcov
 
 # s390x
 s390x=generic:generic-s390x
 s390x-debug=generic:generic-s390x:debug:debug-s390x
 s390x-zfcpdump=generic:generic-s390x:generic-s390x-zfcpdump
-s390x-kgcov=generic:generic-s390x:kgcov
 
 # aarch64
 aarch64=generic:generic-arm:generic-arm-aarch64
 
aarch64-debug=generic:generic-arm:generic-arm-aarch64:debug:debug-arm:debug-arm-aarch64
-aarch64-kgcov=generic:generic-arm:generic-arm-aarch64:kgcov
 aarch64-64k=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-64k
 
aarch64-64k-debug=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-64k:debug:debug-arm-aarch64:debug-arm-aarch64-64k
 
aarch64-rt=generic:generic-arm:generic-arm-aarch64:rt-generic:rt-generic-arm:rt-generic-arm-aarch64

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


Re: [OS-BUILD PATCH 3/3] Add clang config framework

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1584560878

It appears I can only 'cp file1 file2' and not multiple files.  I am going to
skip this suggestion unless someone can point out what I am messing up.
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCH] Add target_branch for gen_config_patches.sh

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add target_branch for gen_config_patches.sh

To support new config updates in other brances besides os-build, we need
to be more flexible with the staging branch.  Currently new configs get
added to configs/$date/.  This won't work when new branches
like os-build-rt-devel and os-build-automotive-devel get implemented as
they will have duplicate entries here and cause script problems.  Add a
$branch name into the configs path to create separation.

configs/$date/  -->
configs/$target_branch/$date/

This is not expected to impact anything else.

Signed-off-by: Don Zickus 

diff --git a/redhat/scripts/ci/ark-update-configs.sh 
b/redhat/scripts/ci/ark-update-configs.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/ci/ark-update-configs.sh
+++ b/redhat/scripts/ci/ark-update-configs.sh
@@ -73,7 +73,7 @@ new_head="$(git rev-parse HEAD)"
 [ "$old_head" != "$new_head" ] && CONFIGS_ADDED="1" || CONFIGS_ADDED=""
 
 if test "$CONFIGS_ADDED"; then
-   ./redhat/scripts/genspec/gen_config_patches.sh
+   ./redhat/scripts/genspec/gen_config_patches.sh "${BRANCH}"
 PUSH_VERB="Pushing"
 else
printf "No new configuration values exposed from merging %s into 
$BRANCH\n" "$UPSTREAM_REF"
@@ -84,7 +84,7 @@ echo
 PUSH_STR="branch ${BRANCH} to ${GITLAB_PROJECT_URL}"
 PUSH_CMD="git push gitlab ${BRANCH}"
 PUSH_CONFIG_STR="config update branches"
-PUSH_CONFIG_CMD="for branch in \$(git branch | grep configs/\"\$(date +%F)\"); 
do
+PUSH_CONFIG_CMD="for branch in \$(git branch | grep 
configs/${BRANCH}/\"\$(date +%F)\"); do
git push \\
-o merge_request.create \\
-o merge_request.target=\"$BRANCH\" \\
diff --git a/redhat/scripts/genspec/gen_config_patches.sh 
b/redhat/scripts/genspec/gen_config_patches.sh
index blahblah..blahblah 100755
--- a/redhat/scripts/genspec/gen_config_patches.sh
+++ b/redhat/scripts/genspec/gen_config_patches.sh
@@ -8,6 +8,10 @@
 # information for the relevant maintainers using get_maintainers.pl. This
 # requires that you have $RHMAINTAINERS pointing to a valid maintainer file.
 
+target_branch=$1
+prev_branch="$(git rev-parse --abbrev-ref HEAD)"
+git checkout "$target_branch"
+
 if ! git show -s --oneline HEAD | grep -q "AUTOMATIC: New configs"; then
echo "The git HEAD doesn't look like the correct commit"
exit 1
@@ -116,12 +120,14 @@ for f in "$config_bundles_dir"/*; do
rm redhat/configs/pending-rhel/generic/"$line"
done < "$f"
# We do a separate branch per config commit
-   if ! git checkout -b "configs/$(date +%F)/$_f"; then
-   printf "Unable to check out configs/%s/%s branch!\n" "$(date 
+%F)" "$_f"
+   if ! git checkout -b "configs/$target_branch/$(date +%F)/$_f"; then
+   printf "Unable to check out configs/%s/%s/%s branch!\n" 
"$target_branch" "$(date +%F)" "$_f"
exit 1
fi
# One file path is done, time to commit!
git add redhat/configs
git commit -s -F "$tmpdir"/commit
-   git checkout os-build
+   git checkout "$target_branch"
 done
+
+git checkout "$prev_branch"

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2731
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 3/3] Add clang config framework

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Add clang config framework

Compiling for clang is getting trickier to do because the configs are
different than gcc in some cases.  Mimic the kgcov framework (which uses
priority files) to setup clang to be easier to update their configs.

This leads to strange cases where clang debug configs need different
settings than clang non-debug configs.  The priority.snip can handle the
variety of partial snippets for variants and arches well, the
kernel.spec needed to be updated to apply it reasonably.

I created a generic partial snippet loop that focuses on arch and
non-debug vs debug.  This required adding debug options to
priority.snip.  Once implemented it is a matter of collecting the
snippets and applying them based on arch and debug.  This should provide
a variety of flexibility for teams like clang and make it easier to roll
in config changes based on which compiler is used.

Signed-off-by: Don Zickus 

diff --git a/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK 
b/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/debug/CONFIG_KASAN_STACK
@@ -0,0 +1 @@
+CONFIG_KASAN_STACK=y
diff --git a/redhat/configs/common/clang/debug/CONFIG_KMSAN 
b/redhat/configs/common/clang/debug/CONFIG_KMSAN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/debug/CONFIG_KMSAN
@@ -0,0 +1 @@
+# CONFIG_KMSAN is not set
diff --git a/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK 
b/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/generic/CONFIG_KASAN_STACK
@@ -0,0 +1 @@
+# CONFIG_KASAN_STACK is not set
diff --git a/redhat/configs/common/clang/generic/CONFIG_KMSAN 
b/redhat/configs/common/clang/generic/CONFIG_KMSAN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang/generic/CONFIG_KMSAN
@@ -0,0 +1 @@
+# CONFIG_KMSAN is not set
diff --git a/redhat/configs/common/clang_lto/debug/README 
b/redhat/configs/common/clang_lto/debug/README
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/debug/README
diff --git a/redhat/configs/common/clang_lto/generic/README 
b/redhat/configs/common/clang_lto/generic/README
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/README
diff --git a/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN 
b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN
@@ -0,0 +1 @@
+CONFIG_LTO_CLANG_THIN=y
diff --git a/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE 
b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE
@@ -0,0 +1 @@
+# CONFIG_LTO_NONE is not set
diff --git a/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN 
b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN
@@ -0,0 +1 @@
+CONFIG_LTO_CLANG_THIN=y
diff --git a/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE 
b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE
@@ -0,0 +1 @@
+# CONFIG_LTO_NONE is not set
diff --git a/redhat/configs/priority.snip b/redhat/configs/priority.snip
index blahblah..blahblah 100644
--- a/redhat/configs/priority.snip
+++ b/redhat/configs/priority.snip
@@ -10,3 +10,12 @@ EMPTY=
 
 # gcov options
 kgcov=kgcov
+kgcov-debug=kgcov
+
+# clang options
+clang=clang-generic
+clang-debug=clang-debug
+clang_lto-x86_64=clang-generic:clang_lto-generic:clang_lto-generic-x86
+clang_lto-x86_64-debug=clang-debug:clang_lto-debug
+clang_lto-aarch64=clang-generic:clang_lto-generic:clang_lto-generic-arm
+clang_lto-aarch64-debug=clang-debug:clang_lto-debug
diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -908,7 +908,14 @@ Source65: filter-s390x.sh.fedora
 Source66: filter-modules.sh.fedora
 %endif
 
-Source75: partial-kgcov-snip.config
+Source70: partial-kgcov-snip.config
+Source71: partial-kgcov-debug-snip.config
+Source72: partial-clang-snip.config
+Source73: partial-clang-debug-snip.config
+Source74: partial-clang_lto-x86_64-snip.config
+Source75: partial-clang_lto-x86_64-debug-snip.config
+Source76: partial-clang_lto-aarch64-snip.config
+Source77

[OS-BUILD PATCHv2 2/3] Apply partial snippet configs to all configs

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Apply partial snippet configs to all configs

There is a macro all_arch_configs that tries to optimize what configs we
apply the partial snippets to.  While it speeds up things up a bit, it
creates conflicts with CLANG options.  The process_configs.sh script
still processes _all_ the arches and expects the CLANG options to be set
correctly.

I can either add in an arch specific option to process_configs.sh to
only process the configs the correct CLANG snippet was applied to _or_
just apply the snippets to _all_ the configs.

The latter is easier so that is what this change does.  The cost is an
extra second to apply the snippets to more config files.

Signed-off-by: Don Zickus 

diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template
index blahblah..blahblah 100644
--- a/redhat/kernel.spec.template
+++ b/redhat/kernel.spec.template
@@ -469,6 +469,8 @@ Summary: The Linux kernel
 %endif
 %endif
 
+%define all_configs %{name}-%{specrpmversion}-*.config
+
 # don't build noarch kernels or headers (duh)
 %ifarch noarch
 %define with_up 0
@@ -480,7 +482,6 @@ Summary: The Linux kernel
 %define with_bpftool 0
 %define with_selftests 0
 %define with_debug 0
-%define all_arch_configs %{name}-%{specrpmversion}-*.config
 %endif
 
 # sparse blows up on ppc
@@ -509,13 +510,11 @@ Summary: The Linux kernel
 %ifarch i686
 %define asmarch x86
 %define hdrarch i386
-%define all_arch_configs %{name}-%{specrpmversion}-i?86*.config
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
 %ifarch x86_64
 %define asmarch x86
-%define all_arch_configs %{name}-%{specrpmversion}-x86_64*.config
 %define kernel_image arch/x86/boot/bzImage
 %endif
 
@@ -526,19 +525,16 @@ Summary: The Linux kernel
 %define kernel_image vmlinux
 %define kernel_image_elf 1
 %define use_vdso 0
-%define all_arch_configs %{name}-%{specrpmversion}-ppc64le*.config
 %endif
 
 %ifarch s390x
 %define asmarch s390
 %define hdrarch s390
-%define all_arch_configs %{name}-%{specrpmversion}-s390x.config
 %define kernel_image arch/s390/boot/bzImage
 %define vmlinux_decompressor arch/s390/boot/vmlinux
 %endif
 
 %ifarch aarch64
-%define all_arch_configs %{name}-%{specrpmversion}-aarch64*.config
 %define asmarch arm64
 %define hdrarch arm64
 %define make_target vmlinuz.efi
@@ -1781,7 +1777,7 @@ FLAVOR=%{primary_target} SPECPACKAGE_NAME=%{name} 
SPECVERSION=%{specversion} SPE
 
 # Merge in any user-provided local config option changes
 %ifnarch %nobuildarches
-for i in %{all_arch_configs}
+for i in %{all_configs}
 do
   mv $i $i.tmp
   ./merge.py %{SOURCE3001} $i.tmp > $i

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 1/3] Remove unpackaged kgcov config files

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus 

Remove unpackaged kgcov config files

The kgcov option is applied as a partial snippet in the spec file.  The
generated kernel-*-kgcov.config are not packaged and therefore unused.

My motivation here is because they conflict with the CLANG options when
I overlay the CLANG options on the gcov config file.  Instead of special
casing them, let's just drop them.

Signed-off-by: Don Zickus 

diff --git a/redhat/configs/priority.fedora b/redhat/configs/priority.fedora
index blahblah..blahblah 100644
--- a/redhat/configs/priority.fedora
+++ b/redhat/configs/priority.fedora
@@ -22,21 +22,17 @@ EMPTY=s390x-zfcpdump
 # x86_64
 x86_64=generic:generic-x86
 x86_64-debug=generic:generic-x86:debug:debug-x86
-x86_64-kgcov=generic:generic-x86:kgcov
 
 # ppc64le
 ppc64le=generic:generic-powerpc
 ppc64le-debug=generic:generic-powerpc:debug:debug-powerpc
-ppc64le-kgcov=generic:generic-powerpc:kgcov
 
 # s390x
 s390x=generic:generic-s390x
 s390x-debug=generic:generic-s390x:debug:debug-s390x
-s390x-kgcov=generic:generic-s390x:kgcov
 
 # aarch64
 aarch64=generic:generic-arm:generic-arm-aarch64
 aarch64-debug=generic:generic-arm:generic-arm-aarch64:debug:debug-arm-aarch64
-aarch64-kgcov=generic:generic-arm:generic-arm-aarch64:kgcov
 aarch64-16k=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-16k
 
aarch64-16k-debug=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-16k:debug:debug-arm-aarch64:debug-arm-aarch64-16k
diff --git a/redhat/configs/priority.rhel b/redhat/configs/priority.rhel
index blahblah..blahblah 100644
--- a/redhat/configs/priority.rhel
+++ b/redhat/configs/priority.rhel
@@ -21,25 +21,21 @@ ORDER=common rhel pending-rhel custom-overrides
 # x86_64
 x86_64=generic:generic-x86
 x86_64-debug=generic:generic-x86:debug:debug-x86
-x86_64-kgcov=generic:generic-x86:kgcov
 x86_64-rt=generic:generic-x86:rt-generic:rt-generic-x86
 
x86_64-rt-debug=generic:generic-x86:debug:debug-x86:rt-generic:rt-generic-x86:rt-debug:rt-debug-x86
 
 # ppc64le
 ppc64le=generic:generic-powerpc
 ppc64le-debug=generic:generic-powerpc:debug:debug-powerpc
-ppc64le-kgcov=generic:generic-powerpc:kgcov
 
 # s390x
 s390x=generic:generic-s390x
 s390x-debug=generic:generic-s390x:debug:debug-s390x
 s390x-zfcpdump=generic:generic-s390x:generic-s390x-zfcpdump
-s390x-kgcov=generic:generic-s390x:kgcov
 
 # aarch64
 aarch64=generic:generic-arm:generic-arm-aarch64
 
aarch64-debug=generic:generic-arm:generic-arm-aarch64:debug:debug-arm:debug-arm-aarch64
-aarch64-kgcov=generic:generic-arm:generic-arm-aarch64:kgcov
 aarch64-64k=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-64k
 
aarch64-64k-debug=generic:generic-arm:generic-arm-aarch64:generic-arm-aarch64-64k:debug:debug-arm-aarch64:debug-arm-aarch64-64k
 
aarch64-rt=generic:generic-arm:generic-arm-aarch64:rt-generic:rt-generic-arm:rt-generic-arm-aarch64

--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


[OS-BUILD PATCHv2 0/3] Add clang config framework

2023-09-29 Thread Don Zickus (via Email Bridge)
From: Don Zickus on gitlab.com
Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654

Compiling for clang is getting trickier to do because the configs are
different than gcc in some cases.  Mimic the kgcov framework to setup
clang to be easier to update their configs.

This framework is designed to blindly merge.py with any configs fed to
it.  This is unlike the build_configs framework where it uses
priority.rhel|fedora rules to merge things.

This leads to strange cases where clang debug configs need different
settings than clang non-debug configs.  For non-lto clang, due to clang
bugs it is easy to disable the debug features and get away with this.
But once resolved we will have to reinvestigate.  For lto clang, I just
hack out the debug and kgcov config files due to clashing Kconfig depend
rules.

I don't expect this to be a long term solution.  Perhaps when our config
rework is fully realized this just melts away.  TBD.

Signed-off-by: Don Zickus 

---
 redhat/configs/common/clang/debug/CONFIG_KASAN_STACK  |   1 +
 redhat/configs/common/clang/debug/CONFIG_KMSAN|   1 +
 redhat/configs/common/clang/generic/CONFIG_KASAN_STACK|   1 +
 redhat/configs/common/clang/generic/CONFIG_KMSAN  |   1 +
 redhat/configs/common/clang_lto/debug/README  |   0 
 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN |   1 +
 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE   |   1 +
 redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN |   1 +
 redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE   |   1 +
 redhat/configs/common/clang_lto/generic/README|   0 
 redhat/configs/priority.fedora|   4 -
 redhat/configs/priority.rhel  |   4 -
 redhat/configs/priority.snip  |   9 +
 redhat/kernel.spec.template   |  78 
++---
 14 files changed, 70 insertions(+), 33 deletions(-)
___
kernel mailing list -- kernel@lists.fedoraproject.org
To unsubscribe send an email to kernel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue


  1   2   3   4   5   6   7   8   >