[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Auto install code



Well, I have been struggling with this for a few days now and have quite
thoughly explored the auto install stuff using a number of different
algorithms.

Just to remind everyone, what we sortof hit on before was:

Stage 1 - Gently upgrade new packages without breaking anything or
          installing any more packages
Stage 2 - More agressively install packages trying to conform to the 
          users desires.

I have got Stage 1 down pat, it works very well. Stage 2 is somewhat more
elusive.

The deal with Stage 2 is that it has to upgrade everything stage 1 left
behind. This in itself is easy (and I have that working) but it preforms
changes to the packages states for which there is no atomic reversal for. 

That is, if you install libc6 and then delete libc6 you will end up with a
whole wack of broken packages. Right after you install libc6 it will
automatically upgrade everything that depended on it. But when you undo
your install operation it will not un-upgrade the things it upgraded
seconds before.

Somehow this doesn't sound very appealing to me..

There is a simple fix for this, that is to have automatically upgraded
packages become 'special' and then allow them to be automatically
downgraded. I'm not sure if it is wise to have a hidden state though. 

So, Behan, you are going to have to give some guidance here. I see three
things,
  1 - Keep it as it is, ignore the fact that operations are irreversable
  2 - Weaken the power of the autoupgrader somehow and make the user
      manually do things that in many cases could be handled automatically
  3 - Allow automatically upgraded packages to become special

So far things are going extremely well btw, with the code right now it is
possible to upgrade to hamm in about 20 key strokes! Dselect for the same
process is a bit of a nightmare I belive :>

Thanks
Jason


Reply to: