[repo-coord] Obsoletes/Provides/Conflicts For Replacing Other Packages

Jeff Pitman symbiont at berlios.de
Mon Aug 2 10:27:59 CEST 2004


Hi:

Well, I'm making some good headway on PyVault.  A user requested for a 
build of python 1.5 on later versions of Redhat/Fedora, so I've got a 
core set of python packages: python15, python22, and python23 based on 
db4 v4.2 and tcl/tk v8.4.  I had to compat the tcl/tk, but so far, it 
looks like it's working.  The infrastructure will make python24 
immediately available for Redhat 7.3, 9, fc1, and fc2 at the sametime, 
as well.

Anyway, I've been having some slight issues interacting with the 
system-installed version of Python (aka. python or python2). I need 
some advice on what you think is the best approach, either:

1. Prevent installation of the system-installed version of Python, or
2. Allow switching between the two at the whim of the user.

First off, the reason why the system-installed version of Python is 
replaced is to allow for rebuilding against tcl/tk 8.4 and db4 v4.2.  
Additionally, I use the "alternatives" system to setup a set of 
master/slave links for each version of Python with the version that 
redhat-config-* depends on having a heavier weight.

Currently, I can "apt-get install python22" and then "apt-get install 
python" on Redhat 9.  This will switch between the two as they both 
contain the following lines:

Obsoletes: python2 < %{version}
Provides: python2 = %{version}

I would really like to be able to have:

Provides: python = %{version}

in each Python version, but the Conflicts/Obsoletes stuff prevents 
simultaneously installing all versions of Python at the same time.

I would also like to have a way specifying whether python22 replaces the 
system python in which Distro.  I am not sure how this is possible.

Also, I plan to use:

Provides: python-abi = %{pybasever}

in each, where pybasever is one of 1.5, 2.2, 2.3.  This will make it 
easier for library packages where I can just "Requires: python-abi = 
2.3" or something similar.

thanks for your feedback!

take care,
-- 
-jeff



More information about the repo-coord mailing list