multiarch in 12.04: the home stretch for ia32-libs, help requested
Steve Langasek
steve.langasek at ubuntu.com
Sat Oct 22 19:13:40 UTC 2011
Hi folks,
With precise now open, I've wasted no time in doing away with the ia32-libs
package. ia32-libs is now an empty transitional package depending on
ia32-libs-multiarch, which in turn is an i386-only package depending on all
the libraries ia32-libs used to ship.
This makes ia32-libs uninstallable 17 ways to Tuesday, because only a
fraction of the libraries it previously contained have been converted for
multiarch so far.
That means there's a lot of work to be done to get us well and truly free of
ia32-libs for precise, so this is a call for volunteers to help with this
transition.
There are four kinds of fixes that will need to be applied to make ia32-libs
installable again.
1) Some packages provide only executables as an interface to
reverse-dependencies (no libraries, plugins, etc). If a library depends
on such a package, that package needs only to be marked
'Multi-Arch: foreign' to document that the native version of the package
satisfies the dependencies of libraries of the foreign architecture.
2) Some packages are library packages which need to be updated to install
their architecture-dependent contents to the multiarch paths, as
described on <http://wiki.debian.org/Multiarch/Implementation>.
3) Some packages are plugin packages. These also need to have their
contents moved to the multiarch path, but more coordination is needed
because we first need to make sure that whatever package *loads* the
plugins knows to look in the multiarch path.
4) Some packages contain a mix of the above and need to be carefully split
into separate binary packages so that one can be marked Multi-Arch:
foreign and the other can be marked Multi-Arch: same. Examples of this
include: winbind (split into 'winbind' and 'libpam-winbind', currently
sitting in the NEW queue), glib-networking (bug #879775), and
pulseaudio-utils (ia32-libs only needs /usr/lib/libpulsedsp.so).
The first two are pretty mechanical conversions and easily worked on in
parallel, so if anyone would like to pitch in, please do! And if someone
wants to work on the latter two classes of issues, I'm happy to provide
guidance (on IRC, etc).
And of course, please send patches upstream to Debian for any packages that
you change. In addition to the usual Ubuntu usertags in the Debian BTS,
there is a 'multiarch' usertag under the user
'multiarch-devel at lists.alioth.debian.org' that is being used to track
multiarch patches there.
The approximate todo list can be found below. Note that some of these
issues obscure deeper dependency chain issues (in particular in the case of
gstreamer0.10 plugins), so this is not the complete list; but once these
issues are cleared we can get a better view of what remains to be done.
$ for pkg in $(apt-cache show ia32-libs-multiarch \
|sed -n -e'/Depends: / { s/Depends://; s/, /\n/g; p }')
do
echo $pkg $pkg:i386
done | xargs sudo apt-get install -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
<snip>
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gstreamer0.10-fluendo-mp3 : Depends: libgstreamer0.10-0 (>= 0.10.14) but it is not going to be installed
Depends: liboil0.3 (>= 0.3.10) but it is not going to be installed
Conflicts: gstreamer0.10-fluendo-mp3:i386 but 0.10.15.debian-1 is to be installed
gstreamer0.10-fluendo-mp3:i386 : Conflicts: gstreamer0.10-fluendo-mp3 but 0.10.15.debian-1 is to be installed
gstreamer0.10-plugins-base : Depends: libgstreamer0.10-0 (>= 0.10.34) but it is not going to be installed
Depends: liborc-0.4-0 (>= 1:0.4.14) but it is not going to be installed
Depends: libtheora0 (>= 1.0) but it is not going to be installed
Depends: libgstreamer-plugins-base0.10-0 (>= 0.10.35) but it is not going to be installed
Conflicts: gstreamer0.10-plugins-base:i386 but 0.10.35-1 is to be installed
gstreamer0.10-plugins-base:i386 : Depends: libcdparanoia0:i386 (>= 3.10.2+debian) but it is not going to be installed
Depends: libvisual-0.4-0:i386 (>= 0.4.0) but it is not going to be installed
Conflicts: gstreamer0.10-plugins-base but 0.10.35-1 is to be installed
gstreamer0.10-plugins-good : Depends: libaa1 (>= 1.4p5) but it is not going to be installed
Depends: libavc1394-0 (>= 0.5.3) but it is not going to be installed
Depends: libcaca0 (>= 0.99.beta17-1) but it is not going to be installed
Depends: libdv4 but it is not going to be installed
Depends: libgstreamer-plugins-base0.10-0 (>= 0.10.33) but it is not going to be installed
Depends: libgstreamer0.10-0 (>= 0.10.33) but it is not going to be installed
Depends: libiec61883-0 (>= 1.2.0) but it is not going to be installed
Depends: liborc-0.4-0 (>= 1:0.4.14) but it is not going to be installed
Depends: libraw1394-11 but it is not going to be installed
Depends: libshout3 but it is not going to be installed
Depends: libsoup-gnome2.4-1 (>= 2.27.4) but it is not going to be installed
Depends: libsoup2.4-1 (>= 2.26.1) but it is not going to be installed
Depends: libtag1c2a (>= 1.5) but it is not going to be installed
Depends: libwavpack1 (>= 4.40.0) but it is not going to be installed
Conflicts: gstreamer0.10-plugins-good:i386 but 0.10.30-1ubuntu7 is to be installed
gstreamer0.10-plugins-good:i386 : Depends: libsoup-gnome2.4-1:i386 (>= 2.27.4) but it is not going to be installed
Depends: libsoup2.4-1:i386 (>= 2.26.1) but it is not going to be installed
Conflicts: gstreamer0.10-plugins-good but 0.10.30-1ubuntu7 is to be installed
gtk2-engines : Conflicts: gtk2-engines:i386 but 1:2.20.2-0ubuntu1 is to be installed
gtk2-engines:i386 : Conflicts: gtk2-engines but 1:2.20.2-0ubuntu1 is to be installed
gtk2-engines-murrine : Conflicts: gtk2-engines-murrine:i386 but 0.98.1.1-0ubuntu3 is to be installed
gtk2-engines-murrine:i386 : Conflicts: gtk2-engines-murrine but 0.98.1.1-0ubuntu3 is to be installed
gvfs : Depends: x11-utils but it is not going to be installed
Conflicts: gvfs:i386 but 1.10.0-0ubuntu1 is to be installed
gvfs:i386 : Depends: dconf-gsettings-backend:i386 but it is not going to be installed or
gsettings-backend:i386
Conflicts: gvfs but 1.10.0-0ubuntu1 is to be installed
ibus-gtk : Depends: libibus-1.0-0 but it is not going to be installed
libao4 : Depends: libao-common but it is not going to be installed
Conflicts: libao4:i386 but 1.1.0-1ubuntu1 is to be installed
libao4:i386 : Conflicts: libao4 but 1.1.0-1ubuntu1 is to be installed
libcanberra-gtk-module : Depends: libcanberra-gtk0 (>= 0.2) but it is not going to be installed
Conflicts: libcanberra-gtk-module:i386 but 0.28-0ubuntu10 is to be installed
libcanberra-gtk-module:i386 : Conflicts: libcanberra-gtk-module but 0.28-0ubuntu10 is to be installed
libcap2 : Conflicts: libcap2:i386 but 1:2.22-1ubuntu2 is to be installed
libcap2:i386 : Conflicts: libcap2 but 1:2.22-1ubuntu2 is to be installed
libcapi20-3 : Conflicts: libcapi20-3:i386 but 1:3.12.20071127-0ubuntu9 is to be installed
libcapi20-3:i386 : Conflicts: libcapi20-3 but 1:3.12.20071127-0ubuntu9 is to be installed
libesd0 : Depends: libaudiofile0 (>= 0.2.3-4) but it is not going to be installed
libgail-common : Conflicts: libgail-common:i386
libgail-common:i386 : Conflicts: libgail-common
libgettextpo0:i386 : Depends: libcroco3:i386 (>= 0.6.2) but it is not going to be installed
libgphoto2-2 : Depends: libltdl7 (>= 2.4) but it is not going to be installed
Conflicts: libgphoto2-2:i386 but 2.4.11-3.1 is to be installed
libgphoto2-2:i386 : Depends: libexif12:i386 but it is not going to be installed
Depends: libgd2-noxpm:i386 (>= 2.0.36~rc1~dfsg) but it is not going to be installed or
libgd2-xpm:i386 (>= 2.0.36~rc1~dfsg) but it is not going to be installed
Conflicts: libgphoto2-2 but 2.4.11-3.1 is to be installed
libgphoto2-port0 : Depends: libltdl7 (>= 2.4) but it is not going to be installed
Conflicts: libgphoto2-port0:i386 but 2.4.11-3.1 is to be installed
libgphoto2-port0:i386 : Conflicts: libgphoto2-port0 but 2.4.11-3.1 is to be installed
libmpg123-0 : Conflicts: libmpg123-0:i386 but 1.12.1-3.1fakesync1 is to be installed
libmpg123-0:i386 : Conflicts: libmpg123-0 but 1.12.1-3.1fakesync1 is to be installed
libnss-ldap : Conflicts: libnss-ldap:i386
libnss-ldap:i386 : Depends: ldap-auth-config:i386 but it is not installable
Conflicts: libnss-ldap
libodbc1 : Depends: libltdl7 (>= 2.4) but it is not going to be installed
libpam-ldap : Conflicts: libpam-ldap:i386
libpam-ldap:i386 : Depends: ldap-auth-config:i386 (>= 0.5.2) but it is not installable
Conflicts: libpam-ldap
libqtwebkit4 : Depends: libgstreamer-plugins-base0.10-0 (>= 0.10.31) but it is not going to be installed
Depends: libgstreamer0.10-0 (>= 0.10.31) but it is not going to be installed
Conflicts: libqtwebkit4:i386 but 2.2~2011week36-0ubuntu1 is to be installed
libqtwebkit4:i386 : Conflicts: libqtwebkit4 but 2.2~2011week36-0ubuntu1 is to be installed
librsvg2-common:i386 : Depends: librsvg2-2:i386 (= 2.34.1-2) but it is not going to be installed
libsane : Conflicts: libsane:i386 but 1.0.22-2ubuntu2 is to be installed
libsane:i386 : Conflicts: libsane but 1.0.22-2ubuntu2 is to be installed
libsdl-image1.2 : Depends: libsdl1.2debian (> 1.2.4) but it is not going to be installed
Conflicts: libsdl-image1.2:i386 but 1.2.10-2.1build1 is to be installed
libsdl-image1.2:i386 : Conflicts: libsdl-image1.2 but 1.2.10-2.1build1 is to be installed
libsdl-mixer1.2 : Depends: libmikmod2 (>= 3.1.10) but it is not going to be installed
Depends: libsdl1.2debian (>= 1.2.10-1) but it is not going to be installed
Depends: libsmpeg0 but it is not going to be installed
Conflicts: libsdl-mixer1.2:i386 but 1.2.8-6.4 is to be installed
libsdl-mixer1.2:i386 : Conflicts: libsdl-mixer1.2 but 1.2.8-6.4 is to be installed
libsdl-net1.2 : Depends: libsdl1.2debian (>= 1.2.10-1) but it is not going to be installed
Conflicts: libsdl-net1.2:i386 but 1.2.7-2 is to be installed
libsdl-net1.2:i386 : Conflicts: libsdl-net1.2 but 1.2.7-2 is to be installed
libsdl-ttf2.0-0 : Depends: libsdl1.2debian (>= 1.2.10-1) but it is not going to be installed
Conflicts: libsdl-ttf2.0-0:i386 but 2.0.9-1.1 is to be installed
libsdl-ttf2.0-0:i386 : Conflicts: libsdl-ttf2.0-0 but 2.0.9-1.1 is to be installed
libsdl1.2debian-pulseaudio : Conflicts: libsdl1.2debian-pulseaudio:i386 but 1.2.14-6.1ubuntu4 is to be installed
libsdl1.2debian-pulseaudio:i386 : Conflicts: libsdl1.2debian-pulseaudio but 1.2.14-6.1ubuntu4 is to be installed
libssl0.9.8 : Conflicts: libssl0.9.8:i386 but 0.9.8o-7ubuntu1 is to be installed
libssl0.9.8:i386 : Conflicts: libssl0.9.8 but 0.9.8o-7ubuntu1 is to be installed
libxaw7:i386 : Depends: libxpm4:i386 but it is not going to be installed
libxp6 : Conflicts: libxp6:i386 but 1:1.0.1-1 is to be installed
libxp6:i386 : Conflicts: libxp6 but 1:1.0.1-1 is to be installed
libxslt1.1 : Conflicts: libxslt1.1:i386 but 1.1.26-8 is to be installed
libxslt1.1:i386 : Conflicts: libxslt1.1 but 1.1.26-8 is to be installed
odbcinst1debian2 : Depends: libltdl7 (>= 2.4) but it is not going to be installed
pulseaudio-utils : Depends: libxtst6 but it is not going to be installed
Conflicts: pulseaudio-utils:i386 but 1:1.0-0ubuntu4 is to be installed
pulseaudio-utils:i386 : Conflicts: pulseaudio-utils but 1:1.0-0ubuntu4 is to be installed
winbind : Conflicts: winbind:i386 but 2:3.5.11~dfsg-2ubuntu2 is to be installed
winbind:i386 : Depends: libpopt0:i386 (>= 1.16) but it is not going to be installed
Depends: samba-common:i386 (= 2:3.5.11~dfsg-2ubuntu2) but it is not installable
Depends: lsb-base:i386 (>= 3.0-6) but it is not installable
Conflicts: winbind but 2:3.5.11~dfsg-2ubuntu2 is to be installed
E: Unable to correct problems, you have held broken packages.
$
Thanks,
--
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 at ubuntu.com vorlon at debian.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 828 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/ubuntu-devel/attachments/20111022/39b5fac8/attachment.pgp>
More information about the ubuntu-devel
mailing list