| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This library is widely available in distros.
|
|
|
|
|
|
|
| |
Update and verify the list of requirements, by checking it against
both configure.ac and the Fedora specfile.
Remove some obsolete sections that covered historical ground.
|
|
|
|
| |
This also requires hivex >= 1.2.7.
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the hack that let you run ./fish/guestfish or
./fuse/guestmount. You now have to do:
./run ./fish/guestfish
or
./run ./fuse/guestmount
to run these programs without installing.
|
|
|
|
|
| |
Remove all the run*locally scripts and replace with a single top level
./run shell script.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a fairly straightforward translation of Perl virt-resize into
OCaml. It is bug-for-bug and feature-for-feature identical to the
Perl version, except as noted below.
The motivation is to have a more solid, high-level, statically safe
compiled language to go forwards with fixing some of the harder bugs
in virt-resize. In particular contracts between different parts of
the program are now handled by statically typed structures checked at
compile time, instead of the very ad-hoc unchecked hash tables used by
the Perl version.
OCaml and the ocaml-pcre library (Perl-Compatible Regular Expressions
bindings for OCaml) are required.
Extra features in this version:
- 32 bit hosts are now supported.
- We try hard to handle the case where the target disk is not "clean"
(ie. all zeroes). It usually works for this case, whereas the
previous version would usually fail. However it is still
recommended that the system administrator creates a fresh blank disk
for the target before running the program.
- User messages are a bit more verbose and helpful. You can turn
these off with the -q (--quiet) option.
There is one lost feature:
- Ability to specify >= T (terabytes) sizes in command line size
expressions has been removed. This probably didn't work in the Perl
version.
Other differences:
- The first partition on the target is no longer aligned; instead we
place it at the same sector as on the source. I suspect that
aligning it was causing the bootloader failures.
- Because it's easier, we do more sanity checking on the source disk.
This might lead to more failures, but they'd be failures you'd want
to know about.
- The order in which operations are performed has been changed to make
it more logical. The user should not notice any functional
difference, but debug messages will be quite a bit different.
- virt-resize is a compiled binary, not a script.
|
| |
|
|
|
|
|
| |
This allows the default for --ro or --rw to be controlled for the
three tools guestfish, guestmount and virt-rescue.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This removes all support for building the ordinary / old
style appliance using febootstrap 2.x, debootstrap, debirf,
fakeroot and fakechroot.
Instead this uses febootstrap 3.x to build the supermin appliance
in a simpler cross-distro manner.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|