Solving xdeb dependency cycles

Work rounds

1 If

> xdeb -a armel -d ../dest --apt-source <source package>

gives a dependency cycle

Building working tree cache ...
Dependency cycle: [u'pango1.0', u'cairo', u'mesa', u'udev', u'gobject-introspection']

Try the command with local source.

> apt-get source <package>
> xdeb -a armel -d ../dest <source package>

2 If any of the source packages mentioned in the cycle are present in the working directory, try moving them away.

Boot strapping

For real cycles it may be possible to

  • make reduced packages to satisfy dependencies
  • build the bootstrapped packages
  • once all the packages in the cycle have been built, rebuild all the packages un bootstrapped.

Example

cyrus-sasl2, krb5 & openldap are inter dependent.

Bootstrap process

  • cyrus-sasl2 without ldap (and any other modules dependent on ldap)
  • krb5 without ldap
  • openldap without gssapi (from krb5)
  • krb5 with ldap
  • openldap with gssapi
  • cyrus-sasl2

Bootstrapped packages

CAUTION The bootstrapping & cross building changes may be tangled in these packages.

Tools used

updated after multiarch packages started arriving

  • xdeb from lp:xdeb xdeb (0.6.4)

patched to add the -M option to it's dpkg-cross call

  • dpkg-cross locally built & installed from debian source (2.6.3)

  • configurations i.e xdeb.cfg dpkg-cross/cross.conf.armel sources.list

CategoryCrossCompile/XdebCycles (last modified 2011-04-08 14:27:52)