Expand description
Bridge between portage-atom and the PubGrub dependency solver.
Maps PMS package atoms to PubGrub’s Package, Version, and VersionSet
traits, and provides a DependencyProvider implementation backed by a
package repository.
§USE Flag Handling
USE conditionals in dependency strings are handled via a hybrid strategy:
- User-decided flags (
enabled/disabled) are eagerly evaluated at registration time — the solver never sees those branches. - Solver-decided flags are encoded as virtual packages with two versions (0 = OFF, 1 = ON). PubGrub’s one-version-per-package constraint provides mutual exclusion for free.
Structs§
- DepEdge
- A labeled edge in the dependency graph: (from_pkg, from_version) depends on (to_pkg, to_version) via the given class.
- InMemory
Repository - A simple in-memory repository for testing.
- Installed
Package - A package that is already installed, with its version and policy.
- Package
Deps - Structured dependency trees separated by PMS class.
- Package
Versions - Metadata for a single ebuild version, including its dependency trees.
- Portage
Dependency Provider - A PubGrub
DependencyProviderbacked by a portage package repository. - Portage
Package - A PubGrub-compatible package identifier combining a CPN with an optional slot.
- Portage
Version Set - A PubGrub
VersionSetbacked by PMS version ranges. - Slot
Operator Binding - A resolved slot-operator binding.
- UseConfig
- Configuration for USE flag evaluation during dependency conversion.
Enums§
- DepClass
- Dependency class label for an edge in the dependency graph.
- Error
- Error type for portage-atom-pubgrub.
- IUse
Default - Default state for an IUSE flag, from the
+/-prefix in IUSE. - Installed
Policy - Whether an installed package should be favored or locked during resolution.
- UseFlag
State - How a single USE flag should be evaluated during dependency conversion.
Traits§
- Package
Repository - Trait for a package repository that the solver can query.
Type Aliases§
- Result
- Result type for portage-atom-pubgrub operations.