-
Notifications
You must be signed in to change notification settings - Fork 143
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
Result of query filtering by arch seems to differ according to arch of the platform code is run on #1578
Comments
This is with |
I've recently encountered a similar problem and had to set dbo.conf.arch to the arch I was looking for. Does that make a difference for you? |
aha! yes, that does seem to help. I actually went looking for exactly such a setting, but the docs page does not mention its existence at all. I didn't bother just blindly trying it anyway. I guess I should have done. :D Well, I guess the page links to https://dnf.readthedocs.io/en/latest/conf_ref.html#conf-main-options-label , and that does mention it. None of this is really obvious, though, nor why you should need to set that in order for this to work... |
Setting the |
We have this releng script called spam-o-matic which attempts to list broken deps in a compose per arch (it's basically a repoclosure test).
Here's the key code:
Now for some reason, this is behaving differently when run on the 'native' arch (e.g. running this query for x86_64 on an x86_64 machine) than when run on a 'non-native' arch (e.g. running this query for ppc64le on an x86_64 machine), as discussed here.
You can try out the script by downloading it, then getting enough repodata to make it happy. I created a directory called
20220920.n.0
with this layout:the files are grabbed from under https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20220920.n.0/compose/Everything/ . Then you can run e.g.
./spam-o-matic --nomail --only-arches=ppc64le 20220920.n.0
to query just for ppc64le, or./spam-o-matic --nomail --only-arches=x86_64 20220920.n.0
to query just for x86_64.If you run it on an x86_64 system, the results for x86_64 will be correct but the results for ppc64le will be completely wrong, basically it thinks nothing at all is provided.
It seems to me like things go wrong at
unresolved_deps = set(x for x in deps if not available.filter(provides=x))
. Thatavailable.filter(provides=x)
query just seems to not work right when it's not run on the 'native' arch. For instance, if I hack up the code to do this right afteravailable.apply()
:then running that on x86_64 for x86_64 arch prints:
but running it on x86_64 for ppc64le arch prints:
i.e. the
available
query definitely has an entry for a glibc package that provideslibm.so.6(GLIBC_2.27)(64bit)
in both cases, but for some reason,available.filter(provides="libm.so.6(GLIBC_2.27)(64bit)")
does not find it when run in the 'not-native arch' case. It does find it in the 'native arch' case.This really seems like a bug to me, I can't find any indication that this is intended behaviour, and it does not feel like intended behaviour.
The text was updated successfully, but these errors were encountered: