Ubuntu

do-release-upgrade fails to upgrade from Oneiric to Precise: Couldn't configure pre-depend libtinfo5 for libncurses5, probably a dependency cycle

Reported by Chris Halse Rogers on 2012-01-31
230
This bug affects 45 people
Affects Status Importance Assigned to Milestone
apt (Ubuntu)
High
Canonical Foundations Team
Oneiric
High
Canonical Foundations Team
Precise
High
Canonical Foundations Team

Bug Description

On this system, do-release-upgrade is unable to upgrade to Precise. Logs should be attached, if not, I've got them saved.

The system hasn't yet been upgraded successfully, so if you need any additional information not attached here, that can be gathered.

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: update-manager-core 1:0.152.25.5
ProcVersionSignature: Ubuntu 3.0.0-8.10-generic 3.0.1
Uname: Linux 3.0.0-8-generic x86_64
ApportVersion: 1.23-0ubuntu4
Architecture: amd64
Date: Tue Jan 31 14:05:27 2012
EcryptfsInUse: Yes
InstallationMedia: Ubuntu 10.10 "Maverick Meerkat" - Release amd64 (20101007)
ProcEnviron:
 PATH=(custom, user)
 LANG=en_AU.UTF-8
 SHELL=/usr/bin/zsh
SourcePackage: update-manager
UpgradeStatus: Upgraded to oneiric on 2012-01-31 (0 days ago)

Chris Halse Rogers (raof) wrote :
tags: added: distribution-upgrade
Colin Watson (cjwatson) on 2012-01-31
Changed in update-manager (Ubuntu):
assignee: nobody → Canonical Foundations Team (canonical-foundations)
status: New → Confirmed
importance: Undecided → High
Colin Watson (cjwatson) wrote :

Reproduces with 'apt-get dist-upgrade' from a clone of your state. Debug::pkgPackageManager=true says:

SmartConfigure libtinfo5
  DepAdd: libtinfo5
SmartConfigure libtinfo5
  DepAdd: libtinfo5
    DepAdd: libc6
      DepAdd FAILS on: libc6
    DepAdd FAILS on: libtinfo5
PreDepends order for libncurses5
Found ok package multiarch-support
PreDepends order for libncurses5
Trying to SmartConfigure libtinfo5
SmartConfigure libtinfo5
SmartConfigure libtinfo5
  DepAdd: libtinfo5
    DepAdd: libc6
      DepAdd FAILS on: libc6
    DepAdd FAILS on: libtinfo5
PreDepends order for libncurses5
Found ok package multiarch-support
PreDepends order for libncurses5
Trying to SmartConfigure libtinfo5
SmartConfigure libtinfo5
  DepAdd: libtinfo5
    DepAdd: libc6
      DepAdd FAILS on: libc6
    DepAdd FAILS on: libtinfo5
E: Couldn't configure pre-depend libtinfo5 for libncurses5, probably a dependency cycle.

It may be worth noting that this is amd64, and libc6:i386 is being newly installed here.

Colin Watson (cjwatson) wrote :
Download full text (12.3 KiB)

With a bit more information:

Beginning to order
Done ordering
PreDepends order for base-files:amd64
Found ok package mawk:amd64
SmartConfigure base-files:amd64
  DepAdd: base-files:amd64
PreDepends order for module-init-tools:amd64
Found ok package dpkg:amd64
PreDepends order for mountall:amd64
Found ok package dpkg:amd64
PreDepends order for libasound2:amd64
Found ok package multiarch-support:amd64
PreDepends order for libasound2:amd64
Found ok package dpkg:amd64
PreDepends order for libasound2:i386
Found ok package multiarch-support:amd64
PreDepends order for libasound2:i386
Found ok package dpkg:amd64
PreDepends order for libc6-dbg:amd64
Found ok package dpkg:amd64
SmartConfigure libc-bin:amd64
  DepAdd: libc-bin:amd64
