Richard W.M. Jones | 20 Sep 16:37 2014

[PATCH v2 0/3] tests: Introduce test harness for running tests.

This has got to the stage where it actually works, both for running
the tests in-tree and installed.

The 'test-harness' script has become rather over-complex in the
process however.

Hilko Bengen | 19 Sep 18:56 2014

[PATCH] appliance: Add libsystemd0 (and systemd as an alternative for sysvinit) on Debian-based systems

 appliance/ | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/appliance/ b/appliance/
index 3e028e3..418c574 100644
--- a/appliance/
+++ b/appliance/
 <at>  <at>  -80,6 +80,7  <at>  <at>  dnl iproute has been renamed to iproute2
+  libsystemd0
 <at>  <at>  -91,6 +92,7  <at>  <at>  dnl iproute has been renamed to iproute2
   sysvinit                  dnl for /sbin/reboot
+  systemd                   dnl alternative for /sbin/reboot

Richard W.M. Jones | 19 Sep 10:34 2014

Re: missing file from 'supermin' git repository

On Thu, Sep 18, 2014 at 08:01:28PM -0400, Assaf Gordon wrote:
> I really like to potential of libguestfs, if it only worked for
> those darn BSDs :)
> Anyhow, I'm now trying to recompile libguestfs, which requires
> 'supermin' and ton of other packages...

Make sure you read the README closely.

> In the "supermin" git repository on github, there's at least one
> missing file "lib/" - it is references in "",
> and so "" fail - which in turn
> prevents "./configure" from completing.

This is probably a gnulib file.  If you run ./bootstrap and/or
./ it should appear.



Richard Jones, Virtualization Group, Red Hat
Read my programming and virtualization blog:
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
Hu Tao | 19 Sep 09:39 2014

[PATCH v2 00/13] virt-resize: add support for resizing MBR logical partitions

Hi Rich,

This is v2 series to add support for resizing MBR logical partitions.

I found the reason of problem in v1 that parted reports error when
adding logical partitions, is that logical partitions are not aligned
to 2 sectors. This problem doesn't appear in v2.

This is for early review, because of:

1. I'm not sure the splitting of patches is appropriate or not, but
   it's much easier to review than v1.
2. The test script is not included, I'm not sure where to add the test
   script. But I'll send the test script I used.


changes to v1:
  1. spit the patches so it's easier to review
  2. fix the parted error caused by unaligned logical partitions
  3. extend the content of logical partitions
  4. refactor to make logical partitions a seperate list

Hu Tao (13):
  resize: convert sectsize to int64
  add function div_roundup64
  resize: introduce partition type
  resize: introduce filter_part
  resize: add function find_partition
  resize: add function print_summmary
(Continue reading)

Assaf Gordon | 18 Sep 17:38 2014

libguestfs fails on FreeBSD9.3, MINIX3 qcow2 images

Hello Richard and all,

(continuing from ).

I'm experimenting with libguestfs on non-linux VMs, encountered errors on FreeBSD9.3 and MINIX3 (and few
others, but these ones are easy to share), with host Ubuntu 14.04.01 LTS x86-64.

Attached are logs from "virt-inspector -v -x" for each VM.

The images are here: (44MB) (161MB)

To run them:
   xz -dc < minix3/minixR330.qcow2.clean_install.xz > minixR330.qcow2
   kvm -drive file=minixR330.qcow2,if=virtio,media=disk,index=0 \
       -m 384 -curses -net user -net nic,model=virtio

   xz -dc < freebsd93.qcow2.clean_install.xz > freebsd93.qcow2
   kvm -drive file=freebsd93.qcow2,if=virtio,media=disk,index=0 \
       -m 384 -curses -net user -net nic,model=virtio

Root password for freebsd is "12345".
Root in Minix does not require a password.

  - Assaf

==== Disk structure from within MINIX3 VM guest ====
# fdisk /dev/c0d0
(Continue reading)

Richard W.M. Jones | 18 Sep 09:28 2014

IRC question: is there a list of supported guest OSes and filesystems

00:48 < agn> Hello libguestFS developers
00:48 < agn> a question: is there a list of supported guest OSes and filesystems for 'libguestfs' ?
00:49 < agn> I'm trying to use it on some non-linux guests (under KVM with qcow2 images), and it doesn't seem
to work.
00:49 < agn> Just wanted to make sure I'm not spending time on something that's officially not supported

[ As the topic says .. stay in the channel! ]

Libguestfs supports every filesystem that Linux supports (assuming it
is enabled either compiled in or as a module in your host kernel).

The only significant filesystem I'm aware of which is not supported is
Windows ReFS, only because no one has reverse engineered and
implemented a Linux driver for it yet.

Inspection supports a subset of all operating systems.  We aim to
support all of them.

If you find an OS / filesystem which doesn't work, please file a bug.



