3
26
Fork
You've already forked mere
1

Fix cross-package provider selection comparing versions #92

Merged
jhuntwork merged 1 commit from fix-cross-package-provider into main 2026年07月04日 14:58:03 +02:00

When multiple packages provide the same soname (e.g. libglvnd and
mesa both providing libEGL.so.1), compareCandidates sorted them by
version number. This is meaningless across different package names —
"26.0.3" vs "1.7.0" says nothing about which is the better provider.
The result was that mesa always won on version, silently pulling in
the wrong provider and causing path conflicts at activation.

Now version comparison only applies to same-name candidates (upgrade
selection). Cross-package providers are ranked by repo priority,
with genuine ties surfaced as ambiguity errors.

Also updates sameRank to detect ambiguity between different-named
providers at the same priority, rather than hiding it behind
meaningless version comparison.

Tests:

  • Cross-package providers, different priority -> higher-priority wins
  • Cross-package providers, same priority -> ConflictingProvisions
When multiple packages provide the same soname (e.g. libglvnd and mesa both providing libEGL.so.1), compareCandidates sorted them by version number. This is meaningless across different package names — "26.0.3" vs "1.7.0" says nothing about which is the better provider. The result was that mesa always won on version, silently pulling in the wrong provider and causing path conflicts at activation. Now version comparison only applies to same-name candidates (upgrade selection). Cross-package providers are ranked by repo priority, with genuine ties surfaced as ambiguity errors. Also updates sameRank to detect ambiguity between different-named providers at the same priority, rather than hiding it behind meaningless version comparison. Tests: - Cross-package providers, different priority -> higher-priority wins - Cross-package providers, same priority -> ConflictingProvisions
Fix cross-package provider selection comparing versions
All checks were successful
/ test (pull_request) Successful in 6m37s
950a080d3e
When multiple packages provide the same soname (e.g. libglvnd and
mesa both providing libEGL.so.1), compareCandidates sorted them by
version number. This is meaningless across different package names —
"26.0.3" vs "1.7.0" says nothing about which is the better provider.
The result was that mesa always won on version, silently pulling in
the wrong provider and causing path conflicts at activation.
Now version comparison only applies to same-name candidates (upgrade
selection). Cross-package providers are ranked by repo priority,
with genuine ties surfaced as ambiguity errors.
Also updates sameRank to detect ambiguity between different-named
providers at the same priority, rather than hiding it behind
meaningless version comparison.
Tests:
- Cross-package providers, different priority -> higher-priority wins
- Cross-package providers, same priority -> ConflictingProvisions
jhuntwork deleted branch fix-cross-package-provider 2026年07月04日 14:58:04 +02:00
Sign in to join this conversation.
No reviewers
Labels
Clear labels
No items
No labels
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
merelinux/mere!92
Reference in a new issue
merelinux/mere
No description provided.
Delete branch "fix-cross-package-provider"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?