SmartConfigure libc6:amd64
  DepAdd: libc6:amd64
SmartConfigure libc6:i386
  DepAdd: libc6:i386
    DepAdd FAILS on: libc6:i386
PreDepends order for libudev0:amd64
Found ok package multiarch-support:amd64
PreDepends order for libudev0:i386
Found ok package multiarch-support:amd64
PreDepends order for libattr1:amd64
Found ok package multiarch-support:amd64
PreDepends order for libattr1:i386
Found ok package multiarch-support:amd64
SmartConfigure libattr1:amd64
  DepAdd: libattr1:amd64
SmartConfigure libattr1:i386
  DepAdd: libattr1:i386
    DepAdd: libc6:i386
      DepAdd FAILS on: libc6:i386
    DepAdd FAILS on: libattr1:i386
PreDepends order for libacl1:amd64
Found ok package multiarch-support:amd64
PreDepends order for libacl1:i386
Found ok package multiarch-support:amd64
SmartConfigure libacl1:amd64
  DepAdd: libacl1:amd64
SmartConfigure libacl1:i386
  DepAdd: libacl1:i386
    DepAdd: libattr1:i386
      DepAdd: libc6:i386
        DepAdd FAILS on: libc6:i386
      DepAdd FAILS on: libattr1:i386
    DepAdd FAILS on: libacl1:i386
PreDepends order for debconf:amd64
Found ok package perl-base:amd64
SmartConfigure debconf:amd64
  DepAdd: debconf:amd64
PreDepends order for libpam0g:amd64
Found ok package multiarch-support:amd64
SmartConfigure libpam0g:amd64
  DepAdd: libpam0g:amd64
PreDepends order for libsepol1:amd64
Found ok package multiarch-support:amd64
PreDepends order for libselinux1:amd64
Found ok package multiarch-support:amd64
PreDepends order for libselinux1:i386
Found ok package multiarch-support:amd64
SmartConfigure libselinux1:amd64
  DepAdd: libselinux1:amd64
SmartConfigure libselinux1:i386
  DepAdd: libselinux1:i386
    DepAdd: libc6:i386
      DepAdd FAILS on: libc6:i386
    DepAdd FAILS on: libselinux1:i386
SmartConfigure libpam-modules-bin:amd64
  DepAdd: libpam-modules-bin:amd64
PreDepends order for libpam-modules:amd64
Trying to SmartConfigure libc6:amd64
SmartConfigure libc6:amd64
SmartConfigure libc6:i386
  DepAdd: libc6:i386
    DepAdd FAILS on: libc6:i386
PreDepends order for libpam-modules:amd64
Found ok package libdb5.1:amd64
PreDepends order for libpam-modules:amd64
Trying to SmartConfigure libpam0g:amd64
SmartConfigure libpam0g:amd64
PreDepends order for libpam-modules:amd64
Trying to SmartConfigure libselinux1:amd64
SmartConfigure libselinux1:amd64
SmartConfigure libselinux1:i386
  DepAdd: libselinux1:i386
    DepAdd: libc6:i386
      DepAdd FAILS on: libc6:i386
    DepAdd FAILS on: libselinux1:i3...

Colin Watson (cjwatson) wrote :

precise's apt does seem to manage better here. Perhaps we need a backport.

affects: update-manager (Ubuntu) → apt (Ubuntu)
Changed in apt (Ubuntu):
status: Confirmed → Triaged
Colin Watson (cjwatson) wrote :

Ah, this fix is sufficient:

