From f25ba2e6b0615537aef1542fe19e6c28cc6b64c1 Mon Sep 17 00:00:00 2001 From: Philip Cramer <107579314+PhilipCramer@users.noreply.github.com> Date: Thu, 19 Feb 2026 00:09:00 +0100 Subject: [PATCH] feat: propagate AppStreamFiles through snapshots --- deb/snapshot.go | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/deb/snapshot.go b/deb/snapshot.go index 74f8865d..f79a50d2 100644 --- a/deb/snapshot.go +++ b/deb/snapshot.go @@ -40,6 +40,9 @@ type Snapshot struct { NotAutomatic string ButAutomaticUpgrades string + // AppStream files: relative path → pool path (pass-through from mirror) + AppStreamFiles map[string]string `json:",omitempty"` + packageRefs *PackageRefList } @@ -59,6 +62,7 @@ func NewSnapshotFromRepository(name string, repo *RemoteRepo) (*Snapshot, error) Origin: repo.Meta["Origin"], NotAutomatic: repo.Meta["NotAutomatic"], ButAutomaticUpgrades: repo.Meta["ButAutomaticUpgrades"], + AppStreamFiles: repo.AppStreamFiles, packageRefs: repo.packageRefs, }, nil } @@ -94,14 +98,28 @@ func NewSnapshotFromRefList(name string, sources []*Snapshot, list *PackageRefLi sourceUUIDs[i] = sources[i].UUID } + // Merge AppStreamFiles from all source snapshots + var mergedAppStream map[string]string + for _, source := range sources { + if len(source.AppStreamFiles) > 0 { + if mergedAppStream == nil { + mergedAppStream = make(map[string]string) + } + for k, v := range source.AppStreamFiles { + mergedAppStream[k] = v + } + } + } + return &Snapshot{ - UUID: uuid.NewString(), - Name: name, - CreatedAt: time.Now(), - SourceKind: "snapshot", - SourceIDs: sourceUUIDs, - Description: description, - packageRefs: list, + UUID: uuid.NewString(), + Name: name, + CreatedAt: time.Now(), + SourceKind: "snapshot", + SourceIDs: sourceUUIDs, + Description: description, + AppStreamFiles: mergedAppStream, + packageRefs: list, } }