1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-10-07 15:34:05 +03:00

Compare commits

..

11 Commits

Author SHA1 Message Date
Ján Tomko
f5ace9c05d api: disallow virConnect*HypervisorCPU on read-only connections
These APIs can be used to execute arbitrary emulators.
Forbid them on read-only connections.

Fixes: CVE-2019-10168
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit bf6c2830b6)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-06-24 09:55:54 +02:00
Ján Tomko
5441f05a42 api: disallow virConnectGetDomainCapabilities on read-only connections
This API can be used to execute arbitrary emulators.
Forbid it on read-only connections.

Fixes: CVE-2019-10167
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 8afa68bac0)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-06-24 09:55:54 +02:00
Ján Tomko
6da721ea37 api: disallow virDomainManagedSaveDefineXML on read-only connections
The virDomainManagedSaveDefineXML can be used to alter the domain's
config used for managedsave or even execute arbitrary emulator binaries.
Forbid it on read-only connections.

Fixes: CVE-2019-10166
Reported-by: Matthias Gerstner <mgerstner@suse.de>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit db0b78457f)
Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-06-24 09:55:54 +02:00
Ján Tomko
3352c8af26 api: disallow virDomainSaveImageGetXMLDesc on read-only connections
The virDomainSaveImageGetXMLDesc API is taking a path parameter,
which can point to any path on the system. This file will then be
read and parsed by libvirtd running with root privileges.

Forbid it on read-only connections.

Fixes: CVE-2019-10161
Reported-by: Matthias Gerstner <mgerstner@suse.de>
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit aed6a032ce)
Signed-off-by: Ján Tomko <jtomko@redhat.com>

Conflicts:
  src/libvirt-domain.c
  src/remote/remote_protocol.x

Upstream commit 12a51f372 which introduced the VIR_DOMAIN_SAVE_IMAGE_XML_SECURE
alias for VIR_DOMAIN_XML_SECURE is not backported.
Just skip the commit since we now disallow the whole API on read-only
connections, regardless of the flag.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
2019-06-24 09:55:53 +02:00
Daniel P. Berrangé
030fdf5725 logging: restrict sockets to mode 0600
The virtlogd daemon's only intended client is the libvirtd daemon. As
such it should never allow clients from other user accounts to connect.
The code already enforces this and drops clients from other UIDs, but
we can get earlier (and thus stronger) protection against DoS by setting
the socket permissions to 0600

Fixes CVE-2019-10132

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit e37bd65f99)
2019-05-21 13:26:36 +01:00
Daniel P. Berrangé
54005b84b0 locking: restrict sockets to mode 0600
The virtlockd daemon's only intended client is the libvirtd daemon. As
such it should never allow clients from other user accounts to connect.
The code already enforces this and drops clients from other UIDs, but
we can get earlier (and thus stronger) protection against DoS by setting
the socket permissions to 0600

Fixes CVE-2019-10132

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit f111e09468)
2019-05-21 13:26:36 +01:00
Daniel P. Berrangé
dfd22fc50f admin: reject clients unless their UID matches the current UID
The admin protocol RPC messages are only intended for use by the user
running the daemon. As such they should not be allowed for any client
UID that does not match the server UID.

Fixes CVE-2019-10132

Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 96f41cd765)
2019-05-21 13:26:36 +01:00
Jiri Denemark
c811c618c1 cpu_map: Define md-clear CPUID bit
CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091

The bit is set when microcode provides the mechanism to invoke a flush
of various exploitable CPU buffers by invoking the VERW instruction.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(cherry picked from commit 538d873571)

Conflicts:
        src/cpu_map/x86_features.xml
            - missing pconfig feature

        tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-guest.xml
        tests/cputestdata/x86_64-cpuid-Xeon-Platinum-8268-host.xml
            - test data missing downstream

        tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
        tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
            - intel-pt feature is missing
	    - stibp feature is missing

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-05-14 19:42:27 +01:00
Jiri Denemark
b15a3c9f9b cputest: Add data for Intel(R) Xeon(R) CPU E3-1225 v5
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
(cherry picked from commit 5cd9db3ac1)

CVE-2018-12126, CVE-2018-12127, CVE-2018-12130, CVE-2019-11091

Conflicts:
	tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml
	tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml
            - intel-pt feature is missing
	    - stibp feature is missing

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-05-14 19:32:01 +01:00
Jiri Denemark
d606ac1130 qemu: Don't cache microcode version
My earlier commit be46f61326 was incomplete. It removed caching of
microcode version in the CPU driver, which means the capabilities XML
will see the correct microcode version. But it is also cached in the
QEMU capabilities cache where it is used to detect whether we need to
reprobe QEMU. By missing the second place, the original commit
be46f61326 made the situation even worse since libvirt would report
correct microcode version while still using the old host CPU model
(visible in domain capabilities XML).

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit 673c62a3b7)

Conflicts:
        src/qemu/qemu_capabilities.c
            - virQEMUCapsCacheLookupByArch refactoring (commits
              7948ad4129 and 1a3de67001) are missing

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2019-05-14 11:28:31 +01:00
Jiri Denemark
33998cdd47 cpu_x86: Do not cache microcode version
The microcode version checks are used to invalidate cached CPU data we
get from QEMU. To minimize /proc/cpuinfo parsing the microcode version
was only read when libvirtd started and cached for the daemon's
lifetime. However, the CPU microcode can change anytime (updating the
microcode package can automatically upload it to the CPU) and we need to
stop caching it to avoid using stale CPU model data.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
(cherry picked from commit be46f61326)
2019-05-14 11:05:51 +01:00
1438 changed files with 26962 additions and 104699 deletions

1
.ctags
View File

@@ -3,4 +3,3 @@
--exclude=*.html
--exclude=*.html.in
--langmap=c:+.h.in
--c-kinds=+p

Submodule .gnulib updated: 8089c00979...68df637b5f

View File

@@ -46,7 +46,7 @@ script:
-e VIR_TEST_DEBUG="$VIR_TEST_DEBUG"
-e MINGW="$MINGW"
-e DISTCHECK_CONFIGURE_FLAGS="$DISTCHECK_CONFIGURE_FLAGS"
"quay.io/libvirt/buildenv-$IMAGE:master"
"libvirt/buildenv-$IMAGE"
/bin/sh -xc "$DOCKER_CMD"
git:

View File

@@ -1,10 +1,10 @@
#! /bin/sh
# Print a version string.
scriptversion=2019-01-04.17; # UTC
scriptversion=2018-07-01.02; # UTC
# Bootstrap this package from checked-out sources.
# Copyright (C) 2003-2019 Free Software Foundation, Inc.
# Copyright (C) 2003-2018 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -142,9 +142,6 @@ die() { warn_ "$@"; exit 1; }
# Configuration.
# Name of the Makefile.am
gnulib_mk=gnulib.mk
# List of gnulib modules needed.
gnulib_modules=
@@ -162,11 +159,18 @@ bootstrap_post_import_hook() { :; }
# Override it via your own definition in bootstrap.conf.
bootstrap_epilogue() { :; }
# The command to download all .po files for a specified domain into a
# specified directory. Fill in the first %s with the destination
# directory and the second with the domain name.
# The command to download all .po files for a specified domain into
# a specified directory. Fill in the first %s is the domain name, and
# the second with the destination directory. Use rsync's -L and -r
# options because the latest/%s directory and the .po files within are
# all symlinks.
po_download_command_format=\
"wget --mirror --level=1 -nd -q -A.po -P '%s' \
"rsync --delete --exclude '*.s1' -Lrtvz \
'translationproject.org::tp/latest/%s/' '%s'"
# Fallback for downloading .po files (if rsync fails).
po_download_command_format2=\
"wget --mirror -nd -q -np -A.po -P '%s' \
https://translationproject.org/latest/%s/"
# Prefer a non-empty tarname (4th argument of AC_INIT if given), else
@@ -734,7 +738,10 @@ download_po_files() {
subdir=$1
domain=$2
echo "$me: getting translations into $subdir for $domain..."
cmd=$(printf "$po_download_command_format" "$subdir" "$domain")
cmd=$(printf "$po_download_command_format" "$domain" "$subdir")
eval "$cmd" && return
# Fallback to HTTPS.
cmd=$(printf "$po_download_command_format2" "$subdir" "$domain")
eval "$cmd"
}
@@ -963,16 +970,6 @@ fi
bootstrap_post_import_hook \
|| die "bootstrap_post_import_hook failed"
# Don't proceed if there are uninitialized submodules. In particular,
# the next step will remove dangling links, which might be links into
# uninitialized submodules.
#
# Uninitialized submodules are listed with an initial dash.
if $use_git && git submodule | grep '^-' >/dev/null; then
die "some git submodules are not initialized. " \
"Run 'git submodule init' and bootstrap again."
fi
# Remove any dangling symlink matching "*.m4" or "*.[ch]" in some
# gnulib-populated directories. Such .m4 files would cause aclocal to fail.
# The following requires GNU find 4.2.3 or newer. Considering the usual

View File

@@ -16,6 +16,9 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
#
# Authors:
# Daniel P. Berrange <berrange@redhat.com>
use strict;
use warnings;

View File

@@ -16,6 +16,9 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
#
# Authors:
# Daniel P. Berrange <berrange@redhat.com>
use strict;
use warnings;
@@ -42,6 +45,9 @@ foreach my $file (@ARGV) {
# Kill any quoted strings
$data =~ s,"(?:[^\\\"]|\\.)*","XXX",g;
# Kill any C++ style comments
$data =~ s,//.*$,//,;
next if $data =~ /^#/;
# Kill contents of multi-line comments

View File

@@ -1,156 +0,0 @@
#!/usr/bin/perl
#
# Validate that header files follow a standard layout:
#
# /*
# ...copyright header...
# */
# <one blank line>
# #ifndef SYMBOL
# # define SYMBOL
# ....content....
# #endif /* SYMBOL */
#
# For any file ending priv.h, before the #ifndef
# We will have a further section
#
# #ifndef SYMBOL_ALLOW
# # error ....
# #endif /* SYMBOL_ALLOW */
# <one blank line>
use strict;
use warnings;
my $STATE_COPYRIGHT_COMMENT = 0;
my $STATE_COPYRIGHT_BLANK = 1;
my $STATE_PRIV_START = 2;
my $STATE_PRIV_ERROR = 3;
my $STATE_PRIV_END = 4;
my $STATE_PRIV_BLANK = 5;
my $STATE_GUARD_START = 6;
my $STATE_GUARD_DEFINE = 7;
my $STATE_GUARD_END = 8;
my $STATE_EOF = 9;
my $file = " ";
my $ret = 0;
my $ifdef = "";
my $ifdefpriv = "";
my $state = $STATE_EOF;
my $mistake = 0;
sub mistake {
my $msg = shift;
warn $msg;
$mistake = 1;
$ret = 1;
}
while (<>) {
if (not $file eq $ARGV) {
if ($state == $STATE_COPYRIGHT_COMMENT) {
&mistake("$file: missing copyright comment");
} elsif ($state == $STATE_COPYRIGHT_BLANK) {
&mistake("$file: missing blank line after copyright header");
} elsif ($state == $STATE_PRIV_START) {
&mistake("$file: missing '#ifndef $ifdefpriv'");
} elsif ($state == $STATE_PRIV_ERROR) {
&mistake("$file: missing '# error ...priv allow...'");
} elsif ($state == $STATE_PRIV_END) {
&mistake("$file: missing '#endif /* $ifdefpriv */'");
} elsif ($state == $STATE_PRIV_BLANK) {
&mistake("$file: missing blank line after priv header check");
} elsif ($state == $STATE_GUARD_START) {
&mistake("$file: missing '#ifndef $ifdef'");
} elsif ($state == $STATE_GUARD_DEFINE) {
&mistake("$file: missing '# define $ifdef'");
} elsif ($state == $STATE_GUARD_END) {
&mistake("$file: missing '#endif /* $ifdef */'");
}
$ifdef = uc $ARGV;
$ifdef =~ s,.*/,,;
$ifdef =~ s,[^A-Z0-9],_,g;
$ifdef =~ s,__+,_,g;
unless ($ifdef =~ /^LIBVIRT_/ && $ARGV !~ /libvirt_internal.h/) {
$ifdef = "LIBVIRT_" . $ifdef;
}
$ifdefpriv = $ifdef . "_ALLOW";
$file = $ARGV;
$state = $STATE_COPYRIGHT_COMMENT;
$mistake = 0;
}
if ($mistake ||
$ARGV =~ /config-post\.h$/ ||
$ARGV =~ /vbox_(CAPI|XPCOM)/) {
$state = $STATE_EOF;
next;
}
if ($state == $STATE_COPYRIGHT_COMMENT) {
if (m,\*/,) {
$state = $STATE_COPYRIGHT_BLANK;
}
} elsif ($state == $STATE_COPYRIGHT_BLANK) {
if (! /^$/) {
&mistake("$file: missing blank line after copyright header");
}
if ($ARGV =~ /priv\.h$/) {
$state = $STATE_PRIV_START;
} else {
$state = $STATE_GUARD_START;
}
} elsif ($state == $STATE_PRIV_START) {
if (/^$/) {
&mistake("$file: too many blank lines after coyright header");
} elsif (/#ifndef $ifdefpriv$/) {
$state = $STATE_PRIV_ERROR;
} else {
&mistake("$file: missing '#ifndef $ifdefpriv'");
}
} elsif ($state == $STATE_PRIV_ERROR) {
if (/# error ".*"$/) {
$state = $STATE_PRIV_END;
} else {
&mistake("$file: missing '#error ...priv allow...'");
}
} elsif ($state == $STATE_PRIV_END) {
if (m,#endif /\* $ifdefpriv \*/,) {
$state = $STATE_PRIV_BLANK;
} else {
&mistake("$file: missing '#endif /* $ifdefpriv */'");
}
} elsif ($state == $STATE_PRIV_BLANK) {
if (! /^$/) {
&mistake("$file: missing blank line after priv guard");
}
$state = $STATE_GUARD_START;
} elsif ($state == $STATE_GUARD_START) {
if (/^$/) {
&mistake("$file: too many blank lines after coyright header");
} elsif (/#ifndef $ifdef$/) {
$state = $STATE_GUARD_DEFINE;
} else {
&mistake("$file: missing '#ifndef $ifdef'");
}
} elsif ($state == $STATE_GUARD_DEFINE) {
if (/# define $ifdef$/) {
$state = $STATE_GUARD_END;
} else {
&mistake("$file: missing '# define $ifdef'");
}
} elsif ($state == $STATE_GUARD_END) {
if (m,#endif /\* $ifdef \*/$,) {
$state = $STATE_EOF;
}
} elsif ($state == $STATE_EOF) {
die "$file: unexpected content after '#endif /* $ifdef */'";
} else {
die "$file: unexpected state $state";
}
}
exit $ret;

120
cfg.mk
View File

@@ -1,5 +1,5 @@
# Customize Makefile.maint. -*- makefile -*-
# Copyright (C) 2008-2019 Red Hat, Inc.
# Copyright (C) 2008-2015 Red Hat, Inc.
# Copyright (C) 2003-2008 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
@@ -305,7 +305,7 @@ sc_flags_usage:
$(srcdir)/include/libvirt/libvirt-qemu.h \
$(srcdir)/include/libvirt/libvirt-lxc.h \
$(srcdir)/include/libvirt/libvirt-admin.h \
| $(GREP) -c '\(long\|unsigned\) flags')" != 4 && \
| grep -c '\(long\|unsigned\) flags')" != 4 && \
{ echo '$(ME): new API should use "unsigned int flags"' 1>&2; \
exit 1; } || :
@prohibit=' flags ATTRIBUTE_UNUSED' \
@@ -472,7 +472,6 @@ sc_prohibit_canonicalize_file_name:
# Insist on correct types for [pug]id.
sc_correct_id_types:
@prohibit='\<(int|long) *[pug]id\>' \
exclude='exempt from syntax-check' \
halt='use pid_t for pid, uid_t for uid, gid_t for gid' \
$(_sc_search_regexp)
@@ -639,12 +638,10 @@ sc_libvirt_unmarked_diagnostics:
exclude='_\(' \
halt='found unmarked diagnostic(s)' \
$(_sc_search_regexp)
@{ $(VC_LIST_EXCEPT) | xargs \
$(GREP) -nE '\<$(func_re) *\(.*;$$' /dev/null; \
$(VC_LIST_EXCEPT) | xargs \
$(GREP) -A1 -nE '\<$(func_re) *\(.*,$$' /dev/null; } \
| $(SED) -E 's/_\("([^\"]|\\.)+"//;s/"%s"//' \
| $(GREP) '"' && \
@{ grep -nE '\<$(func_re) *\(.*;$$' $$($(VC_LIST_EXCEPT)); \
grep -A1 -nE '\<$(func_re) *\(.*,$$' $$($(VC_LIST_EXCEPT)); } \
| $(SED) 's/_("\([^\"]\|\\.\)\+"//;s/[ ]"%s"//' \
| grep '[ ]"' && \
{ echo '$(ME): found unmarked diagnostic(s)' 1>&2; \
exit 1; } || :
@@ -656,9 +653,9 @@ sc_libvirt_unmarked_diagnostics:
# there are functions to which this one applies but that do not get marked
# diagnostics.
sc_prohibit_newline_at_end_of_diagnostic:
@$(VC_LIST_EXCEPT) | xargs $(GREP) -A2 -nE \
'\<$(func_re) *\(' /dev/null \
| $(GREP) '\\n"' \
@grep -A2 -nE \
'\<$(func_re) *\(' $$($(VC_LIST_EXCEPT)) \
| grep '\\n"' \
&& { echo '$(ME): newline at end of message(s)' 1>&2; \
exit 1; } || :
@@ -666,14 +663,12 @@ sc_prohibit_newline_at_end_of_diagnostic:
# allow VIR_ERROR to do this, and ignore functions that take a single
# string rather than a format argument.
sc_prohibit_diagnostic_without_format:
@{ $(VC_LIST_EXCEPT) | xargs \
$(GREP) -nE '\<$(func_re) *\(.*;$$' /dev/null; \
$(VC_LIST_EXCEPT) | xargs \
$(GREP) -A2 -nE '\<$(func_re) *\(.*,$$' /dev/null; } \
@{ grep -nE '\<$(func_re) *\(.*;$$' $$($(VC_LIST_EXCEPT)); \
grep -A2 -nE '\<$(func_re) *\(.*,$$' $$($(VC_LIST_EXCEPT)); } \
| $(SED) -rn -e ':l; /[,"]$$/ {N;b l;}' \
-e '/(xenapiSessionErrorHandler|vah_(error|warning))/d' \
-e '/\<$(func_re) *\([^"]*"([^%"]|"\n[^"]*")*"[,)]/p' \
| $(GREP) -vE 'VIR_ERROR' && \
| grep -vE 'VIR_ERROR' && \
{ echo '$(ME): found diagnostic without %' 1>&2; \
exit 1; } || :
@@ -691,16 +686,16 @@ sc_prohibit_useless_translation:
# When splitting a diagnostic across lines, ensure that there is a space
# or \n on one side of the split.
sc_require_whitespace_in_translation:
@$(VC_LIST_EXCEPT) | xargs $(GREP) -n -A1 '"$$' /dev/null \
@grep -n -A1 '"$$' $$($(VC_LIST_EXCEPT)) \
| $(SED) -ne ':l; /"$$/ {N;b l;}; s/"\n[^"]*"/""/g; s/\\n/ /g' \
-e '/_(.*[^\ ]""[^\ ]/p' | $(GREP) . && \
-e '/_(.*[^\ ]""[^\ ]/p' | grep . && \
{ echo '$(ME): missing whitespace at line split' 1>&2; \
exit 1; } || :
# Enforce recommended preprocessor indentation style.
sc_preprocessor_indentation:
@if cppi --version >/dev/null 2>&1; then \
$(VC_LIST_EXCEPT) | $(GREP) -E '\.[ch](\.in)?$$' | xargs cppi -a -c \
$(VC_LIST_EXCEPT) | grep -E '\.[ch](\.in)?$$' | xargs cppi -a -c \
|| { echo '$(ME): incorrect preprocessor indentation' 1>&2; \
exit 1; }; \
else \
@@ -711,13 +706,13 @@ sc_preprocessor_indentation:
# (comment-only) C file that mirrors the same layout as the spec file.
sc_spec_indentation:
@if cppi --version >/dev/null 2>&1; then \
for f in $$($(VC_LIST_EXCEPT) | $(GREP) '\.spec\.in$$'); do \
for f in $$($(VC_LIST_EXCEPT) | grep '\.spec\.in$$'); do \
$(SED) -e 's|#|// #|; s|%ifn*\(arch\)* |#if a // |' \
-e 's/%\(else\|endif\|define\)/#\1/' \
-e 's/^\( *\)\1\1\1#/#\1/' \
-e 's|^\( *[^#/ ]\)|// \1|; s|^\( */[^/]\)|// \1|' $$f \
| cppi -a -c 2>&1 | $(SED) "s|standard input|$$f|"; \
done | { if $(GREP) . >&2; then false; else :; fi; } \
done | { if grep . >&2; then false; else :; fi; } \
|| { echo '$(ME): incorrect preprocessor indentation' 1>&2; \
exit 1; }; \
else \
@@ -807,12 +802,11 @@ sc_prohibit_cross_inclusion:
# When converting an enum to a string, make sure that we track any new
# elements added to the enum by using a _LAST marker.
sc_require_enum_last_marker:
@$(VC_LIST_EXCEPT) | xargs \
$(GREP) -A1 -nE '^[^#]*VIR_ENUM_IMPL *\(' /dev/null \
@grep -A1 -nE '^[^#]*VIR_ENUM_IMPL *\(' $$($(VC_LIST_EXCEPT)) \
| $(SED) -ne '/VIR_ENUM_IMPL[^,]*,$$/N' \
-e '/VIR_ENUM_IMPL[^,]*,[^,]*[^_,][^L,][^A,][^S,][^T,],/p' \
-e '/VIR_ENUM_IMPL[^,]*,[^,]\{0,4\},/p' \
| $(GREP) . && \
| grep . && \
{ echo '$(ME): enum impl needs to use _LAST marker' 1>&2; \
exit 1; } || :
@@ -871,7 +865,8 @@ sc_prohibit_atoi:
$(_sc_search_regexp)
sc_prohibit_wrong_filename_in_comment:
@$(VC_LIST_EXCEPT) | $(GREP) '\.[ch]$$' | xargs awk 'BEGIN { \
@fail=0; \
awk 'BEGIN { \
fail=0; \
} FNR < 3 { \
n=match($$0, /[[:space:]][^[:space:]]*[.][ch][[:space:]:]/); \
@@ -887,8 +882,11 @@ sc_prohibit_wrong_filename_in_comment:
if (fail == 1) { \
exit 1; \
} \
}' || { echo '$(ME): The file name in comments must match the' \
'actual file name' 1>&2; exit 1; }
}' $$($(VC_LIST_EXCEPT) | grep '\.[ch]$$') || fail=1; \
if test $$fail -eq 1; then \
{ echo '$(ME): The file name in comments must match the' \
'actual file name' 1>&2; exit 1; } \
fi;
sc_prohibit_virConnectOpen_in_virsh:
@prohibit='\bvirConnectOpen[a-zA-Z]* *\(' \
@@ -919,21 +917,22 @@ sc_require_if_else_matching_braces:
$(_sc_search_regexp)
sc_curly_braces_style:
@if $(VC_LIST_EXCEPT) | $(GREP) '\.[ch]$$' | xargs $(GREP) -nHP \
@files=$$($(VC_LIST_EXCEPT) | grep '\.[ch]$$'); \
if $(GREP) -nHP \
'^\s*(?!([a-zA-Z_]*for_?each[a-zA-Z_]*) ?\()([_a-zA-Z0-9]+( [_a-zA-Z0-9]+)* ?\()?(\*?[_a-zA-Z0-9]+(,? \*?[_a-zA-Z0-9\[\]]+)+|void)\) ?\{' \
/dev/null; then \
$$files; then \
echo '$(ME): Non-K&R style used for curly braces around' \
'function body' 1>&2; exit 1; \
fi; \
if $(VC_LIST_EXCEPT) | $(GREP) '\.[ch]$$' | xargs \
$(GREP) -A1 -En ' ((if|for|while|switch) \(|(else|do)\b)[^{]*$$' \
/dev/null | $(GREP) '^[^ ]*- *{'; then \
if $(GREP) -A1 -En ' ((if|for|while|switch) \(|(else|do)\b)[^{]*$$'\
$$files | $(GREP) '^[^ ]*- *{'; then \
echo '$(ME): Use hanging braces for compound statements' 1>&2; exit 1; \
fi
sc_prohibit_windows_special_chars_in_filename:
@$(VC_LIST_EXCEPT) | $(GREP) '[:*?"<>|]' && \
{ echo '$(ME): Windows special chars in filename not allowed' 1>&2; echo exit 1; } || :
@files=$$($(VC_LIST_EXCEPT) | grep '[:*?"<>|]'); \
test -n "$$files" && { echo '$(ME): Windows special chars' \
'in filename not allowed:' 1>&2; echo $$files 1>&2; exit 1; } || :
sc_prohibit_mixed_case_abbreviations:
@prohibit='Pci|Usb|Scsi' \
@@ -949,11 +948,11 @@ sc_require_locale_h:
$(_sc_search_regexp)
sc_prohibit_empty_first_line:
@$(VC_LIST_EXCEPT) | xargs awk 'BEGIN { fail=0; } \
@awk 'BEGIN { fail=0; } \
FNR == 1 { if ($$0 == "") { print FILENAME ":1:"; fail=1; } } \
END { if (fail == 1) { \
print "$(ME): Prohibited empty first line" > "/dev/stderr"; \
} exit fail; }'
} exit fail; }' $$($(VC_LIST_EXCEPT));
sc_prohibit_paren_brace:
@prohibit='\)\{$$' \
@@ -996,9 +995,8 @@ sc_prohibit_sysconf_pagesize:
$(_sc_search_regexp)
sc_prohibit_virSecurity:
@$(VC_LIST_EXCEPT) | $(GREP) 'src/qemu/' | \
$(GREP) -v 'src/qemu/qemu_security' | \
xargs $(GREP) -Pn 'virSecurityManager(?!Ptr)' /dev/null && \
@grep -Pn 'virSecurityManager(?!Ptr)' $$($(VC_LIST_EXCEPT) | grep 'src/qemu/' | \
grep -v 'src/qemu/qemu_security') && \
{ echo '$(ME): prefer qemuSecurity wrappers' 1>&2; exit 1; } || :
sc_prohibit_pthread_create:
@@ -1051,11 +1049,6 @@ sc_prohibit_http_urls:
halt='Links must use https:// protocol' \
$(_sc_search_regexp)
sc_prohibit_author:
@prohibit="(\*|#)\s*(A|a)uthors?:" \
halt="Author: statements are prohibited in source comments" \
$(_sc_search_regexp)
# Alignment is usually achieved through spaces (at least two of them)
# or tabs (at least one of them) right before the trailing backslash
sc_prohibit_backslash_alignment:
@@ -1067,10 +1060,10 @@ sc_prohibit_backslash_alignment:
# Some syntax rules pertaining to the usage of cleanup macros
# implementing GNU C's cleanup attribute
# Rule to ensure that variables declared using a cleanup macro are
# Rule to ensure that varibales declared using a cleanup macro are
# always initialized.
sc_require_attribute_cleanup_initialization:
@prohibit='VIR_AUTO((FREE|PTR)\(.+\)|CLOSE) *[^=]+;' \
@prohibit='VIR_AUTO(FREE|PTR)\(.+\) *[^=]+;' \
in_vc_files='\.[chx]$$' \
halt='variable declared with a cleanup macro must be initialized' \
$(_sc_search_regexp)
@@ -1123,34 +1116,29 @@ _autogen_error:
ifneq ($(_gl-Makefile),)
syntax-check: spacing-check test-wrap-argv \
prohibit-duplicate-header mock-noinline group-qemu-caps \
header-ifdef
prohibit-duplicate-header mock-noinline group-qemu-caps
endif
# Don't include duplicate header in the source (either *.c or *.h)
prohibit-duplicate-header:
$(AM_V_GEN)$(VC_LIST_EXCEPT) | $(GREP) '\.[chx]$$' | xargs \
$(PERL) -W $(top_srcdir)/build-aux/prohibit-duplicate-header.pl
$(AM_V_GEN)files=$$($(VC_LIST_EXCEPT) | grep '\.[chx]$$'); \
$(PERL) -W $(top_srcdir)/build-aux/prohibit-duplicate-header.pl $$files
spacing-check:
$(AM_V_GEN)$(VC_LIST) | $(GREP) '\.c$$' | xargs \
$(PERL) $(top_srcdir)/build-aux/check-spacing.pl || \
$(AM_V_GEN)files=`$(VC_LIST) | grep '\.c$$'`; \
$(PERL) $(top_srcdir)/build-aux/check-spacing.pl $$files || \
{ echo '$(ME): incorrect formatting' 1>&2; exit 1; }
mock-noinline:
$(AM_V_GEN)$(VC_LIST) | $(GREP) '\.[ch]$$' | xargs \
$(PERL) $(top_srcdir)/build-aux/mock-noinline.pl
header-ifdef:
$(AM_V_GEN)$(VC_LIST) | $(GREP) '\.[h]$$' | xargs \
$(PERL) $(top_srcdir)/build-aux/header-ifdef.pl
$(AM_V_GEN)files=`$(VC_LIST) | grep '\.[ch]$$'`; \
$(PERL) $(top_srcdir)/build-aux/mock-noinline.pl $$files
test-wrap-argv:
$(AM_V_GEN)$(VC_LIST) | $(GREP) -E '\.(ldargs|args)' | xargs \
$(PERL) $(top_srcdir)/tests/test-wrap-argv.pl --check
$(AM_V_GEN)files=`$(VC_LIST) | grep -E '\.(ldargs|args)'`; \
$(PERL) $(top_srcdir)/tests/test-wrap-argv.pl --check $$files
group-qemu-caps:
$(AM_V_GEN)$(PERL) $(top_srcdir)/tests/group-qemu-caps.pl --check $(top_srcdir)/
$(PERL) $(top_srcdir)/tests/group-qemu-caps.pl --check $(top_srcdir)/
# sc_po_check can fail if generated files are not built first
sc_po_check: \
@@ -1189,7 +1177,7 @@ exclude_file_name_regexp--sc_copyright_usage = \
^COPYING(|\.LESSER)$$
exclude_file_name_regexp--sc_flags_usage = \
^(cfg\.mk|docs/|src/util/virnetdevtap\.c$$|tests/((vir(cgroup|pci|test|usb)|nss|qemuxml2argv|qemusecurity)mock|virfilewrapper)\.c$$)
^(cfg\.mk|docs/|src/util/virnetdevtap\.c$$|tests/((vir(cgroup|pci|test|usb)|nss|qemuxml2argv)mock|virfilewrapper)\.c$$)
exclude_file_name_regexp--sc_libvirt_unmarked_diagnostics = \
^(src/rpc/gendispatch\.pl$$|tests/)
@@ -1212,7 +1200,7 @@ exclude_file_name_regexp--sc_prohibit_strdup = \
^(docs/|examples/|src/util/virstring\.c|tests/vir(netserverclient|cgroup)mock.c|tests/commandhelper\.c$$)
exclude_file_name_regexp--sc_prohibit_close = \
(\.p[yl]$$|\.spec\.in$$|^docs/|^(src/util/virfile\.c|src/libvirt-stream\.c|tests/(vir.+mock\.c|commandhelper\.c|qemusecuritymock\.c))$$)
(\.p[yl]$$|\.spec\.in$$|^docs/|^(src/util/virfile\.c|src/libvirt-stream\.c|tests/vir.+mock\.c|tests/commandhelper\.c)$$)
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
(^tests/(virhostcpu|virpcitest)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)
@@ -1233,13 +1221,13 @@ exclude_file_name_regexp--sc_prohibit_newline_at_end_of_diagnostic = \
^src/rpc/gendispatch\.pl$$
exclude_file_name_regexp--sc_prohibit_nonreentrant = \
^((po|tests|examples/admin)/|docs/.*(py|js|html\.in)|run.in$$|tools/wireshark/util/genxdrstub\.pl$$)
^((po|tests)/|docs/.*(py|js|html\.in)|run.in$$|tools/wireshark/util/genxdrstub\.pl$$)
exclude_file_name_regexp--sc_prohibit_select = \
^cfg\.mk$$
exclude_file_name_regexp--sc_prohibit_canonicalize_file_name = \
^(cfg\.mk|tests/virfilemock\.c)$$
^cfg\.mk$$
exclude_file_name_regexp--sc_prohibit_raw_allocation = \
^(docs/hacking\.html\.in|src/util/viralloc\.[ch]|examples/.*|tests/(securityselinuxhelper|(vircgroup|nss)mock|commandhelper)\.c|tools/wireshark/src/packet-libvirt\.c)$$