apt (0.8.16~exp6) experimental; urgency=low

  [ Christopher Baines ]
  * enable APT in unpack/configure ordering to handle loops as well
    as tight dependencies between immediate packages better
    enabling also the possibility to mark all packages as immediate
    (at least Closes: #353290, #540227, #559733, #621836, #639290)

That was a serious project though; I wonder if it's SRUable ...

Colin Watson (cjwatson) wrote :

RAOF: Thanks for the reproduction case. You should be able to upgrade your system by first installing apt from precise, and then upgrading as before. Feel free to go ahead and do that, as we have all the necessary state in the attachments.

Barry Warsaw (barry) wrote :

Could this bug be related to the fact that dist-upgrade in an amd64 precise always holds back ia32-libs? This package has been held back since I upgraded to precise ages ago, and it breaks things like updating via landscape.

On Wed, Feb 01, 2012 at 04:30:18PM -0000, Barry Warsaw wrote:
> Could this bug be related to the fact that dist-upgrade in an amd64
> precise always holds back ia32-libs? This package has been held back
> since I upgraded to precise ages ago, and it breaks things like updating
> via landscape.

I think that's probably separate. This bug relates to calculating the
upgrade correctly but then failing to order unpack/configure operations,
which is later than whatever problem you're encountering.

Chris Halse Rogers (raof) wrote :

Huh. Does do-release-upgrade do anything strange with a local copy of apt or something? I've installed Precise's apt, and it's failing in the same way.

Chris Halse Rogers (raof) wrote :

Specifically:

apt:
  Installed: 0.8.16~exp5ubuntu14.2
  Candidate: 0.8.16~exp5ubuntu14.2
  Version table:
 *** 0.8.16~exp5ubuntu14.2 0
        100 /var/lib/dpkg/status
     0.8.16~exp5ubuntu13 0
        500 http://mirror.internode.on.net/pub/ubuntu/ubuntu/ oneiric/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu/ oneiric/main amd64 Packages

Chris Halse Rogers (raof) wrote :

Oh, hah! I see, that's just my mirror being a couple of days behind. Trying again with 0.8.16~exp12ubuntu3

Chris Halse Rogers (raof) wrote :

Hm, no. It still fails to upgrade with the same message with
apt:
  Installed: 0.8.16~exp12ubuntu3

do-release-upgrade uses python-apt, not apt. Sorry for being unclear;
try upgrading python-apt as well.

Nick Moffitt (nick-moffitt) wrote :

 Setting up python-apt-common (0.8.3ubuntu3) ...
 Setting up libapt-pkg4.12 (0.8.16~exp12ubuntu3) ...
 Setting up libapt-inst1.4 (0.8.16~exp12ubuntu3) ...
 Setting up python-apt (0.8.3ubuntu3) ...

...and after a successful upgrade, here I am in Precise.

Jim MacKenzie (jim-photojim) wrote :

Same problem on my end, but:

E:Couldn't configure pre-depend libtinfo5 for libncurses5, probably a dependency cycle.

I downloaded the Precise packages for apt and python-apt, but apt -i won't install either.

amd64.

David Svensson (davidsvensson) wrote :

Quick work-around.

david@bulldog:~$ sudo sed 's/oneiric/precise/g' -i /etc/apt/sources.list && sudo apt-get dist-upgrade

David Svensson (davidsvensson) wrote :

Sorry, obviously you need to apt-get update before the dist-upgrade!

Tommy Nevtelen (dal) wrote :

That's what I'd do on my debian systems but is it really that simple? Doesn't "do-release-upgrade" do some other magic? Other than disabling ppa:s?
The man-page is very scarce of information.

Steve Langasek (vorlon) wrote :

that's unlikely to work around this bug at all, when the bug lies in apt.

Just hit this bug. This really needs to be fixed before Precise is released.

tags: added: rls-mgr-p-tracking

@Tommy do-release-upgrade downloads an upgrade file which does some things that can't be done in the actual packages (install upgrade prerequisites, purging packages, fixing proprietary xorg drivers etc.) You can see the DistUpgrade.cfg script for Precise at http://archive.ubuntu.com/ubuntu/dists/precise/main/dist-upgrader-all/current/precise.tar.gz

If you want to complete the upgrade with do-release-upgrade rather than dist-upgrade, just make sure apt is upgraded first:

sed 's/oneiric/precise/g' -i /etc/apt/sources.list
apt-get update
apt-get install apt python-apt
sed 's/precise/oneiric/g' -i /etc/apt/sources.list
do-release-upgrade

Steve Langasek (vorlon) on 2012-03-26
Changed in apt (Ubuntu Oneiric):
status: New → Triaged
importance: Undecided → High
assignee: nobody → Canonical Foundations Team (canonical-foundations)
eric fortin (nitrof22) on 2012-04-03
Changed in apt (Ubuntu Oneiric):
status: Triaged → Fix Released
Changed in apt (Ubuntu):
status: Triaged → Fix Released
Steve Langasek (vorlon) on 2012-04-03
Changed in apt (Ubuntu):
status: Fix Released → Triaged
Changed in apt (Ubuntu Oneiric):
status: Fix Released → Triaged
Barry Warsaw (barry) wrote :

After chatting with mvo, he suggests that "backporting [the apt change] would be the best course of action, but its quite a bit of work".

Would it work to just mark libtinfo5 as 'keep' until after the dist-upgrade? See _test_and_warn_on_nvidia_and_no_sse() in DistUpgradeQuirks.py for an example. I haven't tested it, but it would be like 3 lines of code instead of backporting apt.

tags: added: oneiric2precise
summary: - do-release-upgrade fails to upgrade from Oneiric to Precise
+ do-release-upgrade fails to upgrade from Oneiric to Precise: Couldn't
+ configure pre-depend libtinfo5 for libncurses5, probably a dependency
+ cycle

I tried to reproduce this yesterday from VarLogDistupgradeAptclonesystemstatetargz.gz above, but couldn't. Steps:

Install oneiric amd64 server iso
apt-clone restore VarLogDistupgradeAptclonesystemstatetargz
do-release-upgrade -d

Bill Wheatley (bwheatley) wrote :

I'm running on oneiric and i get the bug. Guess i won't be upgrading today.

Bill Wheatley (bwheatley) wrote :

Of course after doing that i had to dpkg -r roundcube-mysql as well since the new libncurses cause issued issues for that. But now it seems like clear sailing. I suppose this is the best inplace upgrade yet. Only a few minor packages to fix instead of how the last few upgrades went.

Workaround, described by "Chris Bainbridge (chris-bainbridge) wrote on 2012-03-24: #23", worked well for me; thank you.

Steve Langasek (vorlon) wrote :

strictly speaking there is no change to be made in apt in precise to fix this, but I've opened a task so that we can track this for 12.04.1. One way or another we ought to fix this by SRU to oneiric, I think.

Changed in apt (Ubuntu Precise):
status: New → Triaged
importance: Undecided → High
milestone: none → ubuntu-12.04.1

I also used the workaround proposed by Bill Wheatley. Yet, could anyone explain what action does the command "dpkg -r roundcube-mysq" and why should it be done afterwards?

Changed in apt (Ubuntu Precise):
assignee: nobody → Canonical Foundations Team (canonical-foundations)
Adam Conrad (adconrad) wrote :

Seems like this class of "apt is a bit sketchy in older releases" bugs could be worked around by the same "release-upgrader-apt" backport workaround that we used for lucid->precise. Could we maybe just do the same backport to oneiric (and adjust update-manager to use it) and call it good?

Changed in apt (Ubuntu Precise):
milestone: ubuntu-12.04.1 → ubuntu-12.04.2
Colin Watson (cjwatson) on 2013-02-13
Changed in apt (Ubuntu Precise):
milestone: ubuntu-12.04.2 → ubuntu-12.04.3
Odin Hørthe Omdal (velmont) wrote :

The root issue for me was that dovecot-core couldnt get configured because the group "dovecot" didn't exist on the system. So everything failed. This was lucid -> precise.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Related questions