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

automatically cross-grading lib32nss-mdns to libnss-mdns:i386?



nss-mdns/unstable is currently available in these flavours:

    libnss-mdns:any      (contains a native binary)
    lib32nss-mdns:amd64  (contains an i386 binary)

My goal is that when amd64 users with both packages do a dist-upgrade to
jessie, if they have the i386 foreign architecture, they receive
libnss-mdns:amd64 and libnss-mdns:i386, plus whatever transitional
packages are needed to make that transition work. I expect that "most"
lib32nss-mdns users installed it for Wine's benefit (having libnss-mdns
but not lib32nss-mdns used to break DNS for 32-bit things, which appears
to be a long-since-fixed glibc bug), so they'll have the i386 foreign
architecture already.

In nss-mdns/experimental, I tried this:

    Package: libnss-mdns
    Architecture: any
    Multi-Arch: same

    Package: lib32nss-mdns
    Architecture: i386
    Depends: libnss-mdns (= ${binary:Version})
    Description: ... transitional package ...

hoping that apt would automatically cross-grade lib32nss-mdns:amd64 to
lib32nss-mdns:i386, pulling in libnss-mdns:i386 as a dependency.
However, when I installed those packages in a local apt repository and
upgraded a VM that tracks that repository, it turns out that doesn't
actually work.

If cross-architecture dependencies are allowed in the archive (and don't
break dak or britney) these days, then it's easy:

    Package: libnss-mdns
    Architecture: any
    Multi-Arch: same

    Package: lib32nss-mdns
    Architecture: amd64
    Depends: libnss-mdns:i386 (= ${binary:Version})
    Description: ... transitional package ...

I thought I remembered an announcement that cross-arch dependencies were
OK for jessie, but I couldn't find it, so that might just be wishful
thinking?

The only other option I can think of is to imitate Wine:

    Package: libnss-mdns
    Architecture: any
    Multi-Arch: same

    Package: lib32nss-mdns
    Architecture: amd64
    Depends: libnss-mdns-i386 (= ${binary:Version})
    Description: ... transitional package ...

    Package: libnss-mdns-i386
    Architecture: i386
    Depends: libnss-mdns (= ${binary:Version})
    Description: ... transitional package ...

but that requires yet another content-free package, and a trip through
the NEW queue. So, before I upload that: is there a better way?

Thanks,
    S


Reply to: