Ubuntu

Comment 2 for bug 731079

Steve Langasek (vorlon) wrote :

Example:
$ ./xdeb/xdeb.py -a armel -d xdeb-scratch -b xdeb-scratch --only-explicit --prefer-apt qemu-linaro
[...]
dpkg-cross -a armel -b -X heimdal-dev -X krb5-multidev -X ssh-krb5 libkrb5-dev_1.8.3+dfsg-4ubuntu1_armel.deb libkrb5-3_1.8.3+dfsg-4ubuntu1_armel.deb libgssapi-krb5-2_1.8.3+dfsg-4ubuntu1_armel.deb libgssrpc4_1.8.3+dfsg-4ubuntu1_armel.deb libkadm5srv-mit7_1.8.3+dfsg-4ubuntu1_armel.deb libkadm5clnt-mit7_1.8.3+dfsg-4ubuntu1_armel.deb libk5crypto3_1.8.3+dfsg-4ubuntu1_armel.deb libkdb5-4_1.8.3+dfsg-4ubuntu1_armel.deb libkrb5support0_1.8.3+dfsg-4ubuntu1_armel.deb
Building libk5crypto3-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb
dpkg-deb: building package `libk5crypto3-armel-cross' in `./libk5crypto3-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb'.
dpkg-cross: package libkrb5-dev doesn't provide any useful files. Skipping.
Building libkadm5srv-mit7-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb
dpkg-deb: building package `libkadm5srv-mit7-armel-cross' in `./libkadm5srv-mit7-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb'.
Building libkrb5-3-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb
dpkg-deb: building package `libkrb5-3-armel-cross' in `./libkrb5-3-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb'.
Building libgssrpc4-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb
dpkg-deb: building package `libgssrpc4-armel-cross' in `./libgssrpc4-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb'.
Building libkadm5clnt-mit7-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb
dpkg-deb: building package `libkadm5clnt-mit7-armel-cross' in `./libkadm5clnt-mit7-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb'.
Building libkdb5-4-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb
dpkg-deb: building package `libkdb5-4-armel-cross' in `./libkdb5-4-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb'.
Building libkrb5support0-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb
dpkg-deb: building package `libkrb5support0-armel-cross' in `./libkrb5support0-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb'.
Building libgssapi-krb5-2-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb
dpkg-deb: building package `libgssapi-krb5-2-armel-cross' in `./libgssapi-krb5-2-armel-cross_1.8.3+dfsg-4ubuntu1_all.deb'.
Traceback (most recent call last):
  File "./xdeb/xdeb.py", line 946, in <module>
    main()
  File "./xdeb/xdeb.py", line 930, in main
    native_crossed.extend(native_import(options, src))
  File "./xdeb/xdeb.py", line 560, in native_import
    crossed_debs = cross_convert(options, debs, options.builddirs[0])
  File "./xdeb/xdeb.py", line 487, in cross_convert
    spawn(convert, cwd=outdir)
  File "/home/devel/canonical/linaro/xdeb/utils.py", line 29, in spawn
    raise SubprocessException, ret
utils.SubprocessException: 1

And running the same xdeb command with --sequence now shows:

Build sequence: krb5 keyutils* zlib* tcp-wrappers* bluez* x11proto-kb* pulseaudio* xcb-util* libxtst* libxcb* curl* libpthread-stubs* x11proto-xext* libxau* gpm* libsndfile* libxdmcp* alsa-lib* libgpg-error* x11proto-input* libice* nas* gnutls26* libxt* libpng* libxdamage* libxext* libidn* esound* db4.8* ncurses* pcre3* glib2.0* python2.7* x11proto-core* libdrm* openldap* libogg* flac* brltty* libsdl1.2* mesa* util-linux* libxfixes* vde2* libcaca* libgcrypt11* slang2* dbus* libx11* openssl* e2fsprogs* cyrus-sasl2* xtrans* libtasn1-3* aalib* libvorbis* avahi* libselinux* libsm* audiofile* libxxf86vm* qemu-linaro*

(i.e., it considers krb5 'done'.)

It is an actual bug in dpkg-cross that libkrb5-dev doesn't get crossed; the package is a symlink farm pointing into /usr/lib/mit-krb5 and /usr/include/mit-krb5, so it's understandable that dpkg-cross doesn't know what to do with it. However, at some point we do actually need libkrb5-dev installable and usable for builds, either by teaching dpkg-cross about it or making it multi-arch: same.

But in the meantime, xdeb should trust dpkg-cross when it says there's nothing to be done for a package, and should pull it out of its list of packages to cross. There are other packages in the qemu-linaro sequence for which dpkg-cross is doing the right thing, but xdeb falls over.