Implement package replacement feature across the codebase
- Introduced a new `replaces` field in various structs to support package replacements. - Updated database schema to include a `replaces` table and corresponding queries. - Modified the package index to handle replacements and ensure they take precedence over exact package names. - Enhanced the `create_source_repo_index` function to include replacement entries in the index. - Updated tests to validate the new replacement functionality, including parsing and metadata generation. - Refactored relevant functions and structures to accommodate the new `replaces` feature in package specifications and alternatives.
This commit is contained in:
+3
-2
@@ -877,6 +877,7 @@ mod tests {
|
||||
provides: vec![format!("{}-virtual", name)],
|
||||
conflicts: Vec::new(),
|
||||
replaces: Vec::new(),
|
||||
lib32: None,
|
||||
},
|
||||
manual_sources: Vec::new(),
|
||||
source: vec![Source {
|
||||
@@ -979,8 +980,8 @@ mod tests {
|
||||
|
||||
let ts = filetime::FileTime::from_unix_time(1_700_000_000, 0);
|
||||
filetime::set_file_mtime(&file, ts).unwrap();
|
||||
filetime::set_file_mtime(&dest.join("usr"), ts).unwrap();
|
||||
filetime::set_file_mtime(&dest.join("usr/bin"), ts).unwrap();
|
||||
filetime::set_file_mtime(dest.join("usr"), ts).unwrap();
|
||||
filetime::set_file_mtime(dest.join("usr/bin"), ts).unwrap();
|
||||
filetime::set_file_mtime(&dest, ts).unwrap();
|
||||
|
||||
register_package(&db_path, &spec, &dest).unwrap();
|
||||
|
||||
Reference in New Issue
Block a user