Requesting purge to abort fails.

Bug #1408031 reported by Elfy
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ppa-purge (Ubuntu)
Triaged
Low
Unassigned

Bug Description

Started to ppa-purge a ppa.

Decided not to do so - selected n at

Do you want to continue? [Y/n] n

It says it is going to abort - then carries on and downgrades packages.

Terminal output attached.

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: ppa-purge 0.2.8+bzr57
ProcVersionSignature: Ubuntu 3.16.0-28.38-generic 3.16.7-ckt1
Uname: Linux 3.16.0-28-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 2.15.1-0ubuntu1
Architecture: amd64
CurrentDesktop: XFCE
Date: Tue Jan 6 17:01:30 2015
InstallationDate: Installed on 2014-10-24 (74 days ago)
InstallationMedia: Xubuntu 14.10 "Utopic Unicorn" - Release amd64 (20141022)
PackageArchitecture: all
SourcePackage: ppa-purge
UpgradeStatus: No upgrade log present (probably fresh install)

Related branches

Revision history for this message
Elfy (elfy) wrote :
Revision history for this message
Elfy (elfy) wrote :
Revision history for this message
Tim Lunn (darkxst) wrote :

apt-get returns 1 when you press n, so ppa-purge goes onto to try the fallback (aptitude), seemingly that runs without even asking.

The fallback was meant to catch the case where apt-get gets confused by the revert list not being 100% accurate. That should be much better in the new version in Xenial, but its still possible to hit that case, if there are packages with cross-ppa dependencies for example.

Changed in ppa-purge (Ubuntu):
status: New → Triaged
importance: Undecided → Low
Revision history for this message
Jarno Suni (jarnos) wrote :

Can you give an example of case where apt-get gets confused? Why not just use aptitude, if it can handle each case?

Revision history for this message
Tim Lunn (darkxst) wrote :

apt-get will fail in case of any missing dependencies The most common cause of this was when a package had a soname bump , although this is actually fixed, but it makes a nice example.

If you consider the gnome3-team/gnome3-staging ppa for 16.04, the mutter library package is:
libmutter0h
however on stock 16.04 it is:
libmutter0g

Now when we run ppa-purge, libmutter0h will get selected to remove, however (the downgraded) gnome-shell,gdm etc will depend on libmutter0g, so apt-get will refuse to install these packages, since libmutter0g is not selected for installation.

Another example (which is NOT fixed) would be if a package was renamed for some reason. Say package 'foo' was renamed to package 'bar' on a ppa, 'bar' would have a replaces field in the control to facilitate the upgrade, but ppa-purge doesnt know how to roll that back. So package 'bar' get removed and any package that depends on 'foo' will fail to install. It may be possible to use apt-get upgrade or apt-get dist-upgrade to help with these but I have never tried that.

These generally only affect the more complex ppa's like gnome3-staging and xorg-edgers, and in fact they are probably the two best test-cases for seeing if things work.

aptitude is unpredictable, although it allows the user to proceed, its attempts to resolve the dependencies are not always correct and it will also quite happily remove packages that shouldnt be. Having apt-get working 100% of the time would be better

Revision history for this message
Jarno Suni (jarnos) wrote :

I added xorg-edgers, applied upgrades and ran ppa-purge in 14.04. It did not use aptitude. Anyway, you can use '-f' option for apt-get to make it install missing dependencies. As for removing packages that should not be removed, I wonder if --force-yes option is needed for apt-get in non-interactive mode.

Paul White (paulw2u)
tags: added: xenial
Revision history for this message
Jarno Suni (jarnos) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.