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

Re: Upgrade path for packages that dropped ia32-libs for wheezy



Scott Howard <showard314@gmail.com> writes:

> Hello,
>
> I have a non-free package that is distributable but comes precompiled
> for i386. Squeeze (and previous) released an amd64 package that
> depended on ia32-libs. For wheezy we've been able to use multiarched
> libraries to drop the dependency. Is there a mechanism that will make
> the upgrade to wheezy work for the package? Right now dpkg uninstalls
> the package (because it sees the data package, which is "all" but

Side note: Is the data package of any use other than for your binary?
Why have it arch:all if it is only usefull for the :i386 binary.

> can't find the corresponding binary package in amd64), users are
> confused, find a bug report on the BTS or the changelog on a debian
> site telling them to enable i386 in dpkg, then they install the :i386
> package and it works.
>
> This may just be a non-free issue people have to deal with, I just
> wanted to see if there was a better way or plan in place to handle
> this.
>
> Regards,
> Scott

I'm afraid there isn't a good solution. Users will need to enable
multiarch to upgrade those packages. And that needs apt/dpkg upgraded
first.

What I will do for ia32-libs is to use 2 packages something like this:

Package: ia32-libs
Depends: ia32-libs-i386
Architecture: amd64
Description: ia32-libs transitional package
 This package transitions the runtime libraries for the ia32/i386
 architecture, configured for use on an amd64 running a 64-bit kernel to
 use the new multiarch feature. It can be safely removed once nothing
 depends on it anymore.
 .
 To install/upgrade you need to enable multiarch first by running:
 + dpkg --add-architecture i386
 + apt-get update

Package: ia32-libs-i386
Architecture: i386
Depends: libfoo, libbar, libbaz
Description: ia32-libs transitional package
 This package transitions the runtime libraries for the ia32/i386
 architecture, configured for use on an amd64 running a 64-bit kernel to
 use the new multiarch feature. It can be safely removed once nothing
 depends on it anymore.
 .
 For use on amd64 systems with multiarch only.


By having 2 packages, one for amd64 and one for i386, I can have a
cross-architecture dependency. Using Depends: foo:i386 is not allowed in
wheezy and this is the next best thing.

I'm not sure wether such a dummy/transitional package would help in
your case. Prior to enabling multiarch the package will be uninstallable
so might be removed on upgrades the same as you have now. But that's the
best solution I've seen so far.

MfG
        Goswin


Reply to: