-
Notifications
You must be signed in to change notification settings - Fork 198
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
Follow-ups to the extensions work #2519
Conversation
And use a hash table to make it more efficient. Prep for future patch.
I want to be able to use this function without an `RpmOstreeContext`. Prep for future patch.
Hmm actually, I think a cleaner approach than the extensions:
...
packages:
- kernel-core
- kernel-headers
... Makes it more generic than "development" (because honestly, this is very specific to the kernel), and makes it a bit clearer that rpm-ostree is just a glorified |
I'm fine with that, but I think it'd also be enough to default |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Basically LGTM!
cc197bb
to
60c5010
Compare
60c5010
to
e1de4a5
Compare
OK, updated and ready for review!
So I went down that path a bit, but it felt hacky there too because it just looks out of place in a file called |
e1de4a5
to
7e32263
Compare
Hmm, interesting... investigating. |
In the core context, this is redundant with `sort_packages` because it won't put local packages in the `pkgs_to_download` array anyway, but we want this check even if we call `rpmostree_download_packages` directly and pass some packages which may be local.
We want to be able to enable more repos than those in the treefile when downloading extensions. In RHCOS for example, the `kernel-rt` packages come from a separate repo. But also, once we support "development" extensions, we want to support the case where devel packages come from another repo.
Gives a bit more info about how the extensions path is different from the base treecompose.
The key is already called `rpmdb`.
In RHCOS, we ship kernel development-related packages as an extension. Those aren't really extensions that are meant to be layered onto the host. They're meant to be used in a build environment somewhere to compile kernel modules. This makes it very different from "OS extensions" in at least two drastic ways: 1. we don't want to do any depsolving (e.g. we don't want to pull in `gcc` or something) 2. some of those packages may be present in the base already, but we still want to redownload them Hesitated putting this functionality in rpm-ostree, but I think in the end it cuts from the benefit of moving this code to rpm-ostree if we can't entirely get rid of the Python script it obsoletes. Plus, being able to use the `match-base-evr` is still really useful for this use case. Let's add a new `kind` key to support this. The traditional extensions are called "OS extensions" and these new extensions are called "development extensions". The latter is not yet part of the state checksum, so change detection doesn't work there. I think that's fine for now though because the primary use case is the kernel, and there we want to match the base version. So if the kernel changes, the base would change too. (Though there's the corner case of adding a new package to the list while at the same version...)
We always want the latest rpm-ostree binaries tested, so we need to always rerun supermin. Patch better viewed with whitespace ignored.
7e32263
to
d39f880
Compare
/lgtm |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cgwalters, jlebon The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
See coreos/coreos-assembler#2028 (comment) for background. Testing this on RHCOS with:
Works fine!
See individual commit messages for details.