[OS-BUILD PATCH] Don't ignore gitkeep files for ark-infra
From: Don Zickus Don't ignore gitkeep files for ark-infra It was pointed out the the riscv kabi-module directory was missing because it only had a .gitkeep file which is ignored as a '.*' file in .gitignore. Add an entry to redhat/.gitignore to not ignore .gitkeep files. While at it, cleanup redhat/scripts/ci/ark-create-release.sh to include Kconfig.redhat in the ark-infra branch and remove the gitkeep note as it is fixed now. I updated ark-infra branch manually, so it is already resolved. This helps make sure it doesn't break again. Suggested-by: Ondrej Mosnacek Signed-off-by: Don Zickus diff --git a/redhat/.gitignore b/redhat/.gitignore index blahblah..blahblah 100644 --- a/redhat/.gitignore +++ b/redhat/.gitignore @@ -6,4 +6,6 @@ kabi/Module.kabi_* kabi/kabi-current kabi/kabi-rhel* kabi/kabi-rhel*/* -scripts/uki_addons/uki_addons.json \ No newline at end of file +scripts/uki_addons/uki_addons.json + +!.gitkeep diff --git a/redhat/scripts/ci/ark-create-release.sh b/redhat/scripts/ci/ark-create-release.sh index blahblah..blahblah 100755 --- a/redhat/scripts/ci/ark-create-release.sh +++ b/redhat/scripts/ci/ark-create-release.sh @@ -51,17 +51,15 @@ git reset --hard "$RELEASE" git checkout ark-infra # Using ark-latest because it has latest fixes -rm -rf makefile Makefile.rhelver redhat/ -git archive --format=tar ark-latest makefile Makefile.rhelver redhat/ | tar -x +rm -rf makefile Makefile.rhelver Kconfig.redhat redhat/ +git archive --format=tar ark-latest makefile Makefile.rhelver Kconfig.redhat redhat/ | tar -x # Manually add hook instead of cherry-pick # Add to middle to avoid git merge conflicts # NOTE: commented out but left for future info to rebuild from scratch # sed -i '/# We are using a recursive / i include Makefile.rhelver\n' Makefile -git add makefile Makefile.rhelver Makefile redhat -# Future rebuid note, .gitkeep files are gitignored and need force adding -# git add -f redhat/kabi/kabi-module/kabi* +git add makefile Makefile.rhelver Makefile Kconfig.redhat redhat git commit -m "bulk merge ark-infra as of $(date)" -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3473 -- ___ 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] Update the RHEL_DIFFERENCES help string
From: Don Zickus Update the RHEL_DIFFERENCES help string It was pointed out that the kconfig for RHEL_DIFFERENCES did not match the intention of the kconfig no more. Update the text to reflect the current usage. Signed-off-by: Don Zickus diff --git a/Kconfig.redhat b/Kconfig.redhat index blahblah..blahblah 100644 --- a/Kconfig.redhat +++ b/Kconfig.redhat @@ -6,13 +6,10 @@ menu "Red Hat options" config RHEL_DIFFERENCES - bool "Remove support for deprecated features" + bool "Enable RHEL-only code" help - Red Hat may choose to deprecate certain features in its kernels. - Enable this option to remove support for hardware that is no - longer supported. - - Unless you want a restricted kernel, say N here. + This option controls whether rhel-only changes are enabled during + the build. Unless you want to enable rhel-only changes, say N here. config RH_KABI_SIZE_ALIGN_CHECKS bool "Enables more stringent kabi checks in the macros" -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3466 -- ___ 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] Update the RHEL_DIFFERENCES help string
From: Don Zickus Update the RHEL_DIFFERENCES help string It was pointed out that the kconfig for RHEL_DIFFERENCES did not match the intention of the kconfig no more. Update the text to reflect the current usage. Signed-off-by: Don Zickus diff --git a/Kconfig.redhat b/Kconfig.redhat index blahblah..blahblah 100644 --- a/Kconfig.redhat +++ b/Kconfig.redhat @@ -6,13 +6,14 @@ menu "Red Hat options" config RHEL_DIFFERENCES - bool "Remove support for deprecated features" + bool "Enable RHEL-only code" help - Red Hat may choose to deprecate certain features in its kernels. - Enable this option to remove support for hardware that is no - longer supported. + This option makes it simple to disable RHEL-only code to compare + with upstream. RHEL-only code is necessary for RHEL features but + unnecessary for Fedora. Disabling allows the Fedora community to + compile code closer to upstream. - Unless you want a restricted kernel, say N here. + Unless you want to enable RHEL-only features, say N here. config RH_KABI_SIZE_ALIGN_CHECKS bool "Enables more stringent kabi checks in the macros" -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3466 -- ___ 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] Minor updates for common config
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3423#note_2171808116 @pbrobinson - can you update your gitconfig to use your non-redhat email as commit author? thanks! -- ___ 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] [redhat] scripts: check for `gitlab` command in ark-create-release.sh
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3439#note_2162655000 I am fine if things start working again, which it sounds like they should. I do wonder if making sure the gitlab package is in every container we happen to pick for the month is the best stress free thing we can do. I did like the 'dnf install gitlab' MR because it put our dependencies in our scripts. But meh. Let's move along.. -- ___ 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] configs for RT deps
From: Clark Williams configs for RT deps Signed-off-by: Clark Williams diff --git a/redhat/configs/pending-fedora/generic/CONFIG_PREEMPT_RT b/redhat/configs/pending-fedora/generic/CONFIG_PREEMPT_RT deleted file mode 100644 index blahblah..blahblah 0 --- a/redhat/configs/pending-fedora/generic/CONFIG_PREEMPT_RT +++ /dev/null @@ -1,15 +0,0 @@ -# Symbol: PREEMPT_RT [=n] -# Type : bool -# Defined at kernel/Kconfig.preempt:70 -# Prompt: Fully Preemptible Kernel (Real-Time) -# Depends on: EXPERT [=y] && ARCH_SUPPORTS_RT [=y] -# Location: -# -> General setup -# -> Preemption Model ( [=n]) -# -> Fully Preemptible Kernel (Real-Time) (PREEMPT_RT [=n]) -# Selects: PREEMPTION [=y] -# -# -# -# Commit: a50a3f4b6a31 (sched/rt, Kconfig: Introduce CONFIG_PREEMPT_RT) -# CONFIG_PREEMPT_RT is not set diff --git a/redhat/configs/rhel/rt/debug/CONFIG_PREEMPT_VOLUNTARY b/redhat/configs/rhel/rt/debug/CONFIG_PREEMPT_VOLUNTARY index blahblah..blahblah 100644 --- a/redhat/configs/rhel/rt/debug/CONFIG_PREEMPT_VOLUNTARY +++ b/redhat/configs/rhel/rt/debug/CONFIG_PREEMPT_VOLUNTARY @@ -1 +1 @@ -CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT_VOLUNTARY is not set diff --git a/redhat/configs/rhel/rt/generic/CONFIG_DRM_MGAG200_DISABLE_WRITECOMBINE b/redhat/configs/rhel/rt/generic/CONFIG_DRM_MGAG200_DISABLE_WRITECOMBINE new file mode 100644 index blahblah..blahblah 100644 --- /dev/null +++ b/redhat/configs/rhel/rt/generic/CONFIG_DRM_MGAG200_DISABLE_WRITECOMBINE @@ -0,0 +1 @@ +CONFIG_DRM_MGAG200_DISABLE_WRITECOMBINE=y diff --git a/redhat/configs/rhel/rt/generic/CONFIG_PREEMPT_DYNAMIC b/redhat/configs/rhel/rt/generic/CONFIG_PREEMPT_DYNAMIC index blahblah..blahblah 100644 --- a/redhat/configs/rhel/rt/generic/CONFIG_PREEMPT_DYNAMIC +++ b/redhat/configs/rhel/rt/generic/CONFIG_PREEMPT_DYNAMIC @@ -1 +1 @@ -CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_PREEMPT_DYNAMIC is not set diff --git a/redhat/configs/rhel/rt/generic/CONFIG_PREEMPT_VOLUNTARY b/redhat/configs/rhel/rt/generic/CONFIG_PREEMPT_VOLUNTARY index blahblah..blahblah 100644 --- a/redhat/configs/rhel/rt/generic/CONFIG_PREEMPT_VOLUNTARY +++ b/redhat/configs/rhel/rt/generic/CONFIG_PREEMPT_VOLUNTARY @@ -1 +1 @@ -CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_PREEMPT_VOLUNTARY is not set -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3427 -- ___ 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] gitlab-ci: allow failure of clang LTO pipelines
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3345#note_2100221441 @berrange - awesome thanks. Now i remember. makes sense. -- ___ 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] gitlab-ci: allow failure of clang LTO pipelines
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3345#note_2100123243 I believe this works. I forgot what the pipeline looks like when LTO fails. I think it still shows a failure, but the overall logic ignores it. IOW if a developer clicks on the pipeline it might create confusion. I can't think of an alternate way, so I am ok with it, if my understanding is true. -- ___ 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: Drop bpftool from kernel spec
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3338#note_2092891192 Nope I think you investigated my concerns. I am good. Thanks! -- ___ 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: Drop bpftool from kernel spec
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3338#note_2092188974 @vmalikrh - i would enjoy removing our cki hack for vmlinux.h :-) I am curious how you handle updating bpftool package? One scenario that has been tricky in the past is a newer bpftool update using an older buildroot kernel- devel. I believe you get a vmlinux.h that is mismatched. And does the bpftool accidentally use the build system files to make checks instead of the buildroot? We had to put Makefile hacks for bpftool to inject the right vmlinux.h file and others?? into the build process to override the system files found on the AWS builders. Thoughts? -- ___ 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] Revert "pidfd: prevent creation of pidfds for kthreads"
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3325#note_2073442821 @jmflinuxtx - this is the command the ci script runs. if you put the MR in draft, run the snippet below and the url for 3325 pops up, then everything stills works. :-) gitlab project-merge-request list --project-id="13604247" --labels="Include in Releases" --state=opened | grep -v "^$" | sort | awk '{ print "https://gitlab.com/cki-project/kernel-ark/-/merge_requests/"; $2 ".patch" }' -- ___ 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
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2749#note_2049735341 i think this was resolved upstream and after 10 months clearly isn't needed. Closing. -- ___ 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] Ignore: testing email bridge service
From: Don Zickus Ignore: testing email bridge service Signed-off-by: Don Zickus diff --git a/redhat/Makefile b/redhat/Makefile index blahblah..blahblah 100644 --- a/redhat/Makefile +++ b/redhat/Makefile @@ -1,5 +1,7 @@ include Makefile.variables +# Dummy comment to test the patchlab email bridge +# # # Deprecated variables # -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/3219 -- ___ 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: enable RTL8822BU for rhel
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
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
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
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
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
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
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
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
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
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
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"; 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" -- 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.
[OS-BUILD PATCHv3 1/2] Add support for CI octopus merging
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_devel_branch" 2>/dev/null + git checkout -b "$temp_devel_branch" "$OS_BUILD_BASE_BRANCH" + git merge "$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH" + git checkout "$prev_branch" - ark_git_rebase "$RT_DEVEL_BRANCH" "$temp_branch" "$RT_AUTOMATED_BRANCH" - ark_git_rebase "$AUTOMOTIVE_DEVEL_BRANCH" "$temp_branch" "$RT_AUTOMATED_BRANCH" - git branch -D "$temp_branch" +# do the git rebase --onto $temp_devel_branch $temp_prev_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" +
[OS-BUILD PATCHv3 0/2] Fix nightly rt and automotive merging
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
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"; 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" -- 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.
[OS-BUILD PATCHv2 2/3] Add support for CI octopus merging
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_devel_branch" 2>/dev/null + git checkout -b "$temp_devel_branch" "$OS_BUILD_BASE_BRANCH" + git merge "$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH" + git checkout "$prev_branch" - ark_git_rebase "$RT_DEVEL_BRANCH" "$temp_branch" "$RT_AUTOMATED_BRANCH" - ark_git_rebase "$AUTOMOTIVE_DEVEL_BRANCH" "$temp_branch" "$RT_AUTOMATED_BRANCH" - git branch -D "$temp_branch" +# do the git rebase --onto $temp_devel_branch $temp_prev_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" +
[OS-BUILD PATCHv2 1/3] [redhat] New configs in drivers/hid
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
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
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 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_devel_branch" 2>/dev/null + git checkout -b "$temp_devel_branch" "$OS_BUILD_BASE_BRANCH" + git merge "$UPSTREAM_RT_TREE_NAME/$UPSTREAM_RT_DEVEL_BRANCH" + git checkout "$prev_branch" - ark_git_rebase "$RT_DEVEL_BRANCH" "$temp_branch" "$RT_AUTOMATED_BRANCH" - ark_git_rebase "$AUTOMOTIVE_DEVEL_BRANCH" "$temp_branch" "$RT_AUTOMATED_BRANCH" - git branch -D "$temp_branch" +# do the g
[OS-BUILD PATCH 2/2] Remove rt-automated and master-rt-devel logic
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"; 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" -- 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.
[OS-BUILD PATCH 0/2] Fix nightly rt and automotive merging
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.
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/printk_ringbuffer.h
Re: [OS-BUILD PATCHv3] Enable merge-rt pipeline
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
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
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
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
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
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)
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)
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
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'" "$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() +{ + rebase_branch="$1" + _upstream="$2" + _base="$3" + + prev
Re: [OS-BUILD PATCH 0/2] tools/rtla: Fix Makefile compiler options for clang
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
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
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
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
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
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'" "$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() +{ + rebase_branch="$1" + _upstream="$2" + _base="$3" + + prev
Re: [OS-BUILD PATCHv9 0/2] Add new os-build targets: rt-devel and automotive-devel
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
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'" "$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() +{ + rebase_branch="$1" + _upstream="$2" + _base="$3" + + prev
[OS-BUILD PATCHv9 1/2] Add python3-pyyaml to buildreqs for kernel-docs
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
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
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
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 + 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() +{ + local branch="$1" + local upstream="$2" + local base="$3" + + prev_branch="$(g
[OS-BUILD PATCHv8 1/2] Add python3-pyyaml to buildreqs for kernel-docs
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
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
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
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 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" ] && CONFIGS_ADDED="1" || CONFIGS_ADDED="" + + if test "$CONFIGS_ADDED"; then +
[OS-BUILD PATCHv6] Add new os-build targets: rt-devel and automotive-devel
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 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" ] && CONFIGS_ADDED="1" || CONFIGS_ADDED="" + + if test "$CONFIGS_ADDED"; then +
Re: [OS-BUILD PATCHv5] Add new os-build targets: rt-devel and automotive-devel
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
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 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" ] && CONFIGS_ADDED="1" || CONFIGS_ADDED="" + + if test "$CONFIGS_ADDED"; then +
[OS-BUILD PATCHv4] Add new os-build targets: rt-devel and automotive-devel
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" ] && CONFIGS_ADDED="1" || CONFIGS_ADDED="" + + if test "$CONFIGS_ADDED"; then + if test -z "$skip_configs"; then + git checkout "$prev_branch" + ./redhat/scripts/genspec/gen_config_patches.sh "$branch" + fi + else + printf "No new configuration values exposed from " + printf "merging %s into $BRANCH\n" "$UPSTREAM_REF" + fi + + git c
Re: [OS-BUILD PATCHv3 0/0] Add new os-build targets: rt-devel and automotive-devel
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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" ] && CONFIGS_ADDED="1" || CONFIGS_ADDED="" + + if test "$CONFIGS_ADDED"; then + if test -z "$skip_configs"; then + git checkout "$prev_branch" + ./redhat/scripts/genspec/gen_config_patches.sh "$branch" + fi + else + printf "No new configuration values exposed from " + printf "merging %s into $BRANCH\n" "$UPSTREAM_REF" + fi + + git c
[OS-BUILD PATCHv2 1/2] Add target_branch for gen_config_patches.sh
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
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