View File

@@ -19,7 +19,7 @@
/*
* Since virt-login-shell will be setuid, we must do everything
* we can to avoid linking to other libraries. Many of them do
* unsafe things in functions marked __attribute__((constructor)).
* unsafe things in functions marked __atttribute__((constructor)).
* The only way to avoid such deps is to re-compile the
* functions with the code in question disabled, and for that we
* must override the main config.h rules. Hence this file :-(

View File

@@ -16,7 +16,7 @@ dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
AC_INIT([libvirt], [5.0.0], [libvir-list@redhat.com], [], [https://libvirt.org])
AC_INIT([libvirt], [4.7.0], [libvir-list@redhat.com], [], [https://libvirt.org])
AC_CONFIG_SRCDIR([src/libvirt.c])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_HEADERS([config.h])
@@ -225,6 +225,7 @@ if test "$with_libvirtd" = "no" ; then
with_qemu=no
with_lxc=no
with_libxl=no
with_uml=no
with_vbox=no
fi
@@ -321,49 +322,17 @@ AC_CHECK_SIZEOF([long])
dnl Availability of various common functions (non-fatal if missing),
dnl and various less common threadsafe functions
AC_CHECK_FUNCS_ONCE([\
cfmakeraw \
fallocate \
geteuid \
getgid \
getifaddrs \
getmntent_r \
getpwuid_r \
getrlimit \
getuid \
if_indextoname \
mmap \
newlocale \
posix_fallocate \
posix_memalign \
prlimit \
sched_getaffinity \
sched_setscheduler \
setgroups \
setns \
setrlimit \
symlink \
sysctlbyname \
unshare \
])
AC_CHECK_FUNCS_ONCE([cfmakeraw fallocate geteuid getgid getgrnam_r \
getmntent_r getpwuid_r getrlimit getuid if_indextoname kill mmap \
newlocale posix_fallocate posix_memalign prlimit regexec \
sched_getaffinity setgroups setns setrlimit symlink sysctlbyname \
getifaddrs sched_setscheduler unshare])
dnl Availability of various common headers (non-fatal if missing).
AC_CHECK_HEADERS([\
ifaddrs.h \
libtasn1.h \
linux/magic.h \
mntent.h \
net/ethernet.h \
netinet/tcp.h \
pwd.h \
stdarg.h \
syslog.h \
sys/mount.h \
sys/syscall.h \
sys/sysctl.h \
sys/ucred.h \
sys/un.h \
])
AC_CHECK_HEADERS([pwd.h regex.h sys/un.h \
sys/poll.h syslog.h mntent.h net/ethernet.h linux/magic.h \
sys/un.h sys/syscall.h sys/sysctl.h netinet/tcp.h ifaddrs.h \
libtasn1.h sys/ucred.h sys/mount.h stdarg.h])
dnl Check whether endian provides handy macros.
AC_CHECK_DECLS([htole64], [], [], [[#include <endian.h>]])
AC_CHECK_FUNCS([stat stat64 __xstat __xstat64 lstat lstat64 __lxstat __lxstat64])
@@ -444,6 +413,7 @@ LIBVIRT_DRIVER_ARG_VBOX
LIBVIRT_DRIVER_ARG_LXC
LIBVIRT_DRIVER_ARG_VZ
LIBVIRT_DRIVER_ARG_BHYVE
LIBVIRT_DRIVER_ARG_UML
LIBVIRT_DRIVER_ARG_ESX
LIBVIRT_DRIVER_ARG_HYPERV
LIBVIRT_DRIVER_ARG_TEST
@@ -462,6 +432,7 @@ LIBVIRT_DRIVER_CHECK_VBOX
LIBVIRT_DRIVER_CHECK_LXC
LIBVIRT_DRIVER_CHECK_VZ
LIBVIRT_DRIVER_CHECK_BHYVE
LIBVIRT_DRIVER_CHECK_UML
LIBVIRT_DRIVER_CHECK_ESX
LIBVIRT_DRIVER_CHECK_HYPERV
LIBVIRT_DRIVER_CHECK_TEST
@@ -944,6 +915,7 @@ AC_MSG_NOTICE([])
AC_MSG_NOTICE([Drivers])
AC_MSG_NOTICE([])
LIBVIRT_DRIVER_RESULT_QEMU
LIBVIRT_DRIVER_RESULT_UML
LIBVIRT_DRIVER_RESULT_OPENVZ
LIBVIRT_DRIVER_RESULT_VMWARE
LIBVIRT_DRIVER_RESULT_VBOX

View File

@@ -287,119 +287,6 @@
</tbody>
</table>
<h2><a id="connect_driver">Hypervisor Driver connect_driver</a></h2>
<p>
The <code>connect_driver</code> parameter describes the
client's <a href="remote.html">remote Connection Driver</a>
name based on the <a href="uri.html">URI</a> used for the
connection.
</p>
<p>
<span class="since">Since 4.1.0</span>, when calling an API
outside the scope of the primary connection driver, the
primary driver will attempt to open a secondary connection
to the specific API driver in order to process the API. For
example, when hypervisor domain processing needs to make an
API call within the storage driver or the network filter driver
an attempt to open a connection to the "storage" or "nwfilter"
driver will be made. Similarly, a "storage" primary connection
may need to create a connection to the "secret" driver in order
to process secrets for the API. If successful, then calls to
those API's will occur in the <code>connect_driver</code> context
of the secondary connection driver rather than in the context of
the primary driver. This affects the <code>connect_driver</code>
returned from rule generation from the <code>action.loookup</code>
function. The following table provides a list of the various
connection drivers and the <code>connect_driver</code> name
used by each regardless of primary or secondary connection.
The access denied error message from libvirt will list the
connection driver by name that denied the access.
</p>
<h3><a id="object_connect_driver">Connection Driver Name</a></h3>
<table class="acl">
<thead>
<tr>
<th>Connection Driver</th>
<th><code>connect_driver</code> name</th>
</tr>
</thead>
<tbody>
<tr>
<td>bhyve</td>
<td>bhyve</td>
</tr>
<tr>
<td>esx</td>
<td>ESX</td>
</tr>
<tr>
<td>hyperv</td>
<td>Hyper-V</td>
</tr>
<tr>
<td>interface</td>
<td>interface</td>
</tr>
<tr>
<td>libxl</td>
<td>xenlight</td>
</tr>
<tr>
<td>lxc</td>
<td>LXC</td>
</tr>
<tr>
<td>network</td>
<td>network</td>
</tr>
<tr>
<td>nodedev</td>
<td>nodedev</td>
</tr>
<tr>
<td>nwfilter</td>
<td>NWFilter</td>
</tr>
<tr>
<td>openvz</td>
<td>OPENVZ</td>
</tr>
<tr>
<td>phyp</td>
<td>PHYP</td>
</tr>
<tr>
<td>qemu</td>
<td>QEMU</td>
</tr>
<tr>
<td>secret</td>
<td>secret</td>
</tr>
<tr>
<td>storage</td>
<td>storage</td>
</tr>
<tr>
<td>vbox</td>
<td>VBOX</td>
</tr>
<tr>
<td>vmware</td>
<td>VMWARE</td>
</tr>
<tr>
<td>vz</td>
<td>vz</td>
</tr>
<tr>
<td>xenapi</td>
<td>XenAPI</td>
</tr>
</tbody>
</table>
<h2><a id="user">User identity attributes</a></h2>

View File

@@ -1003,8 +1003,6 @@ class CParser:
# skip hidden macros
if name in hidden_macros:
return token
if name[-2:] == "_H" or name[-8:] == "_H_ALLOW":
return token
strValue = None
if len(lst) == 1 and lst[0][0] == '"' and lst[0][-1] == '"':
@@ -2272,7 +2270,7 @@ class docBuilder:
output.write(" <file name='%s'>\n" % (module))
dict = self.headers[file]
if dict.info is not None:
for data in ('Summary', 'Description'):
for data in ('Summary', 'Description', 'Author'):
try:
output.write(" <%s>%s</%s>\n" % (
data.lower(),

View File

@@ -72,6 +72,7 @@
<xsl:if test="deprecated">
<p> WARNING: this module is deprecated !</p>
</xsl:if>
<p>Author(s): <xsl:value-of select="author"/></p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">

View File

@@ -29,6 +29,7 @@
<li><strong><a href="drvopenvz.html">OpenVZ</a></strong></li>
<li><strong><a href="drvqemu.html">QEMU</a></strong></li>
<li><strong><a href="drvtest.html">Test</a></strong> - Used for testing</li>
<li><strong><a href="drvuml.html">UML</a></strong> - User Mode Linux</li>
<li><strong><a href="drvvbox.html">VirtualBox</a></strong></li>
<li><strong><a href="drvesx.html">VMware ESX</a></strong></li>
<li><strong><a href="drvvmware.html">VMware Workstation/Player</a></strong></li>

View File

@@ -8,7 +8,7 @@
<p>
The libvirt KVM/QEMU driver can manage any QEMU emulator from
version 1.5.0 or later.
version 0.12.0 or later.
</p>
<h2><a id="project">Project Links</a></h2>

93
docs/drvuml.html.in Normal file
View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>User Mode Linux driver</h1>
<p>
The UML driver for libvirt allows use and management of paravirtualized
guests built for User Mode Linux. UML requires no special support in
the host kernel, so can be used by any user of any linux system, provided
they have enough free RAM for their guest's needs, though there are
certain restrictions on network connectivity unless the administrator
has pre-created TAP devices.
</p>
<h2><a id="project">Project Links</a></h2>
<ul>
<li>
The <a href="http://user-mode-linux.sourceforge.net/">User
Mode Linux</a> paravirtualized kernel
</li>
</ul>
<h2>Connections to UML driver</h2>
<p>
The libvirt UML driver follows the QEMU driver in providing two
types of connection. There is one privileged instance per host,
which runs as root. This is called the "system" instance, and allows
full use of all host resources. Then, there is a per-user unprivileged
"session", instance. This has more restricted capabilities, and may
require the host administrator to setup certain resources ahead of
time to allow full integration with the network. Example connection
URIs are
</p>
<pre>
uml:///session (local access to per-user instance)
uml+unix:///session (local access to per-user instance)
uml:///system (local access to system instance)
uml+unix:///system (local access to system instance)
uml://example.com/system (remote access, TLS/x509)
uml+tcp://example.com/system (remote access, SASl/Kerberos)
uml+ssh://root@example.com/system (remote access, SSH tunnelled)
</pre>
<h2>Example XML configuration</h2>
<p>
User mode Linux driver only supports directly kernel boot at
this time. A future driver enhancement may allow a paravirt
bootloader in a similar style to Xen's pygrub. For now though,
the UML kernel must be stored on the host and referenced
explicitly in the "os" element. Since UML is a paravirtualized
technology, the kernel "type" is set to "uml"
</p>
<p>
There is not yet support for networking in the driver, but
disks can be specified in the usual libvirt manner. The main
variation is the target device naming scheme "ubd0", and
bus type of "uml".
</p>
<p>
Once booted the primary console is connected to a PTY, and
thus accessible with "virsh console" or equivalent tools
</p>
<pre>
&lt;domain type='uml'&gt;
&lt;name&gt;demo&lt;/name&gt;
&lt;uuid&gt;b4433fc2-a22e-ffb3-0a3d-9c173b395800&lt;/uuid&gt;
&lt;memory&gt;500000&lt;/memory&gt;
&lt;currentMemory&gt;500000&lt;/currentMemory&gt;
&lt;vcpu&gt;1&lt;/vcpu&gt;
&lt;os&gt;
&lt;type arch='x86_64'&gt;uml&lt;/type&gt;
&lt;kernel&gt;/home/berrange/linux-uml-2.6.26-x86_64&lt;/kernel&gt;
&lt;/os&gt;
&lt;devices&gt;
&lt;disk type='file' device='disk'&gt;
&lt;source file='/home/berrange/FedoraCore6-AMD64-root_fs'/&gt;
&lt;target dev='ubd0' bus='uml'/&gt;
&lt;/disk&gt;
&lt;console type='pty'/&gt;
&lt;/devices&gt;
&lt;/domain&gt;
</pre>
</body>
</html>

View File

@@ -8,7 +8,7 @@
<p>
The libvirt libxl driver provides the ability to manage virtual
machines on any Xen release from 4.6.0 onwards.
machines on any Xen release from 4.4.0 onwards.
</p>
<h2><a id="project">Project Links</a></h2>

View File

@@ -74,44 +74,24 @@
is able to run. Possible values are:
<dl>
<dt><code>xen</code></dt>
<dd>for XEN PV</dd>
<dd>for XEN</dd>
<dt><code>linux</code></dt>
<dd>legacy alias for <code>xen</code></dd>
<dt><code>xenpvh</code></dt>
<dd>for XEN PVH</dd>
<dt><code>hvm</code></dt>
<dd>Unmodified operating system</dd>
<dt><code>exe</code></dt>
<dd>Container based virtualization</dd>
<dt><code>uml</code></dt>
<dd>User Mode Linux</dd>
</dl>
</dd>
<dt><code>arch</code></dt>
<dd>This element brings some information on supported guest
architecture. Possible subelements are:
<dl>
<dt><code>wordsize</code></dt><dd>Size of CPU word in bits, for example 64.</dd>
<dt><code>emulator</code></dt><dd>Emulator (device model) path, for
use in <a href="formatdomain.html#elementEmulator">emulator</a>
element of domain XML.</dd>
<dt><code>loader</code></dt><dd>Loader path, for use in
<a href="formatdomain.html#elementLoader">loader</a> element of domain
XML.</dd>
<dt><code>machine</code></dt><dd>Machine type, for use in
<a href="formatdomain.html#attributeOSTypeMachine">machine</a>
attribute of os/type element in domain XML. For example Xen
supports <code>xenfv</code> for HVM, <code>xenpv</code> for
PV, or <code>xenpvh</code> for PVH.</dd>
<dt><code>domain</code></dt><dd>The <code>type</code> attribute of
this element specifies the type of hypervisor required to run the
domain. Use in <a href="formatdomain.html#attributeDomainType">type</a>
attribute of the domain root element.</dd>
</dl>
</dd>
<dd>This element brings some information on supported guest architecture.</dd>
<dt><code>features</code></dt>
<dd>This optional element encases possible features that can be used

View File

@@ -19,8 +19,7 @@
<p>
The root element required for all virtual machines is
named <code>domain</code>. It has two attributes, the
<a id="attributeDomainType"><code>type</code></a>
specifies the hypervisor used for running
<code>type</code> specifies the hypervisor used for running
the domain. The allowed values are driver specific, but
include "xen", "kvm", "qemu", "lxc" and "kqemu". The
second attribute is <code>id</code> which is a unique
@@ -149,11 +148,11 @@
(badly named!) refers to an OS that supports the Xen 3 hypervisor
guest ABI. There are also two optional attributes, <code>arch</code>
specifying the CPU architecture to virtualization,
and <a id="attributeOSTypeMachine"><code>machine</code></a> referring
to the machine type. The <a href="formatcaps.html">Capabilities XML</a>
and <code>machine</code> referring to the machine
type. The <a href="formatcaps.html">Capabilities XML</a>
provides details on allowed values for
these. <span class="since">Since 0.0.1</span></dd>
<dt><a id="elementLoader"><code>loader</code></a></dt>
<dt><code>loader</code></dt>
<dd>The optional <code>loader</code> tag refers to a firmware blob,
which is specified by absolute path,
used to assist the domain creation process. It is used by Xen
@@ -759,12 +758,6 @@
&lt;cachetune vcpus='0-3'&gt;
&lt;cache id='0' level='3' type='both' size='3' unit='MiB'/&gt;
&lt;cache id='1' level='3' type='both' size='3' unit='MiB'/&gt;
&lt;monitor level='3' vcpus='1'/&gt;
&lt;monitor level='3' vcpus='0-3'/&gt;
&lt;/cachetune&gt;
&lt;cachetune vcpus='4-5'&gt;
&lt;monitor level='3' vcpus='4'/&gt;
&lt;monitor level='3' vcpus='5'/&gt;
&lt;/cachetune&gt;
&lt;memorytune vcpus='0-3'&gt;
&lt;node id='0' bandwidth='60'/&gt;
@@ -949,8 +942,8 @@
<dl>
<dt><code>cache</code></dt>
<dd>
This optional element controls the allocation of CPU cache and has
the following attributes:
This element controls the allocation of CPU cache and has the
following attributes:
<dl>
<dt><code>level</code></dt>
<dd>
@@ -984,26 +977,6 @@
</dd>
</dl>
</dd>
<dt><code>monitor</code><span class="since">Since 4.10.0</span></dt>
<dd>
The optional element <code>monitor</code> creates the cache
monitor(s) for current cache allocation and has the following
required attributes:
<dl>
<dt><code>level</code></dt>
<dd>
Host cache level the monitor belongs to.
</dd>
<dt><code>vcpus</code></dt>
<dd>
vCPU list the monitor applies to. A monitor's vCPU list
can only be the member(s) of the vCPU list of the associated
allocation. The default monitor has the same vCPU list as the
associated allocation. For non-default monitors, overlapping
vCPUs are not permitted.
</dd>
</dl>
</dd>
</dl>
</dd>
@@ -1126,7 +1099,7 @@
&lt;/hugepages&gt;
&lt;nosharepages/&gt;
&lt;locked/&gt;
&lt;source type="file|anonymous|memfd"/&gt;
&lt;source type="file|anonymous"/&gt;
&lt;access mode="shared|private"/&gt;
&lt;allocation mode="immediate|ondemand"/&gt;
&lt;discard/&gt;
@@ -1177,17 +1150,13 @@
suitable for the specific environment at the same time to mitigate
the risks described above. <span class="since">Since 1.0.6</span></dd>
<dt><code>source</code></dt>
<dd>Using the <code>type</code> attribute, it's possible to
provide "file" to utilize file memorybacking or keep the
default "anonymous". <span class="since">Since 4.10.0</span>,
you may choose "memfd" backing. (QEMU/KVM only)</dd>
<dd>In this attribute you can switch to file memorybacking or keep
default anonymous.</dd>
<dt><code>access</code></dt>
<dd>Using the <code>mode</code> attribute, specify if the memory is
to be "shared" or "private". This can be overridden per numa node by
<code>memAccess</code>.</dd>
<dd>Specify if memory is shared or private. This can be overridden per
numa node by <code>memAccess</code></dd>
<dt><code>allocation</code></dt>
<dd>Using the <code>mode</code> attribute, specify when to allocate
the memory by supplying either "immediate" or "ondemand".</dd>
<dd>Specify when allocate the memory</dd>
<dt><code>discard</code></dt>
<dd>When set and supported by hypervisor the memory
content is discarded just before guest shuts down (or
@@ -1243,9 +1212,9 @@
<a href="#elementsMemoryBacking">memory backing</a> because your
workload demands it, you'll have to take into account the specifics of
your deployment and figure out a value for <code>hard_limit</code> that
is large enough to support the memory requirements of your guest, but
small enough to protect your host against a malicious guest locking all
memory.</dd>
balances the risk of your guest being killed because the limit was set
too low and the risk of your host crashing because it cannot reclaim
the memory used by the guest due to <code>locked</code>. Good luck!</dd>
<dt><code>soft_limit</code></dt>
<dd> The optional <code>soft_limit</code> element is the memory limit to
enforce during memory contention. The units for this value are
@@ -2008,8 +1977,6 @@
&lt;frequencies state='on'/&gt;
&lt;reenlightenment state='on'/&gt;
&lt;tlbflush state='on'/&gt;
&lt;ipi state='on'/&gt;
&lt;evmcs state='on'/&gt;
&lt;/hyperv&gt;
&lt;kvm&gt;
&lt;hidden state='on'/&gt;
@@ -2081,7 +2048,7 @@
<tr>
<td>relaxed</td>
<td>Relax constraints on timers</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">1.0.0 (QEMU 2.0)</span></td>
</tr>
<tr>
@@ -2099,31 +2066,31 @@
<tr>
<td>vpindex</td>
<td>Virtual processor index</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">1.3.3 (QEMU 2.5)</span></td>
</tr>
<tr>
<td>runtime</td>
<td>Processor time spent on running guest code and on behalf of guest code</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">1.3.3 (QEMU 2.5)</span></td>
</tr>
<tr>
<td>synic</td>
<td>Enable Synthetic Interrupt Controller (SyNIC)</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">1.3.3 (QEMU 2.6)</span></td>
</tr>
<tr>
<td>stimer</td>
<td>Enable SyNIC timers</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">1.3.3 (QEMU 2.6)</span></td>
</tr>
<tr>
<td>reset</td>
<td>Enable hypervisor reset</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">1.3.3 (QEMU 2.5)</span></td>
</tr>
<tr>
@@ -2135,33 +2102,21 @@
<tr>
<td>frequencies</td>
<td>Expose frequency MSRs</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">4.7.0 (QEMU 2.12)</span></td>
</tr>
<tr>
<td>reenlightenment</td>
<td>Enable re-enlightenment notification on migration</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">4.7.0 (QEMU 3.0)</span></td>
</tr>
<tr>
<td>tlbflush</td>
<td>Enable PV TLB flush support</td>
<td>on, off</td>
<td> on, off</td>
<td><span class="since">4.7.0 (QEMU 3.0)</span></td>
</tr>
<tr>
<td>ipi</td>
<td>Enable PV IPI support</td>
<td>on, off</td>
<td><span class="since">4.10.0 (QEMU 3.1)</span></td>
</tr>
<tr>
<td>evmcs</td>
<td>Enable Enlightened VMCS</td>
<td>on, off</td>
<td><span class="since">4.10.0 (QEMU 3.1)</span></td>
</tr>
</table>
</dd>
<dt><code>pvspinlock</code></dt>
@@ -2295,18 +2250,6 @@
defined, the hypervisor default will be used.
<span class="since">Since 4.6.0</span> (QEMU/KVM only)
</dd>
<dt><code>nested-hv</code></dt>
<dd>Configure nested HV availability for pSeries guests. This needs to
be enabled from the host (L0) in order to be effective; having HV
support in the (L1) guest is very desiderable if it's planned to
run nested (L2) guests inside it, because it will result in those
nested guests having much better performance than they would when
using KVM PR or TCG.
Possible values for the <code>state</code> attribute are
<code>on</code> and <code>off</code>. If the attribute is not
defined, the hypervisor default will be used.
<span class="since">Since 4.10.0</span> (QEMU/KVM only)
</dd>
</dl>
<h3><a id="elementsTime">Time keeping</a></h3>
@@ -2675,7 +2618,7 @@
...</pre>
<dl>
<dt><a id="elementEmulator"><code>emulator</code></a></dt>
<dt><code>emulator</code></dt>
<dd>
The contents of the <code>emulator</code> element specify
the fully qualified path to the device model emulator binary.
@@ -2848,6 +2791,7 @@
&lt;/source&gt;
&lt;target dev='sdb' bus='scsi'/&gt;
&lt;/disk&gt;
&lt;/disk&gt;
&lt;disk type='network' device='lun'&gt;
&lt;driver name='qemu' type='raw'/&gt;
&lt;source protocol='iscsi' name='iqn.2013-07.com.example:iscsi-nopool/0'&gt;
@@ -3977,15 +3921,7 @@
(<span class="since">since 0.9.7, requires QEMU
0.13</span>). <code>multifunction</code> defaults to 'off',
but should be set to 'on' for function 0 of a slot that will
have multiple functions used.
(<span class="since">Since 4.10.0</span>), PCI address extensions
depending on the architecture are supported. For example, PCI
addresses for S390 guests will have a <code>zpci</code> child
element, with two attributes: <code>uid</code> (a hex value
between 0x0001 and 0xffff, inclusive), and <code>fid</code> (a
hex value between 0x00000000 and 0xffffffff, inclusive) used by
PCI devices on S390 for User-defined Identifiers and Function
Identifiers.<br/>
have multiple functions used.<br/>
<span class="since">Since 1.3.5</span>, some hypervisor
drivers may accept an <code>&lt;address type='pci'/&gt;</code>
element with no other attributes as an explicit request to
@@ -4676,9 +4612,8 @@
<dd>For mediated devices (<span class="since">Since 3.2.0</span>)
the <code>model</code> attribute specifies the device API which
determines how the host's vfio driver will expose the device to the
guest. Currently, <code>model='vfio-pci'</code>,
guest. Currently, <code>model='vfio-pci'</code> and
<code>model='vfio-ccw'</code> (<span class="since">Since 4.4.0</span>)
and <code>model='vfio-ap'</code> (<span class="since">Since 4.9.0</span>)
is supported. <a href="drvnodedev.html#MDEV">MDEV</a> section
provides more information about mediated devices as well as how to
create mediated devices on the host.
@@ -5228,6 +5163,7 @@
&lt;virtualport&gt;
&lt;parameters instanceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'/&gt;
&lt;/virtualport&gt;
&lt;/interface&gt;
&lt;/devices&gt;
...</pre>
@@ -5720,7 +5656,8 @@ qemu-kvm -net nic,model=? /dev/null
&lt;host csum='off' gso='off' tso4='off' tso6='off' ecn='off' ufo='off' mrg_rxbuf='off'/&gt;
&lt;guest csum='off' tso4='off' tso6='off' ecn='off' ufo='off'/&gt;
&lt;/driver&gt;
</b>&lt;/interface&gt;
</b>
&lt;/interface&gt;
&lt;/devices&gt;
...</pre>
@@ -6222,7 +6159,7 @@ qemu-kvm -net nic,model=? /dev/null
<b>&lt;route family='ipv4' address='192.168.122.0' prefix='24' gateway='192.168.122.1'/&gt;</b>
<b>&lt;route family='ipv4' address='192.168.122.8' gateway='192.168.122.1'/&gt;</b>
&lt;/hostdev&gt;
...
&lt;/devices&gt;
...
</pre>
@@ -6704,17 +6641,12 @@ qemu-kvm -net nic,model=? /dev/null
the other types, for practical reasons it should be paired with
either <code>vnc</code> or <code>spice</code> graphics types.
This display type is only supported by QEMU domains
(needs QEMU <span class="since">2.10</span> or newer).
<span class="Since">5.0.0</span> this element accepts a
<code>&lt;gl/&gt;</code> sub-element with an optional attribute
<code>rendernode</code> which can be used to specify an absolute
path to a host's DRI device to be used for OpenGL rendering.
(needs QEMU <span class="since">2.10</span> or newer) and doesn't
accept any attributes.
</p>
<pre>
&lt;graphics type='spice' autoport='yes'/&gt;
&lt;graphics type='egl-headless'&gt;
&lt;gl rendernode='/dev/dri/renderD128'/&gt;
&lt;/graphics&gt;
&lt;graphics type='egl-headless'/&gt;
</pre>
</dd>
</dl>
@@ -7161,9 +7093,9 @@ qemu-kvm -net nic,model=? /dev/null
Valid values for the <code>type</code> attribute are:
<code>serial</code> (described below);
<code>virtio</code> (usable whenever VirtIO support is available);
<code>xen</code>, <code>lxc</code> and <code>openvz</code>
(available when the corresponding hypervisor is in use).
<code>sclp</code> and <code>sclplm</code> (usable for s390 and
<code>xen</code>, <code>lxc</code>, <code>uml</code> and
<code>openvz</code> (available when the corresponding hypervisor is in
use). <code>sclp</code> and <code>sclplm</code> (usable for s390 and
s390x QEMU guests) are supported for compatibility reasons but should
not be used for new guests: use the <code>sclpconsole</code> and
<code>sclplmconsole</code> target models, respectively, with the
@@ -8322,21 +8254,6 @@ qemu-kvm -net nic,model=? /dev/null
&lt;memory model='nvdimm'&gt;
&lt;source&gt;
&lt;path&gt;/tmp/nvdimm&lt;/path&gt;
&lt;alignsize unit='KiB'&gt;2048&lt;/alignsize&gt;
&lt;/source&gt;
&lt;target&gt;
&lt;size unit='KiB'&gt;524288&lt;/size&gt;
&lt;node&gt;1&lt;/node&gt;
&lt;label&gt;
&lt;size unit='KiB'&gt;128&lt;/size&gt;
&lt;/label&gt;
&lt;readonly/&gt;
&lt;/target&gt;
&lt;/memory&gt;
&lt;memory model='nvdimm'&gt;
&lt;source&gt;
&lt;path&gt;/dev/dax0.0&lt;/path&gt;
&lt;pmem/&gt;
&lt;/source&gt;
&lt;target&gt;
&lt;size unit='KiB'&gt;524288&lt;/size&gt;
@@ -8418,36 +8335,10 @@ qemu-kvm -net nic,model=? /dev/null
</dl>
<p>
For model <code>nvdimm</code> this element is mandatory. The
mandatory child element <code>path</code> represents a path in
the host that backs the nvdimm module in the guest. The following
optional elements may be used:
For model <code>nvdimm</code> this element is mandatory and has a
single child element <code>path</code> that represents a path
in the host that backs the nvdimm module in the guest.
</p>
<dl>
<dt><code>alignsize</code></dt>
<dd>
<p>
The <code>alignsize</code> element defines the page size
alignment used to mmap the address range for the backend
<code>path</code>. If not supplied the host page size is used.
For example, to mmap a real NVDIMM device a 2M-aligned page may
be required.
<span class="since">Since 5.0.0</span>
</p>
</dd>
<dt><code>pmem</code></dt>
<dd>
<p>
If persistent memory is supported and enabled by the hypervisor
in order to guarantee the persistence of writes to the vNVDIMM
backend, then use the <code>pmem</code> element in order to
utilize the feature.
<span class="since">Since 5.0.0</span>
</p>
</dd>
</dl>
</dd>
<dt><code>target</code></dt>
@@ -8466,39 +8357,19 @@ qemu-kvm -net nic,model=? /dev/null
NUMA nodes configured.
</p>
<p>
The following optional elements may be used:
For NVDIMM type devices one can optionally use
<code>label</code> and its subelement <code>size</code>
to configure the size of namespaces label storage
within the NVDIMM module. The <code>size</code> element
has usual meaning described
<a href="#elementsMemoryAllocation">here</a>.
For QEMU domains the following restrictions apply:
</p>
<dl>
<dt><code>label</code></dt>
<dd>
<p>
For NVDIMM type devices one can optionally use
<code>label</code> and its subelement <code>size</code>
to configure the size of namespaces label storage
within the NVDIMM module. The <code>size</code> element
has usual meaning described
<a href="#elementsMemoryAllocation">here</a>.
For QEMU domains the following restrictions apply:
</p>
<ol>
<li>the minimum label size is 128KiB,</li>
<li>the remaining size (total-size - label-size) will be aligned
to 4KiB as default.</li>
</ol>
</dd>
<dt><code>readonly</code></dt>
<dd>
<p>
The <code>readonly</code> element is used to mark the vNVDIMM
as read-only. Only the real NVDIMM device backend can guarantee
the guest write persistence, so other backend types should use
the <code>readonly</code> element.
<span class="since">Since 5.0.0</span>
</p>
</dd>
</dl>
<ol>
<li>the minimum label size is 128KiB,</li>
<li>the remaining size (total-size - label-size) has to be aligned to
4KiB</li>
</ol>
</dd>
</dl>

View File

@@ -278,6 +278,7 @@
&lt;value&gt;virtio&lt;/value&gt;
&lt;value&gt;xen&lt;/value&gt;
&lt;value&gt;usb&lt;/value&gt;
&lt;value&gt;uml&lt;/value&gt;
&lt;value&gt;sata&lt;/value&gt;
&lt;value&gt;sd&lt;/value&gt;
&lt;/enum&gt;

View File

@@ -2265,7 +2265,7 @@ echo 3 > /proc/sys/net/netfilter/nf_conntrack_icmp_timeout
to the incoming and outgoing direction. All this is related to the ftp
data traffic originating from TCP port 20 of the VM. This then leads to
the following solution
<span class="since">(since 0.8.5 (QEMU, KVM))</span>:
<span class="since">(since 0.8.5 (QEMU, KVM, UML))</span>:
</p>
<pre>
&lt;filter name='test-eth0'&gt;

View File

@@ -426,7 +426,7 @@ dprintf(logfd, "%s: ", timestamp);
VIR_FREE(timestamp);
virCommandWriteArgLog(cmd, logfd);
string = virCommandToString(cmd, false);
string = virCommandToString(cmd);
if (string)
VIR_DEBUG("about to run %s", string);
VIR_FREE(string);

View File

@@ -393,7 +393,6 @@ table.acl {
table.acl tr, table.acl td {
padding: 0.3em;
border: 1px solid #ccc;
}
table.acl thead {

View File

@@ -25,19 +25,6 @@
<section title="New features">
</section>
<section title="Improvements">
<change>
<summary>
Start selecting the first available DRI device for OpenGL operations
</summary>
<description>
If OpenGL support is needed (either with SPICE gl enabled or with
egl-headless), libvirt is now able to pick the first available DRI
device for the job. At the same time, this improvement is also a
bugfix as it prevents permission-related issues with regards to our
mount namespaces and the default DRI render node's permissions which
would normally prevent QEMU from accessing such a device.
</description>
</change>
</section>
<section title="Bug fixes">
</section>
@@ -46,321 +33,6 @@
-->
<libvirt>
<release version="v5.0.0" date="unreleased">
<section title="New features">
<change>
<summary>
Xen: Add support for openvswitch
</summary>
<description>
The libxl driver now supports virtual interfaces that connect to
an openvswitch bridge, including interfaces with VLAN tagging and
trunking configuration.
</description>
</change>
</section>
<section title="Removed features">
<change>
<summary>
Drop UML driver
</summary>
<description>
The UML driver was unmaintained and not tested for
quite some time now. Worse, there is a bug that causes
it to deadlock on some very basic operations (e.g.
dumping domain XML). These facts make us believe no one
uses it.
</description>
</change>
</section>
<section title="Improvements">
<change>
<summary>
qemu: Add support for ARMv6l guests
</summary>
</change>
<change>
<summary>
Remember original owners and SELinux labels of files
</summary>
<description>
When a domain is starting up libvirt changes DAC and
SELinux labels so that domain can access it. However,
it never remembered the original labels and therefore
the file was returned back to <code>root:root</code>.
With this release, the original labels are remembered
and restored properly.
</description>
</change>
<change>
<summary>
Support more NVDIMM configuration options
</summary>
<description>
Introduce more configuration options. For the source element, add
the 'alignsize' and 'pmem' subelements. For the target element, add
the 'readonly' subelement.
</description>
</change>
<change>
<summary>
cpu: Add support for "stibp" x86_64 feature
</summary>
<description>
Add cpu flag stibp (Single Thread Indirect Branch Predictors) to
prevent indirect branch predictions from being controlled by the
sibling Hyperthread.
</description>
</change>
<change>
<summary>
qemu: Add support for postcopy-requests migration statistics
</summary>
<description>
The <code>virDomainJobInfo</code> can get number page requests
received from the destination host during post-copy migration.
</description>
</change>
</section>
<section title="Bug fixes">
</section>
</release>
<release version="v4.10.0" date="2018-12-03">
<section title="New features">
<change>
<summary>
qemu: Add Hyper-V PV IPI and Enlightened VMCS support
</summary>
<description>
The QEMU driver now has support for Hyper-V PV IPI and Enlightened VMCS
for Windows and Hyper-V guests.
</description>
</change>
<change>
<summary>
qemu: Added support for PCI devices on S390
</summary>
<description>
PCI addresses can now include the new zpci element which contains
uid (user-defined identifier) and fid (PCI function identifier)
attributes and makes the corresponding devices usable by S390
guests.
</description>
</change>
<change>
<summary>
Support changing IOThread polling parameters for a live guest
</summary>
<description>
Introduced virDomainSetIOThreadParams which allows dynamically
setting the IOThread polling parameters used by QEMU to manage
the thread polling interval and the algorithm for growth or
shrink of the polling time. The values only affect a running
guest with IOThreads. The guest's IOThread polling values can
be viewed via the domain statistics.
</description>
</change>
<change>
<summary>
Xen: Add support for PVH
</summary>
<description>
The libxl driver now supports Xen's PVH virtual machine type.
PVH machines are enabled with the new "xenpvh" OS type, e.g.
<code>&lt;os&gt;&lt;type&gt;xenpvh&lt;/type&gt;&lt;/os&gt;</code>
</description>
</change>
<change>
<summary>
qemu: Added support for CMT (Cache Monitoring Technology)
</summary>
<description>
Introduced cache monitoring using the <code>monitor</code>
element in <code>cachetune</code> for vCPU threads. Added
interfaces to get and display the cache utilization statistics
through the command 'virsh domstats' via the
virConnectGetAllDomainStats API.
</description>
</change>
<change>
<summary>
qemu: Add support for nested HV for pSeries guests
</summary>
<description>
Nested HV support makes it possible to run nested (L2) guests
with minimal performance penalty when compared to regular (L1)
guests on ppc64 hardware.
</description>
</change>
</section>
<section title="Improvements">
</section>
<section title="Bug fixes">
<change>
<summary>
Xen: Handle soft reset shutdown event
</summary>
<description>
The pvops Linux kernel uses soft reset to handle the crash
machine operation. The libxl driver now supports the soft
reset shutdown event, allowing proper crash handling of
pvops-based HVM domains.
</description>
</change>
</section>
</release>
<release version="v4.9.0" date="2018-11-04">
<section title="New features">
<change>
<summary>
util: Add cgroup v2 support
</summary>
<description>
cgroup v2 support has been implemented in libvirt, with both
"unified" (v2 only) and "hybrid" (v2 + v1) setups being usable;
existing "legacy" (v1 only) setups will keep working.
</description>
</change>
<change>
<summary>
qemu: Add vfio AP support
</summary>
<description>
The QEMU driver now has support to passthrough adjunct processors
into QEMU guests on S390.
</description>
</change>
</section>
<section title="Improvements">
<change>
<summary>
rpc: Make 'genprotocol' output reproducible
</summary>
<description>
This is another step towards making libvirt builds fully
reproducible.
</description>
</change>
</section>
<section title="Bug fixes">
<change>
<summary>
security: Fix permissions for UNIX sockets
</summary>
<description>
Since 4.5.0, libvirt is using FD passing to hand sockets over to
QEMU, which in theory removes the need for them to be accessible by
the user under which the QEMU process is running; however, other
processes such as vdsm need to access the sockets as well, which
means adjusting permissions is still necessary.
</description>
</change>
<change>
<summary>
cpu_map: Add Icelake model definitions
</summary>
<description>
These CPU models will be available in the upcoming 3.1.0 QEMU
release.
</description>
</change>
<change>
<summary>
util: Properly parse URIs with missing trailing slash
</summary>
<description>
Some storage URIs were not parsed correctly, in which case libvirt
ended up emitting XML that it would then refuse to parse back.
</description>
</change>
</section>
</release>
<release version="v4.8.0" date="2018-10-01">
<section title="New features">
<change>
<summary>
Xen: Support PM Suspend and Wakeup
</summary>
<description>
The libxl driver now supports the virDomainPMSuspendForDuration
and virDomainPMWakeup APIs.
</description>
</change>
</section>
<section title="Removed features">
<change>
<summary>
Xen: Drop support for Xen 4.4 and 4.5
</summary>
<description>
Xen 4.4 and 4.5 are no longer supported by the Xen community.
Drop support for these older versions and require Xen >= 4.6.
</description>
</change>
<change>
<summary>
nwfilter: Disallow binding creation in session mode
</summary>
<description>
Ensure that a filter binding creation is not attempted in session
mode and generates a proper error message.
</description>
</change>
</section>
<section title="Improvements">
<change>
<summary>
qemu: Retrieve guest hostname through QEMU Guest Agent command
</summary>
<description>
QEMU is now able to retrieve the guest hostname using a new QEMU-GA
command called 'guest-get-host-name'. Virsh users can execute
'domhostname' for QEMU driver for domains configured to use the
Guest Agent.
</description>
</change>
<change>
<summary>
virsh: Implement vsh-table in virsh and virsh-admin
</summary>
<description>
The new API fixes problems with table-alignment, making the tables
more readable and deals with unicode.
</description>
</change>
</section>
<section title="Bug fixes">
<change>
<summary>
storage: Allow inputvol to be encrypted
</summary>
<description>
When creating a storage volume based on another volume, the base
input volume is allowed to be encrypted.
</description>
</change>
<change>
<summary>
virsh: Require explicit --domain for domxml-to-native
</summary>
<description>
The --domain option for domxml-to-native virsh command has always
been documented as required, but commit v4.3.0-127-gd86531daf2
accidentally made it optional.
</description>
</change>
<change>
<summary>
lxc_monitor: Avoid AB / BA lock race
</summary>
<description>
A deadlock situation could occur when autostarting a LXC domain
'guest' due to two threads attempting to take opposing locks while
holding opposing locks (AB BA problem).
</description>
</change>
</section>
</release>
<release version="v4.7.0" date="2018-09-03">
<section title="New features">
<change>

View File

@@ -39,7 +39,7 @@
<ul>
<li><a href="https://repology.org/metapackage/libvirt/versions">libvirt</a></li>
<li><a href="https://repology.org/metapackage/qemu/versions">qemu</a></li>
<li><a href="https://repology.org/metapackage/qemu-kvm/versions">qemu-kvm</a></li>
<li><a href="https://repology.org/metapackage/qemu/versions">qemu-kvm</a></li>
</ul>

View File

@@ -17,6 +17,9 @@
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
#
# Authors:
# Andrea Bolognani <abologna@redhat.com>
from __future__ import print_function

View File

@@ -65,17 +65,6 @@
</data>
</choice>
</define>
<define name="uint32">
<choice>
<data type="string">
<param name="pattern">(0x)?[0-9a-fA-F]{1,8}</param>
</data>
<data type="unsignedInt">
<param name="minInclusive">0</param>
<param name="maxInclusive">4294967295</param>
</data>
</choice>
</define>
<define name="UUID">
<choice>
@@ -122,22 +111,6 @@
</attribute>
</optional>
</define>
<define name="zpciaddress">
<optional>
<element name="zpci">
<optional>
<attribute name="uid">
<ref name="uint16"/>
</attribute>
</optional>
<optional>
<attribute name="fid">
<ref name="uint32"/>
</attribute>
</optional>
</element>
</optional>
</define>
<!-- a 6 byte MAC address in ASCII-hex format, eg "12:34:56:78:9A:BC" -->
<!-- The lowest bit of the 1st byte is the "multicast" bit. a -->
@@ -406,7 +379,6 @@
<choice>
<value>aarch64</value>
<value>alpha</value>
<value>armv6l</value>
<value>armv7l</value>
<value>cris</value>
<value>i686</value>

View File

@@ -316,9 +316,6 @@
</zeroOrMore>
</element>
</oneOrMore>
<optional>
<ref name='cpuMonitor'/>
</optional>
</element>
</define>
@@ -350,7 +347,7 @@
<optional>
<attribute name='min'>
<ref name='unsignedInt'/>
</attribute>
</attribute>
</optional>
<attribute name='maxAllocs'>
<ref name='unsignedInt'/>
@@ -359,41 +356,9 @@
</zeroOrMore>
</element>
</oneOrMore>
<optional>
<ref name='cpuMonitor'/>
</optional>
</element>
</define>
<define name='cpuMonitor'>
<element name='monitor'>
<optional>
<attribute name='level'>
<ref name='unsignedInt'/>
</attribute>
<attribute name='reuseThreshold'>
<ref name='unsignedInt'/>
</attribute>
</optional>
<attribute name='maxMonitors'>
<ref name='unsignedInt'/>
</attribute>
<oneOrMore>
<element name='feature'>
<attribute name='name'>
<ref name='monitorFeature'/>
</attribute>
</element>
</oneOrMore>
</element>
</define>
<define name='monitorFeature'>
<data type='string'>
<param name='pattern'>(llc_|mbm_)[a-zA-Z0-9\-_]+</param>
</data>
</define>
<define name='guestcaps'>
<element name='guest'>
<ref name='ostype'/>
@@ -412,7 +377,7 @@
but is also used by phyp driver -->
<value>hvm</value> <!-- unmodified OS -->
<value>exe</value> <!-- For container based virt -->
<value>uml</value> <!-- user mode linux; NOT USED ANYMORE -->
<value>uml</value> <!-- user mode linux -->
</choice>
</element>
</define>
@@ -484,7 +449,7 @@
<value>kqemu</value>
<value>kvm</value>
<value>xen</value>
<value>uml</value> <!-- NOT USED ANYMORE -->
<value>uml</value>
<value>lxc</value>
<value>openvz</value>
<value>test</value>

View File

@@ -204,7 +204,7 @@
<value>kvm</value>
<value>xen</value>
<value>lxc</value>
<value>uml</value> <!-- NOT USED ANYMORE -->
<value>uml</value>
<value>openvz</value>
<value>test</value>
<value>vmware</value>
@@ -340,15 +340,13 @@
<attribute name="machine">
<choice>
<value>xenpv</value>
<value>xenfv</value>
<value>xenpvh</value>
<value>xenner</value>
</choice>
</attribute>
</optional>
<choice>
<value>xen</value>
<value>linux</value>
<value>xenpvh</value>
</choice>
</element>
</define>
@@ -657,7 +655,6 @@
<choice>
<value>file</value>
<value>anonymous</value>
<value>memfd</value>
</choice>
</attribute>
</element>
@@ -959,7 +956,7 @@
<attribute name="vcpus">
<ref name='cpuset'/>
</attribute>
<zeroOrMore>
<oneOrMore>
<element name="cache">
<attribute name="id">
<ref name='unsignedInt'/>
@@ -983,17 +980,7 @@
</attribute>
</optional>
</element>
</zeroOrMore>
<zeroOrMore>
<element name="monitor">
<attribute name="level">
<ref name='unsignedInt'/>
</attribute>
<attribute name="vcpus">
<ref name='cpuset'/>
</attribute>
</element>
</zeroOrMore>
</oneOrMore>
</element>
</zeroOrMore>
<zeroOrMore>
@@ -1907,7 +1894,7 @@
<value>virtio</value>
<value>xen</value>
<value>usb</value>
<value>uml</value> <!-- NOT USED ANYMORE -->
<value>uml</value>
<value>sata</value>
<value>sd</value>
</choice>
@@ -3418,20 +3405,9 @@
</attribute>
</optional>
</group>
<group>
<attribute name="type">
<value>egl-headless</value>
</attribute>
<optional>
<element name="gl">
<optional>
<attribute name="rendernode">
<ref name="absFilePath"/>
</attribute>
</optional>
</element>
</optional>
</group>
<attribute name="type">
<value>egl-headless</value>
</attribute>
</choice>
</element>
</define>
@@ -3725,7 +3701,7 @@
<choice>
<value>xen</value>
<value>serial</value>
<value>uml</value> <!-- NOT USED ANYMORE -->
<value>uml</value>
<value>virtio</value>
<value>lxc</value>
<value>openvz</value>
@@ -4642,7 +4618,6 @@
<choice>
<value>vfio-pci</value>
<value>vfio-ccw</value>
<value>vfio-ap</value>
</choice>
</attribute>
<optional>
@@ -4989,11 +4964,6 @@
<ref name="featurestate"/>
</element>
</optional>
<optional>
<element name="nested-hv">
<ref name="featurestate"/>
</element>
</optional>
</interleave>
</element>
</optional>
@@ -5250,7 +5220,6 @@
<value>pci</value>
</attribute>
<ref name="pciaddress"/>
<ref name="zpciaddress"/>
</group>
<group>
<attribute name="type">
@@ -5384,21 +5353,9 @@
</interleave>
</group>
<group>
<interleave>
<element name="path">
<ref name="absFilePath"/>
</element>
<optional>
<element name="alignsize">
<ref name="scaledInteger"/>
</element>
</optional>
<optional>
<element name="pmem">
<empty/>
</element>
</optional>
</interleave>
<element name="path">
<ref name="absFilePath"/>
</element>
</group>
</choice>
</element>
@@ -5422,11 +5379,6 @@
</element>
</element>
</optional>
<optional>
<element name="readonly">
<empty/>
</element>
</optional>
</interleave>
</element>
</define>
@@ -5498,8 +5450,6 @@
<attribute name="iommu">
<ref name="virOnOff"/>
</attribute>
</optional>
<optional>
<attribute name="ats">
<ref name="virOnOff"/>
</attribute>
@@ -5818,16 +5768,6 @@
<ref name="featurestate"/>
</element>
</optional>
<optional>
<element name="ipi">
<ref name="featurestate"/>
</element>
</optional>
<optional>
<element name="evmcs">
<ref name="featurestate"/>
</element>
</optional>
</interleave>
</element>
</define>

View File

@@ -24,7 +24,9 @@
</choice>
</attribute>
<interleave>
<ref name='secret'/>
<zeroOrMore>
<ref name='secret'/>
</zeroOrMore>
<optional>
<element name='cipher'>
<ref name='keycipher'/>

View File

@@ -139,7 +139,6 @@
</element>
<ref name='format'/>
<ref name='permissions'/>
<ref name='timestamps'/>
</interleave>
</element>
</define>

View File

@@ -19,6 +19,12 @@
FILTERS = $(wildcard $(srcdir)/xml/nwfilter/*.xml)
EXTRA_DIST = \
apparmor/TEMPLATE.qemu \
apparmor/TEMPLATE.lxc \
apparmor/libvirt-qemu \
apparmor/libvirt-lxc \
apparmor/usr.lib.libvirt.virt-aa-helper \
apparmor/usr.sbin.libvirtd \
lxcconvert/virt-lxc-convert \
polkit/libvirt-acl.rules \
$(wildcard $(srcdir)/systemtap/*.stp) \
@@ -27,10 +33,10 @@ EXTRA_DIST = \
$(wildcard $(srcdir)/xml/test/*.xml)
AM_CPPFLAGS = \
-I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir)
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir) \
-I$(top_builddir)/gnulib/lib -I$(top_srcdir)/gnulib/lib
LDADD = $(STATIC_BINARIES) $(WARN_CFLAGS) $(COVERAGE_LDFLAGS) \
$(top_builddir)/src/libvirt.la \
$(top_builddir)/src/libvirt.la $(top_builddir)/gnulib/lib/libgnu.la \
$(top_builddir)/src/libvirt-admin.la
noinst_PROGRAMS=dominfo/info1 dommigrate/dommigrate domsuspend/suspend \
@@ -64,6 +70,36 @@ admin_logging_SOURCES = admin/logging.c
INSTALL_DATA_LOCAL =
UNINSTALL_LOCAL =
if WITH_APPARMOR_PROFILES
apparmordir = $(sysconfdir)/apparmor.d/
apparmor_DATA = \
apparmor/usr.lib.libvirt.virt-aa-helper \
apparmor/usr.sbin.libvirtd \
$(NULL)
abstractionsdir = $(apparmordir)/abstractions
abstractions_DATA = \
apparmor/libvirt-qemu \
apparmor/libvirt-lxc \
$(NULL)
templatesdir = $(apparmordir)/libvirt
templates_DATA = \
apparmor/TEMPLATE.qemu \
apparmor/TEMPLATE.lxc \
$(NULL)
APPARMOR_LOCAL_DIR = "$(DESTDIR)$(apparmordir)/local"
install-apparmor-local:
$(MKDIR_P) "$(APPARMOR_LOCAL_DIR)"
echo "# Site-specific additions and overrides for \
'usr.lib.libvirt.virt-aa-helper'" \
>$(APPARMOR_LOCAL_DIR)/usr.lib.libvirt.virt-aa-helper
INSTALL_DATA_LOCAL += install-apparmor-local
UNINSTALL_LOCAL += uninstall-apparmor-local
endif WITH_APPARMOR_PROFILES
if WITH_NWFILTER
NWFILTER_DIR = "$(DESTDIR)$(sysconfdir)/libvirt/nwfilter"

View File

@@ -1,7 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt.h>
#include <libvirt/libvirt-admin.h>
#include<stdio.h>
#include<stdlib.h>
#include<libvirt/libvirt.h>
#include<libvirt/libvirt-admin.h>
int main(void)
{

View File

@@ -1,9 +1,9 @@
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#include <libvirt/libvirt-admin.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include<libvirt/libvirt-admin.h>
static const char *
exampleTransportToString(int transport)
@@ -30,13 +30,9 @@ exampleGetTimeStr(time_t then)
{
char *ret = NULL;
struct tm timeinfo;
struct tm *timeinfop;
/* localtime_r() is smarter, but since mingw lacks it and this
* example is single-threaded, we can get away with localtime */
if (!(timeinfop = localtime(&then)))
if (!localtime_r(&then, &timeinfo))
return NULL;
timeinfo = *timeinfop;
if (!(ret = calloc(64, sizeof(char))))
return NULL;

