hello,
i am trying to cross compile our packages using xdeb. I am following the steps from the wiki (e.g. I am using a maverick chroot where I install xdeb and cross compiler).
I can cross compile the 'grep' example fine. However when I try to cross compile our packages, it seems that xdeb is not able to handle the dependencies well.
I am building new packages, e.g. that do not exist in maverick archive, instead they are stored on a private archive within the company. I have the following packages titiler-memmgr, tisyslink-lib and tisyslink-d2cmap. I cannot share all sources for now, but here is the package information for these 3 (extracted from the archive Sources file)
Format: 1.0 Package: titiler-memmgr Binary: titiler-memmgr, titiler-memmgr-dev, titiler-memmgr-tests Architecture: armel Version: 0.24.8-0ubuntu1 Standards-Version: 3.9.0 Build-Depends: cdbs, debhelper (>= 7), quilt, libtool
Format: 1.0 Package: tisyslink-lib Binary: tisyslink-lib, tisyslink-lib-dev, tisyslink-lib-tests Architecture: armel Version: 0.24.8.1-0ubuntu2 Standards-Version: 3.9.0 Build-Depends: cdbs, debhelper (>= 7), libtool, titiler-memmgr-dev (>= 0.24.8)
Format: 1.0 Package: tisyslink-d2cmap Binary: tisyslink-d2cmap, tisyslink-d2cmap-dev, tisyslink-d2cmap-tests Architecture: armel Version: 0.24.8.1-0ubuntu1 Standards-Version: 3.9.0 Build-Depends: cdbs, debhelper (>= 7), libtool, titiler-memmgr-dev (>= 0.24.7), tisyslink-lib-dev (>= 0.24.7)
So, now I am using xdeb with --sequence, here is the output:
$ xdeb -a armel --apt-source --sequence titiler-memmgr Build sequence: titiler-memmgr
$ xdeb -a armel --apt-source --sequence tisyslink-lib Build sequence: tisyslink-lib*
$ xdeb -a armel --apt-source --sequence tisyslink-d2cmap Build sequence: tisyslink-lib* tisyslink-d2cmap*
What is quite disturbing is that xdeb is able to figure out that tisyslink-d2cmap depends on tisyslink-lib, but it does not get that tisyslink-lib depends on titiler-memmgr. As such the build fails.
Can something be wrong with my packages? How does xdeb figure out dependencies? I would expect that it would use the Build-Depends from the control file, but I am not sure.
Let me know if you need additional data to debug further.
cheers, nicolas
On Wed, Aug 04, 2010, Dechesne, Nicolas wrote:
Package: titiler-memmgr Binary: titiler-memmgr, titiler-memmgr-dev, titiler-memmgr-tests Build-Depends: cdbs, debhelper (>= 7), quilt, libtool
Package: tisyslink-lib Binary: tisyslink-lib, tisyslink-lib-dev, tisyslink-lib-tests Build-Depends: cdbs, debhelper (>= 7), libtool, titiler-memmgr-dev (>= 0.24.8)
Package: tisyslink-d2cmap Binary: tisyslink-d2cmap, tisyslink-d2cmap-dev, tisyslink-d2cmap-tests Build-Depends: cdbs, debhelper (>= 7), libtool, titiler-memmgr-dev (>= 0.24.7), tisyslink-lib-dev (>= 0.24.7)
$ xdeb -a armel --apt-source --sequence titiler-memmgr Build sequence: titiler-memmgr
xdeb decides that all build-depends don't need to be cross-built, so it will just cross-build titiler-memmgr.
$ xdeb -a armel --apt-source --sequence tisyslink-lib Build sequence: tisyslink-lib*
xdeb decides that all build-depends don't need to be cross-built, so it will just cross-build tisyslink-lib. This is because the name "titiler-memmgr-dev" in build-deps isn't recognized as something which needs to be cross-built. See is_crossable() for the current heuristics.
As a workaround, you can list the package in the whitelist in /etc/xdeb/xdeb.cfg or in ~/.xdeb/xdeb.cfg.
I can't comment on whether the package should be cross-built or not without knowing what's in the package, nor on whether the name "titiler-memmgr-dev".
$ xdeb -a armel --apt-source --sequence tisyslink-d2cmap Build sequence: tisyslink-lib* tisyslink-d2cmap*
Same as above for the titiler-memmgr-dev build-dep, but the tisyslink-lib-dev build-dep is believed to be crossable ("if 'lib' in pkg").
Cheers,
On Thu, Aug 05, 2010, Loïc Minier wrote:
xdeb decides that all build-depends don't need to be cross-built, so it will just cross-build titiler-memmgr.
I realize this might not be very clear; I meant that none of the build-deps of titiler-memmgr need to be cross-built to cross-build titiler-memmgr, they will be installed for the buildd architecture.
$ xdeb -a armel --apt-source --sequence tisyslink-lib Build sequence: tisyslink-lib*
xdeb decides that all build-depends don't need to be cross-built, so it will just cross-build tisyslink-lib. This is because the name "titiler-memmgr-dev" in build-deps isn't recognized as something which needs to be cross-built. See is_crossable() for the current heuristics.
As a workaround, you can list the package in the whitelist in /etc/xdeb/xdeb.cfg or in ~/.xdeb/xdeb.cfg.
And here I forgot to clarify that it is the titiler-memmgr-dev package which you might or might not want to whitelist.