[CentOS-devel] RPMS and REPOS and REPO-Linkages

Sun Nov 19 02:13:31 UTC 2006
Karanbir Singh <mail-lists at karan.org>

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
-- 
Karanbir Singh : http://www.karan.org/ : 2522219 at icq