View File

@@ -1,6 +1,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt-admin.h>
#include<stdio.h>
#include<stdlib.h>
#include<libvirt/libvirt-admin.h>
int main(int argc, char **argv)
{

View File

@@ -1,7 +1,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <libvirt/libvirt-admin.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<libvirt/libvirt-admin.h>
static const char *
exampleTransportToString(int transport)
@@ -28,13 +28,9 @@ exampleGetTimeStr(time_t then)
{
char *ret = NULL;
struct tm timeinfo;
struct tm *timeinfop;
/* localtime_r() is smarter, but since mingw lacks it and this
* example is single-threaded, we can get away with localtime */
if (!(timeinfop = localtime(&then)))
if (!localtime_r(&then, &timeinfo))
return NULL;
timeinfo = *timeinfop;
if (!(ret = calloc(64, sizeof(char))))
return NULL;

View File

@@ -1,6 +1,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt-admin.h>
#include<stdio.h>
#include<stdlib.h>
#include<libvirt/libvirt-admin.h>
int main(void)
{

View File

@@ -1,10 +1,11 @@
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include <unistd.h>
#include <libvirt/libvirt-admin.h>
#include <libvirt/virterror.h>
#include "config.h"
#include<unistd.h>
#include<libvirt/libvirt-admin.h>
#include<libvirt/virterror.h>
static void printHelp(const char *argv0)
{

View File

@@ -1,6 +1,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <libvirt/libvirt-admin.h>
#include<stdio.h>
#include<stdlib.h>
#include<libvirt/libvirt-admin.h>
int main(int argc, char **argv)
{

View File

@@ -5,6 +5,7 @@
* hypervisor and extract domain information.
* usage: info1
* test: info1
* author: Daniel Veillard
* copy: see Copyright for the status of this software.
*/

View File

@@ -18,6 +18,8 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Sahid Orentino Ferdjaoui <sahid.ferdjaoui@cloudwatt.com>
*/
#include <stdio.h>

View File

@@ -17,8 +17,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Author: Michal Privoznik <mprivozn@redhat.com>
*/
#include <config.h>
#include <errno.h>
#include <getopt.h>
#include <libvirt/libvirt.h>

View File

@@ -16,8 +16,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Author: Michal Privoznik <mprivozn@redhat.com>
*/
#include <config.h>
#include <errno.h>
#include <getopt.h>
#include <libvirt/libvirt.h>
@@ -241,8 +245,7 @@ print_cpu_usage(const char *dom_name,
if (delim)
printf("\t");
/* mingw lacks %zu */
printf("CPU%u: %.2lf", (unsigned)(cpu + i), usage);
printf("CPU%zu: %.2lf", cpu + i, usage);
delim = true;
}
@@ -266,6 +269,10 @@ do_top(virConnectPtr conn,
int max_id = 0;
int nparams = 0, then_nparams = 0, now_nparams = 0;
virTypedParameterPtr then_params = NULL, now_params = NULL;
struct sigaction action_stop;
memset(&action_stop, 0, sizeof(action_stop));
action_stop.sa_handler = stop;
/* Lookup the domain */
if (!(dom = virDomainLookupByName(conn, dom_name))) {
@@ -291,10 +298,8 @@ do_top(virConnectPtr conn,
goto cleanup;
}
/* The ideal program would use sigaction to set this handler, but
* this way is portable to mingw. */
signal(SIGTERM, stop);
signal(SIGINT, stop);
sigaction(SIGTERM, &action_stop, NULL);
sigaction(SIGINT, &action_stop, NULL);
run_top = true;
while (run_top) {

View File

@@ -17,6 +17,7 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
#
# Author: Cedric Bosdonnat <cbosdonnat@suse.com>
handler_cleanup()
{

View File

@@ -1,9 +1,13 @@
#include <config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <inttypes.h>
#include <verify.h>
#define VIR_ENUM_SENTINELS
#include <libvirt/libvirt.h>
@@ -13,14 +17,6 @@
#define STREQ(a, b) (strcmp(a, b) == 0)
#define NULLSTR(s) ((s) ? (s) : "<null>")
#if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \
&& (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \
&& !defined __cplusplus)
# define verify(cond) _Static_assert(cond, "verify (" #cond ")")
#else
# define verify(cond)
#endif
#ifndef ATTRIBUTE_UNUSED
# define ATTRIBUTE_UNUSED __attribute__((__unused__))
#endif
@@ -948,11 +944,10 @@ myDomainEventBlockThresholdCallback(virConnectPtr conn ATTRIBUTE_UNUSED,
unsigned long long excess,
void *opaque ATTRIBUTE_UNUSED)
{
/* Casts to uint64_t to work around mingw not knowing %lld */
printf("%s EVENT: Domain %s(%d) block threshold callback dev '%s'(%s), "
"threshold: '%" PRIu64 "', excess: '%" PRIu64 "'",
"threshold: '%llu', excess: '%llu'",
__func__, virDomainGetName(dom), virDomainGetID(dom),
dev, NULLSTR(path), (uint64_t)threshold, (uint64_t)excess);
dev, NULLSTR(path), threshold, excess);
return 0;
}
@@ -1147,8 +1142,13 @@ main(int argc, char **argv)
virConnectPtr dconn = NULL;
int callback1ret = -1;
int callback16ret = -1;
struct sigaction action_stop;
size_t i;
memset(&action_stop, 0, sizeof(action_stop));
action_stop.sa_handler = stop;
if (argc > 1 && STREQ(argv[1], "--help")) {
printf("%s uri\n", argv[0]);
goto cleanup;
@@ -1179,10 +1179,8 @@ main(int argc, char **argv)
goto cleanup;
}
/* The ideal program would use sigaction to set this handler, but
* this way is portable to mingw. */
signal(SIGTERM, stop);
signal(SIGINT, stop);
sigaction(SIGTERM, &action_stop, NULL);
sigaction(SIGINT, &action_stop, NULL);
printf("Registering event callbacks\n");

View File

@@ -16,6 +16,7 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
#
# Author: Daniel P. Berrange <berrange@redhat.com>
#
# This script will monitor all operation of the libvirt event loop
# in both client and server. Example output is:

View File

@@ -16,6 +16,7 @@
#
# Debug RWLock mechanisms as well.
#
# Author: Martin Kletzander <mkletzan@redhat.com>
global mx_tolock

View File

@@ -16,6 +16,7 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
#
# Author: Daniel P. Berrange <berrange@redhat.com>
#
# This script will monitor all messages sent/received between libvirt
# and the QEMU monitor

View File

@@ -16,6 +16,7 @@
# License along with this library. If not, see
# <http://www.gnu.org/licenses/>.
#
# Author: Daniel P. Berrange <berrange@redhat.com>
#
# This script will monitor all RPC messages going in/out of libvirtd and
# any connected clients. Example output:

View File

@@ -27,4 +27,4 @@ noinst_LTLIBRARIES =
include gnulib.mk
AM_CPPFLAGS = -I$(top_srcdir)
INCLUDES = -I$(top_srcdir) $(GETTEXT_CPPFLAGS)

View File

@@ -18,6 +18,8 @@
include gnulib.mk
INCLUDES = $(GETTEXT_CPPFLAGS)
GNULIB_TESTS0 =
GNULIB_TESTS1 = $(GNULIB_TESTS)
if WITH_EXPENSIVE_TESTS

View File

@@ -19,10 +19,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Author: Martin Kletzander <mkletzan@redhat.com>
*/
#ifndef LIBVIRT_ADMIN_H
# define LIBVIRT_ADMIN_H
#ifndef __VIR_ADMIN_H__
# define __VIR_ADMIN_H__
# ifdef __cplusplus
extern "C" {
@@ -422,4 +424,4 @@ int virAdmConnectSetLoggingFilters(virAdmConnectPtr conn,
}
# endif
#endif /* LIBVIRT_ADMIN_H */
#endif /* __VIR_ADMIN_H__ */

View File

@@ -3,6 +3,7 @@
* Summary: common macros and enums for the libvirt and libvirt-admin library
* Description: Provides common macros and enums needed by both libvirt and
* libvirt-admin libraries
* Author: Erik Skultety <eskultet@redhat.com>
*
* Copyright (C) 2015 Red Hat, Inc.
*

View File

@@ -2,6 +2,7 @@
* libvirt-domain-snapshot.h
* Summary: APIs for management of domain snapshots
* Description: Provides APIs for the management of domain snapshots
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_DOMAIN_SNAPSHOT_H
# define LIBVIRT_DOMAIN_SNAPSHOT_H
#ifndef __VIR_LIBVIRT_DOMAIN_SNAPSHOT_H__
# define __VIR_LIBVIRT_DOMAIN_SNAPSHOT_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -210,4 +211,4 @@ int virDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
int virDomainSnapshotRef(virDomainSnapshotPtr snapshot);
int virDomainSnapshotFree(virDomainSnapshotPtr snapshot);
#endif /* LIBVIRT_DOMAIN_SNAPSHOT_H */
#endif /* __VIR_LIBVIRT_DOMAIN_SNAPSHOT_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-domain.h
* Summary: APIs for management of domains
* Description: Provides APIs for the management of domains
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2015 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_DOMAIN_H
# define LIBVIRT_DOMAIN_H
#ifndef __VIR_LIBVIRT_DOMAIN_H__
# define __VIR_LIBVIRT_DOMAIN_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -144,8 +145,6 @@ typedef enum {
VIR_DOMAIN_SHUTOFF_FAILED = 6, /* domain failed to start */
VIR_DOMAIN_SHUTOFF_FROM_SNAPSHOT = 7, /* restored from a snapshot which was
* taken while domain was shutoff */
VIR_DOMAIN_SHUTOFF_DAEMON = 8, /* daemon decides to kill domain
during reconnection processing */
# ifdef VIR_ENUM_SENTINELS
VIR_DOMAIN_SHUTOFF_LAST
# endif
@@ -1912,50 +1911,6 @@ int virDomainDelIOThread(virDomainPtr domain,
unsigned int iothread_id,
unsigned int flags);
/* IOThread set parameters */
/**
* VIR_DOMAIN_IOTHREAD_POLL_MAX_NS:
*
* The maximum polling time that can be used by polling algorithm in ns.
* The polling time starts at 0 (zero) and is the time spent by the guest
* to process IOThread data before returning the CPU to the host. The
* polling time will be dynamically modified over time based on the
* poll_grow and poll_shrink parameters provided. A value set too large
* will cause more CPU time to be allocated the guest. A value set too
* small will not provide enough cycles for the guest to process data.
* The polling interval is not available for statistical purposes.
*/
# define VIR_DOMAIN_IOTHREAD_POLL_MAX_NS "poll_max_ns"
/**
* VIR_DOMAIN_IOTHREAD_POLL_GROW:
*
* This provides a value for the dynamic polling adjustment algorithm to
* use to grow its polling interval up to the poll_max_ns value. A value
* of 0 (zero) allows the hypervisor to choose its own value. The algorithm
* to use for adjustment is hypervisor specific.
*/
# define VIR_DOMAIN_IOTHREAD_POLL_GROW "poll_grow"
/**
* VIR_DOMAIN_IOTHREAD_POLL_SHRINK:
*
* This provides a value for the dynamic polling adjustment algorithm to
* use to shrink its polling interval when the polling interval exceeds
* the poll_max_ns value. A value of 0 (zero) allows the hypervisor to
* choose its own value. The algorithm to use for adjustment is hypervisor
* specific.
*/
# define VIR_DOMAIN_IOTHREAD_POLL_SHRINK "poll_shrink"
int virDomainSetIOThreadParams(virDomainPtr domain,
unsigned int iothread_id,
virTypedParameterPtr params,
int nparams,
unsigned int flags);
/**
* VIR_USE_CPU:
* @cpumap: pointer to a bit map of real CPUs (in 8-bit bytes) (IN/OUT)
@@ -2093,7 +2048,6 @@ typedef enum {
VIR_DOMAIN_STATS_INTERFACE = (1 << 4), /* return domain interfaces info */
VIR_DOMAIN_STATS_BLOCK = (1 << 5), /* return domain block info */
VIR_DOMAIN_STATS_PERF = (1 << 6), /* return domain perf event info */
VIR_DOMAIN_STATS_IOTHREAD = (1 << 7), /* return iothread poll info */
} virDomainStatsTypes;
typedef enum {
@@ -3422,16 +3376,6 @@ typedef enum {
*/
# define VIR_DOMAIN_JOB_MEMORY_ITERATION "memory_iteration"
/**
* VIR_DOMAIN_JOB_MEMORY_POSTCOPY_REQS:
*
* virDomainGetJobStats field: number page requests received from the
* destination host during post-copy migration, as VIR_TYPED_PARAM_ULLONG.
* This counter is incremented whenever the migrated domain tries to access
* a memory page which has not been transferred from the source host yet.
*/
# define VIR_DOMAIN_JOB_MEMORY_POSTCOPY_REQS "memory_postcopy_requests"
/**
* VIR_DOMAIN_JOB_DISK_TOTAL:
*
@@ -4849,4 +4793,4 @@ int virDomainGetLaunchSecurityInfo(virDomainPtr domain,
int *nparams,
unsigned int flags);
#endif /* LIBVIRT_DOMAIN_H */
#endif /* __VIR_LIBVIRT_DOMAIN_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-event.h
* Summary: APIs for management of events
* Description: Provides APIs for the management of events
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_EVENT_H
# define LIBVIRT_EVENT_H
#ifndef __VIR_LIBVIRT_EVENT_H__
# define __VIR_LIBVIRT_EVENT_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -59,7 +60,7 @@ typedef void (*virEventHandleCallback)(int watch, int fd, int events, void *opaq
* virEventAddHandleFunc:
* @fd: file descriptor to listen on
* @event: bitset of events on which to fire the callback
* @cb: the callback to be called when an event occurs
* @cb: the callback to be called when an event occurrs
* @opaque: user data to pass to the callback
* @ff: the callback invoked to free opaque data blob
*
@@ -186,4 +187,4 @@ void virEventUpdateTimeout(int timer, int frequency);
int virEventRemoveTimeout(int timer);
#endif /* LIBVIRT_EVENT_H */
#endif /* __VIR_LIBVIRT_EVENT_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-host.h
* Summary: APIs for management of hosts
* Description: Provides APIs for the management of hosts
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_HOST_H
# define LIBVIRT_HOST_H
#ifndef __VIR_LIBVIRT_HOST_H__
# define __VIR_LIBVIRT_HOST_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -743,4 +744,4 @@ int virNodeAllocPages(virConnectPtr conn,
unsigned int flags);
#endif /* LIBVIRT_HOST_H */
#endif /* __VIR_LIBVIRT_HOST_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-interface.h
* Summary: APIs for management of interfaces
* Description: Provides APIs for the management of interfaces
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_INTERFACE_H
# define LIBVIRT_INTERFACE_H
#ifndef __VIR_LIBVIRT_INTERFACE_H__
# define __VIR_LIBVIRT_INTERFACE_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -106,4 +107,4 @@ int virInterfaceChangeRollback(virConnectPtr conn,
int virInterfaceIsActive(virInterfacePtr iface);
#endif /* LIBVIRT_INTERFACE_H */
#endif /* __VIR_LIBVIRT_INTERFACE_H__ */

View File

@@ -19,10 +19,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Author: Daniel P. Berrange <berrange@redhat.com>
*/
#ifndef LIBVIRT_LXC_H
# define LIBVIRT_LXC_H
#ifndef __VIR_LXC_H__
# define __VIR_LXC_H__
# include <libvirt/libvirt.h>
@@ -51,4 +53,4 @@ int virDomainLxcEnterCGroup(virDomainPtr domain,
}
# endif
#endif /* LIBVIRT_LXC_H */
#endif /* __VIR_LXC_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-network.h
* Summary: APIs for management of networks
* Description: Provides APIs for the management of networks
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_NETWORK_H
# define LIBVIRT_NETWORK_H
#ifndef __VIR_LIBVIRT_NETWORK_H__
# define __VIR_LIBVIRT_NETWORK_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -333,4 +334,4 @@ int virConnectNetworkEventRegisterAny(virConnectPtr conn,
int virConnectNetworkEventDeregisterAny(virConnectPtr conn,
int callbackID);
#endif /* LIBVIRT_NETWORK_H */
#endif /* __VIR_LIBVIRT_NETWORK_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-nodedev.h
* Summary: APIs for management of nodedevs
* Description: Provides APIs for the management of nodedevs
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_NODEDEV_H
# define LIBVIRT_NODEDEV_H
#ifndef __VIR_LIBVIRT_NODEDEV_H__
# define __VIR_LIBVIRT_NODEDEV_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -216,4 +217,4 @@ typedef void (*virConnectNodeDeviceEventLifecycleCallback)(virConnectPtr conn,
int detail,
void *opaque);
#endif /* LIBVIRT_NODEDEV_H */
#endif /* __VIR_LIBVIRT_NODEDEV_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-nwfilter.h
* Summary: APIs for management of nwfilters
* Description: Provides APIs for the management of nwfilters
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_NWFILTER_H
# define LIBVIRT_NWFILTER_H
#ifndef __VIR_LIBVIRT_NWFILTER_H__
# define __VIR_LIBVIRT_NWFILTER_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -130,4 +131,4 @@ int virNWFilterBindingDelete(virNWFilterBindingPtr binding);
int virNWFilterBindingRef(virNWFilterBindingPtr binding);
int virNWFilterBindingFree(virNWFilterBindingPtr binding);
#endif /* LIBVIRT_NWFILTER_H */
#endif /* __VIR_LIBVIRT_NWFILTER_H__ */

View File

@@ -19,10 +19,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Author: Chris Lalancette <clalance@redhat.com>
*/
#ifndef LIBVIRT_QEMU_H
# define LIBVIRT_QEMU_H
#ifndef __VIR_QEMU_H__
# define __VIR_QEMU_H__
# include <libvirt/libvirt.h>
@@ -101,4 +103,4 @@ int virConnectDomainQemuMonitorEventDeregister(virConnectPtr conn,
}
# endif
#endif /* LIBVIRT_QEMU_H */
#endif /* __VIR_QEMU_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-secret.h
* Summary: APIs for management of secrets
* Description: Provides APIs for the management of secrets
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014, 2016 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_SECRET_H
# define LIBVIRT_SECRET_H
#ifndef __VIR_LIBVIRT_SECRET_H__
# define __VIR_LIBVIRT_SECRET_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -202,4 +203,4 @@ typedef void (*virConnectSecretEventLifecycleCallback)(virConnectPtr conn,
void *opaque);
#endif /* LIBVIRT_SECRET_H */
#endif /* __VIR_LIBVIRT_SECRET_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-storage.h
* Summary: APIs for management of storage pools and volumes
* Description: Provides APIs for the management of storage pools and volumes
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2016 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_STORAGE_H
# define LIBVIRT_STORAGE_H
#ifndef __VIR_LIBVIRT_STORAGE_H__
# define __VIR_LIBVIRT_STORAGE_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -495,4 +496,4 @@ typedef void (*virConnectStoragePoolEventLifecycleCallback)(virConnectPtr conn,
int detail,
void *opaque);
#endif /* LIBVIRT_STORAGE_H */
#endif /* __VIR_LIBVIRT_STORAGE_H__ */

View File

@@ -2,6 +2,7 @@
* libvirt-stream.h
* Summary: APIs for management of streams
* Description: Provides APIs for the management of streams
* Author: Daniel Veillard <veillard@redhat.com>
*
* Copyright (C) 2006-2014 Red Hat, Inc.
*
@@ -20,8 +21,8 @@
* <http://www.gnu.org/licenses/>.
*/
#ifndef LIBVIRT_STREAM_H
# define LIBVIRT_STREAM_H
#ifndef __VIR_LIBVIRT_STREAM_H__
# define __VIR_LIBVIRT_STREAM_H__
# ifndef __VIR_LIBVIRT_H_INCLUDES__
# error "Don't include this file directly, only use libvirt/libvirt.h"
@@ -266,4 +267,4 @@ int virStreamAbort(virStreamPtr st);
int virStreamFree(virStreamPtr st);
#endif /* LIBVIRT_STREAM_H */
#endif /* __VIR_LIBVIRT_STREAM_H__ */

View File

@@ -19,10 +19,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Author: Daniel Veillard <veillard@redhat.com>
*/
#ifndef LIBVIRT_H
# define LIBVIRT_H
#ifndef __VIR_VIRLIB_H__
# define __VIR_VIRLIB_H__
# include <sys/types.h>
@@ -49,4 +51,4 @@ extern "C" {
}
# endif
#endif /* LIBVIRT_H */
#endif /* __VIR_VIRLIB_H__ */

View File

@@ -19,10 +19,12 @@
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see
* <http://www.gnu.org/licenses/>.
*
* Author: Daniel Veillard <veillard@redhat.com>
*/
#ifndef LIBVIRT_VIRTERROR_H
# define LIBVIRT_VIRTERROR_H
#ifndef __VIR_VIRERR_H__
# define __VIR_VIRERR_H__
# include <libvirt/libvirt.h>
@@ -74,7 +76,7 @@ typedef enum {
VIR_FROM_NETWORK = 19, /* Error from network config */
VIR_FROM_DOMAIN = 20, /* Error from domain config */
VIR_FROM_UML = 21, /* Error at the UML driver; unused since 5.0.0 */
VIR_FROM_UML = 21, /* Error at the UML driver */
VIR_FROM_NODEDEV = 22, /* Error from node device monitor */
VIR_FROM_XEN_INOTIFY = 23, /* Error from xen inotify layer */
VIR_FROM_SECURITY = 24, /* Error from security framework */
@@ -321,11 +323,6 @@ typedef enum {
VIR_ERR_DEVICE_MISSING = 99, /* fail to find the desired device */
VIR_ERR_INVALID_NWFILTER_BINDING = 100, /* invalid nwfilter binding */
VIR_ERR_NO_NWFILTER_BINDING = 101, /* no nwfilter binding */
# ifdef VIR_ENUM_SENTINELS
VIR_ERR_NUMBER_LAST
# endif
} virErrorNumber;
/**
@@ -369,4 +366,4 @@ int virConnCopyLastError (virConnectPtr conn,
}
# endif
#endif /* LIBVIRT_VIRTERROR_H */
#endif /* __VIR_VIRERR_H__ */

View File

@@ -4,7 +4,7 @@
# that's still supported by the vendor. It may work on other distros
# or versions, but no effort will be made to ensure that going forward.
%define min_rhel 7
%define min_fedora 28
%define min_fedora 26
%if (0%{?fedora} && 0%{?fedora} >= %{min_fedora}) || (0%{?rhel} && 0%{?rhel} >= %{min_rhel})
%define supported_platform 1
@@ -20,6 +20,7 @@
# The hypervisor drivers that run in libvirtd
%define with_qemu 0%{!?_without_qemu:1}
%define with_lxc 0%{!?_without_lxc:1}
%define with_uml 0%{!?_without_uml:1}
%define with_libxl 0%{!?_without_libxl:1}
%define with_vbox 0%{!?_without_vbox:1}
@@ -71,7 +72,7 @@
%endif
# We need a recent enough libiscsi (>= 1.18.0)
%if 0%{?fedora} || 0%{?rhel} > 7
%if 0%{?fedora} >= 28 || 0%{?rhel} > 7
%define with_storage_iscsi_direct 0%{!?_without_storage_iscsi_direct:1}
%else
%define with_storage_iscsi_direct 0
@@ -99,23 +100,38 @@
%define with_vbox 0
%endif
# Numactl is not available on many non-x86 archs
%ifarch s390 s390x %{arm} riscv64
# Numactl is not available on s390[x] and ARM
%ifarch s390 s390x %{arm}
%define with_numactl 0
%endif
# libgfapi is built only on x86_64 on rhel
%ifnarch x86_64
%if 0%{?rhel}
%define with_storage_gluster 0
%endif
%endif
# librados and librbd are built only on x86_64 on rhel
%ifnarch x86_64
%if 0%{?rhel}
%define with_storage_rbd 0
%endif
%endif
# zfs-fuse is not available on some architectures
%ifarch s390 s390x aarch64 riscv64
%ifarch s390 s390x aarch64
%define with_storage_zfs 0
%endif
# RHEL doesn't ship OpenVZ, VBox, PowerHypervisor,
# RHEL doesn't ship OpenVZ, VBox, UML, PowerHypervisor,
# VMware, libxenserver (xenapi), libxenlight (Xen 4.1 and newer),
# or HyperV.
%if 0%{?rhel}
%define with_openvz 0
%define with_vbox 0
%define with_uml 0
%define with_phyp 0
%define with_vmware 0
%define with_xenapi 0
@@ -176,10 +192,10 @@
%endif
%if %{with_qemu} || %{with_lxc}
%if %{with_qemu} || %{with_lxc} || %{with_uml}
# numad is used to manage the CPU and memory placement dynamically,
# it's not available on many non-x86 architectures.
%ifnarch s390 s390x %{arm} riscv64
# it's not available on s390[x] and ARM.
%ifnarch s390 s390x %{arm}
%define with_numad 0%{!?_without_numad:1}
%endif
%endif
@@ -198,10 +214,10 @@
%define enable_werror --disable-werror
%endif
%if 0%{?rhel} == 7
%define tls_priority "NORMAL"
%else
%if 0%{?fedora}
%define tls_priority "@LIBVIRT,SYSTEM"
%else
%define tls_priority "NORMAL"
%endif
@@ -229,9 +245,9 @@ Requires: libvirt-daemon-driver-lxc = %{version}-%{release}
%if %{with_qemu}
Requires: libvirt-daemon-driver-qemu = %{version}-%{release}
%endif
# We had UML driver, but we've removed it.
Obsoletes: libvirt-daemon-driver-uml <= 5.0.0
Obsoletes: libvirt-daemon-uml <= 5.0.0
%if %{with_uml}
Requires: libvirt-daemon-driver-uml = %{version}-%{release}
%endif
%if %{with_vbox}
Requires: libvirt-daemon-driver-vbox = %{version}-%{release}
%endif
@@ -256,7 +272,7 @@ BuildRequires: /usr/bin/pod2man
%endif
BuildRequires: gcc
BuildRequires: git
%if 0%{?fedora} || 0%{?rhel} > 7
%if 0%{?fedora} >= 27 || 0%{?rhel} > 7
BuildRequires: perl-interpreter
%else
BuildRequires: perl
@@ -384,7 +400,7 @@ BuildRequires: wireshark-devel >= 2.1.0
BuildRequires: libssh-devel >= 0.7.0
%endif
%if 0%{?fedora} || 0%{?rhel} > 7
%if 0%{?fedora} > 27 || 0%{?rhel} > 7
BuildRequires: rpcgen
BuildRequires: libtirpc-devel
%endif
@@ -741,6 +757,19 @@ the Linux kernel
%endif
%if %{with_uml}
%package daemon-driver-uml
Summary: Uml driver plugin for the libvirtd daemon
Requires: libvirt-daemon = %{version}-%{release}
Requires: libvirt-libs = %{version}-%{release}
%description daemon-driver-uml
The UML driver plugin for the libvirtd daemon, providing
an implementation of the hypervisor driver APIs using
User Mode Linux
%endif
%if %{with_vbox}
%package daemon-driver-vbox
Summary: VirtualBox driver plugin for the libvirtd daemon
@@ -828,6 +857,26 @@ capabilities of LXC
%endif
%if %{with_uml}
%package daemon-uml
Summary: Server side daemon & driver required to run UML guests
Requires: libvirt-daemon = %{version}-%{release}
Requires: libvirt-daemon-driver-uml = %{version}-%{release}
Requires: libvirt-daemon-driver-interface = %{version}-%{release}
Requires: libvirt-daemon-driver-network = %{version}-%{release}
Requires: libvirt-daemon-driver-nodedev = %{version}-%{release}
Requires: libvirt-daemon-driver-nwfilter = %{version}-%{release}
Requires: libvirt-daemon-driver-secret = %{version}-%{release}
Requires: libvirt-daemon-driver-storage = %{version}-%{release}
# There are no UML kernel RPMs in Fedora/RHEL to depend on.
%description daemon-uml
Server side daemon and driver required to manage the virtualization
capabilities of UML
%endif
%if %{with_libxl}
%package daemon-xen
Summary: Server side daemon & driver required to run XEN guests
@@ -1033,6 +1082,12 @@ exit 1
%define arg_vmware --without-vmware
%endif
%if %{with_uml}
%define arg_uml --with-uml
%else
%define arg_uml --without-uml
%endif
%if %{with_storage_rbd}
%define arg_storage_rbd --with-storage-rbd
%else
@@ -1146,6 +1201,7 @@ rm -f po/stamp-po
--with-avahi \
--with-polkit \
--with-libvirtd \
%{?arg_uml} \
%{?arg_phyp} \
%{?arg_esx} \
%{?arg_hyperv} \
@@ -1274,6 +1330,9 @@ rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.libxl
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_libxl.aug
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_libxl.aug
%endif
%if ! %{with_uml}
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/libvirtd.uml
%endif
# Copied into libvirt-docs subpackage eventually
mv $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-%{version} libvirt-docs
@@ -1680,6 +1739,15 @@ exit 0
%{_libdir}/%{name}/connection-driver/libvirt_driver_lxc.so
%endif
%if %{with_uml}
%files daemon-driver-uml
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/uml/
%config(noreplace) %{_sysconfdir}/logrotate.d/libvirtd.uml
%ghost %dir %{_localstatedir}/run/libvirt/uml/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/uml/
%{_libdir}/%{name}/connection-driver/libvirt_driver_uml.so
%endif
%if %{with_libxl}
%files daemon-driver-libxl
%config(noreplace) %{_sysconfdir}/libvirt/libxl.conf
@@ -1710,6 +1778,10 @@ exit 0
%files daemon-lxc
%endif
%if %{with_uml}
%files daemon-uml
%endif
%if %{with_libxl}
%files daemon-xen
%endif

View File

@@ -26,34 +26,40 @@ AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [
LIBXL_CFLAGS=""
LIBXL_FIRMWARE_DIR=""
LIBXL_EXECBIN_DIR=""
LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040500"
LIBXL_API_VERSION="-DLIBXL_API_VERSION=0x040400"
dnl search for libxl, aka libxenlight
dnl Xen > 4.5 introduced a pkgconfig file, check for it first
old_with_libxl="$with_libxl"
LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.6.0], [true])
LIBVIRT_CHECK_PKG([LIBXL], [xenlight], [4.4.0], [true])
if test "x$with_libxl" = "xyes" ; then
LIBXL_FIRMWARE_DIR=$($PKG_CONFIG --variable xenfirmwaredir xenlight)
LIBXL_EXECBIN_DIR=$($PKG_CONFIG --variable libexec_bin xenlight)
fi
dnl In Fedora <= 28, the xenlight pkgconfig file is in the -runtime package
dnl https://bugzilla.redhat.com/show_bug.cgi?id=1629643
dnl Until Fedora 28 reaches EOL, fallback to lib probe if xenlight.pc is
dnl not found
dnl pkgconfig file not found, fallback to lib probe
if test "x$with_libxl" = "xno" ; then
with_libxl="$old_with_libxl"
save_CFLAGS="$CFLAGS"
dnl LIBXL_API_VERSION 4.4.0 introduced a new parameter to
dnl libxl_domain_create_restore for specifying restore parameters.
dnl The libxl driver will make use of this new parameter for specifying
dnl the Xen migration stream version. Specify LIBXL_API_VERSION to trigger
dnl an error if there is too old xenlight
libxlold_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $LIBXL_API_VERSION"
LIBVIRT_CHECK_LIB([LIBXL], [xenlight], [libxl_cpupool_cpuadd_cpumap], [libxl.h], [fail="1"])
CFLAGS="$save_CFLAGS"
LIBVIRT_CHECK_LIB([LIBXL], [xenlight], [libxl_ctx_alloc], [libxl.h], [fail="1"])
CFLAGS="$libxlold_CFLAGS"
if test $fail = 1; then
AC_MSG_ERROR([You must install the libxl Library from Xen >= 4.6 to compile libxenlight driver with -lxl])
AC_MSG_ERROR([You must install the libxl Library from Xen >= 4.4 to compile libxenlight driver with -lxl])
fi
fi
if test "$with_libxl" = "yes"; then
old_LIBS="$LIBS"
old_CFLAGS="$CFLAGS"
LIBXL_CFLAGS="$LIBXL_CFLAGS $LIBXL_API_VERSION"
dnl If building with libxl, use the libxl utility header and lib too
@@ -73,10 +79,14 @@ AC_DEFUN([LIBVIRT_DRIVER_CHECK_LIBXL], [
],[
LIBXL_LIBS="$LIBXL_LIBS -lxenstore -lxenctrl"
])
fi
dnl Check if Xen has support for PVH
AC_CHECK_DECL(LIBXL_DOMAIN_TYPE_PVH, [AC_DEFINE([HAVE_XEN_PVH], [1], [Define to 1 if Xen has PVH support.])], [], [#include <libxl.h>])
dnl Check if libxl_domain_config_from_json is available for domXML to
dnl libxl_domain_config tests
LIBS="$LIBS -lxenlight -lxenctrl"
AC_CHECK_FUNCS([libxl_domain_config_from_json])
CFLAGS="$old_CFLAGS"
LIBS="$old_LIBS"
fi
AC_SUBST([LIBXL_CFLAGS])
AC_SUBST([LIBXL_LIBS])

54
m4/virt-driver-uml.m4 Normal file
View File

@@ -0,0 +1,54 @@
dnl The UML driver
dnl
dnl Copyright (C) 2005-2015 Red Hat, Inc.
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU Lesser General Public
dnl License as published by the Free Software Foundation; either
dnl version 2.1 of the License, or (at your option) any later version.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Lesser General Public License for more details.
dnl
dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library. If not, see
dnl <http://www.gnu.org/licenses/>.
dnl
AC_DEFUN([LIBVIRT_DRIVER_ARG_UML],[
LIBVIRT_ARG_WITH_FEATURE([UML], [UML], [check])
])
AC_DEFUN([LIBVIRT_DRIVER_CHECK_UML],[
if test "$with_libvirtd" = "no" || test "$with_linux" = "no"; then
if test "$with_uml" = "yes"; then
AC_MSG_ERROR([The UML driver cannot be enabled])
elif test "$with_uml" = "check"; then
with_uml="no"
fi
fi
if test "$with_uml" = "yes" || test "$with_uml" = "check"; then
AC_CHECK_HEADER([sys/inotify.h], [
with_uml=yes
], [
if test "$with_uml" = "check"; then
with_uml=no
AC_MSG_NOTICE([<sys/inotify.h> is required for the UML driver, disabling it])
else
AC_MSG_ERROR([The <sys/inotify.h> is required for the UML driver. Upgrade your libc6.])
fi
])
fi
if test "$with_uml" = "yes" ; then
AC_DEFINE_UNQUOTED([WITH_UML], 1, [whether UML driver is enabled])
fi
AM_CONDITIONAL([WITH_UML], [test "$with_uml" = "yes"])
])
AC_DEFUN([LIBVIRT_DRIVER_RESULT_UML],[
LIBVIRT_RESULT([UML], [$with_uml])
])

View File

@@ -177,6 +177,7 @@ autoreconf -if
--without-avahi \
--without-polkit \
--without-libvirtd \
--without-uml \
%{?_without_phyp} \
%{?_without_esx} \
%{?_without_hyperv} \

View File

@@ -190,6 +190,8 @@ src/storage/storage_backend_zfs.c
src/storage/storage_driver.c
src/storage/storage_util.c
src/test/test_driver.c
src/uml/uml_conf.c
src/uml/uml_driver.c
src/util/iohelper.c
src/util/viralloc.c
src/util/virarptable.c

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Amharic\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Angika\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -7,9 +7,9 @@
# Daniel Berrange <dan-zanata@berrange.com>, 2018. #zanata
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2018-04-24 04:33+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Arabic (http://www.transifex.com/projects/p/fedora/language/"
@@ -20,4 +20,4 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -13,9 +13,9 @@
# Nilamdyuti Goswami <ngoswami@redhat.com>, 2014
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2015-02-26 06:48+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Assamese (http://www.transifex.com/projects/p/libvirt/"
@@ -25,7 +25,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"
msgid ""
"\n"
@@ -287,6 +287,9 @@ msgstr " নেটৱাৰ্কিং:"
msgid " Storage:"
msgstr " সংৰক্ষণ:"
msgid " block_io_throttle reply was missing device list"
msgstr "block_io_throttle উত্তৰত ডিভাইচ তালিকা নাছিল"
#, c-format
msgid ""
"!!! SSH HOST KEY VERIFICATION FAILED !!!: Identity of host '%s:%d' differs "
@@ -595,6 +598,9 @@ msgstr "guest-get-vcpus ৰ উত্তৰত 'logical-id' নাই"
msgid "'online' missing in reply of guest-get-vcpus"
msgstr "guest-get-vcpus ৰ উত্তৰত 'online' নাই"
msgid "'parent' for vHBA not specified, and cannot find one on this host"
msgstr "vHBA ৰ বাবে 'parent' ধাৰ্য্য কৰা হোৱা নাই, আৰু এই হস্টত এটা পোৱা নাযায়"
msgid "'peak' and 'burst' require 'average' attribute"
msgstr "'peak' আৰু 'burst' ৰ বাবে 'average' বৈশিষ্ট্যৰ প্ৰয়োজন"
@@ -941,6 +947,9 @@ msgstr "NAT '%s' কৰাৰ চেষ্টা কৰা হৈছে। NAT
msgid "Attribute mode is only allowed for guest CPU"
msgstr "বৈশিষ্ট অৱস্থা কেৱল অতিথি CPU ৰ বাবে অনুমোদিত"
msgid "Authentication Credentials not found"
msgstr "প্ৰমাণীকৰণ তথ্যসমূহ পোৱা নগল"
msgid "Authentication failed"
msgstr "অনুমোদন বিফল"
@@ -1413,6 +1422,9 @@ msgstr "বেলুন ডিভাইচ পথ নিৰ্ধাৰণ ক
msgid "Cannot determine free memory"
msgstr "মুক্ত মেমৰি নিৰ্ধাৰণ কৰিব নোৱাৰি"
msgid "Cannot determine system clock HZ"
msgstr "চিস্টেম ঘড়ী HZ নিৰ্ধাৰণ কৰিব নোৱাৰি"
#, c-format
msgid "Cannot directly attach floppy %s"
msgstr "ফ্ল'পি %s পোনেপোনে সংযুক্ত কৰিব নোৱাৰি"
@@ -1630,6 +1642,14 @@ msgstr "চকেট ঠিকনা '%s' বিশ্লেষণ কৰিব
msgid "Cannot parse start time %s in %s"
msgstr "%s ত আৰম্ভণি সময় %s বিশ্লেষণ কৰিব নোৱাৰি"
#, c-format
msgid "Cannot parse sys stat '%s'"
msgstr "sys স্টেট '%s' বিশ্লেষণ কৰিব নোৱাৰি"
#, c-format
msgid "Cannot parse user stat '%s'"
msgstr "ব্যৱহাৰকাৰী স্টেট '%s' বিশ্লেষণ কৰিব নোৱাৰি"
#, c-format
msgid ""
"Cannot plug '%s' interface into '%s' because it would overcommit 'average' "
@@ -1778,6 +1798,10 @@ msgstr "আৰম্ভ নকৰা CURL হেণ্ডেল অংশীদ
msgid "Cannot specify a label if relabelling is turned off. model=%s"
msgstr "এটা লেবেল ধাৰ্য্য কৰিব নোৱাৰি যদি পুনৰলেবেলিং বন্ধ কৰা থাকে। model=%s"
#, c-format
msgid "Cannot stat %s"
msgstr "%s স্টেট কৰিব নোৱাৰি"
#, c-format
msgid "Cannot undefine HostVirtualSwitch that has a '%s' port"
msgstr "এটা '%s' পোৰ্ট থকা HostVirtualSwitch অবিৱৰিত কৰিব নোৱাৰি"
@@ -1954,6 +1978,10 @@ msgstr ""
msgid "Command %s too long for destination"
msgstr "গন্তব্যৰ ক্ষেত্ৰত আদেশ %s অত্যাধিক দীঘল"
#, c-format
msgid "Command '%s' is not found"
msgstr "কমান্ড '%s' পোৱা নগল"
msgid "Commit aborted"
msgstr "Commit বাদ দিয়া হল"
@@ -2065,6 +2093,26 @@ msgstr "ডোমেইন বৰ্তমানে সক্ৰিয় নহয়
msgid "Control groups not supported on this platform"
msgstr "নিয়ন্ত্ৰণ দলসমূহ এই প্লেটফৰ্মত সমৰ্থিত নহয়"
#, c-format
msgid "Controller %d out of range"
msgstr "নিয়ন্ত্ৰক %d বিস্তাৰৰ বাহিৰ"
#, c-format
msgid "Controller '%s' is not enabled for group"
msgstr "নিয়ন্ত্ৰক '%s' দলৰ বাবে সামৰ্থবান নহয়"
#, c-format
msgid "Controller '%s' is not mounted"
msgstr "নিয়ন্ত্ৰক '%s' মাউণ্ট কৰা নাই"
#, c-format
msgid "Controller '%s' is not wanted, but '%s' is co-mounted"
msgstr "নিয়ন্ত্ৰক '%s' ৰ প্ৰয়োজন নাই, কিন্তু '%s' co-mount কৰা আছে"
#, c-format
msgid "Controller '%s' not mounted"
msgstr "নিয়ন্ত্ৰক '%s' মাউণ্টেড নহয়"
msgid "Controllers must use the 'ccid' address type"
msgstr "নিয়ন্ত্ৰকসমূহে 'ccid' ঠিকনা ধৰণ ব্যৱহাৰ কৰিব লাগিব"
@@ -2258,6 +2306,9 @@ msgstr "নাম '%s' ৰ সৈতে PhysicalNic পোৱা নগল"
msgid "Could not find any 'network' element in status file"
msgstr "অৱস্থা ফাইলত কোনো 'network' উপাদান পোৱা নগল"
msgid "Could not find any mounted controllers"
msgstr "কোনো মাউণ্ট কৰা নিয়ন্ত্ৰক পোৱা নগল"
#, c-format
msgid "Could not find compute resource specified in '%s'"
msgstr "'%s' ত ধাৰ্য্যত সম্পদ গণনা কৰিব পৰা নগল"
@@ -2274,6 +2325,10 @@ msgstr "প্ৰকৃত পথ '%s' অন্তৰ্ভুক্ত কৰ
msgid "Could not find datastore with name '%s'"
msgstr "নাম '%s' ৰ সৈতে তথ্যসংগ্ৰহ বিচাৰি পোৱা নগল"
#, c-format
msgid "Could not find directory separator in %s"
msgstr "%s ত ডাইৰেকটৰি বিভাজক পোৱা নগল"
#, c-format
msgid "Could not find domain snapshot with internal name '%s'"
msgstr "অভ্যন্তৰীক নাম '%s' ৰ সৈতে ডমেইন স্নেপস্বট পোৱা নগল"
@@ -2309,6 +2364,10 @@ msgstr "MAC ঠিকনা '%s' ৰ সৈতে ভৌতিক NIC পোৱ
msgid "Could not find physical NIC with name '%s'"
msgstr "নাম '%s' ৰ সৈতে ভৌতিক NIC পোৱা নগল"
#, c-format
msgid "Could not find placement for controller %s at %s"
msgstr "%s ত নিয়ন্ত্ৰক %s ৰ বাবে স্থাপনা বিচাৰি পোৱা নগল"
#, c-format
msgid "Could not find snapshot with name '%s'"
msgstr "'%s' নামৰ সৈতে স্নেপশ্বট বিচাৰি পোৱা নগল"
@@ -3004,6 +3063,10 @@ msgstr "ডিভাইচ %s ইতিমধ্যে অস্তিত্ব
msgid "Device %s detached\n"
msgstr "ডিভাইচ %s অসংলগ্ন কৰা হল\n"
#, c-format
msgid "Device %s in use"
msgstr "ডিভাইচ %s ব্যৱহৃত"
#, c-format
msgid "Device %s is already in use"
msgstr "%s ডিভাইচ বৰ্তমানে ব্যৱহৃত হৈছে"
@@ -3873,6 +3936,10 @@ msgstr "নেটৱৰ্ক সংৰূপ পৰিবৰ্তন লেন
msgid "Failed to bind PCI device '%s' to %s"
msgstr "PCI ডিভাইচ '%s' ক %s লৈ bind কৰিবলৈ বিফল"
#, c-format
msgid "Failed to bind cgroup '%s' on '%s'"
msgstr "'%s' ত cgroup '%s' বাইণ্ড কৰিবলে ব্যৰ্থ"
#, c-format
msgid "Failed to bind mount directory %s to %s"
msgstr "মাউণ্ট ডাইৰেকটৰি %s ক %s লে বান্ধিবলে ব্যৰ্থ"
@@ -4031,6 +4098,10 @@ msgstr "বান্ধনী লক্ষ্য %s সৃষ্টি কৰি
msgid "Failed to create bridge node in xml document"
msgstr "xml দস্তাবেজত ব্ৰিজ ন'ড সৃষ্টি কৰিবলে ব্যৰ্থ"
#, c-format
msgid "Failed to create controller %s for group"
msgstr "দলৰ বাবে নিয়ন্ত্ৰক %s সৃষ্টি কৰিবলে ব্যৰ্থ"
#, c-format
msgid "Failed to create directory for '%s' dev '%s'"
msgstr "'%s' dev '%s' ৰ বাবে ডাইৰেকটৰি সৃষ্টি কৰিবলে ব্যৰ্থ"
@@ -4314,6 +4385,9 @@ msgstr "আন্তঃপৃষ্ঠ %s ৰ বাবে নতুন না
msgid "Failed to get %s minor number"
msgstr "%s গৌণ সংখ্যা প্ৰাপ্ত কৰিবলে ব্যৰ্থ"
msgid "Failed to get PCI Config Address String"
msgstr "PCI সংৰূপ ঠিকনা স্ট্ৰিং প্ৰাপ্ত কৰিবলে ব্যৰ্থ"
msgid "Failed to get PCI SYSFS file"
msgstr "PCI SYSFS ফাইল প্ৰাপ্ত কৰিবলে ব্যৰ্থ"
@@ -4589,6 +4663,10 @@ msgstr "ডোমেইন %s স্বয়ংক্ৰিয় প্ৰাৰম
msgid "Failed to mkdir %s"
msgstr "mkdir %s কৰিবলৈ ব্যৰ্থযৰ্থ"
#, c-format
msgid "Failed to mount %s on %s type %s"
msgstr "%s ধৰণ %s ত %s মাউণ্ট কৰিবলে ব্যৰ্থ"
#, c-format
msgid "Failed to mount %s on /dev"
msgstr "%s ক /dev ত মাউণ্ট কৰিবলে ব্যৰ্থ"
@@ -6539,6 +6617,13 @@ msgstr "সৰ্বাধিক মেমৰি, স্কেইল্ড প
msgid "Max memory:"
msgstr "সৰ্বোচ্চ মেমৰি:"
msgid "Maximum CPUs greater than specified machine type limit"
msgstr "ধাৰ্য্যত মেচিন ধৰণ সীমাতকৈ সৰ্বাধিক CPUs অধিক"
#, c-format
msgid "Memory '%llu' must be less than %llu"
msgstr "মেমৰি '%llu', %llu কে কম হব লাগিব"
msgid "Memory allocation failure"
msgstr "মেমৰি বিতৰণ কৰোঁতে ব্যৰ্থ"
@@ -6644,6 +6729,10 @@ msgstr "'%s' বৈশিষ্ট্য সন্ধানহীন"
msgid "Missing '%s' property while looking for ManagedEntityStatus"
msgstr "ManagedEntityStatus ৰ বাবে সন্ধান কৰোতে '%s' বৈশিষ্ট সন্ধানহীন"
#, c-format
msgid "Missing '/' separator in cgroup mount '%s'"
msgstr "cgroup মাউণ্ট '%s' ত '/' বিভাজক নাই"
msgid "Missing 'cores' attribute in CPU topology"
msgstr "CPU টোপোলজিত 'core' নামক গুণ অনুপস্থিত"
@@ -6702,6 +6791,9 @@ msgstr "CPU গুণৰ নাম অনুপস্থিত"
msgid "Missing CPU model name"
msgstr "CPU ৰ মডেলৰ নাম অনুপস্থিত"
msgid "Missing CPU vendor name"
msgstr "CPU বিক্ৰেতা নাম সন্ধানহীন"
msgid "Missing ID parameter for domain object"
msgstr "ডমেইন অবজেক্টৰ বাবে ID প্ৰাচল সন্ধানহীন"
@@ -6844,6 +6936,9 @@ msgstr ""
msgid "Missing or invalid PVR value in CPU model %s"
msgstr "CPU আৰ্হি %s ত সন্ধানহীন অথবা অবৈধ PVR মান"
msgid "Missing or invalid auth pointer"
msgstr "সন্ধানহীন অথবা অবৈধ auth পইন্টাৰ"
msgid "Missing or invalid scsi adapter 'unique_id' value"
msgstr "সন্ধানহীন অথবা অবৈধ scsi adapter 'unique_id' মান"
@@ -7293,6 +7388,9 @@ msgstr "স্বাক্ষৰ %s ৰ বাবে কোনো args নাই
msgid "No authentication callback available"
msgstr "কোনো প্ৰমাণীকৰণ কলবেক উপলব্ধ নাই"
msgid "No authentication callback provided."
msgstr "অনুমোদনৰ কোনো কল-বেক উপলব্ধ কৰা নহয়।"
msgid "No authentication methods and credentials provided"
msgstr "কোনো প্ৰমাণীকৰণ পদ্ধতি আৰু তথ্য প্ৰদান কৰা হোৱা নাই"
@@ -8420,6 +8518,9 @@ msgstr "SCSI ডিস্ক সূচী ('%s' ৰ পৰা বিশ্লে
msgid "SCSI host device doesn't support managed mode"
msgstr "SCSI হস্ট ডিভাইচে ব্যৱস্থাপিত অৱস্থা সমৰ্থন নকৰে"
msgid "SCSI passthrough is not supported by this version of qemu"
msgstr "qemu ৰ এই সংস্কৰণ দ্বাৰা SCSI পাছথ্ৰু সমৰ্থিত নহয়"
#, c-format
msgid "SCSI unit index %d out of [0..6,8..15] range"
msgstr "SCSI একক সূচী %d [0..6,8..15] বিস্তাৰৰ বাহিৰ"
@@ -9732,6 +9833,9 @@ msgstr "USB ডিভাইচ %s ইতিমধ্যে ব্যৱহৃত
msgid "USB host device is missing bus/device information"
msgstr "USB হোস্ট ডিভাইচত বাচ/ডিভাইচ সংক্ৰান্ত তথ্য অনুপস্থিত"
msgid "USB redirection booting is not supported by this version of QEMU"
msgstr "QEMU ৰ এই সংস্কৰণ দ্বাৰা USB পুনৰনিৰ্দেশ বুটিং সমৰ্থিত নহয়"
msgid "USB redirection filter is not supported by this version of QEMU"
msgstr "USB পুনৰনিৰ্দেশ ফিল্টাৰ QEMU ৰ এই সংস্কৰণ দ্বাৰা সমৰ্থিত নহয়"
@@ -9916,12 +10020,6 @@ msgstr "চকেট ফাইল হেণ্ডেল কপি কৰিব
msgid "Unable to create %s"
msgstr "%s সৃষ্টি কৰিবলে অক্ষম"
msgid "Unable to create JSON formatter"
msgstr "JSON ফৰমেটাৰ সৃষ্টি কৰিবলে অক্ষম"
msgid "Unable to create JSON parser"
msgstr "JSON বিশ্লেষক সৃষ্টি কৰিবলে অক্ষম"
#, c-format
msgid "Unable to create LPAR. Reason: '%s'"
msgstr "LPAR সৃষ্টি কৰিবলে অক্ষম। কাৰণ: '%s'"
@@ -9951,6 +10049,10 @@ msgstr "ব্ৰিজ ডিভাইচ সৃষ্টি কৰিবলে
msgid "Unable to create device %s"
msgstr "ডিভাইচ %s সৃষ্টি কৰিবলে অক্ষম"
#, c-format
msgid "Unable to create directory %s"
msgstr "ডাইৰেকটৰি %s সৃষ্টি কৰিবলে অক্ষম"
msgid "Unable to create epoll fd"
msgstr "epoll fd সৃষ্টি কৰিবলে অক্ষম"
@@ -10414,9 +10516,6 @@ msgstr "'%s' খোলিবলে অক্ষম"
msgid "Unable to open /dev/loop-control"
msgstr "/dev/loop-control খোলিবলৈ অক্ষম"
msgid "Unable to open /proc/mounts"
msgstr "/proc/mounts খোলিবলে অক্ষম"
msgid "Unable to open UNIX socket"
msgstr "UNIX চকেট খোলিবলে অক্ষম"
@@ -10707,6 +10806,10 @@ msgstr "এই প্লেটফৰ্মত %s ত STP সংহতি কৰ
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "VM লগ ফাইলৰ close on exec ফ্লেগ %s নিৰ্ধাৰণ কৰোঁতে ব্যৰ্থ"
#, c-format
msgid "Unable to set bridge %s %s"
msgstr "ব্ৰিজ %s %s সংহতি কৰিবলে অক্ষম"
msgid "Unable to set cloexec flag"
msgstr "cloexec ফ্লেগ সংহতি কৰিবলে অক্ষম"
@@ -10769,6 +10872,10 @@ msgstr "বান্ধনী উৎস %s stat কৰিবলে অক্ষ
msgid "Unable to stat bind target %s"
msgstr "বান্ধনী লক্ষ্য %s বান্ধীবলে অক্ষম"
#, c-format
msgid "Unable to symlink directory %s to %s"
msgstr "ডাইৰেকটৰি %s ক %s লে symlink কৰিব নোৱাৰি"
#, c-format
msgid "Unable to truncate %s"
msgstr "%s চুটি কৰিবলে অক্ষম"
@@ -10898,6 +11005,9 @@ msgstr "non-peer2peer প্ৰব্ৰজনৰ সৈতে অপ্ৰত
msgid "Unexpected disk sgio mode '%d'"
msgstr "অপ্ৰত্যাশিত ডিস্ক sgio অৱস্থা '%d'"
msgid "Unexpected error"
msgstr "অপ্ৰত্যাশিত ত্ৰুটি"
#, c-format
msgid "Unexpected filesystem type %s"
msgstr "অপ্ৰত্যাশিত ফাইলচিস্টেম ধৰণ %s"
@@ -11415,6 +11525,9 @@ msgid "VMX entry 'sched.cpu.affinity' contains a %d, this value is too large"
msgstr ""
"VMX প্ৰবিষ্টি 'sched.cpu.affinity' এ এটা %d অন্তৰ্ভুক্ত কৰে, এই মান অত্যাধিক ডাঙৰ"
msgid "VNC WebSockets are not supported with this QEMU binary"
msgstr "এই QEMU বাইনাৰিৰ সৈতে VNC WebSockets সমৰ্থিত নহয়"
msgid "VNC supports connected='keep' only"
msgstr "VNC এ কেৱল connected='keep' সমৰ্থণ কৰে"
@@ -12024,6 +12137,25 @@ msgstr "এটাৰ অধিক ডিভাইচৰ বাবে ব্য
msgid "booted"
msgstr "বুটেড"
msgid ""
"booting from PCI devices assigned with VFIO is not supported with this "
"version of qemu"
msgstr ""
"VFIO ৰ সৈতে ধাৰ্য্যত PCI ডিভাইচসমূহৰ পৰা বুট কৰাটো qemu ৰ এই সংস্কৰণৰ সৈতে সমৰ্থিত "
"নহয়"
msgid ""
"booting from assigned PCI devices is not supported with this version of qemu"
msgstr "qemu ৰ এই সংস্কৰণৰ সৈতে ধাৰ্য্যত PCI ডিভাইচসমূহৰ পৰা বুট কৰাটো সমৰ্থিত নহয়"
msgid ""
"booting from assigned SCSI devices is not supported with this version of qemu"
msgstr "qemu ৰ এই সংস্কৰণৰ সৈতে ধাৰ্য্যত SCSI ডিভাইচসমূহৰ পৰা বুট কৰাটো সমৰ্থিত নহয়"
msgid ""
"booting from assigned USB devices is not supported with this version of qemu"
msgstr "qemu ৰ এই সংস্কৰণৰ সৈতে ধাৰ্য্যত USB ডিভাইচসমূহৰ পৰা বুট কৰাটো সমৰ্থিত নহয়"
msgid ""
"booting from assigned devices is only supported for PCI, USB and SCSI devices"
msgstr ""
@@ -12566,6 +12698,9 @@ msgstr "সুৰক্ষা props %d (%s) প্ৰাপ্ত কৰিব
msgid "cannot get the host uuid"
msgstr "হস্ট uuid প্ৰাপ্ত কৰিব নোৱাৰি"
msgid "cannot get the path of MEMORY cgroup controller"
msgstr "MEMORY cgroup নিয়ন্ত্ৰকৰ পথ প্ৰাপ্ত কৰিব নোৱাৰি"
msgid "cannot get vCPU placement & pCPU time"
msgstr "vCPU স্থাপনাও আৰু pCPU ৰ সময় প্ৰাপ্ত কৰিবলৈ ব্যৰ্থ"
@@ -12728,6 +12863,10 @@ msgstr "ভলিউম '%s' খোলোঁতে ব্যৰ্থ"
msgid "cannot parse %s version number in '%.*s'"
msgstr "%s সংস্কৰণ সংখ্যা বিশ্লেষণ কৰিব নোৱাৰি '%.*s'"
#, c-format
msgid "cannot parse CPU map for %s architecture"
msgstr "%s স্থাপত্যৰ বাবে CPU মেপ বিশ্লেষণ কৰা সম্ভৱ নহয়"
#, c-format
msgid "cannot parse CPU topology '%s'"
msgstr "CPU ৰ টোপোলজি '%s' বিশ্লেষণ কৰিবলৈ ব্যৰ্থ"
@@ -12819,10 +12958,6 @@ msgstr "interfaceid প্ৰাচলক uuid হিচাপে বিশ্
msgid "cannot parse io mode '%s'"
msgstr "io অৱস্থা '%s' বিশ্লেষণ কৰিব নোৱাৰি"
#, c-format
msgid "cannot parse json %s: %s"
msgstr "json %s বিশ্লেষণ কৰা সম্ভৱ নহয়: %s"
#, c-format
msgid "cannot parse nbd filename '%s'"
msgstr "nbd ফাইলনাম '%s' বিশ্লেষণ কৰিব নোৱাৰি"
@@ -13259,6 +13394,14 @@ msgstr "%s ত cellNum %d কে কম বা সমান হব লাগি
msgid "cellNum in %s only accepts %d as a negative value"
msgstr "%s ত cellNum এ %d ক কেৱল ধনাত্মক মান হিচাপে গ্ৰহণ কৰে"
#, c-format
msgid "cfs_period '%llu' must be in range (1000, 1000000)"
msgstr "cfs_period '%llu' বিস্তাৰ (1000, 1000000) ত হব লাগিব"
#, c-format
msgid "cfs_quota '%lld' must be in range (1000, %llu)"
msgstr "cfs_quota '%lld' বিস্তাৰ (1000, %llu) ত হব লাগিব"
msgid "cgroup CPU controller is not mounted"
msgstr "cgroup CPU নিয়ন্ত্ৰক মাউণ্ট কৰা নহয়"
@@ -13401,6 +13544,10 @@ msgstr "সংৰূপ"
msgid "config data file to import from"
msgstr "আমদানি কৰিব লগা বিন্যাস তথ্যৰ ফাইল"
#, c-format
msgid "config value %s not a string"
msgstr "সংৰূপ মান %s এটা স্ট্ৰিং নহয়"
#, c-format
msgid "config value %s was malformed"
msgstr "বিন্যাসৰ মান %s ভুল"
@@ -13409,6 +13556,10 @@ msgstr "বিন্যাসৰ মান %s ভুল"
msgid "config value %s was missing"
msgstr "বিন্যাসৰ মান %s নাছিল"
#, c-format
msgid "config value %s was not a string"
msgstr "বিন্যাসৰ মান %s এটা স্ট্ৰিং নাছিল"
msgid "configuration file syntax error"
msgstr "বিনেস ফাইলৰ শব্দবিনেসত ভুল"
@@ -15161,6 +15312,9 @@ msgstr "qemu ডিভাইচ তালিকা বিশ্লেষণ ক
msgid "failed to parse value of %s"
msgstr "%s ৰ বাবে মান বিশ্লেষণ কৰিবলে ব্যৰ্থ"
msgid "failed to parse xml document"
msgstr "xml নথি বিশ্লেষণ কৰোঁতে ব্যৰ্থ"
#, c-format
msgid "failed to pivot job for disk %s"
msgstr "ডিস্ক %s ৰ বাবে কাৰ্য্য পিভট কৰিবলে ব্যৰ্থ"
@@ -15234,6 +15388,9 @@ msgstr "তথ্যসমূহ উদ্ধাৰ কৰিবলে ব্য
msgid "failed to retrieve decision to accept host key"
msgstr "হস্ট কি' গ্ৰহণ কৰিবলে সিধান্ত উদ্ধাৰ কৰিবলে ব্যৰ্থ"
msgid "failed to retrieve password"
msgstr "পাছৱৰ্ড উদ্ধাৰ কৰিবলে ব্যৰ্থ"
msgid "failed to retrieve private key passphrase: callback has failed"
msgstr "ব্যক্তিগত কি' পাচফ্ৰেইছ উদ্ধাৰ কৰিবলে ব্যৰ্থ: কলবেক ব্যৰ্থ হৈছে"
@@ -15729,6 +15886,9 @@ msgstr "hugepage আকাৰ শূন্য হব নোৱাৰিব"
msgid "hypervisor connection URI"
msgstr "হাইপাৰ ভাইসৰ সংযোগৰ URI"
msgid "hypervisor lacks deviceboot feature"
msgstr "হাইপাৰজৰত ডিভাইচবুট বৈশিষ্ট্য নাই"
msgid "iSCSI storage pool does not support volume creation"
msgstr "iSCSI সংৰক্ষণ পুলে ভলিউম সৃষ্টি সমৰ্থন নকৰে"
@@ -16961,6 +17121,10 @@ msgstr "maxuuids > REMOTE_SECRET_LIST_MAX"
msgid "mem(Suspend-to-RAM), disk(Suspend-to-Disk), hybrid(Hybrid-Suspend)"
msgstr "mem(Suspend-to-RAM), disk(Suspend-to-Disk), hybrid(Hybrid-Suspend)"
#, c-format
msgid "memballoon unsupported with address type '%s'"
msgstr "ঠিকনা ধৰণ '%s' ৰ সৈতে memballoon অসমৰ্থিত"
msgid "memory attributes: [file=]name[,snapshot=type]"
msgstr "মেমৰি বৈশিষ্ট্যসমূহ: [file=]name[,snapshot=type]"
@@ -17913,6 +18077,9 @@ msgstr "'%s' ৰ কাৰণে কোনো ব্ল'ক ডিভাইচ
msgid "no call waiting for reply with prog %d vers %d serial %d"
msgstr "prog %d vers %d serial %d ৰ সৈতে উত্তৰৰ বাবে অপেক্ষা কৰা কোনো কল নাই"
msgid "no callback provided"
msgstr "কোনো কলবেক প্ৰদান কৰা হোৱা নাই"
msgid "no client username was found"
msgstr "গ্ৰাহকৰ ব্যৱহাৰকৰোঁতাৰ নাম পোৱা নাযায়"
@@ -17942,6 +18109,10 @@ msgstr "এলিয়াচ %s ৰ সৈতে কোনো ডিভাইচ
msgid "no disk format for %s and probing is disabled"
msgstr "%s ৰ বাবে কোনো ডিস্ক বিন্যাস নাই আৰু প্ৰবিং অসামৰ্থবান কৰা আছে"
#, c-format
msgid "no disk found with alias %s"
msgstr "এলিয়াচ %s ৰ সৈতে কোনো ডিস্ক পোৱা নগল"
#, c-format
msgid "no disk named '%s'"
msgstr "'%s' নামৰ কোনো ডিস্ক নাই"
@@ -20094,6 +20265,9 @@ msgstr "স্নেপশ্বট ফিল্টাৰিং পৰিৱে
msgid "unable to poll on child"
msgstr "ছাইল্ডত পল কৰিবলে অক্ষম"
msgid "unable to probe for add-fd"
msgstr "add-fd ৰ বাবে প্ৰৌব কৰিবলে অক্ষম"
msgid "unable to read child stderr"
msgstr "ছাইল্ড stderr পঢ়িবলে অক্ষম"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Asturian\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Baluchi\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Belarusian\n"
@@ -17,4 +17,4 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -7,9 +7,9 @@
# Miroslav Ivanov <kiro.kopeleto@gmail.com>, 2007.
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2015-02-26 07:16+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/fedora/"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"
msgid ""
"\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.3.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2018-04-24 06:13+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bengali (http://www.transifex.com/projects/p/fedora/language/"
@@ -18,4 +18,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -8,9 +8,9 @@
# runab <runab@redhat.com>, 2006-2010
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2015-02-26 07:10+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bengali (India) (http://www.transifex.com/projects/p/libvirt/"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"
msgid ""
"\n"
@@ -2291,6 +2291,9 @@ msgstr "CPU বৈশিষ্ট্যের নাম অনুপস্থি
msgid "Missing CPU model name"
msgstr "CPU-র মডেলের নাম অনুপস্থিত"
msgid "Missing CPU vendor name"
msgstr "CPU ভেন্ডার নাম অনুপস্থিত"
#, c-format
msgid "Missing IP address in network '%s' DNS HOST record"
msgstr "নেটওয়ার্ক '%s' DNS HOST রেকর্ডে IP ঠিকানা অনুপস্থিত"
@@ -2342,6 +2345,9 @@ msgstr ""
msgid "Missing or invalid PVR value in CPU model %s"
msgstr "CPU মডেল %s এ PVR মান অনুপস্থিত বা অবৈধ"
msgid "Missing or invalid auth pointer"
msgstr "auth পয়েন্টার হয় অনুপস্থিত বা অবৈধ"
#, c-format
msgid "Missing required address attribute in network '%s'"
msgstr "'%s' নেটওয়ার্কে প্রয়োজনীয় ঠিকানা অ্যাট্রিবিউট অনুপস্থিত"
@@ -2525,6 +2531,9 @@ msgstr "কোনো UNIX প্রক্রিয়া অাইডি উপ
msgid "No address associated with hostname"
msgstr "হোস্টনামের সংগে কোনো ঠিকানা সংশ্লিষ্ট নেই"
msgid "No authentication callback provided."
msgstr "অনুমোদনের কোনো কল-ব্যাক উপলব্ধ করা হয়নি।"
msgid "No data supplied for <initarg> element"
msgstr "<initarg> উপাদানের জন্য কোনো ডেটা সরবরাহ করা হয়নি"
@@ -4315,6 +4324,10 @@ msgstr "সকেট খুলতে ব্যর্থ: %s"
msgid "cannot open volume '%s'"
msgstr "ভলিউম '%s' খুলতে ব্যর্থ"
#, c-format
msgid "cannot parse CPU map for %s architecture"
msgstr "%s আর্কিটেকচারের জন্য CPU ম্যাপ পার্স করা সম্ভব নয়"
#, c-format
msgid "cannot parse CPU topology '%s'"
msgstr "CPU-র টোপোলজি '%s' পার্স করতে ব্যর্থ"
@@ -4387,10 +4400,6 @@ msgstr "instanceid প্যারামিটার uuid হিসাবে প
msgid "cannot parse interfaceid parameter as a uuid"
msgstr "instanceid প্যারামিটার uuid হিসাবে পার্জ করা যাবে না"
#, c-format
msgid "cannot parse json %s: %s"
msgstr "json %s পার্স করা সম্ভব নয়: %s"
#, c-format
msgid "cannot parse partition number from target '%s'"
msgstr "'%s' টার্গেট থেকে পার্টিশনের সংখ্যা পার্স করা সম্ভব নয়"
@@ -4732,6 +4741,10 @@ msgstr "%s কনফিগের মান ত্রুটিপূর্ণ"
msgid "config value %s was missing"
msgstr "%s কনফিগ মান অনুপস্থিত"
#, c-format
msgid "config value %s was not a string"
msgstr "%s কনফিগের মান স্ট্রিং প্রকৃতির নয়"
msgid "configuration file syntax error"
msgstr "কনফিগারেশন ফাইলের মধ্যে সিন্টেক্স সংক্রান্ত সমস্যা"
@@ -5376,6 +5389,9 @@ msgstr "কনফিগারেশন ফাইল পার্স করতে
msgid "failed to parse configuration file %s"
msgstr "কনফিগারেশন ফাইল %s পার্স করতে ব্যর্থ"
msgid "failed to parse xml document"
msgstr "xml নথি পার্স করতে ব্যর্থ"
msgid "failed to read XML"
msgstr "XML পড়তে ব্যর্থ"
@@ -6691,6 +6707,9 @@ msgstr "স্বয়ংক্রিয় প্রারম্ভকরণ হব
msgid "no block device path supplied for '%s'"
msgstr "'%s'-র জন্য কোনো ব্লক ডিভাইসের পাথ উল্লিখিত হয়নি"
msgid "no callback provided"
msgstr "কোনো কলব্যাক প্রদান করা হয়নি"
msgid "no client username was found"
msgstr "ক্লায়েন্টের ব্যবহারকারীর নাম পাওয়া যায়নি"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Tibetan\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Breton\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: Bodo\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -7,9 +7,9 @@
# Daniel <veillard@redhat.com>, 2011.
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2015-02-26 07:12+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Bosnian (http://www.transifex.com/projects/p/fedora/language/"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"
msgid ""
"\n"

View File

@@ -11,9 +11,9 @@
# Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>, 2018. #zanata
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2018-02-24 11:19+0000\n"
"Last-Translator: Robert Antoni Buj Gelonch <rbuj@fedoraproject.org>\n"
"Language-Team: Catalan (http://www.transifex.com/projects/p/libvirt/language/"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"
msgid ""
"\n"

View File

@@ -7,14 +7,13 @@
# dibalaj <dibalaj@dibalaj.cz>, 2013
# Milan Kerslager <kerslage@linux.cz>, 2007
# Zdenek <chmelarz@gmail.com>, 2016. #zanata
# Pavel Borecki <pavel.borecki@gmail.com>, 2018. #zanata
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"PO-Revision-Date: 2018-11-27 07:08+0000\n"
"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2016-09-15 06:18+0000\n"
"Last-Translator: Zdenek <chmelarz@gmail.com>\n"
"Language-Team: Czech (http://www.transifex.com/projects/p/fedora/language/"
"cs/)\n"
"Language: cs\n"
@@ -22,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"
msgid ""
"\n"
@@ -80,7 +79,7 @@ msgid " %s (help keyword '%s')\n"
msgstr " %s (klíčové slovo nápovědy '%s')\n"
msgid " Hypervisors:"
msgstr " Hypervizory:"
msgstr " Hypervizoři:"
msgid " Miscellaneous:"
msgstr " Různé:"
@@ -147,14 +146,6 @@ msgstr "%s: selhal zápis do log souboru: %s"
msgid "%s: initialization failed\n"
msgstr "%s: inicializace selhala\n"
#, c-format
msgid "%s: option '%s%s' is ambiguous\n"
msgstr "%s: volba „%s%s“ není jednoznačná\n"
#, c-format
msgid "%s: option '%s%s' is ambiguous; possibilities:"
msgstr "%s: volba „%s%s“ není jednoznačná; možnosti:"
#, c-format
msgid ""
"%s: temporary filename contains shell meta or other unacceptable characters "
@@ -163,10 +154,6 @@ msgstr ""
"%s: jméno dočasného souboru obsahuje nepovolené nebo speciální znaky shellu "
"(je správně nastavená $TMPDIR?)"
#, c-format
msgid "%s: unrecognized option '%s%s'\n"
msgstr "%s: nerozpoznaná volba „%s%s“\n"
#, c-format
msgid "%s: warning: %s%c"
msgstr "%s: varování: %s%c"
@@ -195,9 +182,6 @@ msgstr "--%s <řetězec>"
msgid "Active:"
msgstr "Aktivní:"
msgid "All requests done"
msgstr "Všechny požadavky dokončeny"
msgid "Allocation"
msgstr "Alokace"
@@ -228,10 +212,6 @@ msgstr "Dostupný"
msgid "Available:"
msgstr "Dostupný:"
#, c-format
msgid "Bad $%s value."
msgstr "Chybná hodnota $%s."
msgid "Build a given pool."
msgstr "Sestav dané úložiště."
@@ -364,15 +344,6 @@ msgstr ""
msgid "Change the number of virtual CPUs in the guest domain."
msgstr "Změnit počet aktivních virtuálních CPU v hostované doméně."
msgid ""
"Check that CPU and firmware supports virtualization and kvm module is loaded"
msgstr ""
"Zkontrolujte zda procesor a (nastavení) firmware podporují virtualizaci a je "
"načten modul kvm"
msgid "Compiled with support for:"
msgstr "Sestaveno s podporou pro:"
msgid "Compiled with support for:\n"
msgstr "Zkompilováno s podporou pro:\n"
@@ -444,9 +415,6 @@ msgstr "Nelze smazat svazek: %s"
msgid "Could not destroy domain: %s"
msgstr "Nepodařilo se zničit doménu: %s"
msgid "Could not determine home directory"
msgstr "Nedaří se zjistit domovskou složku"
msgid "Could not find 'active' element"
msgstr "Nepodařilo se nalézt element 'active'"
@@ -805,9 +773,6 @@ msgstr "Selhalo porovnání hostitelského CPU s %s"
msgid "Failed to connect to %s"
msgstr "Selhalo připojování k %s"
msgid "Failed to connect to the admin server"
msgstr "Nepodařilo se připojit ke správnímu serveru"
#, c-format
msgid "Failed to convert '%s' to int"
msgstr "Selhala konverze '%s' na int"
@@ -957,12 +922,6 @@ msgstr "Nepodařilo se získat informace o rozhraní"
msgid "Failed to get interface stats %s %s"
msgstr "Nepodařilo se získat stav rozhraní %s %s"
msgid "Failed to initialize libvirt"
msgstr "libvirt se nepodařilo inicializovat"
msgid "Failed to initialize mutex"
msgstr "mutex se nepodařilo inicializovat"
msgid "Failed to list active domains"
msgstr "Nepodařilo se vypsat aktivní domény"
@@ -996,9 +955,6 @@ msgstr "Selhalo vypsání hesel"
msgid "Failed to list storage volumes"
msgstr "Nepodařilo se vypsat svazky na úložišti"
msgid "Failed to list volumes"
msgstr "Nepodařilo se vypsat svazky"
#, c-format
msgid "Failed to make device %s"
msgstr "Selhalo vytvoření zařízení %s"
@@ -1191,7 +1147,7 @@ msgid ""
"Grouped commands:\n"
"\n"
msgstr ""
"Seskupené příkazy:\n"
"Příkazy:\n"
"\n"
#, c-format
@@ -1226,9 +1182,6 @@ msgstr "Rozhraní bylo úspěšně připojeno\n"
msgid "Interface detached successfully\n"
msgstr "Rozhraní bylo úspěšně odpojeno\n"
msgid "Interrupted by a signal"
msgstr "Přerušeno signálem"
msgid "Invalid CPU feature name"
msgstr "Neplatné jméno vlastnosti CPU"
@@ -1343,6 +1296,9 @@ msgstr "Chybí jméno vlastnosti CPU"
msgid "Missing CPU model name"
msgstr "Chybí jméno modelu CPU"
msgid "Missing CPU vendor name"
msgstr "Chybí jméno výrobce CPU"
msgid "Missing address"
msgstr "Chybí adresa"
@@ -1365,9 +1321,6 @@ msgstr "Volná paměť NUMA"
msgid "Name"
msgstr "Jméno"
msgid "Name or service not known"
msgstr "Neznámý název nebo služba"
msgid "Name:"
msgstr "Jméno:"
@@ -1616,12 +1569,6 @@ msgstr "uložit stav domény do souboru"
msgid "Renaming domains on migration not supported"
msgstr "Přejmenování domén během migrace není podporováno"
msgid "Request canceled"
msgstr "Požadavek zrušen"
msgid "Request not canceled"
msgstr "Požadavek nebyl zrušen"
#, c-format
msgid ""
"Requested number of virtual CPUs is greater than max allowable number of "
@@ -1754,9 +1701,6 @@ msgstr "Svazek nenalezen: %s"
msgid "Suspend a running domain."
msgstr "Uspat běžící doménu."
msgid "System error"
msgstr "Chyba systému"
msgid "The domain is not running"
msgstr "Doména neběží"
@@ -1768,9 +1712,6 @@ msgstr "Server přesměrovává z '%s'"
msgid "The server redirects from '%s' to '%s'"
msgstr "Server přesměrovává z '%s' na '%s'"
msgid "This function is not supported on WIN32 platform"
msgstr "Tato funkce není na platformě WIN32 podporována"
msgid "This host is not managed by a vCenter"
msgstr "Tento host není spravován vCenter"
@@ -1780,9 +1721,6 @@ msgstr "Vláken na jádro:"
msgid "Total"
msgstr "Celkem"
msgid "Try again?"
msgstr "Zkusit znovu?"
msgid "Type"
msgstr "Typ"
@@ -1840,9 +1778,6 @@ msgstr "Nelze zmigrovat %s na %s"
msgid "Unable to open %s"
msgstr "Nelze otevřít %s"
msgid "Unable to open /proc/mounts"
msgstr "Nelze otevřít /proc/mounts"
msgid "Unable to open UNIX socket"
msgstr "Nelze otevřít UNIXový socket"
@@ -2159,6 +2094,10 @@ msgstr "nelze otevřít cestu '%s'"
msgid "cannot open volume '%s'"
msgstr "nelze otevřít svazek '%s'"
#, c-format
msgid "cannot parse CPU map for %s architecture"
msgstr "nelze parsovat mapování CPU pro architekturu %s"
#, c-format
msgid "cannot parse UUID '%s'"
msgstr "nelze parsovat UUID '%s'"
@@ -2178,10 +2117,6 @@ msgstr "nelze parsovat zařízení %s"
msgid "cannot parse instanceid parameter as a uuid"
msgstr "nelze parsovat parametr instanceid jako uuid"
#, c-format
msgid "cannot parse json %s: %s"
msgstr "nelze parsovat json %s: %s"
#, c-format
msgid "cannot parse product %s"
msgstr "nelze parsovat produkt %s"
@@ -2314,9 +2249,6 @@ msgstr "chybná syntaxe konfiguračního souboru"
msgid "configuration file syntax error: %s"
msgstr "chybná syntaxe konfiguračního souboru: %s"
msgid "connect to daemon's admin server"
msgstr "připojit se ke správnímu serveru daného procesu služby"
msgid "connect to the guest console"
msgstr "připojit se k hostované konzoli"
@@ -2563,9 +2495,6 @@ msgstr "chyba při kopírování UUID"
msgid "error: "
msgstr "chyba:"
msgid "error: Out of memory\n"
msgstr "chyba: došla paměť\n"
#, c-format
msgid "expected syntax: --%s <%s>"
msgstr "očekávaná syntaxe: --%s <%s>"
@@ -2702,6 +2631,9 @@ msgstr "chyba při parsování konfigurační souboru"
msgid "failed to parse configuration file %s"
msgstr "chyba při parsování konfigurační souboru %s"
msgid "failed to parse xml document"
msgstr "selhalo parsovaní xml dokumentu"
msgid "failed to read XML"
msgstr "selhalo čtení XML"
@@ -2777,9 +2709,6 @@ msgstr "soubor obsahující XML popis svazku"
msgid "filter has no name"
msgstr "filtr nemá jméno"
msgid "for hardware virtualization"
msgstr "pro hardwarovou virtualizaci"
msgid "force device update"
msgstr "vynutit aktualizaci zařízení"
@@ -2833,9 +2762,6 @@ msgstr "jméno rozhraní"
msgid "internal error"
msgstr "vnitřní chyba"
msgid "internal use only"
msgstr "pouze pro vnitřní použití"
#, c-format
msgid "invalid '=' after option --%s"
msgstr "neplatné '=' po volbě --%s"
@@ -3452,12 +3378,6 @@ msgstr "uuid nebo jméno úložiště"
msgid "print help"
msgstr "vypsat nápovědu"
msgid "print help for this function"
msgstr "vypsat nápovědu k této funkci"
msgid "print the admin server URI"
msgstr "vypsat URI adresu správního serveru"
msgid "print the current directory"
msgstr "zobrazí jméno adresáře, ve kterém se právě nacházíte"
@@ -3599,9 +3519,6 @@ msgstr "cíl diskového zařízení"
msgid "target type must be specified for %s device"
msgstr "cíl musí být specifikován pro zařízení %s"
msgid "tcp"
msgstr "tcp"
#, c-format
msgid "template '%s' does not exist"
msgstr "template '%s' neexistuje"
@@ -3618,9 +3535,6 @@ msgstr "tato doména již existuje"
msgid "this network exists already"
msgstr "tato síť již existuje"
msgid "tls"
msgstr "tls"
msgid "too many drivers registered"
msgstr "registrováno příliš mnoho ovladačů"
@@ -3704,7 +3618,7 @@ msgstr "neočekávaný typ řadiče %d"
#, c-format
msgid "unexpected data '%s'"
msgstr "neočekávaná data %s"
msgstr "neočekávaná data '%s'"
#, c-format
msgid "unexpected disk bus %d"
@@ -3800,10 +3714,6 @@ msgstr "neočekávaná akce watchdogu %d"
msgid "unexpected watchdog model %d"
msgstr "neočekávaný model watchdogu %d"
#, c-format
msgid "unimplemented parameter type %d"
msgstr "neimplementovaný typ parametru %d"
msgid "unknown"
msgstr "neznámý"
@@ -3840,7 +3750,7 @@ msgstr "neznámý offset hodin '%s'"
#, c-format
msgid "unknown command: '%s'"
msgstr "neznámý příkaz: „%s"
msgstr "neznámý příkaz '%s'"
#, c-format
msgid "unknown dhcp peerdns value %s"
@@ -3920,9 +3830,6 @@ msgstr "neznámý typ rozhraní '%s'"
msgid "unknown memory balloon model '%s'"
msgstr "neznámý model ballon memory '%s'"
msgid "unknown option"
msgstr "neznámá volba"
#, c-format
msgid "unknown pci source type '%s'"
msgstr "neznámý typ '%s' pro zdroj pci"

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: libvirt\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2018-04-24 05:01+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Welsh (http://www.transifex.com/projects/p/fedora/language/"
@@ -20,4 +20,4 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != "
"11) ? 2 : 3;\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

View File

@@ -9,9 +9,9 @@
# Magnus Larsson <fedoratrans@gmail.com>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2015-02-26 08:52+0000\n"
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
"Language-Team: Danish (http://www.transifex.com/projects/p/fedora/language/"
@@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"
msgid ""
"\n"

View File

@@ -19,9 +19,9 @@
# Florian H. <postfuerflo@gmail.com>, 2016. #zanata
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: 2016-04-01 11:32+0000\n"
"Last-Translator: Florian H. <postfuerflo@gmail.com>\n"
"Language-Team: German (http://www.transifex.com/projects/p/libvirt/language/"
@@ -31,7 +31,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"
msgid ""
"\n"
@@ -255,6 +255,9 @@ msgstr "Vernetzung:"
msgid " Storage:"
msgstr "Speicher:"
msgid " block_io_throttle reply was missing device list"
msgstr "Der block_io_throttle Antwort fehlte die Einheiten-Liste"
#, c-format
msgid ""
"!!! SSH HOST KEY VERIFICATION FAILED !!!: Identity of host '%s:%d' differs "
@@ -548,6 +551,10 @@ msgstr "'logical-id' fehlt in Antwort auf guest-get-vcpus"
msgid "'online' missing in reply of guest-get-vcpus"
msgstr "'online' fehlt in Antwort auf guest-get-vcpus"
msgid "'parent' for vHBA not specified, and cannot find one on this host"
msgstr ""
"'parent' für vHBA nicht angegeben, und kann keinen auf diesem Host finden"
msgid "'peak' and 'burst' require 'average' attribute"
msgstr "'peak' und 'burst' benötigen 'average' Attribut"
@@ -891,6 +898,9 @@ msgstr "NAT '%s' wurde versucht. NAT ist nur für IPv4 unterstützt."
msgid "Attribute mode is only allowed for guest CPU"
msgstr "Attribut-Modus ist nur für Gäste CPU erlaubt"
msgid "Authentication Credentials not found"
msgstr "Authentifizierungs-Berechtigungen nicht gefunden"
msgid "Authentication failed"
msgstr "Authentifizierung gescheitert"
@@ -1376,6 +1386,9 @@ msgstr "Kann Ballon-Einheit Pfad nicht bestimmen"
msgid "Cannot determine free memory"
msgstr "Kann freien Speicher nicht bestimmen"
msgid "Cannot determine system clock HZ"
msgstr "Kann Systemuhr Hz nicht bestimmen"
#, c-format
msgid "Cannot directly attach floppy %s"
msgstr "Kann Floppy %s nicht direkt anhängen"
@@ -1586,6 +1599,14 @@ msgstr "Socket-Adresse »%s« kann nicht verarbeitet werden: %s"
msgid "Cannot parse start time %s in %s"
msgstr "Start-Zeit %s in %s kann nicht analysiert werden"
#, c-format
msgid "Cannot parse sys stat '%s'"
msgstr "System-Status '%s' kann nicht analysiert werden"
#, c-format
msgid "Cannot parse user stat '%s'"
msgstr "Benutzer-Status '%s' kann nicht analysiert werden"
#, c-format
msgid ""
"Cannot plug '%s' interface into '%s' because it would overcommit 'average' "
@@ -1731,6 +1752,10 @@ msgstr ""
"Label kann nicht angegeben werden wenn Neuetikettierung ausgeschaltet ist. "
"model=%s"
#, c-format
msgid "Cannot stat %s"
msgstr "Kann Status %s nicht abrufen"
#, c-format
msgid "Cannot undefine HostVirtualSwitch that has a '%s' port"
msgstr "Kann nicht HostVirtualSwitch der einen '%s' Port hat zurücksetzen"
@@ -1910,6 +1935,10 @@ msgstr ""
msgid "Command %s too long for destination"
msgstr "Befehl %s zu lang für Ziel"
#, c-format
msgid "Command '%s' is not found"
msgstr "Befehl '%s' nicht gefunden"
msgid "Commit aborted"
msgstr "Übergabe abgebrochen"
@@ -2029,6 +2058,27 @@ msgstr "Container ist nicht definiert"
msgid "Control groups not supported on this platform"
msgstr "Kontroll-Gruppen werden auf dieser Plattform nicht unterstützt"
#, c-format
msgid "Controller %d out of range"
msgstr "Controller %d ausserhalb des Bereiches"
#, c-format
msgid "Controller '%s' is not enabled for group"
msgstr "Controller '%s' ist nicht für Gruppe aktiviert"
#, c-format
msgid "Controller '%s' is not mounted"
msgstr "Controller '%s' ist nicht angeschlossen"
#, c-format
msgid "Controller '%s' is not wanted, but '%s' is co-mounted"
msgstr ""
"Controller '%s' ist nicht gesucht, aber '%s' ist gemeinsam angeschlossen"
#, c-format
msgid "Controller '%s' not mounted"
msgstr "Controller '%s' nicht angeschlossen"
msgid "Controllers must use the 'ccid' address type"
msgstr "Controller müssen den »ccid«-Adresstyp verwenden"
@@ -2229,6 +2279,9 @@ msgstr "PhysicalNic mit Namen '%s' konnte nicht gefunden werden"
msgid "Could not find any 'network' element in status file"
msgstr "Konnte kein \"Netzwerk\" Element in Status-Datei finden"
msgid "Could not find any mounted controllers"
msgstr "Konnte keine angeschlossenen Controllers finden"
#, c-format
msgid "Could not find compute resource specified in '%s'"
msgstr "Konnte die in '%s' angegebene Rechen-Ressource nicht finden"
@@ -2245,6 +2298,10 @@ msgstr "Datenspeicher mit absolutem Pfad '%s' konnte nicht gefunden werden"
msgid "Could not find datastore with name '%s'"
msgstr "Datenspeicher namens »%s« konnte nicht gefunden werden"
#, c-format
msgid "Could not find directory separator in %s"
msgstr "Verzeichnis-Trennungszeichen in %s konnte nicht gefunden werden"
#, c-format
msgid "Could not find domain snapshot with internal name '%s'"
msgstr "Domain-Snapshot mit internem Namen »%s« konnte nicht gefunden werden"
@@ -2280,6 +2337,10 @@ msgstr "Physische NIC mit MAC-Adresse '%s' konnte nicht gefunden werden"
msgid "Could not find physical NIC with name '%s'"
msgstr "Physische NIC mit Namen '%s' konnte nicht gefunden werden"
#, c-format
msgid "Could not find placement for controller %s at %s"
msgstr "Konnte keine Plazierung für Controller %s bei %s finden"
#, c-format
msgid "Could not find snapshot with name '%s'"
msgstr "Snapshot namens »%s« konnte nicht gefunden werden"
@@ -2983,6 +3044,10 @@ msgstr "Einheit %s existiert bereits"
msgid "Device %s detached\n"
msgstr "Einheit %s abgehängt\n"
#, c-format
msgid "Device %s in use"
msgstr "Einheit %s wird verwendet"
#, c-format
msgid "Device %s is already in use"
msgstr "Gerät %s wird bereits verwendet"
@@ -3862,6 +3927,10 @@ msgstr "Anfang der Netzwerk Konfig-Änderungs Transaktion gescheitert"
msgid "Failed to bind PCI device '%s' to %s"
msgstr "Verbinden von PCI-Gerät '%s' mit %s fehlgeschlagen"
#, c-format
msgid "Failed to bind cgroup '%s' on '%s'"
msgstr "Verbinden von cgroup '%s' mit '%s' fehlgeschlagen"
#, c-format
msgid "Failed to bind mount directory %s to %s"
msgstr "Verbinden von Verzeichnis %s mit %s fehlgeschlagen"
@@ -4017,6 +4086,10 @@ msgstr "Erstellen von Bind-Ziel %s fehlgeschlagen"
msgid "Failed to create bridge node in xml document"
msgstr "Erstellen des Bridge Knotens im XML-Dokument fehlgeschlagen"
#, c-format
msgid "Failed to create controller %s for group"
msgstr "Erstellen Controller %s für Gruppe fehlgeschlagen"
#, c-format
msgid "Failed to create directory for '%s' dev '%s'"
msgstr "Fehler beim Anlegen des Verzeichnisses für '%s' dev '%s'"
@@ -4307,6 +4380,9 @@ msgstr "Fehler beim Erstellen eines neuen Namens für Schnittstelle %s"
msgid "Failed to get %s minor number"
msgstr "Abrufen der %s Minor-Nummer fehlgeschlagen"
msgid "Failed to get PCI Config Address String"
msgstr "Konnte PCI Konfigurationsadressen-String nicht erhalten"
msgid "Failed to get PCI SYSFS file"
msgstr "Konnte PCI SYSFS Datei nicht erhalten"
@@ -4577,6 +4653,10 @@ msgstr "Markierung der Domain %s als automatisch zu starten gescheitert"
msgid "Failed to mkdir %s"
msgstr "Anlegen des Verzeichnisses %s fehlgeschlagen"
#, c-format
msgid "Failed to mount %s on %s type %s"
msgstr "Anschließen von %s in %s Typ %s fehlgeschlagen"
#, c-format
msgid "Failed to mount %s on /dev"
msgstr "Anschließen von %s auf /dev fehlgeschlagen"
@@ -6540,6 +6620,13 @@ msgstr "Maximale Speichergröße, als skalierte ganze Zahl (Standard in KiB)"
msgid "Max memory:"
msgstr "Max Speicher:"
msgid "Maximum CPUs greater than specified machine type limit"
msgstr "Maximale CPUs größer als angegebene Maschinen-Typ Grenze"
#, c-format
msgid "Memory '%llu' must be less than %llu"
msgstr "Speicher '%llu' muss kleiner sein als %llu"
msgid "Memory allocation failure"
msgstr "Fehler bei Speicherzuweisung"
@@ -6642,6 +6729,10 @@ msgstr "Fehlende »%s«-Eigenschaft"
msgid "Missing '%s' property while looking for ManagedEntityStatus"
msgstr "Fehlende '%s' Eigenschaft bei der Suche nach ManagedEntityStatus"
#, c-format
msgid "Missing '/' separator in cgroup mount '%s'"
msgstr "Fehlendes '/' Trennzeichen auf cgroup Anschluss '%s'"
msgid "Missing 'cores' attribute in CPU topology"
msgstr "Fehlendes 'cores'-Attribut in CPU-Topologie"
@@ -6696,6 +6787,9 @@ msgstr "Fehlender CPU-Feature-Name"
msgid "Missing CPU model name"
msgstr "Fehlender CPU Modell-Name"
msgid "Missing CPU vendor name"
msgstr "Fehlender CPU-Herstellername"
msgid "Missing ID parameter for domain object"
msgstr "Fehlender ID-Parameter für Domain-Objekt"
@@ -6835,6 +6929,9 @@ msgstr ""
msgid "Missing or invalid PVR value in CPU model %s"
msgstr "Fehlender oder ungültiger PVR Wert in CPU-Modell %s"
msgid "Missing or invalid auth pointer"
msgstr "Fehlender oder ungültiger Auth-Zeiger"
msgid "Missing ownerId data in JSON document"
msgstr "Fehlende ownerId Daten in JSON Dokument"
@@ -7263,6 +7360,9 @@ msgstr "Keine Argumente für Signatur %s vorhanden"
msgid "No authentication callback available"
msgstr "Kein Authentifikations-Rückruf zur Verfügung"
msgid "No authentication callback provided."
msgstr "Kein Authentifikation-Callback zur Verfügung gestellt."
msgid "No authentication methods and credentials provided"
msgstr ""
"Keine Authentifizierungsmethoden und Berechtigungsnachweise bereitgestellt"
@@ -8413,6 +8513,9 @@ msgstr "SCSI Disk Index (erstellt von '%s') ist zu groß"
msgid "SCSI host device doesn't support managed mode"
msgstr "SCSI-Host-Einheit unterstützt verwalteten Modus nicht"
msgid "SCSI passthrough is not supported by this version of qemu"
msgstr "SCSI-Weiterleitung wird mit dieser Version von qemu nicht unterstützt"
#, c-format
msgid "SCSI unit index %d out of [0..6,8..15] range"
msgstr "SCSI Unit index %d außerhalb dem [0..6,8..15] Bereich"
@@ -9706,6 +9809,10 @@ msgstr "USB Einheit %s wird bereits verwendet"
msgid "USB host device is missing bus/device information"
msgstr "USB-Host-Gerät besitzt keine Bus/Geräte-Informationen"
msgid "USB redirection booting is not supported by this version of QEMU"
msgstr ""
"USB Start-Umleitung wird durch diese Version von QEMU nicht unterstützt"
msgid "USB redirection filter is not supported by this version of QEMU"
msgstr ""
"USB Umleitungs-Filter wird von dieser Version von QEMU nicht unterstützt"
@@ -9893,12 +10000,6 @@ msgstr "Konnte Socket-Datei-Handles nicht kopieren"
msgid "Unable to create %s"
msgstr "Erstellen von %s fehlgeschlagen"
msgid "Unable to create JSON formatter"
msgstr "JSON Formatter kann nicht erstellt werden"
msgid "Unable to create JSON parser"
msgstr "JSON Parser kann nicht erstellt werden"
#, c-format
msgid "Unable to create LPAR. Reason: '%s'"
msgstr "LPAR konnte nicht erstellt werden. Grund: »%s«"
@@ -9928,6 +10029,10 @@ msgstr "Kann Bridge-Einheit nicht erstellen"
msgid "Unable to create device %s"
msgstr "Kann Einheit %s nicht erstellen"
#, c-format
msgid "Unable to create directory %s"
msgstr "Konnte Verzeichnis %s nicht erstellen"
msgid "Unable to create epoll fd"
msgstr "Kann epoll fd nicht erstellen"
@@ -10377,9 +10482,6 @@ msgstr "%s kann nicht geöffnet werden (%d)"
msgid "Unable to open '%s'"
msgstr "'%s' kann nicht geöffnet werden"
msgid "Unable to open /proc/mounts"
msgstr "/proc/mounts kann nicht geöffnet werden"
msgid "Unable to open UNIX socket"
msgstr "UNIX Socket kann nicht geöffnet werden"
@@ -10671,6 +10773,10 @@ msgstr "Kann STP auf %s auf dieser Plattform nicht setzen"
msgid "Unable to set VM logfile close-on-exec flag"
msgstr "Kann das close-on-exec-Flag der VM-Log-Datei nicht setzen"
#, c-format
msgid "Unable to set bridge %s %s"
msgstr "Bridge %s %s kann nicht gesetzt werden"
msgid "Unable to set cloexec flag"
msgstr "Kann cloexec Flag nicht setzen"
@@ -10733,6 +10839,10 @@ msgstr "Kann Bind-Quelle %s nicht statistisch erfassen"
msgid "Unable to stat bind target %s"
msgstr "Konnte stat für Bind-Ziel %s nicht erhalten"
#, c-format
msgid "Unable to symlink directory %s to %s"
msgstr "Erstellen Symbolisches Link-Verzeichniss %s zu %s fehlgeschlagen"
#, c-format
msgid "Unable to truncate %s"
msgstr "Kann %s nicht kürzen"
@@ -10863,6 +10973,9 @@ msgstr "Unerwarteter dconnuri Parameter bei Non-Peer2Peer Migration"
msgid "Unexpected disk sgio mode '%d'"
msgstr "Unerwarteter Festplatten sgio Modus '%d'"
msgid "Unexpected error"
msgstr "Unerwarteter Fehler"
#, c-format
msgid "Unexpected filesystem type %s"
msgstr "Unerwarteter Dateisystem Typ %s"
@@ -11357,6 +11470,9 @@ msgid "VMX entry 'sched.cpu.affinity' contains a %d, this value is too large"
msgstr ""
"VMX Eintragung 'sched.cpu.affinity' enthält ein %d, dieser Wert ist zu groß"
msgid "VNC WebSockets are not supported with this QEMU binary"
msgstr "VNC WebSockets werden von dieser QEMU-Programmdatei nicht unterstützt"
msgid "VNC supports connected='keep' only"
msgstr "VNC unterstützt nur connected='keep'"
@@ -11976,6 +12092,31 @@ msgstr "Boot-Reihenfolge '%s' für mehr als eine Einheit verwendet"
msgid "booted"
msgstr "gestartet"
msgid ""
"booting from PCI devices assigned with VFIO is not supported with this "
"version of qemu"
msgstr ""
"Starten von PCI-Einheiten, die mit VFIO zugewiesen sind, wird durch diese "
"Version von QEMU nicht unterstützt"
msgid ""
"booting from assigned PCI devices is not supported with this version of qemu"
msgstr ""
"Booten von zugewiesenen PCI-Geräten ist mit dieser Version von QEMU "
"unterstützt nicht"
msgid ""
"booting from assigned SCSI devices is not supported with this version of qemu"
msgstr ""
"Starten von zugewiesenen SCSI-Einheiten wird durch diese Version von QEMU "
"nicht unterstützt"
msgid ""
"booting from assigned USB devices is not supported with this version of qemu"
msgstr ""
"Starten von zugewiesenen USB-Einheiten wird durch diese Version von QEMU "
"nicht unterstützt"
msgid ""
"booting from assigned devices is only supported for PCI, USB and SCSI devices"
msgstr ""
@@ -12505,6 +12646,9 @@ msgstr "Kann Sicherheits-Props %d (%s) nicht erhalten"
msgid "cannot get the host uuid"
msgstr "Kann Host UUID nicht ermitteln"
msgid "cannot get the path of MEMORY cgroup controller"
msgstr "Kann den Pfad des MEMORY cgroup Controllers nicht erhalten"
msgid "cannot get vCPU placement & pCPU time"
msgstr "Kann vCPU-Platzierung & pCPU-Zeit nicht ermitteln"
@@ -12665,6 +12809,10 @@ msgstr "Kann Datenträger '%s' nicht öffnen"
msgid "cannot parse %s version number in '%.*s'"
msgstr "Kann nicht %s Versions-Number in '%.*s' analysieren"
#, c-format
msgid "cannot parse CPU map for %s architecture"
msgstr "CPU-Map für %s-Architektur kann nicht geparst werden"
#, c-format
msgid "cannot parse CPU topology '%s'"
msgstr "Kann CPU-Topologie '%s' nicht parsen"
@@ -12757,10 +12905,6 @@ msgstr "kann interfaceid Parameter nicht als ein uuid analysieren"
msgid "cannot parse io mode '%s'"
msgstr "E/A-Modus »%s« kann nicht verarbeitet werden"
#, c-format
msgid "cannot parse json %s: %s"
msgstr "Kann json %s: %s nicht parsen"
#, c-format
msgid "cannot parse nbd filename '%s'"
msgstr "NBD-Dateiname »%s« kann nicht verarbeitet werden"
@@ -13199,6 +13343,14 @@ msgstr "cellNum in %s muss kleiner oder gleich sein zu %d"
msgid "cellNum in %s only accepts %d as a negative value"
msgstr "cellNum in %s akzeptiert nur %d als einen negativen Wert"
#, c-format
msgid "cfs_period '%llu' must be in range (1000, 1000000)"
msgstr "cfs_period '%llu' muss im Bereich (1000, 1000000) sein"
#, c-format
msgid "cfs_quota '%lld' must be in range (1000, %llu)"
msgstr "cfs_quota '%lld' muss im Bereich (1000, %llu) sein"
msgid "cgroup CPU controller is not mounted"
msgstr "cgroup CPU Controller ist nicht angeschlossen"
@@ -13347,6 +13499,10 @@ msgstr "Konfig"
msgid "config data file to import from"
msgstr "Konfigurationsdatendatei, aus der importiert werden soll"
#, c-format
msgid "config value %s not a string"
msgstr "Konfigurationswert %s kein String"
#, c-format
msgid "config value %s was malformed"
msgstr "Konfigurationswert %s war fehlerhaft"
@@ -13355,6 +13511,10 @@ msgstr "Konfigurationswert %s war fehlerhaft"
msgid "config value %s was missing"
msgstr "Konfigurationswert %s fehlte"
#, c-format
msgid "config value %s was not a string"
msgstr "Konfigurationswert %s war kein String"
msgid "configuration file syntax error"
msgstr "Syntaxfehler in der Konfigurationsdatei"
@@ -15052,6 +15212,9 @@ msgstr "Konnte QEMU Einheiten-Liste nicht analysieren"
msgid "failed to parse value of %s"
msgstr "Analyse des Wertes von %s fehlgeschlagen"
msgid "failed to parse xml document"
msgstr "Parsen des XML-Dokuments fehlgeschlagen"
#, c-format
msgid "failed to pivot job for disk %s"
msgstr "Job auf Disk %s konnte nicht gedreht werden"
@@ -15123,6 +15286,9 @@ msgid "failed to retrieve decision to accept host key"
msgstr ""
"Entscheidung, den Hostschlüssel zu akzeptieren, konnte nicht abgerufen werden"
msgid "failed to retrieve password"
msgstr "Abrufen von Passwort fehlgeschlagen"
msgid "failed to retrieve private key passphrase: callback has failed"
msgstr ""
"Private Schlüssel-Passphrase konnte nicht abgerufen werden: Rückruf ist "
@@ -15619,6 +15785,9 @@ msgstr "Hub Typ %s nicht unterstützt"
msgid "hypervisor connection URI"
msgstr "Hypervisor Verbindungs-URI"
msgid "hypervisor lacks deviceboot feature"
msgstr "Hypervisor fehlt deviceboot Funktion"
msgid "iSCSI storage pool does not support volume creation"
msgstr "ISCSI Speicherpool unterstützt keine Datenträger-Erstellung"
@@ -16776,6 +16945,10 @@ msgstr "maxuuids > REMOTE_SECRET_LIST_MAX"
msgid "mem(Suspend-to-RAM), disk(Suspend-to-Disk), hybrid(Hybrid-Suspend)"
msgstr "mem(Suspend-to-RAM), disk(Suspend-to-Disk), hybrid(Hybrid-Suspend)"
#, c-format
msgid "memballoon unsupported with address type '%s'"
msgstr "memballoon nicht unterstützt mit Adressen Typ '%s'"
msgid "memory attributes: [file=]name[,snapshot=type]"
msgstr "Speicher Attribute: [file=]Name[,snapshot=Typ]"
@@ -17693,6 +17866,9 @@ msgid "no call waiting for reply with prog %d vers %d serial %d"
msgstr ""
"Kein Anruf wartet auf Antwort mit Program %d Version %d Seriennummer %d"
msgid "no callback provided"
msgstr "kein Callback zur Verfügung gestellt"
msgid "no client username was found"
msgstr "kein Client-Benutzername gefunden"
@@ -17719,6 +17895,10 @@ msgstr "Keine Einheit gefunden mit Alias %s"
msgid "no disk format for %s and probing is disabled"
msgstr "kein Datenträger-Format für %s und Sondieren ist deaktiviert"
#, c-format
msgid "no disk found with alias %s"
msgstr "Kein Laufwerk gefunden mit Alias %s"
#, c-format
msgid "no disk named '%s'"
msgstr "Keine Disk namens '%s'"
@@ -19864,6 +20044,9 @@ msgstr "nicht in der Lage Snapshots Filterung durchzuführen"
msgid "unable to poll on child"
msgstr "konnte nicht auf Unterelement abfragen"
msgid "unable to probe for add-fd"
msgstr "Konnte nicht für add-fd sondieren"
msgid "unable to read child stderr"
msgstr "konnte stderr des Unterelements nicht lesen"

View File

@@ -5,9 +5,9 @@
#
msgid ""
msgstr ""
"Project-Id-Version: libvirt 4.10.0\n"
"Project-Id-Version: libvirt 4.6.0\n"
"Report-Msgid-Bugs-To: https://libvirt.org/bugs.html\n"
"POT-Creation-Date: 2018-11-28 16:52+0000\n"
"POT-Creation-Date: 2018-07-31 10:44+0100\n"
"PO-Revision-Date: \n"
"Last-Translator: \n"
"Language-Team: German (Switzerland)\n"
@@ -16,4 +16,4 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Zanata 4.6.2\n"
"X-Generator: Zanata 4.5.0\n"

Some files were not shown because too many files have changed in this diff Show More