diff --git a/libips/src/fmri.rs b/libips/src/fmri.rs index 1cfde9c..cb59e4d 100644 --- a/libips/src/fmri.rs +++ b/libips/src/fmri.rs @@ -644,12 +644,12 @@ impl Fmri { impl fmt::Display for Fmri { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - // For FMRIs without a publisher, we should use the format pkg:///name + // For FMRIs without a publisher, we should use the format pkg:/name // For FMRIs with a publisher, we should use the format pkg://publisher/name if let Some(publisher) = &self.publisher { write!(f, "{}://{}/", self.scheme, publisher)?; } else { - write!(f, "{}:///", self.scheme)?; + write!(f, "{}:/", self.scheme)?; } write!(f, "{}", self.name)?; diff --git a/libips/src/repository/catalog.rs b/libips/src/repository/catalog.rs index fd22d3e..8878cd7 100644 --- a/libips/src/repository/catalog.rs +++ b/libips/src/repository/catalog.rs @@ -192,9 +192,6 @@ impl CatalogAttrs { /// Package version entry in a catalog #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct PackageVersionEntry { - /// Package version string - pub version: String, - /// Optional actions associated with this package version #[serde(skip_serializing_if = "Option::is_none")] pub actions: Option>, @@ -202,6 +199,9 @@ pub struct PackageVersionEntry { /// Optional SHA-1 signature of the package manifest #[serde(rename = "signature-sha-1", skip_serializing_if = "Option::is_none")] pub signature_sha1: Option, + + /// Package version string + pub version: String, } /// Catalog part (base, dependency, summary) diff --git a/libips/src/repository/file_backend.rs b/libips/src/repository/file_backend.rs index 00dc895..6c1ff04 100644 --- a/libips/src/repository/file_backend.rs +++ b/libips/src/repository/file_backend.rs @@ -2347,7 +2347,10 @@ impl FileBackend { // Extract summary actions (set actions excluding variants and facets) let mut summary_actions = Vec::new(); for attr in &manifest.attributes { - if !attr.key.starts_with("variant.") && !attr.key.starts_with("facet.") { + if !attr.key.starts_with("variant.") + && !attr.key.starts_with("facet.") + && attr.key != "pkg.fmri" + { let values_str = attr.values.join(" value="); summary_actions.push(format!("set name={} value={}", attr.key, values_str)); } @@ -2466,8 +2469,8 @@ impl FileBackend { dependency_part_path.display() ); let mut dependency_part = crate::repository::catalog::CatalogPart::new(); - for (fmri, actions, signature) in dependency_entries { - dependency_part.add_package(publisher, &fmri, actions, Some(signature)); + for (fmri, actions, _signature) in dependency_entries { + dependency_part.add_package(publisher, &fmri, actions, None); } let dependency_sig = catalog_writer::write_catalog_part(&dependency_part_path, &mut dependency_part)?; @@ -2477,8 +2480,8 @@ impl FileBackend { let summary_part_path = catalog_dir.join(summary_part_name); debug!("Writing summary part to: {}", summary_part_path.display()); let mut summary_part = crate::repository::catalog::CatalogPart::new(); - for (fmri, actions, signature) in summary_entries { - summary_part.add_package(publisher, &fmri, actions, Some(signature)); + for (fmri, actions, _signature) in summary_entries { + summary_part.add_package(publisher, &fmri, actions, None); } let summary_sig = catalog_writer::write_catalog_part(&summary_part_path, &mut summary_part)?;