-
Notifications
You must be signed in to change notification settings - Fork 132
Description
Hello,
I need your help solving an issue I discovered this morning.
Thanks,
Guylain
Version
pulp_rpm 3.34.0, pulpcore 3.102.0, running via official docker.io/pulp/pulp container image (build 20260119)
Describe the bug
Dependency solving fails for packages with x86_64_v2 (or x86_64_v3) architecture. When using pulp rpm copy --dependency-solving with repositories containing x86_64_v2 packages (e.g., AlmaLinux 10), dependency resolution fails with: package zsh-5.9-15.el10.x86_64_v2 does not have a compatible architecture
The root cause is in pulp_rpm/app/depsolving.py. The Solver.init() method calls:
pythonself._pool.setarch() # prevent openSUSE/libsolv#267
Without arguments, libsolv uses the host's architecture (typically x86_64). Since x86_64_v2 is not in libsolv's compatibility list for x86_64, packages with this architecture are rejected during solving.
To Reproduce
- Sync an AlmaLinux 10 repository (which uses x86_64_v2 architecture)
- Create a destination repository
- Attempt to copy a package with dependency solving:
bash pulp rpm copy --config @config.json --dependency-solving - Observe the "does not have a compatible architecture" error
Expected behavior
Packages with x86_64_v2 or x86_64_v3 architectures should be recognized and dependency solving should complete successfully.
Additional context
Workaround: Hardcode the architecture in depsolving.py:
pythonself._pool.setarch('x86_64_v2')
This works for me temporarily because I only need for now to support this architecture but is not a general solution. A proper fix would auto-detect the architecture from packages being loaded before solving.