Only install packages from *-backports when requested by the user

Registered by Scott Kitterman

Currently if the Backports repository is enabled, all packages present in the pocket are considered for installation. Backports is not, by design, particularly suitable for all packages for all users. It is intended to be for users to install specific packages to gain specific features from a newer release. The goal should be for packages to only be installed when user requested or when required as a dependency of a requested package.

Blueprint information

Status:
Started
Approver:
Robbie Williamson
Priority:
Medium
Drafter:
Scott Kitterman
Direction:
Approved
Assignee:
Michael Vogt
Definition:
Approved
Series goal:
Accepted for natty
Implementation:
Started
Milestone target:
None
Started by
Scott Kitterman

Related branches

Whiteboard

The spec looks fine, thanks ScottK (renamed again for Natty))

The work for DONE is in the lp:~mvo/update-manager/not-automatic branch

The apt work may need further work items split, I have not looked into the details enough yet.

Work items:
add code to update-manager so that it looks that the version list if it comes accross pin priority 1: DONE
show priority one as available but unticked: DONE
[donkult] fix apt resolver so that it is able to resolve A depends B where B has a pin priority of 1 (and no candidate): DONE
[launchpad team] enable NotAutomatic: yes on the archive server for backports (LP: #721591): INPROGRESS
Show newer backports packages distinctively in Software Center: TODO
[kubuntu-dev] Show newer backports packages distinctively in Kpackagekit: TODO

Discussion from UDS-N:
Summary from previous discussions:
 - Backports in defaults sources.list, but disabled
 - Turning on backports means all backports get installed
 - Not feasible for default because backports is less stable than actual release
 - People want specific packages from backports (possible, but requires apt config magic)
 - Debian backports pinned to priority 1 by default
 - apt resolver will not pull dependencies from backports without explicitly specifying dependency as well

mvo: apt issue is deeply baked in, but we've found a simpler solution
ScottK: Goal: turn on backports by default, but not install any backports by default

What we need done:
 - fix apt resolver
 - change soyuz to set NotAutomatic: yes in backports release files
 - add "ButAutomaticUpgrades: yes" - don't install automatically, do upgrade automatically

Open question:
 - How do backports get exposed to user? update-manager? software-center? kpackagekit?
   Backports could show up in "what's new"
 - Even with u-m/s-c integration, what about server experience? server target audience is sophisticated
 - Need to be sure we're clear about implications of backports' potential instability

Side notes:
 - ARB and Backports are two separate ways to keep release fresh
 - Solution from backports session solves "where do we backport from after FF" (needs to be agreed to by Tech Board)

Upgrading from backport-on-maverick to natty?
 - If backport was *from* natty, you get upgraded to natty's version
 - If backported from *after* natty, you get upgraded to natty-backport's version

ACTIONS:
[] If backports is turned on by default, test m-backports -> n-backports upgrade
[mpt] Figure out how to present backports in a way that's neither too scary nor too inviting
[apt developers] Fix the apt resolver issue: DONE
[] Fix update-manager to take advantage of apt API change
[] Fix software-center to take advantage of apt API change
[] Fix kpackagekit to take advantage of apt API change
[] Write helper script for exploring backported options (also other pockets? PPAs?)

Down the line: add checkbox in Launchpad to make PPA NotAutomatic and ButAutomaticUpgrades

Note: The needed soyuz change is tracked in bug 721591

(?)

Work Items