-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
osbuild-built images often get wrong 'isfinal' in buildstamp (so pre-release warnings are shown when they should not be, or vice versa) #515
Comments
Thanks, I'll also cc @jkonecny12 on this as they might know how to set the pre-release. I'd have expected that to live in |
well, yes, one of the paths is that it gets shown if fedora-release has a release (in RPM terms) of less than 1. But I don't remember if that's the one that applies to live images, or exactly how that works in detail. There must be something more tricky to cause it to show on the livemedia-created image but not on the osbuild-created one. I'll try and figure it tomorrow if I get time (I'm at a conference ATM). |
OK, so I looked it up again. The logic happens here, where we look for a buildstamp file in a couple of places and fall back on environment variables if we can't find it. The path that runs through the fedora-release version is here - we find the thing that provides This is making me remember that, the other day, I noticed that Cloud images built with Kiwi didn't have fedora-release on them at all (IIRC). I think nothing actually requires |
Yes, it's in buildstamp file created by Lorax or on Live as mentioned above by Adam it's decided in the liveinst script. |
Live images don't have that file, though, which is why we have that other path in |
EDIT EDIT okay, this is more mysterious than I thought, because:
So, digging deeper. But keeping the comment for the note below. I'm also a bit confused, because the image has no
But if I go to the task that built that image and click on x86_64-live-installer.manifest.json, the list there does include the Do neither of those actually indicate what packages are included in the live image? If so, is there anywhere that does tell me what packages are included in the built image? livemedia-creator does provide this information. |
Oh, okay, so the problem is quite "simple": it looks like osbuild does write a buildstamp file into live images, unlike livemedia-creator, so we never fall back on the environment variable.
we just need to make that say |
If you want me to I can pick this up as well @AdamWill just let me know :) |
well, you'd probably do it faster but I'd learn more...:P |
well, I may know more about the other end of this, if it helps with the design. Pungi has the concept of whether the compose is "supported", which can be manually set but which in fact we rely (I think) on being set automatically, by this bit of magic. Basically it gets set for composes with a label like It then uses that property in various paths. e.g. in the buildinstall and ostree_installer phases, it passes a We probably want to follow that same logic here, if possible; the |
So, there's a lot of 'figuring out what sends what to what' to do if you don't already know it, but so far I think I want to add this to koji-osbuild:
then figure out what bit of osbuild picks up those requests and ultimately get that passed through as a property of the types defined in osbuild-images |
So I got some way through the maze here but I think I'm gonna wave a white flag and ask @supakeen to do this, it's probably better for me to learn by looking at what he does. Sorry, Simon :) |
It's OK; as we discussed on Matrix I'll likely initially do a similar thing to what I did for |
So, to recap from discussion in #522 and elsewhere, this is a hard problem to solve at the osbuild level. Let me recap just the different cases I can remember in Fedora:
The way this works for lorax-built installer images is that pungi has a heuristic which decides that, if the compose has a label that starts 'RC-', 'Update-', or 'SecurityFix-', then it's a "supported" compose, and it passes I think the best thing for osbuild to do here would be to provide a convenient way to declare an My best idea to fix the IoT problem at pungi level is to make it possible to override the heuristic in pungi config (maybe this is already possible, I haven't checked). Then IoT could just explicitly set it to the appropriate value in its pungi config. We could do the same for the main compose, or just keep relying on the heuristic there, as it does work. CC @nullr0ute @pcdubs for the IoT angle here. |
Fedora pre-release images are meant to show some warnings of their pre-release status. They should show a red "PRE-RELEASE / TESTING" text at top right, under the release version. Like this, from the livemedia-creator-created image:
But the osbuild-built image does not show that warning:
There's some subtlety to how exactly anaconda decides whether to show the warning that I'm too tired to remember right now. I'll try and remember it tomorrow and add it as a comment. CCing @nirik for the releng angle here (I know for at least one case we have to call a tool with a special argument to mark images as pre-release or not...)
The text was updated successfully, but these errors were encountered: