Since last week I'm thinking about what could be done in order to
improve mdk for server and big LAN.
I see this week that one problem comes with applying patch. just after
mdk release having more than 50Mb of updates ....
The problems with actuals updates is that you have to provide the entire
rpm when just a .so or an binary file is concerned ( non need to
reinstall all png/doc/... files and others unconcerned files ).
Another problem is that updates can't be easily reversed ( you have to
do it by hand with an rpm -Uvh --oldpackage package.rpm, with
package.rpm coming from CD or others source ).

- cancel/reverse an update :

This should be done via urpmi. A special switch ( --downgrade ) should
allow urpmi to install packages (and it's dependencies ) by ignoring
packages that you could find in updates sources ( there are mark as
update in urpmi.cfg ). this could be extended in order to downgrade
others packages ( cooker -> stable ), but this should be avoid, and this
would imply bigger modification ton urpmi code.
With this solution, when --downgrade switch is used, urpmi just ignore
sources defined as updates. urpmi can ignore source where ignore keyword
is provide in source config, so this is not a so big deal.

- only provide patched files ( decrease updates size ) :

When you just need to provide one file in order to do the updates (
because the updates doesn't change fonction behavior or function
aliasing doesn't change ), provide the entire package is ... useless.

        + The main issue is that rpm doesn't allow partial upgrade. This should
be fixed by rpm team or else we have to find another way.

        + If you provide a virtual package ( for example
MDKSA2003096-apache2-2.0.47-8mdk.i586.rpm ) and use the --replacefiles
rpm switch, you can solve partially the problem ). BUT, how don you
easily know that you apply the updates ?
if you check directly apache2 rpm version, you will see nothing as the
version doesn't change. The solution could be to have the ability to
change the version of an installed package without installing a package
( directly in rpm database ).
Or else you no longer rely on original rpm version but instead look for
mdksa prefixed packages.
pre-install script should backup previous files in a special directory
in order to allow downgrade, let us revert the update.

Note : as rpm version doesn't change, the --downgrade switch or urpmi
can't be used, instead we should force package re-installation. If rpm
version can be artificially changed, then using urpmi --downgrade will
be enough.

Partial updates should always be applied to original packages. It means
that if another updates of apache2 comes, concerning a different file,
this updates should provides the first one and so on ( i.e like SP2 in
windows world that includes also SP1 updates )


- GUI : MandrakeUpdate

MandrakeUpdate should be modify in order to deal with this an provide an
easy way to revert back an upgrade, etc ...

- economy/financial part :

        + in order to make Club membership and box version more attractive,
partial updates should be provides only to these persons. So the tools
allowing to manage this, or else the packages providing these updates
should be accessible only to registered person ( if you come from Club,
use your club access, if you're using box version, depending of your box
level you can have a free registration to club or a special discount ).
For example you buy discovery, you have a free registration to Standard
Level of MandrakeClub or 50% discount ( need to provide box serial or
return a special coupon ).
If you buy Powerpack, you have free registration to Standard level or
else 50% discount to Silver Level.
and so on ...

        + this will save mdk ftp site bandwitch

Note : A really interesting things should be to develop a tool allowing
to manage update in a network containing severals computers, etc ... (
this will be part 2 ).

--- 
Tu n'aurais pas tourne dans Doom, toi ?


Reply via email to