Comment 4 for bug 524020

Revision history for this message
Colin Watson (cjwatson) wrote :

'apt-get install uec^' looks up all packages with 'uec' in their Task field, and installs them. The Task fields are set by magic automatically generated overrides in the archive, based on germinate output. Sadly, they are not generated properly for karmic-updates.

However, this isn't really the core problem in this case. Putting kernels in the uec seed at all is the core problem, and I must apologise for not noticing this at the time. The reason this is bad is that the kernel ABI changes frequently, and once a release is final we never change its Packages files again! Thus "Task: uec" on linux-image-2.6.31-302-ec2 in dists/karmic/main/binary-*/Packages is frozen for the lifetime of karmic; while technically we *could* regenerate those files, we have never done so for stable Ubuntu releases, preferring to update only karmic-updates and the like, and I expect that things would go wrong if we did - for example, consider what happens when somebody tries to build an image using only karmic and not karmic-updates, or consider that some mirrors may well assume that dists/karmic/ will never change.

My recommendations are as follows:

  * For Karmic, perhaps it is possible to work around this in vm-builder. For example, 'apt-get install uec^ linux-image-2.6.32-302-ec2- linux-image-ec2- linux-ec2-' installs the uec task without the ec2 kernel bits; some elaboration of this might be constructed to use the updated ABI.
  * For Lucid, remove all kernels from the uec seed, and instead install them manually (so 'apt-get install uec^ linux-ec2 linux-virtual' or whatever). It is not safe to put kernels in seeds for which Task fields are generated.
  * We should institute some kind of archive-level test to ensure that kernels never have Task fields.