| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
With the new package building system, it is no longer dangerous to run
'configure', 'make' or 'make check' as root (although it is still not
necessary and not advisable). In any case we don't need to check
this.
|
| |
|
| |
|
|
|
|
|
| |
This removes the 'not-quite-separate' guestfs-actions.h and
guestfs-structs.h files.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This new API allows you to add the disks from a libvirt
domain.
In guestfish you can use the 'domain' command to access the
API, eg:
><fs> domain Fedora14 libvirturi:qemu:///system
1
The returned number is the number of disks that were added.
Also here is a proposed (but commented out) low-level API
which would allow you to add a domain from a virDomainPtr.
However there are several problems with this API -- see discussion
on the list:
https://www.redhat.com/archives/libguestfs/2010-November/thread.html#00028
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
C# bindings were omitted entirely. Add a Makefile.am for this
directory even though we don't build these.
Because of a missing backslash, some POD files were not being
included.
|
|
|
|
|
|
|
|
| |
Run src/api-support/update-from-tarballs.sh (this won't work
unless you have a local copy of the tarballs from the website).
src/api-support/added contains the result of running the
script, a list of pairs: (API name, version first appeared).
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
'src/generator.ml' is no more. Instead the generator is logically
split up over many different source files.
Read generator/README for help and tips.
We compile the generator down to bytecode, not native code. This
means it will run more slowly, but is done for maximum portability.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit converts (some of) the Perl inspection code to C and
makes it available through core APIs. The new APIs are:
inspect-os - Does the inspection, returns list of OSes
inspect-get-* - Get results of the inspection
where '*' is one of:
type - 'windows' or 'linux'
distro - Linux distro
arch - architecture
product-name - long product name string
major-version
minor-version - major.minor version of OS
mountpoints - get a list of the mountpoints
filesystems - get all filesystems associated with the OS
This works for all existing supported Linux and Windows OSes.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
We split the library code into these separate files:
- guestfs.c: creating handles, closing handles, handle-related variables
- actions.c: generated library-side stubs for each action
- bindtests.c: generated code to test bindings
- launch.c: launching the appliance
- proto.c: the library side of the daemon communications protocol
This is just code movement.
|
|
|
|
|
| |
Rename these two generated files, in preparation for splitting
up the main src/guestfs.c file.
|
|
|
|
| |
(Thanks to Yufang Zhang for helping to debug this issue).
|
|
|
|
|
| |
The MD5 hash of this file is embedded in the output of the
generator.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
libguestfs-supermin-helper was previously a shell script. Although
we had steadily optimized it, there were a number of intractable
hot spots:
(1) cpio still reads input files in 512 byte chunks; this is *very*
pessimal behaviour, particularly when SELinux is enabled.
(2) the hostfiles globbing was done very inefficiently by the shell,
with the shell rereading the same directory over and over again.
This is a rewrite of this shell script in C. It is approximately
3 times faster without SELinux, and has an even greater speed difference
with SELinux.
The main features are:
(a) It never frees memory, making it simpler. The program is designed
to run and exit in sub-second times, so this is acceptable.
(b) It caches directory reads, making the globbing of host files much
faster (measured this as ~ 4 x speed up).
(c) It doesn't use external cpio, but instead contains code to write
newc format cpio files, which is all that the kernel can read. Unlike
cpio, this code uses large buffers for reads and writes.
(d) Ignores missing or unreadable hostfiles, whereas cpio gave a
warning.
(e) Checks all return values from system calls.
(f) With --verbose flag, it will print messages timing itself.
This passes all tests.
Updated with feedback from Jim Meyering.
|
| |
|
| |
|
|
|
|
| |
Tested in only limited situations, with Mono on Linux.
|
|
|
|
|
|
|
|
| |
These manual pages have for a very long time 'lived' in the top
source directory.
Clean up this situation by moving those manual pages (plus associated
generated files) into the src/ and fish/ subdirectories respectively.
|
| |
|
|
|
|
| |
This fixes commit cada248a53858341c91f70392e8f5b6e47d9b4fe.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 completely reverts commit efad4f53923dcca94613e193d6383bd032e70498.
|
|
|
|
|
| |
This partially reverts efad4f53923dcca94613e193d6383bd032e70498.
guestfs_protocol.x wasn't being generated when building from a clean checkout.
|
|
|
|
|
| |
Move these to private header file(s) and other places as required
since these aren't part of the public API.
|
|
|
|
|
|
| |
I'm not sure why these dependencies exist, but they cause the
appliance to be updated every time the generator runs, which
appears to be unnecessary.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously non-daemon actions were called directly by
user code, eg:
/* Non-generated */
int
guestfs_set_verbose (guestfs_h *g, int v)
{
g->verbose = !!v;
return 0;
}
This changes these actions so they go indirectly via
some generated code, eg:
/* Generated */
int guestfs_set_verbose (guestfs_h *g,
int verbose)
{
return guestfs__set_verbose (g, verbose);
}
/* Non-generated */
int
guestfs__set_verbose (guestfs_h *g, int v)
{
g->verbose = !!v;
return 0;
}
The aim is to have a place in the generated code where
we can add debug or tracing information for these non-
daemon calls.
|
|
|
|
|
| |
* configure.ac: Define/configure it.
* src/Makefile.am: Use new variables.
|
|
|
|
|
|
|
|
|
| |
* bootstrap (modules): Add ignore-value.
* src/guestfs.c: Include "ignore-value.h".
(stdout_event): Ignore failure to write to stderr.
Also, prefer STDERR_FILENO over the literal "2".
* src/Makefile.am (libguestfs_la_CPPFLAGS): Include gnulib's .h files.
(libprotocol_la_CFLAGS): Remove -Wall -Wno-unused.
|
|
|
|
|
| |
* src/Makefile.am: Compile protocol.c into a convenience library, so it
can have its own CFLAGS, and link that with the destination one.
|
| |
|
|
|
|
|
|
|
| |
Note that files generated by src/generator.ml are stored in
the srcdir, *not* the builddir. The reason is so that they
can be included in the tarball and will appear in the srcdir
for tarball builds.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch allows you to do:
mkdir build
cd build
../configure ...
make
This will output all generated files to the build directory. Given that
autogen automatically runs configure, you can also do:
BUILDDIR=./build ./autogen.sh
which will do the right thing.
Also:
* Fix a dependency bug which means that guestfs_protocol.h
isn't automatically rebuilt.
* Re-running autogen.sh with no arguments won't blow away your previous
configure arguments.
|
|
|
|
|
| |
* src/Makefile.am (BUILT_SOURCES): Define.
($(BUILT_SOURCES)): Depend on stamp-generator.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Use maximum proc_nr (MAX_PROC_NR) as a surrogate for the
library ABI version, resulting in version numbers such as
libguestfs.so.0.<MAX_PROC_NR>.0 for the final library.
Add ABI guarantee to the documentation.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Hi Rich,
automake's policy on what to remove via "make clean" is reasonable:
if running build rules creates it, then "make clean" can and should remove it.
However, even if build rules happen
to create backup files, please remove only the specific ones
they can create, not all of the ones in a directory. Just in case
someone relies on those and expect them to hang around...
>From 1e8be391ac17b4ddcf9671e8413d2660844e6993 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering@redhat.com>
Date: Thu, 30 Apr 2009 15:47:52 +0200
Subject: [PATCH] build: don't tell "make clean" to remove my '~' backup files
* Makefile.am (CLEANFILES): Don't remove '~' backup files.
* daemon/Makefile.am: Ditto.
* examples/Makefile.am: Ditto.
* fish/Makefile.am: Ditto.
* images/Makefile.am: Ditto.
* inspector/Makefile.am: Ditto.
* java/Makefile.am: Ditto.
* ocaml/Makefile.am: Ditto.
* ocaml/examples/Makefile.am: Ditto.
* perl/Makefile.am: Ditto.
* python/Makefile.am: Ditto.
* ruby/Makefile.am: Ditto.
* src/Makefile.am: Ditto.
|