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 ?