On 08/31/2012 10:27 AM, william wrote:
> Hello
> 
> Ubuntu 12.04 has some difference with upstream debian with multiarch
> packages.
> 
> When you try to add a system to spacewalk it will raise a typeError.
> After investigating the issue it seems that the package name as listed
> with dpkg -l has packages without the packagename.list file in
> /var/lib/dpkg/info/ e.g. e2fslibs.  The file debUtils.py from rhn-client
> looks for this file to determine the installtime (dpkg does not have
> this info in its package database), but on Ubuntu 12.04 you can have the
> package e2fslibs bot not the file e2fslibs.list file but the filename is
> e2fslibs:amd64.list.
> 
> https://bugs.launchpad.net/bugs/1020833
> 
> 
> 
> #dpkg -l|grep e2fslibs
> ii  e2fslibs 1.42-1ubuntu2                           ext2/ext3/ext4 file
> system libraries
> 
> #ls /var/lib/dpkg/info/e2fslibs*
> 
> /var/lib/dpkg/info/e2fslibs:amd64.list
> /var/lib/dpkg/info/e2fslibs:amd64.postinst
> /var/lib/dpkg/info/e2fslibs:amd64.shlibs
> /var/lib/dpkg/info/e2fslibs:amd64.md5sums
> /var/lib/dpkg/info/e2fslibs:amd64.postrm
> /var/lib/dpkg/info/e2fslibs:amd64.symbols
> 
> 
> The filenames for packages with e.g. the name gcc-4.6-base:i386 does
> have the correct list file in /var/lib/dpkg/info/, but packages without
> this arch extension is mostly packagename:amd64.list
> An easy solution would be to check for the packagename.list then
> packagename:amd64.list and so on.
> 
> e.g.
> file: /usr/share/rhn/up2date_client/debUtils.py
> 
> def installTime(pkg_name):
> 
>     path = '/var/lib/dpkg/info/%s.list' % pkg_name
>     if os.path.isfile(path):
>        return os.path.getmtime(path)
>     path = '/var/lib/dpkg/info/%s:amd64.list' % pkg_name
>     if os.path.isfile(path):
>        return os.path.getmtime(path)
>     path = '/var/lib/dpkg/info/%s:i386.list' % pkg_name
>     if os.path.isfile(path):
>        return os.path.getmtime(path)
>     else:
>        print pkg_name
>        return None
> 

So, after this change Spacewalk community would maintain a mapping
between possible architectures and their names in Debian world? I really
don't feel this is the right way to go.

Why we actually need that file? Yes, we need it because dpkg does not
provide package installation time.

Wouldn't be the world much better place to live in if dpkg could provide
package installation time?

> (it can also be to return 0 if the list file has not been found).
> 
> After this change Ubuntu 12.04 works as expected without a typeError
> 
> ps: a while back i also posted the package python-hwdata which adds the
> system info to the spacewalk database, without this you wil not have hw
> info.
> https://www.redhat.com/archives/spacewalk-devel/2012-July/msg00018.html
> 
> Regards
> William


-- 
Simon Lukasik

_______________________________________________
Spacewalk-devel mailing list
Spacewalk-devel@redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-devel

Reply via email to