[Multiarch-devel] Proper upgrade path for lib32v4l-{0,dev}?

Wookey wookey at wookware.org
Mon Jul 2 12:38:49 UTC 2012


+++ Sven Joachim [2012-07-01 22:01 +0200]:
> [ CC'ing ia32-libs maintainers for their opinion. ]
> 
> On 2012-07-01 16:04 +0200, Gregor Jasny wrote:
> 
> > Hello,
> >
> > currently my source package v4l-utils builds lib32v4l-0 and
> > lib32v4l-dev packages on amd64. I'd like to get rid of them sooner
> > than later and provide a proper upgrade path to multiarch
> > packages. What's the best way to achieve this?
> 
> Getting rid of reverse dependencies so these packages can be removed as
> unused, I think.

Correct.

> > As far as I can see this always involves manual action due to the
> > required addition of the foreign i386 architecture.
> 
> Correct, but the same is true for ia32-libs which is usually the reason
> why people install lib32v4l-0.

Indeed. This has been discussed elsewhere. We will do our best to make
this clear (or even automagic) to people, but it's not the job of each
individual package to try to manage this external dpkg config aspect. 

> > So should I simply drop the lib32 packages? The only dependent users
> > of these packages are Skype and Google talk plugin users. They usually
> > preload the libs via LD_PRELOAD. Due to the changed library paths when
> > migrating from lib32 packages to multiarch they need to perform manual
> > actions anyway.
> >
> > Or should I change the packages from:
> >
> > Package: lib32v4l-0
> > Section: libs
> > Architecture: amd64
> > Depends: libv4l-0 (= ${binary:Version}),
> >          ${shlibs:Depends},
> >          ${misc:Depends}
> >
> > to virtual transition packages:
> >
> > Package: lib32v4l-0
> > Section: libs
> > Architecture: i386
> > Pre-Depends: multiarch-support
> > Depends: libv4l-0 (= ${binary:Version}),
> >          ${misc:Depends}
> 
> The Pre-Depends: multiarch-support is not necessary, but you would need
> to mark lib32v4l-0 as "Multi-Arch: foreign".

I see what you are trying to do, but 'ewww'; that's an abuse of 'M-A:
foreign'. It says that lib32v4l-0:i386 satisfies lib32v4l-0 on any
arch (not just amd64). In general libraries should never be 'M-A:
foreign'. I'm not sure if there is ever a case when it's a good idea.

> However, since lib32v4l-0 is usually installed because ia32-libs depends
> on it, and the skype-debian_4.0.0.7-1_amd64.deb package I downloaded
> from Skype's website depends on ia32-libs but not lib32v4l-0: maybe a
> better upgrade path would be given by letting ia32-libs-i386 depend on
> libv4l-0?

That sounds correct to me. (and get rid of lib32v4l-0, making libv4l-0
(and -dev if possible) 'M-A:same'

> The ia32-libs-i386 package depends on all libraries formerly included in
> ia32-libs (well, as far as they are still available), but not on the
> i386 counterparts of the various lib32* packages ia32-libs depended
> upon.  This seems like a bug to me.

I don't see an ia32-libs-i386 in wheezy. What's it supposed to be for?

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/



More information about the Multiarch-devel mailing list