[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#639300: Bug#707301: release-notes: odbcinst1debian2 : Breaks: tdsodbc (< 0.82-8) but 0.82-7 is to be installed



On Sat, May 11, 2013 at 02:26:22PM +0200, Bill Allombert wrote:
> > On Wed, May  8, 2013 at 16:45:09 -0500, Lukasz Szybalski wrote:

> > > 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.

> > That shouldn't happen, 0.82-7 is the squeeze (oldstable) version.
> > What's the output of "apt-cache policy tdsodbc" at that point?

> This is probably caused by the circular dependency between odbcinst and
> odbcinst1debian2.  (Bug #545861)

No, it is not.  Circular dependencies are not the boogieman you make them
out to be.

Below is the output of an apt debug run from a squeeze minimal test case
using tdsodbc+akonadi-server.  Virtuoso alone does not trigger this issue;
however, virtuoso and akonadi are frequently found together because they are
both dependencies of KDE, so given the mention of virtuoso in the
submitter's output, I assume this is the case on this system.

For akonadi-server, the problem is that soprano-daemon (which is a
dependency of akonadi-server: akonadi-server -> libsoprano4 ->
soprano-daemon) still depends on libiodbc2 in wheezy...  even though
libiodbc2 is not multiarch-compatible and thus obsoleted by unixodbc.
That's bug #639300, which managed to go unfixed in wheezy despite a patch
being made available a year ago.  Apparently the maintainers rejected this
patch for spurious reasons (objecting to rpath which is clearly the lesser
evil; and objecting to commented-out code, which is clearly something the
maintainer could fix when applying the patch), but did not cc: me when doing
so.

I recommend applying the patch from bug #639300 in a stable update, instead
of leaving akonadi/virtuoso un-coinstallable with all ODBC drivers in
wheezy.  Attached is an updated patch for this issue.

SRMs: would you like me to NMU this fix to proposed-updates?

KDE maintainers: would you prefer to prepare a different fix yourselves for
this issue, or upload this patch yourself?


Reading package lists...
Building dependency tree...
Reading state information...
Starting
Starting 2
Investigating (0) libgcc1 [ amd64 ] < 1:4.4.5-8 -> 1:4.7.2-5 > ( libs )
Broken libgcc1:amd64 Breaks on gcc-4.3 [ amd64 ] < 4.3.5-4 > ( devel ) (< 4.3.6-1)
  Considering gcc-4.3:amd64 -1 as a solution to libgcc1:amd64 431
  Added gcc-4.3:amd64 to the remove list
  Fixing libgcc1:amd64 via remove of gcc-4.3:amd64
Investigating (0) libept1 [ amd64 ] < 1.0.4 > ( libs )
Broken libept1:amd64 Depends on libapt-pkg4.10 [ amd64 ] < none > ( none )
  Considering apt:amd64 10 as a solution to libept1:amd64 3
  Removing libept1:amd64 rather than change libapt-pkg4.10:amd64
Investigating (0) mysql-common [ amd64 ] < 5.1.49-3 -> 5.5.30+dfsg-1.1 > ( database )
Broken mysql-common:amd64 Breaks on mysql-server-core-5.1 [ amd64 ] < 5.1.49-3 > ( misc ) (< 5.5)
  Considering mysql-server-core-5.1:amd64 -1 as a solution to mysql-common:amd64 3
  Added mysql-server-core-5.1:amd64 to the remove list
  Fixing mysql-common:amd64 via remove of mysql-server-core-5.1:amd64
Investigating (0) tdsodbc [ amd64 ] < 0.82-7 -> 0.91-2 > ( libs )
Broken tdsodbc:amd64 Breaks on libiodbc2 [ amd64 ] < 3.52.6-4 -> 3.52.7-2 > ( libs )
  Considering libiodbc2:amd64 2 as a solution to tdsodbc:amd64 0
  Holding Back tdsodbc:amd64 rather than change libiodbc2:amd64
Investigating (0) libakonadiprotocolinternals1 [ amd64 ] < none -> 1.7.2-3 > ( libs )
Broken libakonadiprotocolinternals1:amd64 Breaks on libakonadiprivate1 [ amd64 ] < 1.3.1-3+squeeze1 > ( libs ) (< 1.4.90)
  Considering libakonadiprivate1:amd64 -2 as a solution to libakonadiprotocolinternals1:amd64 -1
  Added libakonadiprivate1:amd64 to the remove list
  Fixing libakonadiprotocolinternals1:amd64 via remove of libakonadiprivate1:amd64
Investigating (0) akonadi-backend-mysql [ amd64 ] < none -> 1.7.2-3 > ( misc )
Broken akonadi-backend-mysql:amd64 Depends on mysql-server-core-5.5 [ amd64 ] < none -> 5.5.30+dfsg-1.1 > ( database )
  Considering mysql-server-core-5.5:amd64 1 as a solution to akonadi-backend-mysql:amd64 -1
  Holding Back akonadi-backend-mysql:amd64 rather than change mysql-server-core-5.5:amd64
Broken akonadi-backend-mysql:amd64 Depends on mysql-server-core [ amd64 ] < none > ( none )
  Considering mysql-server-core-5.1:amd64 -1 as a solution to akonadi-backend-mysql:amd64 -1
  Holding Back akonadi-backend-mysql:amd64 rather than change mysql-server-core:amd64
  Or group keep for akonadi-backend-mysql:amd64
Investigating (1) odbcinst1debian2 [ amd64 ] < 2.2.14p2-1 -> 2.2.14p2-5 > ( libs )
Broken odbcinst1debian2:amd64 Breaks on tdsodbc [ amd64 ] < 0.82-7 -> 0.91-2 > ( 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) akonadi-server [ amd64 ] < 1.3.1-3+squeeze1 -> 1.7.2-3 > ( net )
Broken akonadi-server:amd64 Depends on akonadi-backend-mysql [ amd64 ] < none -> 1.7.2-3 > ( misc ) (= 1.7.2-3)
  Considering akonadi-backend-mysql:amd64 -1 as a solution to akonadi-server:amd64 1
  Try Installing akonadi-backend-mysql [ amd64 ] < none -> 1.7.2-3 > ( misc ) before changing akonadi-server:amd64
Investigating (1) tdsodbc [ amd64 ] < 0.82-7 -> 0.91-2 > ( libs )
Broken tdsodbc:amd64 Breaks on libiodbc2 [ amd64 ] < 3.52.6-4 -> 3.52.7-2 > ( libs )
  Considering libiodbc2:amd64 2 as a solution to tdsodbc:amd64 0
  Holding Back tdsodbc:amd64 rather than change libiodbc2:amd64
Investigating (2) odbcinst1debian2 [ amd64 ] < 2.2.14p2-1 -> 2.2.14p2-5 > ( libs )
Broken odbcinst1debian2:amd64 Breaks on tdsodbc [ amd64 ] < 0.82-7 -> 0.91-2 > ( 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-2 > ( libs )
Broken tdsodbc:amd64 Breaks on libiodbc2 [ amd64 ] < 3.52.6-4 -> 3.52.7-2 > ( libs )
  Considering libiodbc2:amd64 2 as a solution to tdsodbc:amd64 0
  Holding Back tdsodbc:amd64 rather than change libiodbc2:amd64

<snip here - repeats until recursion limit is reached>

Done
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.


-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
diff -Nru soprano-2.7.6+dfsg.1/debian/changelog soprano-2.7.6+dfsg.1/debian/changelog
--- soprano-2.7.6+dfsg.1/debian/changelog	2013-03-01 07:57:01.000000000 -0800
+++ soprano-2.7.6+dfsg.1/debian/changelog	2013-05-11 11:44:33.000000000 -0700
@@ -1,3 +1,11 @@
+soprano (2.7.6+dfsg.1-2wheezy1.1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Build without iODBC, to make KDE co-installable with multiarch-enabled
+    ODBC drivers.  Closes: #639300, LP: #901638.
+
+ -- Steve Langasek <vorlon@debian.org>  Sat, 11 May 2013 11:25:31 -0700
+
 soprano (2.7.6+dfsg.1-2wheezy1) testing-proposed-updates; urgency=low
 
   * Team upload.
diff -Nru soprano-2.7.6+dfsg.1/debian/control soprano-2.7.6+dfsg.1/debian/control
--- soprano-2.7.6+dfsg.1/debian/control	2013-02-07 05:40:14.000000000 -0800
+++ soprano-2.7.6+dfsg.1/debian/control	2013-05-11 11:25:18.000000000 -0700
@@ -6,7 +6,7 @@
 Build-Depends: debhelper (>= 7.4.15), cmake (>= 2.6.2), pkg-kde-tools (>= 0.12),
  dpkg-dev (>= 1.15.5), libclucene-dev (>= 0.9.21b), libqt4-dev (>= 4:4.5.3),
  libraptor1-dev (>= 1.4.16), librdf0-dev (>= 1.0.13),
- doxygen (>= 1.7.1), graphviz, libiodbc2-dev
+ doxygen (>= 1.7.1), graphviz, libvirtodbc0, unixodbc-dev
 Standards-Version: 3.9.3
 Homepage: http://soprano.sourceforge.net
 Vcs-Browser: http://git.debian.org/?p=pkg-kde/kde-req/soprano.git
@@ -15,7 +15,7 @@
 Package: soprano-daemon
 Section: utils
 Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
+Depends: libvirtodbc0, ${shlibs:Depends}, ${misc:Depends}
 Recommends: libsoprano4 (= ${binary:Version})
 Suggests: virtuoso-minimal
 Breaks: libsoprano4 (<< 2.3.0+dfsg.1-1), libsoprano-dev (<< 2.3.0+dfsg.1-1)
diff -Nru soprano-2.7.6+dfsg.1/debian/patches/no-odbc-dm soprano-2.7.6+dfsg.1/debian/patches/no-odbc-dm
--- soprano-2.7.6+dfsg.1/debian/patches/no-odbc-dm	1969-12-31 16:00:00.000000000 -0800
+++ soprano-2.7.6+dfsg.1/debian/patches/no-odbc-dm	2013-05-11 11:24:46.000000000 -0700
@@ -0,0 +1,41 @@
+Description: Build without iODBC
+ Add support for soprano to link directly against virtodbc_r.so instead of
+ using the libiodbc driver manager.  Given that virtuoso is hard-coded as
+ the driver, the use of a driver manager is an unnecessary indirection; and
+ the manner of the hard-coding makes it harder than it ought to be to
+ switch from iODBC to UnixODBC - so just eliminate the DM entirely.
+ .
+ This does mean we're using an rpath, but that's a lesser evil given that
+ the path to the library is otherwise hard-coded in the source anyway.
+Author: Steve Langasek <vorlon@debian.org>
+Bug-Debian: http://bugs.debian.org/639300
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/901638
+
+Index: soprano-2.7.5+dfsg.1/cmake/modules/FindIODBC.cmake
+===================================================================
+--- soprano-2.7.5+dfsg.1.orig/cmake/modules/FindIODBC.cmake
++++ soprano-2.7.5+dfsg.1/cmake/modules/FindIODBC.cmake
+@@ -57,10 +57,7 @@
+   ${iodbc_INCLUDE_DIRS}
+   )
+ 
+-find_library(IODBC_LIBRARIES NAMES iodbc
+-  HINTS
+-  ${iodbc_LIBRARY_DIRS}
+-  )
++set(IODBC_LIBRARIES "/usr/lib/odbc/virtodbc_r.so")
+ 
+ if (IODBC_LIBRARIES AND IODBC_INCLUDE_DIR)
+ #  set(IODBC_INCLUDE_DIR "${IODBC_INCLUDE_DIR}/iodbc")
+Index: soprano-2.7.5+dfsg.1/backends/virtuoso/CMakeLists.txt
+===================================================================
+--- soprano-2.7.5+dfsg.1.orig/backends/virtuoso/CMakeLists.txt
++++ soprano-2.7.5+dfsg.1/backends/virtuoso/CMakeLists.txt
+@@ -37,6 +37,7 @@
+ target_link_libraries(soprano_virtuosobackend odbc32)
+ else(WIN32)
+ target_link_libraries(soprano_virtuosobackend ${IODBC_LIBRARIES})
++SET_TARGET_PROPERTIES(soprano_virtuosobackend PROPERTIES INSTALL_RPATH "/usr/lib/odbc")    
+ endif(WIN32)
+ 
+ if(WIN32)
diff -Nru soprano-2.7.6+dfsg.1/debian/patches/series soprano-2.7.6+dfsg.1/debian/patches/series
--- soprano-2.7.6+dfsg.1/debian/patches/series	2013-03-01 07:55:13.000000000 -0800
+++ soprano-2.7.6+dfsg.1/debian/patches/series	2013-05-11 11:25:54.000000000 -0700
@@ -3,3 +3,4 @@
 doxyfile_generate_tagfile.diff
 redland_raptor2_support.h
 dont_use_virtuoso_default_port.diff
+no-odbc-dm

Attachment: signature.asc
Description: Digital signature


Reply to: