On Fri, 15 Jan 2010 12:17:40 +0000
Neil Williams <codehelp@debian.org> wrote:
Some multiarch packages do exist in sid:
$ cat /var/lib/apt-cross/multiarch.list
# this file is empty initially and updated using
# /usr/share/apt-cross/update-multiarch.pl
console-braille
hwloc
hwloc-nox
libhwloc0
liblouis-bin
liblouis0
liblouisxml-bin
liblouisxml1
loadlin
vite
liblouisxml1 is a reverse dependency of liblouis0 in the same list, so
testing with the dpkg-cross changes produces an empty -cross package:
$ dpkg -I liblouisxml1-armel-cross_2.1.0-1_all.deb
new debian package, version 2.0.
size 738 bytes: control archive= 443 bytes.
534 bytes, 13 lines control
0 bytes, 0 lines md5sums
Package: liblouisxml1-armel-cross
Version: 2.1.0-1
Section: devel
Priority: extra
Architecture: all
Maintainer: Debian Accessibility Team <debian-accessibility@lists.debian.org>
Source: liblouisxml
Depends: libc6-armel-cross (>= 2.4), liblouis0, libxml2-armel-cross (>= 2.7.4), liblouisxml-data-armel-cross
Provides: liblouisxml1-armel-dcv1
X-Multiarch: delete
Description: liblouisxml1 - multiarch dummy package
This package was generated by dpkg-cross as a dummy multiarch package.
.
Remove this package when there are no reverse dependencies left.
Please check the Depends: line and the rest of the output carefully.
If apt-cross was handling this, it would probably pass '-X
liblouisxml-data' as that is an Architecture: all package, resulting in:
Depends: libc6-armel-cross (>= 2.4), liblouis0, libxml2-armel-cross (>= 2.7.4)
> new -cross packages are built. The location of this file is, as yet,
> undecided. It *should* be in /etc/ but apt-cross would then need to
> run under sudo to update it, which is something we've avoided before.
The file cannot be a conffile, it needs to be generated - otherwise
migrations of dpkg-cross into testing could make the list go out of sync.
So, dpkg-cross will simply contain the directory in the package itself.
Admins can then choose to create files in that directory that list the
binary package names which are multiarch-compliant. For example,
copy /var/lib/apt-cross/multiarch.list
to /etc/dpkg-cross/multiarch-cross.d/ or create a new file for packages
that are not currently part of Debian.
If you use the new helper from apt-cross, the lists in all files from
the /etc/dpkg-cross/multiarch-cross.d/ directory will be collated and
only packages not already included will be put into
the /var/lib/apt-cross/multiarch.list file.
> 1. Absolute and total reliance on the accuracy of the config file(s)
> created, updated and maintained by a separate process, e.g.
> update-multiarch.pl from apt-cross (new helper). (If you need two
> configurations, use one or more chroots.)
> 2. If the binary package name being handled by dpkg-cross exists in
> that config file, create a multiarch-cross version - if not,
> behave precisely as now.
> 3. multiarch-cross versions have NO files in the package of any kind.
> 4. multiarch-cross versions have a mangled description indicating a
> dummy package
> 5. multiarch-cross versions depend on the multiarch native package,
> i.e. libfoo-ARCH-cross depends on libfoo at or greater than the
> version of libfoo that first includes multiarch support.
> 6. multiarch-cross versions include a new control field:
> X-Multiarch: delete
> 7. multiarch-cross versions have exactly the same package name as
> now, e.g. libfoo-armel-cross, to avoid disturbing reverse
> dependencies.
--
Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/
Attachment:
pgpoPHtwQuRZo.pgp
Description: PGP signature