On Mon, Aug 18, 2008 at 09:14:24PM +0300, Niko Tyni wrote:

> > > Even if this is deemed to be a policy violation by the gs-common package,
> > > I suspect it's not the only one, and finding them all is non-trivial.
> 
> In light of the above, I think it is a policy violation and I don't
> really think we have much choice here.
> 
> For the gs-common / defoma case, the way out would seem to be something like:
> 
>  - go through the packages depending on defoma in Etch, find broken
>    prerm scripts and make sure they have equivalents in Lenny that survive
>    'failed-upgrade'. It may be possible to do most of this by changing
>    /usr/bin/dh_installdefoma behaviour and binNMUing the packages,
>    not sure about that.

Hm, this doesn't seem too bad. The gs-common package is somewhat a special
case because it has a prerm in Etch but not in Lenny. Most prerm scripts
treat 'failed-upgrade' as a no-op so that installation continues normally.

>  - remove all defoma-app invocations from the 'prerm upgrade' code paths in 
>    lenny so we don't hit this again in the future

... or guard them with '|| true', I suppose.

>  - (optionally) fix /usr/sbin/defoma-app in lenny to fail gracefully
>    when its dependencies are unconfigured, particularly when File::Copy
>    can't be found, to avoid the 'failed-upgrade' path if defoma happens
>    to get upgraded first

> As for others, I suppose we'll have to fix them as they show up.
> It looks like libxml-libxml-perl.prerm is one.

As above, the Lenny libxml-libxml-perl.prerm survives 'failed-upgrade', so
this is a false positive.

> A systematical way
> of finding them could be to unpack new perl and perl-modules on Etch
> and then doing partial upgrades for all the Etch packages one by one
> somehow. That would take quite a while, I suppose.
 
Scripting this is pretty easy however, just running something like

etch# apt-get install $package
etch# perl -pi -e s/etch/lenny/ /etc/apt/sources.list
etch# apt-get update
etch# dget perl perl-base $package
etch# dpkg --unpack perl*.deb ${package}*.deb

should do. The 'apt-get update' can be optimized away with separate etch
and lenny chroots.
-- 
Niko Tyni   [EMAIL PROTECTED]



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to