| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit changes substantially the way that we get information
about Windows guests. We now use the Windows Registry to get
information such as the version, product name and much else.
This uses Win::Hivex (ie. the hivex library). 'reged' is no longer
needed or used.
As an incidental change, this also tries harder to search for
%systemroot%, in the case when we cannot find boot.ini (ie.
Windows Vista and more recent). This ensures we can get more
detail from those versions of Windows.
|
|
|
|
|
|
| |
This is a free text string containing the "product name" of
the OS. It's mainly useful for Windows guests, and a forthcoming
patch will get this field from the Windows Registry.
|
|
|
|
| |
This ensures the list of applications is stable.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hi,
attached patch adds the code to list applications installed in Debian
based vm images.
Cheers,
-- Guido
>From 9427a14725b33415058a0713923c62bd231504ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Tue, 23 Feb 2010 21:05:02 +0100
Subject: [PATCH 2/2] Add application listing for Debian
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hi,
Minor nitpick: the Debian folks usually refer to deb as the package format not dpkg.
Cheers,
-- Guido
>From 7a9665d40e0a3109833de10f17831ae06fc8885a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Tue, 23 Feb 2010 21:04:37 +0100
Subject: [PATCH 1/2] Debina package format is called 'deb' not 'dpkg'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Tue, Feb 23, 2010 at 08:07:14PM +0100, Guido Günther wrote:
> On Tue, Feb 23, 2010 at 07:52:43PM +0100, Guido Günther wrote:
> > Hi,
> > attached patch makes virt-inspector find the kernels on Debian systems.
> > Since there is no /etc/grub.conf it falls back to
> > $grubpartition/grub/menu.lst.
> Patch got somehow broken. New version fortchcoming. Sorry for the noise.
Attached now. No idea where the 'if' went in the first version ;)
-- Guido
>From d30b4946f017ff8bde9d4ff62f93c418a707d9e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Tue, 23 Feb 2010 19:50:40 +0100
Subject: [PATCH] Check for grub/menu.lst if /etc/grub.conf can't be found
|
|
|
|
| |
This allows you to override the default QEMU block device emulation.
|
|
|
|
|
|
|
|
|
| |
Remove the ability to pass freeform parameters to Sys::Virt->new.
We don't use it, it makes the code more complex to modify, and
indeed there are no other args that Sys::Virt->new supports so
this would never be used.
Also change $readwrite to $rw to match parameter name.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
guestfs_mount adds -o sync implicitly. This causes a very large
performance problem for write-intensive programs (eg. virt-v2v).
Document this as a "gotcha".
Change the tests, guestfish, Sys::Guestfs::Lib, guestmount to use
mount-options instead.
(Note that this gotcha does not affect mount-ro).
The source of the performance problem was first identified by
Matthew Booth.
|
|
|
|
|
|
|
| |
List applications with epoch, release and arch data.
If epoch is 0, don't store this as an empty string, but as
undefined, and don't output empty <epoch/> element in the XML.
|
|
|
|
|
|
|
|
| |
make all in the perl directory was missing a check that the library had been
built.
make check in the perl directory was missing a check that the appliance and test
images had been built.
|
|
|
|
|
|
|
| |
This is a nicer Perl wrapper around $g->available call.
Update the other code in Sys::Guestfs::Lib to use it before using
LVM, Augeas.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds an explicit dependency on generator.ml for every file it
generates, except java files. Java is left for another time because it's
considerably trickier.
It also adds a build rule for src/libguestfs.la so it can be rebuilt as required
from other directories.
It does this by creating a top level make file, subdir-rules.mk, which can be
included from sub-directories. sub-directories need to define 'generator_built'
to include local files which are built by generator.ml, and they will be updated
automatically.
This fixes parallel make, and will automatically re-create generated files when
make is run from any directory.
It also fixes the problem which efad4f53 was targetting. Specifically,
src/guestfs_protocol.(c|h) had an erroneous dependency on stamp-generator, and
therefore generator.ml, despite not being directly created by it. This caused
them to be recreated every time generator.ml ran rather than only when
src/guestfs_protocol.x was updated, which cascaded into a daemon and therefore
appliance update.
This patch also changes the contents of the distribution tarball by including
files created by rpcgen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit introduces a generic partition creation interface
which should be future-proof and extensible, and partially
replaces the old sfdisk-based interface.
The implementation is based on parted but is hopefully not too
dependent on the particulars of parted.
The following new calls are introduced:
guestfs_part_init:
Initialize a disk with a partition table. Unlike the sfdisk-
based interface, we also support GPT and other partition
types, which is essential to scale to devices larger than 2TB.
guestfs_part_add: Add a partition to an existing disk.
guestfs_part_disk:
Convenience function which combines part_init & part_add,
creating a single partition that covers the whole disk.
guestfs_part_set_bootable:
guestfs_part_set_name:
Set various aspects of existing partitions.
guestfs_part_list:
List partitions on a device. This returns a programming-friendly
list of partition structs (in contrast to sfdisk-l which cannot
be parsed).
guestfs_part_get_parttype:
Return the partition table type, eg. "msdos" or "gpt".
The following calls are planned, but not added currently:
guestfs_part_get_bootable
guestfs_part_get_name
guestfs_part_set_type
guestfs_part_get_type
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
truncate, truncate_size: Used to truncate files to a particular
size, or to zero bytes.
mkdir_mode: Like mkdir but allows you to also specify the
initial permissions for the new directory.
utimens: Set timestamp on a file with nanosecond accuracy.
lchown: Corresponding to lchown(2) syscall (we already have chown).
The implementation is complicated by the fact that we had to
add an Int64 parameter type to the generator.
|
| |
|
|
|
|
|
| |
Make filesystem device names canonical, so they are /dev/sd*
instead of /dev/vd*.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit changes guestfs_launch so that it both launches
the appliance and waits until it is ready (ie. the daemon communicates
back to us).
Since we removed the pretence that we could implement a low-level
asynchronous API, the need to call launch() followed by wait_ready()
has looked a bit silly.
Now guestfs_wait_ready() is basically a no-op. It is left in the
API for backwards compatibility. Any calls to guestfs_wait_ready()
can be removed from client code.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
If present, this gives the mount point of the filesystem which contains grub.
All entries in grub.conf will be relative to this filesystem.
|
|
|
|
|
|
|
|
|
|
|
| |
Paths in grub.conf are relative to the filesystem containing it. grub parsing
currently assumes that it is on /boot, and will fail if it isn't, for example
because a guest only has a single partition.
This patch makes grub parsing work harder to work out what grub paths are
relative to. Firstly, it looks for a previous detected 'linux-grub' filesystem.
If this isn't found, it tries to work out which filesystem contains
/boot/grub/menu.lst and uses that.
|
|
|
|
|
|
|
|
|
|
|
| |
Do it by running this command:
[exempted files are matched via .x-sc_TAB_in_indentation]
git ls-files \
| pcregrep -vf .x-sc_TAB_in_indentation \
| xargs pcregrep -l '^ *\t' \
| xargs perl -MText::Tabs -ni -le \
'$m=/^( *\t[ \t]*)(.*)/; print $m ? expand($1) . $2 : $_'
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds grub parsing to Lib.pm. It adds the following structure to $os:
{boot}
->{configs}
->[0]
->{title} = "Fedora (2.6.29.6-213.fc11.i686.PAE)"
->{kernel} = \kernel
->{cmdline} = "ro root=/dev/mapper/vg_mbooth-lv_root rhgb"
->{initrd} = \initrd
->{default} = 0
The kernel and initrd entries are just references to their top level entries
under kernels and initrd_modules respectively.
It also changes the way Linux kernels and initrd are discovered. Instead of
searching /lib/modules and /boot for files with matching names, kernels and
initrds are scanned as they are discovered in grub.conf.
Additionally, the following attributes are added to the kernels top level entry:
* path
The path to the kernel's vmlinuz file.
* package
The name of the package which installed the kernel.
The xml output of virt-inspector is updated to reflect all of the above changes.
|
|
|
|
|
| |
Related: change the name of the function the comment describes to be more
accurate.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This commit adds kernel and userspace architecture detection
(fully for Linux, partially for Windows). It adds an architecture
for each kernel detected, and an architecture for each root (ie.
userspace) found.
|
|
|
|
|
| |
This command detects the architecture of some types of binaries,
libraries, kernel modules and initrd images.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
virt-inspector --fish dom
virt-inspector --ro-fish dom
Both of the above commands give incorrect results if run on a
libvirt domain, eg:
$ virt-inspector --ro-fish RHEL54Betax64
==> --ro -a RHEL54Betax64 -m /dev/VolGroup00/LogVol00:/ -m /dev/sda1:/boot
^^^^^^^^^^^^^
This is because the current code just prints back the original @ARGV
parameters.
This patch fixes this by getting the image names instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It turns out that the distribution hierarchy is not as reliable concept as you
might think. This patch removes distrofamily again.
Instead of distrofamily, we will add feature tags. This patch adds 2 feature
tags for Linux distributions:
package_format (eg rpm/dpkg)
package_management (eg rhn/yum/apt)
This change is reflected in the output of virt-inspector
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change distro in the output formally known as virt-inspector to reflect the
actual distro. Possible values are now: fedora, rhel, centos, scientific,
debian.
Add new distrofamily entry which is one of: redhat, debian. Currently all
distros except 'debian' are in the redhat family.
This allows you to, for example, select a RHEL/CentOS/Scientific Linux specific
kernel for installation rather than assuming they're all the same.
Note this also changes the behaviour of virt-inspector --query. It will now only
return rhel=yes for RHEL.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
All Perl strings are now marked as translatable using __"string"
or __x("string {placeholder}", placeholder => $_). Perl strings
now get copied to the PO files.
The po/POTFILES.in file is now updated automagically whenever we
add new *.c, *.pl or *.pm files into the repository.
|
|
|
|
|
|
|
| |
'cpio' chokes on these, taking ages to decide that they are
not cpio files, and producing masses of messages. This was
causing virt-inspector to be very slow (many minutes) on
RHEL 3 guests. With this fix, speed is back to normal.
|
| |
|
|
|
|
|
| |
File-backed disks (<source file="...">) didn't get recognised
before. This patch fixes the problem.
|
| |
|
|
|
|
|
| |
Otherwise Pod::Coverage in the tests will complain that the
internal subroutines are undocumented.
|