| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
(cherry picked from commit 1596b6026ddd1e343efc6a74fc23f46e4975868f)
|
|
|
|
|
|
|
|
| |
https://bugs.launchpad.net/qemu/+bug/1021649 is invalid, probably
caused by a Fedora ROM.
This updates commit 52d188e32fb8addb45bf926df07e34ab35898f85.
(cherry picked from commit 6e5a85bb9b6557bc337625a339728e23f5f2dd94)
|
|
|
|
| |
(cherry picked from commit 52d188e32fb8addb45bf926df07e34ab35898f85)
|
|
|
|
|
|
|
|
|
| |
Earlier versions of qemu contained a bug in the qcow2 code which
causes qemu to segfault when shutting down and flushing its internal
cache, and this can result in data loss.
Cherry picked from commit 7996e0882442dc7bac2ab573e2fcac0b488c8cc7
and changed to suit stable-1.16 releases.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new API splits orderly close into a two-step process:
if (guestfs_shutdown (g) == -1) {
/* handle the error, eg. qemu error */
}
guestfs_close (g);
Note that the explicit shutdown step is only necessary in the case
where you have made changes to the disk image and want to handle write
errors. Read the documentation for further information.
This change also:
- deprecates guestfs_kill_subprocess
- turns guestfs_kill_subprocess into the same as guestfs_shutdown
- changes guestfish and other tools to call shutdown + close
where necessary (not for read-only tools)
- updates documentation
- updates examples
(cherry picked from commit ffbf1475f7ae7c462db289ad4834391469e72edd)
|
|
|
|
|
|
| |
Currently guestfs_close has no method to return an error indication,
so this commit simply prints the error on stderr.
(cherry picked from commit bcc4ffb52b9f4b5db7861682905ec32844f4603b)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The order is now:
- remove the handle from the list of handles
- send close trace message
- sync and shutdown qemu
- run user close callback
- free temporary directory
- free memory
This commit ought to be no functional change.
(cherry picked from commit fc3c6fff4b0a6ffeb75aa78b1d73241a14a03cd1)
|
|
|
|
|
|
|
|
| |
Make the comments consistent.
Also make the Perl example call $g->close explicitly so it is
consistent with the other examples.
(cherry picked from commit 27ebf517fae972eee49ae5911a03fabe5f4b6e54)
|
|
|
|
|
|
| |
This is now set by default in all supported versions of libguestfs.
It's just confusing if the examples refer to it.
(cherry picked from commit 917550a117904ec1a06b77a7870a147014d71adb)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Linux, sync(2) does not actually issue a write barrier, thus it
doesn't force a flush of the underlying hardware write cache (or
qemu's disk cache in the virtual case).
This can be a problem, because libguestfs relies on running sync in
the appliance, followed by killing qemu (using SIGTERM).
In most cases, this is fine, because killing qemu with SIGTERM should
cause it to flush out the disk cache before it exits. However we have
found various bugs in qemu which cause qemu to crash while doing the
flush, leaving the data unwritten (see RHBZ#836913).
The solution is to issue fsync(2) to the block devices. This has a
write barrier, so it ensures that qemu writes out its cache long
before we get around to killing qemu.
(cherry picked from commit c0a3c9ce70b98171e737e49e6dccc4457963f2ec)
|
|
|
|
|
|
| |
No functional change.
(cherry picked from commit cb24ceedd8a8ef7da71cfcce6db10669de47685c)
|
|
|
|
|
| |
This is just a comment and has no functional effect.
(cherry picked from commit 0437a7905619b8370e25fbae1a3e6388c5277be9)
|
|
|
|
|
|
|
|
|
| |
Note that qemu treats these identically, so this change has
no functional effect.
(cherry picked from commit 1608ca182b094a1dbe22094f39a5e86f18f728b7)
Conflicts:
src/launch.c
|
|
|
|
|
|
| |
systemd is playing a WTF game with udevd, moving it around and
renaming it unnecessarily in each release. Chase all known locations.
(cherry picked from commit 906f8e3ae24a084d9a70d33d84c0ce29bdafa79c)
|
|
|
|
| |
(cherry picked from commit 100271c7bc00a1f9baacd8c56b43e156b736fc12)
|
|
|
|
| |
(cherry picked from commit 5489304c8d2836713ec58051c24514eba22b8c94)
|
|
|
|
|
|
|
|
|
|
|
| |
Replace:
cp tests/guests/fedora.img test.img
with the longer but possibly more space-efficient equivalent:
qemu-img create -F raw -b tests/guests/fedora.img -f qcow2 test.qcow2
(cherry picked from commit 339f3647f889424af2a2256c4fcad0b44982c275)
|
|
|
|
|
|
| |
If the partition name we're about to return doesn't really exist,
then don't perform the mapping.
(cherry picked from commit ea8421c5d297698856a87c2cfe4a6b42796175a8)
|
|
|
|
|
|
|
|
|
| |
See https://bugzilla.redhat.com/show_bug.cgi?id=836573#c3
for an explanation.
Useful function 'is_partition' shows how to tell if a device name
represents a partition.
(cherry picked from commit 7eaa99994ebd354f4b078d4068695984989a907f)
|
|
|
|
|
|
|
| |
This is mostly code motion, although it also fixes a memory leak in an
extremely rare failure case, and it generally tidies up the existing
code.
(cherry picked from commit 47b8225b05a7e35411f954f61f3eb3115c5a9f45)
|
|
|
|
|
|
|
| |
This returns the number of whole block devices added. It is usually
simpler to call this than to list the devices and count them, which
is what we do in some places in the current codebase.
(cherry picked from commit 152b179a19e43fcb0baec65ea65d394ee1dba891)
|
|
|
|
|
|
|
|
| |
This returns the index of the device, eg. /dev/sdb => 1.
Or you can think of it as the order that the device was
added, or the index of the device in guestfs_list_devices.
(cherry picked from commit a9d7d044f552855a7ef78d953c0c2672e35bfc80)
|
|
|
|
|
|
|
|
|
|
| |
On Debian, the Ruby C extensions library isn't '-lruby', it's
something like '-lruby1.8' or '-lruby-1.9.1' and these can even be
parallel-installed.
Fix detection so we use Ruby's own rbconfig.rb file to find the right
library to use.
(cherry picked from commit cba49169094f04dead9b165b6b5991afa92132ff)
|
|
|
|
|
| |
No functional change.
(cherry picked from commit b07d0968823d008776345a1c724713d2320e1571)
|
|
|
|
| |
(cherry picked from commit b9f858e5eefa0d2abae5ff0a61a39b0d34334bc1)
|
|
|
|
|
| |
No functional change.
(cherry picked from commit 2d56e5af900662ea0a13e9e8ea4a802609214ecc)
|
| |
|
|
|
|
| |
(cherry picked from commit 1d17a6e9d8f434f952f3c171b5a81ca6b916fa1f)
|
|
|
|
|
|
|
|
| |
On RHEL 5, because _GNU_SOURCE was not defined, open_memstream was not
being declared, resulting in miscompilation and a segfault in the
trace code whenever open_memstream returned a pointer >= 0x80000000
(which would be truncated to a 32 bit int and then sign-extended).
(cherry picked from commit 6777425636d1c04494e52c61dc44f523458d12d3)
|
|
|
|
|
|
|
|
|
|
| |
When libguestfs calls 'error (g, "error")', gjs in F17 throws
error.message == "Error invoking Guestfs.test0rinterr: error"
In F18, error.message is simply the string "error".
Fix the test so it works for both cases.
(cherry picked from commit 6afb7336e33dc28c4fd1a4545a8298ee36c10723)
|
|
|
|
| |
(cherry picked from commit bbb7d75c91450ab029edb794b0486eeb8220e4fd)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The stdin and stdout of the qemu process are aliased to g->fd:
g->fd[0] = wfd[1];
g->fd[1] = rfd[0];
However if the child exits early, then child_cleanup closes g->fd[0],
g->fd[1], AND the code at the cleanup1 label closes wfd[1], rfd[0],
resulting in a double-close.
Avoid this case by setting wfd[1], rfd[0] to -1. In the cleanup1
label, only close wfd[1], rfd[0] if they are not -1, and add the same
for g->fd[0], g->fd[1].
(cherry picked from commit c87956837e962072fff61edef5b18e55ad42d730)
|
|
|
|
| |
(cherry picked from commit 9e221e55b61e9f1cd0caf292ca609a4ca26f1d4d)
|
|
|
|
|
| |
This fixes commit ef5c02c6ee72eb8e127115923951777a2c2b8480.
(cherry picked from commit 11317b5d1243f3afc35f7abe8edc646f75813e36)
|
|
|
|
| |
(cherry picked from commit ef5c02c6ee72eb8e127115923951777a2c2b8480)
|
|
|
|
| |
(cherry picked from commit 90d0beb3c528d91029349b64d0159836c776189b)
|
|
|
|
|
| |
These haven't been used since we switched over to virtio-serial.
(cherry picked from commit 78a515ec4a4e8650bd2e1ffc0bfbb97b9568306d)
|
|
|
|
|
|
|
|
| |
Another instance of 'truncate' command.
See commit 39df80dcc0e485e69048bddbf33c259ce532e50d for an
explanation.
(cherry picked from commit ef1514aa1e0a099d71cbb7d2c5f24f9f32e1939d)
|
|
|
|
|
|
|
|
|
| |
The original fix for this in
commit 511c82df46f5c6f4a7f984fdb81d4691038ed6da was not complete, in
that it did not fix the case of the old (pre '-m' option) parted.
This doesn't matter for Fedora, but it matters for RHEL 5 which has
this ancient parted.
(cherry picked from commit 4d3ec25b47361601604e2f585178393e60f4cd4d)
|
|
|
|
|
| |
This function was first added to Ruby in 1.8.7.
(cherry picked from commit 8098d062b4cb70defd4aecba0ba8cd75cf893751)
|
|
|
|
|
|
|
| |
If -lruby was not available, this used to define HAVE_LIBRUBY=0.
However this meant that the later test -n "$HAVE_LIBRUBY" would
be successful, whereas it should fail in this case.
(cherry picked from commit 823ba05ebd8f1a12574a3f154aaf7c8b4f2aeeac)
|
|
|
|
|
|
| |
By setting these variables, we can skip tests that fail on
RHEL 5.
(cherry picked from commit 145f35badfd9ca4a6d9f54f7732566a5e5114876)
|
| |
|
|
|
|
|
| |
This didn't exist on ancient autoconf in RHEL 5.
(cherry picked from commit 489da3ccdf96e995d3f53fe68eced37b16baa1d2)
|
|
|
|
|
|
|
|
|
| |
This is missing on RHEL 5.
This updates commit 50aa9533e4a505e1c64dbedddb30491bfbb755d6.
Cherry picked from commit bc7f1a5ef156576c069f47ea33f4977979ac032d
and backported to libguestfs 1.16.
|
|
|
|
| |
(cherry picked from commit d7c9c6a0d926982b64d13949a5da580ea4ecc4b6)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RHEL 5 didn't have the truncate command, but we can replace:
truncate -s SIZE FILE
with the roughly equivalent command:
guestfish sparse FILE SIZE
Cherry picked from commit 39df80dcc0e485e69048bddbf33c259ce532e50d
and backported to libguestfs 1.16 branch.
|
|
|
|
|
|
|
|
|
|
|
|
| |
RHEL 5-era FUSE didn't have this function.
I copied the function out of upstream FUSE, since the license is
compatible.
Cherry picked from commit 4846b84476015874d569c14c2c30fcd71aa4d54c
and backported to libguestfs 1.16. This includes more of the
development 'configure.ac' than is strictly necessary, but on the
other hand it brings the code closer to that development branch.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RHEL 5-era autoconf did not define these, so define them manually
when they are missing.
Define builddir as '.' The scripts require this. It won't work
in the srcdir != builddir case, but we don't care about that for
RHEL 5.
This commit also moves the builddir / abs_srcdir variable setting
above the include of subdir-rules.mk, in case that include uses
these variables.
Useful script:
for f in $(find -name Makefile.am | xargs fgrep '$(abs_srcdir)' -l) ; do
if ! grep -q '^abs_srcdir' $f; then
echo missing in $f
fi
done
(cherry picked from commit 50aa9533e4a505e1c64dbedddb30491bfbb755d6)
|