The bad format for the name actually leads to the download URL never being used and the api always being called because it drops the version and arch:
pac.urllist ['file:///var/tmp/osbuild-packagecache/Ubuntu:9.10/standard/amd64/debianutils-2.30ubuntu3.amd64.deb/', 'http://download.buildservice.us.cray.com/repositories/Ubuntu:/9.10/standard/...', 'http://api.buildservice.us.cray.com/build/Ubuntu:9.10/standard/x86_64/_repos...']
Would never exist because of the format is wrong. Here's an example for the correct name with osc being built on our server:
So, this is a bug and it causes extra load on the frontend. Any debian based local build is always going to hit the frontend even if the deb exists on the download servers because the name calculated for the downoadload server is incorrect.
On Fri, 2009-12-04 at 09:14 -0600, Luke Imhoff wrote:
While testing osc 0.123, I ran into an issue with debianutils not being detected in the cache because it has not release, so the local file:// mirror fails to find the file since something adds -0 as a default release. But, when I was in the code I noticed that osc.fetch.Fetcher.fetch was constructing a canonical name for debs as
canonname = '%s-%s.%s.%s' % (pkgq.name(), pkgq.version(), arch, pkgq.filename_suffix)
which would give
but, the naming scheme for debs uses _ has a separator for verision and arch. The actual deb is called
Is this just an error in expanding osc build to handle deb based bundles and should be fixed or was a decision made to use . has a separator for the canonical names for both rpms and debs? In which case, when does this canonical name get translated to the correct name since the debs in the download url use the '_' separator?