archive: use proper component

source packages sometimes have different component than their
bpphs, so use the correct component when downloading binaries

LP: #1943819
This commit is contained in:
Dan Streetman 2021-09-16 21:01:19 -04:00
parent 5fcc4b5b46
commit 6ca12331d6

View File

@ -302,13 +302,13 @@ class SourcePackage(ABC):
def getArchive(self): def getArchive(self):
return self.getDistribution().getArchive() return self.getDistribution().getArchive()
def _mirror_url(self, mirror, filename): def _mirror_url(self, mirror, component, filename):
"Build a source package URL on a mirror" "Build a source package URL on a mirror"
if self.source.startswith('lib'): if self.source.startswith('lib'):
group = self.source[:4] group = self.source[:4]
else: else:
group = self.source[0] group = self.source[0]
return os.path.join(mirror, 'pool', self.component, group, return os.path.join(mirror, 'pool', component, group,
self.source, filename) self.source, filename)
def _archive_servers(self): def _archive_servers(self):
@ -325,14 +325,14 @@ class SourcePackage(ABC):
if self._dsc_source: if self._dsc_source:
yield str(self._dsc_source.parent / name) yield str(self._dsc_source.parent / name)
for server in self._archive_servers(): for server in self._archive_servers():
yield self._mirror_url(server, name) yield self._mirror_url(server, self.component, name)
if self.lp_spph.sourceFileUrl(name): if self.lp_spph.sourceFileUrl(name):
yield self.lp_spph.sourceFileUrl(name) yield self.lp_spph.sourceFileUrl(name)
def _binary_urls(self, name, bpph): def _binary_urls(self, name, bpph):
"Generator of URLs for name" "Generator of URLs for name"
for server in self._archive_servers(): for server in self._archive_servers():
yield self._mirror_url(server, name) yield self._mirror_url(server, bpph.getComponent(), name)
if bpph.binaryFileUrl(name): if bpph.binaryFileUrl(name):
yield bpph.binaryFileUrl(name) yield bpph.binaryFileUrl(name)
if bpph.getUrl(): if bpph.getUrl():