Remove iodbc2 (causes upgrade failure from Oneiric to Precise)

Bug #901638 reported by Jean-Baptiste Lallement
72
This bug affects 7 people
Affects Status Importance Assigned to Milestone
Soprano
Unknown
Unknown
soprano (Debian)
Fix Released
Unknown
soprano (Ubuntu)
Fix Released
High
Steve Langasek
Precise
Fix Released
High
Steve Langasek
unixodbc (Ubuntu)
Fix Released
High
Unassigned
Precise
Fix Released
High
Unassigned

Bug Description

Oneiric i386 failed to upgrade to Precise with tdsodbc installed.

TEST CASE:
1. Install Oneiric Desktop
2. Install tdsodbc
3. do-release-upgrade -d

EXPECTED RESULT
The system upgrades

ACTUAL RESULT:
Could not calculate the upgrade

An unresolvable problem occurred while calculating the upgrade:
E:Error, pkgProblemResolver::Resolve generated breaks, this may be
caused by held packages.

ProblemType: Bug
DistroRelease: Ubuntu 11.10
Package: tdsodbc 0.82-7
ProcVersionSignature: Ubuntu 3.0.0-13.22-generic 3.0.6
Uname: Linux 3.0.0-13-generic x86_64
ApportVersion: 1.23-0ubuntu4
Architecture: amd64
Date: Thu Dec 8 11:24:48 2011
InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Release amd64 (20111012)
SourcePackage: freetds
UpgradeStatus: Upgraded to oneiric on 2011-12-08 (0 days ago)

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
tags: added: dist-upgrade oneiric2precise qa-daily-testing
Changed in freetds (Ubuntu Precise):
assignee: nobody → Canonical Foundations Team (canonical-foundations)
tags: added: rls-mgr-p-tracking
description: updated
Revision history for this message
Steve Langasek (vorlon) wrote :

I don't think this can be fixed in freetds (or if it can be, it's not obvious and needs an apter to tell me how).

The oneiric tdsodbc Recommends: libiodbc2 | unixodbc, so libiodbc2 gets pulled in automatically as the first solution. The precise tdsodbc Breaks: libiodbc2 because precise is moving to multiarch paths for ODBC drivers, and libiodbc2 doesn't implement this (and won't, the package is orphaned and will be removed from Debian unstable and precise just as soon as I get a solution for soprano to work with unixodbc).

So I think we need update-manager to take care of this for us.

affects: freetds (Ubuntu Precise) → update-manager (Ubuntu Precise)
Changed in update-manager (Ubuntu Precise):
assignee: Canonical Foundations Team (canonical-foundations) → Michael Vogt (mvo)
Steve Langasek (vorlon)
Changed in update-manager (Ubuntu Precise):
status: New → Triaged
importance: Undecided → High
Revision history for this message
Martin Pitt (pitti) wrote :

When I use dist-upgrade instead of do-release-upgrade, I get:

The following packages have unmet dependencies:
 odbcinst1debian2 : Breaks: tdsodbc (< 0.82-8) but 0.82-7 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

With debugging on, I see

Investigating (0) tdsodbc [ amd64 ] < 0.82-7 -> 0.91-1 > ( libs )
Broken tdsodbc:amd64 Breaks on libiodbc2 [ amd64 ] < 3.52.7-2 > ( libs )
  Considering libiodbc2:amd64 1 as a solution to tdsodbc:amd64 0
  Holding Back tdsodbc:amd64 rather than change libiodbc2:amd64
[...]
Investigating (1) odbcinst1debian2 [ amd64 ] < 2.2.14p2-2ubuntu1 -> 2.2.14p2-5 > ( libs )
Broken odbcinst1debian2:amd64 Breaks on tdsodbc [ amd64 ] < 0.82-7 -> 0.91-1 > ( libs ) (< 0.82-8)
  Considering tdsodbc:amd64 0 as a solution to odbcinst1debian2:amd64 3
  Upgrading tdsodbc:amd64 due to Breaks field in odbcinst1debian2:amd64
Investigating (1) tdsodbc [ amd64 ] < 0.82-7 -> 0.91-1 > ( libs )
Broken tdsodbc:amd64 Breaks on libiodbc2 [ amd64 ] < 3.52.7-2 > ( libs )
  Considering libiodbc2:amd64 1 as a solution to tdsodbc:amd64 0
  Holding Back tdsodbc:amd64 rather than change libiodbc2:amd64
