| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
| |
If db_dump is not available then disable RPM application detection.
Note these utilities have odd names on Debian.
|
| |
|
|
|
|
|
|
| |
At some point we removed the last thing that required
xml-light, but were still testing for it at various places
in the build. This removes all traces.
|
|
|
|
|
|
| |
This also makes libxml2 and libvirt into optional dependencies.
If they are missing then the core API will print an error, as
will the '-d' option to guestfish.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change makes these libraries optional. If they are not
available at compile time then certain core API features will
be disabled (see below).
This also changes PCRE detection to use pkg-config instead
of the ad hoc autoconf checks.
The large inspect.c file has been split out into separate
function-specific files.
file-architecture: requires pcre & libmagic
inspection: requires pcre & hivex
|
|
|
|
| |
However it is used by the daemon.
|
|
|
|
|
|
|
| |
If either the daemon sends back an errno, or a system call
fails in the library, save the errno in the handle and then
make it available to callers through the guestfs_last_errno
function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use febootstrap-supermin-helper's new -u and -g command line options to setuid,
rather than doing it in libguestfs.
This resolves an issue with the generation of the cached appliance checksum. The
checksum was being generated by a call to febootstrap-supermin-helper through
popen(). Unfortunately, a bash misfeature meant that euid would be reset to uid,
and the checksum was generated for uid, not euid. When virt-v2v is writing to a
RHEV target, uid == 0 and euid == 36, which resulted in a cached appliance being
created for root with permissions for uid 36.
Note this requires febootstrap 2.10.
|
|
|
|
|
| |
hivex library has been required since we moved the inspection
code to C. Check for this in configure.ac.
|
|
|
|
|
|
| |
Augeas has been required since we moved the inspection code to C,
however we were not correctly enforcing this in configure.ac, nor
correctly linking to the library until now.
|
| |
|
|
|
|
|
|
| |
Note that these are not complete on 32 bit architectures. PHP doesn't
offer any convenient 64 bit type (on 32 bit). Therefore you should
always use these PHP bindings on 64 bit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This uses the optional po4a package to split these files into
PO files for translation, and reassemble afterwards.
Note this creates an extra pot file (po-docs/libguestfs-docs.pot).
We don't (yet) combine this with the main po/libguestfs.pot file.
The 'libguestfs-docs.pot' file included in this commit is not the
real thing, just a short cut down snippet for testing. The real
thing is created if you update one of the dependent files and
rebuild.
Note also the dummy ja.po, for testing the principles.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for virtio-serial, and removes all other
vmchannel methods.
Virtio-serial is faster than other methods, and is now widely
available.
I tested this by using the guestfs_upload API on an 83 MB file:
before: 6.12 seconds (14.1 MB/sec)
after: 4.20 seconds (20.6 MB/sec)
(note this is with the current 8K chunk size)
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes the method used to build the supermin appliance
to use the new ext2-based appliance supported by latest febootstrap.
The appliance can also be cached, so we avoid rebuilding it
each time it is used.
Mailing list discussion goes into the rationale and details:
https://www.redhat.com/archives/libguestfs/2010-August/msg00028.html
Requires febootstrap >= 2.8.
|
|
|
|
|
|
|
|
| |
The -d option lets you specify libvirt domains. The disks from
these domains are found and added, as if you'd named them with -a.
The -c option lets you specify a libvirt URI, which is needed
when we consult libvirt to implement the above.
|
|
|
|
|
|
| |
This change simply converts the existing Perl-only function
file_architecture into a core API call. The core API call is
written in C and available in all languages and from guestfish.
|
| |
|
|
|
|
|
|
|
| |
Fix copyright years.
Fix URLs to point to new PRC site.
Make sure guestfish(1) and guestfs(3) manpages reference the
current list of tools.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 commit makes the semi-independent hivex library into a
separate upstream project. The git repo for hivex is now:
http://git.annexia.org/?p=hivex.git;a=summary
Downloads of hivex are available here:
http://libguestfs.org/download/
All questions, patches, bugs etc should be sent to the libguestfs
mailing list and bug tracker.
|
|
|
|
|
|
|
| |
We originally intended to implement an FTP server (and before
than, an NFS server). But we didn't implement either. We
did however implement a FUSE service (guestmount) which takes
the place of both.
|
|
|
|
| |
Tested in only limited situations, with Mono on Linux.
|
|
|
|
|
|
|
|
|
|
|
| |
This commit combines the previously separate "inspector_generator.ml"
program which generated bindings for virt-inspector.
Having two separate programs caused no end of troubles for developers,
so we now combine them into a single program.
NOTE: OCaml xml-light is now *required* in order to rebuild the
generated code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This implements FUSE filesystem support so that any libguestfs-
accessible disk image can be mounted as a local filesystem.
Note: file writes (ie. write(2) system call) is not yet implemented.
The API needs more test coverage, particularly lesser-used system
calls.
The big unresolved issue is UID/GID mapping between guest filesystem
IDs and the host. It's not easy to automate this because you need
extra details about the guest itself in order to get to its
UID->username map (eg. /etc/passwd from the guest).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In hivex/: This mini-library allows us to extract Windows
Registry binary files ("hives").
There are also two tools: hivexml converts a hive to a
self-describing XML format. hivexget can be used to extract
single subkeys from a hive.
New tool: virt-win-reg. This is a wrapper around the library
functionality allowing you to pull out data from the registries
of Windows guests.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds a generic mechanism for deriving language bindings
for virt-inspector, and implements one concrete binding, for OCaml.
The bindings are generated from the RELAX NG schema (virt-inspector.rng)
which is supposed to be a correct and always up to date description
of the XML that the virt-inspector program can generate.
From the RNG we generate a set of types to describe the output of
virt-inspector for the language, plus an XML parser, plus some
glue code to actually run an external instance of virt-inspector
and parse the resulting XML.
At runtime, an external 'virt-inspector --xml <name>' command runs
and the XML is parsed into language-specific structures.
This has been tested on the four example files (inspector/example?.xml)
The only particular difficulty about the OCaml binding is the use of
Obj.magic, which is naughty but works because of the isomorphism
between the representation of tuples and records in OCaml. This
seems to cause no problems in my test program. Apart from this, the
OCaml binding is straightforward and could be adapted easily for any
other languages that want type-safe virt-inspector bindings.
It's important to keep virt-inspector.rng up to date with changes
to virt-inspector's XML output format.
|
| |
|
| |
|
|
|
|
|
| |
The squashfs format changes too much. Use an ISO file for
the tests instead.
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|