Commit Graph

9086 Commits

Author SHA1 Message Date
Richard W.M. Jones
ba8e8d277d Revert "appliance: init: run ldconfig"
Running ldconfig adds about 100ms to the boot time.  I would prefer
that we understood which libraries need ldconfig to be run, and fix
that.  We could also consider running ldconfig in parallel, but since
it might be required by just about any binary that the init script
runs it's not clear what benefit that gives.

This reverts commit 66aa98265d.
2016-05-13 13:30:39 +01:00
Pino Toscano
e3d429d37d New API: btrfs-filesystem-show (RHBZ#1164765)
Add a new API to list all the devices where a btrfs filesystem is
spanned.
2016-05-12 17:14:11 +02:00
Pino Toscano
ddcd9c2a10 builder: run/schedule a SELinux relabel if needed
If the guest uses SELinux, then make sure to run a relabel (or at least
schedule one) after the image build: this way the template is
relabelled, or at least it will do that at the next boot, without the
need for the user to ask for a relabel.

This just covers the case of building a new image with no additional
operations on it though.
2016-05-10 15:11:54 +02:00
Richard W.M. Jones
754b8f5ef3 boot-analysis: Flush out debug data after printing it.
Just makes it easier to see bugs causing the analysis stage to
hang / infinite loop.
2016-05-10 12:17:28 +01:00
Richard W.M. Jones
e4edede364 boot-analysis: Make ftrace optional in the timeline.
This allows me to test minimal kernels with ftrace disabled at
compile time.
2016-05-10 12:16:36 +01:00
Richard W.M. Jones
320b0faeaf utils: boot-analysis: Fix minor typo in string. 2016-05-09 12:19:16 +01:00
Richard W.M. Jones
a608865cac Version 1.33.28. v1.33.28 2016-05-09 10:10:36 +01:00
Richard W.M. Jones
999df47160 src/utils.c: Update comment. 2016-05-09 09:21:53 +01:00
Pino Toscano
873560f495 perl: use INT2PTR macro for casting back to guestfs_h * (RHBZ#1150298)
Use the right macro, which should avoid the warnings seen with Perl
headers on some architecture.
2016-05-09 10:04:15 +02:00
Richard W.M. Jones
ea71e00d1a fish: Add internal documentation to several files. 2016-05-08 20:59:36 +01:00
Richard W.M. Jones
13017c852e lib: Rename test-utils -> unit-tests. 2016-05-07 12:46:49 +01:00
Richard W.M. Jones
4910a448f4 lib: Add more unit tests.
Add unit tests for the following internal functions:

 - guestfs_int_getumask
 - guestfs_int_new_command and other src/command.c functions
 - guestfs_int_qemu_escape_param
 - guestfs_int_timeval_diff
 - guestfs_int_match, match1, match2
 - guestfs_int_add_string and other src/stringsbuf.c functions

Because we now need to use a libguestfs handle, we have to link the
unit tests to the library.  But because we also need to access the
internal functions (to test them) we need to link the test statically
to the objects making up the library.  So this requires a small change
to the linking of this test too.
2016-05-07 12:40:50 +01:00
Richard W.M. Jones
c3ff4da088 src/stringsbuf.c: Add internal documentation. 2016-05-07 12:40:50 +01:00
Richard W.M. Jones
479828ccd0 src/test-utils.c: Add internal documentation. 2016-05-07 09:31:05 +01:00
Richard W.M. Jones
0ff9b808d9 src/conn-socket.c: Add internal documentation. 2016-05-07 07:44:47 +01:00
Richard W.M. Jones
b4f440e65a src/whole-file.c: Add internal documentation. 2016-05-07 07:38:24 +01:00
Richard W.M. Jones
cad516cae5 src/command.c: Add documentation markup. 2016-05-05 22:56:43 +01:00
Richard W.M. Jones
3965c9f56e lib: Turn qemu_escape_param into a shared function.
This function appeared twice (identically).  Turn it into a single
shared function.

This also adds some documentation for the two files affected.
2016-05-05 22:38:30 +01:00
Pino Toscano
f3c278474d inspect: check also /etc/hosts for detecting Linux root (RHBZ#1203898)
Use /etc/hosts as alternative of /etc/fstab to detect whether a partition
represents the root of a Linux installation; the latter might not exist
in smaller/special installations like Docker images.
2016-05-05 22:00:47 +01:00
Pino Toscano
48116cfb4e python: use constants instead of raw values
Extend the internal libguestfsmod module with the CREATE values, so
there is no need to hardcode values in GuestFS.__init__.
2016-05-05 22:00:47 +01:00
Pino Toscano
dc02e8985f tools: improve reporting for option errors (RHBZ#1316041)
Improve the error messages produced by C-based tools in case of issues
with the command line options:
- explicitly mention to use -a/-d (and -A/-D in virt-diff)
- when extra arguments are found, mention the correct way to pass
  options to certain command line switches (like --format)
- in virt-inspector, give a cleaner error message when neither -i nor
  any -m is specified

In all the cases, keep the extra notice to use 'TOOL --help' to get more
help with it.
2016-05-05 14:25:28 +02:00
Richard W.M. Jones
cd689c9d3a Version 1.33.27. v1.33.27 2016-05-04 18:20:20 +01:00
Richard W.M. Jones
ff7e755f95 utils: Add README to EXTRA_DIST.
Updates commit 3b581a727c
and commit bbec1b570b.
2016-05-04 18:16:26 +01:00
Pino Toscano
43358290b3 python: PEP 8: miscellaneous coding fixes
python/guestfs.py:136:37: E712 comparison to True should be 'if cond is True:' or 'if cond:'
python/t/tests_helper.py:42:8: E713 test for membership should be 'not in'

No functional changes, as the new versions follow the suggested Python
coding style to do the same things.
2016-05-04 18:56:01 +02:00
Pino Toscano
060b724c49 python: PEP 8: avoid whitespace-only lines in docstrings
Tweak the docstring generation to avoid lines with only indentation
spaces.

No functional changes, only whitespaces removals.
2016-05-04 18:56:01 +02:00
Pino Toscano
845d518b8b python: PEP 8: miscellaneous indentation fixes
Small fixes for few remaining indentation issues.

No behaviour changes.
2016-05-04 18:56:01 +02:00
Pino Toscano
6e34396661 python: PEP 8: avoid too long lines
Reindent Python scripts to make sure lines are not longer than 80
columns.

Regarding autogenerated code (guestfs.py and bindtests.py): add an
helper function to make sure comma-separated lists are wrapped at the
wanted length.

This produces only differences in the indentation of long Python lines,
with no behaviour changes.
2016-05-04 18:56:01 +02:00
Pino Toscano
d8337077e3 python: PEP 8: break compound statements
Avoid compound statements, simply indenting their blocks.

No functional changes.
2016-05-04 18:56:01 +02:00
Pino Toscano
2c7bba6374 python: PEP 8: remove trailing semicolons
Remove extra semicolons at the end of single-statement lines.

No behaviour changes.
2016-05-04 18:56:01 +02:00
Pino Toscano
f85e18f62f python: PEP 8: adapt empty lines
Add or remove empty lines to match the needed ones around
blocks/functions/etc.

This is just formatting, no behaviour changes.
2016-05-04 18:56:01 +02:00
Pino Toscano
6105ee0c71 python: PEP 8: adapt whitespaces in lines
Add (after comma) or remove (before opening round bracket, and around
'=' in arguments) whitespaces according to the PEP 8 specification.

This is just code reformatting, with no behaviour changes; no content
changed beside whitespaces, so "git diff -w" gives an empty diff.
2016-05-04 18:56:01 +02:00
Richard W.M. Jones
839a17ff04 docs: Document CVE-2015-8869 OCaml code gen bug. 2016-05-04 17:48:44 +01:00
Richard W.M. Jones
547662d9f6 customize: Improve the error messages when package manager is unknown or unsupported.
For Windows, we now print:

$ virt-customize -a ./test-data/phony-guests/windows.img --install MSSQL
[   0.0] Examining the guest ...
[  14.2] Setting a random seed
virt-customize: warning: random seed could not be set for this type of
guest
[  14.2] Installing packages: MSSQL
virt-customize: error: cannot use '--install' because no package manager
has been detected for this guest OS.

If this guest OS is a common one with ordinary package management then this
may have been caused by a failure of libguestfs inspection.

For OSes such as Windows that lack package management, this is not
possible.  Try using one of the '--firstboot*' flags instead (described in
the manual).
2016-05-04 17:48:25 +01:00
Richard W.M. Jones
5470f059c2 inspection: Set package manager to "unknown" if parsing major version failed (RHBZ#1332025).
In cases where parsing the release file failed and so we have an
obviously incorrect major version number, don't try to infer the
package manager from the major version number.

In the bug report, parsing the /etc/redhat-release file of a CentOS
7.1 guest failed, so major version was set to 0, and the package
manager was inferred as "up2date".  virt-customize then failed with a
peculiar error:

  virt-customize: sorry, don't know how to use --install with the 'up2date' package manager

Instead this sets it to "unknown" which will cause virt-customize to
fail with:

  virt-customize: --install is not supported for this guest operating system

which is (only very slightly) better.

Problem reported by novegin on IRC.
2016-05-04 14:09:50 +01:00
Richard W.M. Jones
d25e509317 Tag versions with "v<VERSION>" instead of just the version number.
This is the normal convention used for tagging git releases.
2016-05-04 14:09:50 +01:00
Richard W.M. Jones
a2ac6b4897 docs: Fix cross-references in guestfs-security(1).
Fixes commit 15b8b6453d.
2016-05-04 14:09:50 +01:00
Richard W.M. Jones
c585a5835b p2v: Fix misleading string in error message. 2016-05-04 14:09:50 +01:00
Richard W.M. Jones
28634ecc2c docs: Link to correct building instructions from guestfs-hacking(1).
No longer in the README file.
2016-05-03 22:54:14 +01:00
Richard W.M. Jones
d899a53f2e docs: Improve the internal documentation in guestfs-hacking.
Several mostly cosmetic changes.
2016-05-03 22:50:15 +01:00
Richard W.M. Jones
a8114449fa docs: Move internal documentation to guestfs-hacking(1).
All developer documentation should go in guestfs-hacking(1) and the
"internal documentation" (ie. documentation about internal functions
and interfaces) belongs here, not in the coincidentally synonymous
guestfs-internals(1).
2016-05-03 22:50:15 +01:00
Richard W.M. Jones
bbec1b570b utils: Add a README file describing briefly the purpose of this directory.
.. and where to find the real documentation.

Updates commit 3b581a727c.
2016-05-03 22:50:15 +01:00
Richard W.M. Jones
6b48977cb7 Version 1.33.26. 1.33.26 2016-05-03 14:49:59 +01:00
Richard W.M. Jones
b1c945195c po: Use xgettext --from-code=utf-8
Since moving boot-benchmark-range.pl out from under a tests/
subdirectory, it is now being added to po/POTFILES.  This causes the
following error:

/usr/bin/xgettext: Non-ASCII string at utils/boot-benchmark/boot-benchmark-range.pl:205.
                   Please specify the source encoding through --from-code.

Add --from-code parameter as instructed.
2016-05-03 14:39:03 +01:00
Richard W.M. Jones
5bbf8f655d Version 1.33.25. 1.33.25 2016-05-03 14:13:01 +01:00
Pino Toscano
ae3224cf8a customize: remove "core" from description of --update
--update invokes a distribution update, updating all the installed
packages and not just some "core" ones.
2016-05-03 14:25:46 +02:00
Pino Toscano
e77faf7f61 mllib: add "internal" to the description of --{short,long}-options
The Arg module of OCaml does not support hiding options from the --help
output: hence, mark --short-options and --long-options as internal
options, since we need them only for the bash completion scripts.
2016-05-03 14:25:46 +02:00
Richard W.M. Jones
a3bc0e13f6 build: Don't use noinst_MANS.
Automake doesn't run noinst_MANS rules at all, likely a bug.

Use noinst_DATA instead which is always run during the build.
2016-05-03 13:21:34 +01:00
Richard W.M. Jones
98b28b15c6 utils/boot-analysis, utils/boot-benchmark: Add manual pages. 2016-05-03 13:21:34 +01:00
Richard W.M. Jones
3b581a727c utils: Move tests/qemu/ boot-analysis etc tools to new utils top level directory.
Create a new top level directory called 'utils' and move the
following programs there:

  tests/qemu/boot-analysis -> utils/boot-analysis/
  tests/qemu/boot-benchmark -> utils/boot-benchmark/
  tests/qemu/qemu-boot -> utils/qemu-boot/
  tests/qemu/qemu-speed-test -> utils/qemu-speed-test/

Also we only build the boot-analysis program on x86-64 and aarch64,
since it requires custom porting to each architecture.
2016-05-03 13:21:34 +01:00
Richard W.M. Jones
c34995c6b3 launch: Add cryptomgr.notests to the appliance command line.
Save 28ms by not running the crypto self-tests when Linux boots.
2016-05-03 13:21:34 +01:00