[csw-maintainers] Obsoleting packages

Dagobert Michelsen dam at opencsw.org
Wed Mar 9 23:09:44 CET 2011


Hi Phil,

Am 09.03.2011 um 22:55 schrieb Philip Brown:
> On Wed, Mar 9, 2011 at 12:44 PM, Dagobert Michelsen <dam at opencsw.org> wrote:
>> Hi Phil,
>> 
>> Am 09.03.2011 um 21:31 schrieb Philip Brown:
>> 
>>>> The _devel package is empty of real content but provides a smooth
>>>> transition.
>>> 
>>> and do we have a writeup of all this somewheres?
>> 
>> A writeup to have an empty transitional package pulling in a new one?
>> We always handled renames this way in the past.
> 
> no.. no we havent "always" handled them this way.
> We have *occasionally* done that.
> Transitioning from old to new smoothly, is a tricky thing.
> 
> The "make a stub package to pull in new one", can be nice for "leaf"
> packages (dependency speaking), or when a package is depended on by
> waaay too many packages to update in a reasonable amount of time.
> (although it still has the problem of leaving old obsolete packages
> around.. yuck)
> 
> However, when a package is "internal" to a dependancy tree, and it has
> a limited amount of dependancies, the cleanest way is to NOT make a
> stub package, but to rely on our existing [conflicts == auto-replace]
> mechanism.
> 
> example of using auto-replace:
> 
> Start with
> softA, depends on libA
> softB, depends on libA
> 
> libA gets renamed to libShinyA. But presume that at the file level, it
> is 100% compatible with "libA". its just a rename.
> So, new libShinyA package created. Declared to conflict with libA
> softA and softB are repackaged to depend on libShinyA.
> 
> 
> User does an update; either a global one, or one specifically for
> either softA, or softB.
> softA gets upgraded.. which pulls in libShinyA. Which then
> auto-removes the older libA
> 
> libA has now successfully been transitioned to libShinyA, and there
> was no need for a stub package.

From the task to clean package names in release "dublin" we are targetting
I estimate about 500 renames. Handling this on an individual basis is IMHO
prone to errors while always using intermediate packages is a simple, clean
and easy way to achieve consistent updating. The "I" workaround was necessary
to avoid leaving outdated packages around. Now with the "i obsolete" marker
the packaging tool has a clean indication when a package can safely be
removed and the I-workaround is no longer needed. 

Following the "I"-approach consistently would probably require rebuilding
the whole set and pushing 500 packages at once which would be much harder
to do right and to verify.


Best regards

  -- Dago



More information about the maintainers mailing list