Kevan Benson wrote:
I've always been a little confused by the packaging choices in the centosplus repos. Why name packages such as php and mysql the same as their core counterparts? Why not append an extra 5 to both to the package names to designate they are fundamentally different? This seems to be how Mandiva and Debian do it, and it seems to work.
yes ? so you mean to say that php-4.3.9 from [base] provides: php and php5-5.1.6 from [centosplus] also provides: php
guess which one is going to get used when a package comes along that Requires: php ?
so based on your example, we can just as well drop php-4 from [base] and all go home :)
For example having php 5 named php5-5.0.4 instead of php-5.0.4 would get around accidental upgrades after adding the repo, wouldn't it? Similarly with mysql 5.
how did you work that one out ? { side note: you do realise that packages get pulled in to satisfy depends on/from other packages }
As for which lib to built with, you could standardize on the default being the core package, and if needed, another built specifically using the centosplus package but also named differently.
err. no, thats the wrong fix to the problem. The right fix might be to provide a relevant compat-<package>-<version> in the right place to provide the right lib linking bridge. That is we fix a problem, I'm not quite sure if we've defined the problem well enough to actually propose a fix.
In the example this thread was started with and using the naming convention I just put forward, you would have packages such as this in the centosplus repo:
mysql5-5.0.22-1.centos.1.i386.rpm php5-5.0.4-5.centos4.i386.rpm php5-mysql-5.0.4-5.centos4.i386.rpm (built against mysql 4 in the core) php5-mysql5-5.0.4-5.centos4.i386.rpm (obviously built against mysql5 in centosplus)
so what about pgsql ? should we then have php5 and a php5-mysql4-pgsql8 and php5-mysql5-pgsql7 and a php5-mysql5-pgsql8 ?
and pgsql isnt all, there are other things that php links into :) so do we add a dimension to php's namespace for each of these ?
There are no accidental upgrades from adding the whole centosplus repo, it's immediately clear what's being installed, and using the Provides and Obsoletes correctly in the spec files should be able to remove any conflicts offered by having separate sets of packages with competing functionality.
think about it. no wait, actually create some spec files and play with them to see what you are proposing here.
This seems to be the route other distros have taken, with what seems to be success. Is there a reason CentOS didn't follow this? Is there some fundamental drawback I'm missing in this?
because its essentially brain dead ? personally, i'd think thats a good reason to not use this :) The only way something of this nature might even try to work is if there was 1 single repo that everyone used, and all packagers from around the world were using a single specification to write against and Provides/Requires were managed to handle such quirks.
- KB