From: Don Zickus dzickus@redhat.com
Export ark infrastructure files
Allow developers to use the ark infrastructure work on upstream git trees. This change saves the redhat/ plus supporting files on top of the 'master' branch.
A developer can then 'git merge ark-infra' to apply this infrastructure.
"NO_CONFIGCHECKS make dist-configs" to create the configs. And away they go.
Utilize the daily rawhide_release builds to create this branch. It fits with the theme and is quick and easy to do in this job. Note I use the 'ark-latest' as the source of the export. This should include any environment fixes for the developer.
Tested by copy-n-pasting manual each step in the script to generate the original ark-infra branch. The gitlab-ci.yml change should be intuitive enough to skip testing.
V2: Use git-archive and better sed regexp V3: remove git reset and sed V4: added comment about kabi-module (no new changes)
diff a/.gitlab-ci.yml b/.gitlab-ci.yml --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -100,6 +100,7 @@ rawhide_release: script: - git checkout --track origin/master && git describe - git checkout --track origin/ark-latest && git describe + - git checkout --track origin/ark-infra && git describe - git checkout --track origin/os-build && git describe - export PROJECT_ID="$CI_PROJECT_ID" - redhat/scripts/ci/ark-create-release.sh "master" "$CI_PROJECT_ID" || exit_code=$? @@ -117,6 +118,7 @@ rawhide_release: - git push gitlab "$(git describe)" - git push gitlab ark/* - git push -f gitlab ark-latest + - git push -f gitlab ark-infra retry: 2 rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $RAWHIDE_RELEASE == "true"' diff a/redhat/scripts/ci/ark-create-release.sh b/redhat/scripts/ci/ark-create-release.sh --- a/redhat/scripts/ci/ark-create-release.sh +++ b/redhat/scripts/ci/ark-create-release.sh @@ -57,6 +57,24 @@ RELEASE=$(git describe) git checkout ark-latest git reset --hard "$RELEASE"
+# Update ark-infra branch +git checkout ark-infra + +# Using ark-latest because it has latest fixes +rm -rf makefile Makefile.rhelver redhat/ +git archive --format=tar ark-latest makefile Makefile.rhelver redhat/ | tar -x + +# Manually add hook instead of cherry-pick +# Add to middle to avoid git merge conflicts +# NOTE: commented out but left for future info to rebuild from scratch +# sed -i '/# We are using a recursive / i include Makefile.rhelver\n' Makefile + +git add makefile Makefile.rhelver Makefile redhat +# Future rebuid note, .gitkeep files are gitignored and need force adding +# git add -f redhat/kabi/kabi-module/kabi* + +git commit -m "bulk merge ark-infra as of $(date)" + printf "All done!
To push all the release artifacts, run:
-- https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968
From: Ondrej Mosnáček on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968#note_53151216...
AFAIK, some of the configs are (unfortunately) dependent on the range of features supported by the local GCC, so that's probably the source of the failing checks (assuming you are on a stable Fedora release). I don't know there's any workaround for that, short of installing GCC from rawhide...
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968#note_54402360...
@knurd42 - I looked into your config comparison between the source git tree and dist-git tree. The issue is the configs are processed in 2 stages. First stage, merge everything in redhat/configs/... together in an arch specific way. Second stage, run those configs through 'make olddefconfig' to add in the rest of the options.
You were comparing the source-git second stage options with the dist-git first stage options, hence the large set of differences.
Instead run 'make dist-configs-check' in your source git tree and compare that to the dist-git tree. That is how Fedora generates the options for the dist-git tree. That diff should be useful and small depending on which dates you use for each tree. (yeah, I know complexity, who would know about 'make dist-configs-check').
When you get a chance can you run 'make dist-configs-check' and verify the diff is either empty or sane?
Sorry for the confusion. Thanks for testing efforts!
From: Thorsten Leemhuis on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968#note_54898781...
The issue is the configs are processed in 2 stages.
I thought I had accounted for that, but I rechecked (by rpmbuild -bp the SRPM I generated with this new stuff and a fedora srpm from about the same days). Yes, you are right, they are round about the same (except a few options like those that depend on the local GCC, but that is to be expected). Sorry for the trouble I caused.
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968#note_55394695...
@knurd42 - as a developer who requested this feature, can I ask for a ceremonial 'approval'? Just a simple comment with 'ACK' or 'I approve" and then add an @jmflinuxtx or @ptalbert to let them know.
From: Don Zickus on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968#note_55394775...
@omos - as a developer who requested this feature, can I ask for an 'approve'?
From: Ondrej Mosnáček on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968#note_55396339...
Yeah, I just tried to port my script to use ark-infra instead of trying to find the right os-build commit to merge my changes into and it seems to work as intended. And it became much simpler now, so I'm satisfied :) Also the update mechanism looks good to me.
From: Thorsten Leemhuis on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968#note_55404690...
It's merged now, so just for the record: ACK – and many thx for working on this!
From: Justin Forbes on gitlab.com https://gitlab.com/cki-project/kernel-ark/-/merge_requests/968#note_55723455...
I guess we get to test that additional failure path more quickly than I had hoped. Since this was merged, the nightly 'Prepare Release' script fails with
`$ git push gitlab "$(git describe)" fatal: v5.4-2-gfca5c95176e2 cannot be resolved to branch fatal: the remote end hung up unexpectedly`
kernel@lists.fedoraproject.org