Skip to content

Pulp RPM dependency solving fails with x86_64_v2 architecture #4285

@guylain-lavoie

Description

@guylain-lavoie

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions