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

[multiarch] easy fix for interarchitectural package conflict?



summary: jessie/sid:amd64 box must install an i386 package which depends on libgif4:i386, but

- libgif4:i386 conflicts with libgif4:amd64
- important apps depend on libgif4:amd64

details:

As detailed @ http://forums.linuxmint.com/viewtopic.php?f=190&t=164522 I am forced to run a 32-bit java plugin (F5 Network Access Plugin) on a 32-bit firefox on an otherwise 64-bit (and up-to-date) LMDE box:

me@it ~ $ uname -a
Linux it 3.11-2-amd64 #1 SMP Debian 3.11.8-1 (2013-11-13) x86_64 GNU/Linux
me@it ~ $ cat /etc/debian_version 
jessie/sid
me@it ~ $ inxi -r
Repos: Active apt sources in file: /etc/apt/sources.list.d/google-chrome.list
       deb http://dl.google.com/linux/chrome/deb/ stable main
       Active apt sources in file: /etc/apt/sources.list.d/official-package-repositories.list
       deb http://packages.linuxmint.com debian main upstream import
       deb http://debian.linuxmint.com/latest/ testing main contrib non-free
       deb http://debian.linuxmint.com/latest/security testing/updates main contrib non-free
       deb http://debian.linuxmint.com/latest/multimedia testing main non-free
       deb http://extra.linuxmint.com debian main

As detailed @ https://lists.debian.org/debian-user/2014/05/msg00243.html I am now able to run the 32-bit firefox-3.6.28 on the box. However, when I try to install the F5NAP on the running firefox-3.6.28, I currently get

LoadPlugin: failed to initialize shared library /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so [/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so: wrong ELF class: ELFCLASS64]

followed by similar errors, followed by install failure. To fix this, I try to install an i386 version of IcedTeaPlugin.so as follows (noting the Mint-iness of a tool used):

me@it ~ $ apt contains $(which apt)
mintsystem: /usr/local/bin/apt

me@it ~ $ apt contains IcedTeaPlugin.so
icedtea-7-plugin:amd64: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
icedtea-6-plugin:amd64: /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so

me@it ~ $ sudo aptitude -s install icedtea-7-plugin:i386
The following NEW packages will be installed:
  icedtea-7-plugin:i386 icedtea-netx:i386{a} libasyncns0:i386{a} libatk-wrapper-java-jni:i386{a} libattr1:i386{a} libcap2:i386{a} libflac8:i386{a} libgif4:i386{ab} libjson-c2:i386{a} 
  liblcms2-2:i386{a} libnspr4:i386{a} libnss3:i386{a} libogg0:i386{a} libpango1.0-0:i386{a} libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libpcsclite1:i386{a} libpulse0:i386{a} 
  libsndfile1:i386{a} libsqlite3-0:i386{a} libvorbis0a:i386{a} libvorbisenc2:i386{a} libwrap0:i386{a} libxft2:i386{a} libxtst6:i386{a} openjdk-7-jre:i386{a} openjdk-7-jre-headless:i386{a} 
The following packages are RECOMMENDED but will NOT be installed:
  icedtea-7-jre-jamvm:i386 libgconf2-4:i386 libgnome2-0:i386 libgnomevfs2-0:i386 
0 packages upgraded, 27 newly installed, 0 to remove and 0 not upgraded.
Need to get 41.5 MB of archives. After unpacking 66.2 MB will be used.
The following packages have unmet dependencies:
 libgif4 : Conflicts: libgif4:i386 but 4.1.6-10 is to be installed.
 libgif4:i386 : Conflicts: libgif4 but 4.1.6-10 is installed.

[1]me@it ~ $ sudo aptitude -s install icedtea-6-plugin:i386
The following NEW packages will be installed:
  icedtea-6-plugin:i386 icedtea-netx:i386{a} libasyncns0:i386{a} libatk-wrapper-java-jni:i386{a} libattr1:i386{a} libcap2:i386{a} libflac8:i386{a} libgif4:i386{ab} libjson-c2:i386{a} 
  libnspr4:i386{a} libnss3:i386 libnss3-1d:i386{a} libogg0:i386{a} libpcsclite1:i386{a} libpulse0:i386{a} libsndfile1:i386{a} libsqlite3-0:i386{a} libvorbis0a:i386{a} libvorbisenc2:i386{a} 
  libwrap0:i386{a} libxtst6:i386{a} openjdk-6-jre:i386{a} openjdk-6-jre-headless:i386{a} 
The following packages are RECOMMENDED but will NOT be installed:
  icedtea-6-jre-cacao:i386 icedtea-6-jre-jamvm:i386 
0 packages upgraded, 23 newly installed, 0 to remove and 0 not upgraded.
Need to get 21.5 MB of archives. After unpacking 92.1 MB will be used.
The following packages have unmet dependencies:
 libgif4 : Conflicts: libgif4:i386 but 4.1.6-10 is to be installed.
 libgif4:i386 : Conflicts: libgif4 but 4.1.6-10 is installed.

There seem to be 3 ways to solve my problem:

1. (easier) remove libgif4:amd64, and hope that's icedtea-*-plugin's only dependency conflict.
2. (problematic) wait for the maintainers to fix the conflict between libgif4:amd64 and libgif4:i386 .
3. (harder) fix the (seemingly nonsensical) conflict between libgif4:amd64 and libgif4:i386 .

Can I remove libgif4:amd64 ? Not unless I want to remove Emacs and LibreOffice (et al), which I don't:

me@it ~ $ sudo aptitude -s remove libgif4
The following packages will be REMOVED:  
  libgif4 
0 packages upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
Need to get 0 B of archives. After unpacking 91.1 kB will be freed.
The following packages have unmet dependencies:
 libgdiplus : Depends: libgif4 (>= 4.1.4) but it is not going to be installed.
 emacs24 : Depends: libgif4 (>= 4.1.4) but it is not going to be installed.
 ...

Option 2 seems unacceptable at this point: I can't telework without the VPN enabled by the F5NAP, and getting on the physical LAN would be *very* difficult at the moment. But perhaps there are currently elsewhere versions of libgif4:* without interarchitectural conflict? If so, how to access them?

Which seems to leave option 3: is there a way that *I* (a debian packaging newbie) can resolve the conflict between libgif4:amd64 and libgif4:i386 with minimal pain? I very much need to get back to Real Work(tm). Apologies if this is a FAQ, but I didn't see any information on this topic targeting a package end-user while either casually DDGing or a less casual read of https://wiki.debian.org/Multiarch (which seems more targeted to package maintainers). Feel free to pass pointers to Fine Manuals; I will cheerfully RTFM.

your assistance is appreciated, Tom Roche <Tom_Roche@pobox.com>


Reply to: