Re: [OS-BUILD PATCH 0/3] Add clang config framework
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1582704141 Agreed, I tried to make sure nothing changed for users. This is just an internal thing. ___ 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 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
Re: [OS-BUILD PATCH 0/3] Add clang config framework
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1579247973 @tales-aparecida pushed fix. 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
[OS-BUILD PATCH 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 | 77 ++--- 14 files changed, 70 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 PATCH 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 @@ -469,6 +469,8 @@ Summary: The Linux kernel %endif %endif +%define all_arch_configs %{name}-%{specrpmversion}-*.config + # don't build noarch kernels or headers (duh) %ifarch noarch %define with_up 0 @@ -480,7 +482,6 @@ Summary: The Linux kernel %define with_bpftool 0 %define with_selftests 0 %define with_debug 0 -%define all_arch_configs %{name}-%{specrpmversion}-*.config %endif # sparse blows up on ppc @@ -509,13 +510,11 @@ Summary: The Linux kernel %ifarch i686 %define asmarch x86 %define hdrarch i386 -%define all_arch_configs %{name}-%{specrpmversion}-i?86*.config %define kernel_image arch/x86/boot/bzImage %endif %ifarch x86_64 %define asmarch x86 -%define all_arch_configs %{name}-%{specrpmversion}-x86_64*.config %define kernel_image arch/x86/boot/bzImage %endif @@ -526,19 +525,16 @@ Summary: The Linux kernel %define kernel_image vmlinux %define kernel_image_elf 1 %define use_vdso 0 -%define all_arch_configs %{name}-%{specrpmversion}-ppc64le*.config %endif %ifarch s390x %define asmarch s390 %define hdrarch s390 -%define all_arch_configs %{name}-%{specrpmversion}-s390x.config %define kernel_image arch/s390/boot/bzImage %define vmlinux_decompressor arch/s390/boot/vmlinux %endif %ifarch aarch64 -%define all_arch_configs %{name}-%{specrpmversion}-aarch64*.config %define asmarch arm64 %define hdrarch arm64 %define make_target vmlinuz.efi -- 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 PATCH 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 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
[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&qu
[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 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 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 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
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 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
[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 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
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
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 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
[OS-BUILD PATCH] 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/2731 ___ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
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_1584560878 It appears I can only 'cp file1 file2' and not multiple files. I am going to skip this suggestion unless someone can point out what I am messing up. ___ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
[OS-BUILD PATCHv3 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 PATCHv3 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 PATCHv3 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 PATCHv3 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 @@ -469,6 +469,8 @@ Summary: The Linux kernel %endif %endif +%define all_configs %{name}-%{specrpmversion}-*.config + # don't build noarch kernels or headers (duh) %ifarch noarch %define with_up 0 @@ -480,7 +482,6 @@ Summary: The Linux kernel %define with_bpftool 0 %define with_selftests 0 %define with_debug 0 -%define all_arch_configs %{name}-%{specrpmversion}-*.config %endif # sparse blows up on ppc @@ -509,13 +510,11 @@ Summary: The Linux kernel %ifarch i686 %define asmarch x86 %define hdrarch i386 -%define all_arch_configs %{name}-%{specrpmversion}-i?86*.config %define kernel_image arch/x86/boot/bzImage %endif %ifarch x86_64 %define asmarch x86 -%define all_arch_configs %{name}-%{specrpmversion}-x86_64*.config %define kernel_image arch/x86/boot/bzImage %endif @@ -526,19 +525,16 @@ Summary: The Linux kernel %define kernel_image vmlinux %define kernel_image_elf 1 %define use_vdso 0 -%define all_arch_configs %{name}-%{specrpmversion}-ppc64le*.config %endif %ifarch s390x %define asmarch s390 %define hdrarch s390 -%define all_arch_configs %{name}-%{specrpmversion}-s390x.config %define kernel_image arch/s390/boot/bzImage %define vmlinux_decompressor arch/s390/boot/vmlinux %endif %ifarch aarch64 -%define all_arch_configs %{name}-%{specrpmversion}-aarch64*.config %define asmarch arm64 %define hdrarch arm64 %define make_target vmlinuz.efi @@ -1781,7 +1777,7 @@ FLAVOR=%{primary_target} SPECPACKAGE_NAME=%{name} SPECVERSION=%{specversion} SPE # Merge in any user-provided local config option changes %ifnarch %nobuildarches -for i in %{all_arch_configs} +for i in %{all_configs} do mv $i $i.tmp ./merge.py %{SOURCE3001} $i.tmp > $i -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654 ___ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
[OS-BUILD PATCH 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
[OS-BUILD PATCH 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 | 151 +++ redhat/scripts/ci/ark-merge-rt.sh| 96 + redhat/scripts/ci/ark-update-configs.sh |4 +- redhat/scripts/genspec/gen_config_patches.sh | 12 +- 4 files changed, 258 insertions(+), 5 deletions(-) ___ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
[OS-BUILD PATCH 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,157 @@ ci_pre_check() git diff-index --quiet HEAD || die "Dirty tree, please clean before merging." } +# GitLab can only mirror one project at a time. This wrapper function does +# the mirroring for any other branches. +ark_git_mirror() +{ + target_branch=$1 + upstream_tree=$2 + source_branch=$3 + reset_branch=$4 + + prev_branch="$(git rev-parse --abbrev-ref HEAD)" + remote_branch="$upstream_tree/$source_branch" + git checkout "$target_branch" + git fetch "$upstream_tree" "$source_branch" + if test -z "$reset_branch"; then + git merge "$remote_branch" || die "git merge $remote_branch failed" + else + git reset --hard "$remote_branch" || die "git reset $remote_branch failed" + fi + git checkout "$prev_branch" +} + +# Merge wrapper in case issues arise +ark_git_merge() +{ + source_branch=$1 + target_branch=$2 + reset_branch=$3 + + prev_branch="$(git rev-parse --abbrev-ref HEAD)" + git checkout "${target_branch}" + if test -n "$reset_branch"; then + # there are cases when the initial merge is a reset + git reset --hard "$source_branch" || die "git reset $source_branch failed" + elif ! git merge -m "Merge '$source_branch' into '$target_branch'" "$source_branch"; then + git merge --abort + printf "Merge conflict; halting!\n" + printf "To reproduce:\n" + printf "* git checkout %s\n" "${target_branch}" + printf "* git merge %s\n" "${source_branch}" + die "Merge conflicts" + fi + + git checkout "$prev_branch" + return 0 +} + +ark_git_rebase() +{ + branch=$1 + upstream=$2 + base=$3 + + prev_branch="$(git rev-parse --abbrev-ref HEAD)" + git checkout "${branch}" + if ! git rebase --onto "$base" "$upstream"; then + git rebase --abort + printf "Rebase conflict; halting!\n" + printf "To reproduce:\n" + printf "* git checkout %s\n" "${branch}" + printf "* git rebase --onto %s %s\n" "${base}" "${upstream}" + die "Rebase conflicts" + fi + git checkout "$prev_branch" + return 0 +} + +ark_update_configs() +{ + branch=$1 + skip_configs=$2 + + prev_branch="$(git rev-parse --abbrev-ref HEAD)" + git checkout "${branch}" + + # Generates and commits all the pending configs + make -j FLAVOR=fedora dist-configs-commit + # Skip executing gen_config_patches.sh for new Fedora configs + + old_head="$(git rev-parse HEAD)" + make -j FLAVOR=rhel dist-configs-commit + new_head="$(git rev-parse HEAD)" + + + # Converts each new pending config from above into its finalized git + # configs// branch. These commits are used for Merge + # Requests. + [ "$old_head" != "$new_head&qu
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
Re: [OS-BUILD PATCH 0/3] Add clang config framework
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654#note_1584466006 Resolving the thread as it appears stan agreed with Jan's reply below. ___ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
[OS-BUILD PATCHv2 0/3] Add clang config framework
From: Don Zickus on gitlab.com Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654 Compiling for clang is getting trickier to do because the configs are different than gcc in some cases. Mimic the kgcov framework to setup clang to be easier to update their configs. This framework is designed to blindly merge.py with any configs fed to it. This is unlike the build_configs framework where it uses priority.rhel|fedora rules to merge things. This leads to strange cases where clang debug configs need different settings than clang non-debug configs. For non-lto clang, due to clang bugs it is easy to disable the debug features and get away with this. But once resolved we will have to reinvestigate. For lto clang, I just hack out the debug and kgcov config files due to clashing Kconfig depend rules. I don't expect this to be a long term solution. Perhaps when our config rework is fully realized this just melts away. TBD. Signed-off-by: Don Zickus --- redhat/configs/common/clang/debug/CONFIG_KASAN_STACK | 1 + redhat/configs/common/clang/debug/CONFIG_KMSAN| 1 + redhat/configs/common/clang/generic/CONFIG_KASAN_STACK| 1 + redhat/configs/common/clang/generic/CONFIG_KMSAN | 1 + redhat/configs/common/clang_lto/debug/README | 0 redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_CLANG_THIN | 1 + redhat/configs/common/clang_lto/generic/arm/CONFIG_LTO_NONE | 1 + redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_CLANG_THIN | 1 + redhat/configs/common/clang_lto/generic/x86/CONFIG_LTO_NONE | 1 + redhat/configs/common/clang_lto/generic/README| 0 redhat/configs/priority.fedora| 4 - redhat/configs/priority.rhel | 4 - redhat/configs/priority.snip | 9 + redhat/kernel.spec.template | 78 ++--- 14 files changed, 70 insertions(+), 33 deletions(-) ___ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
[OS-BUILD PATCHv2 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 PATCHv2 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 @@ -469,6 +469,8 @@ Summary: The Linux kernel %endif %endif +%define all_configs %{name}-%{specrpmversion}-*.config + # don't build noarch kernels or headers (duh) %ifarch noarch %define with_up 0 @@ -480,7 +482,6 @@ Summary: The Linux kernel %define with_bpftool 0 %define with_selftests 0 %define with_debug 0 -%define all_arch_configs %{name}-%{specrpmversion}-*.config %endif # sparse blows up on ppc @@ -509,13 +510,11 @@ Summary: The Linux kernel %ifarch i686 %define asmarch x86 %define hdrarch i386 -%define all_arch_configs %{name}-%{specrpmversion}-i?86*.config %define kernel_image arch/x86/boot/bzImage %endif %ifarch x86_64 %define asmarch x86 -%define all_arch_configs %{name}-%{specrpmversion}-x86_64*.config %define kernel_image arch/x86/boot/bzImage %endif @@ -526,19 +525,16 @@ Summary: The Linux kernel %define kernel_image vmlinux %define kernel_image_elf 1 %define use_vdso 0 -%define all_arch_configs %{name}-%{specrpmversion}-ppc64le*.config %endif %ifarch s390x %define asmarch s390 %define hdrarch s390 -%define all_arch_configs %{name}-%{specrpmversion}-s390x.config %define kernel_image arch/s390/boot/bzImage %define vmlinux_decompressor arch/s390/boot/vmlinux %endif %ifarch aarch64 -%define all_arch_configs %{name}-%{specrpmversion}-aarch64*.config %define asmarch arm64 %define hdrarch arm64 %define make_target vmlinuz.efi @@ -1781,7 +1777,7 @@ FLAVOR=%{primary_target} SPECPACKAGE_NAME=%{name} SPECVERSION=%{specversion} SPE # Merge in any user-provided local config option changes %ifnarch %nobuildarches -for i in %{all_arch_configs} +for i in %{all_configs} do mv $i $i.tmp ./merge.py %{SOURCE3001} $i.tmp > $i -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2654 ___ kernel mailing list -- kernel@lists.fedoraproject.org To unsubscribe send an email to kernel-le...@lists.fedoraproject.org Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/kernel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
[OS-BUILD PATCHv2 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
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_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 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_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
[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 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
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 PATCHv2] redhat/configs: disable CONFIG_ROCKCHIP_ERRATUM_3588001 for RHEL
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2526#note_1521767186 @mlangsdorf @jlinton - review? ___ 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 CONFIG_DEVICE_PRIVATE on aarch64
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2639#note_1521766040 @raquini @ddutile - mm review? ___ 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 tarball creation logic
From: Don Zickus Fix tarball creation logic The create tarball logic tried to determine if the tarball existed or not by using a git sha. However the check always failed because the current sha was shortened and the tarball sha was the full 40 digits. Correct this by converting the shortened sha into the full sha so the comparison actually works. Signed-off-by: Don Zickus diff --git a/redhat/scripts/create-tarball.sh b/redhat/scripts/create-tarball.sh index blahblah..blahblah 100755 --- a/redhat/scripts/create-tarball.sh +++ b/redhat/scripts/create-tarball.sh @@ -9,6 +9,9 @@ XZ_THREADS="--threads $RHJOBS" ARCH=$(arch) XZ_OPTIONS="" +# turn from shorten sha to 40 digit sha +_GITID="$(git rev-parse "$_GITID")" + if [ "$ARCH" != "x86_64" ] then XZ_OPTIONS="-M 3G" -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2658 ___ 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] Makefile: only depend on dist-buildreq-check when building actual RPMs
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1781#note_949736929 I used a macro to address this. This seems to work. Thoughts? https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH 1/3] [redhat] Explicitly set srpm requirements
From: Don Zickus [redhat] Explicitly set srpm requirements It isn't clear what packages are necessary to be installed to generate the srpm for the kernel. Use another spec macro to call out the exact packages needed. This allows a makefile target to be used to verify the right packages have been installed. Signed-off-by: Don Zickus diff --git a/redhat/Makefile b/redhat/Makefile index blahblah..blahblah 100644 --- a/redhat/Makefile +++ b/redhat/Makefile @@ -84,6 +84,7 @@ TESTPATCH:=$(REDHAT)/linux-kernel-test.patch SPECCHANGELOG:=$(PACKAGE_NAME).changelog-$(RHEL_MAJOR).$(RHEL_MINOR) CHANGELOG_PREV:=$(PACKAGE_NAME).changelog-$(RHEL_MAJOR).$(shell expr $(RHEL_MINOR) - 1) ARCH_LIST=aarch64 ppc64le s390x x86_64 +SPECSRPMBUILDREQS := git-core make gcc flex bison bzip2 ifndef DISTRO ifneq ($(findstring .fc,$(DIST)),) @@ -391,7 +392,7 @@ rh-configs: dist-rhel-configs dist-configs-check: dist-configs-prep +cd $(REDHAT)/configs; ./process_configs.sh $(PROCESS_CONFIGS_CHECK_OPTS) "" "" -dist-configs-prep: dist-clean-configs dist-buildreq-check +dist-configs-prep: dist-clean-configs dist-srpmbuildreq-check +cd $(REDHAT)/configs; ./build_configs.sh "partial" "snip" +cd $(REDHAT)/configs; ./build_configs.sh "$(PACKAGE_NAME)" "$(FLAVOR)" @@ -469,6 +470,17 @@ dist-git-version-check: exit 1; \ fi +dist-srpmbuildreq-check: setup-source + @PKGLIST="rpm-build $(SPECSRPMBUILDREQS)"; \ + MISSING=""; \ + for pkg in $$PKGLIST; do \ + rpm -q --whatprovides $$pkg >/dev/null || MISSING="$$MISSING $$pkg"; \ + done; \ + if [ -n "$$MISSING" ]; then \ + echo "Error: please 'dnf install $$MISSING'"; \ + exit 1; \ + fi + dist-buildreq-check: setup-source @PKGLIST="rpm-build $$(rpmspec -q --buildrequires $(SOURCES)/$(SPECFILE) | cut -d ' ' -f 1)"; \ MISSING=""; \ @@ -812,6 +824,7 @@ dist-full-help: @echo '' @echo 'Misc targets:' + @echo ' dist-srpmbuildreq-check - Checks for presence of packages required for the srpm' @echo ' dist-buildreq-check - Checks for presence of packages required for build' @echo ' dist-get-latest - Returns the latest "known good" kernel from brew. This' @echo 'should not be confused with the latest top-of-tree' diff --git a/redhat/genspec.sh b/redhat/genspec.sh index blahblah..blahblah 100755 --- a/redhat/genspec.sh +++ b/redhat/genspec.sh @@ -70,6 +70,7 @@ test -f "$SOURCES/$SPECFILE" && s/%%SPECINCLUDE_RHEL_FILES%%/$SPECINCLUDE_RHEL_FILES/ s/%%SPECPATCHLIST_CHANGELOG%%/$SPECPATCHLIST_CHANGELOG/ s/%%SPECVERSION%%/$SPECVERSION/ + s/%%SPECSRPMBUILDREQS%%/$SPECSRPMBUILDREQS/ s/%%SPECTARFILE_RELEASE%%/$SPECTARFILE_RELEASE/" "$SOURCES/$SPECFILE" test -n "$RHSELFTESTDATA" && test -f "$SOURCES/$SPECFILE" && sed -i -e " /%%SPECCHANGELOG%%/r $SOURCES/$SPECCHANGELOG diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template index blahblah..blahblah 100755 --- a/redhat/kernel.spec.template +++ b/redhat/kernel.spec.template @@ -570,9 +570,10 @@ Requires: kernel-modules-uname-r = %{KVERREL} # # List the packages used during the kernel build # -BuildRequires: kmod, patch, bash, coreutils, tar, git-core, which -BuildRequires: bzip2, xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, make, diffutils, gawk -BuildRequires: gcc, binutils, redhat-rpm-config, hmaccalc, bison, flex, gcc-c++ +BuildRequires: %%SPECSRPMBUILDREQS%% +BuildRequires: kmod, patch, bash, coreutils, tar, which +BuildRequires: xz, findutils, gzip, m4, perl-interpreter, perl-Carp, perl-devel, perl-generators, diffutils, gawk +BuildRequires: binutils, redhat-rpm-config, hmaccalc, gcc-c++ BuildRequires: net-tools, hostname, bc, elfutils-devel BuildRequires: dwarves BuildRequires: python3-devel -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH 2/3] [redhat] Makefile: drop duplicate dist-sources deps
From: Ondrej Mosnacek [redhat] Makefile: drop duplicate dist-sources deps do-rpmbuild itself already depends on dist-sources, thus no need to specify when we depend on do-rpmbuild already. Signed-off-by: Ondrej Mosnacek diff --git a/redhat/Makefile b/redhat/Makefile index blahblah..blahblah 100644 --- a/redhat/Makefile +++ b/redhat/Makefile @@ -574,29 +574,29 @@ do-rpmbuild: dist-sources $(RPMBUILD) --define "_sourcedir $(SOURCES)" --define "_builddir $(RPM)/BUILD" --define "_srcrpmdir $(RPM)/SRPMS" --define "_rpmdir $(RPM)/RPMS" --define "_specdir $(RPM)/SPECS" --define "dist $(DIST)" $(RPMBUILDOPTS) $(RPM)/SOURCES/$(PACKAGE_NAME).spec dist-all-rpms: RPMBUILDOPTS=--target $(MACH) -ba -dist-all-rpms: dist-sources do-rpmbuild +dist-all-rpms: do-rpmbuild dist-srpm: RPMBUILDOPTS=--nodeps -bs -dist-srpm: dist-sources do-rpmbuild +dist-srpm: do-rpmbuild dist-srpm-gcov: BUILDID=.gcov dist-srpm-gcov: BUILDOPTS+=+gcov dist-srpm-gcov: dist-srpm dist-rpms: RPMBUILDOPTS=--target $(MACH) -bb -dist-rpms: dist-sources do-rpmbuild +dist-rpms: do-rpmbuild -dist-kernel-%: dist-sources +dist-kernel-%: RPMBUILDOPTS="--target $(MACH) --with $* -bb" make do-rpmbuild dist-prep: RPMBUILDOPTS=--nodeps --target noarch -bp -dist-prep: dist-sources do-rpmbuild +dist-prep: do-rpmbuild dist-perf: RPMBUILDOPTS=--without up --without smp --without zfcpdump --without debug --without doc --without headers --without --without doc --without debuginfo --target $(MACH) -bb -dist-perf: dist-sources do-rpmbuild +dist-perf: do-rpmbuild dist-rpm-baseonly: RPMBUILDOPTS=--target $(MACH) --without debug --without debuginfo --without vdso_install --without bpftool --without perf --without tools -bb -dist-rpm-baseonly: dist-sources do-rpmbuild +dist-rpm-baseonly: do-rpmbuild # unless you know what you're doing, you don't want to use the next four ones dist-release-finish: setup-source -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH 0/3] Implement better SRPM BuildRequires check
From: Don Zickus on gitlab.com Merge Request: https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786 Developers want to build a srpm locally and submit it to a build server like Koji. The current process checks the BuildRequires in the kernel.spec file to ensure all the right packages are there. However, that list includes too many packages. Reduce the list to the bare minimum. In addition cleanup the Makefile and utilize the original buildreqs-check target better. Signed-off-by: Don Zickus --- redhat/Makefile | 33 - redhat/genspec.sh | 1 + redhat/kernel.spec.template | 7 --- 3 files changed, 29 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH 3/3] [redhat] Add dist-buildreq-check for binary rpm builds
From: Don Zickus [redhat] Add dist-buildreq-check for binary rpm builds By simplifying the package check to srpm only, we neglect to check the packaging for local binary rpm building. Add that Makefile dependency for those cases. Signed-off-by: Don Zickus diff --git a/redhat/Makefile b/redhat/Makefile index blahblah..blahblah 100644 --- a/redhat/Makefile +++ b/redhat/Makefile @@ -573,8 +573,10 @@ dist-test-patch: generate-testpatch-tmp do-rpmbuild: dist-sources $(RPMBUILD) --define "_sourcedir $(SOURCES)" --define "_builddir $(RPM)/BUILD" --define "_srcrpmdir $(RPM)/SRPMS" --define "_rpmdir $(RPM)/RPMS" --define "_specdir $(RPM)/SPECS" --define "dist $(DIST)" $(RPMBUILDOPTS) $(RPM)/SOURCES/$(PACKAGE_NAME).spec +do-rpmbuild-binary: dist-buildreq-check do-rpmbuild + dist-all-rpms: RPMBUILDOPTS=--target $(MACH) -ba -dist-all-rpms: do-rpmbuild +dist-all-rpms: do-rpmbuild-binary dist-srpm: RPMBUILDOPTS=--nodeps -bs dist-srpm: do-rpmbuild @@ -584,19 +586,19 @@ dist-srpm-gcov: BUILDOPTS+=+gcov dist-srpm-gcov: dist-srpm dist-rpms: RPMBUILDOPTS=--target $(MACH) -bb -dist-rpms: do-rpmbuild +dist-rpms: do-rpmbuild-binary dist-kernel-%: - RPMBUILDOPTS="--target $(MACH) --with $* -bb" make do-rpmbuild + RPMBUILDOPTS="--target $(MACH) --with $* -bb" make do-rpmbuild-binary dist-prep: RPMBUILDOPTS=--nodeps --target noarch -bp dist-prep: do-rpmbuild dist-perf: RPMBUILDOPTS=--without up --without smp --without zfcpdump --without debug --without doc --without headers --without --without doc --without debuginfo --target $(MACH) -bb -dist-perf: do-rpmbuild +dist-perf: do-rpmbuild-binary dist-rpm-baseonly: RPMBUILDOPTS=--target $(MACH) --without debug --without debuginfo --without vdso_install --without bpftool --without perf --without tools -bb -dist-rpm-baseonly: do-rpmbuild +dist-rpm-baseonly: do-rpmbuild-binary # unless you know what you're doing, you don't want to use the next four ones dist-release-finish: setup-source -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH 0/3] Implement better SRPM BuildRequires check
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786#note_951720936 @hertonrk-rh @prarit @jmflinuxtx To answer a variety of questions. Yes srpm processes the configs. It kinda has to otherwise what is rpmbuild going to use to build the kernel? :-) Why is this an issue now? It popped up with my MR last week actually fixing how this works (otherwise the dep was only rpmbuild). Some folks do not want to install the full list of buildreqs just to generate a srpm and upload it. Especially for users on Fedora trying to build a RHEL-X srpm and don't want to have to install obsoleted or missing RHEL-X buildreqs (system-sb-certs, llvm- tools, etc). As for 'dnf builddep kernel' that could work too in some cases. One quirk with that approach is it needs to match the kernel in development, so a RHEL kernel on a Fedora distro may not work. But we can advertise this too if we want. I am also looking at the docs here: https://cki-project.gitlab.io/kernel- ark/#cloning-the-repository should either be auto-generated or told to use 'dnf builddep kernel'. I am working with COPR and they didn't have an easy way to install the packages necessary to build the srpm other than guessing. I am trying to improve the user experience git clone make dist-srpmbuildreqs-check | sudo dnf install (??) make dist-srpm koji build or something like that. IOW there is a gap here that I am trying to address with a consistent story. Something that isn't complicated (yeah, this MR leans toward complicated). 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH 1/3] [redhat] Explicitly set srpm requirements
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786#note_951705198 I can't prove it mathematically, but in order to build the SRPM, you need to build the configs. What does dist-configs-check do that regular dist-configs does not? And if it is missing something, then we add it in there. ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH 3/3] [redhat] Add dist-buildreq-check for binary rpm builds
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786#note_951723323 Sure, but it doesn't describe why some rpmbuild commands get it, while others do not. Hence the -binary part. If you are building binaries you needed the extra suffix. This makes it clear for future targets. While the rule is the same for your name, it doesn't appear to be as clear to me. ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH 0/3] Implement better SRPM BuildRequires check
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786#note_951732268 Oh and @omos filed this https://gitlab.com/cki-project/kernel- ark/-/merge_requests/1781 because he got hit with my buildreqs change from last week. That MR kinda undoes the check and defeats the spirit of 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCHv2 0/4] redhat/self-tests: Add self-tests to gitlab-ci.yaml
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1741#note_954969180 I don't know who or what was originally blocking this thread, but I believe it to be resolved (at least Prarit and Veronika appear to think things are good). So I am clicking the resolve button. :-) ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCHv2 0/4] redhat/self-tests: Add self-tests to gitlab-ci.yaml
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1741#note_954971065 @jmflinuxtx - up to you if you want to sneak this in before Monday's merge window opening. The last commit in this series is the piece that enables the cki part (run_self_test: true). So reverting that patch disables this from any MRs next week. Up to you. Otherwise we can wait until -rc2. ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH] redhat/kernel.spec.template: remove stray *.hardlink-temporary files, if any
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1811#note_962560082 @ptalbert @jmflinuxtx @prarit - so this breaks the self-tests and if included will break self-tests for all future configs. Hopefully this doesn't get merged until that is resolved? Or is that not showing up in the ARK process? @prarit - what is the correct way to resolve this? regenerate the kernel test data? make dist-self-test-data? ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH] redhat/kernel.spec.template: remove stray *.hardlink-temporary files, if any
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1811#note_962630004 It does. Though I have a patch to reduce it down to changes to the %%SPEC lines, which is more realistic. I have to wait for @prarit to come back from PTO to review it. But for this MR, recreating the data is the current path 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH] Fix nightly merge CI
From: Don Zickus Fix nightly merge CI My recent MR for builddeps broke the nightly merge CI scripts because the script was using the wrong supported container. Update the CI script to use the correct supported CKI container image for ARK. 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 @@ -183,7 +183,7 @@ rhel9_realtime_baseline: # scheduled job .scheduled_setup: - image: registry.gitlab.com/cki-project/containers/builder-fedora + image: registry.gitlab.com/cki-project/containers/builder-rawhide variables: GIT_DEPTH: "0" GIT_CLONE_PATH: $CI_BUILDS_DIR/$CI_CONCURRENT_ID/kernel-ark -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1777 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCHv2 0/17] redhat/Makefile: General improvements and fixes
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1757#note_948427545 It definitely depends on the repo. I think I had so more garbage that it inflated things. 'git gc' removed enough junk that my 'git log --oneline' is down to 12. Looking into this more. SPECBUILD uses PREBUILD. PREBUILD is based on MARKER which is based on MERGE_HEAD with upstream. The point of SPECBUILD is to have a sha to describe upstream merge base. The argument becomes if upstream relies on 12, then that should good enough to use as a description in SPECBUILD. Now the user's local enviornment may change but it should be rare?? In my case I can get away with 6 as my minimum merge base MARKER (for uniqueness) (' --abbrev=4' but shows 6). So I guess I can logically convince myself that 12 is fine by me. @prarit 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCHv2 0/17] redhat/Makefile: General improvements and fixes
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1757#note_948374003 maybe it is just me, but a 'git log --oneline' shows 13 chars already. git log --oneline --abbrev=8|grep -Ev "^[0-9a-f]{,10} " shows me 9 commits that are 11 chars long. I am not sure how to autocheck what everyone's git tool is going to spit out for length. We can hardcode 12, but if I am already on 13, then the check is broken for my usage. I don't want the user experience to be "pass locally, but break in koji". That would be frustrating. I think we agreed on 15 as that would give us a couple of years, perhaps. We can make it more dynamic if we had the code and can spit out a good usage message that said your git sha changed length or something. I am up for 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH 0/2] Makefile: only depend on dist-buildreq-check when building actual RPMs
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1781#note_948589022 @hertonrk-rh agreed. There are srpm deps: https://cki- project.gitlab.io/kernel-ark/#cloning-the-repository Now I will agree that dist-buildreq-check might have swung to far in one direction to capture the smaller subset for srpms. Is there a better way to do that check? ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH] Use new HOME path in ssh command
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1887#note_1002826830 with containers!412 merged, this MR is unnecessary. 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCHv3] Test: Broken code, do not merge
From: Don Zickus Test: Broken code, do not merge diff --git a/redhat/docs/index.rst b/redhat/docs/index.rst index blahblah..blahblah 100644 --- a/redhat/docs/index.rst +++ b/redhat/docs/index.rst @@ -117,7 +117,7 @@ Contributor Guide Maintainer Guide -.. toctree:: +.. asdftasfoctree:: :maxdepth: 2 maintaining -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1873 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH] Use new HOME path in ssh command
From: Don Zickus Use new HOME path in ssh command CKI recently updated the HOME variable to point to /cki instead of /root. The .gitlab-ci.yml file applies all ssh tweaks to ~/.ssh/ which is /cki/.ssh. However, ssh still uses /root/.ssh. So all the tweaks are ignored and ssh connections to gitlab fail. Fix this by telling git to use a different location with GIT_SSH_COMMAND=ssh -o UserKnownHostsFile=$HOME/.ssh/known_hosts. Tested locally with the cki container. 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 @@ -207,6 +207,8 @@ rhel9_realtime_baseline: - gpg2 --import "$TORVALDS_GPG_KEY" - git checkout --track origin/master && git describe - export PROJECT_ID="$CI_PROJECT_ID" +# CKI changed HOME to /cki which ssh does not pickup +- export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=$HOME/.ssh/known_hosts" merge_upstream: extends: .scheduled_setup -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1887 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH] Enable CKI on os-build MRs only
From: Don Zickus Enable CKI on os-build MRs only Not all the old Fedora branches have the latest Makefile and specfile changes to support the self-test check. Disable the Fedora branches for now. 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 @@ -56,6 +56,8 @@ workflow: skip_publish: 'true' skip_test: 'true' skip_results: 'true' + rules: +- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "os-build"' .9-common: variables: -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1877 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH 0/2] create-data.sh: Reduce specfile data output
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1878#note_990962307 Thank 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCHv2] Test: Broken code, do not merge
From: Don Zickus Test: Broken code, do not merge diff --git a/redhat/docs/index.rst b/redhat/docs/index.rst index blahblah..blahblah 100644 --- a/redhat/docs/index.rst +++ b/redhat/docs/index.rst @@ -117,7 +117,7 @@ Contributor Guide Maintainer Guide -.. toctree:: +.. tasfoctree:: :maxdepth: 2 maintaining -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1873 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH] Test: Broken code, do not merge
From: Don Zickus Test: Broken code, do not merge diff --git a/redhat/docs/index.rst b/redhat/docs/index.rst index blahblah..blahblah 100644 --- a/redhat/docs/index.rst +++ b/redhat/docs/index.rst @@ -117,7 +117,7 @@ Contributor Guide Maintainer Guide -.. toctree:: +.. tasfoctree:: :maxdepth: 2 maintaining -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1873 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH] Add system-sb-certs for RHEL-9
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1774#note_941572465 Hmm, I remembered centos-stream, but forgot about centos. I will push that update. Not sure if that change or just using '!{?fedora}' is easier. ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCHv2] Add system-sb-certs for RHEL-9
From: Don Zickus Add system-sb-certs for RHEL-9 Copy the RHEL-9 signing requirement over to ARK. This change is wrapped with "{?rhel}{?centos} && !{?eln}" to allow Fedora and ELN to continue using their signing technology. The system-sb-certs is just a metapackage for either rhel-sb-certs or centos-sb-certs, depending on what is installed on your system. Tested by building under koji eln successfully. Signed-off-by: Don Zickus diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template index blahblah..blahblah 100755 --- a/redhat/kernel.spec.template +++ b/redhat/kernel.spec.template @@ -654,6 +654,10 @@ BuildRequires: kabi-dw %if %{signkernel}%{signmodules} BuildRequires: openssl %if %{signkernel} +# ELN uses Fedora signing process, so exclude +%if 0%{?rhel}%{?centos} && !0%{?eln} +BuildRequires: system-sb-certs +%endif %ifarch x86_64 aarch64 BuildRequires: nss-tools BuildRequires: pesign >= 0.10-4 -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1774 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH] Fix dist-buildcheck-reqs
From: Don Zickus Fix dist-buildcheck-reqs The check for rpmspec buildrequires wasn't working because of a Makefile typo. Verified by deleting known buildreqs. Signed-off-by: Don Zickus diff --git a/redhat/Makefile b/redhat/Makefile index blahblah..blahblah 100644 --- a/redhat/Makefile +++ b/redhat/Makefile @@ -462,7 +462,7 @@ dist-git-version-check: fi dist-buildreq-check: setup-source - @PKGLIST="rpm-build $(rpmspec -q --buildrequires $(SOURCES)/$(SPECFILE) | cut -d ' ' -f 1)"; \ + @PKGLIST="rpm-build $$(rpmspec -q --buildrequires $(SOURCES)/$(SPECFILE) | cut -d ' ' -f 1)"; \ MISSING=""; \ for pkg in $$PKGLIST; do \ rpm -q --whatprovides $$pkg >/dev/null || MISSING="$$MISSING $$pkg"; \ -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1773 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
[OS-BUILD PATCH] Add system-sb-certs for RHEL-9
From: Don Zickus Add system-sb-certs for RHEL-9 Copy the RHEL-9 signing requirement over to ARK. This change is wrapped with "{?rhel} && !{?eln}" to allow Fedora and ELN to continue using their signing technology. The system-sb-certs is just a metapackage for either rhel-sb-certs or centos-sb-certs, depending on what is installed on your system. Tested by building under koji eln successfully. Signed-off-by: Don Zickus diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template index blahblah..blahblah 100755 --- a/redhat/kernel.spec.template +++ b/redhat/kernel.spec.template @@ -654,6 +654,10 @@ BuildRequires: kabi-dw %if %{signkernel}%{signmodules} BuildRequires: openssl %if %{signkernel} +# ELN uses Fedora signing process, so exclude +%if 0%{?rhel} && !0%{?eln} +BuildRequires: system-sb-certs +%endif %ifarch x86_64 aarch64 BuildRequires: nss-tools BuildRequires: pesign >= 0.10-4 -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1774 ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH] Add system-sb-certs for RHEL-9
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1774#note_940375865 @hertonrk-rh @jmflinuxtx - is this a respectful way to wrap this buildreq? ___ 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 on the list, report it: https://pagure.io/fedora-infrastructure
Re: [OS-BUILD PATCH 0/8] redhat: Cleanup scripts
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2095#note_1139862125 @jwilsonrh - +1. directories should have a 'theme'. I am ok with 'scripts/gating'. or 'scripts/osci' as those scripts are specific to osci. ___ 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/3] [redhat] enable some key Tegra SoC features
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2083#note_1138460406 @ahs3 - we don't see any code using this config. Am I missing something (other than the defconfig file)? ___ 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: Disable CONFIG_FW_LOADER_COMPRESS
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2112#note_1146743250 @hertonrk-rh - you had to enable this for rhel-9 it appears. can you provide some background? ___ 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] Reduce disk space requirements of the kernel build
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1950#note_1114646949 @jwilsonrh - can you reply here? ___ 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] Remove unused ci scripts
From: Don Zickus Remove unused ci scripts The ARK CI process has changed over time and the following scripts are no longer used. Remove them to avoid confusion for future contributors. * ark-rebase-patches.sh used to rebase patches for ark-patches. ark-patches was replaced by the current merge based workflow. * ark-update-changelog.sh a legacy implementation to update the changelog on os-build from ark-latest when ark-patches was being used. This has been replaced by the current merge based workflow. * sign_off_check.py used by ci scripts to verify every MR had a signed-off-by line. Replaced with kernel-webhooks implementation of the same idea. Signed-off-by: Don Zickus diff --git a/redhat/scripts/ci/ark-rebase-patches.sh b/redhat/scripts/ci/ark-rebase-patches.sh deleted file mode 100755 index blahblah..blahblah 0 --- a/redhat/scripts/ci/ark-rebase-patches.sh +++ /dev/null @@ -1,128 +0,0 @@ -#!/usr/bin/bash -# -# Automatically rebase the kernel patches in ark-patches. -# -# If the REPORT_BUGS environment variable is set, any patches that do not apply -# cleanly during the rebase are dropped, and an issue is filed to track rebasing -# that patch. -# -# If run with REPORT_BUGS, you must have python3-gitlab installed and a -# configuration file set up in ~/.python-gitlab.cfg or /etc/python-gitlab.cfg. -# An example configuration can be found at -# https://python-gitlab.readthedocs.io/en/stable/cli.html. If the configuration -# is not in one of the above locations, the path can be set -# with the PYTHON_GITLAB_CONFIG environment variable. -# -# Arguments: -# 1) The commit/tag/branch to rebase onto. -# 2) The Gitlab project ID to file issues against. See the project page on -# Gitlab for the ID. For example, https://gitlab.com/cki-project/kernel-ark/ -# is project ID 13604247 -set -e - -UPSTREAM_REF=${1:-master} -test -n "$PROJECT_ID" || PROJECT_ID="${2:-13604247}" - -ISSUE_TEMPLATE="During an automated rebase of ark-patches, commit %s failed to rebase. - -The commit in question is: -~~~ -%s -~~~ - -To fix this issue: - -1. \`git rebase upstream ark-patches\` -2. Use your soft, squishy brain to resolve the conflict as you see fit. If it is - non-trivial and has an \"Upstream Status: RHEL only\" tag, ask the author - to rebase the patch. -3. \`if git tag -v $UPSTREAM_REF; then git branch ark/patches/$UPSTREAM_REF && git push upstream ark/patches/$UPSTREAM_REF; fi\` -4. \`git push -f upstream ark-patches\` -" - -if [ -z "$PYTHON_GITLAB_CONFIG" ]; then - GITLAB_CONFIG_OPT="" -else - GITLAB_CONFIG_OPT="-c $PYTHON_GITLAB_CONFIG" -fi - -# Check if ark-patches is already rebased to $UPSTREAM_REF -test -n "$(git branch os-build --contains "$UPSTREAM_REF")" && exit 0 - -if git show "$UPSTREAM_REF" > /dev/null 2>&1; then - printf "Rebasing ark-patches onto %s...\n" "$UPSTREAM_REF" -else - printf "No such git object \"%s\" in tree\n" "$UPSTREAM_REF" - exit 1 -fi - -if [ -n "$PROJECT_ID" ] && [ "$PROJECT_ID" -eq "$PROJECT_ID" ] 2> /dev/null; then - printf "Filing issues against GitLab project ID %s\n" "$PROJECT_ID" -else - printf "No Gitlab project ID specified; halting!\n" - exit 1 -fi - -CLEAN_REBASE=true -if git rebase "$UPSTREAM_REF" ark-patches; then - printf "Cleanly rebased all patches\n" -elif [ -n "$REPORT_BUGS" ]; then - while true; do - CLEAN_REBASE=false - CONFLICT=$(git am --show-current-patch) - COMMIT=$(git am --show-current-patch | head -n1 | awk '{print $2}' | cut -c 1-12) - TITLE=$(printf "Unable to automatically rebase commit %s" "$COMMIT") - # shellcheck disable=SC2059 # There is a multi-line pattern in ISSUE_TEMPLATE; - # wiki says there is no good rewrite and recommends disabling warning. - DESC=$(printf "$ISSUE_TEMPLATE" "$COMMIT" "$CONFLICT") - # shellcheck disable=SC2086 - # GITLAB_CONFIG_OPT DEPENDS on word splitting: - OPEN_ISSUES=$(gitlab $GITLAB_CONFIG_OPT project-issue list --project-id "$PROJECT_ID" --search "$TITLE") - if [ -n "$OPEN_ISSUES" ]; then - echo "Skipping filing an issue about commit $COMMIT; already exists as $OPEN_ISSUES" - continue - fi - - # shellcheck disable=SC2086 - # GITLAB_CONFIG_OPT DEPENDS on word splitting: - if gitlab $GITLAB_CONFIG_OPT project-issue create --project-id "$PROJECT_ID" \ - --title "$TITLE
Re: [OS-BUILD PATCHv2] redhat/configs: Disable fbdev drivers and use simpledrm everywhere
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1533#note_1122556452 @Lyude - do you have time for a quick review? ___ 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/3] Implement better SRPM BuildRequires check
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1786#note_1065198628 Closing in favor of https://gitlab.com/cki-project/kernel- ark/-/merge_requests/1900 ___ 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/Makefile: Clean linux tarballs
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1975#note_1056132350 Hmm. long ago, creating the linux tarball took a couple of minutes. So if you were constantly running make dist-srpm and friends that couple of minutes got annoying (much like how dist-configs got annoying). Not removing the tarball was a nice optimization trade-off. Though it left the old ones behind. Now for ARK those tarballs are outdated daily. RHEL not so much. Not sure if today's tar/compression is parallelized to speed 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
Re: [OS-BUILD PATCHv4 0/8] ark: rework changelog generation process during dist-release
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1980#note_1067725269 Thanks @hertonrk-rh for this series! It looks to be an improvement in the overall workflow (which shows with the later commits removing workarounds). I don't have any objections with the work. It appears your solution is to generate a temporary changelog and look for entries (wc -l > 3) and if so, call dist-release-finish? My only concern is, will there be confusion on genlog.sh vs. genlog.py? I was confused for awhile until I noticed the subtle '.sh' vs '.py'. Though it looks like genlog.py is only called by genlog.sh? So perhaps it is fine. ___ 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/8] ark: rework changelog generation process during dist-release
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1980#note_1067842595 Thanks! I think this series is good prep work for the real fix, which is to correctly handle the marker != last_marker case (merge update). This patchset will just say 'rebase', which is what the script comment suggests but isn't accurate. Instead this case happens with a nightly merge. Do you have output of a simulated marker != last_marker changelog output? I want Justin to verify that is what he expects it to look like. ___ 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/8] ark: rework changelog generation process during dist-release
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1980#note_1067930412 Perfect example env! So a couple of things. I believe the 'rebase' word is incorrect and the 'Resolves' line should be removed?? (I thought it was with your sed magic?). Sadly, I think we should fix these be committing this MR otherwise we will start seeing lots of 'rebase' in the changelog every night, which isn't a good idea. @jmflinuxtx - would is your expected changelog output for nightly merges? "Merged upstream commit 3cc40a443a04" ?? ___ 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/9] ark: rework changelog generation process during dist-release
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1980#note_1067980884 I am happy if Justin is happy. Thanks @hertonrk-rh ! ___ 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] Revert "redhat: fix elf got hardening for vm tools"
From: Don Zickus Revert "redhat: fix elf got hardening for vm tools" This reverts commit eb5aebd77015bc57616c5d05a7b6206c8ff871cb. A recent rework of the tools/vm area relies on a proper CFLAGS definition to include the proper header files. The kernel.spec file purposely overwrites the CFLAGS to get the right switches to pass rpminspect. As a consequence tools/vm fails to compile. For now just revert the change and await a proper fix. To duplicate: cd tools/vm make CFLAGS= slabinfo page_owner_sort make -C ../lib/api make[1]: Entering directory '/home/dzickus/devel/git/kernel-ark/tools/lib/api' /usr/bin/make -C /home/dzickus/devel/git/kernel-ark/tools/build CFLAGS= LDFLAGS= fixdep CC fd/array.o LD fd/libapi-in.o CC fs/fs.o fs/fs.c:17:10: fatal error: debug-internal.h: No such file or directory 17 | #include "debug-internal.h" | ^~ compilation terminated. make[3]: *** [/home/dzickus/devel/git/kernel-ark/tools/build/Makefile.build:97: fs/fs.o] Error 1 make[2]: *** [/home/dzickus/devel/git/kernel-ark/tools/build/Makefile.build:139: fs] Error 2 make[1]: *** [Makefile:79: libapi-in.o] Error 2 make[1]: Leaving directory '/home/dzickus/devel/git/kernel-ark/tools/lib/api' make: *** [Makefile:19: ../lib/api/libapi.a] Error 2 diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template index blahblah..blahblah 100755 --- a/redhat/kernel.spec.template +++ b/redhat/kernel.spec.template @@ -2340,7 +2340,7 @@ pushd tools/gpio/ popd # build VM tools pushd tools/vm/ -%{tools_make} CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" slabinfo page_owner_sort +%{tools_make} slabinfo page_owner_sort popd pushd tools/tracing/rtla %{tools_make} -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2236 ___ 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] Revert "redhat: fix elf got hardening for vm tools"
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2236#note_1219424373 /block ___ 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] Revert "redhat: fix elf got hardening for vm tools"
From: Don Zickus Revert "redhat: fix elf got hardening for vm tools" This reverts commit eb5aebd77015bc57616c5d05a7b6206c8ff871cb. A recent rework of the tools/vm area relies on a proper CFLAGS definition to include the proper header files. The kernel.spec file purposely overwrites the CFLAGS to get the right switches to pass rpminspect. As a consequence tools/vm fails to compile. For now just revert the change and await a proper fix. To duplicate: cd tools/vm make CFLAGS= slabinfo page_owner_sort make -C ../lib/api make[1]: Entering directory '/home/dzickus/devel/git/kernel-ark/tools/lib/api' /usr/bin/make -C /home/dzickus/devel/git/kernel-ark/tools/build CFLAGS= LDFLAGS= fixdep CC fd/array.o LD fd/libapi-in.o CC fs/fs.o fs/fs.c:17:10: fatal error: debug-internal.h: No such file or directory 17 | #include "debug-internal.h" | ^~ compilation terminated. make[3]: *** [/home/dzickus/devel/git/kernel-ark/tools/build/Makefile.build:97: fs/fs.o] Error 1 make[2]: *** [/home/dzickus/devel/git/kernel-ark/tools/build/Makefile.build:139: fs] Error 2 make[1]: *** [Makefile:79: libapi-in.o] Error 2 make[1]: Leaving directory '/home/dzickus/devel/git/kernel-ark/tools/lib/api' make: *** [Makefile:19: ../lib/api/libapi.a] Error 2 Signed-off-by: Don Zickus diff --git a/redhat/kernel.spec.template b/redhat/kernel.spec.template index blahblah..blahblah 100755 --- a/redhat/kernel.spec.template +++ b/redhat/kernel.spec.template @@ -2340,7 +2340,7 @@ pushd tools/gpio/ popd # build VM tools pushd tools/vm/ -%{tools_make} CFLAGS="${RPM_OPT_FLAGS}" LDFLAGS="%{__global_ldflags}" slabinfo page_owner_sort +%{tools_make} slabinfo page_owner_sort popd pushd tools/tracing/rtla %{tools_make} -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2236 ___ 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] Revert "redhat: fix elf got hardening for vm tools"
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2236#note_1219422925 @hertonrk-rh - the revert is Frantisek's change. Not sure if you are familiar with it? I was wondering if we could replace 'CFLAGS=' with 'EXTRA_CFLAGS=' and have it still help with rpminspect? I don't know how to run the tool otherwise I would try 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 PATCHv2] redhat/configs: Enable CRYPTO_CURVE25519 in ark
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2225#note_1216392018 @jmflinuxtx - hmm, did we agree to avoid touching common and only let a bot do 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 PATCHv3] makefile: Add -Werror support for RHEL
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2240#note_1230246925 @prarit - hmm, ok I am torn here. I thank you for respecting the 'do not break ARK approach'. But then I wonder what is the value of this in ARK (besides the obvious don't lose changes)? Because once your fork for RHEL, you are now stuck for XX weeks until this backlog of errors are cleaned up. Or you just disable it to move forward (which probably happened for RHEL-9). The value of ARK/rawhide is discovering potential RHEL problems early and resolving them before RHEL sees them. Of course, fixing them can be a firedrill but I am trying to find techniques to minimize that and become more async. Can we say upstream GA needs to be -Werror clean (for ARK), but give ourselves ~8 weeks to resolve them. This means using CONFIG_WERROR becomes a RHEL thing but maybe we track WARNINGS during the -rc cycle that need resolving? Just trying to brainstorm using the idea of -Werror for ARK to give value to RHEL without creating the OMG firedrill behind 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 PATCHv2] Check for kernel config git-push failures
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2165#note_1203471910 ugh how dumb of me. I can create an MR that 'touch'es or 'rm -f'. Any preference @jmflinuxtx @ptalbert ? ___ 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] Check for kernel config git-push failures
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2165#note_1203488108 created !2183 with 'touch' fix ___ 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] redhat: Create a git repo when the srpm code is installed
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2174#note_119735 Agreed. What problem are we solving here? ___ 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] Remove recommendation to use 'common' for config changes.
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2157#note_1177768175 @jmflinuxtx @scweaver @prarit - here is my attempt to downplay the 'common' directory for configs. ___ 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] Remove recommendation to use 'common' for config changes.
From: Don Zickus Remove recommendation to use 'common' for config changes. Config changes should be focused on the 'ark' or 'fedora' directory. Update the docs to promote that. Signed-off-by: Don Zickus diff --git a/redhat/docs/submitting-contributions.rst b/redhat/docs/submitting-contributions.rst index blahblah..blahblah 100644 --- a/redhat/docs/submitting-contributions.rst +++ b/redhat/docs/submitting-contributions.rst @@ -72,10 +72,12 @@ more generic directories. Configurations that are specific to a particular architecture should be placed in that architecture's directory rather in the generic directory. -Configuration changes in the ``common`` and ``ark`` directories require -review from Red Hat kernel developers, where-as the configurations in -``fedora`` can be changed with the approval of the Fedora kernel -maintainers. +Configuration changes in the ``ark`` directory requires review from Red Hat +kernel developers, where-as the configurations in ``fedora`` can be changed +with the approval of the Fedora kernel maintainers. The ``common`` +directory is for changes common to both ``ark`` and ``fedora`` and will be +populated by a bot that periodically looks in both ``ark`` and ``fedora`` +for common changes. Makefile changes -- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/2157 ___ 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