First, thanks for the in-depth assistance. See responses inline below. On Tue, Aug 9, 2011 at 2:08 AM, Richard W.M. Jones <rjones@redhat.com>wrote:
Hi,
I am trying to get libguestfs-test-tool working on ubuntu. The first problem I had was that HiveX won't compile on ubuntu to due to some missing symbols (rpl-getopt, I see this has already been reported). Second
On Mon, Aug 08, 2011 at 03:55:07PM -0700, David Konerding wrote: problem
is that if HiveX is not available, guestfish doesn't link because code refers to symbols which aren't compiled into libguestfs (I was able to work around this by #ifdeffing references to those functions).
Which version of Ubuntu is this?
hivex should be in Ubuntu already, thanks to Hilko Bengen: http://packages.ubuntu.com/oneiric/libhivex-dev
It's a Lucid Lynx derivative, and we don't have that package. Maybe I can shoehorn it in. The problem with missing hivex/pcre causing libguestfs builds to break
is known: https://bugzilla.redhat.com/show_bug.cgi?id=723474
Thanks. I simply went into inspect_icon.c, and wherever you called an undefined function, I set the value to NULL, which in most cases invokes the error path. IE: diff -ru libguestfs-1.12.3/src/inspect_icon.c /usr/local/home/dek/libguestfs-1.12.3/src/inspect_icon.c --- libguestfs-1.12.3/src/inspect_icon.c 2011-07-20 10:20:58.000000000 -0700 +++ /usr/local/home/dek/libguestfs-1.12.3/src/inspect_icon.c 2011-08-08 14:19:31.000000000 -0700 @@ -75,7 +75,11 @@ int favicon, highquality; size_t size; +#if defined(HAVE_HIVEX) fs = guestfs___search_for_root (g, root); +#else + fs = NULL; +#endif if (!fs) return NULL;
execl: /init: No such file or directory febootstrap: debug: listing directory / 2 d . 040755 4096 88619:5000 2 d .. 040755 4096 88619:5000 11 d lost+found 040700 16384 0:0 12 d bin 040750 4096 23083:5000 13 d boot 040750 4096 23083:5000 14 d etc 040750 4096 23083:5000 109 d lib 040750 4096 23083:5000 156 d sbin 040750 4096 23083:5000 157 d usr 040750 4096 23083:5000 534 d var 040750 4096 23083:5000 690 - init 100750 3264 23083:5000 febootstrap: debug: listing directory /bin 12 d . 040750 4096 23083:5000 2 d .. 040755 4096 88619:5000 540 l rbash 120777 4 0:0 -> bash 541 l sh 120777 9 0:0 -> /bin/bash febootstrap: debug: listing directory /lib 109 d . 040750 4096 23083:5000 2 d .. 040755 4096 88619:5000 110 d cryptsetup 040750 4096 23083:5000 113 d firmware 040750 4096 23083:5000 145 d init 040750 4096 23083:5000 146 d modules 040750 4096 23083:5000 147 d security 040750 4096 23083:5000 148 d udev 040750 4096 23083:5000 551 l libaio.so.1 120777 15 0:0 -> libaio.so.1.0.1 552 l libbsd.so.0 120777 15 0:0 -> libbsd.so.0.2.0 553 l libdbus-1.so.3 120777 18 0:0 -> libdbus-1.so.3.4.0 554 l libdrm_intel.so.1 120777 21 0:0 -> libdrm_intel.so.1.0.0 555 l libdrm_nouveau.so.1 120777 23 0:0 -> libdrm_nouveau.so.1.0.0 556 l libdrm_radeon.so.1 120777 22 0:0 -> libdrm_radeon.so.1.0.0 557 l libfuse.so.2 120777 16 0:0 -> libfuse.so.2.8.1 558 l libgcrypt.so.11 120777 19 0:0 -> libgcrypt.so.11.5.2 559 l libglib-2.0.so.0 120777 23 0:0 -> libglib-2.0.so.0.2400.1 560 l libnih-dbus.so.1 120777 20 0:0 -> libnih-dbus.so.1.0.0 561 l libnih.so.1 120777 15 0:0 -> libnih.so.1.0.0 562 - libntfs-3g.so.75.0.0 100644 266616 0:0 563 l libntfs-3g.so.75 120777 20 0:0 -> libntfs-3g.so.75.0.0 564 l libparted.so.0 120777 18 0:0 -> libparted.so.0.0.1 565 l libpcre.so.3 120777 17 0:0 -> libpcre.so.3.12.1 566 l libply-boot-client.so.2 120777 27 0:0 ->
567 l libply-splash-core.so.2 120777 27 0:0 ->
Anyway, including the diagnostic output in case it helps. [...] libply-boot-client.so.2.0.0 libply-splash-core.so.2.0.0
568 l libply-splash-graphics.so.2 120777 31 0:0 -> libply-splash-graphics.so.2.0.0 569 l libply.so.2 120777 15 0:0 -> libply.so.2.0.0 570 l libpng12.so.0 120777 18 0:0 -> libpng12.so.0.42.0 571 l libpopt.so.0 120777 16 0:0 -> libpopt.so.0.0.0 572 l libslang.so.2 120777 17 0:0 -> libslang.so.2.2.2 573 l libss.so.2 120777 12 0:0 -> libss.so.2.0 574 l libudev.so.0 120777 16 0:0 -> libudev.so.0.6.1 575 l libulockmgr.so.1 120777 20 0:0 -> libulockmgr.so.1.0.1 576 l libusb-0.1.so.4 120777 19 0:0 -> libusb-0.1.so.4.4.4 febootstrap: debug: listing directory /lib64
The problem is that both /bin/bash and libc are completely missing from the appliance.
i see.
During the build, was febootstrap able to download all the packages it needed?
Looks like it (I see a bunch of package downloads, none of them failed). However, I re-ran this, and I see this (the list is some ~thousands of files, I guess the entire unpacked root filesystem?) febootstrap: warning: some host files are unreadable by non-root febootstrap: warning: get your distro to fix these files: /bin/bash /bin/cat I am going to try to reproduce this step with strace to see what the underlying problem is. Well, that wasn't very useful- I don't see any calls to /bin/bash in the host file system that are failing. Which version of febootstrap are you using? (Generally speaking, you
should always try to use a recent version)
My distribution had 2.1-4, but I downloaded febootstrap-3.8 and used that. Do /bin/bash and /lib/libc.so.* appear in appliance/supermin.d/hostfiles?
I see /bin/sh and /bin/rbash. no /bin/bash and no libc.so at all.
Do the paths to the programs / libraries in hostfiles match up with what is available on the host filesystem?
Hmm, not sure. i could check this but I'm wondering if the problem I noted above is significant enough that I don't need it.
Have you installed (on the host) all the packages that are listed in
appliance/packagelist?
I hadn't (zfs-fuse, gfs2 and a few others were missing). They are installed now. But it didn't make any difference.
Is febootstrap downloading packages which match up with the packages installed on the host? You'll have problems if your apt configuration is significantly different from what is actually installed on your host, eg. if 'unstable' packages are installed on the host, but the unstable repo is disabled in sources.list.
Nope, I've got no unstable packages installed.
Rich.
-- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming blog: http://rwmj.wordpress.com Fedora now supports 80 OCaml packages (the OPEN alternative to F#) http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora