-
Notifications
You must be signed in to change notification settings - Fork 167
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
cosa buildextend-extensions
pulls in packages from modules that are not enabled
#2132
Comments
/cc @danilocesar @jensfr |
/cc @miabbott and @cgwalters, as this was discussed Yesterday with them in the #forum-coreos |
Now taking a look at the I'm not sure what's the best approach to take here, but a |
Yes, the underlying code is in rpm-ostree: https://github.com/coreos/rpm-ostree/blob/b2b3795df126927236bbff81a560c95c25a508b1/src/app/rpmostree-compose-builtin-tree.cxx#L1432
Ahhh interesting. I somehow hadn't realized til now that the AppStream mixed modular with non-modular packages. In Fedora we've been mostly able to work around this just by disabling the modular repos. But then... ahhh right, in RHCOS today we're already getting a bunch of container-related packages from modules that way. So anyway, long-term we obviously need coreos/rpm-ostree#1435. Short-term, we should be able to hack around this adding an $ git -C src/config diff
diff --git a/rhel8.repo b/rhel8.repo
index 9991bec..4ce3967 100644
--- a/rhel8.repo
+++ b/rhel8.repo
@@ -13,7 +13,7 @@ baseurl=http://.../content/beta/rhel8/8/$basearch/appstrea
enabled=1
gpgcheck=0
# Exclude toolbox to make sure we use coreos/toolbox from rhaos repo
-exclude=conmon toolbox
+exclude=conmon toolbox libpmem*module*
[rhel-8-nfv]
baseurl=http://.../content/beta/rhel8/8/x86_64/nfv/os/
$ cosa buildextend-extensions
...
$ jq .extensions.manifest.libpmem builds/latest/x86_64/meta.json
"1.6.1-1.el8.x86_64" But actually, now that we have the libdnf bindings for it, coreos/rpm-ostree#1435 might not even be that hard and will unblock a bunch of other things. I'll try to take a crack at it soon-ish unless someone else beats me to it. :) |
That simply does work as expected, thanks @jlebon. On a side note, I tried that in the morning (or something quite similar) and I was still getting the wrong libpmem, and I sincerely think that was a typo from my side. :-/ |
OK cool! Let's close this since the real issue here is already tracked at coreos/rpm-ostree#1435. |
Bug Report
While it's known that rpm-ostree is not aware of modules, and that even allows us to easily build the CoreOS Extensions including packages from modules such as
advanced-virt
, it has some non expected side effects, such as pulling packages from modules and end up with a combination of packages to be installed which were never ever tested before or that won't work together.The example that led to open this bug is, as shown here, the fact that libpmem 1.9.2-1.module+el8.3.1+9584+6278db68.x86_64, which comes from the
pmdk
module, is pulled in, while QEMU kiwi was built and tested against libpmem 1.6.1-1.el8.x86_64, which comes from AppStream.Mind, both libpmem are part of http://cdn.redhat.com/content/beta/rhel8/8/x86_64/appstream/os/Packages/l/, which is expected, but on "dnf world" the module version would only be available if the
pmdk
module was enabled, while right new we see the one if the highest n-v-r being picked up.Environment
What operating system is being used to run coreos-assembler?
What operating system is being assembled?
I'm locally assembling latest RHCOS, in order to check the status of the CoreOS Extensions.
Is coreos-assembler running in Podman or Docker?
Yes, coreos-assembler is running in Podman.
If Podman, is coreos-assembler running privileged or unprivileged?
privileged, this is the command line used:
Expected Behavior
cosa buildextend-extensions
should create the extensions content with libpmem coming from the "system" (appstrema), rather than the one from thepmdk
module.Actual Behavior
cosa buildextend-extensions
will create the extensions content with libpmem with the highest n-v-r.Reproduction Steps
Other Information
I was not able to actually find the code fetching the RPMs to compose the extensions, but I think the limitation reported here is there. A pointer to the code would be nice, at least for future reference.
If there was a way to filter out specific packages, that would be a reasonable workaround till "modularity" becomes supported by rpm-ostree.
Last but not least, this is affecting sandboxed-containers extension tests, as qemu-kiwi installation is breaking due to this issue.
The text was updated successfully, but these errors were encountered: