| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In guestfish, factor out the processing of the options -a, -c,
-d, -i, -m, -n, -r, -v, -V, -x into a separate set of files:
options.c, options.h, inspect.c, virt.c.
Change guestmount so that it uses these same files (from the
../fish directory) to process the same options.
This unifies the handling of these options between the two programs.
It also adds the useful inspection feature to guestmount, so you
can now do:
guestmount -d Guest -i --ro mnt/
|
| |
|
|
|
|
|
| |
For command line disk images, specify the format using --format option
in the same way as for guestfish.
|
|
|
|
|
|
|
|
|
|
|
|
| |
If this string was non-empty, then it broke a lot of things because
autoconf and other parts of the build system were expecting this
string to contain a simple MAJOR.MINOR.RELEASE version number.
This requires changes to guestfish and guestmount so they use the
guestfs_version API to fetch the version from the library. (The
Perl tools were already doing it this way). In a way this is more
accurate, because it's no longer hard-coded in the binary, but
fetched from the dynamically linked libguestfs.so.
|
| |
|
|
|
|
|
|
|
|
| |
guestmount.c: In function 'main':
guestmount.c:899: error: implicit declaration of function 'setlocale'
[-Wimplicit-function-declaration]
guestmount.c wasn't including locale.h.
|
|
|
|
|
|
| |
Since we have to compile with -Wno-unused-variables, we don't
spot unused variables in code. I found these by compiling the
code in Ubuntu.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds the calls to setlocale &c to all of the current
C programs.
It also adds l10n support to hivexget and hivexml which lacked them
previously.
To test this, try:
LANG=pa_IN.UTF-8 guestfish --cmd-help
(You can only do this test after installing the package, or at
least the 'pa.mo' mo-file in the correct place).
|
|
|
|
|
|
|
|
|
|
| |
Convert by running these commands:
perl -pi -e 's/\b(usage ?)\(1\)/$1(EXIT_FAILURE)/' \
fish/fish.c fuse/guestmount.c
perl -pi -e 's/\b(usage ?)\(0\)/$1(EXIT_SUCCESS)/' \
fish/fish.c fuse/guestmount.c
* fish/fish.c (main): Replace 0/1 with EXIT_SUCCESS/EXIT_FAILURE.
* fuse/guestmount.c (main): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Convert all uses automatically, via these two commands:
git grep -l '\<exit *(1)' \
| grep -vEf .x-sc_prohibit_magic_number_exit \
| xargs --no-run-if-empty \
perl -pi -e 's/\b(exit ?)\(1\)/$1(EXIT_FAILURE)/'
git grep -l '\<exit *(0)' \
| grep -vEf .x-sc_prohibit_magic_number_exit \
| xargs --no-run-if-empty \
perl -pi -e 's/\b(exit ?)\(0\)/$1(EXIT_SUCCESS)/'
* .x-sc_prohibit_magic_number_exit: New file.
Edit (RWMJ): Don't change Java code.
|
|
|
|
|
| |
These macros don't exist on RHEL/CentOS 5.4. If the feature
is missing then just don't implement it in the FUSE layer.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(NB: The API / ABI doesn't actually change here - it's just made much
simpler to use).
The API for RBufferOut functions was unexpectedly hard to use in the
case where a zero-length buffer might be returned. For discussion on
this see:
https://www.redhat.com/archives/libguestfs/2009-November/thread.html#00115
This commit ensures that in the zero-length buffer case, the return
value is never NULL. Thus code is now able to just check if the return
value == NULL to indicate an error, which is simpler for all concerned.
The implementation of this is, however, more complex because we have
to be careful about this case inside both the daemon and the library
code, which is what this commit does.
This has passed a full round of tests.
|
|
|
|
|
| |
Error handling for the guestfs_pread call was incorrect, which
meant that empty files could produce spurious error messages.
|
|
|
|
|
| |
We need to invalidate both parameters, otherwise the old (moved)
file can appear that it still exists after the move.
|
|
|
|
|
| |
The parameters were swapped. We also need to invalidate the
cache for both parameters.
|
|
|
|
| |
The parameters were swapped, preventing symlinks from being created.
|
|
|
|
|
| |
Move these to private header file(s) and other places as required
since these aren't part of the public API.
|
|
|
|
|
| |
* fuse/guestmount.c (fg_readlink): Perform cast in a
separate statement to hide it from "make syntax-check".
|
|
|
|
|
| |
git grep -l 'strcmp *([^=]*== *0'|xargs \
perl -pi -e 's/\bstrcmp( *\(.*?\)) *== *0/STREQ$1/g'
|
|
|
|
|
|
|
|
|
|
|
| |
* HACKING: Expand indentation TABs.
* configure.ac: Likewise.
* daemon/daemon.h: Likewise.
* daemon/guestfsd.c: Likewise.
* fuse/guestmount.c: Likewise.
* hivex/LICENSE: Likewise.
* src/generator.ml: Likewise.
* tools/virt-win-reg: Likewise.
|
| |
|
| |
|
|
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).
|