python-aptdaemon: upgrading marks auto-installed packages as manual
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Aptdaemon |
Fix Committed
|
Undecided
|
Unassigned | ||
aptdaemon (Debian) |
Fix Released
|
Unknown
|
|||
aptdaemon (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Precise |
Fix Released
|
Medium
|
Unassigned | ||
Quantal |
Fix Released
|
Medium
|
Unassigned | ||
Raring |
Fix Released
|
High
|
Unassigned |
Bug Description
[Originally reported on bugs.d.o]
Package: python-aptdaemon
Version: 0.45-1
An obvious error in worker.
- auto = not self._cache.
- pkg.markInstall
+ pkg.mark_
causes previously auto-installed packages to be marked manually installed when upgraded with upgrade_packages or commit_packages. The error is then propagated to _mark_packages_
Python-apt has package.
Either way, at least one of the attached patches applies.
[1] http://
[2] http://
[Impact]
Applications that use python-aptdaemon, such as software-center and update-manager, will trigger this bug when upgrading packages, causing those packages to lose their auto-installed status. Over time, less and less packages will be considered for autoremoval and the system will become cluttered with unused old libraries and other dependencies.
[Test Case, using update-manager]
* Identify an upgradeable, auto-installed package:
$ aptitude search -F '%p' '~U~M'
…
udev
$ PKG=udev
$ grep-dctrl -P -X $PKG /var/lib/
Package: udev
Architecture: i386
Auto-Installed: 1
$ apt-cache policy $PKG
udev:
Installed: 175-3.1
Candidate: 175-7
Version table:
175-7 0
500 http://
*** 175-3.1 0
100 /var/lib/
* Run update-manager (which uses python-aptdaemon by default):
$ sudo update-manager
* Unmark all changes, then mark only the package that was identified. This issue may not be relevent when performing a complete upgrade.
* Apply changes. Quit update-manager.
* Confirm that the package is no longer auto-installed.
$ grep-dctrl -P -X $PKG /var/lib/
Package: udev
Architecture: i386
Auto-Installed: 0
[Regression Potential]
The code in python-aptdaemon is *obviously* wrong. Patch is small.
Related branches
- Colin Watson: Approve
-
Diff: 11606 lines (+11326/-22)25 files modified.pc/.quilt_patches (+1/-0)
.pc/.quilt_series (+1/-0)
.pc/.version (+1/-0)
.pc/applied-patches (+5/-0)
.pc/fix-lp-900982.patch/aptdaemon/enums.py (+698/-0)
.pc/fix-lp-932581.patch/aptdaemon/pkcompat.py (+2937/-0)
.pc/fix-lp-971748.patch/aptdaemon/networking.py (+262/-0)
.pc/fix-lp-971748.patch/aptdaemon/pkcompat.py (+2940/-0)
.pc/fix-lp-981124.patch/aptdaemon/client.py (+1697/-0)
.pc/fix_gettext_return_value_type.patch/aptdaemon/core.py (+2201/-0)
.pc/fix_gettext_return_value_type.patch/aptdaemon/utils.py (+88/-0)
aptdaemon/client.py (+8/-6)
aptdaemon/core.py (+20/-8)
aptdaemon/enums.py (+1/-1)
aptdaemon/networking.py (+11/-4)
aptdaemon/pkcompat.py (+10/-2)
aptdaemon/utils.py (+7/-1)
debian/changelog (+29/-0)
debian/patches/fix-lp-900982.patch (+19/-0)
debian/patches/fix-lp-932581.patch (+20/-0)
debian/patches/fix-lp-971748.patch (+87/-0)
debian/patches/fix-lp-981124.patch (+44/-0)
debian/patches/fix_gettext_return_value_type.patch (+171/-0)
debian/patches/series (+5/-0)
tests/regressions/test_lp768691.py (+63/-0)
Changed in aptdaemon (Ubuntu Precise): | |
status: | New → Incomplete |
status: | Incomplete → Opinion |
status: | Opinion → Triaged |
Changed in aptdaemon (Ubuntu Quantal): | |
status: | New → Triaged |
Changed in aptdaemon (Ubuntu Precise): | |
importance: | Undecided → Medium |
Changed in aptdaemon (Ubuntu Quantal): | |
importance: | Undecided → Medium |
tags: | added: rls-r-notfixing |
Changed in aptdaemon (Debian): | |
status: | Unknown → New |
Changed in aptdaemon (Debian): | |
status: | New → Fix Released |
I tried this with 3 upgradeable packages (epiphany-browser, epiphany- browser- data, and gdebi-core) on Quantal. Of the 3 only epiphany-browser and epiphany- browser- data had 'Auto-Installed' changed from 1 to 0.
This was using aptdaemon version 0.45+bzr861- 0ubuntu9. 1.