| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
resolve: favor installed provider for capability lookups in find_favored_candidate() For capability requirements (e.g. /bin/sh), the resolver looked up the favored candidate only by the capability string in the installed map. That map is keyed by pkgname (dash-binsh, busybox-binsh, yash-binsh), so installed_pkgname2keys.get("/bin/sh") was always None and no candidate was favored. The solver could then pick a different provider (e.g. yash-binsh) than the one already installed (dash-binsh), causing a bin/sh file conflict. When the direct lookup by name_string fails, iterate over candidates and favor the first whose record.pkgname (and record.pkgkey) is in the installed map, still skipping favor if that pkgname is in delta_world. Fixes: tests/e2e/test.sh -dd install-remove-upgrade/test-install-remove-upgrade.sh alpine bash epkg -e "$env_name" --assume-yes upgrade picking yash-binsh for /bin/sh when dash-binsh is already installed, leading to File conflict: bin/sh (from package yash-binsh__2.60-r0__x86_64) conflicts with installed file from package dash-binsh__0.5.13.1-r2__x86_64 Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 5 个月前 | |
Revert "resolve/capability: skip packages in no_install during capability check" This reverts commit 7481fa43ed88b396004f73090af407bfc6f0230d Fixes: [RESOLVO] filter_candidates: checking if systemd__255-54.oe2509__x86_64 provides 'systemd-sysv': false [RESOLVO] filter_candidates: systemd__255-54.oe2509__x86_64 does not match 'systemd-sysv' (direct_match=false, provides=false) Error: 0: Dependency resolution failed for 2nd pass (REQUIRES only): freeradius-postgresql freeradius-postgresql cannot be installed because there are no viable options: └─ freeradius-postgresql 3.2.8-2.oe2509 would require └─ freeradius freeradius(=3.2.8-2.oe2509), which cannot be installed because there are no viable options: └─ freeradius 3.2.8-2.oe2509 would require └─ systemd-sysv systemd-sysv, for which no candidates were found. Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 6 个月前 | |
resolve/constraint: fix self-contradictory constraint filtering for all distros Case study: hplip installation failure due to xz-utils self-conflicting constraint Problem: - hplip depends on xz-utils, which provides lzma capability at version 5.8.2-2 - xz-utils also has conflict constraint: lzma(>=9.22-1) - This creates a self-contradictory constraint where the package both provides lzma at version 5.8.2-2 and constrains lzma to be >=9.22-1 - The constraint inversion for conflicts creates: lzma<9.22-1 (inverted from >=) - This conflicts with xz-utils' own provided version, causing resolution failure Context data: RUST_LOG=debug epkg --assume-no -e ubuntu install --no-install-essentials hplip 0: Dependency resolution failed for 2nd pass (REQUIRES only): The following packages are incompatible └─ hplip hplip cannot be installed because there are no viable options: └─ hplip 3.24.4+dfsg0-0ubuntu5 would require └─ xz-utils xz-utils, which cannot be installed because there are no viable options: └─ xz-utils 5.8.2-2 would constrain └─ lzma lzma(>=9.22-1), which conflicts with any installable versions previously reported % epkg -e ubuntu info lzma pkgname: xz-utils version: 5.8.2-2 requires: libc6 (>= 2.34), liblzma5 (>= 5.6.2) provides: lzma conflicts: lzma (<< 9.22-1), xz-lzma Root cause: - Self-contradictory constraint filtering was only applied to OpenEuler distro - For other distros like Ubuntu, self-contradictory constraints caused solver panics Fix: - Remove distro restriction, apply self-contradictory constraint filtering to all distros - When a package constrains a capability it provides, check if provided version satisfies the constraint; if not, skip the constraint to prevent self-contradiction - This filters out invalid constraints like xz-utils' lzma(>=9.22-1) that conflict with its own provided version Impact: - Resolves hplip installation failures on Ubuntu and other distros - Prevents similar self-contradictory constraint issues across all package formats Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 6 个月前 | |
resolvo: split code Split to resolve/ to avoid namespace confusion with external resolvo crate. Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 6 个月前 | |
resolve: reduce a debug log Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 5 个月前 | |
resolve: quiet a warning [DEBUG src/resolve/provider.rs:368] [RESOLVO] lookup_packages_by_capability('golang-vet') returning 0 total packages [DEBUG src/resolve/provider.rs:212] [RESOLVO] Capability lookup: skipping arch filtering for 'golang-vet' (keeping 0 packages) [WARN src/resolve/requirement.rs:114] [RESOLVO] Package/capability 'golang-vet' not found, skipping (ignore_missing=true) Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 5 个月前 | |
resolvo: split code Split to resolve/ to avoid namespace confusion with external resolvo crate. Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn> | 6 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 6 个月前 | ||
| 5 个月前 | ||
| 5 个月前 | ||
| 6 个月前 |