[issue1178] upgrade-system|grml-live: running deborphan in loops (was: Bug#672829: upgrade-system: please bump dependency on deborphan to 1.7.28.7 after it has reached unstable

Carsten Hey bts at bts.grml.org
Sat Jun 9 13:37:44 CEST 2012


New submission from Carsten Hey <carsten at debian.org>:

tl;dr: You use deborphan wrong.  The last paragraph of this mail
       describes the fix that depends an unreleased deborphan version.
       I'll send an update when it hits unstable.


* Martin-Éric Racine [2012-06-09 12:24 +0300]:
> 2012/5/14 Carsten Hey <carsten at debian.org>:
> > Since it does not require a multiarch-aware dpkg, I don't think it
> > should depend on a multiarch-aware dpkg.  It's upgrade-systems that
> > enters an endless loop if it is run with deborphan 1.7.28.6 or earlier
> > on multiarch enabled systems (which of course requires a recent dpkg).
>
> It only enters into a loop when the components below it are
> mismatched. In this case, it was deborphan that wasn't able to produce
> multiarch-aware output that APT could use. deborphan was broken, not
> upgrade-system. I'm closing this bug.

I disagree for multiple reasons, anyway, the partial upgrade problem in
Debian in only theoretical and this is not Ubuntu's bug tracker.

In general, running while [ -n "`deborphan`" ]; do apt-get remove
`deborphan`; done without checking for endless loops is wrong, as
described in the quoted paragraph below:

> > upgrade-systems relies on apt to remove the packages that are
> > displayed by deborphan.  This is nothing deborphan can guarantee,
> > for example apt won't remove itself without using --force-whatever.
> > It is mostly save to rely on this behaviour, though.  If you need
> > this you must ensure that the known exceptions won't occur, for
> > example, don't run deborphan with options that could show apt as
> > orphaned, or, as in this case, don't run an old deborphan on
> > mutliarch-enabled systems.

If you ran stable with oldstable still in your sources.list, e.g.,
whilst upgrading to stable, you got a similar problem that could lead
(depending on your loop's implementation) to a failure or an endless
loop:

| deborphan (1.7.28.2) unstable; urgency=low
|   * Exclude diff and mktemp from being displayed in orphaner.  Apt and dpkg
|     sometimes disagree about essentialness of packages, which leads to
|     failures for dpkg frontends that use apt to remove packages, e.g.,
|     deborphan.  Currently, the relevant packages are diff and mktemp.  The
|     package install-info has deliberately not been added to the list of to be
|     excluded packages.

A proper fix for both packages, upgrade-system and grml-live, is
depending on a yet not released deborphan with a --recursive option and
running apt-get remove `deborphan` instead of of your loop.  I'll drop
you a mail when such a deborphan release gets uploaded to unstable.


Regards
Carsten

----------
messages: 4378
nosy: 672829, carsten, taffit
status: unread
title: upgrade-system|grml-live: running deborphan in loops (was: Bug#672829: upgrade-system: please bump dependency on deborphan to 1.7.28.7 after it has reached unstable

_____________________________________
GRML issue tracker <bts at bts.grml.org>
<http://bts.grml.org/grml/issue1178>
_____________________________________


More information about the Bugs-changes mailing list