Investigating (2) odbcinst1debian2 [ amd64 ] < 2.2.14p2-2ubuntu1 -> 2.2.14p2-5 > ( libs )
Broken odbcinst1debian2:amd64 Breaks on tdsodbc [ amd64 ] < 0.82-7 -> 0.91-1 > ( libs ) (< 0.82-8)
  Considering tdsodbc:amd64 0 as a solution to odbcinst1debian2:amd64 3
  Upgrading tdsodbc:amd64 due to Breaks field in odbcinst1debian2:amd64
Investigating (2) tdsodbc [ amd64 ] < 0.82-7 -> 0.91-1 > ( libs )
Broken tdsodbc:amd64 Breaks on libiodbc2 [ amd64 ] < 3.52.7-2 > ( libs )
  Considering libiodbc2:amd64 1 as a solution to tdsodbc:amd64 0
  Holding Back tdsodbc:amd64 rather than change libiodbc2:amd64

and so on, until Investigating(9) with the same output where it apparently stops trying.

Revision history for this message
Martin Pitt (pitti) wrote :

When I purge libiodbc2 first, then both dist-upgrade and do-release-upgrade work fine, so it seems we need to conflict to libiodbc2 more strongly to convince apt to remove it.

When I add "libiodbc2" to odbcinst1debian's Conflicts:, the upgrade works fine. Would that be semantically appropriate?

Revision history for this message
Martin Pitt (pitti) wrote :

slangasek | pitti: having odbcinst1debian Conflict: with libiodbc2 is not semantically accurate, but given that libiodbc2 is intended to be obsoleted, that's probably not sufficient reason not to do that

Based on this I'm moving this back to freetds. Having a solution which also works with dist-upgrade would be much preferable IMHO. Steve, want me to upload this, or do you want to do this in Debian?

affects: update-manager (Ubuntu Precise) → freetds (Ubuntu Precise)
Changed in freetds (Ubuntu Precise):
assignee: Michael Vogt (mvo) → nobody
Revision history for this message
Martin Pitt (pitti) wrote :

> When I add "libiodbc2" to odbcinst1debian's Conflicts:, the upgrade works fine.

Adding it to Breaks: is also sufficient, for the record.

Revision history for this message
Martin Pitt (pitti) wrote :

Will do the change in Ubuntu for now and have it confirmed by the upgrade tester again.

affects: freetds (Ubuntu Precise) → unixodbc (Ubuntu Precise)
Changed in unixodbc (Ubuntu Precise):
assignee: nobody → Martin Pitt (pitti)
status: Triaged → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unixodbc - 2.2.14p2-5ubuntu1

