Skip to content

Commit dfed740

Browse files
committed
Filter unwanted architectures out earlier
Deal with situations where packages with identical names for different architectures exist in the same repository files. For instance package A with `src` architecture and package `A` with `x86_64` architecture. Signed-off-by: Roman Mohr <[email protected]>
1 parent afa033c commit dfed740

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

pkg/reducer/reducer.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,24 @@ func (r *RepoReducer) Load() error {
3636
if err != nil {
3737
return err
3838
}
39-
r.packages = append(r.packages, repoFile.Packages...)
39+
for i, p := range repoFile.Packages {
40+
if skip(p.Arch, r.architectures) {
41+
continue
42+
}
43+
r.packages = append(r.packages, repoFile.Packages[i])
44+
}
4045
}
4146
repos, err := r.cacheHelper.CurrentPrimaries(r.repos, r.arch)
4247
if err != nil {
4348
return err
4449
}
4550
for _, rpmrepo := range repos {
46-
r.packages = append(r.packages, rpmrepo.Packages...)
51+
for i, p := range rpmrepo.Packages {
52+
if skip(p.Arch, r.architectures) {
53+
continue
54+
}
55+
r.packages = append(r.packages, rpmrepo.Packages[i])
56+
}
4757
}
4858

4959
for i, p := range r.packages {
@@ -54,9 +64,6 @@ func (r *RepoReducer) Load() error {
5464
}
5565
}
5666
r.packages[i].Format.Requires.Entries = requires
57-
if skip(p.Arch, r.architectures) {
58-
continue
59-
}
6067

6168
for _, provides := range p.Format.Provides.Entries {
6269
r.provides[provides.Name] = append(r.provides[provides.Name], &r.packages[i])

pkg/repo/fetch.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@ func (r *RepoFetcherImpl) Fetch() (err error) {
5353
return fmt.Errorf("failed to fetch primary.xml for %s: %v", repo.Name, err)
5454
}
5555
/* not used right now, save some bandwidth
56-
err = r.fetchFile(api.FilelistsFileType, &repo, repomd, mirror)
57-
if err != nil {
58-
return fmt.Errorf("failed to fetch filelists.xml for %s: %v", repo.Name, err)
59-
}
56+
err = r.fetchFile(api.FilelistsFileType, &repo, repomd, mirror)
57+
if err != nil {
58+
return fmt.Errorf("failed to fetch filelists.xml for %s: %v", repo.Name, err)
59+
}
6060
*/
6161
}
6262
return nil

0 commit comments

Comments
 (0)