Bug#599523: [update-manager-gnome] wants to downgrade packages without any notice
Zoran Dželajlija
jelly+bugs.debian.org at srk.fer.hr
Thu Oct 21 21:25:54 UTC 2010
Hi,
Quoting Evgeni Golov (evgeni at debian.org):
> Hi Zoran,
>
> I fear your problem is your pinning.
I believe the problem is update-manager does not behave like
apt-preferences(5) says APT (or presumably any package manager) should.
Some reasoning below.
> > $ apt-cache policy libgl1-mesa-dri
> > libgl1-mesa-dri:
> > Installed: 7.8.2-2
> > Candidate: 7.7.1-4
> > Package pin: 7.7.1-4
> > Version table:
> > *** 7.8.2-2 990
> > 200 http://debian.iskon.hr/debian/ experimental/main i386 Packages
> > 100 /var/lib/dpkg/status
> > 7.7.1-4 990
> > 700 http://debian.iskon.hr/debian/ testing/main i386 Packages
> > 300 http://debian.iskon.hr/debian/ unstable/main i386 Packages
> > 7.0.3-7 990
> > 400 http://debian.iskon.hr/debian/ stable/main i386 Packages
>
> Candidate is 7.7.1-4, NOT your wanted 7.8.2-2.
Indeed, but a downgrade must not be attempted at priority 700 or even 990.
The relevant passage from apt_preferences(5) seem to be:
[cut]
If the target release has been specified then APT uses the following
algorithm to set the priorities of the versions of a package. Assign:
priority 1
to the versions coming from archives which in their Release files are
marked as "NotAutomatic: yes" like the debian experimental archive.
priority 100
to the version that is already installed (if any).
priority 500
to the versions that are not installed and do not belong to the target
release.
priority 990
to the versions that are not installed and belong to the target release.
APT then applies the following rules, listed in order of precedence,
to determine which version of a package to install.
- Never downgrade unless the priority of an available version exceeds 1000.
("Downgrading" is installing a less recent version of a package in place
of a more recent version. Note that none of APT's default priorities
exceeds 1000; such high priorities can only be set in the preferences
file. Note also that downgrading a package can be risky.)
- Install the highest priority version.
- If two or more versions have the same priority, install the most recent
one (that is, the one with the higher version number).
- If two or more versions have the same priority and version number but
either the packages differ in some of their metadata or the --reinstall
option is given, install the uninstalled one.
[cut]
Since the newer package was explicitely installed manually, and the highest
pinned, target release package does _not_ exceed 1000, I believe a downgrade
_must not_ be attempted at all. Both apt-get and aptitude binaries
interpret the situation in this manner and don't try to downgrade, as
opposed to update-manager.
In addition to fixing this behavior, I strongly suggest update-manager
should warn when a downgrade is attempted or proposed _even_ when the true
conditions for a downgrade are met, because the packaging policies do not
account for downgrades and things are allowed to break. If you want, I can
clone or file a separate bug for absence of such a warning.
> Can you paste the output of `apt-cache policy` and the content of
> /etc/apt/preferences and /etc/apt/preferences.d/*
Sure, attaching outputs of "apt-cache policy" and "cat /etc/apt/preferences
/etc/apt/preferences.d/*". My preferences probably are somewhat broken
according to "apt-cache policy libgl-mesa-dri". They don't do what I
expected them to -- that is, make the latest libgl1-mesa-dri from either
testing, unstable or experimental the prefered candidate. However I don't
see a way how they could enable a downgrade.
Regards,
Zoran
-------------- next part --------------
$ apt-cache policy
================
Package files:
100 /var/lib/dpkg/status
release a=now
500 http://download.virtualbox.org/virtualbox/debian/ lenny/non-free i386 Packages
release o=Oracle Corporation,n=lenny,l=Oracle Corporation,c=non-free
origin download.virtualbox.org
500 http://download.skype.com/linux/repos/debian/ stable/non-free i386 Packages
origin download.skype.com
400 http://deb.opera.com/opera-snapshot/ stable/non-free i386 Packages
release o=Opera Software ASA,a=stable,n=lenny,l=The Opera web browser,c=non-free
origin deb.opera.com
400 http://deb.opera.com/opera/ stable/non-free i386 Packages
release o=Opera Software ASA,a=stable,n=lenny,l=The Opera web browser,c=non-free
origin deb.opera.com
500 file:/home/jelly/mnt/burek/packages/wine/ ./ Packages
500 file:/home/jelly/packages/ ./ Packages
300 http://www.debian-multimedia.org/ sid/non-free i386 Packages
release v=None,o=Unofficial Multimedia Packages,a=unstable,n=sid,l=Unofficial Multimedia Packages,c=non-free
origin www.debian-multimedia.org
300 http://www.debian-multimedia.org/ sid/main i386 Packages
release v=None,o=Unofficial Multimedia Packages,a=unstable,n=sid,l=Unofficial Multimedia Packages,c=main
origin www.debian-multimedia.org
500 http://www.lamaresh.net/apt/ squeeze/main i386 Packages
release o=Wine Squeeze Repository,a=squeeze,n=squeeze,l=Wine Squeeze Repository,c=main
origin www.lamaresh.net
700 http://security.debian.org/ squeeze/updates/non-free i386 Packages
release v=None,o=Debian,a=testing,n=squeeze,l=Debian-Security,c=non-free
origin security.debian.org
700 http://security.debian.org/ squeeze/updates/contrib i386 Packages
release v=None,o=Debian,a=testing,n=squeeze,l=Debian-Security,c=contrib
origin security.debian.org
700 http://security.debian.org/ squeeze/updates/main i386 Packages
release v=None,o=Debian,a=testing,n=squeeze,l=Debian-Security,c=main
origin security.debian.org
200 http://debian.iskon.hr/debian/ experimental/non-free i386 Packages
release o=Debian,a=experimental,n=experimental,l=Debian,c=non-free
origin debian.iskon.hr
200 http://debian.iskon.hr/debian/ experimental/contrib i386 Packages
release o=Debian,a=experimental,n=experimental,l=Debian,c=contrib
origin debian.iskon.hr
200 http://debian.iskon.hr/debian/ experimental/main i386 Packages
release o=Debian,a=experimental,n=experimental,l=Debian,c=main
origin debian.iskon.hr
300 http://debian.iskon.hr/debian/ unstable/non-free i386 Packages
release o=Debian,a=unstable,n=sid,l=Debian,c=non-free
origin debian.iskon.hr
300 http://debian.iskon.hr/debian/ unstable/contrib i386 Packages
release o=Debian,a=unstable,n=sid,l=Debian,c=contrib
origin debian.iskon.hr
300 http://debian.iskon.hr/debian/ unstable/main i386 Packages
release o=Debian,a=unstable,n=sid,l=Debian,c=main
origin debian.iskon.hr
700 http://debian.iskon.hr/debian/ testing/non-free i386 Packages
release o=Debian,a=testing,n=squeeze,l=Debian,c=non-free
origin debian.iskon.hr
700 http://debian.iskon.hr/debian/ testing/contrib i386 Packages
release o=Debian,a=testing,n=squeeze,l=Debian,c=contrib
origin debian.iskon.hr
700 http://debian.iskon.hr/debian/ testing/main i386 Packages
release o=Debian,a=testing,n=squeeze,l=Debian,c=main
origin debian.iskon.hr
400 http://debian.iskon.hr/debian/ stable/non-free i386 Packages
release v=5.0.6,o=Debian,a=stable,n=lenny,l=Debian,c=non-free
origin debian.iskon.hr
400 http://debian.iskon.hr/debian/ stable/contrib i386 Packages
release v=5.0.6,o=Debian,a=stable,n=lenny,l=Debian,c=contrib
origin debian.iskon.hr
400 http://debian.iskon.hr/debian/ stable/main i386 Packages
release v=5.0.6,o=Debian,a=stable,n=lenny,l=Debian,c=main
origin debian.iskon.hr
Pinned packages:
mplayer -> (not found)
xserver-xorg-core -> 2:1.7.7-8
midori -> 0.2.7-1.1
amarok -> 2.3.1-1
wine -> 1.1.24-2
libgl1-mesa-dri -> 7.7.1-4
xserver-xorg-video-intel -> 2:2.12.0+shadow-2
$
-------------- next part --------------
cat /etc/apt/preferences
========================
Package: midori
Pin: release a=unstable
Pin-Priority: 900
Package: amarok
Pin: release a=unstable
Pin-Priority: 710
Package: wine
Pin: release a=unstable
Pin-Priority: 900
Package: wine
Pin: release a=experimental
Pin-Priority: 900
Package: xserver-xorg-video-intel
Pin: release a=experimental
Pin-Priority: 900
Package: xserver-xorg-video-intel
Pin: release a=unstable
Pin-Priority: 900
Package: libgl1-mesa-dri
Pin: release a=experimental
Pin-Priority: 990
Package: libgl1-mesa-dri
Pin: release a=unstable
Pin-Priority: 990
Package: libgl1-mesa-dri
Pin: release a=testing
Pin-Priority: 990
Package: xserver-xorg-core
Pin: release a=experimental
Pin-Priority: 900
Package: xserver-xorg-core
Pin: release a=unstable
Pin-Priority: 900
Package: mplayer
Pin: version 1:*
Pin-Priority: 990
Package: *
Pin: release a=stable
Pin-Priority: 400
Package: *
Pin: release a=testing
Pin-Priority: 700
Package: *
Pin: release a=unstable
Pin-Priority: 300
Package: *
Pin: release a=experimental
Pin-Priority: 200
cat /etc/apt/preferences.d/*
============================
zsh: no matches found: /etc/apt/preferences.d/*
More information about the pkg-gnome-maintainers
mailing list