feat: add repo planning/binary repo support and Meson build integration
- add repos.toml source/binary repo configuration with arch overrides and priorities - add dependency planner/execution plan flow with interactive provider selection and --yes support - expand binary repo DB metadata (sha512, dependencies, file lists) and repo owns/search helpers - add rootfs-scoped fd locking and minisign detached signing/verification helpers - add Meson build/test support for the project with builddir-local CARGO_HOME/CARGO_TARGET_DIR - install contrib example configs into sysconfdir (/etc/depot.d layout) via Meson - improve builder env handling (sanitized PATH, tool env passthrough, CXXFLAGS support) - support += appends in package specs and add build.flags.cxxflags parsing - prompt for git credentials when private repo auth is required - update docs/examples and dependency setup (system libs, zstdmt, tempfile pin)
This commit is contained in:
+16
@@ -78,6 +78,11 @@ fn parse_dep(dep: &str) -> ParsedDep<'_> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Return the dependency name portion without any version/operator suffix.
|
||||
pub fn dep_name(dep: &str) -> &str {
|
||||
parse_dep(dep).name
|
||||
}
|
||||
|
||||
/// Compare two version strings using semver if possible, fallback to string compare
|
||||
fn compare_versions(installed: &str, required: &str, op: VersionOp) -> bool {
|
||||
// Try semver comparison first
|
||||
@@ -134,6 +139,17 @@ fn is_dep_satisfied(
|
||||
}
|
||||
}
|
||||
|
||||
/// Check whether a dependency expression is satisfied by the installed package DB.
|
||||
pub fn is_dep_satisfied_in_db(dep: &str, db_path: &Path) -> Result<bool> {
|
||||
if !db_path.exists() {
|
||||
return Ok(false);
|
||||
}
|
||||
|
||||
let installed = db::get_installed_packages(db_path)?;
|
||||
let provides = db::get_all_provides(db_path)?;
|
||||
is_dep_satisfied(dep, &installed, &provides, db_path)
|
||||
}
|
||||
|
||||
/// Check if all build dependencies are satisfied
|
||||
pub fn check_build_deps(spec: &PackageSpec, db_path: &Path) -> Result<Vec<String>> {
|
||||
let mut missing = Vec::new();
|
||||
|
||||
Reference in New Issue
Block a user