Richard Jones, Virtualization Group, Red Hat
Read my programming and virtualization blog:
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.
Richard W.M. Jones | 17 Sep 17:34 2014

[PATCH] FAQ: Note that update-guestfs-appliance is not needed with

I think this is correct -- Hilko?

Pino Toscano | 17 Sep 13:58 2014

[PATCH 0/2] supermin: use librpm for rpm support


this work makes supermin use the rpm library instead of invoking rpm
directly. This, together with a needed refactoring of the dependency
resolution, should help in make supermin faster on rpm-based systems.

Surely the patches will still need polishing, especially for behaviours
of newly added stuff, but at least it's a good starting point.

Noting that you need rpm-devel on most of rpm systems, feedback of any
kind is more than welcome.

Pino Toscano (2):
  package handlers: add possibility for final teardown
  rpm: use the rpm library instead of invoking rpm            |   4 +
 src/         |   7 +-
 src/             |   1 +
 src/librpm-c.c          | 463 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/           |  51 ++++++
 src/librpm.mli          |  48 +++++
 src/  |  10 ++
 src/package_handler.mli |  10 ++
 src/           |   1 +
 src/              | 218 +++++++++++------------
 src/ |   2 +-
 src/         |   4 +-
 12 files changed, 702 insertions(+), 117 deletions(-)
 create mode 100644 src/librpm-c.c
(Continue reading)

Pino Toscano | 17 Sep 13:47 2014

[PATCH] Use open_process_full in compressed file reading

Since only few bytes of the compressed file are read, closing the stdout
of the process will cause it to complain about that.
Switch to open_process_full instead of open_process_in, so we can close
also stderr and avoid that harmless error message.
 src/ | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/ b/src/
index 7011731..500ce33 100644
--- a/src/
+++ b/src/
 <at>  <at>  -322,13 +322,13  <at>  <at>  and get_file_content file buf len =

 and get_compressed_file_content zcat file =
   let cmd = sprintf "%s %s" zcat (quote file) in
-  let chan = open_process_in cmd in
+  let chan_out, chan_in, chan_err = open_process_full cmd [||] in
   let buf = String.create 512 in
-  let len = input chan buf 0 (String.length buf) in
+  let len = input chan_out buf 0 (String.length buf) in
   (* We're expecting the subprocess to fail because we close the pipe
    * early, so:
-  ignore (close_process_in chan);
+  ignore (Unix.close_process_full (chan_out, chan_in, chan_err));

   get_file_content file buf len


(Continue reading)

Richard W.M. Jones | 16 Sep 16:05 2014

[PATCH 0/3] tests: Introduce test harness for running tests.

These are my thoughts on adding a test harness to run tests instead of
using automake.  The aim of this exercise is to allow us to run the
full test suite on an installed copy of libguestfs.  Another aim is to
allow us to work around all the limitations and problems of automake.

The first patch makes an observation that since the ./run script sets
up $PATH to contain all the directories containing binaries, we can
change all the test scripts to use (eg) 'guestfish' instead of
'../fish/guestfish'.  This allows the test scripts to be reused to
test the installed binary, simply by not invoking the ./run script.
Note this change is completely compatible with the current test

The second patch is just preparation.

The third patch adds (or rather, generates) a shell script in the top
level directory called 'test-harness'.  This script is what will run
the tests (replacing automake).

The test-harness script can be used both to run the tests on the built
tree, using:

  ./run test-harness [subdirectory]

or on an installed tree.  The plan would be to install all the test
scripts and data files required into  <at> libdir <at> /guestfs/tests, and then
you could run the test suite by doing:

  cd /usr/lib/guestfs/tests
(Continue reading)

Shahar Havivi | 16 Sep 15:04 2014

virt-v2v -ic question


I am trying to convert from esx server to local directory a VM names CSB,
Its build from source 77b371b18b6a7ad37105a595931514f542a04396

When running: 
LIBGUESTFS_BACKEND=direct ./run ./v2v/virt-v2v -ic "esx://root <at>" -o local
-of raw -os /tmp/v2v CSB

I get the following:
[   0.0] Opening the source -i libvirt -ic esx://root <at> CSB
Enter root's password for 
Enter host password for user 'root':
[   4.0] Creating an overlay to protect the source from being modified
qemu-img: /tmp/v2vovl2305ba.qcow2: Could not open 'json: { "file.cookie" :
"vmware_soap_session=\"52d44642-3451-51db-dc36-7621bbc387bd\"", "file.sslverify" : "off",
"file.driver" : "https", "file.url" :
"file.timeout" : 60 }': Unknown driver 'https': No such file or directory
virt-v2v: error: qemu-img command failed, see earlier errors

If reporting bugs, run virt-v2v with debugging enabled and include the 
complete output:

  virt-v2v -v -x [...]

As you can see first I am propmt twice for roots password,
I am able to connect with the same uri via 'vish -c' cli.
(Continue reading)