Seems there's a parsing error on the server too: <bdep arch="amd64" name="bash" notmeta="1" preinstall="1" project="Ubuntu:9.10" release="5ubuntu2" repository="standard" version="4.0" /> debs never have releases, it's all in version, but bash's version is 4.0-5ubuntu2, so the server is miss parsing the version as a version and release. osc assumes anything with a release is an rpm and so handles the name wrong. The server shouldn't be parsing the "release" out of the deb versions, since not all debs have "releases" embedded in the versions, debianutils is such an example. On Fri, 2009-12-04 at 09:35 -0600, Luke Imhoff wrote:
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...']
http://download.buildservice.us.cray.com/repositories/Ubuntu:/9.10/standard/...
Would never exist because of the format is wrong. Here's an example for the correct name with osc being built on our server:
http://download.buildservice.us.cray.com/openSUSE:/Tools/xUbuntu_9.10/amd64/...
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
debianutils-2.30ubuntu3.amd64.deb
but, the naming scheme for debs uses _ has a separator for verision and arch. The actual deb is called
/srv/obs/build/Ubuntu:9.10/standard/x86_64/:full/debianutils_2.30ubuntu3_amd64.deb
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?
-- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-buildservice+help@opensuse.org