[maemo-developers] Problems with package web interface and "auto promotion" of dependencies (fremantle)

From: Anderson Lizardo anderson.lizardo at openbossa.org
Date: Thu Nov 5 15:03:20 EET 2009
Hi,

I've noticed a problem with the "auto promotion" mechanism used to
promote dependencies of packages in fremantle. It does not seem to be
honoring the Provides: field. Namely, if a package A was renamed to B,
it is actually auto promoting the old version with name "A", if some
application has this on its debian/control :

Depends: A

One example of such mistakenly promoted package is gnome-python (its
source package name). As you can see in
https://garage.maemo.org/svn/pymaemo/packages/gnome-python/trunk/debian/control
, it has two binary package (plus the -doc and -dev packages, not
important here):

python-gnome2
python-gconf

"python-gnome2" used to be called "gnome-python" in older versions,
but has been changed in Debian to follow their Python naming policy.
Therefore python-gnome2 now has in debian/control:

Provides: gnome-python

python-gconf has still the same name. Now, if you look at
http://repository.maemo.org/extras/pool/fremantle/free/g/gnome-python/,
you will see that the correct (newer) version of python-gconf was
promoted, but the older version of python-gnome2 was promoted instead
of the newer one. My suspect is that some application which uses
"Depends: gnome-python" was promoted and the auto promotion code
matched only the Package: fields and did not checked for the
dependency in Provides: fields.

This can cause all sorts of problems. For instance, python-gnome2
depends on python-gconf of the same version of itself, which is not
the case here.

In a related problem, the package web interface is handling package
names in Provides: which have older versions with the same name as
different packages, e.g.:

http://maemo.org/packages/view/python-gnome2/
http://maemo.org/packages/view/gnome-python/

Ideally, I think the second link should instead point to a page saying
something like:

"gnome-python is a virtual package provided by:
[list of packages, with links to their entries]"

*even* if there is an older package with that same name. This is
because APT will never see the older version, and will instead install
the newer package which uses Provides.

This would also solve a similar issue I reported in:

http://lists.maemo.org/pipermail/maemo-developers/2009-November/022150.html

In that case an older package was uploaded with a package name which a
newer package already Provides: , but it is still listed by the
package interface as different packages, although to APT one is a
virtual package name for the other.

I'll proceed and open two bug reports about these problems, so that it
is not forgotten :)

Regards,
-- 
Anderson Lizardo
OpenBossa Labs - INdT
Manaus - Brazil
More information about the maemo-developers mailing list