---------------
unixodbc (2.2.14p2-5ubuntu1) precise; urgency=low

  * debian/control: Have odbcinst1debian2 Breaks: libiodbc2, to hint apt that
    it is ok to remove the deprecated libiodbc2 and upgrade to the new
    freetds. (LP: #901638)
 -- Martin Pitt <email address hidden> Mon, 12 Dec 2011 08:14:06 +0100

Changed in unixodbc (Ubuntu Precise):
status: In Progress → Fix Released
Revision history for this message
Martin Pitt (pitti) wrote :

This breaks Kubuntu/Edubuntu, as soprano-daemon still depends on libiodbc2. We need to transition this first to odbcinst1debian2.

Changed in soprano (Ubuntu Precise):
status: New → Triaged
importance: Undecided → High
milestone: none → precise-alpha-2
Revision history for this message
Martin Pitt (pitti) wrote :

unixodbc (2.2.14p2-5ubuntu2) precise; urgency=low

  * debian/control: Revert previous addition of Breaks: libiodbc2, as we need
    to fix soprano-daemon to not depend on libiodbc2 any more first.

 -- Martin Pitt <email address hidden> Tue, 13 Dec 2011 08:05:58 +0100

Changed in unixodbc (Ubuntu Precise):
status: Fix Released → Triaged
milestone: none → precise-alpha-2
Martin Pitt (pitti)
summary: - tdsodbc failed to upgrade from Oneiric to Precise
+ Remove iodbc2 (causes upgrade failure from Oneiric to Precise)
Revision history for this message
Martin Pitt (pitti) wrote :

I linked the corresponding Debian/upstream bug, but right now the unfortunate status quo seems to be: iodbc2 is dead, and soprano did not work with unixodbc back then. I'm going to try and build the current version against unixodbc and check if that's possible at all.

Revision history for this message
Martin Pitt (pitti) wrote :

In lp:~pitti/ubuntu/precise/soprano/unixodbc I build soprano against unixodbc instead of libiodbc2. Test packages are in ppa:pitti/ppa . They build fine, but I don't know how to test soprano, so I need help from the Kubuntu developers for testing.

Revision history for this message
Martin Pitt (pitti) wrote :

With the PPA version, i. e. the soprano build against unixodbc I get

Soprano::ODBC::ConnectionPool::ConnectionPool(const QString&, const QStringList&, QObject*) "host=localhost:1112;uid=dba;pwd=dba;driver=/usr/lib/odbc/virtodbc_r.so"
"/usr/bin/nepomukservicestub(7368)" Soprano: "iODBC Error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified"
QObject::connect: Cannot connect QThread::finished() to (null)::cleanup()
QObject::connect: Cannot connect QThread::terminated() to (null)::cleanup()
QObject::connect: Cannot connect QThread::destroyed() to (null)::cleanup()
virtual Soprano::StorageModel* Soprano::Virtuoso::BackendPlugin::createModel(const BackendSettings&) const Failed to connect to "host=localhost:1112;uid=dba;pwd=dba;driver=/usr/lib/odbc/virtodbc_r.so"

So this needs some code changes here, I'm afraid.

Changed in soprano (Debian):
status: Unknown → New
Revision history for this message
Martin Pitt (pitti) wrote :

Unassigning myself from the unixodbc task for now. The patch is ready, but blocked on soprano, or another clever upgrade solution I didn't think of yet.

Changed in unixodbc (Ubuntu Precise):
assignee: Martin Pitt (pitti) → nobody
Martin Pitt (pitti)
Changed in soprano (Ubuntu Precise):
milestone: precise-alpha-2 → ubuntu-12.04-beta-1
Changed in unixodbc (Ubuntu Precise):
milestone: precise-alpha-2 → ubuntu-12.04-beta-1
Steve Langasek (vorlon)
Changed in soprano (Ubuntu Precise):
assignee: nobody → Steve Langasek (vorlon)
Martin Pitt (pitti)
Changed in unixodbc (Ubuntu):
milestone: ubuntu-12.04-beta-1 → ubuntu-12.04-beta-2
Changed in soprano (Ubuntu):
milestone: ubuntu-12.04-beta-1 → ubuntu-12.04-beta-2
Revision history for this message
Steve Langasek (vorlon) wrote :

Here's a prospective patch for this issue. I'm currently discussing it with the Debian maintainers and upstream; it holds up in my testing (running the upstream 'virtuosobackendtest' test suite), so I'm reasonably confident we have a winner here.

Changed in soprano (Ubuntu Precise):
status: Triaged → In Progress
tags: added: patch
Revision history for this message
Steve Langasek (vorlon) wrote :

I've uploaded a version of soprano to ppa:vorlon/ppa that should fix this to not need iodbc. I've run the upstream test suite, but I have no good way to confirm that the package still works after upgrade. Is anyone able to test this before upload?

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package soprano - 2.7.4+dfsg.1-0ubuntu3

---------------
soprano (2.7.4+dfsg.1-0ubuntu3) precise; urgency=low

  * Build without iODBC. Closes: #639300, LP: #901638.
 -- Steve Langasek <email address hidden> Tue, 06 Mar 2012 07:59:48 +0000

Changed in soprano (Ubuntu Precise):
status: In Progress → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unixodbc - 2.2.14p2-5ubuntu3

---------------
unixodbc (2.2.14p2-5ubuntu3) precise; urgency=low

  * Re-add the Breaks: libiodbc2 to odbcinst1debian2, now that soprano is
    no longer using iodbc. LP: #901638.
 -- Steve Langasek <email address hidden> Mon, 12 Mar 2012 14:13:49 -0700

Changed in unixodbc (Ubuntu Precise):
status: Triaged → Fix Released
Changed in soprano (Debian):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.