Man Linux: Main Page and Category List

Name

       update-multiarch.pl - Multiarch helper for dpkg-cross and related tools

Description

       Identifies the binary package names from the specified Packages file
       and compare the identified list against the lists in
       /etc/dpkg-cross/multiarch-cross.d then write out the list of additional
       package names to /var/lib/apt-cross/multiarch.list.

       The list is overwritten each time update-multiarch.pl is run.

       This config file helper is tied absolutely to a single target suite -
       use a chroot for a different target suite.

   Example of how dpkg-cross handles the list
       If libfoo1 depends on libbar0 and libbar0 has transitioned to Multi-
       Arch compliance (and is listed in either
       /etc/dpkg-cross/multiarch-cross.d/* or
       /var/lib/apt-cross/multiarch.list, then libfoo1-ARCH-cross will have a
       versioned depends on libbar0 to ensure that the multiarch version is
       installed.

        Depends: libc6-armel-cross (>= 2.4), libbar0 (>= 0.0.2-1), libbaz2-armel-cross
        Provides: libfoo1-armel-dcv1

       Once libfoo has transitioned and the list updated using this helper or
       some alternative method, a rebuilt libfoo-ARCH-cross will be empty, and
       contain a new control field: x-Multiarch: delete along with a mangled
       package description that tells users to delete all these packages as
       soon as practical. (emprunecross can be used here.)

        Depends: libc6-armel-cross (>= 2.4), libbar0 (>= 0.0.2-1), libbaz2-armel-cross
        Provides: libfoo1-armel-dcv1
        X-Multiarch: delete

Alternatives

       A simple list of packages can be found using "grep-aptavail":

        grep-aptavail -s Package -F Multi-Arch same
        grep-aptavail -s Package -F Multi-Arch foreign
        grep-aptavail -s Package -F Multi-Arch allowed

       However, note that grep-aptavail uses all sources in your apt
       configuration and the results will not necessarily match either the
       list for the target suite or for the target architecture.

Multi-arch field meanings for dpkg-cross:

        Multi-Arch: same

       This package is co-installable with itself, but it must not be used to
       satisfy the dependency of any package of a different architecture from
       itself.

       dpkg-cross needs to include this dependency as a native dependency, so
       that the package for the cross architecture can be installed.

        Multi-Arch: foreign

       The package is not co-installable with itself, but should be allowed to
       satisfy the dependencies of a package of a different arch from itself.

       dpkg-cross needs to include this dependency as a native dependency, so
       that the package is deemed to already meet the cross dependency.

        Multi-Arch: allowed

       This permits the reverse-dependencies of the package to annotate their
       Depends: field to indicate that a foreign architecture version of the
       package satisfies the dependencies, but does not change the resolution
       of any existing dependencies. This value exists to prevent any packages
       from incorrectly annotating dependencies as being architecture-neutral
       without coordination with the maintainer of the depended-on package.

       dpkg-cross needs to include this dependency as a native dependency, so
       that the package is deemed to already meet the cross dependency.

       See:

        https://wiki.ubuntu.com/MultiarchSpec