Devel
Threads by month
- ----- 2026 -----
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- 37 participants
- 40202 discussions
[libvirt] [sandbox PATCH] allow to use a templated unit in virt-sandbox
by Michael Scherer 03 May '13
by Michael Scherer 03 May '13
03 May '13
This permit to create a templated unit inside the sandbox,
using the sandbox name as a variable and so running the same
unit with a different configuration without too much hassle.
For example, someone could have several different configuration of
website in /etc/nginx/websites.d/ and have each of them started in
a different sandbox, with a sample templated unit using the sandbox
name as a option to read the proper configuration file directly.
---
bin/virt-sandbox-service | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/bin/virt-sandbox-service b/bin/virt-sandbox-service
index 2096be1..0d89b54 100755
--- a/bin/virt-sandbox-service
+++ b/bin/virt-sandbox-service
@@ -345,6 +345,10 @@ class GenericContainer(Container):
def set_command(self, command):
self.config.set_command(command)
+
+def is_template_unit(unit):
+ return '@' in unit
+
class SystemdContainer(Container):
IGNORE_DIRS = [ "/var/run/", "/etc/logrotate.d/", "/etc/pam.d" ]
DEFAULT_DIRS = [ "/etc", "/var" ]
@@ -624,14 +628,22 @@ WantedBy=%(TARGET)s
source = "%s%s" % ( self.dest, d)
self.add_bind_mount(source, d)
+ def get_expanded_unit_template(self, unit):
+ return unit.replace('@', '@' + self.name)
+
def create_container_unit(self, src, dest, unit):
- fd = open(dest + "/" + unit, "w")
- fd.write(""".include %s
+ if is_template_unit(unit):
+ expanded_unit_name = self.get_expanded_unit_template(unit)
+ os.symlink(src, dest + "/" + expanded_unit_name)
+ shutil.copy(src, dest + "/" + unit)
+ else:
+ fd = open(dest + "/" + unit, "w")
+ fd.write(""".include %s
[Service]
PrivateTmp=false
PrivateNetwork=false
""" % src )
- fd.close()
+ fd.close()
def gen_content(self):
if self.copy:
@@ -677,6 +689,8 @@ PrivateNetwork=false
for i, src in self.unit_file_list:
self.create_container_unit(src, self.dest + unitdir, i)
+ if is_template_unit(i):
+ i = self.get_expanded_unit_template(i)
os.symlink("../" + i, self.dest + tgtdir + "/" + i)
tgtfile = unitdir + "/multi-user.target"
--
1.8.2.1
2
6
Hello list,
I don't know if I should file a bug so I'm asking here: I got problems
building libvirt with obsolete headers from glibc + libtirpc headers.
I met the "'xdr_u_int64_t' undeclared" error as it seems XDR_CFLAGS are
never taken into account, no matter I "export" them, tweaks CFLAGS or
add -I/usr/include/tirpc flags.
Building on x86_64, libvirt 1.0.4 and 1.0.5 have the same behaviour here.
Header is present:
$ grep xdr_u_int64_t $(find /usr/include) 2>/dev/null
/usr/include/tirpc/rpc/xdr.h:extern bool_t xdr_u_int64_t(XDR *,
u_int64_t *);
Here is the log. Please notice the empty "xdr:" line in the configure's
summary :
---
+ CFLAGS='-O2 -fPIC -pipe'
+ CXXFLAGS='-O2 -fPIC -pipe'
+ LDFLAGS=-I/usr/include/tirpc
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
--libdir=/usr/lib64 --libexecdir=/usr/lib64/libvirt --mandir=/usr/man
--infodir=/usr/info --docdir=/usr/doc/libvirt-1.0.5
--with-init-script=systemd --with-interface --with-storage-lvm
--with-udev --build=x86_64-0-linux-gnu
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... yes
checking whether make supports nested variables... yes
checking build system type... x86_64-0-linux-gnu
checking host system type... x86_64-0-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for Minix Amsterdam compiler... no
checking for ar... ar
checking for ranlib... ranlib
checking whether gcc and cc understand -c and -o together... yes
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for gcc option to accept ISO C99... -std=gnu99
checking for gcc -std=gnu99 option to accept ISO Standard C... (cached)
-std=gnu99
configure: autobuild project... libvirt
configure: autobuild revision... 1.0.5
configure: autobuild hostname... poopy
configure: autobuild timestamp... 20130503T072146Z
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking features.h usability... yes
checking features.h presence... yes
checking for features.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking for unistd.h... (cached) yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking wctype.h usability... yes
checking wctype.h presence... yes
checking for wctype.h... yes
checking for sys/stat.h... (cached) yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking stdio_ext.h usability... yes
checking stdio_ext.h presence... yes
checking for stdio_ext.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking xlocale.h usability... yes
checking xlocale.h presence... yes
checking for xlocale.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking pty.h usability... yes
checking pty.h presence... yes
checking for pty.h... yes
checking poll.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/filio.h usability... no
checking sys/filio.h presence... no
checking for sys/filio.h... no
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking sched.h usability... yes
checking sched.h presence... yes
checking for sched.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking for stdint.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking sys/wait.h usability... yes
checking sys/wait.h presence... yes
checking for sys/wait.h... yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking for inttypes.h... (cached) yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking spawn.h usability... yes
checking spawn.h presence... yes
checking for spawn.h... yes
checking whether the preprocessor supports include_next... yes
checking whether system header files limit the line length... no
checking whether <sys/socket.h> is self-contained... yes
checking for shutdown... yes
checking whether <sys/socket.h> defines the SHUT_* macros... yes
checking for struct sockaddr_storage... yes
checking for sa_family_t... yes
checking for struct sockaddr_storage.ss_family... yes
checking for size_t... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for C/C++ restrict keyword... __restrict
checking whether <wchar.h> uses 'inline' correctly... yes
checking for btowc... yes
checking for canonicalize_file_name... yes
checking for getcwd... yes
checking for readlink... yes
checking for realpath... yes
checking for readlinkat... yes
checking for chown... yes
checking for fchown... yes
checking for _set_invalid_parameter_handler... no
checking for fcntl... yes
checking for symlink... yes
checking for ffs... yes
checking for ffsl... yes
checking for isblank... yes
checking for iswctype... yes
checking for mbsrtowcs... yes
checking for mempcpy... yes
checking for wmemchr... yes
checking for wmemcpy... yes
checking for wmempcpy... yes
checking for fpurge... no
checking for __fpurge... yes
checking for __freading... yes
checking for fsync... yes
checking for getdelim... yes
checking for getdtablesize... yes
checking for __fsetlocking... yes
checking for tcgetattr... yes
checking for tcsetattr... yes
checking for gettimeofday... yes
checking for lstat... yes
checking for mbsinit... yes
checking for mbrtowc... yes
checking for mprotect... yes
checking for mkostemp... yes
checking for mkostemps... yes
checking for nl_langinfo... yes
checking for recvmsg... yes
checking for sendmsg... yes
checking for strerror_r... yes
checking for __xpg_strerror_r... yes
checking for pipe... yes
checking for pipe2... yes
checking for posix_openpt... yes
checking for pthread_sigmask... no
checking for wcscoll... yes
checking for secure_getenv... no
checking for setenv... yes
checking for sigaction... yes
checking for sigaltstack... yes
checking for siginterrupt... yes
checking for sleep... yes
checking for snprintf... yes
checking for strdup... yes
checking for catgets... yes
checking for strndup... yes
checking for strptime... yes
checking for localtime_r... yes
checking for timegm... yes
checking for usleep... yes
checking for vasnprintf... no
checking for wcrtomb... yes
checking for iswcntrl... yes
checking for getegid... yes
checking for ftruncate... yes
checking for newlocale... yes
checking for getgrouplist... yes
checking for socketpair... yes
checking for posix_spawn... yes
checking for ptsname_r... yes
checking for shutdown... (cached) yes
checking for wctob... yes
checking for cfmakeraw... yes
checking for geteuid... yes
checking for getgid... yes
checking for getgrnam_r... yes
checking for getmntent_r... yes
checking for getpwuid_r... yes
checking for getuid... yes
checking for initgroups... yes
checking for kill... yes
checking for mmap... yes
checking for posix_fallocate... yes
checking for posix_memalign... yes
checking for prlimit... yes
checking for regexec... yes
checking for sched_getaffinity... yes
checking for setns... yes
checking for setrlimit... yes
checking for nl_langinfo and CODESET... yes
checking for a traditional french locale... fr_FR
checking whether malloc, realloc, calloc are POSIX compliant... yes
checking whether // is distinct from /... no
checking whether realpath works... yes
checking for uid_t in sys/types.h... yes
checking for unistd.h... (cached) yes
checking for working chown... yes
checking whether chown dereferences symlinks... yes
checking whether chown honors trailing slash... yes
checking whether chown always updates ctime... yes
checking for unsigned long long int... yes
checking whether byte ordering is bigendian... no
checking if environ is properly declared... yes
checking for complete errno.h... yes
checking for working fcntl.h... yes
checking for pid_t... yes
checking for mode_t... yes
checking whether fdatasync is declared... yes
checking for mbstate_t... yes
checking whether stdin defaults to large file offsets... yes
checking whether fseeko is declared... yes
checking for fseeko... yes
checking whether fflush works on input streams... no
checking whether stat file-mode macros are broken... no
checking for nlink_t... yes
checking whether ftello is declared... yes
checking for ftello... yes
checking whether ftello works... yes
checking for library containing gethostbyname... none required
checking for gethostbyname... yes
checking for library containing getservbyname... none required
checking for getservbyname... yes
checking for library containing inet_ntop... none required
checking whether inet_ntop is declared... yes
checking for IPv4 sockets... yes
checking for IPv6 sockets... yes
checking whether getcwd (NULL, 0) allocates memory for result... yes
checking for getcwd with POSIX signature... yes
checking whether getdelim is declared... yes
checking whether getline is declared... yes
checking whether getpass is declared... yes
checking whether fflush_unlocked is declared... yes
checking whether flockfile is declared... yes
checking whether fputs_unlocked is declared... yes
checking whether funlockfile is declared... yes
checking whether putc_unlocked is declared... yes
checking for struct timeval... yes
checking for wide-enough struct timeval.tv_sec member... yes
checking whether ldexp() can be used without linking with libm... yes
checking whether getc_unlocked is declared... yes
checking whether we are using the GNU C Library 2.1 or newer... yes
checking for wchar_t... yes
checking whether NULL can be used in arbitrary expressions... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking whether imported symbols can be declared weak... yes
checking for pthread.h... (cached) yes
checking for pthread_kill in -lpthread... yes
checking for pthread_rwlock_t... yes
checking for multithread API to use... posix
checking for inline... inline
checking whether lstat correctly handles trailing slash... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for long long int... yes
checking for a traditional japanese locale... ja_JP
checking for a transitional chinese locale... none
checking for a french Unicode locale... fr_FR.UTF-8
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking whether memchr works... yes
checking whether alarm is declared... yes
checking whether C symbols are prefixed with underscore at the linker
level... no
checking for promoted mode_t type... mode_t
checking for library containing forkpty... -lutil
checking whether strerror(0) succeeds... yes
checking for strerror_r with POSIX signature... no
checking whether __xpg_strerror_r works... yes
checking whether strerror_r is declared... yes
checking for external symbol _system_configuration... no
checking for library containing setsockopt... none needed
checking whether imported symbols can be declared weak... yes
checking for pthread.h... (cached) yes
checking for pthread_kill in -lpthread... (cached) yes
checking for multithread API to use... posix
checking for sigset_t... yes
checking for SIGPIPE... yes
checking whether <sys/select.h> is self-contained... yes
checking whether setenv is declared... yes
checking search.h usability... yes
checking search.h presence... yes
checking for search.h... yes
checking for tsearch... yes
checking whether snprintf returns a byte count as in C99... yes
checking whether snprintf is declared... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking whether stdint.h conforms to C99... yes
checking whether strdup is declared... yes
checking whether strndup is declared... yes
checking whether strnlen is declared... yes
checking for struct tm.tm_gmtoff... yes
checking whether strtok_r is declared... yes
checking for struct timespec in <time.h>... yes
checking whether ttyname_r is declared... yes
checking for wint_t... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for intmax_t... yes
checking where to find the exponent in a 'double'... word 1 bit 20
checking for snprintf... (cached) yes
checking for strnlen... yes
checking for wcslen... yes
checking for wcsnlen... yes
checking for mbrtowc... (cached) yes
checking for wcrtomb... (cached) yes
checking whether _snprintf is declared... no
checking whether vsnprintf is declared... yes
checking whether strerror_r is declared... (cached) yes
checking for strerror_r... (cached) yes
checking whether strerror_r returns char *... yes
checking for sig_atomic_t... yes
checking whether ungetc works on arbitrary bytes... yes
checking type of array argument to getgroups... gid_t
checking for inttypes.h... (cached) yes
checking whether the inttypes.h PRIxNN macros are broken... no
checking where to find the exponent in a 'float'... word 0 bit 23
checking whether long double and double are the same... no
checking for LC_MESSAGES... yes
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking whether posix_spawn works... yes
checking whether posix_spawnattr_setschedpolicy is supported... yes
checking whether posix_spawnattr_setschedparam is supported... yes
checking whether unsetenv is declared... yes
checking for alloca as a compiler built-in... yes
checking whether btowc(0) is correct... yes
checking whether btowc(EOF) is correct... yes
checking byteswap.h usability... yes
checking byteswap.h presence... yes
checking for byteswap.h... yes
checking for library containing clock_gettime... -lrt
checking for clock_gettime... yes
checking for clock_settime... yes
checking whether // is distinct from /... (cached) no
checking whether dup2 works... yes
checking for library containing backtrace_symbols_fd... none required
checking whether fflush works on input streams... (cached) no
checking whether fcntl handles F_DUPFD correctly... yes
checking whether fcntl understands F_DUPFD_CLOEXEC... needs runtime check
checking for library containing fdatasync... none required
checking whether fflush works on input streams... (cached) no
checking whether conversion from 'int' to 'long double' works... yes
checking for working POSIX fnmatch... yes
checking whether fpurge is declared... no
checking for fseeko... (cached) yes
checking whether fflush works on input streams... (cached) no
checking for _fseeki64... no
checking for ftello... (cached) yes
checking whether ftello works... (cached) yes
checking whether __func__ is available... yes
configure: checking how to do getaddrinfo, freeaddrinfo and getnameinfo
checking for library containing getaddrinfo... none required
checking for getaddrinfo... yes
checking whether gai_strerror is declared... yes
checking whether gai_strerrorA is declared... no
checking for gai_strerror with POSIX signature... yes
checking for struct sockaddr.sa_len... no
checking whether getaddrinfo is declared... yes
checking whether freeaddrinfo is declared... yes
checking whether getnameinfo is declared... yes
checking for struct addrinfo... yes
checking for working getdelim function... yes
checking for gethostname... yes
checking for HOST_NAME_MAX... yes
checking for getline... yes
checking for working getline function... yes
checking for getpass... yes
checking whether gettimeofday clobbers localtime buffer... no
checking for gettimeofday with POSIX signature... almost
checking for library containing gethostbyname... (cached) none required
checking for gethostbyname... (cached) yes
checking for library containing inet_ntop... (cached) none required
checking whether inet_ntop is declared... (cached) yes
checking for library containing inet_pton... none required
checking whether inet_pton is declared... yes
checking for ioctl... yes
checking for ioctl with POSIX signature... no
checking whether langinfo.h defines CODESET... yes
checking whether langinfo.h defines T_FMT_AMPM... yes
checking whether langinfo.h defines ERA... yes
checking whether langinfo.h defines YESEXPR... yes
checking whether locale.h conforms to POSIX:2001... yes
checking whether locale.h defines locale_t... yes
checking whether struct lconv is properly defined... yes
checking whether lseek detects pipes... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... (cached) yes
checking whether mbrtowc handles incomplete characters... yes
checking whether mbrtowc works as well as mbtowc... guessing yes
checking whether mbrtowc handles a NULL pwc argument... yes
checking whether mbrtowc handles a NULL string argument... yes
checking whether mbrtowc has a correct return value... yes
checking whether mbrtowc returns 0 when parsing a NUL character...
guessing yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
checking whether mbsrtowcs works... yes
checking for working mktime... yes
checking for __mktime_internal... no
checking whether <net/if.h> is self-contained... yes
checking whether <netinet/in.h> is self-contained... yes
checking whether YESEXPR works... yes
checking whether open recognizes a trailing slash... yes
checking whether openpty is declared... yes
checking for const-safe openpty signature... yes
checking for struct msghdr.msg_accrights... no
checking whether perror matches strerror... yes
checking for sys/pstat.h... no
checking for sys/sysmp.h... no
checking for sys/sysinfo.h... yes
checking for machine/hal_sysinfo.h... no
checking for sys/table.h... no
checking for sys/param.h... (cached) yes
checking for sys/systemcfg.h... no
checking for sys/sysctl.h... yes
checking for pstat_getstatic... no
checking for pstat_getdynamic... no
checking for sysmp... no
checking for getsysinfo... no
checking for sysctl... yes
checking for table... no
checking for poll... yes
checking for a shell that conforms to POSIX... /bin/sh
checking for pthread_t... yes
checking for pthread_spinlock_t... yes
checking for library containing pthread_create and pthread_join... -lpthread
checking for pthread_sigmask in -lpthread... yes
checking whether pthread_sigmask returns error numbers... yes
checking whether pthread_sigmask unblocks signals correctly... guessing yes
checking for raise... yes
checking for sigprocmask... yes
checking for random.h... no
checking for struct random_data... yes
checking for random_r... yes
checking for rawmemchr... yes
checking whether readlink signature is correct... yes
checking whether readlink handles trailing slash correctly... yes
checking for working re_compile_pattern... no
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking whether isblank is declared... yes
checking for __secure_getenv... yes
checking whether select supports a 0 argument... yes
checking whether select detects invalid fds... yes
checking for library containing getservbyname... (cached) none required
checking for getservbyname... (cached) yes
checking whether setenv validates arguments... yes
checking for struct sigaction.sa_sigaction... yes
checking for volatile sig_atomic_t... yes
checking for sighandler_t... yes
checking for sigprocmask... (cached) yes
checking for stdint.h... (cached) yes
checking for SIZE_MAX... yes
checking whether sleep is declared... yes
checking for working sleep... yes
checking for snprintf... (cached) yes
checking whether snprintf respects a size of 1... yes
checking whether printf supports POSIX/XSI format strings with
positions... yes
checking for library containing setsockopt... (cached) none needed
checking for socklen_t... yes
checking for ssize_t... yes
checking whether stat handles trailing slashes on directories... yes
checking whether stat handles trailing slashes on files... yes
checking for struct stat.st_atim.tv_nsec... yes
checking whether struct stat.st_atim is of type struct timespec... yes
checking for struct stat.st_birthtimespec.tv_nsec... no
checking for struct stat.st_birthtimensec... no
checking for struct stat.st_birthtim.tv_nsec... no
checking for working stdalign.h... yes
checking for va_copy... yes
checking whether NULL can be used in arbitrary expressions... (cached) yes
checking for stpcpy... yes
checking for strcasecmp... yes
checking for strncasecmp... yes
checking whether strncasecmp is declared... yes
checking for strchrnul... yes
checking whether strchrnul works... yes
checking for working strerror function... yes
checking for working strndup... yes
checking for working strnlen... yes
checking for strsep... yes
checking for strtok_r... yes
checking whether strtok_r works... yes
checking whether <sys/ioctl.h> declares ioctl... yes
checking whether <sys/select.h> is self-contained... (cached) yes
checking whether <sys/socket.h> is self-contained... (cached) yes
checking for shutdown... (cached) yes
checking whether <sys/socket.h> defines the SHUT_* macros... (cached) yes
checking for struct sockaddr_storage... (cached) yes
checking for sa_family_t... (cached) yes
checking for struct sockaddr_storage.ss_family... (cached) yes
checking for nlink_t... (cached) yes
checking for struct utsname... yes
checking whether localtime_r is declared... yes
checking whether localtime_r is compatible with its POSIX signature... yes
checking for ttyname_r... yes
checking whether ttyname_r is compatible with its POSIX signature... yes
checking whether ttyname_r works with small buffers... yes
checking for uname... yes
checking for useconds_t... yes
checking whether usleep allows large arguments... yes
checking for ptrdiff_t... yes
checking for vasprintf... yes
checking for vsnprintf... yes
checking whether snprintf respects a size of 1... (cached) yes
checking whether printf supports POSIX/XSI format strings with
positions... (cached) yes
checking whether mbrtowc handles incomplete characters... (cached) yes
checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
checking whether wcrtomb return value is correct... yes
checking whether iswcntrl works... yes
checking for towlower... yes
checking for wctype_t... yes
checking for wctrans_t... yes
checking for stdint.h... (cached) yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional french locale... (cached) fr_FR
checking for a turkish Unicode locale... tr_TR.UTF-8
checking for error_at_line... yes
checking whether fdopen sets errno... yes
checking for getgroups... yes
checking for working getgroups... yes
checking whether getgroups handles negative values... yes
checking for getpagesize... yes
checking whether getpagesize is declared... yes
checking for grantpt... yes
checking whether byte ordering is bigendian... (cached) no
checking whether byte ordering is bigendian... (cached) no
checking whether INT32_MAX < INTMAX_MAX... yes
checking whether INT64_MAX == LONG_MAX... yes
checking whether UINT32_MAX < UINTMAX_MAX... yes
checking whether UINT64_MAX == ULONG_MAX... yes
checking whether isnan(double) can be used without linking with libm... yes
checking where to find the exponent in a 'double'... (cached) word 1 bit 20
checking whether isnan(float) can be used without linking with libm... yes
checking whether isnan(float) works... yes
checking where to find the exponent in a 'float'... (cached) word 0 bit 23
checking whether isnan(long double) can be used without linking with
libm... yes
checking whether isnanl works... no
checking where to find the exponent in a 'long double'... word 2 bit 0
checking where to find the exponent in a 'long double'... (cached) word
2 bit 0
checking for setlocale... yes
checking for uselocale... yes
checking whether NAN macro works... yes
checking whether HUGE_VAL works... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP
checking for a transitional chinese locale... (cached) none
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP
checking for a transitional chinese locale... (cached) none
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking for library containing if_nameindex... none required
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking whether posix_spawn_file_actions_addclose works... yes
checking whether posix_spawn_file_actions_adddup2 works... yes
checking whether posix_spawn_file_actions_addopen works... yes
checking whether program_invocation_name is declared... yes
checking whether program_invocation_short_name is declared... yes
checking for ptsname... yes
checking whether ptsname sets errno on failure... yes
checking whether ptsname_r has the same signature as in glibc... yes
checking for putenv compatible with GNU and SVID... yes
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP
checking for a transitional chinese locale... (cached) none
checking for signbit macro... yes
checking for signbit compiler built-ins... yes
checking for posix_spawnattr_t... yes
checking for posix_spawn_file_actions_t... yes
checking for mmap... (cached) yes
checking for MAP_ANONYMOUS... yes
checking whether symlink handles trailing slash correctly... yes
checking for pthread_atfork... yes
checking for unlockpt... yes
checking for unsetenv... yes
checking for unsetenv() return type... int
checking whether unsetenv obeys POSIX... yes
checking for waitid... yes
checking for a traditional french locale... (cached) fr_FR
checking for a french Unicode locale... (cached) fr_FR.UTF-8
checking for a traditional japanese locale... (cached) ja_JP
checking for a transitional chinese locale... (cached) none
checking whether wctob works... yes
checking whether wctob is declared... yes
checking for uid_t in sys/types.h... (cached) yes
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc -std=gnu99... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-0-linux-gnu file names to
x86_64-0-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-0-linux-gnu file names to toolchain
format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... dlltool
checking how to associate runtime and link libraries... printf %s\n
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... (cached) ranlib
checking command to parse /usr/bin/nm -B output from gcc -std=gnu99
object... ok
checking for sysroot... no
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc -std=gnu99 supports -fno-rtti -fno-exceptions... no
checking for gcc -std=gnu99 option to produce PIC... -fPIC -DPIC
checking if gcc -std=gnu99 PIC flag -fPIC -DPIC works... yes
checking if gcc -std=gnu99 static flag -static works... yes
checking if gcc -std=gnu99 supports -c -o file.o... yes
checking if gcc -std=gnu99 supports -c -o file.o... (cached) yes
checking whether the gcc -std=gnu99 linker (/usr/bin/ld -m elf_x86_64)
supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for ld used by gcc -std=gnu99... (cached) /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes
checking for how to mark DSO non-deletable at runtime... -Wl,-z -Wl,nodelete
checking for how to set DSO symbol versions... -Wl,--version-script=
checking whether gcc -Wformat allows NULL strings... yes
checking whether pragma GCC diagnostic push works... yes
checking whether GCC -Wlogical-op gives bogus warnings... no
checking whether -Wno-missing-field-initializers is supported... yes
checking whether -Wno-missing-field-initializers is needed... no
checking whether -Wuninitialized is supported... yes
checking whether C compiler handles -W... yes
checking whether C compiler handles -Waddress... yes
checking whether C compiler handles -Wall... yes
checking whether C compiler handles -Warray-bounds... yes
checking whether C compiler handles -Wattributes... yes
checking whether C compiler handles -Wbad-function-cast... yes
checking whether C compiler handles -Wbuiltin-macro-redefined... yes
checking whether C compiler handles -Wcast-align... yes
checking whether C compiler handles -Wchar-subscripts... yes
checking whether C compiler handles -Wclobbered... yes
checking whether C compiler handles -Wcomment... yes
checking whether C compiler handles -Wcomments... yes
checking whether C compiler handles -Wcoverage-mismatch... yes
checking whether C compiler handles -Wcpp... yes
checking whether C compiler handles -Wdeprecated-declarations... yes
checking whether C compiler handles -Wdisabled-optimization... yes
checking whether C compiler handles -Wdiv-by-zero... yes
checking whether C compiler handles -Wdouble-promotion... yes
checking whether C compiler handles -Wempty-body... yes
checking whether C compiler handles -Wendif-labels... yes
checking whether C compiler handles -Wextra... yes
checking whether C compiler handles -Wformat-contains-nul... yes
checking whether C compiler handles -Wformat-extra-args... yes
checking whether C compiler handles -Wformat-security... yes
checking whether C compiler handles -Wformat-y2k... yes
checking whether C compiler handles -Wformat-zero-length... yes
checking whether C compiler handles -Wformat=2... yes
checking whether C compiler handles -Wfree-nonheap-object... yes
checking whether C compiler handles -Wignored-qualifiers... yes
checking whether C compiler handles -Wimplicit... yes
checking whether C compiler handles -Wimplicit-function-declaration... yes
checking whether C compiler handles -Wimplicit-int... yes
checking whether C compiler handles -Winit-self... yes
checking whether C compiler handles -Winline... yes
checking whether C compiler handles -Wint-to-pointer-cast... yes
checking whether C compiler handles -Winvalid-memory-model... yes
checking whether C compiler handles -Winvalid-pch... yes
checking whether C compiler handles -Wjump-misses-init... yes
checking whether C compiler handles -Wlogical-op... yes
checking whether C compiler handles -Wmain... yes
checking whether C compiler handles -Wmaybe-uninitialized... yes
checking whether C compiler handles -Wmissing-braces... yes
checking whether C compiler handles -Wmissing-declarations... yes
checking whether C compiler handles -Wmissing-field-initializers... yes
checking whether C compiler handles -Wmissing-format-attribute... yes
checking whether C compiler handles -Wmissing-include-dirs... yes
checking whether C compiler handles -Wmissing-noreturn... yes
checking whether C compiler handles -Wmissing-parameter-type... yes
checking whether C compiler handles -Wmissing-prototypes... yes
checking whether C compiler handles -Wmudflap... yes
checking whether C compiler handles -Wmultichar... yes
checking whether C compiler handles -Wnarrowing... yes
checking whether C compiler handles -Wnested-externs... yes
checking whether C compiler handles -Wnonnull... yes
checking whether C compiler handles -Wnormalized=nfc... yes
checking whether C compiler handles -Wold-style-declaration... yes
checking whether C compiler handles -Wold-style-definition... yes
checking whether C compiler handles -Woverflow... yes
checking whether C compiler handles -Woverride-init... yes
checking whether C compiler handles -Wpacked-bitfield-compat... yes
checking whether C compiler handles -Wparentheses... yes
checking whether C compiler handles -Wpointer-arith... yes
checking whether C compiler handles -Wpointer-sign... yes
checking whether C compiler handles -Wpointer-to-int-cast... yes
checking whether C compiler handles -Wpragmas... yes
checking whether C compiler handles -Wreturn-type... yes
checking whether C compiler handles -Wsequence-point... yes
checking whether C compiler handles -Wshadow... yes
checking whether C compiler handles -Wsizeof-pointer-memaccess... no
checking whether C compiler handles -Wstrict-aliasing... yes
checking whether C compiler handles -Wstrict-prototypes... yes
checking whether C compiler handles -Wsuggest-attribute=const... yes
checking whether C compiler handles -Wsuggest-attribute=format... no
checking whether C compiler handles -Wsuggest-attribute=noreturn... yes
checking whether C compiler handles -Wsuggest-attribute=pure... yes
checking whether C compiler handles -Wswitch... yes
checking whether C compiler handles -Wsync-nand... yes
checking whether C compiler handles -Wtrampolines... yes
checking whether C compiler handles -Wtrigraphs... yes
checking whether C compiler handles -Wtype-limits... yes
checking whether C compiler handles -Wuninitialized... yes
checking whether C compiler handles -Wunknown-pragmas... yes
checking whether C compiler handles -Wunused... yes
checking whether C compiler handles -Wunused-but-set-parameter... yes
checking whether C compiler handles -Wunused-but-set-variable... yes
checking whether C compiler handles -Wunused-function... yes
checking whether C compiler handles -Wunused-label... yes
checking whether C compiler handles -Wunused-local-typedefs... yes
checking whether C compiler handles -Wunused-parameter... yes
checking whether C compiler handles -Wunused-result... yes
checking whether C compiler handles -Wunused-value... yes
checking whether C compiler handles -Wunused-variable... yes
checking whether C compiler handles -Wvarargs... no
checking whether C compiler handles -Wvariadic-macros... yes
checking whether C compiler handles -Wvector-operation-performance... yes
checking whether C compiler handles -Wvolatile-register-var... yes
checking whether C compiler handles -Wwrite-strings... yes
checking whether C compiler handles -Wno-sign-compare... yes
checking whether C compiler handles -Wjump-misses-init... (cached) yes
checking whether C compiler handles -Wno-format-nonliteral... yes
checking whether C compiler handles -Wframe-larger-than=4096... yes
checking whether C compiler handles -fstack-protector-all... yes
checking whether C compiler handles --param=ssp-buffer-size=4... yes
checking whether C compiler handles -fexceptions... yes
checking whether C compiler handles -fasynchronous-unwind-tables... yes
checking whether C compiler handles -fdiagnostics-show-option... yes
checking whether C compiler handles -funit-at-a-time... yes
checking whether C compiler handles -fipa-pure-const... yes
checking whether C compiler handles -Wno-suggest-attribute=pure... yes
checking whether C compiler handles -Wno-suggest-attribute=const... yes
checking whether C compiler handles -Wno-redundant-decls... yes
checking whether C compiler handles -fPIE -DPIE... yes
checking for how to force completely read-only GOT table... -Wl,-z
-Wl,relro -Wl,-z -Wl,now
checking for aa_change_profile in -lapparmor... no
checking for getxattr in -lattr... yes
checking attr/xattr.h usability... yes
checking attr/xattr.h presence... yes
checking for attr/xattr.h... yes
checking for audit_encode_nv_string in -laudit... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for AVAHI... yes
checking for BLKID... yes
checking for capng_updatev in -lcap-ng... yes
checking for cap-ng.h... (cached) yes
checking for CURL... yes
checking for DBUS... yes
checking for dbus_watch_get_unix_fd... yes
checking for FUSE... yes
checking for HAL... no
checking for NETCF... no
checking for numa_available in -lnuma... no
checking for OPENWSMAN... no
checking for PCIACCESS... yes
checking for sanlock_init in -lsanlock_client... no
checking for sasl_client_init in -lsasl2... yes
checking for sasl/sasl.h... (cached) yes
checking for fgetfilecon_raw in -lselinux... no
checking for SSH2... yes
checking for UDEV... yes
checking for yajl_parse_complete in -lyajl... no
checking for yajl_tree_parse in -lyajl... yes
checking for yajl/yajl_common.h... (cached) yes
checking for CPUID instruction... yes
checking size of long... 8
checking for pthread_mutexattr_init... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking paths.h usability... yes
checking paths.h presence... yes
checking for paths.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking sys/un.h usability... yes
checking sys/un.h presence... yes
checking for sys/un.h... yes
checking sys/poll.h usability... yes
checking sys/poll.h presence... yes
checking for sys/poll.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking mntent.h usability... yes
checking mntent.h presence... yes
checking for mntent.h... yes
checking net/ethernet.h usability... yes
checking net/ethernet.h presence... yes
checking for net/ethernet.h... yes
checking linux/magic.h usability... yes
checking linux/magic.h presence... yes
checking for linux/magic.h... yes
checking for sys/un.h... (cached) yes
checking sys/syscall.h usability... yes
checking sys/syscall.h presence... yes
checking for sys/syscall.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking ifaddrs.h usability... yes
checking ifaddrs.h presence... yes
checking for ifaddrs.h... yes
checking libtasn1.h usability... yes
checking libtasn1.h presence... yes
checking for libtasn1.h... yes
checking sys/ucred.h usability... no
checking sys/ucred.h presence... no
checking for sys/ucred.h... no
checking sys/mount.h usability... yes
checking sys/mount.h presence... yes
checking for sys/mount.h... yes
checking whether htole64 is declared... yes
checking for atomic ops implementation... gcc
checking for struct ifreq... yes
checking for gettext in -lintl... no
checking for rpcgen... /usr/bin/rpcgen
checking for xmllint... /usr/bin/xmllint
checking for xmlcatalog... /usr/bin/xmlcatalog
checking for xsltproc... /usr/bin/xsltproc
checking for augparse... /usr/bin/augparse
checking for dnsmasq... dnsmasq
checking for radvd... radvd
checking for brctl... brctl
checking for tc... /sbin/tc
checking for udevadm... /sbin/udevadm
checking for udevsettle... no
checking for modprobe... /sbin/modprobe
checking for ovs-vsctl... ovs-vsctl
checking for scrub... scrub
checking for init script flavor... systemd
checking for whether to install sysctl config... yes
checking for ip... /usr/sbin/ip
checking for iptables... /usr/sbin/iptables
checking for ip6tables... /usr/sbin/ip6tables
checking for ebtables... /sbin/ebtables
checking for xdrmem_create in -lportablexdr... no
checking for library containing xdrmem_create... -ltirpc
checking for xdr_u_int64_t... yes
checking where to find <rpc/rpc.h>... none
checking for dlfcn.h... (cached) yes
checking for library containing dlopen... -ldl
checking for xen_vm_start in -lxenserver... no
checking for libxl_ctx_alloc in -lxenlight... no
checking for xs_read in -lxenstore... no
checking linux/kvm.h usability... yes
checking linux/kvm.h presence... yes
checking for linux/kvm.h... yes
checking for shell that supports <> redirection... /bin/sh
checking for linux/param.h... yes
checking for linux/sockios.h... yes
checking for linux/if_bridge.h... yes
checking for linux/if_tun.h... yes
checking for pkg-config... (cached) /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for LIBXML... yes
checking for struct _xmlURI.query_raw... yes
checking for GNUTLS... yes
checking for pkcheck... /usr/bin/pkcheck
checking for dtrace... no
checking for numad... no
checking libpcap pcap-config >= 1.0.0 ... yes
checking sys/inotify.h usability... yes
checking sys/inotify.h presence... yes
checking for sys/inotify.h... yes
checking readline/readline.h usability... yes
checking readline/readline.h presence... yes
checking for readline/readline.h... yes
checking for readline in -lreadline... yes
checking for mntent.h... (cached) yes
checking for mount... /usr/bin/mount
checking for umount... /usr/bin/umount
checking for mkfs... /sbin/mkfs
checking for showmount... /sbin/showmount
checking for pvcreate... /sbin/pvcreate
checking for vgcreate... /sbin/vgcreate
checking for lvcreate... /sbin/lvcreate
checking for pvremove... /sbin/pvremove
checking for vgremove... /sbin/vgremove
checking for lvremove... /sbin/lvremove
checking for lvchange... /sbin/lvchange
checking for vgchange... /sbin/vgchange
checking for vgscan... /sbin/vgscan
checking for pvs... /sbin/pvs
checking for vgs... /sbin/vgs
checking for lvs... /sbin/lvs
checking for iscsiadm... no
checking rbd/librbd.h usability... no
checking rbd/librbd.h presence... no
checking for rbd/librbd.h... no
checking for collie... no
checking for parted... /sbin/parted
checking for dmsetup... /sbin/dmsetup
checking for LIBPARTED... yes
checking for DEVMAPPER... yes
checking libdevmapper.h usability... yes
checking libdevmapper.h presence... yes
checking for libdevmapper.h... yes
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory...
${prefix}/lib64/python2.7/site-packages
checking for python extension module directory...
${exec_prefix}/lib64/python2.7/site-packages
checking for perl... /usr/bin/perl
checking Whether to build test suite by default... no
checking whether NLS is requested... yes
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for CFPreferencesCopyAppValue... (cached) no
checking for CFLocaleCopyCurrent... (cached) no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc
checking whether to compile with macvtap support... yes
checking whether MACVLAN_MODE_PASSTHRU is declared... yes
checking whether to compile with virtual port support... yes
checking for LIBNL... yes
checking for LIBNL_ROUTE3... yes
checking for struct ifreq.ifr_newname... yes
checking for struct ifreq.ifr_ifindex... yes
checking for struct ifreq.ifr_index... no
checking whether this build is done by a static analysis tool... no
configure: creating ./config.status
config.status: creating run
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating include/Makefile
config.status: creating docs/Makefile
config.status: creating docs/schemas/Makefile
config.status: creating gnulib/lib/Makefile
config.status: creating gnulib/tests/Makefile
config.status: creating libvirt.pc
config.status: creating libvirt.spec
config.status: creating mingw-libvirt.spec
config.status: creating po/Makefile.in
config.status: creating include/libvirt/Makefile
config.status: creating include/libvirt/libvirt.h
config.status: creating python/Makefile
config.status: creating python/tests/Makefile
config.status: creating daemon/Makefile
config.status: creating tools/Makefile
config.status: creating tests/Makefile
config.status: creating examples/apparmor/Makefile
config.status: creating examples/domain-events/events-c/Makefile
config.status: creating examples/domsuspend/Makefile
config.status: creating examples/dominfo/Makefile
config.status: creating examples/openauth/Makefile
config.status: creating examples/python/Makefile
config.status: creating examples/hellolibvirt/Makefile
config.status: creating examples/systemtap/Makefile
config.status: creating examples/xml/nwfilter/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
configure:
configure: Configuration summary
configure: =====================
configure:
configure: Drivers
configure:
configure: Xen: no
configure: QEMU: yes
configure: UML: yes
configure: OpenVZ: yes
configure: VMware: yes
configure: VBox: yes
configure: XenAPI: no
configure: xenlight: no
configure: LXC: yes
configure: PHYP: yes
configure: ESX: yes
configure: Hyper-V: no
configure: Parallels: yes
configure: Test: yes
configure: Remote: yes
configure: Network: yes
configure: Libvirtd: yes
configure: Interface: yes
configure: macvtap: yes
configure: virtport: yes
configure:
configure: Storage Drivers
configure:
configure: Dir: yes
configure: FS: yes
configure: NetFS: yes
configure: LVM: yes
configure: iSCSI: no
configure: SCSI: yes
configure: mpath: yes
configure: Disk: yes
configure: RBD: no
configure: Sheepdog: no
configure:
configure: Security Drivers
configure:
configure: SELinux: no ()
configure: AppArmor: no
configure:
configure: Driver Loadable Modules
configure:
configure: dlopen: -export-dynamic -ldl
configure:
configure: Libraries
configure:
configure: apparmor: no
configure: attr: yes (CFLAGS='' LIBS='-lattr')
configure: audit: no
configure: avahi: yes (CFLAGS='-D_REENTRANT ' LIBS='-lavahi-common
-lavahi-client ')
configure: blkid: yes (CFLAGS='-I/usr/include/blkid
-I/usr/include/uuid ' LIBS='-lblkid ')
configure: capng: yes (CFLAGS='' LIBS='-lcap-ng')
configure: curl: yes (CFLAGS='-DCURL_DISABLE_TYPECHECK '
LIBS='-lcurl ')
configure: dbus: yes (CFLAGS='-I/usr/include/dbus-1.0
-I/usr/lib64/dbus-1.0/include ' LIBS='-ldbus-1 ')
configure: fuse: yes (CFLAGS='-D_FILE_OFFSET_BITS=64
-I/usr/include/fuse ' LIBS='-lfuse -pthread ')
configure: hal: no
configure: netcf: no
configure: numactl: no
configure: openwsman: no
configure: pciaccess: yes (CFLAGS='' LIBS='-lpciaccess ')
configure: sanlock: no
configure: sasl: yes (CFLAGS='' LIBS='-lsasl2')
configure: selinux: no
configure: ssh2: yes (CFLAGS='' LIBS='-lssh2 ')
configure: udev: yes (CFLAGS='' LIBS='-ludev ')
configure: yajl: yes (CFLAGS='' LIBS='-lyajl')
configure: libxml: -I/usr/include/libxml2 -lxml2
configure: dlopen: -ldl
configure: openwsman: no
configure: gnutls: -I/usr/include/p11-kit-1 -lgnutls -lgcrypt
configure: firewalld: yes
configure: polkit: /usr/bin/pkcheck (version 1)
configure: xen: no
configure: xenapi: no
configure: xenlight: no
configure: pcap: -I/usr/include -L/usr/lib64 -Wl,-rpath,/usr/lib64
-lpcap
configure: nl: -I/usr/include/libnl3 -I/usr/include/libnl3
-lnl-3 -lnl-route-3 -lnl-3
configure: mscom: no
configure: xdr:
configure: rbd: no
configure:
configure: Test suite
configure:
configure: Coverage: no
configure: Alloc OOM: no
configure:
configure: Miscellaneous
configure:
configure: Debug: yes
configure: Use -Werror: no
configure: Warning Flags: -W -Waddress -Wall -Warray-bounds
-Wattributes -Wbad-function-cast -Wbuiltin-macro-redefined -Wcast-align
-Wchar-subscripts -Wclobbered -Wcomment -Wcomments -Wcoverage-mismatch
-Wcpp -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero
-Wdouble-promotion -Wempty-body -Wendif-labels -Wextra
-Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k
-Wformat-zero-length -Wformat=2 -Wfree-nonheap-object
-Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration
-Wimplicit-int -Winit-self -Winline -Wint-to-pointer-cast
-Winvalid-memory-model -Winvalid-pch -Wjump-misses-init -Wlogical-op
-Wmain -Wmaybe-uninitialized -Wmissing-braces -Wmissing-declarations
-Wmissing-field-initializers -Wmissing-format-attribute
-Wmissing-include-dirs -Wmissing-noreturn -Wmissing-parameter-type
-Wmissing-prototypes -Wmudflap -Wmultichar -Wnarrowing -Wnested-externs
-Wnonnull -Wnormalized=nfc -Wold-style-declaration
-Wold-style-definition -Woverflow -Woverride-init
-Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-sign
-Wpointer-to-int-cast -Wpragmas -Wreturn-type -Wsequence-point -Wshadow
-Wstrict-aliasing -Wstrict-prototypes -Wsuggest-attribute=const
-Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wswitch
-Wsync-nand -Wtrampolines -Wtrigraphs -Wtype-limits -Wuninitialized
-Wunknown-pragmas -Wunused -Wunused-but-set-parameter
-Wunused-but-set-variable -Wunused-function -Wunused-label
-Wunused-local-typedefs -Wunused-parameter -Wunused-result
-Wunused-value -Wunused-variable -Wvariadic-macros
-Wvector-operation-performance -Wvolatile-register-var -Wwrite-strings
-Wno-sign-compare -Wjump-misses-init -Wno-format-nonliteral
-Wframe-larger-than=4096 -fstack-protector-all --param=ssp-buffer-size=4
-fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option
-funit-at-a-time -fipa-pure-const -Wno-suggest-attribute=pure
-Wno-suggest-attribute=const
configure: Readline: yes
configure: Python: yes
configure: DTrace: no
configure: numad: no
configure: XML Catalog: /etc/xml/catalog
configure: Init script: systemd
configure: Char device locks: /var/lock
configure:
configure: Privileges
configure:
configure: QEMU: root:root
configure:
+ make -j5 EXAMPLE_DIR=/usr/doc/libvirt-1.0.5/examples
HTML_DIR=/usr/doc/libvirt-1.0.5
make all-recursive
make[1]: Entering directory `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5'
Making all in gnulib/lib
make[2]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
GEN alloca.h
GEN c++defs.h
GEN warn-on-use.h
GEN arg-nonnull.h
GEN configmake.h
GEN unused-parameter.h
GEN sys/types.h
GEN sys/wait.h
GEN sys/uio.h
GEN termios.h
GEN time.h
GEN unistd.h
GEN wchar.h
GEN wctype.h
GEN arpa/inet.h
GEN fcntl.h
GEN langinfo.h
GEN locale.h
GEN netdb.h
GEN poll.h
GEN pty.h
GEN signal.h
GEN stdio.h
GEN stdlib.h
GEN string.h
GEN strings.h
GEN sys/ioctl.h
GEN sys/select.h
GEN sys/socket.h
GEN sys/stat.h
GEN sys/utsname.h
GEN sys/time.h
make all-am
make[3]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
CC allocator.lo
CC areadlink.lo
CC base64.lo
CC binary-io.lo
CC bitrotate.lo
CC c-ctype.lo
CC c-strcasecmp.lo
CC c-strncasecmp.lo
CC c-strcasestr.lo
CC careadlinkat.lo
CC cloexec.lo
CC count-one-bits.lo
CC md5.lo
CC sha256.lo
CC dirname-lgpl.lo
CC basename-lgpl.lo
CC stripslash.lo
CC fd-hook.lo
CC freading.lo
CC localcharset.lo
CC lock.lo
CC malloca.lo
CC nonblocking.lo
CC passfd.lo
CC physmem.lo
CC pipe2.lo
CC sig-handler.lo
CC sockets.lo
CC stat-time.lo
CC strnlen1.lo
CC sys_socket.lo
CC tempname.lo
CC threadlib.lo
CC unistd.lo
CC wctype-h.lo
CC xsize.lo
CC asnprintf.lo
CC fclose.lo
CC fcntl.lo
CC fflush.lo
CC fpurge.lo
CC fseek.lo
CC fseeko.lo
CC ioctl.lo
CC mktime.lo
CC printf-args.lo
CC printf-parse.lo
CC regex.lo
CC secure_getenv.lo
CC strerror_r.lo
CC vasnprintf.lo
GEN charset.alias
GEN ref-add.sed
GEN ref-del.sed
CCLD libgnu.la
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
make[2]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
Making all in include
make[2]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
Making all in libvirt
make[3]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include/libvirt'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include/libvirt'
make[3]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
make[2]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
Making all in src
make[2]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
GEN libvirt.syms
GEN libvirt_qemu.def
GEN libvirt_lxc.def
GEN locking/qemu-lockd.conf
GEN virtlockd.service
GEN virtlockd.socket
GEN libvirt.def
make all-am
make[3]: Entering directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
CC libvirt_util_la-viralloc.lo
CC libvirt_util_la-virarch.lo
CC libvirt_util_la-viratomic.lo
CC libvirt_util_la-viraudit.lo
CC libvirt_util_la-virauth.lo
CC libvirt_util_la-virauthconfig.lo
CC libvirt_util_la-virbitmap.lo
CC libvirt_util_la-virbuffer.lo
CC libvirt_util_la-vircgroup.lo
CC libvirt_util_la-vircommand.lo
CC libvirt_util_la-virconf.lo
CC libvirt_util_la-virdbus.lo
CC libvirt_util_la-virdnsmasq.lo
CC libvirt_util_la-virebtables.lo
CC libvirt_util_la-virerror.lo
CC libvirt_util_la-virevent.lo
CC libvirt_util_la-vireventpoll.lo
CC libvirt_util_la-virfile.lo
CC libvirt_util_la-virhash.lo
CC libvirt_util_la-virhashcode.lo
CC libvirt_util_la-virhook.lo
CC libvirt_util_la-viridentity.lo
CC libvirt_util_la-virinitctl.lo
CC libvirt_util_la-viriptables.lo
CC libvirt_util_la-virjson.lo
CC libvirt_util_la-virkeycode.lo
CC libvirt_util_la-virlockspace.lo
CC libvirt_util_la-virkeyfile.lo
CC libvirt_util_la-virlog.lo
CC libvirt_util_la-virmacaddr.lo
CC libvirt_util_la-virnetdev.lo
CC libvirt_util_la-virnetdevbandwidth.lo
CC libvirt_util_la-virnetdevbridge.lo
CC libvirt_util_la-virnetdevmacvlan.lo
CC libvirt_util_la-virnetdevopenvswitch.lo
CC libvirt_util_la-virnetdevtap.lo
CC libvirt_util_la-virnetdevveth.lo
CC libvirt_util_la-virnetdevvlan.lo
CC libvirt_util_la-virnetdevvportprofile.lo
CC libvirt_util_la-virnetlink.lo
CC libvirt_util_la-virnodesuspend.lo
CC libvirt_util_la-virnuma.lo
CC libvirt_util_la-virobject.lo
CC libvirt_util_la-virpci.lo
CC libvirt_util_la-virpidfile.lo
CC libvirt_util_la-virportallocator.lo
CC libvirt_util_la-virprocess.lo
CC libvirt_util_la-virrandom.lo
CC libvirt_util_la-virsexpr.lo
CC libvirt_util_la-virsocketaddr.lo
CC libvirt_util_la-virstatslinux.lo
CC libvirt_util_la-virstoragefile.lo
CC libvirt_util_la-virstring.lo
CC libvirt_util_la-virthread.lo
CC libvirt_util_la-virsysinfo.lo
CC libvirt_util_la-virthreadpool.lo
CC libvirt_util_la-virtime.lo
CC libvirt_util_la-virtpm.lo
CC libvirt_util_la-virtypedparam.lo
CC libvirt_util_la-virusb.lo
CC libvirt_util_la-viruri.lo
CC libvirt_util_la-virutil.lo
CC libvirt_util_la-viruuid.lo
CC libvirt_util_la-virxml.lo
CC libvirt_conf_la-netdev_bandwidth_conf.lo
CC libvirt_conf_la-netdev_vport_profile_conf.lo
CC libvirt_conf_la-netdev_vlan_conf.lo
CC libvirt_conf_la-capabilities.lo
CC libvirt_conf_la-domain_conf.lo
CC libvirt_conf_la-domain_audit.lo
CC libvirt_conf_la-domain_nwfilter.lo
CC libvirt_conf_la-snapshot_conf.lo
CC libvirt_conf_la-domain_event.lo
CC libvirt_conf_la-network_conf.lo
CC libvirt_conf_la-nwfilter_params.lo
CC libvirt_conf_la-nwfilter_ipaddrmap.lo
CC libvirt_conf_la-nwfilter_conf.lo
CC libvirt_conf_la-node_device_conf.lo
CC libvirt_conf_la-storage_conf.lo
CC libvirt_conf_la-storage_encryption_conf.lo
CC libvirt_conf_la-interface_conf.lo
CC libvirt_conf_la-secret_conf.lo
CC libvirt_conf_la-cpu_conf.lo
CC libvirt_conf_la-virchrdev.lo
CC libvirt_conf_la-device_conf.lo
CC libvirt_cpu_la-cpu.lo
CC libvirt_cpu_la-cpu_generic.lo
CC libvirt_cpu_la-cpu_x86.lo
CC libvirt_cpu_la-cpu_s390.lo
CC libvirt_cpu_la-cpu_arm.lo
CC libvirt_cpu_la-cpu_map.lo
CC libvirt_cpu_la-cpu_powerpc.lo
CC libvirt_vmx_la-vmx.lo
CC libvirt_driver_la-driver.lo
CC libvirt_driver_la-datatypes.lo
CC libvirt_driver_la-fdstream.lo
CC libvirt_driver_la-nodeinfo.lo
CC libvirt_driver_la-libvirt.lo
CC libvirt_driver_la-lock_manager.lo
CC libvirt_driver_la-lock_driver_nop.lo
CC libvirt_driver_la-domain_lock.lo
CC libvirt_driver_test_la-test_driver.lo
CC libvirt_driver_remote_la-remote_driver.lo
CC libvirt_driver_remote_la-remote_protocol.lo
./remote/remote_protocol.c: In function 'xdr_remote_vcpu_info':
./remote/remote_protocol.c:257:10: warning: implicit declaration of
function 'xdr_u_int64_t' [-Wimplicit-function-declaration]
./remote/remote_protocol.c:257:10: warning: nested extern declaration of
'xdr_u_int64_t' [-Wnested-externs]
./remote/remote_protocol.c: In function
'xdr_remote_node_get_cells_free_memory_ret':
./remote/remote_protocol.c:623:48: error: 'xdr_u_int64_t' undeclared
(first use in this function)
./remote/remote_protocol.c:623:48: note: each undeclared identifier is
reported only once for each function it appears in
make[3]: *** [libvirt_driver_remote_la-remote_protocol.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5'
make: *** [all] Erreur 2
---
Thanks!
appzer0
2
2
03 May '13
From: "Daniel P. Berrange" <berrange(a)redhat.com>
The rule generating the HTML docs passing the --html flag
to xsltproc. This makes it use the legacy HTML parser, which
either ignores or tries to fix all sorts of broken XML tags.
There's no reason why we should be writing broken XML in
the first place, so removing --html and adding the XHTML
doctype to all files forces us to create good XML.
This adds the XHTML doc type and fixes many, many XML tag
problems it exposes.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
docs/404.html.in | 5 +++--
docs/Makefile.am | 6 +++---
docs/api.html.in | 5 +++--
docs/api_extension.html.in | 4 +++-
docs/apps.html.in | 5 ++++-
docs/archdomain.html.in | 4 +++-
docs/architecture.html.in | 5 +++--
docs/archnetwork.html.in | 5 +++--
docs/archnode.html.in | 4 +++-
docs/archstorage.html.in | 4 +++-
docs/auth.html.in | 5 +++--
docs/bindings.html.in | 5 +++--
docs/bugs.html.in | 5 +++--
docs/compiling.html.in | 5 +++--
docs/contact.html.in | 5 +++--
docs/csharp.html.in | 5 +++--
docs/deployment.html.in | 4 +++-
docs/devguide.html.in | 5 +++--
docs/docs.html.in | 4 +++-
docs/downloads.html.in | 5 +++--
docs/drivers.html.in | 4 +++-
docs/drvesx.html.in | 5 ++++-
docs/drvhyperv.html.in | 5 ++++-
docs/drvlxc.html.in | 4 +++-
docs/drvopenvz.html.in | 4 +++-
docs/drvparallels.html.in | 5 ++++-
docs/drvphyp.html.in | 5 ++++-
docs/drvqemu.html.in | 7 +++++--
docs/drvremote.html.in | 4 +++-
docs/drvtest.html.in | 4 +++-
docs/drvuml.html.in | 4 +++-
docs/drvvbox.html.in | 4 +++-
docs/drvvmware.html.in | 4 +++-
docs/drvxen.html.in | 4 +++-
docs/errors.html.in | 5 +++--
docs/firewall.html.in | 5 +++--
docs/format.html.in | 3 ++-
docs/formatcaps.html.in | 4 +++-
docs/formatdomain.html.in | 15 ++++++++++++---
docs/formatnetwork.html.in | 4 +++-
docs/formatnode.html.in | 4 +++-
docs/formatnwfilter.html.in | 16 +++++++++-------
docs/formatsecret.html.in | 4 +++-
docs/formatsnapshot.html.in | 4 +++-
docs/formatstorage.html.in | 4 +++-
docs/formatstorageencryption.html.in | 4 +++-
docs/goals.html.in | 5 +++--
docs/hacking.html.in | 4 +++-
docs/hooks.html.in | 5 +++--
docs/index.html.in | 5 +++--
docs/internals.html.in | 4 +++-
docs/internals/command.html.in | 4 +++-
docs/internals/locking.html.in | 4 +++-
docs/internals/rpc.html.in | 5 ++++-
docs/intro.html.in | 5 +++--
docs/java.html.in | 5 +++--
docs/locking.html.in | 5 +++--
docs/logging.html.in | 5 +++--
docs/migration.html.in | 14 ++++++++------
docs/news.html.in | 5 +++--
docs/pending.html.in | 4 +++-
docs/php.html.in | 5 +++--
docs/python.html.in | 5 +++--
docs/relatedlinks.html.in | 4 +++-
docs/remote.html.in | 5 +++--
docs/sitemap.html.in | 4 +++-
docs/storage.html.in | 5 +++--
docs/testapi.html.in | 7 ++++---
docs/testsuites.html.in | 7 +++++--
docs/testtck.html.in | 7 ++++---
docs/uri.html.in | 5 +++--
docs/virshcmdref.html.in | 5 +++--
docs/windows.html.in | 5 +++--
73 files changed, 250 insertions(+), 123 deletions(-)
diff --git a/docs/404.html.in b/docs/404.html.in
index 6021ad0..5b771bb 100644
--- a/docs/404.html.in
+++ b/docs/404.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>404 page not found</h1>
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 137756b..b4855d1 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -171,7 +171,7 @@ internals/%.html.tmp: internals/%.html.in subsite.xsl page.xsl sitemap.html.in
echo "Generating $@"; \
$(MKDIR_P) internals; \
name=`echo $@ | sed -e 's/.tmp//'`; \
- $(XSLTPROC) --stringparam pagename $$name --nonet --html \
+ $(XSLTPROC) --stringparam pagename $$name --nonet \
$(top_srcdir)/docs/subsite.xsl $< > $@ \
|| { rm $@ && exit 1; }; fi
@@ -179,7 +179,7 @@ internals/%.html.tmp: internals/%.html.in subsite.xsl page.xsl sitemap.html.in
@if [ -x $(XSLTPROC) ] ; then \
echo "Generating $@"; \
name=`echo $@ | sed -e 's/.tmp//'`; \
- $(XSLTPROC) --stringparam pagename $$name --nonet --html \
+ $(XSLTPROC) --stringparam pagename $$name --nonet \
$(top_srcdir)/docs/site.xsl $< > $@ \
|| { rm $@ && exit 1; }; fi
@@ -196,7 +196,7 @@ internals/%.html.tmp: internals/%.html.in subsite.xsl page.xsl sitemap.html.in
%.php.tmp: %.php.in site.xsl page.xsl sitemap.html.in
@if [ -x $(XSLTPROC) ] ; then \
echo "Generating $@"; \
- $(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet --html \
+ $(XSLTPROC) --stringparam pagename $(@:.tmp=) --nonet \
$(top_srcdir)/docs/site.xsl $< > $@ \
|| { rm $@ && exit 1; }; fi
diff --git a/docs/api.html.in b/docs/api.html.in
index 12dfaee..f77e9db 100644
--- a/docs/api.html.in
+++ b/docs/api.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>The libvirt API concepts</h1>
diff --git a/docs/api_extension.html.in b/docs/api_extension.html.in
index 83c488c..6718625 100644
--- a/docs/api_extension.html.in
+++ b/docs/api_extension.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Implementing a new API in Libvirt</h1>
diff --git a/docs/apps.html.in b/docs/apps.html.in
index 76020d8..9fdfddb 100644
--- a/docs/apps.html.in
+++ b/docs/apps.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Applications using <strong>libvirt</strong></h1>
@@ -340,6 +342,7 @@
<li>Shows you Systems Inventory (based on Facter) and
provides real time information about hosts status based on
Puppet reports.</li>
+ </ul>
</dd>
</dl>
diff --git a/docs/archdomain.html.in b/docs/archdomain.html.in
index 294fecb..50843a0 100644
--- a/docs/archdomain.html.in
+++ b/docs/archdomain.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Domain management architecture</h1>
</body>
diff --git a/docs/architecture.html.in b/docs/architecture.html.in
index d846396..5d3d441 100644
--- a/docs/architecture.html.in
+++ b/docs/architecture.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >libvirt architecture</h1>
diff --git a/docs/archnetwork.html.in b/docs/archnetwork.html.in
index c7ca4ca..5ff330c 100644
--- a/docs/archnetwork.html.in
+++ b/docs/archnetwork.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Network management architecture</h1>
diff --git a/docs/archnode.html.in b/docs/archnode.html.in
index b3d50dd..ab446dc 100644
--- a/docs/archnode.html.in
+++ b/docs/archnode.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Node device management architecture</h1>
</body>
diff --git a/docs/archstorage.html.in b/docs/archstorage.html.in
index 059f0b7..fb74f18 100644
--- a/docs/archstorage.html.in
+++ b/docs/archstorage.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Storage management architecture</h1>
diff --git a/docs/auth.html.in b/docs/auth.html.in
index 1bd02f2..e5703c7 100644
--- a/docs/auth.html.in
+++ b/docs/auth.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Authentication & access control</h1>
<p>
diff --git a/docs/bindings.html.in b/docs/bindings.html.in
index 74b3e2c..13b7d71 100644
--- a/docs/bindings.html.in
+++ b/docs/bindings.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Bindings for other languages</h1>
diff --git a/docs/bugs.html.in b/docs/bugs.html.in
index 7436a71..3d79b32 100644
--- a/docs/bugs.html.in
+++ b/docs/bugs.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Bug reporting</h1>
diff --git a/docs/compiling.html.in b/docs/compiling.html.in
index 0bfb298..66d2925 100644
--- a/docs/compiling.html.in
+++ b/docs/compiling.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1><a name="installation">libvirt Installation</a></h1>
diff --git a/docs/contact.html.in b/docs/contact.html.in
index 1f5103c..e34de67 100644
--- a/docs/contact.html.in
+++ b/docs/contact.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Contacting the development team</h1>
diff --git a/docs/csharp.html.in b/docs/csharp.html.in
index 62da6a8..4c35c87 100644
--- a/docs/csharp.html.in
+++ b/docs/csharp.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>C# API bindings</h1>
diff --git a/docs/deployment.html.in b/docs/deployment.html.in
index 8ef383b..d7d38ba 100644
--- a/docs/deployment.html.in
+++ b/docs/deployment.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Deployment</h1>
diff --git a/docs/devguide.html.in b/docs/devguide.html.in
index ba499db..122fe24 100644
--- a/docs/devguide.html.in
+++ b/docs/devguide.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt Application Development Guide</h1>
diff --git a/docs/docs.html.in b/docs/docs.html.in
index 970a79a..d4887db 100644
--- a/docs/docs.html.in
+++ b/docs/docs.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Documentation</h1>
</body>
diff --git a/docs/downloads.html.in b/docs/downloads.html.in
index 64a16c9..83b8751 100644
--- a/docs/downloads.html.in
+++ b/docs/downloads.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Downloads</h1>
diff --git a/docs/drivers.html.in b/docs/drivers.html.in
index 3d79ed5..7aa44f3 100644
--- a/docs/drivers.html.in
+++ b/docs/drivers.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Internal drivers</h1>
diff --git a/docs/drvesx.html.in b/docs/drvesx.html.in
index 11df124..0816baf 100644
--- a/docs/drvesx.html.in
+++ b/docs/drvesx.html.in
@@ -1,4 +1,7 @@
-<html><body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
<h1>VMware ESX hypervisor driver</h1>
<ul id="toc"></ul>
<p>
diff --git a/docs/drvhyperv.html.in b/docs/drvhyperv.html.in
index 7f0accd..7acf86f 100644
--- a/docs/drvhyperv.html.in
+++ b/docs/drvhyperv.html.in
@@ -1,4 +1,7 @@
-<html><body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
<h1>Microsoft Hyper-V hypervisor driver</h1>
<ul id="toc"></ul>
<p>
diff --git a/docs/drvlxc.html.in b/docs/drvlxc.html.in
index c817a9b..beff214 100644
--- a/docs/drvlxc.html.in
+++ b/docs/drvlxc.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>LXC container driver</h1>
<p>
diff --git a/docs/drvopenvz.html.in b/docs/drvopenvz.html.in
index a8f9f28..e2e72e7 100644
--- a/docs/drvopenvz.html.in
+++ b/docs/drvopenvz.html.in
@@ -1,4 +1,6 @@
-<html> <!-- -*- html -*- -->
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>OpenVZ container driver</h1>
diff --git a/docs/drvparallels.html.in b/docs/drvparallels.html.in
index 0a86451..927cc40 100644
--- a/docs/drvparallels.html.in
+++ b/docs/drvparallels.html.in
@@ -1,4 +1,7 @@
-<html><body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
<h1>Parallels Cloud Server driver</h1>
<ul id="toc"></ul>
<p>
diff --git a/docs/drvphyp.html.in b/docs/drvphyp.html.in
index 50e26b2..bb1f69e 100644
--- a/docs/drvphyp.html.in
+++ b/docs/drvphyp.html.in
@@ -1,4 +1,7 @@
-<html><body>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <body>
<h1>IBM PowerVM hypervisor driver (phyp)</h1>
<ul id="toc"></ul>
<p>
diff --git a/docs/drvqemu.html.in b/docs/drvqemu.html.in
index df99377..3a5c4df 100644
--- a/docs/drvqemu.html.in
+++ b/docs/drvqemu.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>KVM/QEMU hypervisor driver</h1>
@@ -17,6 +19,7 @@
<li>
The <a href="http://www.linux-kvm.org/">KVM</a> Linux
hypervisor
+ </li>
<li>
The <a href="http://wiki.qemu.org/Index.html">QEMU</a> emulator
</li>
@@ -569,7 +572,7 @@ $ virsh domxml-to-native qemu-argv demo.xml
pair recorded in the attributes <code>name</code>
and optional <code>value</code>.</dd>
</dl>
-
+ </p>
<p>Example:</p><pre>
<domain type='qemu' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>QEmu-fedora-i686</name>
diff --git a/docs/drvremote.html.in b/docs/drvremote.html.in
index c66526f..c967324 100644
--- a/docs/drvremote.html.in
+++ b/docs/drvremote.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Remote management driver</h1>
</body>
diff --git a/docs/drvtest.html.in b/docs/drvtest.html.in
index 44bc289..ba5fc99 100644
--- a/docs/drvtest.html.in
+++ b/docs/drvtest.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Test "mock" driver</h1>
diff --git a/docs/drvuml.html.in b/docs/drvuml.html.in
index 19b76ab..fe7769d 100644
--- a/docs/drvuml.html.in
+++ b/docs/drvuml.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>User Mode Linux driver</h1>
diff --git a/docs/drvvbox.html.in b/docs/drvvbox.html.in
index db82d2a..d59da57 100644
--- a/docs/drvvbox.html.in
+++ b/docs/drvvbox.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>VirtualBox hypervisor driver</h1>
<p>
diff --git a/docs/drvvmware.html.in b/docs/drvvmware.html.in
index b82f6a3..9ee0ebd 100644
--- a/docs/drvvmware.html.in
+++ b/docs/drvvmware.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>VMware Workstation / Player hypervisors driver</h1>
<p>
diff --git a/docs/drvxen.html.in b/docs/drvxen.html.in
index 06bd911..649ba42 100644
--- a/docs/drvxen.html.in
+++ b/docs/drvxen.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Xen hypervisor driver</h1>
diff --git a/docs/errors.html.in b/docs/errors.html.in
index cbd6e4b..df9aa7c 100644
--- a/docs/errors.html.in
+++ b/docs/errors.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Handling of errors</h1>
<p>The main goals of libvirt when it comes to error handling are:</p>
diff --git a/docs/firewall.html.in b/docs/firewall.html.in
index a9af704..42642bc 100644
--- a/docs/firewall.html.in
+++ b/docs/firewall.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Firewall and network filtering in libvirt</h1>
<p>There are three pieces of libvirt functionality which do network
diff --git a/docs/format.html.in b/docs/format.html.in
index 1306108..9cb8eee 100644
--- a/docs/format.html.in
+++ b/docs/format.html.in
@@ -1,4 +1,5 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >XML Format</h1>
diff --git a/docs/formatcaps.html.in b/docs/formatcaps.html.in
index 9d42426..d060a5b 100644
--- a/docs/formatcaps.html.in
+++ b/docs/formatcaps.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Driver capabilities XML format</h1>
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 768b54c..8b3bffa 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Domain XML format</h1>
@@ -182,6 +184,7 @@
again in case the boot fails (according to BIOS). The value is
in milliseconds with maximum of <code>65535</code> and special
value <code>-1</code> disables the reboot.
+ </dd>
</dl>
<h4><a name="elementsOSBootloader">Host bootloader</a></h4>
@@ -641,6 +644,7 @@
how to tune the performance of a NUMA host via controlling NUMA policy
for domain process. NB, only supported by QEMU driver.
<span class='since'>Since 0.9.3</span>
+ </dd>
<dt><code>memory</code></dt>
<dd>
The optional <code>memory</code> element specifies how to allocate memory
@@ -1588,6 +1592,7 @@
<dd>The optional <code>write_iops_sec</code> element is the
write I/O operations per second.</dd>
</dl>
+ </dd>
<dt><code>driver</code></dt>
<dd>
The optional driver element allows specifying further details
@@ -1847,11 +1852,13 @@
OS. For Linux this would be the value returned by the
BLKSSZGET ioctl and describes the smallest units for disk
I/O.
+ </dd>
<dt><code>physical_block_size</code></dt>
<dd>The physical block size the disk will report to the guest
OS. For Linux this would be the value returned by the
BLKPBSZGET ioctl and describes the disk's hardware sector
size which can be relevant for the alignment of disk data.
+ </dd>
</dl>
</dd>
</dl>
@@ -2092,6 +2099,7 @@
additional attributes: <code>bus</code> (a 2-digit bus
number), and <code>slot</code> attribute (a 2-digit slot
within the bus). <span class="since">Since 0.8.8.</span>
+ </dd>
<dt><code>type='usb'</code></dt>
<dd>USB addresses have the following additional
attributes: <code>bus</code> (a hex value between 0 and 0xfff,
@@ -2367,6 +2375,7 @@
<a href="#elementsOSBIOS">BIOS bootloader</a> section.
<span class="since">Since 0.8.8</span> for PCI devices,
<span class="since">Since 1.0.1</span> for USB devices.
+ </dd>
<dt><code>rom</code></dt>
<dd>The <code>rom</code> element is used to change how a PCI
device's ROM is presented to the guest. The optional <code>bar</code>
@@ -4030,7 +4039,7 @@ qemu-kvm -net nic,model=? /dev/null
usually care about the source path since it's libvirt who talks to
the guest agent. In case users want to utilize this feature, they should
leave <code><source></code> element out.
-
+ </dd>
<dt><code>spicevmc</code></dt>
<dd>Paravirtualized SPICE channel. The domain must also have a
SPICE server as a <a href="#elementsGraphics">graphics
@@ -4589,7 +4598,7 @@ qemu-kvm -net nic,model=? /dev/null
TPM device. The following types are supported:
</p>
<ul>
- <li>'passthrough' — use the host's TPM device.
+ <li>'passthrough' — use the host's TPM device.</li>
</ul>
</dd>
<dt><code>backend type='passthrough'</code></dt>
diff --git a/docs/formatnetwork.html.in b/docs/formatnetwork.html.in
index b188896..d72bd0a 100644
--- a/docs/formatnetwork.html.in
+++ b/docs/formatnetwork.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Network XML format</h1>
diff --git a/docs/formatnode.html.in b/docs/formatnode.html.in
index 5712bcf..11654e5 100644
--- a/docs/formatnode.html.in
+++ b/docs/formatnode.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Node devices XML format</h1>
diff --git a/docs/formatnwfilter.html.in b/docs/formatnwfilter.html.in
index 78c3b82..5e1c6bb 100644
--- a/docs/formatnwfilter.html.in
+++ b/docs/formatnwfilter.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Network Filters</h1>
@@ -113,7 +115,7 @@
<p>
Filtering rules are organized in filter chains. These chains can be
thought of as having a tree structure with packet
- filtering rules as entries in individual chains (branches). <br>
+ filtering rules as entries in individual chains (branches). <br/>
Packets start their filter evaluation in the <code>root</code> chain
and can then continue their evaluation in other chains, return from
those chains back into the <code>root</code> chain or be
@@ -227,7 +229,7 @@
<p>
A chain with a lower priority value is accessed before one with a
higher value.
- <br><br>
+ <br/>
<span class="since">Since 0.9.8</span> the above listed chains
can be assigned custom priorities by writing a value in the
range [-1000, 1000] into the priority (XML) attribute in the filter
@@ -370,7 +372,7 @@
<p>
Further, the notation of $VARIABLE is short-hand for $VARIABLE[@0]. The
former notation always assumes the iterator with Id '0'.
- <p>
+ </p>
<h3><a name="nwfelemsRulesAdvIPAddrDetection">Automatic IP address detection</a></h3>
<p>
@@ -394,7 +396,7 @@
When a VM is migrated to another host or resumed after a suspend operation,
the first packet sent by the VM will again determine the IP address it can
use on a particular interface.
- <br/><br>
+ <br/>
A value of <code>dhcp</code> specifies that libvirt should only honor DHCP
server-assigned addresses with valid leases. This method supports the detection
and usage of multiple IP address per interface.
@@ -567,7 +569,7 @@
(matching the rule passes this filter, but returns control to
the calling filter for further
analysis) <span class="since">(since 0.9.7)</span>,
- or <code>continue<code> (matching the rule goes on to the next
+ or <code>continue</code> (matching the rule goes on to the next
rule for further analysis) <span class="since">(since
0.9.7)</span>.
</li>
@@ -585,7 +587,7 @@
<span class="since">Since 0.9.8</span> this has been extended to cover
the range of -1000 to 1000. If this attribute is not
provided, priority 500 will automatically be assigned.
- <br>
+ <br/>
Note that filtering rules in the <code>root</code> chain are sorted
with filters connected to the <code>root</code> chain following
their priorities. This allows to interleave filtering rules with
diff --git a/docs/formatsecret.html.in b/docs/formatsecret.html.in
index c3c4a25..f816b50 100644
--- a/docs/formatsecret.html.in
+++ b/docs/formatsecret.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Secret XML format</h1>
diff --git a/docs/formatsnapshot.html.in b/docs/formatsnapshot.html.in
index 2e830f8..76689cb 100644
--- a/docs/formatsnapshot.html.in
+++ b/docs/formatsnapshot.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Snapshot XML format</h1>
diff --git a/docs/formatstorage.html.in b/docs/formatstorage.html.in
index eba3647..9c3be67 100644
--- a/docs/formatstorage.html.in
+++ b/docs/formatstorage.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Storage pool and volume XML format</h1>
diff --git a/docs/formatstorageencryption.html.in b/docs/formatstorageencryption.html.in
index 9557a22..2b22237 100644
--- a/docs/formatstorageencryption.html.in
+++ b/docs/formatstorageencryption.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Storage volume encryption XML format</h1>
diff --git a/docs/goals.html.in b/docs/goals.html.in
index a17115e..60b6c44 100644
--- a/docs/goals.html.in
+++ b/docs/goals.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Terminology and goals</h1>
<p>To avoid ambiguity about the terms used, here are the definitions
diff --git a/docs/hacking.html.in b/docs/hacking.html.in
index 99933d1..64cdcc2 100644
--- a/docs/hacking.html.in
+++ b/docs/hacking.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Contributor guidelines</h1>
diff --git a/docs/hooks.html.in b/docs/hooks.html.in
index 3b070e7..f0f692b 100644
--- a/docs/hooks.html.in
+++ b/docs/hooks.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Hooks for specific system management</h1>
diff --git a/docs/index.html.in b/docs/index.html.in
index 038986d..772cbfb 100644
--- a/docs/index.html.in
+++ b/docs/index.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>The virtualization API</h1>
diff --git a/docs/internals.html.in b/docs/internals.html.in
index 90143ef..398d02e 100644
--- a/docs/internals.html.in
+++ b/docs/internals.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt internals</h1>
diff --git a/docs/internals/command.html.in b/docs/internals/command.html.in
index 7bb9aa3..d63151e 100644
--- a/docs/internals/command.html.in
+++ b/docs/internals/command.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Spawning processes / commands from libvirt drivers</h1>
diff --git a/docs/internals/locking.html.in b/docs/internals/locking.html.in
index c50e68f..0317c78 100644
--- a/docs/internals/locking.html.in
+++ b/docs/internals/locking.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Resource Lock Manager</h1>
diff --git a/docs/internals/rpc.html.in b/docs/internals/rpc.html.in
index 91e8449..40fb59d 100644
--- a/docs/internals/rpc.html.in
+++ b/docs/internals/rpc.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt RPC infrastructure</h1>
@@ -152,6 +154,7 @@
<li>continue: for streams this indicates that further data packets
will be following</li>
</ol>
+ </dd>
</dl>
<h3><a href="protocolpayload">Packet payload</a></h3>
diff --git a/docs/intro.html.in b/docs/intro.html.in
index a661ca3..6736f2a 100644
--- a/docs/intro.html.in
+++ b/docs/intro.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Architecture</h1>
<p>Libvirt is a C toolkit manage the virtualization capabilities
diff --git a/docs/java.html.in b/docs/java.html.in
index 41f2630..b5812ba 100644
--- a/docs/java.html.in
+++ b/docs/java.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Java API bindings</h1>
diff --git a/docs/locking.html.in b/docs/locking.html.in
index 19dd6a3..8e1e72c 100644
--- a/docs/locking.html.in
+++ b/docs/locking.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Virtual machine disk locking</h1>
diff --git a/docs/logging.html.in b/docs/logging.html.in
index a95f7bc..86e178c 100644
--- a/docs/logging.html.in
+++ b/docs/logging.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Logging in the library and the daemon</h1>
<p>Libvirt includes logging facilities starting from version 0.6.0,
diff --git a/docs/migration.html.in b/docs/migration.html.in
index aecef41..2ea0969 100644
--- a/docs/migration.html.in
+++ b/docs/migration.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Guest migration</h1>
@@ -30,7 +32,7 @@
</p>
<p>
- <img class="diagram" src="migration-native.png" alt="Migration native path">
+ <img class="diagram" src="migration-native.png" alt="Migration native path"/>
</p>
<h3><a name="transporttunnel">libvirt tunnelled transport</a></h3>
@@ -48,7 +50,7 @@
</p>
<p>
- <img class="diagram" src="migration-tunnel.png" alt="Migration tunnel path">
+ <img class="diagram" src="migration-tunnel.png" alt="Migration tunnel path"/>
</p>
<h2><a name="flow">Communication control paths/flows</a></h2>
@@ -75,7 +77,7 @@
</p>
<p>
- <img class="diagram" src="migration-managed-direct.png" alt="Migration direct, managed">
+ <img class="diagram" src="migration-managed-direct.png" alt="Migration direct, managed"/>
</p>
@@ -97,7 +99,7 @@
</p>
<p>
- <img class="diagram" src="migration-managed-p2p.png" alt="Migration peer-to-peer">
+ <img class="diagram" src="migration-managed-p2p.png" alt="Migration peer-to-peer"/>
</p>
@@ -113,7 +115,7 @@
</p>
<p>
- <img class="diagram" src="migration-unmanaged-direct.png" alt="Migration direct, unmanaged">
+ <img class="diagram" src="migration-unmanaged-direct.png" alt="Migration direct, unmanaged"/>
</p>
diff --git a/docs/news.html.in b/docs/news.html.in
index 44a1b09..b77cf1d 100644
--- a/docs/news.html.in
+++ b/docs/news.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
diff --git a/docs/pending.html.in b/docs/pending.html.in
index f2978bf..d9d2eae 100644
--- a/docs/pending.html.in
+++ b/docs/pending.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Pending patches needing review</h1>
<p> A list of pending patches needing review upstream is available
diff --git a/docs/php.html.in b/docs/php.html.in
index 5283e67..d9a3c1b 100644
--- a/docs/php.html.in
+++ b/docs/php.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>PHP API bindings</h1>
diff --git a/docs/python.html.in b/docs/python.html.in
index e7538a4..3033337 100644
--- a/docs/python.html.in
+++ b/docs/python.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Python API bindings</h1>
diff --git a/docs/relatedlinks.html.in b/docs/relatedlinks.html.in
index 9e96f66..b376ced 100644
--- a/docs/relatedlinks.html.in
+++ b/docs/relatedlinks.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Related links</h1>
diff --git a/docs/remote.html.in b/docs/remote.html.in
index fc6af82..25ae30e 100644
--- a/docs/remote.html.in
+++ b/docs/remote.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Remote support</h1>
<p>
diff --git a/docs/sitemap.html.in b/docs/sitemap.html.in
index afabf2d..619e4a1 100644
--- a/docs/sitemap.html.in
+++ b/docs/sitemap.html.in
@@ -1,4 +1,6 @@
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Sitemap</h1>
diff --git a/docs/storage.html.in b/docs/storage.html.in
index 649e23b..1181444 100644
--- a/docs/storage.html.in
+++ b/docs/storage.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Storage Management</h1>
<p>
diff --git a/docs/testapi.html.in b/docs/testapi.html.in
index 9b6161d..cf23271 100644
--- a/docs/testapi.html.in
+++ b/docs/testapi.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt-test-API: Python based test suite </h1>
<p>Libvirt-test-API is a powerful test tool designed to complement
@@ -24,7 +25,7 @@
<ul>
<li> A <a href="http://libvirt.org/sources/libvirt-test-API/Libvirt-test-API.pdf">documentation PDF</a>
file describing the test suite and how to write test cases
- and test scenarios.
+ and test scenarios.</li>
</ul>
<p> Libvirt-test-API is maintained using
<a href="http://libvirt.org/git/?p=libvirt-test-API.git">a GIT
diff --git a/docs/testsuites.html.in b/docs/testsuites.html.in
index 4441d94..9a382cf 100644
--- a/docs/testsuites.html.in
+++ b/docs/testsuites.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Test suites</h1>
<p>There is a few test suites available to developers for testing
@@ -24,6 +25,7 @@
in Fedora distributions, but best is probably to get
the <a href="http://libvirt.org/git/?p=libvirt-tck.git">version
from GIT</a>.
+ </li>
<li>the <a href="testapi.html">libvirt-test-API</a> is also a functional
test suite, but implemented using the
<a href="python.html">Python bindings</a>
@@ -32,6 +34,7 @@
or directly get
the <a href="http://libvirt.org/git/?p=libvirt-test-API.git">version
from GIT</a>.
+ </li>
</ul>
</body>
</html>
diff --git a/docs/testtck.html.in b/docs/testtck.html.in
index c0e7008..dff46d0 100644
--- a/docs/testtck.html.in
+++ b/docs/testtck.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>libvirt TCK : Technology Compatibility Kit</h1>
<p>The libvirt TCK provides a framework for performing testing
@@ -26,7 +27,7 @@
<ul>
<li> The initial
<a href="http://www.redhat.com/archives/libvir-list/2009-April/msg00176.html">mail
- from Daniel Berrange</a> presenting the project.
+ from Daniel Berrange</a> presenting the project.</li>
<li> The <a href="http://fedoraproject.org/wiki/Features/VirtTCK">page
describing VirtTCK</a> the inclusion of libvirt-TCK as a
Fedora Feature.</li>
diff --git a/docs/uri.html.in b/docs/uri.html.in
index 97a1cdb..73c3e88 100644
--- a/docs/uri.html.in
+++ b/docs/uri.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Connection URIs</h1>
diff --git a/docs/virshcmdref.html.in b/docs/virshcmdref.html.in
index 4845312..5503ca0 100644
--- a/docs/virshcmdref.html.in
+++ b/docs/virshcmdref.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1>Virsh Command Reference</h1>
diff --git a/docs/windows.html.in b/docs/windows.html.in
index 8e0af7c..89dfdb1 100644
--- a/docs/windows.html.in
+++ b/docs/windows.html.in
@@ -1,5 +1,6 @@
-<?xml version="1.0"?>
-<html>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
<body>
<h1 >Windows support</h1>
--
1.8.2.1
2
1
03 May '13
From: "Daniel P. Berrange" <berrange(a)redhat.com>
A 'uri' parameter was added for the benefit of sanlock. This
causes a warning in the lockd driver though
2013-05-03 13:20:35.347+0000: 28403: error : virLockManagerLockDaemonNew:482 : internal error Unexpected parameter uri for object
Ignore this parameter, since lockd does not require it and it
is harmless if not used.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/locking/lock_driver_lockd.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c
index 4d0cd74..8077105 100644
--- a/src/locking/lock_driver_lockd.c
+++ b/src/locking/lock_driver_lockd.c
@@ -476,6 +476,8 @@ static int virLockManagerLockDaemonNew(virLockManagerPtr lock,
priv->id = params[i].value.i;
} else if (STREQ(params[i].key, "pid")) {
priv->pid = params[i].value.i;
+ } else if (STREQ(params[i].key, "uri")) {
+ /* ignored */
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unexpected parameter %s for object"),
--
1.8.1.4
2
1
[libvirt] [PATCHv2] network: fix network driver startup for qemu:///session
by Laine Stump 03 May '13
by Laine Stump 03 May '13
03 May '13
This should resolve https://bugzilla.redhat.com/show_bug.cgi?id=958907
Recent new addition of code to read/write active network state to the
NETWORK_STATE_DIR in the network driver broke startup for
qemu:///session. The network driver had several state file paths
hardcoded to /var, which could never possibly work in session mode.
This patch modifies *all* state files to use a variable string that is
set differently according to whether or not we're running
privileged. (It turns out that logDir was never used, so it's been
completely eliminated.)
There are very definitely other problems preventing dnsmasq and radvd
from running in non-privileged mode, but it's more consistent to have
the directories used by them be determined in the same fashion.
NB: I've noted before that the network driver is storing its state
(including dnsmasq and radvd state) in /var/lib, while qemu stores its
state in /var/run. It would probably have been better if the two
matched, but it's been this way for a long time, and changing it would
break running installations during an upgrade, so it's best to just
leave it as it is.
---
Changes since V1:
* change user directory names as outlined by danpb.
* eliminate the "base" string which caused so much bad code, and
otherwise simplify the logic
* get rid of logDir, since it's never used.
* eliminage the *_DIR #defines, since they're now each only used once,
and they just serve to obscure what's being done.
src/network/bridge_driver.c | 182 +++++++++++++++++++++++++-------------------
1 file changed, 102 insertions(+), 80 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index e828997..543b098 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -1,4 +1,3 @@
-
/*
* bridge_driver.c: core driver methods for managing network
*
@@ -67,12 +66,6 @@
#include "virfile.h"
#include "virstring.h"
-#define NETWORK_PID_DIR LOCALSTATEDIR "/run/libvirt/network"
-#define NETWORK_STATE_DIR LOCALSTATEDIR "/lib/libvirt/network"
-
-#define DNSMASQ_STATE_DIR LOCALSTATEDIR "/lib/libvirt/dnsmasq"
-#define RADVD_STATE_DIR LOCALSTATEDIR "/lib/libvirt/radvd"
-
#define VIR_FROM_THIS VIR_FROM_NETWORK
/* Main driver state */
@@ -84,7 +77,10 @@ struct network_driver {
iptablesContext *iptables;
char *networkConfigDir;
char *networkAutostartDir;
- char *logDir;
+ char *stateDir;
+ char *pidDir;
+ char *dnsmasqStateDir;
+ char *radvdStateDir;
dnsmasqCapsPtr dnsmasqCaps;
};
@@ -133,8 +129,8 @@ networkDnsmasqLeaseFileNameDefault(const char *netname)
{
char *leasefile;
- ignore_value(virAsprintf(&leasefile, DNSMASQ_STATE_DIR "/%s.leases",
- netname));
+ ignore_value(virAsprintf(&leasefile, "%s/%s.leases",
+ driverState->dnsmasqStateDir, netname));
return leasefile;
}
@@ -146,8 +142,8 @@ networkDnsmasqConfigFileName(const char *netname)
{
char *conffile;
- ignore_value(virAsprintf(&conffile, DNSMASQ_STATE_DIR "/%s.conf",
- netname));
+ ignore_value(virAsprintf(&conffile, "%s/%s.conf",
+ driverState->dnsmasqStateDir, netname));
return conffile;
}
@@ -166,8 +162,8 @@ networkRadvdConfigFileName(const char *netname)
{
char *configfile;
- ignore_value(virAsprintf(&configfile, RADVD_STATE_DIR "/%s-radvd.conf",
- netname));
+ ignore_value(virAsprintf(&configfile, "%s/%s-radvd.conf",
+ driverState->radvdStateDir, netname));
return configfile;
}
@@ -187,8 +183,10 @@ networkRemoveInactive(struct network_driver *driver,
int ret = -1;
/* remove the (possibly) existing dnsmasq and radvd files */
- if (!(dctx = dnsmasqContextNew(def->name, DNSMASQ_STATE_DIR)))
+ if (!(dctx = dnsmasqContextNew(def->name,
+ driverState->dnsmasqStateDir))) {
goto cleanup;
+ }
if (!(leasefile = networkDnsmasqLeaseFileName(def->name)))
goto cleanup;
@@ -202,7 +200,8 @@ networkRemoveInactive(struct network_driver *driver,
if (!(configfile = networkDnsmasqConfigFileName(def->name)))
goto no_memory;
- if (!(statusfile = virNetworkConfigFile(NETWORK_STATE_DIR, def->name)))
+ if (!(statusfile
+ = virNetworkConfigFile(driverState->stateDir, def->name)))
goto no_memory;
/* dnsmasq */
@@ -212,7 +211,7 @@ networkRemoveInactive(struct network_driver *driver,
/* radvd */
unlink(radvdconfigfile);
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
/* remove status file */
unlink(statusfile);
@@ -279,7 +278,7 @@ networkFindActiveConfigs(struct network_driver *driver)
if (obj->def->ips && (obj->def->nips > 0)) {
char *radvdpidbase;
- ignore_value(virPidFileReadIfAlive(NETWORK_PID_DIR, obj->def->name,
+ ignore_value(virPidFileReadIfAlive(driverState->pidDir, obj->def->name,
&obj->dnsmasqPid,
dnsmasqCapsGetBinaryPath(driver->dnsmasqCaps)));
@@ -287,7 +286,7 @@ networkFindActiveConfigs(struct network_driver *driver)
virReportOOMError();
goto cleanup;
}
- ignore_value(virPidFileReadIfAlive(NETWORK_PID_DIR, radvdpidbase,
+ ignore_value(virPidFileReadIfAlive(driverState->pidDir, radvdpidbase,
&obj->radvdPid, RADVD));
VIR_FREE(radvdpidbase);
}
@@ -359,7 +358,9 @@ networkStateInitialize(bool privileged,
virStateInhibitCallback callback ATTRIBUTE_UNUSED,
void *opaque ATTRIBUTE_UNUSED)
{
- char *base = NULL;
+ int ret = -1;
+ char *configdir = NULL;
+ char *rundir = NULL;
#ifdef HAVE_FIREWALLD
DBusConnection *sysbus = NULL;
#endif
@@ -373,43 +374,53 @@ networkStateInitialize(bool privileged,
}
networkDriverLock(driverState);
+ /* Configuration paths one of
+ * ~/.libvirt/... (old style session/unprivileged)
+ * ~/.config/libvirt/... (new XDG session/unprivileged)
+ * /etc/libvirt/... && /var/(run|lib)/libvirt/... (system/privileged).
+ *
+ * NB: The qemu driver puts its domain state in /var/run, and I
+ * think the network driver should have used /var/run too (instead
+ * of /var/lib), but it's been this way for a long time, and we
+ * probably should change it now.
+ */
if (privileged) {
- if (virAsprintf(&driverState->logDir,
- "%s/log/libvirt/qemu", LOCALSTATEDIR) == -1)
- goto out_of_memory;
-
- if ((base = strdup(SYSCONFDIR "/libvirt")) == NULL)
+ if (!(driverState->networkConfigDir
+ = strdup(SYSCONFDIR "/libvirt/qemu/networks")) ||
+ !(driverState->networkAutostartDir
+ = strdup(SYSCONFDIR "/libvirt/qemu/networks/autostart")) ||
+ !(driverState->stateDir
+ = strdup(LOCALSTATEDIR "/lib/libvirt/network")) ||
+ !(driverState->pidDir
+ = strdup(LOCALSTATEDIR "/run/libvirt/network")) ||
+ !(driverState->dnsmasqStateDir
+ = strdup(LOCALSTATEDIR "/lib/libvirt/dnsmasq")) ||
+ !(driverState->radvdStateDir
+ = strdup(LOCALSTATEDIR "/lib/libvirt/radvd"))) {
goto out_of_memory;
+ }
} else {
- char *userdir = virGetUserCacheDirectory();
-
- if (!userdir)
+ configdir = virGetUserConfigDirectory();
+ rundir = virGetUserRuntimeDirectory();
+ if (!(configdir && rundir))
goto error;
- if (virAsprintf(&driverState->logDir,
- "%s/qemu/log", userdir) == -1) {
- VIR_FREE(userdir);
+ if ((virAsprintf(&driverState->networkConfigDir,
+ "%s/qemu/networks", configdir) < 0) ||
+ (virAsprintf(&driverState->networkAutostartDir,
+ "%s/qemu/networks/autostart", configdir) < 0) ||
+ (virAsprintf(&driverState->stateDir,
+ "%s/network/lib", rundir) < 0) ||
+ (virAsprintf(&driverState->pidDir,
+ "%s/network/run", rundir) < 0) ||
+ (virAsprintf(&driverState->dnsmasqStateDir,
+ "%s/dnsmasq/lib", rundir) < 0) ||
+ (virAsprintf(&driverState->radvdStateDir,
+ "%s/radvd/lib", rundir) < 0)) {
goto out_of_memory;
}
- VIR_FREE(userdir);
-
- base = virGetUserConfigDirectory();
- if (!base)
- goto error;
}
- /* Configuration paths are either ~/.libvirt/qemu/... (session) or
- * /etc/libvirt/qemu/... (system).
- */
- if (virAsprintf(&driverState->networkConfigDir, "%s/qemu/networks", base) == -1)
- goto out_of_memory;
-
- if (virAsprintf(&driverState->networkAutostartDir, "%s/qemu/networks/autostart",
- base) == -1)
- goto out_of_memory;
-
- VIR_FREE(base);
-
if (!(driverState->iptables = iptablesContextNew())) {
goto out_of_memory;
}
@@ -418,7 +429,7 @@ networkStateInitialize(bool privileged,
driverState->dnsmasqCaps = dnsmasqCapsNewFromBinary(DNSMASQ);
if (virNetworkLoadAllState(&driverState->networks,
- NETWORK_STATE_DIR) < 0)
+ driverState->stateDir) < 0)
goto error;
if (virNetworkLoadAllConfigs(&driverState->networks,
@@ -459,18 +470,19 @@ networkStateInitialize(bool privileged,
}
#endif
- return 0;
+ ret = 0;
+cleanup:
+ VIR_FREE(configdir);
+ VIR_FREE(rundir);
+ return ret;
out_of_memory:
virReportOOMError();
-
error:
if (driverState)
networkDriverUnlock(driverState);
-
- VIR_FREE(base);
networkStateCleanup();
- return -1;
+ goto cleanup;
}
/**
@@ -486,7 +498,7 @@ networkStateReload(void) {
networkDriverLock(driverState);
virNetworkLoadAllState(&driverState->networks,
- NETWORK_STATE_DIR);
+ driverState->stateDir);
virNetworkLoadAllConfigs(&driverState->networks,
driverState->networkConfigDir,
driverState->networkAutostartDir);
@@ -513,9 +525,12 @@ networkStateCleanup(void) {
/* free inactive networks */
virNetworkObjListFree(&driverState->networks);
- VIR_FREE(driverState->logDir);
VIR_FREE(driverState->networkConfigDir);
VIR_FREE(driverState->networkAutostartDir);
+ VIR_FREE(driverState->stateDir);
+ VIR_FREE(driverState->pidDir);
+ VIR_FREE(driverState->dnsmasqStateDir);
+ VIR_FREE(driverState->radvdStateDir);
if (driverState->iptables)
iptablesContextFree(driverState->iptables);
@@ -1057,32 +1072,33 @@ networkStartDhcpDaemon(struct network_driver *driver,
goto cleanup;
}
- if (virFileMakePath(NETWORK_PID_DIR) < 0) {
+ if (virFileMakePath(driverState->pidDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_PID_DIR);
+ driverState->pidDir);
goto cleanup;
}
- if (virFileMakePath(NETWORK_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->stateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_STATE_DIR);
+ driverState->stateDir);
goto cleanup;
}
- if (!(pidfile = virPidFileBuildPath(NETWORK_PID_DIR, network->def->name))) {
+ if (!(pidfile = virPidFileBuildPath(driverState->pidDir,
+ network->def->name))) {
virReportOOMError();
goto cleanup;
}
- if (virFileMakePath(DNSMASQ_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->dnsmasqStateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- DNSMASQ_STATE_DIR);
+ driverState->dnsmasqStateDir);
goto cleanup;
}
- dctx = dnsmasqContextNew(network->def->name, DNSMASQ_STATE_DIR);
+ dctx = dnsmasqContextNew(network->def->name, driverState->dnsmasqStateDir);
if (dctx == NULL)
goto cleanup;
@@ -1110,7 +1126,7 @@ networkStartDhcpDaemon(struct network_driver *driver,
* pid
*/
- ret = virPidFileRead(NETWORK_PID_DIR, network->def->name,
+ ret = virPidFileRead(driverState->pidDir, network->def->name,
&network->dnsmasqPid);
if (ret < 0)
goto cleanup;
@@ -1147,8 +1163,10 @@ networkRefreshDhcpDaemon(struct network_driver *driver,
return networkStartDhcpDaemon(driver, network);
VIR_INFO("Refreshing dnsmasq for network %s", network->def->bridge);
- if (!(dctx = dnsmasqContextNew(network->def->name, DNSMASQ_STATE_DIR)))
+ if (!(dctx = dnsmasqContextNew(network->def->name,
+ driverState->dnsmasqStateDir))) {
goto cleanup;
+ }
/* Look for first IPv4 address that has dhcp defined.
* We only support dhcp-host config on one IPv4 subnetwork
@@ -1372,16 +1390,16 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
goto cleanup;
}
- if (virFileMakePath(NETWORK_PID_DIR) < 0) {
+ if (virFileMakePath(driverState->pidDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_PID_DIR);
+ driverState->pidDir);
goto cleanup;
}
- if (virFileMakePath(RADVD_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->radvdStateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- RADVD_STATE_DIR);
+ driverState->radvdStateDir);
goto cleanup;
}
@@ -1390,7 +1408,7 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
virReportOOMError();
goto cleanup;
}
- if (!(pidfile = virPidFileBuildPath(NETWORK_PID_DIR, radvdpidbase))) {
+ if (!(pidfile = virPidFileBuildPath(driverState->pidDir, radvdpidbase))) {
virReportOOMError();
goto cleanup;
}
@@ -1418,7 +1436,7 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
if (virCommandRun(cmd, NULL) < 0)
goto cleanup;
- if (virPidFileRead(NETWORK_PID_DIR, radvdpidbase, &network->radvdPid) < 0)
+ if (virPidFileRead(driverState->pidDir, radvdpidbase, &network->radvdPid) < 0)
goto cleanup;
ret = 0;
@@ -1445,7 +1463,7 @@ networkRefreshRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
network->def->name) >= 0) &&
((radvdpidbase = networkRadvdPidfileBasename(network->def->name))
!= NULL)) {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
network->radvdPid = -1;
@@ -1485,7 +1503,7 @@ networkRestartRadvd(struct network_driver *driver,
network->def->name) >= 0) &&
((radvdpidbase = networkRadvdPidfileBasename(network->def->name))
!= NULL)) {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
network->radvdPid = -1;
@@ -2575,7 +2593,7 @@ static int networkShutdownNetworkVirtual(struct network_driver *driver,
if (!(radvdpidbase = networkRadvdPidfileBasename(network->def->name))) {
virReportOOMError();
} else {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
}
@@ -2676,7 +2694,8 @@ networkStartNetwork(struct network_driver *driver,
/* Persist the live configuration now that anything autogenerated
* is setup.
*/
- if ((ret = virNetworkSaveStatus(NETWORK_STATE_DIR, network)) < 0) {
+ if ((ret = virNetworkSaveStatus(driverState->stateDir,
+ network)) < 0) {
goto error;
}
@@ -2706,7 +2725,8 @@ static int networkShutdownNetwork(struct network_driver *driver,
if (!virNetworkObjIsActive(network))
return 0;
- stateFile = virNetworkConfigFile(NETWORK_STATE_DIR, network->def->name);
+ stateFile = virNetworkConfigFile(driverState->stateDir,
+ network->def->name);
if (!stateFile)
return -1;
@@ -3371,8 +3391,10 @@ networkUpdate(virNetworkPtr net,
}
/* save current network state to disk */
- if ((ret = virNetworkSaveStatus(NETWORK_STATE_DIR, network)) < 0)
+ if ((ret = virNetworkSaveStatus(driverState->stateDir,
+ network)) < 0) {
goto cleanup;
+ }
}
ret = 0;
cleanup:
@@ -4705,7 +4727,7 @@ networkPlugBandwidth(virNetworkObjPtr net,
/* update sum of 'floor'-s of attached NICs */
net->floor_sum += ifaceBand->in->floor;
/* update status file */
- if (virNetworkSaveStatus(NETWORK_STATE_DIR, net) < 0) {
+ if (virNetworkSaveStatus(driverState->stateDir, net) < 0) {
ignore_value(virBitmapClearBit(net->class_id, class_id));
net->floor_sum -= ifaceBand->in->floor;
iface->data.network.actual->class_id = 0;
@@ -4751,7 +4773,7 @@ networkUnplugBandwidth(virNetworkObjPtr net,
ignore_value(virBitmapClearBit(net->class_id,
iface->data.network.actual->class_id));
/* update status file */
- if (virNetworkSaveStatus(NETWORK_STATE_DIR, net) < 0) {
+ if (virNetworkSaveStatus(driverState->stateDir, net) < 0) {
net->floor_sum += ifaceBand->in->floor;
ignore_value(virBitmapSetBit(net->class_id,
iface->data.network.actual->class_id));
--
1.7.11.7
4
3
Re: [libvirt] [Qemu-devel] [PATCH 3/3] gtk: add devices menu to allow changing removable block devices
by Anthony Liguori 03 May '13
by Anthony Liguori 03 May '13
03 May '13
Kevin Wolf <kwolf(a)redhat.com> writes:
> Am 02.05.2013 um 15:41 hat Anthony Liguori geschrieben:
>> Kevin Wolf <kwolf(a)redhat.com> writes:
>>
>> >
>> > Ugh. Comparing the device name to an incomplete set of strings here and
>> > then figuring out for each what the specific way for this device is to
>> > create a nice string sounds like a bad idea.
>> >
>> > Why can't all devices just expose a property with a human-readable
>> > string? We'll need it for more than just the disk change menus.
>>
>> I thought about this, there are a few concerns. The first is that you
>> might lose consistency across devices. The second is i18n.
>
> What's the kind of consistency that you lose? I guess I could see the
> point (even if not agree) if it was about creating the string here vs.
> in each device, as the centralised strings would be more likely to use
> the same pattern, but you already have this part in the IDE device.
Note that these menu items are not descriptions of the device's class
but of the device. They should be unique.
So for instance, for virtio-blk-pci, we would want something like:
"VirtIO Block Device [00:03.0]"
If no serial property is defined on it, If there is a serial property,
then the serial property should be shown vs. the PCI address.
We probably want to show the PCI address consistently for any PCI based
block device. This is what I mean by consistency. It's very hard to
enforce outside of a central location.
> The i18n point I don't buy. Avoiding i18n by choosing cryptic device
> names that can't be translated isn't a good strategy. But if you do have
> translations, it doesn't matter whether you have them in the GUI or in
> the device itself, except that the latter could be used outside the
> GTK frontend, too.
>
>> I would like to show USB device separately from IDE devices (even if
>> it's a USB CDROM). I want the menu to look something like this:
>>
>> QEMU DVD-ROM QM003 ->
>> Floppy Disk ->
>> ---------------------
>> USB Devices ->
>> USB Tablet ->
>> -----------------------------------
>> Description of USB Host Device 1 ->
>> Description of USB Host Device 2 ->
>> Description of USB Host Device 3 ->
>>
>> Such that you can also do USB host device pass through via the menus.
>>
>> From an i18n point of view, I would expect 'Floppy Disk' to be
>> translated. I wouldn't expect 'QEMU DVD-ROM QM003' to be translated
>> though since this is how the device is described within the guest.
>
> Note that there can be two floppy drives. Currently both will show up as
> "isa-fdc".
No, it shows the BlockDriverState name which will always be unique.
> I also wonder how other buses fit in your menu structure, like a SCSI
> CD-ROM,
SCSI CD-ROM would show above the separator.
Note that this is only showing removable devices. Hotplug isn't
considered here. I was thinking in the long run we could have another
menu item under USB Devices called "Add/Remove Hardware..." that would
pop up a dialog to allow for hot plug/unplug.
> or even PCI hotplug. Your proposal isn't quite consistent in
> itself because it treats USB devices different from IDE or floppy
> devices.
That's a feature as these are the most common devices.
> (That said, I agree that CD and floppy should be accessible
> from the top level. But maybe usb-storage should be as well. It's not
> quite clear to me how things would work out best.)
I agree re: removable usb-storage. The goal of the menu is to give
prominence to what the devices are that you would interact with the most.
>
> Another inconsistency is that you want to have "USB Tablet" there,
> because USB has a product description as well. Should this be "QEMU USB
> Tablet"?
Ack. My intention was for that to be the product description FWIW.
>> >> +
>> >> + if (strcmp(type, "ide-cd") == 0) {
>> >> + disk_type = DT_CDROM;
>> >> + } else if (strcmp(type, "isa-fdc") == 0) {
>> >> + disk_type = DT_FLOPPY;
>> >> + } else {
>> >> + disk_type = DT_NORMAL;
>> >> + }
>> >
>> > Same thing here, comparing against strings is a hack. Devices should
>> > probably have a property that says what kind of device they are.
>>
>> Ack, this is nasty. I would like to eliminate this. There is a type
>> field in BlockInfo but:
>>
>> # @type: This field is returned only for compatibility reasons, it should
>> # not be used (always returns 'unknown')
>>
>> I vaguely remember this happening but I don't remember the specific
>> reason why. I would definitely prefer that we filled out type
>> correctly.
>>
>> I think Markus was involved in this. Markus or Luiz, do you remember
>> the story here?
>
> The reason is that BlockInfo is about the backend and it simply doesn't
> know (ever since we introduced if=none, this was buggy, so we just
> abandoned it at some point). We would have to ask the device, not the
> block layer.
Yes, this makes sense. We could introduce an interface that all disks
implemented that returned information about whether it was a CD-ROM,
Floppy, etc.
How does libvirt cope with this today? I presume they do something
similar to what this patch is doing in terms of hard coding device
names.
Regards,
Anthony Liguori
>
> Kevin
2
3
03 May '13
From: "Daniel P. Berrange" <berrange(a)redhat.com>
The lockd plugin for the lock manager was not correctly
handling the release of resource locks. This meant that
during migration, or when pausing a VM, the locks would
not get released. This in turn made it impossible to
resume the domain, or finish migration
---
src/locking/lock_driver_lockd.c | 38 ++++++++++++++++++++++++++------------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/src/locking/lock_driver_lockd.c b/src/locking/lock_driver_lockd.c
index 28a4f15..4d0cd74 100644
--- a/src/locking/lock_driver_lockd.c
+++ b/src/locking/lock_driver_lockd.c
@@ -774,10 +774,11 @@ static int virLockManagerLockDaemonRelease(virLockManagerPtr lock,
virNetClientPtr client = NULL;
virNetClientProgramPtr program = NULL;
int counter = 0;
- virLockSpaceProtocolReleaseResourceArgs args;
int rv = -1;
+ size_t i;
+ virLockManagerLockDaemonPrivatePtr priv = lock->privateData;
- memset(&args, 0, sizeof(args));
+ virCheckFlags(0, -1);
if (state)
*state = NULL;
@@ -785,16 +786,29 @@ static int virLockManagerLockDaemonRelease(virLockManagerPtr lock,
if (!(client = virLockManagerLockDaemonConnect(lock, &program, &counter)))
goto cleanup;
- args.flags = flags;
-
- if (virNetClientProgramCall(program,
- client,
- counter++,
- VIR_LOCK_SPACE_PROTOCOL_PROC_RELEASE_RESOURCE,
- 0, NULL, NULL, NULL,
- (xdrproc_t)xdr_virLockSpaceProtocolReleaseResourceArgs, &args,
- (xdrproc_t)xdr_void, NULL) < 0)
- goto cleanup;
+ for (i = 0 ; i < priv->nresources ; i++) {
+ virLockSpaceProtocolReleaseResourceArgs args;
+
+ memset(&args, 0, sizeof(args));
+
+ if (priv->resources[i].lockspace)
+ args.path = priv->resources[i].lockspace;
+ args.name = priv->resources[i].name;
+ args.flags = priv->resources[i].flags;
+
+ args.flags &=
+ ~(VIR_LOCK_SPACE_PROTOCOL_ACQUIRE_RESOURCE_SHARED |
+ VIR_LOCK_SPACE_PROTOCOL_ACQUIRE_RESOURCE_AUTOCREATE);
+
+ if (virNetClientProgramCall(program,
+ client,
+ counter++,
+ VIR_LOCK_SPACE_PROTOCOL_PROC_RELEASE_RESOURCE,
+ 0, NULL, NULL, NULL,
+ (xdrproc_t)xdr_virLockSpaceProtocolReleaseResourceArgs, &args,
+ (xdrproc_t)xdr_void, NULL) < 0)
+ goto cleanup;
+ }
rv = 0;
--
1.8.2.1
2
2
since it uses glibc's rpcgen.
---
src/rpc/genprotocol.pl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/rpc/genprotocol.pl b/src/rpc/genprotocol.pl
index c8c1570..f02ce13 100755
--- a/src/rpc/genprotocol.pl
+++ b/src/rpc/genprotocol.pl
@@ -31,7 +31,7 @@ open RPCGEN, "-|", $rpcgen, $mode, $xdrdef
open TARGET, ">$target"
or die "cannot create $target: $!";
-my $fixup = $^O eq "linux" || $^O eq "cygwin";
+my $fixup = $^O eq "linux" || $^O eq "cygwin" || $^O eq "gnukfreebsd";
if ($mode eq "-c") {
print TARGET "#include <config.h>\n";
--
1.7.10.4
2
1
[libvirt] [PATCH] virthreadpthread: don't try to cast pthread_t to void*
by Guido Günther 03 May '13
by Guido Günther 03 May '13
03 May '13
This fixes the build on kFreeBSD that otherwise fails with:
util/virthreadpthread.c: In function 'virThreadSelfID':
util/virthreadpthread.c:222:27: error: cast from function call of type 'pthread_t' to non-matching type 'void *' [-Werror=bad-function-cast]
---
I'm unsure why we'd need the cast to (void*) first.
-- Guido
src/util/virthreadpthread.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/util/virthreadpthread.c b/src/util/virthreadpthread.c
index b42b333..8d5e197 100644
--- a/src/util/virthreadpthread.c
+++ b/src/util/virthreadpthread.c
@@ -219,7 +219,7 @@ int virThreadSelfID(void)
tid = syscall(SYS_gettid);
return (int)tid;
#else
- return (int)(intptr_t)(void *)pthread_self();
+ return (int)(intptr_t)pthread_self();
#endif
}
--
1.7.10.4
5
10
Commit 297c99a accidentally put a { where a ( belonged, causing make
rpm to fail.
---
Pushed under the build breaker rule.
libvirt.spec.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 6f25031..0ecd38d 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1721,7 +1721,7 @@ fi
%if %{with_qemu}
%ghost %dir %attr(0700, root, root) %{_localstatedir}/run/libvirt/qemu/
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/
-%dir %attr{0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/
+%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/lib/libvirt/qemu/channel/target/
%dir %attr(0750, %{qemu_user}, %{qemu_group}) %{_localstatedir}/cache/libvirt/qemu/
%endif
%if %{with_lxc}
--
1.7.11.7
1
0
[libvirt] [PATCH] Fix warning about unsupported cookie flags in QEMU driver
by Daniel P. Berrange 03 May '13
by Daniel P. Berrange 03 May '13
03 May '13
From: "Daniel P. Berrange" <berrange(a)redhat.com>
The QEMU migration code unconditionally sets the 'persistent'
cookie flag on the source host. The dest host, however, only
allows it during parsing if VIR_MIGRATE_PERSIST_DEST was
set. Make the source host only set it if this flag is
present.
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/qemu/qemu_migration.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 0732614..d50099c 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2941,8 +2941,9 @@ cleanup:
VIR_FORCE_CLOSE(fd);
}
- cookieFlags |= (QEMU_MIGRATION_COOKIE_PERSISTENT |
- QEMU_MIGRATION_COOKIE_NETWORK);
+ cookieFlags |= QEMU_MIGRATION_COOKIE_NETWORK;
+ if (flags & VIR_MIGRATE_PERSIST_DEST)
+ cookieFlags |= QEMU_MIGRATION_COOKIE_PERSISTENT;
if (ret == 0 &&
qemuMigrationBakeCookie(mig, driver, vm, cookieout,
cookieoutlen, cookieFlags) < 0) {
--
1.8.1.4
2
1
Le 03/05/2013 10:06, WangXu a écrit :
> Hi,
> I found someone solved this problem using
> "CPPFLAGS="-I/usr/include/tirpc" ./configure...".
> You could try whether it works.
> ----------------------------------------
Hi and thanks for your input,
The result is the same, though it occurs now in another place :
---
CC libvirt_lxc-lxc_fuse.o
CC libvirt_lxc-lxc_controller.o
CC libvirt_lxc-nodeinfo.o
CC libvirt_lxc-datatypes.o
CC virtlockd-lock_daemon.o
CC virtlockd-lock_daemon_config.o
CC virtlockd-lock_daemon_dispatch.o
CC virtlockd-lock_protocol.o
GEN test_libvirtd_qemu.aug
GEN test_libvirtd_lxc.aug
GEN test_libvirt_lockd.aug
CCLD libvirt_util.la
CCLD libvirt_conf.la
CCLD libvirt_cpu.la
CCLD libvirt_vmx.la
CCLD libvirt_driver.la
CCLD libvirt_driver_test.la
CCLD libvirt-net-rpc-client.la
CCLD libvirt-net-rpc-server.la
CCLD libvirt-net-rpc.la
CCLD libvirt_driver_phyp.la
CCLD libvirt_driver_openvz.la
CCLD libvirt_driver_vmware.la
CCLD libvirt_driver_vbox.la
CCLD libvirt_driver_esx.la
CCLD libvirt_driver_parallels.la
CCLD libvirt_security_manager.la
CCLD lockd.la
CCLD libvirt_driver_qemu_impl.la
CCLD libvirt_driver_lxc_impl.la
CCLD libvirt_driver_uml_impl.la
CCLD libvirt_driver_network_impl.la
CCLD libvirt_driver_interface.la
CCLD libvirt_driver_secret.la
CCLD libvirt_driver_storage_impl.la
CCLD libvirt_driver_nodedev.la
CCLD libvirt_driver_nwfilter.la
CCLD libvirt_iohelper
CCLD libvirt_parthelper
CCLD libvirt_lxc
CCLD virtlockd
CCLD libvirt_driver_remote.la
CCLD libvirt_driver_qemu.la
CCLD libvirt_driver_lxc.la
CCLD libvirt_driver_uml.la
CCLD libvirt_driver_network.la
CCLD libvirt_driver_storage.la
CCLD libvirt.la
libvirt_lxc-lxc_monitor_protocol.o: In function
`xdr_virLXCMonitorInitEventMsg':
lxc_monitor_protocol.c:(.text+0x95): undefined reference to `xdr_uint64_t'
collect2: error: ld returned 1 exit status
make[3]: *** [libvirt_lxc] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory
`/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5'
make: *** [all] Erreur 2
---
Thanks again!
appzer0
>> Date: Fri, 3 May 2013 09:51:18 +0200
>> From: appzer0(a)free.fr
>> To: libvir-list(a)redhat.com
>> Subject: [libvirt] libvirt 'xdr_u_int64_t' undeclared error
>>
>> Hello list,
>>
>>
>> I don't know if I should file a bug so I'm asking here: I got problems
>> building libvirt with obsolete headers from glibc + libtirpc headers.
>>
>> I met the "'xdr_u_int64_t' undeclared" error as it seems XDR_CFLAGS are
>> never taken into account, no matter I "export" them, tweaks CFLAGS or
>> add -I/usr/include/tirpc flags.
>>
>> Building on x86_64, libvirt 1.0.4 and 1.0.5 have the same behaviour here.
>>
>> Header is present:
>>
>> $ grep xdr_u_int64_t $(find /usr/include) 2>/dev/null
>> /usr/include/tirpc/rpc/xdr.h:extern bool_t xdr_u_int64_t(XDR *,
>> u_int64_t *);
>>
>> Here is the log. Please notice the empty "xdr:" line in the configure's
>> summary :
>>
>> ---
>> + CFLAGS='-O2 -fPIC -pipe'
>> + CXXFLAGS='-O2 -fPIC -pipe'
>> + LDFLAGS=-I/usr/include/tirpc
>> + ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
>> --libdir=/usr/lib64 --libexecdir=/usr/lib64/libvirt --mandir=/usr/man
>> --infodir=/usr/info --docdir=/usr/doc/libvirt-1.0.5
>> --with-init-script=systemd --with-interface --with-storage-lvm
>> --with-udev --build=x86_64-0-linux-gnu
>> checking for a BSD-compatible install... /usr/bin/ginstall -c
>> checking whether build environment is sane... yes
>> checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
>> checking for gawk... gawk
>> checking whether make sets $(MAKE)... yes
>> checking how to create a ustar tar archive... gnutar
>> checking whether to enable maintainer-specific portions of Makefiles... yes
>> checking whether make supports nested variables... yes
>> checking build system type... x86_64-0-linux-gnu
>> checking host system type... x86_64-0-linux-gnu
>> checking for gcc... gcc
>> checking whether the C compiler works... yes
>> checking for C compiler default output file name... a.out
>> checking for suffix of executables...
>> checking whether we are cross compiling... no
>> checking for suffix of object files... o
>> checking whether we are using the GNU C compiler... yes
>> checking whether gcc accepts -g... yes
>> checking for gcc option to accept ISO C89... none needed
>> checking for style of include used by make... GNU
>> checking dependency style of gcc... gcc3
>> checking how to run the C preprocessor... gcc -E
>> checking for grep that handles long lines and -e... /usr/bin/grep
>> checking for egrep... /usr/bin/grep -E
>> checking for Minix Amsterdam compiler... no
>> checking for ar... ar
>> checking for ranlib... ranlib
>> checking whether gcc and cc understand -c and -o together... yes
>> checking for ANSI C header files... yes
>> checking for sys/types.h... yes
>> checking for sys/stat.h... yes
>> checking for stdlib.h... yes
>> checking for string.h... yes
>> checking for memory.h... yes
>> checking for strings.h... yes
>> checking for inttypes.h... yes
>> checking for stdint.h... yes
>> checking for unistd.h... yes
>> checking minix/config.h usability... no
>> checking minix/config.h presence... no
>> checking for minix/config.h... no
>> checking whether it is safe to define __EXTENSIONS__... yes
>> checking whether _XOPEN_SOURCE should be defined... no
>> checking for _LARGEFILE_SOURCE value needed for large files... no
>> checking for special C compiler options needed for large files... no
>> checking for _FILE_OFFSET_BITS value needed for large files... no
>> checking for gcc option to accept ISO C99... -std=gnu99
>> checking for gcc -std=gnu99 option to accept ISO Standard C... (cached)
>> -std=gnu99
>> configure: autobuild project... libvirt
>> configure: autobuild revision... 1.0.5
>> configure: autobuild hostname... poopy
>> configure: autobuild timestamp... 20130503T072146Z
>> checking sys/socket.h usability... yes
>> checking sys/socket.h presence... yes
>> checking for sys/socket.h... yes
>> checking arpa/inet.h usability... yes
>> checking arpa/inet.h presence... yes
>> checking for arpa/inet.h... yes
>> checking features.h usability... yes
>> checking features.h presence... yes
>> checking for features.h... yes
>> checking sys/param.h usability... yes
>> checking sys/param.h presence... yes
>> checking for sys/param.h... yes
>> checking for unistd.h... (cached) yes
>> checking execinfo.h usability... yes
>> checking execinfo.h presence... yes
>> checking for execinfo.h... yes
>> checking wctype.h usability... yes
>> checking wctype.h presence... yes
>> checking for wctype.h... yes
>> checking for sys/stat.h... (cached) yes
>> checking netdb.h usability... yes
>> checking netdb.h presence... yes
>> checking for netdb.h... yes
>> checking netinet/in.h usability... yes
>> checking netinet/in.h presence... yes
>> checking for netinet/in.h... yes
>> checking stdio_ext.h usability... yes
>> checking stdio_ext.h presence... yes
>> checking for stdio_ext.h... yes
>> checking termios.h usability... yes
>> checking termios.h presence... yes
>> checking for termios.h... yes
>> checking sys/time.h usability... yes
>> checking sys/time.h presence... yes
>> checking for sys/time.h... yes
>> checking langinfo.h usability... yes
>> checking langinfo.h presence... yes
>> checking for langinfo.h... yes
>> checking xlocale.h usability... yes
>> checking xlocale.h presence... yes
>> checking for xlocale.h... yes
>> checking sys/mman.h usability... yes
>> checking sys/mman.h presence... yes
>> checking for sys/mman.h... yes
>> checking pty.h usability... yes
>> checking pty.h presence... yes
>> checking for pty.h... yes
>> checking poll.h usability... yes
>> checking poll.h presence... yes
>> checking for poll.h... yes
>> checking sys/ioctl.h usability... yes
>> checking sys/ioctl.h presence... yes
>> checking for sys/ioctl.h... yes
>> checking sys/filio.h usability... no
>> checking sys/filio.h presence... no
>> checking for sys/filio.h... no
>> checking pthread.h usability... yes
>> checking pthread.h presence... yes
>> checking for pthread.h... yes
>> checking sched.h usability... yes
>> checking sched.h presence... yes
>> checking for sched.h... yes
>> checking sys/select.h usability... yes
>> checking sys/select.h presence... yes
>> checking for sys/select.h... yes
>> checking wchar.h usability... yes
>> checking wchar.h presence... yes
>> checking for wchar.h... yes
>> checking for stdint.h... (cached) yes
>> checking for strings.h... (cached) yes
>> checking sys/uio.h usability... yes
>> checking sys/uio.h presence... yes
>> checking for sys/uio.h... yes
>> checking sys/utsname.h usability... yes
>> checking sys/utsname.h presence... yes
>> checking for sys/utsname.h... yes
>> checking sys/wait.h usability... yes
>> checking sys/wait.h presence... yes
>> checking for sys/wait.h... yes
>> checking grp.h usability... yes
>> checking grp.h presence... yes
>> checking for grp.h... yes
>> checking for inttypes.h... (cached) yes
>> checking math.h usability... yes
>> checking math.h presence... yes
>> checking for math.h... yes
>> checking spawn.h usability... yes
>> checking spawn.h presence... yes
>> checking for spawn.h... yes
>> checking whether the preprocessor supports include_next... yes
>> checking whether system header files limit the line length... no
>> checking whether <sys/socket.h> is self-contained... yes
>> checking for shutdown... yes
>> checking whether <sys/socket.h> defines the SHUT_* macros... yes
>> checking for struct sockaddr_storage... yes
>> checking for sa_family_t... yes
>> checking for struct sockaddr_storage.ss_family... yes
>> checking for size_t... yes
>> checking for working alloca.h... yes
>> checking for alloca... yes
>> checking for C/C++ restrict keyword... __restrict
>> checking whether <wchar.h> uses 'inline' correctly... yes
>> checking for btowc... yes
>> checking for canonicalize_file_name... yes
>> checking for getcwd... yes
>> checking for readlink... yes
>> checking for realpath... yes
>> checking for readlinkat... yes
>> checking for chown... yes
>> checking for fchown... yes
>> checking for _set_invalid_parameter_handler... no
>> checking for fcntl... yes
>> checking for symlink... yes
>> checking for ffs... yes
>> checking for ffsl... yes
>> checking for isblank... yes
>> checking for iswctype... yes
>> checking for mbsrtowcs... yes
>> checking for mempcpy... yes
>> checking for wmemchr... yes
>> checking for wmemcpy... yes
>> checking for wmempcpy... yes
>> checking for fpurge... no
>> checking for __fpurge... yes
>> checking for __freading... yes
>> checking for fsync... yes
>> checking for getdelim... yes
>> checking for getdtablesize... yes
>> checking for __fsetlocking... yes
>> checking for tcgetattr... yes
>> checking for tcsetattr... yes
>> checking for gettimeofday... yes
>> checking for lstat... yes
>> checking for mbsinit... yes
>> checking for mbrtowc... yes
>> checking for mprotect... yes
>> checking for mkostemp... yes
>> checking for mkostemps... yes
>> checking for nl_langinfo... yes
>> checking for recvmsg... yes
>> checking for sendmsg... yes
>> checking for strerror_r... yes
>> checking for __xpg_strerror_r... yes
>> checking for pipe... yes
>> checking for pipe2... yes
>> checking for posix_openpt... yes
>> checking for pthread_sigmask... no
>> checking for wcscoll... yes
>> checking for secure_getenv... no
>> checking for setenv... yes
>> checking for sigaction... yes
>> checking for sigaltstack... yes
>> checking for siginterrupt... yes
>> checking for sleep... yes
>> checking for snprintf... yes
>> checking for strdup... yes
>> checking for catgets... yes
>> checking for strndup... yes
>> checking for strptime... yes
>> checking for localtime_r... yes
>> checking for timegm... yes
>> checking for usleep... yes
>> checking for vasnprintf... no
>> checking for wcrtomb... yes
>> checking for iswcntrl... yes
>> checking for getegid... yes
>> checking for ftruncate... yes
>> checking for newlocale... yes
>> checking for getgrouplist... yes
>> checking for socketpair... yes
>> checking for posix_spawn... yes
>> checking for ptsname_r... yes
>> checking for shutdown... (cached) yes
>> checking for wctob... yes
>> checking for cfmakeraw... yes
>> checking for geteuid... yes
>> checking for getgid... yes
>> checking for getgrnam_r... yes
>> checking for getmntent_r... yes
>> checking for getpwuid_r... yes
>> checking for getuid... yes
>> checking for initgroups... yes
>> checking for kill... yes
>> checking for mmap... yes
>> checking for posix_fallocate... yes
>> checking for posix_memalign... yes
>> checking for prlimit... yes
>> checking for regexec... yes
>> checking for sched_getaffinity... yes
>> checking for setns... yes
>> checking for setrlimit... yes
>> checking for nl_langinfo and CODESET... yes
>> checking for a traditional french locale... fr_FR
>> checking whether malloc, realloc, calloc are POSIX compliant... yes
>> checking whether // is distinct from /... no
>> checking whether realpath works... yes
>> checking for uid_t in sys/types.h... yes
>> checking for unistd.h... (cached) yes
>> checking for working chown... yes
>> checking whether chown dereferences symlinks... yes
>> checking whether chown honors trailing slash... yes
>> checking whether chown always updates ctime... yes
>> checking for unsigned long long int... yes
>> checking whether byte ordering is bigendian... no
>> checking if environ is properly declared... yes
>> checking for complete errno.h... yes
>> checking for working fcntl.h... yes
>> checking for pid_t... yes
>> checking for mode_t... yes
>> checking whether fdatasync is declared... yes
>> checking for mbstate_t... yes
>> checking whether stdin defaults to large file offsets... yes
>> checking whether fseeko is declared... yes
>> checking for fseeko... yes
>> checking whether fflush works on input streams... no
>> checking whether stat file-mode macros are broken... no
>> checking for nlink_t... yes
>> checking whether ftello is declared... yes
>> checking for ftello... yes
>> checking whether ftello works... yes
>> checking for library containing gethostbyname... none required
>> checking for gethostbyname... yes
>> checking for library containing getservbyname... none required
>> checking for getservbyname... yes
>> checking for library containing inet_ntop... none required
>> checking whether inet_ntop is declared... yes
>> checking for IPv4 sockets... yes
>> checking for IPv6 sockets... yes
>> checking whether getcwd (NULL, 0) allocates memory for result... yes
>> checking for getcwd with POSIX signature... yes
>> checking whether getdelim is declared... yes
>> checking whether getline is declared... yes
>> checking whether getpass is declared... yes
>> checking whether fflush_unlocked is declared... yes
>> checking whether flockfile is declared... yes
>> checking whether fputs_unlocked is declared... yes
>> checking whether funlockfile is declared... yes
>> checking whether putc_unlocked is declared... yes
>> checking for struct timeval... yes
>> checking for wide-enough struct timeval.tv_sec member... yes
>> checking whether ldexp() can be used without linking with libm... yes
>> checking whether getc_unlocked is declared... yes
>> checking whether we are using the GNU C Library 2.1 or newer... yes
>> checking for wchar_t... yes
>> checking whether NULL can be used in arbitrary expressions... yes
>> checking for ld used by GCC... /usr/bin/ld
>> checking if the linker (/usr/bin/ld) is GNU ld... yes
>> checking for shared library run path origin... done
>> checking whether imported symbols can be declared weak... yes
>> checking for pthread.h... (cached) yes
>> checking for pthread_kill in -lpthread... yes
>> checking for pthread_rwlock_t... yes
>> checking for multithread API to use... posix
>> checking for inline... inline
>> checking whether lstat correctly handles trailing slash... yes
>> checking for stdlib.h... (cached) yes
>> checking for GNU libc compatible malloc... yes
>> checking for long long int... yes
>> checking for a traditional japanese locale... ja_JP
>> checking for a transitional chinese locale... none
>> checking for a french Unicode locale... fr_FR.UTF-8
>> checking for mmap... (cached) yes
>> checking for MAP_ANONYMOUS... yes
>> checking whether memchr works... yes
>> checking whether alarm is declared... yes
>> checking whether C symbols are prefixed with underscore at the linker
>> level... no
>> checking for promoted mode_t type... mode_t
>> checking for library containing forkpty... -lutil
>> checking whether strerror(0) succeeds... yes
>> checking for strerror_r with POSIX signature... no
>> checking whether __xpg_strerror_r works... yes
>> checking whether strerror_r is declared... yes
>> checking for external symbol _system_configuration... no
>> checking for library containing setsockopt... none needed
>> checking whether imported symbols can be declared weak... yes
>> checking for pthread.h... (cached) yes
>> checking for pthread_kill in -lpthread... (cached) yes
>> checking for multithread API to use... posix
>> checking for sigset_t... yes
>> checking for SIGPIPE... yes
>> checking whether <sys/select.h> is self-contained... yes
>> checking whether setenv is declared... yes
>> checking search.h usability... yes
>> checking search.h presence... yes
>> checking for search.h... yes
>> checking for tsearch... yes
>> checking whether snprintf returns a byte count as in C99... yes
>> checking whether snprintf is declared... yes
>> checking for stdbool.h that conforms to C99... yes
>> checking for _Bool... yes
>> checking whether stdint.h conforms to C99... yes
>> checking whether strdup is declared... yes
>> checking whether strndup is declared... yes
>> checking whether strnlen is declared... yes
>> checking for struct tm.tm_gmtoff... yes
>> checking whether strtok_r is declared... yes
>> checking for struct timespec in <time.h>... yes
>> checking whether ttyname_r is declared... yes
>> checking for wint_t... yes
>> checking for inttypes.h... yes
>> checking for stdint.h... yes
>> checking for intmax_t... yes
>> checking where to find the exponent in a 'double'... word 1 bit 20
>> checking for snprintf... (cached) yes
>> checking for strnlen... yes
>> checking for wcslen... yes
>> checking for wcsnlen... yes
>> checking for mbrtowc... (cached) yes
>> checking for wcrtomb... (cached) yes
>> checking whether _snprintf is declared... no
>> checking whether vsnprintf is declared... yes
>> checking whether strerror_r is declared... (cached) yes
>> checking for strerror_r... (cached) yes
>> checking whether strerror_r returns char *... yes
>> checking for sig_atomic_t... yes
>> checking whether ungetc works on arbitrary bytes... yes
>> checking type of array argument to getgroups... gid_t
>> checking for inttypes.h... (cached) yes
>> checking whether the inttypes.h PRIxNN macros are broken... no
>> checking where to find the exponent in a 'float'... word 0 bit 23
>> checking whether long double and double are the same... no
>> checking for LC_MESSAGES... yes
>> checking for CFPreferencesCopyAppValue... no
>> checking for CFLocaleCopyCurrent... no
>> checking whether posix_spawn works... yes
>> checking whether posix_spawnattr_setschedpolicy is supported... yes
>> checking whether posix_spawnattr_setschedparam is supported... yes
>> checking whether unsetenv is declared... yes
>> checking for alloca as a compiler built-in... yes
>> checking whether btowc(0) is correct... yes
>> checking whether btowc(EOF) is correct... yes
>> checking byteswap.h usability... yes
>> checking byteswap.h presence... yes
>> checking for byteswap.h... yes
>> checking for library containing clock_gettime... -lrt
>> checking for clock_gettime... yes
>> checking for clock_settime... yes
>> checking whether // is distinct from /... (cached) no
>> checking whether dup2 works... yes
>> checking for library containing backtrace_symbols_fd... none required
>> checking whether fflush works on input streams... (cached) no
>> checking whether fcntl handles F_DUPFD correctly... yes
>> checking whether fcntl understands F_DUPFD_CLOEXEC... needs runtime check
>> checking for library containing fdatasync... none required
>> checking whether fflush works on input streams... (cached) no
>> checking whether conversion from 'int' to 'long double' works... yes
>> checking for working POSIX fnmatch... yes
>> checking whether fpurge is declared... no
>> checking for fseeko... (cached) yes
>> checking whether fflush works on input streams... (cached) no
>> checking for _fseeki64... no
>> checking for ftello... (cached) yes
>> checking whether ftello works... (cached) yes
>> checking whether __func__ is available... yes
>> configure: checking how to do getaddrinfo, freeaddrinfo and getnameinfo
>> checking for library containing getaddrinfo... none required
>> checking for getaddrinfo... yes
>> checking whether gai_strerror is declared... yes
>> checking whether gai_strerrorA is declared... no
>> checking for gai_strerror with POSIX signature... yes
>> checking for struct sockaddr.sa_len... no
>> checking whether getaddrinfo is declared... yes
>> checking whether freeaddrinfo is declared... yes
>> checking whether getnameinfo is declared... yes
>> checking for struct addrinfo... yes
>> checking for working getdelim function... yes
>> checking for gethostname... yes
>> checking for HOST_NAME_MAX... yes
>> checking for getline... yes
>> checking for working getline function... yes
>> checking for getpass... yes
>> checking whether gettimeofday clobbers localtime buffer... no
>> checking for gettimeofday with POSIX signature... almost
>> checking for library containing gethostbyname... (cached) none required
>> checking for gethostbyname... (cached) yes
>> checking for library containing inet_ntop... (cached) none required
>> checking whether inet_ntop is declared... (cached) yes
>> checking for library containing inet_pton... none required
>> checking whether inet_pton is declared... yes
>> checking for ioctl... yes
>> checking for ioctl with POSIX signature... no
>> checking whether langinfo.h defines CODESET... yes
>> checking whether langinfo.h defines T_FMT_AMPM... yes
>> checking whether langinfo.h defines ERA... yes
>> checking whether langinfo.h defines YESEXPR... yes
>> checking whether locale.h conforms to POSIX:2001... yes
>> checking whether locale.h defines locale_t... yes
>> checking whether struct lconv is properly defined... yes
>> checking whether lseek detects pipes... yes
>> checking for stdlib.h... (cached) yes
>> checking for GNU libc compatible malloc... (cached) yes
>> checking whether mbrtowc handles incomplete characters... yes
>> checking whether mbrtowc works as well as mbtowc... guessing yes
>> checking whether mbrtowc handles a NULL pwc argument... yes
>> checking whether mbrtowc handles a NULL string argument... yes
>> checking whether mbrtowc has a correct return value... yes
>> checking whether mbrtowc returns 0 when parsing a NUL character...
>> guessing yes
>> checking whether mbrtowc handles incomplete characters... (cached) yes
>> checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
>> checking whether mbrtowc handles incomplete characters... (cached) yes
>> checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
>> checking whether mbsrtowcs works... yes
>> checking for working mktime... yes
>> checking for __mktime_internal... no
>> checking whether <net/if.h> is self-contained... yes
>> checking whether <netinet/in.h> is self-contained... yes
>> checking whether YESEXPR works... yes
>> checking whether open recognizes a trailing slash... yes
>> checking whether openpty is declared... yes
>> checking for const-safe openpty signature... yes
>> checking for struct msghdr.msg_accrights... no
>> checking whether perror matches strerror... yes
>> checking for sys/pstat.h... no
>> checking for sys/sysmp.h... no
>> checking for sys/sysinfo.h... yes
>> checking for machine/hal_sysinfo.h... no
>> checking for sys/table.h... no
>> checking for sys/param.h... (cached) yes
>> checking for sys/systemcfg.h... no
>> checking for sys/sysctl.h... yes
>> checking for pstat_getstatic... no
>> checking for pstat_getdynamic... no
>> checking for sysmp... no
>> checking for getsysinfo... no
>> checking for sysctl... yes
>> checking for table... no
>> checking for poll... yes
>> checking for a shell that conforms to POSIX... /bin/sh
>> checking for pthread_t... yes
>> checking for pthread_spinlock_t... yes
>> checking for library containing pthread_create and pthread_join... -lpthread
>> checking for pthread_sigmask in -lpthread... yes
>> checking whether pthread_sigmask returns error numbers... yes
>> checking whether pthread_sigmask unblocks signals correctly... guessing yes
>> checking for raise... yes
>> checking for sigprocmask... yes
>> checking for random.h... no
>> checking for struct random_data... yes
>> checking for random_r... yes
>> checking for rawmemchr... yes
>> checking whether readlink signature is correct... yes
>> checking whether readlink handles trailing slash correctly... yes
>> checking for working re_compile_pattern... no
>> checking libintl.h usability... yes
>> checking libintl.h presence... yes
>> checking for libintl.h... yes
>> checking whether isblank is declared... yes
>> checking for __secure_getenv... yes
>> checking whether select supports a 0 argument... yes
>> checking whether select detects invalid fds... yes
>> checking for library containing getservbyname... (cached) none required
>> checking for getservbyname... (cached) yes
>> checking whether setenv validates arguments... yes
>> checking for struct sigaction.sa_sigaction... yes
>> checking for volatile sig_atomic_t... yes
>> checking for sighandler_t... yes
>> checking for sigprocmask... (cached) yes
>> checking for stdint.h... (cached) yes
>> checking for SIZE_MAX... yes
>> checking whether sleep is declared... yes
>> checking for working sleep... yes
>> checking for snprintf... (cached) yes
>> checking whether snprintf respects a size of 1... yes
>> checking whether printf supports POSIX/XSI format strings with
>> positions... yes
>> checking for library containing setsockopt... (cached) none needed
>> checking for socklen_t... yes
>> checking for ssize_t... yes
>> checking whether stat handles trailing slashes on directories... yes
>> checking whether stat handles trailing slashes on files... yes
>> checking for struct stat.st_atim.tv_nsec... yes
>> checking whether struct stat.st_atim is of type struct timespec... yes
>> checking for struct stat.st_birthtimespec.tv_nsec... no
>> checking for struct stat.st_birthtimensec... no
>> checking for struct stat.st_birthtim.tv_nsec... no
>> checking for working stdalign.h... yes
>> checking for va_copy... yes
>> checking whether NULL can be used in arbitrary expressions... (cached) yes
>> checking for stpcpy... yes
>> checking for strcasecmp... yes
>> checking for strncasecmp... yes
>> checking whether strncasecmp is declared... yes
>> checking for strchrnul... yes
>> checking whether strchrnul works... yes
>> checking for working strerror function... yes
>> checking for working strndup... yes
>> checking for working strnlen... yes
>> checking for strsep... yes
>> checking for strtok_r... yes
>> checking whether strtok_r works... yes
>> checking whether <sys/ioctl.h> declares ioctl... yes
>> checking whether <sys/select.h> is self-contained... (cached) yes
>> checking whether <sys/socket.h> is self-contained... (cached) yes
>> checking for shutdown... (cached) yes
>> checking whether <sys/socket.h> defines the SHUT_* macros... (cached) yes
>> checking for struct sockaddr_storage... (cached) yes
>> checking for sa_family_t... (cached) yes
>> checking for struct sockaddr_storage.ss_family... (cached) yes
>> checking for nlink_t... (cached) yes
>> checking for struct utsname... yes
>> checking whether localtime_r is declared... yes
>> checking whether localtime_r is compatible with its POSIX signature... yes
>> checking for ttyname_r... yes
>> checking whether ttyname_r is compatible with its POSIX signature... yes
>> checking whether ttyname_r works with small buffers... yes
>> checking for uname... yes
>> checking for useconds_t... yes
>> checking whether usleep allows large arguments... yes
>> checking for ptrdiff_t... yes
>> checking for vasprintf... yes
>> checking for vsnprintf... yes
>> checking whether snprintf respects a size of 1... (cached) yes
>> checking whether printf supports POSIX/XSI format strings with
>> positions... (cached) yes
>> checking whether mbrtowc handles incomplete characters... (cached) yes
>> checking whether mbrtowc works as well as mbtowc... (cached) guessing yes
>> checking whether wcrtomb return value is correct... yes
>> checking whether iswcntrl works... yes
>> checking for towlower... yes
>> checking for wctype_t... yes
>> checking for wctrans_t... yes
>> checking for stdint.h... (cached) yes
>> checking for a traditional french locale... (cached) fr_FR
>> checking for a french Unicode locale... (cached) fr_FR.UTF-8
>> checking for a traditional french locale... (cached) fr_FR
>> checking for a turkish Unicode locale... tr_TR.UTF-8
>> checking for error_at_line... yes
>> checking whether fdopen sets errno... yes
>> checking for getgroups... yes
>> checking for working getgroups... yes
>> checking whether getgroups handles negative values... yes
>> checking for getpagesize... yes
>> checking whether getpagesize is declared... yes
>> checking for grantpt... yes
>> checking whether byte ordering is bigendian... (cached) no
>> checking whether byte ordering is bigendian... (cached) no
>> checking whether INT32_MAX < INTMAX_MAX... yes
>> checking whether INT64_MAX == LONG_MAX... yes
>> checking whether UINT32_MAX < UINTMAX_MAX... yes
>> checking whether UINT64_MAX == ULONG_MAX... yes
>> checking whether isnan(double) can be used without linking with libm... yes
>> checking where to find the exponent in a 'double'... (cached) word 1 bit 20
>> checking whether isnan(float) can be used without linking with libm... yes
>> checking whether isnan(float) works... yes
>> checking where to find the exponent in a 'float'... (cached) word 0 bit 23
>> checking whether isnan(long double) can be used without linking with
>> libm... yes
>> checking whether isnanl works... no
>> checking where to find the exponent in a 'long double'... word 2 bit 0
>> checking where to find the exponent in a 'long double'... (cached) word
>> 2 bit 0
>> checking for setlocale... yes
>> checking for uselocale... yes
>> checking whether NAN macro works... yes
>> checking whether HUGE_VAL works... yes
>> checking for a traditional french locale... (cached) fr_FR
>> checking for a french Unicode locale... (cached) fr_FR.UTF-8
>> checking for a traditional japanese locale... (cached) ja_JP
>> checking for a transitional chinese locale... (cached) none
>> checking for a french Unicode locale... (cached) fr_FR.UTF-8
>> checking for a traditional french locale... (cached) fr_FR
>> checking for a french Unicode locale... (cached) fr_FR.UTF-8
>> checking for a traditional japanese locale... (cached) ja_JP
>> checking for a transitional chinese locale... (cached) none
>> checking for mmap... (cached) yes
>> checking for MAP_ANONYMOUS... yes
>> checking for library containing if_nameindex... none required
>> checking for a traditional french locale... (cached) fr_FR
>> checking for a french Unicode locale... (cached) fr_FR.UTF-8
>> checking whether posix_spawn_file_actions_addclose works... yes
>> checking whether posix_spawn_file_actions_adddup2 works... yes
>> checking whether posix_spawn_file_actions_addopen works... yes
>> checking whether program_invocation_name is declared... yes
>> checking whether program_invocation_short_name is declared... yes
>> checking for ptsname... yes
>> checking whether ptsname sets errno on failure... yes
>> checking whether ptsname_r has the same signature as in glibc... yes
>> checking for putenv compatible with GNU and SVID... yes
>> checking for mmap... (cached) yes
>> checking for MAP_ANONYMOUS... yes
>> checking for stdlib.h... (cached) yes
>> checking for GNU libc compatible realloc... yes
>> checking for a traditional french locale... (cached) fr_FR
>> checking for a french Unicode locale... (cached) fr_FR.UTF-8
>> checking for a traditional japanese locale... (cached) ja_JP
>> checking for a transitional chinese locale... (cached) none
>> checking for signbit macro... yes
>> checking for signbit compiler built-ins... yes
>> checking for posix_spawnattr_t... yes
>> checking for posix_spawn_file_actions_t... yes
>> checking for mmap... (cached) yes
>> checking for MAP_ANONYMOUS... yes
>> checking whether symlink handles trailing slash correctly... yes
>> checking for pthread_atfork... yes
>> checking for unlockpt... yes
>> checking for unsetenv... yes
>> checking for unsetenv() return type... int
>> checking whether unsetenv obeys POSIX... yes
>> checking for waitid... yes
>> checking for a traditional french locale... (cached) fr_FR
>> checking for a french Unicode locale... (cached) fr_FR.UTF-8
>> checking for a traditional japanese locale... (cached) ja_JP
>> checking for a transitional chinese locale... (cached) none
>> checking whether wctob works... yes
>> checking whether wctob is declared... yes
>> checking for uid_t in sys/types.h... (cached) yes
>> checking how to print strings... printf
>> checking for a sed that does not truncate output... /usr/bin/sed
>> checking for fgrep... /usr/bin/grep -F
>> checking for ld used by gcc -std=gnu99... /usr/bin/ld
>> checking if the linker (/usr/bin/ld) is GNU ld... yes
>> checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
>> checking the name lister (/usr/bin/nm -B) interface... BSD nm
>> checking whether ln -s works... yes
>> checking the maximum length of command line arguments... 1572864
>> checking whether the shell understands some XSI constructs... yes
>> checking whether the shell understands "+="... yes
>> checking how to convert x86_64-0-linux-gnu file names to
>> x86_64-0-linux-gnu format... func_convert_file_noop
>> checking how to convert x86_64-0-linux-gnu file names to toolchain
>> format... func_convert_file_noop
>> checking for /usr/bin/ld option to reload object files... -r
>> checking for objdump... objdump
>> checking how to recognize dependent libraries... pass_all
>> checking for dlltool... dlltool
>> checking how to associate runtime and link libraries... printf %s\n
>> checking for archiver @FILE support... @
>> checking for strip... strip
>> checking for ranlib... (cached) ranlib
>> checking command to parse /usr/bin/nm -B output from gcc -std=gnu99
>> object... ok
>> checking for sysroot... no
>> checking for mt... no
>> checking if : is a manifest tool... no
>> checking for dlfcn.h... yes
>> checking for objdir... .libs
>> checking if gcc -std=gnu99 supports -fno-rtti -fno-exceptions... no
>> checking for gcc -std=gnu99 option to produce PIC... -fPIC -DPIC
>> checking if gcc -std=gnu99 PIC flag -fPIC -DPIC works... yes
>> checking if gcc -std=gnu99 static flag -static works... yes
>> checking if gcc -std=gnu99 supports -c -o file.o... yes
>> checking if gcc -std=gnu99 supports -c -o file.o... (cached) yes
>> checking whether the gcc -std=gnu99 linker (/usr/bin/ld -m elf_x86_64)
>> supports shared libraries... yes
>> checking whether -lc should be explicitly linked in... no
>> checking dynamic linker characteristics... GNU/Linux ld.so
>> checking how to hardcode library paths into programs... immediate
>> checking whether stripping libraries is possible... yes
>> checking if libtool supports shared libraries... yes
>> checking whether to build shared libraries... yes
>> checking whether to build static libraries... no
>> checking for ld used by gcc -std=gnu99... (cached) /usr/bin/ld
>> checking if the linker (/usr/bin/ld) is GNU ld... (cached) yes
>> checking for how to mark DSO non-deletable at runtime... -Wl,-z -Wl,nodelete
>> checking for how to set DSO symbol versions... -Wl,--version-script=
>> checking whether gcc -Wformat allows NULL strings... yes
>> checking whether pragma GCC diagnostic push works... yes
>> checking whether GCC -Wlogical-op gives bogus warnings... no
>> checking whether -Wno-missing-field-initializers is supported... yes
>> checking whether -Wno-missing-field-initializers is needed... no
>> checking whether -Wuninitialized is supported... yes
>> checking whether C compiler handles -W... yes
>> checking whether C compiler handles -Waddress... yes
>> checking whether C compiler handles -Wall... yes
>> checking whether C compiler handles -Warray-bounds... yes
>> checking whether C compiler handles -Wattributes... yes
>> checking whether C compiler handles -Wbad-function-cast... yes
>> checking whether C compiler handles -Wbuiltin-macro-redefined... yes
>> checking whether C compiler handles -Wcast-align... yes
>> checking whether C compiler handles -Wchar-subscripts... yes
>> checking whether C compiler handles -Wclobbered... yes
>> checking whether C compiler handles -Wcomment... yes
>> checking whether C compiler handles -Wcomments... yes
>> checking whether C compiler handles -Wcoverage-mismatch... yes
>> checking whether C compiler handles -Wcpp... yes
>> checking whether C compiler handles -Wdeprecated-declarations... yes
>> checking whether C compiler handles -Wdisabled-optimization... yes
>> checking whether C compiler handles -Wdiv-by-zero... yes
>> checking whether C compiler handles -Wdouble-promotion... yes
>> checking whether C compiler handles -Wempty-body... yes
>> checking whether C compiler handles -Wendif-labels... yes
>> checking whether C compiler handles -Wextra... yes
>> checking whether C compiler handles -Wformat-contains-nul... yes
>> checking whether C compiler handles -Wformat-extra-args... yes
>> checking whether C compiler handles -Wformat-security... yes
>> checking whether C compiler handles -Wformat-y2k... yes
>> checking whether C compiler handles -Wformat-zero-length... yes
>> checking whether C compiler handles -Wformat=2... yes
>> checking whether C compiler handles -Wfree-nonheap-object... yes
>> checking whether C compiler handles -Wignored-qualifiers... yes
>> checking whether C compiler handles -Wimplicit... yes
>> checking whether C compiler handles -Wimplicit-function-declaration... yes
>> checking whether C compiler handles -Wimplicit-int... yes
>> checking whether C compiler handles -Winit-self... yes
>> checking whether C compiler handles -Winline... yes
>> checking whether C compiler handles -Wint-to-pointer-cast... yes
>> checking whether C compiler handles -Winvalid-memory-model... yes
>> checking whether C compiler handles -Winvalid-pch... yes
>> checking whether C compiler handles -Wjump-misses-init... yes
>> checking whether C compiler handles -Wlogical-op... yes
>> checking whether C compiler handles -Wmain... yes
>> checking whether C compiler handles -Wmaybe-uninitialized... yes
>> checking whether C compiler handles -Wmissing-braces... yes
>> checking whether C compiler handles -Wmissing-declarations... yes
>> checking whether C compiler handles -Wmissing-field-initializers... yes
>> checking whether C compiler handles -Wmissing-format-attribute... yes
>> checking whether C compiler handles -Wmissing-include-dirs... yes
>> checking whether C compiler handles -Wmissing-noreturn... yes
>> checking whether C compiler handles -Wmissing-parameter-type... yes
>> checking whether C compiler handles -Wmissing-prototypes... yes
>> checking whether C compiler handles -Wmudflap... yes
>> checking whether C compiler handles -Wmultichar... yes
>> checking whether C compiler handles -Wnarrowing... yes
>> checking whether C compiler handles -Wnested-externs... yes
>> checking whether C compiler handles -Wnonnull... yes
>> checking whether C compiler handles -Wnormalized=nfc... yes
>> checking whether C compiler handles -Wold-style-declaration... yes
>> checking whether C compiler handles -Wold-style-definition... yes
>> checking whether C compiler handles -Woverflow... yes
>> checking whether C compiler handles -Woverride-init... yes
>> checking whether C compiler handles -Wpacked-bitfield-compat... yes
>> checking whether C compiler handles -Wparentheses... yes
>> checking whether C compiler handles -Wpointer-arith... yes
>> checking whether C compiler handles -Wpointer-sign... yes
>> checking whether C compiler handles -Wpointer-to-int-cast... yes
>> checking whether C compiler handles -Wpragmas... yes
>> checking whether C compiler handles -Wreturn-type... yes
>> checking whether C compiler handles -Wsequence-point... yes
>> checking whether C compiler handles -Wshadow... yes
>> checking whether C compiler handles -Wsizeof-pointer-memaccess... no
>> checking whether C compiler handles -Wstrict-aliasing... yes
>> checking whether C compiler handles -Wstrict-prototypes... yes
>> checking whether C compiler handles -Wsuggest-attribute=const... yes
>> checking whether C compiler handles -Wsuggest-attribute=format... no
>> checking whether C compiler handles -Wsuggest-attribute=noreturn... yes
>> checking whether C compiler handles -Wsuggest-attribute=pure... yes
>> checking whether C compiler handles -Wswitch... yes
>> checking whether C compiler handles -Wsync-nand... yes
>> checking whether C compiler handles -Wtrampolines... yes
>> checking whether C compiler handles -Wtrigraphs... yes
>> checking whether C compiler handles -Wtype-limits... yes
>> checking whether C compiler handles -Wuninitialized... yes
>> checking whether C compiler handles -Wunknown-pragmas... yes
>> checking whether C compiler handles -Wunused... yes
>> checking whether C compiler handles -Wunused-but-set-parameter... yes
>> checking whether C compiler handles -Wunused-but-set-variable... yes
>> checking whether C compiler handles -Wunused-function... yes
>> checking whether C compiler handles -Wunused-label... yes
>> checking whether C compiler handles -Wunused-local-typedefs... yes
>> checking whether C compiler handles -Wunused-parameter... yes
>> checking whether C compiler handles -Wunused-result... yes
>> checking whether C compiler handles -Wunused-value... yes
>> checking whether C compiler handles -Wunused-variable... yes
>> checking whether C compiler handles -Wvarargs... no
>> checking whether C compiler handles -Wvariadic-macros... yes
>> checking whether C compiler handles -Wvector-operation-performance... yes
>> checking whether C compiler handles -Wvolatile-register-var... yes
>> checking whether C compiler handles -Wwrite-strings... yes
>> checking whether C compiler handles -Wno-sign-compare... yes
>> checking whether C compiler handles -Wjump-misses-init... (cached) yes
>> checking whether C compiler handles -Wno-format-nonliteral... yes
>> checking whether C compiler handles -Wframe-larger-than=4096... yes
>> checking whether C compiler handles -fstack-protector-all... yes
>> checking whether C compiler handles --param=ssp-buffer-size=4... yes
>> checking whether C compiler handles -fexceptions... yes
>> checking whether C compiler handles -fasynchronous-unwind-tables... yes
>> checking whether C compiler handles -fdiagnostics-show-option... yes
>> checking whether C compiler handles -funit-at-a-time... yes
>> checking whether C compiler handles -fipa-pure-const... yes
>> checking whether C compiler handles -Wno-suggest-attribute=pure... yes
>> checking whether C compiler handles -Wno-suggest-attribute=const... yes
>> checking whether C compiler handles -Wno-redundant-decls... yes
>> checking whether C compiler handles -fPIE -DPIE... yes
>> checking for how to force completely read-only GOT table... -Wl,-z
>> -Wl,relro -Wl,-z -Wl,now
>> checking for aa_change_profile in -lapparmor... no
>> checking for getxattr in -lattr... yes
>> checking attr/xattr.h usability... yes
>> checking attr/xattr.h presence... yes
>> checking for attr/xattr.h... yes
>> checking for audit_encode_nv_string in -laudit... no
>> checking for pkg-config... /usr/bin/pkg-config
>> checking pkg-config is at least version 0.9.0... yes
>> checking for AVAHI... yes
>> checking for BLKID... yes
>> checking for capng_updatev in -lcap-ng... yes
>> checking for cap-ng.h... (cached) yes
>> checking for CURL... yes
>> checking for DBUS... yes
>> checking for dbus_watch_get_unix_fd... yes
>> checking for FUSE... yes
>> checking for HAL... no
>> checking for NETCF... no
>> checking for numa_available in -lnuma... no
>> checking for OPENWSMAN... no
>> checking for PCIACCESS... yes
>> checking for sanlock_init in -lsanlock_client... no
>> checking for sasl_client_init in -lsasl2... yes
>> checking for sasl/sasl.h... (cached) yes
>> checking for fgetfilecon_raw in -lselinux... no
>> checking for SSH2... yes
>> checking for UDEV... yes
>> checking for yajl_parse_complete in -lyajl... no
>> checking for yajl_tree_parse in -lyajl... yes
>> checking for yajl/yajl_common.h... (cached) yes
>> checking for CPUID instruction... yes
>> checking size of long... 8
>> checking for pthread_mutexattr_init... yes
>> checking pwd.h usability... yes
>> checking pwd.h presence... yes
>> checking for pwd.h... yes
>> checking paths.h usability... yes
>> checking paths.h presence... yes
>> checking for paths.h... yes
>> checking regex.h usability... yes
>> checking regex.h presence... yes
>> checking for regex.h... yes
>> checking sys/un.h usability... yes
>> checking sys/un.h presence... yes
>> checking for sys/un.h... yes
>> checking sys/poll.h usability... yes
>> checking sys/poll.h presence... yes
>> checking for sys/poll.h... yes
>> checking syslog.h usability... yes
>> checking syslog.h presence... yes
>> checking for syslog.h... yes
>> checking mntent.h usability... yes
>> checking mntent.h presence... yes
>> checking for mntent.h... yes
>> checking net/ethernet.h usability... yes
>> checking net/ethernet.h presence... yes
>> checking for net/ethernet.h... yes
>> checking linux/magic.h usability... yes
>> checking linux/magic.h presence... yes
>> checking for linux/magic.h... yes
>> checking for sys/un.h... (cached) yes
>> checking sys/syscall.h usability... yes
>> checking sys/syscall.h presence... yes
>> checking for sys/syscall.h... yes
>> checking netinet/tcp.h usability... yes
>> checking netinet/tcp.h presence... yes
>> checking for netinet/tcp.h... yes
>> checking ifaddrs.h usability... yes
>> checking ifaddrs.h presence... yes
>> checking for ifaddrs.h... yes
>> checking libtasn1.h usability... yes
>> checking libtasn1.h presence... yes
>> checking for libtasn1.h... yes
>> checking sys/ucred.h usability... no
>> checking sys/ucred.h presence... no
>> checking for sys/ucred.h... no
>> checking sys/mount.h usability... yes
>> checking sys/mount.h presence... yes
>> checking for sys/mount.h... yes
>> checking whether htole64 is declared... yes
>> checking for atomic ops implementation... gcc
>> checking for struct ifreq... yes
>> checking for gettext in -lintl... no
>> checking for rpcgen... /usr/bin/rpcgen
>> checking for xmllint... /usr/bin/xmllint
>> checking for xmlcatalog... /usr/bin/xmlcatalog
>> checking for xsltproc... /usr/bin/xsltproc
>> checking for augparse... /usr/bin/augparse
>> checking for dnsmasq... dnsmasq
>> checking for radvd... radvd
>> checking for brctl... brctl
>> checking for tc... /sbin/tc
>> checking for udevadm... /sbin/udevadm
>> checking for udevsettle... no
>> checking for modprobe... /sbin/modprobe
>> checking for ovs-vsctl... ovs-vsctl
>> checking for scrub... scrub
>> checking for init script flavor... systemd
>> checking for whether to install sysctl config... yes
>> checking for ip... /usr/sbin/ip
>> checking for iptables... /usr/sbin/iptables
>> checking for ip6tables... /usr/sbin/ip6tables
>> checking for ebtables... /sbin/ebtables
>> checking for xdrmem_create in -lportablexdr... no
>> checking for library containing xdrmem_create... -ltirpc
>> checking for xdr_u_int64_t... yes
>> checking where to find <rpc/rpc.h>... none
>> checking for dlfcn.h... (cached) yes
>> checking for library containing dlopen... -ldl
>> checking for xen_vm_start in -lxenserver... no
>> checking for libxl_ctx_alloc in -lxenlight... no
>> checking for xs_read in -lxenstore... no
>> checking linux/kvm.h usability... yes
>> checking linux/kvm.h presence... yes
>> checking for linux/kvm.h... yes
>> checking for shell that supports <> redirection... /bin/sh
>> checking for linux/param.h... yes
>> checking for linux/sockios.h... yes
>> checking for linux/if_bridge.h... yes
>> checking for linux/if_tun.h... yes
>> checking for pkg-config... (cached) /usr/bin/pkg-config
>> checking pkg-config is at least version 0.9.0... yes
>> checking for LIBXML... yes
>> checking for struct _xmlURI.query_raw... yes
>> checking for GNUTLS... yes
>> checking for pkcheck... /usr/bin/pkcheck
>> checking for dtrace... no
>> checking for numad... no
>> checking libpcap pcap-config >= 1.0.0 ... yes
>> checking sys/inotify.h usability... yes
>> checking sys/inotify.h presence... yes
>> checking for sys/inotify.h... yes
>> checking readline/readline.h usability... yes
>> checking readline/readline.h presence... yes
>> checking for readline/readline.h... yes
>> checking for readline in -lreadline... yes
>> checking for mntent.h... (cached) yes
>> checking for mount... /usr/bin/mount
>> checking for umount... /usr/bin/umount
>> checking for mkfs... /sbin/mkfs
>> checking for showmount... /sbin/showmount
>> checking for pvcreate... /sbin/pvcreate
>> checking for vgcreate... /sbin/vgcreate
>> checking for lvcreate... /sbin/lvcreate
>> checking for pvremove... /sbin/pvremove
>> checking for vgremove... /sbin/vgremove
>> checking for lvremove... /sbin/lvremove
>> checking for lvchange... /sbin/lvchange
>> checking for vgchange... /sbin/vgchange
>> checking for vgscan... /sbin/vgscan
>> checking for pvs... /sbin/pvs
>> checking for vgs... /sbin/vgs
>> checking for lvs... /sbin/lvs
>> checking for iscsiadm... no
>> checking rbd/librbd.h usability... no
>> checking rbd/librbd.h presence... no
>> checking for rbd/librbd.h... no
>> checking for collie... no
>> checking for parted... /sbin/parted
>> checking for dmsetup... /sbin/dmsetup
>> checking for LIBPARTED... yes
>> checking for DEVMAPPER... yes
>> checking libdevmapper.h usability... yes
>> checking libdevmapper.h presence... yes
>> checking for libdevmapper.h... yes
>> checking for python... /usr/bin/python
>> checking for python version... 2.7
>> checking for python platform... linux2
>> checking for python script directory...
>> ${prefix}/lib64/python2.7/site-packages
>> checking for python extension module directory...
>> ${exec_prefix}/lib64/python2.7/site-packages
>> checking for perl... /usr/bin/perl
>> checking Whether to build test suite by default... no
>> checking whether NLS is requested... yes
>> checking for msgfmt... /usr/bin/msgfmt
>> checking for gmsgfmt... /usr/bin/msgfmt
>> checking for xgettext... /usr/bin/xgettext
>> checking for msgmerge... /usr/bin/msgmerge
>> checking for CFPreferencesCopyAppValue... (cached) no
>> checking for CFLocaleCopyCurrent... (cached) no
>> checking for GNU gettext in libc... yes
>> checking whether to use NLS... yes
>> checking where the gettext function comes from... libc
>> checking whether to compile with macvtap support... yes
>> checking whether MACVLAN_MODE_PASSTHRU is declared... yes
>> checking whether to compile with virtual port support... yes
>> checking for LIBNL... yes
>> checking for LIBNL_ROUTE3... yes
>> checking for struct ifreq.ifr_newname... yes
>> checking for struct ifreq.ifr_ifindex... yes
>> checking for struct ifreq.ifr_index... no
>> checking whether this build is done by a static analysis tool... no
>> configure: creating ./config.status
>> config.status: creating run
>> config.status: creating Makefile
>> config.status: creating src/Makefile
>> config.status: creating include/Makefile
>> config.status: creating docs/Makefile
>> config.status: creating docs/schemas/Makefile
>> config.status: creating gnulib/lib/Makefile
>> config.status: creating gnulib/tests/Makefile
>> config.status: creating libvirt.pc
>> config.status: creating libvirt.spec
>> config.status: creating mingw-libvirt.spec
>> config.status: creating po/Makefile.in
>> config.status: creating include/libvirt/Makefile
>> config.status: creating include/libvirt/libvirt.h
>> config.status: creating python/Makefile
>> config.status: creating python/tests/Makefile
>> config.status: creating daemon/Makefile
>> config.status: creating tools/Makefile
>> config.status: creating tests/Makefile
>> config.status: creating examples/apparmor/Makefile
>> config.status: creating examples/domain-events/events-c/Makefile
>> config.status: creating examples/domsuspend/Makefile
>> config.status: creating examples/dominfo/Makefile
>> config.status: creating examples/openauth/Makefile
>> config.status: creating examples/python/Makefile
>> config.status: creating examples/hellolibvirt/Makefile
>> config.status: creating examples/systemtap/Makefile
>> config.status: creating examples/xml/nwfilter/Makefile
>> config.status: creating config.h
>> config.status: executing depfiles commands
>> config.status: executing libtool commands
>> config.status: executing po-directories commands
>> config.status: creating po/POTFILES
>> config.status: creating po/Makefile
>> configure:
>> configure: Configuration summary
>> configure: =====================
>> configure:
>> configure: Drivers
>> configure:
>> configure: Xen: no
>> configure: QEMU: yes
>> configure: UML: yes
>> configure: OpenVZ: yes
>> configure: VMware: yes
>> configure: VBox: yes
>> configure: XenAPI: no
>> configure: xenlight: no
>> configure: LXC: yes
>> configure: PHYP: yes
>> configure: ESX: yes
>> configure: Hyper-V: no
>> configure: Parallels: yes
>> configure: Test: yes
>> configure: Remote: yes
>> configure: Network: yes
>> configure: Libvirtd: yes
>> configure: Interface: yes
>> configure: macvtap: yes
>> configure: virtport: yes
>> configure:
>> configure: Storage Drivers
>> configure:
>> configure: Dir: yes
>> configure: FS: yes
>> configure: NetFS: yes
>> configure: LVM: yes
>> configure: iSCSI: no
>> configure: SCSI: yes
>> configure: mpath: yes
>> configure: Disk: yes
>> configure: RBD: no
>> configure: Sheepdog: no
>> configure:
>> configure: Security Drivers
>> configure:
>> configure: SELinux: no ()
>> configure: AppArmor: no
>> configure:
>> configure: Driver Loadable Modules
>> configure:
>> configure: dlopen: -export-dynamic -ldl
>> configure:
>> configure: Libraries
>> configure:
>> configure: apparmor: no
>> configure: attr: yes (CFLAGS='' LIBS='-lattr')
>> configure: audit: no
>> configure: avahi: yes (CFLAGS='-D_REENTRANT ' LIBS='-lavahi-common
>> -lavahi-client ')
>> configure: blkid: yes (CFLAGS='-I/usr/include/blkid
>> -I/usr/include/uuid ' LIBS='-lblkid ')
>> configure: capng: yes (CFLAGS='' LIBS='-lcap-ng')
>> configure: curl: yes (CFLAGS='-DCURL_DISABLE_TYPECHECK '
>> LIBS='-lcurl ')
>> configure: dbus: yes (CFLAGS='-I/usr/include/dbus-1.0
>> -I/usr/lib64/dbus-1.0/include ' LIBS='-ldbus-1 ')
>> configure: fuse: yes (CFLAGS='-D_FILE_OFFSET_BITS=64
>> -I/usr/include/fuse ' LIBS='-lfuse -pthread ')
>> configure: hal: no
>> configure: netcf: no
>> configure: numactl: no
>> configure: openwsman: no
>> configure: pciaccess: yes (CFLAGS='' LIBS='-lpciaccess ')
>> configure: sanlock: no
>> configure: sasl: yes (CFLAGS='' LIBS='-lsasl2')
>> configure: selinux: no
>> configure: ssh2: yes (CFLAGS='' LIBS='-lssh2 ')
>> configure: udev: yes (CFLAGS='' LIBS='-ludev ')
>> configure: yajl: yes (CFLAGS='' LIBS='-lyajl')
>> configure: libxml: -I/usr/include/libxml2 -lxml2
>> configure: dlopen: -ldl
>> configure: openwsman: no
>> configure: gnutls: -I/usr/include/p11-kit-1 -lgnutls -lgcrypt
>> configure: firewalld: yes
>> configure: polkit: /usr/bin/pkcheck (version 1)
>> configure: xen: no
>> configure: xenapi: no
>> configure: xenlight: no
>> configure: pcap: -I/usr/include -L/usr/lib64 -Wl,-rpath,/usr/lib64
>> -lpcap
>> configure: nl: -I/usr/include/libnl3 -I/usr/include/libnl3
>> -lnl-3 -lnl-route-3 -lnl-3
>> configure: mscom: no
>> configure: xdr:
>> configure: rbd: no
>> configure:
>> configure: Test suite
>> configure:
>> configure: Coverage: no
>> configure: Alloc OOM: no
>> configure:
>> configure: Miscellaneous
>> configure:
>> configure: Debug: yes
>> configure: Use -Werror: no
>> configure: Warning Flags: -W -Waddress -Wall -Warray-bounds
>> -Wattributes -Wbad-function-cast -Wbuiltin-macro-redefined -Wcast-align
>> -Wchar-subscripts -Wclobbered -Wcomment -Wcomments -Wcoverage-mismatch
>> -Wcpp -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero
>> -Wdouble-promotion -Wempty-body -Wendif-labels -Wextra
>> -Wformat-contains-nul -Wformat-extra-args -Wformat-security -Wformat-y2k
>> -Wformat-zero-length -Wformat=2 -Wfree-nonheap-object
>> -Wignored-qualifiers -Wimplicit -Wimplicit-function-declaration
>> -Wimplicit-int -Winit-self -Winline -Wint-to-pointer-cast
>> -Winvalid-memory-model -Winvalid-pch -Wjump-misses-init -Wlogical-op
>> -Wmain -Wmaybe-uninitialized -Wmissing-braces -Wmissing-declarations
>> -Wmissing-field-initializers -Wmissing-format-attribute
>> -Wmissing-include-dirs -Wmissing-noreturn -Wmissing-parameter-type
>> -Wmissing-prototypes -Wmudflap -Wmultichar -Wnarrowing -Wnested-externs
>> -Wnonnull -Wnormalized=nfc -Wold-style-declaration
>> -Wold-style-definition -Woverflow -Woverride-init
>> -Wpacked-bitfield-compat -Wparentheses -Wpointer-arith -Wpointer-sign
>> -Wpointer-to-int-cast -Wpragmas -Wreturn-type -Wsequence-point -Wshadow
>> -Wstrict-aliasing -Wstrict-prototypes -Wsuggest-attribute=const
>> -Wsuggest-attribute=noreturn -Wsuggest-attribute=pure -Wswitch
>> -Wsync-nand -Wtrampolines -Wtrigraphs -Wtype-limits -Wuninitialized
>> -Wunknown-pragmas -Wunused -Wunused-but-set-parameter
>> -Wunused-but-set-variable -Wunused-function -Wunused-label
>> -Wunused-local-typedefs -Wunused-parameter -Wunused-result
>> -Wunused-value -Wunused-variable -Wvariadic-macros
>> -Wvector-operation-performance -Wvolatile-register-var -Wwrite-strings
>> -Wno-sign-compare -Wjump-misses-init -Wno-format-nonliteral
>> -Wframe-larger-than=4096 -fstack-protector-all --param=ssp-buffer-size=4
>> -fexceptions -fasynchronous-unwind-tables -fdiagnostics-show-option
>> -funit-at-a-time -fipa-pure-const -Wno-suggest-attribute=pure
>> -Wno-suggest-attribute=const
>> configure: Readline: yes
>> configure: Python: yes
>> configure: DTrace: no
>> configure: numad: no
>> configure: XML Catalog: /etc/xml/catalog
>> configure: Init script: systemd
>> configure: Char device locks: /var/lock
>> configure:
>> configure: Privileges
>> configure:
>> configure: QEMU: root:root
>> configure:
>> + make -j5 EXAMPLE_DIR=/usr/doc/libvirt-1.0.5/examples
>> HTML_DIR=/usr/doc/libvirt-1.0.5
>> make all-recursive
>> make[1]: Entering directory `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5'
>> Making all in gnulib/lib
>> make[2]: Entering directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
>> GEN alloca.h
>> GEN c++defs.h
>> GEN warn-on-use.h
>> GEN arg-nonnull.h
>> GEN configmake.h
>> GEN unused-parameter.h
>> GEN sys/types.h
>> GEN sys/wait.h
>> GEN sys/uio.h
>> GEN termios.h
>> GEN time.h
>> GEN unistd.h
>> GEN wchar.h
>> GEN wctype.h
>> GEN arpa/inet.h
>> GEN fcntl.h
>> GEN langinfo.h
>> GEN locale.h
>> GEN netdb.h
>> GEN poll.h
>> GEN pty.h
>> GEN signal.h
>> GEN stdio.h
>> GEN stdlib.h
>> GEN string.h
>> GEN strings.h
>> GEN sys/ioctl.h
>> GEN sys/select.h
>> GEN sys/socket.h
>> GEN sys/stat.h
>> GEN sys/utsname.h
>> GEN sys/time.h
>> make all-am
>> make[3]: Entering directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
>> CC allocator.lo
>> CC areadlink.lo
>> CC base64.lo
>> CC binary-io.lo
>> CC bitrotate.lo
>> CC c-ctype.lo
>> CC c-strcasecmp.lo
>> CC c-strncasecmp.lo
>> CC c-strcasestr.lo
>> CC careadlinkat.lo
>> CC cloexec.lo
>> CC count-one-bits.lo
>> CC md5.lo
>> CC sha256.lo
>> CC dirname-lgpl.lo
>> CC basename-lgpl.lo
>> CC stripslash.lo
>> CC fd-hook.lo
>> CC freading.lo
>> CC localcharset.lo
>> CC lock.lo
>> CC malloca.lo
>> CC nonblocking.lo
>> CC passfd.lo
>> CC physmem.lo
>> CC pipe2.lo
>> CC sig-handler.lo
>> CC sockets.lo
>> CC stat-time.lo
>> CC strnlen1.lo
>> CC sys_socket.lo
>> CC tempname.lo
>> CC threadlib.lo
>> CC unistd.lo
>> CC wctype-h.lo
>> CC xsize.lo
>> CC asnprintf.lo
>> CC fclose.lo
>> CC fcntl.lo
>> CC fflush.lo
>> CC fpurge.lo
>> CC fseek.lo
>> CC fseeko.lo
>> CC ioctl.lo
>> CC mktime.lo
>> CC printf-args.lo
>> CC printf-parse.lo
>> CC regex.lo
>> CC secure_getenv.lo
>> CC strerror_r.lo
>> CC vasnprintf.lo
>> GEN charset.alias
>> GEN ref-add.sed
>> GEN ref-del.sed
>> CCLD libgnu.la
>> make[3]: Leaving directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
>> make[2]: Leaving directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/gnulib/lib'
>> Making all in include
>> make[2]: Entering directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
>> Making all in libvirt
>> make[3]: Entering directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include/libvirt'
>> make[3]: Nothing to be done for `all'.
>> make[3]: Leaving directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include/libvirt'
>> make[3]: Entering directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
>> make[3]: Nothing to be done for `all-am'.
>> make[3]: Leaving directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
>> make[2]: Leaving directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/include'
>> Making all in src
>> make[2]: Entering directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
>> GEN libvirt.syms
>> GEN libvirt_qemu.def
>> GEN libvirt_lxc.def
>> GEN locking/qemu-lockd.conf
>> GEN virtlockd.service
>> GEN virtlockd.socket
>> GEN libvirt.def
>> make all-am
>> make[3]: Entering directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
>> CC libvirt_util_la-viralloc.lo
>> CC libvirt_util_la-virarch.lo
>> CC libvirt_util_la-viratomic.lo
>> CC libvirt_util_la-viraudit.lo
>> CC libvirt_util_la-virauth.lo
>> CC libvirt_util_la-virauthconfig.lo
>> CC libvirt_util_la-virbitmap.lo
>> CC libvirt_util_la-virbuffer.lo
>> CC libvirt_util_la-vircgroup.lo
>> CC libvirt_util_la-vircommand.lo
>> CC libvirt_util_la-virconf.lo
>> CC libvirt_util_la-virdbus.lo
>> CC libvirt_util_la-virdnsmasq.lo
>> CC libvirt_util_la-virebtables.lo
>> CC libvirt_util_la-virerror.lo
>> CC libvirt_util_la-virevent.lo
>> CC libvirt_util_la-vireventpoll.lo
>> CC libvirt_util_la-virfile.lo
>> CC libvirt_util_la-virhash.lo
>> CC libvirt_util_la-virhashcode.lo
>> CC libvirt_util_la-virhook.lo
>> CC libvirt_util_la-viridentity.lo
>> CC libvirt_util_la-virinitctl.lo
>> CC libvirt_util_la-viriptables.lo
>> CC libvirt_util_la-virjson.lo
>> CC libvirt_util_la-virkeycode.lo
>> CC libvirt_util_la-virlockspace.lo
>> CC libvirt_util_la-virkeyfile.lo
>> CC libvirt_util_la-virlog.lo
>> CC libvirt_util_la-virmacaddr.lo
>> CC libvirt_util_la-virnetdev.lo
>> CC libvirt_util_la-virnetdevbandwidth.lo
>> CC libvirt_util_la-virnetdevbridge.lo
>> CC libvirt_util_la-virnetdevmacvlan.lo
>> CC libvirt_util_la-virnetdevopenvswitch.lo
>> CC libvirt_util_la-virnetdevtap.lo
>> CC libvirt_util_la-virnetdevveth.lo
>> CC libvirt_util_la-virnetdevvlan.lo
>> CC libvirt_util_la-virnetdevvportprofile.lo
>> CC libvirt_util_la-virnetlink.lo
>> CC libvirt_util_la-virnodesuspend.lo
>> CC libvirt_util_la-virnuma.lo
>> CC libvirt_util_la-virobject.lo
>> CC libvirt_util_la-virpci.lo
>> CC libvirt_util_la-virpidfile.lo
>> CC libvirt_util_la-virportallocator.lo
>> CC libvirt_util_la-virprocess.lo
>> CC libvirt_util_la-virrandom.lo
>> CC libvirt_util_la-virsexpr.lo
>> CC libvirt_util_la-virsocketaddr.lo
>> CC libvirt_util_la-virstatslinux.lo
>> CC libvirt_util_la-virstoragefile.lo
>> CC libvirt_util_la-virstring.lo
>> CC libvirt_util_la-virthread.lo
>> CC libvirt_util_la-virsysinfo.lo
>> CC libvirt_util_la-virthreadpool.lo
>> CC libvirt_util_la-virtime.lo
>> CC libvirt_util_la-virtpm.lo
>> CC libvirt_util_la-virtypedparam.lo
>> CC libvirt_util_la-virusb.lo
>> CC libvirt_util_la-viruri.lo
>> CC libvirt_util_la-virutil.lo
>> CC libvirt_util_la-viruuid.lo
>> CC libvirt_util_la-virxml.lo
>> CC libvirt_conf_la-netdev_bandwidth_conf.lo
>> CC libvirt_conf_la-netdev_vport_profile_conf.lo
>> CC libvirt_conf_la-netdev_vlan_conf.lo
>> CC libvirt_conf_la-capabilities.lo
>> CC libvirt_conf_la-domain_conf.lo
>> CC libvirt_conf_la-domain_audit.lo
>> CC libvirt_conf_la-domain_nwfilter.lo
>> CC libvirt_conf_la-snapshot_conf.lo
>> CC libvirt_conf_la-domain_event.lo
>> CC libvirt_conf_la-network_conf.lo
>> CC libvirt_conf_la-nwfilter_params.lo
>> CC libvirt_conf_la-nwfilter_ipaddrmap.lo
>> CC libvirt_conf_la-nwfilter_conf.lo
>> CC libvirt_conf_la-node_device_conf.lo
>> CC libvirt_conf_la-storage_conf.lo
>> CC libvirt_conf_la-storage_encryption_conf.lo
>> CC libvirt_conf_la-interface_conf.lo
>> CC libvirt_conf_la-secret_conf.lo
>> CC libvirt_conf_la-cpu_conf.lo
>> CC libvirt_conf_la-virchrdev.lo
>> CC libvirt_conf_la-device_conf.lo
>> CC libvirt_cpu_la-cpu.lo
>> CC libvirt_cpu_la-cpu_generic.lo
>> CC libvirt_cpu_la-cpu_x86.lo
>> CC libvirt_cpu_la-cpu_s390.lo
>> CC libvirt_cpu_la-cpu_arm.lo
>> CC libvirt_cpu_la-cpu_map.lo
>> CC libvirt_cpu_la-cpu_powerpc.lo
>> CC libvirt_vmx_la-vmx.lo
>> CC libvirt_driver_la-driver.lo
>> CC libvirt_driver_la-datatypes.lo
>> CC libvirt_driver_la-fdstream.lo
>> CC libvirt_driver_la-nodeinfo.lo
>> CC libvirt_driver_la-libvirt.lo
>> CC libvirt_driver_la-lock_manager.lo
>> CC libvirt_driver_la-lock_driver_nop.lo
>> CC libvirt_driver_la-domain_lock.lo
>> CC libvirt_driver_test_la-test_driver.lo
>> CC libvirt_driver_remote_la-remote_driver.lo
>> CC libvirt_driver_remote_la-remote_protocol.lo
>> ./remote/remote_protocol.c: In function 'xdr_remote_vcpu_info':
>> ./remote/remote_protocol.c:257:10: warning: implicit declaration of
>> function 'xdr_u_int64_t' [-Wimplicit-function-declaration]
>> ./remote/remote_protocol.c:257:10: warning: nested extern declaration of
>> 'xdr_u_int64_t' [-Wnested-externs]
>> ./remote/remote_protocol.c: In function
>> 'xdr_remote_node_get_cells_free_memory_ret':
>> ./remote/remote_protocol.c:623:48: error: 'xdr_u_int64_t' undeclared
>> (first use in this function)
>> ./remote/remote_protocol.c:623:48: note: each undeclared identifier is
>> reported only once for each function it appears in
>> make[3]: *** [libvirt_driver_remote_la-remote_protocol.lo] Error 1
>> make[3]: *** Waiting for unfinished jobs....
>> make[3]: Leaving directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
>> make[2]: *** [all] Error 2
>> make[2]: Leaving directory
>> `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5/src'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory `/tmp/0-marmite/libvirt/sources/libvirt-1.0.5'
>> make: *** [all] Erreur 2
>> ---
>>
>> Thanks!
>>
>>
>> appzer0
>>
>> --
>> libvir-list mailing list
>> libvir-list(a)redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list
1
0
Commit 297c99a says it works from 1.0.5 but it only got pushed
after the 1.0.5 release.
---
Pushed under the trivial rule.
docs/formatdomain.html.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 8d4edfb..3570bbc 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -3999,7 +3999,7 @@ qemu-kvm -net nic,model=? /dev/null
then libvirt can interact with a guest agent installed in the
guest, for actions such as guest shutdown or file system quiescing.
<span class="since">Since 0.7.7, guest agent interaction
- since 0.9.10</span> Moreover, <span class="since">since 1.0.5</span>
+ since 0.9.10</span> Moreover, <span class="since">since 1.0.6</span>
it is possible to have source path auto generated for virtio unix channels.
This is very useful in case of a qemu guest agent, where users don't
usually care about the source path since it's libvirt who talks to
--
1.8.1.5
1
0
More fallout from commit 7c9a2d88 dropping too many headers. Fixes:
In file included from ../../src/vbox/vbox_glue.c:26:0:
../../src/vbox/vbox_MSCOMGlue.c: In function 'vboxLookupVersionInRegistry':
../../src/vbox/vbox_MSCOMGlue.c:435:5: error: implicit declaration of function 'virParseVersionString' [-Werror=implicit-function-declaration]
...
../../src/vbox/vbox_driver.c: In function 'vboxConnectOpen':
../../src/vbox/vbox_driver.c:147:5: error: implicit declaration of function 'getuid' [-Werror=implicit-function-declaration]
../../src/vbox/vbox_driver.c:147:5: error: nested extern declaration of 'getuid' [-Werror=nested-externs]
* src/vbox/vbox_MSCOMGlue.c (includes): Add missing includes.
* src/vbox/vbox_driver.c (includes): Likewise.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
Pushing under the build-breaker rule. 1.0.5 is immune.
src/vbox/vbox_MSCOMGlue.c | 3 +++
src/vbox/vbox_driver.c | 3 ++-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/vbox/vbox_MSCOMGlue.c b/src/vbox/vbox_MSCOMGlue.c
index 6cebfaf..706f1ba 100644
--- a/src/vbox/vbox_MSCOMGlue.c
+++ b/src/vbox/vbox_MSCOMGlue.c
@@ -2,6 +2,7 @@
/*
* vbox_MSCOMGlue.c: glue to the MSCOM based VirtualBox API
*
+ * Copyright (C) 2013 Red Hat, Inc.
* Copyright (C) 2010-2011 Matthias Bolte <matthias.bolte(a)googlemail.com>
*
* This library is free software; you can redistribute it and/or
@@ -33,6 +34,8 @@
#include "viralloc.h"
#include "virlog.h"
#include "virerror.h"
+#include "virstring.h"
+#include "virutil.h"
#include "vbox_MSCOMGlue.h"
#define VIR_FROM_THIS VIR_FROM_VBOX
diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c
index 30721fd..5dfaf1c 100644
--- a/src/vbox/vbox_driver.c
+++ b/src/vbox/vbox_driver.c
@@ -3,7 +3,7 @@
*/
/*
- * Copyright (C) 2010-2012 Red Hat, Inc.
+ * Copyright (C) 2010-2013 Red Hat, Inc.
* Copyright (C) 2008-2009 Sun Microsystems, Inc.
*
* This file is part of a free software library; you can redistribute
@@ -38,6 +38,7 @@
#include "vbox_driver.h"
#include "vbox_glue.h"
#include "virerror.h"
+#include "virutil.h"
#define VIR_FROM_THIS VIR_FROM_VBOX
--
1.8.1.4
2
3
[libvirt] [PATCH] util: Prevent libvirtd crash from virPCIDeviceAddressIsEqual()
by Alex Jia 03 May '13
by Alex Jia 03 May '13
03 May '13
GDB backtrace:
Breakpoint 1, virPCIGetVirtualFunctionIndex (pf_sysfs_device_link=0x7fc04400f470 "/sys/bus/pci/devices/0000:03:00.1", vf_sysfs_device_link=<optimized out>, vf_index=vf_index@entry=0x7fc06897b8f4)
at util/virpci.c:2107
2107 if (virPCIDeviceAddressIsEqual(vf_bdf, virt_fns[i])) {
(gdb) p *vf_bdf
$1 = {domain = 0, bus = 3, slot = 16, function = 1}
(gdb) l
2102 "virtual_functions"), pf_sysfs_device_link);
2103 goto out;
2104 }
2105
2106 for (i = 0; i < num_virt_fns; i++) {
2107 if (virPCIDeviceAddressIsEqual(vf_bdf, virt_fns[i])) {
2108 *vf_index = i;
2109 ret = 0;
2110 break;
2111 }
(gdb) p num_virt_fns
$46 = 2
(gdb) p virt_fns[0]
$48 = (virPCIDeviceAddressPtr) 0x0
(gdb) s
virPCIDeviceAddressIsEqual (bdf2=0x0, bdf1=0x7fc04400f330) at util/virpci.c:1844
1844 (bdf1->slot == bdf2->slot) &&
(gdb) s
Program received signal SIGSEGV, Segmentation fault.
RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=957416
Signed-off-by: Alex Jia <ajia(a)redhat.com>
---
src/util/virpci.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/src/util/virpci.c b/src/util/virpci.c
index 97bba74..dda044c 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -1897,7 +1897,8 @@ static bool
virPCIDeviceAddressIsEqual(virPCIDeviceAddressPtr bdf1,
virPCIDeviceAddressPtr bdf2)
{
- return ((bdf1->domain == bdf2->domain) &&
+ return (bdf1 && bdf2 &&
+ (bdf1->domain == bdf2->domain) &&
(bdf1->bus == bdf2->bus) &&
(bdf1->slot == bdf2->slot) &&
(bdf1->function == bdf2->function));
--
1.7.1
2
4
---
src/esx/esx_vi_generator.py | 430 ++++++++++++-------------------------------
1 file changed, 118 insertions(+), 312 deletions(-)
diff --git a/src/esx/esx_vi_generator.py b/src/esx/esx_vi_generator.py
index 7130624..547eef6 100755
--- a/src/esx/esx_vi_generator.py
+++ b/src/esx/esx_vi_generator.py
@@ -440,8 +440,7 @@ class Type:
return string
-
-class Object(Type):
+class GenericObject(Type):
FEATURE__DYNAMIC_CAST = (1 << 1)
FEATURE__LIST = (1 << 2)
FEATURE__DEEP_COPY = (1 << 3)
@@ -450,16 +449,36 @@ class Object(Type):
FEATURE__DESERIALIZE = (1 << 6)
- def __init__(self, name, extends, properties, features=0, extended_by=None):
+ def __init__(self, name, category, managed, generic_objects_by_name):
Type.__init__(self, "struct", name)
- self.extends = extends
- self.features = features
- self.properties = properties
- self.extended_by = extended_by
- self.candidate_for_dynamic_cast = False
+ self.category = category
+ self.managed = managed
+ self.generic_objects_by_name = generic_objects_by_name
+
+
+ def generate_comment(self):
+ comment = separator
+ comment += " * %s: %s\n" % (self.category, self.name)
+
+ if self.extends is not None:
+ comment += " * %s extends %s\n" \
+ % (' ' * len(self.category), self.extends)
+
+ first = True
if self.extended_by is not None:
- self.extended_by.sort()
+ for extended_by in self.extended_by:
+ if first:
+ comment += " * %s extended by %s\n" \
+ % (' ' * len(self.category), extended_by)
+ first = False
+ else:
+ comment += " * %s %s\n" \
+ % (' ' * len(self.category), extended_by)
+
+ comment += " */\n\n"
+
+ return comment
def generate_struct_members(self, add_banner=False, struct_gap=False):
@@ -469,7 +488,7 @@ class Object(Type):
members += "\n"
if self.extends is not None:
- members += objects_by_name[self.extends] \
+ members += self.generic_objects_by_name[self.extends] \
.generate_struct_members(add_banner=True,
struct_gap=False) + "\n"
@@ -499,7 +518,7 @@ class Object(Type):
% (suffix, extended_by)
for extended_by in self.extended_by:
- source += objects_by_name[extended_by] \
+ source += self.generic_objects_by_name[extended_by] \
.generate_dispatch(suffix, False)
return source
@@ -509,7 +528,7 @@ class Object(Type):
source = ""
if self.extends is not None:
- source += objects_by_name[self.extends] \
+ source += self.generic_objects_by_name[self.extends] \
.generate_free_code(add_banner=True) + "\n"
if self.extends is not None or add_banner:
@@ -535,7 +554,7 @@ class Object(Type):
source = ""
if self.extends is not None:
- source += objects_by_name[self.extends] \
+ source += self.generic_objects_by_name[self.extends] \
.generate_validate_code(add_banner=True) + "\n"
if self.extends is not None or add_banner:
@@ -547,7 +566,7 @@ class Object(Type):
string = ""
for property in self.properties:
- string += property.generate_validate_code()
+ string += property.generate_validate_code(self.managed)
if len(string) < 1:
source += " /* no required properties */\n"
@@ -557,6 +576,20 @@ class Object(Type):
return source
+
+class Object(GenericObject):
+ def __init__(self, name, extends, properties, features=0, extended_by=None):
+ GenericObject.__init__(self, name, 'VI Object', False, objects_by_name)
+ self.extends = extends
+ self.features = features
+ self.properties = properties
+ self.extended_by = extended_by
+ self.candidate_for_dynamic_cast = False
+
+ if self.extended_by is not None:
+ self.extended_by.sort()
+
+
def generate_dynamic_cast_code(self, is_first=True):
source = ""
@@ -642,23 +675,7 @@ class Object(Type):
def generate_header(self):
- header = separator
- header += " * VI Object: %s\n" % self.name
-
- if self.extends is not None:
- header += " * extends %s\n" % self.extends
-
- first = True
-
- if self.extended_by is not None:
- for extended_by in self.extended_by:
- if first:
- header += " * extended by %s\n" % extended_by
- first = False
- else:
- header += " * %s\n" % extended_by
-
- header += " */\n\n"
+ header = self.generate_comment()
# struct
header += "struct _esxVI_%s {\n" % self.name
@@ -762,57 +779,37 @@ class Object(Type):
source += "ESX_VI__TEMPLATE__ALLOC(%s)\n\n" % self.name
# free
+ source += "/* esxVI_%s_Free */\n" % self.name
+
if self.extended_by is None:
- source += "/* esxVI_%s_Free */\n" % self.name
source += "ESX_VI__TEMPLATE__FREE(%s,\n" % self.name
- source += "{\n"
-
- if self.features & Object.FEATURE__LIST:
- if self.extends is not None:
- # avoid "dereferencing type-punned pointer will break
- # strict-aliasing rules" warnings
- source += " esxVI_%s *next = (esxVI_%s *)item->_next;\n\n" \
- % (self.extends, self.extends)
- source += " esxVI_%s_Free(&next);\n" % self.extends
- source += " item->_next = (esxVI_%s *)next;\n\n" % self.name
- else:
- source += " esxVI_%s_Free(&item->_next);\n\n" % self.name
-
- source += self.generate_free_code()
-
- source += "})\n\n"
else:
- source += "/* esxVI_%s_Free */\n" % self.name
source += "ESX_VI__TEMPLATE__DYNAMIC_FREE(%s,\n" % self.name
source += "{\n"
-
source += self.generate_dispatch('FREE')
-
source += "},\n"
- source += "{\n"
- if self.features & Object.FEATURE__LIST:
- if self.extends is not None:
- # avoid "dereferencing type-punned pointer will break
- # strict-aliasing rules" warnings
- source += " esxVI_%s *next = (esxVI_%s *)item->_next;\n\n" \
- % (self.extends, self.extends)
- source += " esxVI_%s_Free(&next);\n" % self.extends
- source += " item->_next = (esxVI_%s *)next;\n\n" % self.name
- else:
- source += " esxVI_%s_Free(&item->_next);\n\n" % self.name
+ source += "{\n"
- source += self.generate_free_code()
+ if self.features & Object.FEATURE__LIST:
+ if self.extends is not None:
+ # avoid "dereferencing type-punned pointer will break
+ # strict-aliasing rules" warnings
+ source += " esxVI_%s *next = (esxVI_%s *)item->_next;\n\n" \
+ % (self.extends, self.extends)
+ source += " esxVI_%s_Free(&next);\n" % self.extends
+ source += " item->_next = (esxVI_%s *)next;\n\n" % self.name
+ else:
+ source += " esxVI_%s_Free(&item->_next);\n\n" % self.name
- source += "})\n\n"
+ source += self.generate_free_code()
+ source += "})\n\n"
# validate
source += "/* esxVI_%s_Validate */\n" % self.name
source += "ESX_VI__TEMPLATE__VALIDATE(%s,\n" % self.name
source += "{\n"
-
source += self.generate_validate_code()
-
source += "})\n\n"
# dynamic cast
@@ -821,9 +818,7 @@ class Object(Type):
source += "/* esxVI_%s_DynamicCast */\n" % self.name
source += "ESX_VI__TEMPLATE__DYNAMIC_CAST(%s,\n" % self.name
source += "{\n"
-
source += self.generate_dynamic_cast_code()
-
source += "})\n\n"
else:
report_error("cannot add dynamic cast support for an untyped object")
@@ -834,39 +829,25 @@ class Object(Type):
source += "ESX_VI__TEMPLATE__LIST__APPEND(%s)\n\n" % self.name
# deep copy
- if self.extended_by is None:
- if self.features & Object.FEATURE__DEEP_COPY:
- source += "/* esxVI_%s_DeepCopy */\n" % self.name
- source += "ESX_VI__TEMPLATE__DEEP_COPY(%s,\n" % self.name
- source += "{\n"
-
- source += self.generate_deep_copy_code()
-
- source += "})\n\n"
+ if self.features & Object.FEATURE__DEEP_COPY:
+ source += "/* esxVI_%s_DeepCopy */\n" % self.name
- if self.features & Object.FEATURE__LIST:
- source += "/* esxVI_%s_DeepCopyList */\n" % self.name
- source += "ESX_VI__TEMPLATE__LIST__DEEP_COPY(%s)\n\n" \
- % self.name
- else:
- if self.features & Object.FEATURE__DEEP_COPY:
- source += "/* esxVI_%s_DeepCopy */\n" % self.name
+ if self.extended_by is None:
+ source += "ESX_VI__TEMPLATE__DEEP_COPY(%s,\n" % self.name
+ else:
source += "ESX_VI__TEMPLATE__DYNAMIC_DEEP_COPY(%s,\n" % self.name
source += "{\n"
-
source += self.generate_dispatch('DEEP_COPY')
-
source += "},\n"
- source += "{\n"
-
- source += self.generate_deep_copy_code()
- source += "})\n\n"
+ source += "{\n"
+ source += self.generate_deep_copy_code()
+ source += "})\n\n"
- if self.features & Object.FEATURE__LIST:
- source += "/* esxVI_%s_DeepCopyList */\n" % self.name
- source += "ESX_VI__TEMPLATE__LIST__DEEP_COPY(%s)\n\n" \
- % self.name
+ if self.features & Object.FEATURE__LIST:
+ source += "/* esxVI_%s_DeepCopyList */\n" % self.name
+ source += "ESX_VI__TEMPLATE__LIST__DEEP_COPY(%s)\n\n" \
+ % self.name
# cast from any type
if self.features & Object.FEATURE__ANY_TYPE:
@@ -879,9 +860,7 @@ class Object(Type):
source += "ESX_VI__TEMPLATE__DYNAMIC_CAST_FROM_ANY_TYPE(%s,\n" \
% self.name
source += "{\n"
-
source += self.generate_dispatch('CAST_FROM_ANY_TYPE')
-
source += "})\n\n"
if self.features & Object.FEATURE__LIST:
@@ -890,75 +869,47 @@ class Object(Type):
% self.name
# serialize
- if self.extended_by is None:
- if self.features & Object.FEATURE__SERIALIZE:
- source += "/* esxVI_%s_Serialize */\n" % self.name
- source += "ESX_VI__TEMPLATE__SERIALIZE(%s,\n" % self.name
- source += "{\n"
-
- source += self.generate_serialize_code()
-
- source += "})\n\n"
+ if self.features & Object.FEATURE__SERIALIZE:
+ source += "/* esxVI_%s_Serialize */\n" % self.name
- if self.features & Object.FEATURE__LIST:
- source += "/* esxVI_%s_SerializeList */\n" % self.name
- source += "ESX_VI__TEMPLATE__LIST__SERIALIZE(%s)\n\n" \
- % self.name
- else:
- if self.features & Object.FEATURE__SERIALIZE:
- source += "/* esxVI_%s_Serialize */\n" % self.name
+ if self.extended_by is None:
+ source += "ESX_VI__TEMPLATE__SERIALIZE(%s,\n" % self.name
+ else:
source += "ESX_VI__TEMPLATE__DYNAMIC_SERIALIZE(%s,\n" % self.name
source += "{\n"
-
source += self.generate_dispatch('SERIALIZE')
-
source += "},\n"
- source += "{\n"
-
- source += self.generate_serialize_code()
- source += "})\n\n"
+ source += "{\n"
+ source += self.generate_serialize_code()
+ source += "})\n\n"
- if self.features & Object.FEATURE__LIST:
- source += "/* esxVI_%s_SerializeList */\n" % self.name
- source += "ESX_VI__TEMPLATE__LIST__SERIALIZE(%s)\n\n" \
- % self.name
+ if self.features & Object.FEATURE__LIST:
+ source += "/* esxVI_%s_SerializeList */\n" % self.name
+ source += "ESX_VI__TEMPLATE__LIST__SERIALIZE(%s)\n\n" \
+ % self.name
# deserialize
- if self.extended_by is None:
- if self.features & Object.FEATURE__DESERIALIZE:
- source += "/* esxVI_%s_Deserialize */\n" % self.name
- source += "ESX_VI__TEMPLATE__DESERIALIZE(%s,\n" % self.name
- source += "{\n"
-
- source += self.generate_deserialize_code()
-
- source += "})\n\n"
+ if self.features & Object.FEATURE__DESERIALIZE:
+ source += "/* esxVI_%s_Deserialize */\n" % self.name
- if self.features & Object.FEATURE__LIST:
- source += "/* esxVI_%s_DeserializeList */\n" % self.name
- source += "ESX_VI__TEMPLATE__LIST__DESERIALIZE(%s)\n\n" \
- % self.name
- else:
- if self.features & Object.FEATURE__DESERIALIZE:
- source += "/* esxVI_%s_Deserialize */\n" % self.name
+ if self.extended_by is None:
+ source += "ESX_VI__TEMPLATE__DESERIALIZE(%s,\n" % self.name
+ else:
source += "ESX_VI__TEMPLATE__DYNAMIC_DESERIALIZE(%s,\n" \
% self.name
source += "{\n"
-
source += self.generate_dispatch('DESERIALIZE')
-
source += "},\n"
- source += "{\n"
-
- source += self.generate_deserialize_code()
- source += "})\n\n"
+ source += "{\n"
+ source += self.generate_deserialize_code()
+ source += "})\n\n"
- if self.features & Object.FEATURE__LIST:
- source += "/* esxVI_%s_DeserializeList */\n" % self.name
- source += "ESX_VI__TEMPLATE__LIST__DESERIALIZE(%s)\n\n" \
- % self.name
+ if self.features & Object.FEATURE__LIST:
+ source += "/* esxVI_%s_DeserializeList */\n" % self.name
+ source += "ESX_VI__TEMPLATE__LIST__DESERIALIZE(%s)\n\n" \
+ % self.name
source += "\n\n"
@@ -966,12 +917,10 @@ class Object(Type):
-class ManagedObject(Type):
- FEATURE__LIST = (1 << 2)
-
-
+class ManagedObject(GenericObject):
def __init__(self, name, extends, properties, features=0, extended_by=None):
- Type.__init__(self, "struct", name)
+ GenericObject.__init__(self, name, 'VI Managed Object', True,
+ managed_objects_by_name)
self.extends = extends
self.features = features
self.properties = properties
@@ -981,100 +930,6 @@ class ManagedObject(Type):
self.extended_by.sort()
- def generate_struct_members(self, add_banner=False, struct_gap=False):
- members = ""
-
- if struct_gap:
- members += "\n"
-
- if self.extends is not None:
- members += managed_objects_by_name[self.extends] \
- .generate_struct_members(add_banner=True) + "\n"
-
- if self.extends is not None or add_banner:
- members += " /* %s */\n" % self.name
-
- for property in self.properties:
- members += property.generate_struct_member()
-
- if len(self.properties) < 1:
- members += " /* no properties */\n"
-
- return members
-
-
- def generate_dispatch(self, suffix, is_first=True):
- source = ""
-
- if self.extended_by is not None:
- if not is_first:
- source += "\n"
-
- source += " /* %s */\n" % self.name
-
- for extended_by in self.extended_by:
- source += " ESX_VI__TEMPLATE__DISPATCH__%s(%s)\n" \
- % (suffix, extended_by)
-
- for extended_by in self.extended_by:
- source += managed_objects_by_name[extended_by] \
- .generate_dispatch(suffix, False)
-
- return source
-
-
- def generate_free_code(self, add_banner=False):
- source = ""
-
- if self.extends is not None:
- source += managed_objects_by_name[self.extends] \
- .generate_free_code(add_banner=True) + "\n"
-
- if self.extends is not None or add_banner:
- source += " /* %s */\n" % self.name
-
- if len(self.properties) < 1:
- source += " /* no properties */\n"
- else:
- string = ""
-
- for property in self.properties:
- string += property.generate_free_code()
-
- if len(string) < 1:
- source += " /* no properties to be freed */\n"
- else:
- source += string
-
- return source
-
-
- def generate_validate_code(self, add_banner=False):
- source = ""
-
- if self.extends is not None:
- source += managed_objects_by_name[self.extends] \
- .generate_validate_code(add_banner=True) + "\n"
-
- if self.extends is not None or add_banner:
- source += " /* %s */\n" % self.name
-
- if len(self.properties) < 1:
- source += " /* no properties */\n"
- else:
- string = ""
-
- for property in self.properties:
- string += property.generate_validate_code(managed=True)
-
- if len(string) < 1:
- source += " /* no required properties */\n"
- else:
- source += string
-
- return source
-
-
def generate_lookup_code1(self, add_banner=False):
source = ""
@@ -1127,30 +982,6 @@ class ManagedObject(Type):
return source
- def generate_comment(self):
- comment = separator
- comment += " * VI Managed Object: %s\n" % self.name
-
- if self.extends is not None:
- comment += " * extends %s\n" % self.extends
-
- first = True
-
- if self.extended_by is not None:
- for extended_by in self.extended_by:
- if first:
- comment += " * extended by %s\n" \
- % extended_by
- first = False
- else:
- comment += " * %s\n" \
- % extended_by
-
- comment += " */\n\n"
-
- return comment
-
-
def generate_header(self):
header = self.generate_comment()
@@ -1169,7 +1000,6 @@ class ManagedObject(Type):
"/* required */\n")
header += "\n"
header += self.generate_struct_members()
-
header += "};\n\n"
# functions
@@ -1213,53 +1043,32 @@ class ManagedObject(Type):
source += "ESX_VI__TEMPLATE__ALLOC(%s)\n\n" % self.name
# free
+ source += "/* esxVI_%s_Free */\n" % self.name
+
if self.extended_by is None:
- source += "/* esxVI_%s_Free */\n" % self.name
source += "ESX_VI__TEMPLATE__FREE(%s,\n" % self.name
- source += "{\n"
-
- if self.features & ManagedObject.FEATURE__LIST:
- if self.extends is not None:
- # avoid "dereferencing type-punned pointer will break
- # strict-aliasing rules" warnings
- source += " esxVI_%s *next = (esxVI_%s *)item->_next;\n\n" \
- % (self.extends, self.extends)
- source += " esxVI_%s_Free(&next);\n" % self.extends
- source += " item->_next = (esxVI_%s *)next;\n\n" % self.name
- else:
- source += " esxVI_%s_Free(&item->_next);\n" % self.name
-
- source += " esxVI_ManagedObjectReference_Free(&item->_reference);\n\n"
-
- source += self.generate_free_code()
-
- source += "})\n\n"
else:
- source += "/* esxVI_%s_Free */\n" % self.name
source += "ESX_VI__TEMPLATE__DYNAMIC_FREE(%s,\n" % self.name
source += "{\n"
-
source += self.generate_dispatch('FREE')
-
source += "},\n"
- source += "{\n"
-
- if self.features & ManagedObject.FEATURE__LIST:
- if self.extends is not None:
- # avoid "dereferencing type-punned pointer will break
- # strict-aliasing rules" warnings
- source += " esxVI_%s *next = (esxVI_%s *)item->_next;\n\n" \
- % (self.extends, self.extends)
- source += " esxVI_%s_Free(&next);\n" % self.extends
- source += " item->_next = (esxVI_%s *)next;\n\n" % self.name
- else:
- source += " esxVI_%s_Free(&item->_next);\n" % self.name
- source += " esxVI_ManagedObjectReference_Free(&item->_reference);\n\n"
+ source += "{\n"
- source += self.generate_free_code()
+ if self.features & ManagedObject.FEATURE__LIST:
+ if self.extends is not None:
+ # avoid "dereferencing type-punned pointer will break
+ # strict-aliasing rules" warnings
+ source += " esxVI_%s *next = (esxVI_%s *)item->_next;\n\n" \
+ % (self.extends, self.extends)
+ source += " esxVI_%s_Free(&next);\n" % self.extends
+ source += " item->_next = (esxVI_%s *)next;\n\n" % self.name
+ else:
+ source += " esxVI_%s_Free(&item->_next);\n" % self.name
- source += "})\n\n"
+ source += " esxVI_ManagedObjectReference_Free(&item->_reference);\n\n"
+ source += self.generate_free_code()
+ source += "})\n\n"
# validate
source += "/* esxVI_%s_Validate */\n" % self.name
@@ -1319,8 +1128,6 @@ class Enum(Type):
header = separator
header += " * VI Enum: %s\n" % self.name
header += " */\n\n"
-
- # enum
header += "enum _esxVI_%s {\n" % self.name
header += " esxVI_%s_Undefined = 0,\n" % self.name
@@ -1354,7 +1161,6 @@ class Enum(Type):
source = separator
source += " * VI Enum: %s\n" % self.name
source += " */\n\n"
-
source += "static const esxVI_Enumeration _esxVI_%s_Enumeration = {\n" \
% self.name
source += " esxVI_Type_%s, {\n" % self.name
--
1.7.9.5
2
5
Commit 7c9a2d88 missed inclusion of virstring.h in a few places
when WITH_HAL is defined, causing build failures.
---
Pushing under build-breaker rule.
src/node_device/node_device_driver.c | 1 +
src/node_device/node_device_hal.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
index 95df2e5..05dc49c 100644
--- a/src/node_device/node_device_driver.c
+++ b/src/node_device/node_device_driver.c
@@ -33,6 +33,7 @@
#include "datatypes.h"
#include "viralloc.h"
#include "virlog.h"
+#include "virstring.h"
#include "node_device_conf.h"
#include "node_device_hal.h"
#include "node_device_driver.h"
diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c
index 63245a9..8c77cc3 100644
--- a/src/node_device/node_device_hal.c
+++ b/src/node_device/node_device_hal.c
@@ -39,6 +39,7 @@
#include "virlog.h"
#include "node_device_driver.h"
#include "virdbus.h"
+#include "virstring.h"
#define VIR_FROM_THIS VIR_FROM_NODEDEV
--
1.8.0.1
1
0
Commit 776d49f4 added a static function that is only called
conditionally; leading to this compile error on mingw:
CC libvirt_util_la-virprocess.lo
../../src/util/virprocess.c:624:26: error: 'struct rlimit' declared inside parameter list [-Werror]
../../src/util/virprocess.c:624:26: error: its scope is only this definition or declaration, which is probably not what you want [-Werror]
../../src/util/virprocess.c:622:1: error: 'virProcessPrLimit' defined but not used [-Werror=unused-function]
* src/util/virprocess.c (virProcessPrLimit): Only declare
virProcessPrLimit when used.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
Pushing under the build-breaker rule. (Hmm, this one existed
pre-release, which means 1.0.5 doesn't compile on mingw.
Oh well).
src/util/virprocess.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 73f5123..ac93c4a 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -617,7 +617,7 @@ virProcessPrLimit(pid_t pid, int resource, struct rlimit *rlim)
{
return prlimit(pid, resource, rlim, NULL);
}
-#else /* ! HAVE_PRLIMIT */
+#elif HAVE_SETRLIMIT
static int
virProcessPrLimit(pid_t pid ATTRIBUTE_UNUSED,
int resource ATTRIBUTE_UNUSED,
@@ -626,7 +626,7 @@ virProcessPrLimit(pid_t pid ATTRIBUTE_UNUSED,
errno = ENOSYS;
return -1;
}
-#endif /* ! HAVE_PRLIMIT */
+#endif
#if HAVE_SETRLIMIT && defined(RLIMIT_MEMLOCK)
int
--
1.8.1.4
1
0
Commit 7c9a2d88 cleaned up too many headers; FreeBSD builds
failed due to:
util/virutil.c:556: warning: implicit declaration of function 'canonicalize_file_name'
(Not sure which Linux header leaked this declaration, but gnulib
only guarantees it in stdlib.h)
libvirt.c:956: warning: implicit declaration of function 'virGetUserConfigDirectory'
(Here, a build on Linux was picking up virutil.h indirectly via
one of the conditional driver headers, where that driver was not
being built on my FreeBSD setup)
* src/util/virutil.c (includes): Need <stdlib.h> for
canonicalize_file_name.
* src/libvirt.c (includes): Use "virutil.h" unconditionally,
rather than relying on conditional indirect inclusion.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
Pushing under the build-breaker rule.
src/libvirt.c | 1 +
src/util/virutil.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/libvirt.c b/src/libvirt.c
index 15b37a3..467f6dd 100644
--- a/src/libvirt.c
+++ b/src/libvirt.c
@@ -63,6 +63,7 @@
#include "viruri.h"
#include "virthread.h"
#include "virstring.h"
+#include "virutil.h"
#ifdef WITH_TEST
# include "test/test_driver.h"
diff --git a/src/util/virutil.c b/src/util/virutil.c
index dc14c15..982d4a3 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -29,6 +29,7 @@
#include <dirent.h>
#include <stdio.h>
#include <stdarg.h>
+#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
--
1.8.1.4
1
0
virAsprintf(&foo, "%s", bar) is wasteful compared to
foo = strdup(bar) (or eventually, VIR_STRDUP(foo, bar),
but one thing at a time...).
Noticed while reviewing Laine's attempt to clean up broken
qemu:///session.
* cfg.mk (sc_prohibit_asprintf): Enhance rule.
* src/esx/esx_storage_backend_vmfs.c
(esxStorageBackendVMFSVolumeLookupByKey): Fix offender.
* src/network/bridge_driver.c (networkStateInitialize): Likewise.
* src/nwfilter/nwfilter_dhcpsnoop.c (virNWFilterSnoopDHCPOpen):
Likewise.
* src/storage/storage_backend_sheepdog.c
(virStorageBackendSheepdogRefreshVol): Likewise.
* src/util/vircgroup.c (virCgroupAddTaskStrController): Likewise.
* src/util/virdnsmasq.c (addnhostsAdd): Likewise.
* src/xen/block_stats.c (xenLinuxDomainDeviceID): Likewise.
* src/xen/xen_driver.c (xenUnifiedConnectOpen): Likewise.
* tools/virsh.c (vshGetTypedParamValue): Likewise.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
cfg.mk | 4 ++++
src/esx/esx_storage_backend_vmfs.c | 5 ++---
src/network/bridge_driver.c | 9 +++------
src/nwfilter/nwfilter_dhcpsnoop.c | 4 ++--
src/storage/storage_backend_sheepdog.c | 3 ++-
src/util/vircgroup.c | 2 +-
src/util/virdnsmasq.c | 7 ++++---
src/xen/block_stats.c | 8 ++++----
src/xen/xen_driver.c | 2 +-
tools/virsh.c | 2 +-
10 files changed, 24 insertions(+), 22 deletions(-)
diff --git a/cfg.mk b/cfg.mk
index d499ded..1d63bbd 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -378,10 +378,14 @@ sc_prohibit_strtol:
$(_sc_search_regexp)
# Use virAsprintf rather than as'printf since *strp is undefined on error.
+# But for plain %s, virAsprintf is overkill compared to strdup.
sc_prohibit_asprintf:
@prohibit='\<v?a[s]printf\>' \
halt='use virAsprintf, not as'printf \
$(_sc_search_regexp)
+ @prohibit='virAsprintf.*, *"%s",' \
+ halt='use strdup instead of virAsprintf with "%s"' \
+ $(_sc_search_regexp)
# Prefer virSetUIDGID.
sc_prohibit_setuid:
diff --git a/src/esx/esx_storage_backend_vmfs.c b/src/esx/esx_storage_backend_vmfs.c
index dea6716..5d6f183 100644
--- a/src/esx/esx_storage_backend_vmfs.c
+++ b/src/esx/esx_storage_backend_vmfs.c
@@ -3,7 +3,7 @@
* esx_storage_backend_vmfs.c: ESX storage driver backend for
* managing VMFS datastores
*
- * Copyright (C) 2010-2011 Red Hat, Inc.
+ * Copyright (C) 2010-2011, 2013 Red Hat, Inc.
* Copyright (C) 2010-2012 Matthias Bolte <matthias.bolte(a)googlemail.com>
* Copyright (C) 2012 Ata E Husain Bohra <ata.husain(a)hotmail.com>
*
@@ -791,8 +791,7 @@ esxStorageBackendVMFSVolumeLookupByKey(virConnectPtr conn, const char *key)
VIR_FREE(datastorePath);
if (length < 1) {
- if (virAsprintf(&volumeName, "%s",
- fileInfo->path) < 0) {
+ if (!(volumeName = strdup(fileInfo->path))) {
virReportOOMError();
goto cleanup;
}
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 35202f1..3ddea18 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -393,12 +393,9 @@ networkStateInitialize(bool privileged,
}
VIR_FREE(userdir);
- userdir = virGetUserConfigDirectory();
- if (virAsprintf(&base, "%s", userdir) == -1) {
- VIR_FREE(userdir);
- goto out_of_memory;
- }
- VIR_FREE(userdir);
+ base = virGetUserConfigDirectory();
+ if (!base)
+ goto error;
}
/* Configuration paths are either ~/.libvirt/qemu/... (session) or
diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcpsnoop.c
index df11e89..50042df 100644
--- a/src/nwfilter/nwfilter_dhcpsnoop.c
+++ b/src/nwfilter/nwfilter_dhcpsnoop.c
@@ -2,7 +2,7 @@
* nwfilter_dhcpsnoop.c: support for DHCP snooping used by a VM
* on an interface
*
- * Copyright (C) 2012 Red Hat, Inc.
+ * Copyright (C) 2012-2013 Red Hat, Inc.
* Copyright (C) 2011,2012 IBM Corp.
*
* Authors:
@@ -1110,7 +1110,7 @@ virNWFilterSnoopDHCPOpen(const char *ifname, virMacAddr *mac,
* generate much more traffic than if we filtered by VM and
* braodcast MAC as well
*/
- if (virAsprintf(&ext_filter, "%s", filter) < 0) {
+ if (!(ext_filter = strdup(filter))) {
virReportOOMError();
return NULL;
}
diff --git a/src/storage/storage_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c
index a9ee7d3..2e62e6d 100644
--- a/src/storage/storage_backend_sheepdog.c
+++ b/src/storage/storage_backend_sheepdog.c
@@ -1,6 +1,7 @@
/*
* storage_backend_sheepdog.c: storage backend for Sheepdog handling
*
+ * Copyright (C) 2013 Red Hat, Inc.
* Copyright (C) 2012 Wido den Hollander
* Copyright (C) 2012 Frank Spijkerman
* Copyright (C) 2012 Sebastian Wiedenroth
@@ -268,7 +269,7 @@ virStorageBackendSheepdogRefreshVol(virConnectPtr conn ATTRIBUTE_UNUSED,
}
VIR_FREE(vol->target.path);
- if (virAsprintf(&vol->target.path, "%s", vol->name) == -1) {
+ if (!(vol->target.path = strdup(vol->name))) {
virReportOOMError();
goto cleanup;
}
diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
index b05fc45..473d2fc 100644
--- a/src/util/vircgroup.c
+++ b/src/util/vircgroup.c
@@ -1027,7 +1027,7 @@ static int virCgroupAddTaskStrController(virCgroupPtr group,
int rc = 0;
char *endp;
- if (virAsprintf(&str, "%s", pidstr) < 0)
+ if (!(str = strdup(pidstr)))
return -1;
cur = str;
diff --git a/src/util/virdnsmasq.c b/src/util/virdnsmasq.c
index 4f05633..36f31d2 100644
--- a/src/util/virdnsmasq.c
+++ b/src/util/virdnsmasq.c
@@ -1,7 +1,7 @@
/*
* virdnsmasq.c: Helper APIs for managing dnsmasq
*
- * Copyright (C) 2007-2012 Red Hat, Inc.
+ * Copyright (C) 2007-2013 Red Hat, Inc.
* Copyright (C) 2010 Satoru SATOH <satoru.satoh(a)gmail.com>
*
* This library is free software; you can redistribute it and/or
@@ -118,7 +118,7 @@ addnhostsAdd(dnsmasqAddnHostsfile *addnhostsfile,
if (VIR_ALLOC(addnhostsfile->hosts[idx].hostnames) < 0)
goto alloc_error;
- if (virAsprintf(&addnhostsfile->hosts[idx].ip, "%s", ipstr) < 0)
+ if (!(addnhostsfile->hosts[idx].ip = strdup(ipstr)))
goto alloc_error;
addnhostsfile->hosts[idx].nhostnames = 0;
@@ -128,7 +128,8 @@ addnhostsAdd(dnsmasqAddnHostsfile *addnhostsfile,
if (VIR_REALLOC_N(addnhostsfile->hosts[idx].hostnames, addnhostsfile->hosts[idx].nhostnames + 1) < 0)
goto alloc_error;
- if (virAsprintf(&addnhostsfile->hosts[idx].hostnames[addnhostsfile->hosts[idx].nhostnames], "%s", name) < 0)
+ if (!(addnhostsfile->hosts[idx].hostnames[addnhostsfile->hosts[idx].nhostnames]
+ = strdup(name)))
goto alloc_error;
VIR_FREE(ipstr);
diff --git a/src/xen/block_stats.c b/src/xen/block_stats.c
index 8c18ed5..ded8d7f 100644
--- a/src/xen/block_stats.c
+++ b/src/xen/block_stats.c
@@ -1,7 +1,7 @@
/*
* Linux block and network stats.
*
- * Copyright (C) 2007-2009 Red Hat, Inc.
+ * Copyright (C) 2007-2009, 2013 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -293,11 +293,11 @@ xenLinuxDomainDeviceID(int domid, const char *path)
*/
if (strlen(path) >= 5 && STRPREFIX(path, "/dev/"))
- retval = virAsprintf(&mod_path, "%s", path);
+ mod_path = strdup(path);
else
- retval = virAsprintf(&mod_path, "/dev/%s", path);
+ ignore_value(virAsprintf(&mod_path, "/dev/%s", path));
- if (retval < 0) {
+ if (!mod_path) {
virReportOOMError();
return -1;
}
diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c
index 938205e..6ad050c 100644
--- a/src/xen/xen_driver.c
+++ b/src/xen/xen_driver.c
@@ -443,7 +443,7 @@ xenUnifiedConnectOpen(virConnectPtr conn, virConnectAuthPtr auth, unsigned int f
}
#endif
- if (virAsprintf(&priv->saveDir, "%s", XEN_SAVE_DIR) == -1) {
+ if (!(priv->saveDir = strdup(XEN_SAVE_DIR))) {
virReportOOMError();
goto fail;
}
diff --git a/tools/virsh.c b/tools/virsh.c
index 22bcec2..7ef0bda 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -2181,7 +2181,7 @@ vshGetTypedParamValue(vshControl *ctl, virTypedParameterPtr item)
break;
case VIR_TYPED_PARAM_BOOLEAN:
- ret = virAsprintf(&str, "%s", item->value.b ? _("yes") : _("no"));
+ str = vshStrdup(ctl, item->value.b ? _("yes") : _("no"));
break;
case VIR_TYPED_PARAM_STRING:
--
1.8.1.4
2
2
02 May '13
Hi all,
we detected a floating bug of 1.0.2 version.
Libvirtd mysteriously and quietly dies (without core dumps or entries in dmesg/syslog) with the following log messages.
If you have any ideas of what it might be and how to deal with it - please give a hint. Many thanks.
Here is the tail of libvirtd.log:
2013-04-30 11:47:46.020+000053093: info : qemuDomainUndefineFlags:5784 : Undefining domain 'vm010-002-048-002'
2013-04-30 11:47:46.195+000053087: debug : qemuDomObjFromDomainDriver:213 : Domain not found: no domain with matching uuid '52ab57f1-e198-9bd7-6ef8-74b9d34e7b03'
2013-05-01 21:00:30.997+000053085: warning : qemuDomainObjTaint:1376 : Domain id=170 name='vm010-002-060-007' uuid=41acb52e-96c0-0fe6-4d63-39d6560bc882 is tainted: custom-monitor
2013-05-02 18:37:10.430+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x88d200 after 5 keepalive messages in 30 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x8858e0 after 5 keepalive messages in 31 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x88e940 after 5 keepalive messages in 32 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x897410 after 5 keepalive messages in 32 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x8901c0 after 5 keepalive messages in 32 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x894c50 after 5 keepalive messages in 33 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x884ef0 after 5 keepalive messages in 32 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x87df20 after 5 keepalive messages in 31 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x8832e0 after 5 keepalive messages in 32 seconds
2013-05-02 18:37:14.251+000053084: warning : virKeepAliveTimerInternal:141 : No response from client 0x87dc40 after 5 keepalive messages in 32 seconds
2013-05-02 18:37:14.251+000053084: error : virFDStreamRemoveCallback:83 : internal error stream is not open
2013-05-02 18:37:14.681+000053091: error : virFDStreamRemoveCallback:83 : internal error stream is not open
====== end of log =====
2013-05-02 18:47:28.464+0000: 97308: info : libvirt version: 1.0.2
--
wbr, Igor Lukyanov
2
1
02 May '13
This should resolve https://bugzilla.redhat.com/show_bug.cgi?id=958907
Recent new addition of code to read/write active network state to the
NETWORK_STATE_DIR in the network driver broke startup for
qemu:///session. The network driver had several state file paths
hardcoded to /var, which could never possibly work in session mode.
This patch modifies *all* state files to use a variable string that is
set differently according to whether or not we're running privileged.
There are very definitely other problems preventing dnsmasq and radvd
from running in non-privileged mode, but it's more consistent to have
the directories used by them be determined in the same fashion.
---
src/network/bridge_driver.c | 155 ++++++++++++++++++++++++++++----------------
1 file changed, 100 insertions(+), 55 deletions(-)
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index 35202f1..fb00645 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -1,4 +1,3 @@
-
/*
* bridge_driver.c: core driver methods for managing network
*
@@ -67,11 +66,11 @@
#include "virfile.h"
#include "virstring.h"
-#define NETWORK_PID_DIR LOCALSTATEDIR "/run/libvirt/network"
-#define NETWORK_STATE_DIR LOCALSTATEDIR "/lib/libvirt/network"
+#define NETWORK_PID_DIR "/run/libvirt/network"
+#define NETWORK_STATE_DIR "/lib/libvirt/network"
-#define DNSMASQ_STATE_DIR LOCALSTATEDIR "/lib/libvirt/dnsmasq"
-#define RADVD_STATE_DIR LOCALSTATEDIR "/lib/libvirt/radvd"
+#define DNSMASQ_STATE_DIR "/lib/libvirt/dnsmasq"
+#define RADVD_STATE_DIR "/lib/libvirt/radvd"
#define VIR_FROM_THIS VIR_FROM_NETWORK
@@ -84,6 +83,10 @@ struct network_driver {
iptablesContext *iptables;
char *networkConfigDir;
char *networkAutostartDir;
+ char *stateDir;
+ char *pidDir;
+ char *dnsmasqStateDir;
+ char *radvdStateDir;
char *logDir;
dnsmasqCapsPtr dnsmasqCaps;
};
@@ -133,8 +136,8 @@ networkDnsmasqLeaseFileNameDefault(const char *netname)
{
char *leasefile;
- ignore_value(virAsprintf(&leasefile, DNSMASQ_STATE_DIR "/%s.leases",
- netname));
+ ignore_value(virAsprintf(&leasefile, "%s/%s.leases",
+ driverState->dnsmasqStateDir, netname));
return leasefile;
}
@@ -146,8 +149,8 @@ networkDnsmasqConfigFileName(const char *netname)
{
char *conffile;
- ignore_value(virAsprintf(&conffile, DNSMASQ_STATE_DIR "/%s.conf",
- netname));
+ ignore_value(virAsprintf(&conffile, "%s/%s.conf",
+ driverState->dnsmasqStateDir, netname));
return conffile;
}
@@ -166,8 +169,8 @@ networkRadvdConfigFileName(const char *netname)
{
char *configfile;
- ignore_value(virAsprintf(&configfile, RADVD_STATE_DIR "/%s-radvd.conf",
- netname));
+ ignore_value(virAsprintf(&configfile, "%s/%s-radvd.conf",
+ driverState->radvdStateDir, netname));
return configfile;
}
@@ -187,8 +190,10 @@ networkRemoveInactive(struct network_driver *driver,
int ret = -1;
/* remove the (possibly) existing dnsmasq and radvd files */
- if (!(dctx = dnsmasqContextNew(def->name, DNSMASQ_STATE_DIR)))
+ if (!(dctx = dnsmasqContextNew(def->name,
+ driverState->dnsmasqStateDir))) {
goto cleanup;
+ }
if (!(leasefile = networkDnsmasqLeaseFileName(def->name)))
goto cleanup;
@@ -202,7 +207,8 @@ networkRemoveInactive(struct network_driver *driver,
if (!(configfile = networkDnsmasqConfigFileName(def->name)))
goto no_memory;
- if (!(statusfile = virNetworkConfigFile(NETWORK_STATE_DIR, def->name)))
+ if (!(statusfile
+ = virNetworkConfigFile(driverState->stateDir, def->name)))
goto no_memory;
/* dnsmasq */
@@ -212,7 +218,7 @@ networkRemoveInactive(struct network_driver *driver,
/* radvd */
unlink(radvdconfigfile);
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
/* remove status file */
unlink(statusfile);
@@ -279,7 +285,7 @@ networkFindActiveConfigs(struct network_driver *driver)
if (obj->def->ips && (obj->def->nips > 0)) {
char *radvdpidbase;
- ignore_value(virPidFileReadIfAlive(NETWORK_PID_DIR, obj->def->name,
+ ignore_value(virPidFileReadIfAlive(driverState->pidDir, obj->def->name,
&obj->dnsmasqPid,
dnsmasqCapsGetBinaryPath(driver->dnsmasqCaps)));
@@ -287,7 +293,7 @@ networkFindActiveConfigs(struct network_driver *driver)
virReportOOMError();
goto cleanup;
}
- ignore_value(virPidFileReadIfAlive(NETWORK_PID_DIR, radvdpidbase,
+ ignore_value(virPidFileReadIfAlive(driverState->pidDir, radvdpidbase,
&obj->radvdPid, RADVD));
VIR_FREE(radvdpidbase);
}
@@ -374,27 +380,59 @@ networkStateInitialize(bool privileged,
networkDriverLock(driverState);
if (privileged) {
- if (virAsprintf(&driverState->logDir,
- "%s/log/libvirt/qemu", LOCALSTATEDIR) == -1)
- goto out_of_memory;
-
- if ((base = strdup(SYSCONFDIR "/libvirt")) == NULL)
+ if (((base = strdup(SYSCONFDIR "/libvirt")) == NULL) ||
+ ((driverState->logDir
+ = strdup(LOCALSTATEDIR "/log/libvirt/qemu")) == NULL) ||
+ ((driverState->stateDir
+ = strdup(LOCALSTATEDIR NETWORK_STATE_DIR)) == NULL) ||
+ ((driverState->pidDir
+ = strdup(LOCALSTATEDIR NETWORK_PID_DIR)) == NULL) ||
+ ((driverState->dnsmasqStateDir
+ = strdup(LOCALSTATEDIR DNSMASQ_STATE_DIR)) == NULL) ||
+ ((driverState->radvdStateDir
+ = strdup(LOCALSTATEDIR RADVD_STATE_DIR)) == NULL)) {
goto out_of_memory;
+ }
} else {
char *userdir = virGetUserCacheDirectory();
if (!userdir)
goto error;
+ userdir = virGetUserConfigDirectory();
+ if (virAsprintf(&base, "%s", userdir) < 0) {
+ VIR_FREE(userdir);
+ goto out_of_memory;
+ }
+ VIR_FREE(userdir);
+
if (virAsprintf(&driverState->logDir,
- "%s/qemu/log", userdir) == -1) {
+ "%s/qemu/log", userdir) < 0) {
VIR_FREE(userdir);
goto out_of_memory;
}
VIR_FREE(userdir);
- userdir = virGetUserConfigDirectory();
- if (virAsprintf(&base, "%s", userdir) == -1) {
+ if (!(userdir = virGetUserRuntimeDirectory()))
+ goto error;
+
+ if (virAsprintf(&driverState->stateDir,
+ "%s" NETWORK_STATE_DIR, userdir) < 0) {
+ VIR_FREE(userdir);
+ goto out_of_memory;
+ }
+ if (virAsprintf(&driverState->pidDir,
+ "%s" NETWORK_PID_DIR, userdir) < 0) {
+ VIR_FREE(userdir);
+ goto out_of_memory;
+ }
+ if (virAsprintf(&driverState->dnsmasqStateDir,
+ "%s" DNSMASQ_STATE_DIR, userdir) < 0) {
+ VIR_FREE(userdir);
+ goto out_of_memory;
+ }
+ if (virAsprintf(&driverState->radvdStateDir,
+ "%s" RADVD_STATE_DIR, userdir) < 0) {
VIR_FREE(userdir);
goto out_of_memory;
}
@@ -404,12 +442,12 @@ networkStateInitialize(bool privileged,
/* Configuration paths are either ~/.libvirt/qemu/... (session) or
* /etc/libvirt/qemu/... (system).
*/
- if (virAsprintf(&driverState->networkConfigDir, "%s/qemu/networks", base) == -1)
- goto out_of_memory;
-
- if (virAsprintf(&driverState->networkAutostartDir, "%s/qemu/networks/autostart",
- base) == -1)
+ if ((virAsprintf(&driverState->networkConfigDir,
+ "%s/qemu/networks", base) < 0) ||
+ (virAsprintf(&driverState->networkAutostartDir,
+ "%s/qemu/networks/autostart", base) < 0)) {
goto out_of_memory;
+ }
VIR_FREE(base);
@@ -421,7 +459,7 @@ networkStateInitialize(bool privileged,
driverState->dnsmasqCaps = dnsmasqCapsNewFromBinary(DNSMASQ);
if (virNetworkLoadAllState(&driverState->networks,
- NETWORK_STATE_DIR) < 0)
+ driverState->stateDir) < 0)
goto error;
if (virNetworkLoadAllConfigs(&driverState->networks,
@@ -489,7 +527,7 @@ networkStateReload(void) {
networkDriverLock(driverState);
virNetworkLoadAllState(&driverState->networks,
- NETWORK_STATE_DIR);
+ driverState->stateDir);
virNetworkLoadAllConfigs(&driverState->networks,
driverState->networkConfigDir,
driverState->networkAutostartDir);
@@ -1060,32 +1098,33 @@ networkStartDhcpDaemon(struct network_driver *driver,
goto cleanup;
}
- if (virFileMakePath(NETWORK_PID_DIR) < 0) {
+ if (virFileMakePath(driverState->pidDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_PID_DIR);
+ driverState->pidDir);
goto cleanup;
}
- if (virFileMakePath(NETWORK_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->stateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_STATE_DIR);
+ driverState->stateDir);
goto cleanup;
}
- if (!(pidfile = virPidFileBuildPath(NETWORK_PID_DIR, network->def->name))) {
+ if (!(pidfile = virPidFileBuildPath(driverState->pidDir,
+ network->def->name))) {
virReportOOMError();
goto cleanup;
}
- if (virFileMakePath(DNSMASQ_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->dnsmasqStateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- DNSMASQ_STATE_DIR);
+ driverState->dnsmasqStateDir);
goto cleanup;
}
- dctx = dnsmasqContextNew(network->def->name, DNSMASQ_STATE_DIR);
+ dctx = dnsmasqContextNew(network->def->name, driverState->dnsmasqStateDir);
if (dctx == NULL)
goto cleanup;
@@ -1113,7 +1152,7 @@ networkStartDhcpDaemon(struct network_driver *driver,
* pid
*/
- ret = virPidFileRead(NETWORK_PID_DIR, network->def->name,
+ ret = virPidFileRead(driverState->pidDir, network->def->name,
&network->dnsmasqPid);
if (ret < 0)
goto cleanup;
@@ -1150,8 +1189,10 @@ networkRefreshDhcpDaemon(struct network_driver *driver,
return networkStartDhcpDaemon(driver, network);
VIR_INFO("Refreshing dnsmasq for network %s", network->def->bridge);
- if (!(dctx = dnsmasqContextNew(network->def->name, DNSMASQ_STATE_DIR)))
+ if (!(dctx = dnsmasqContextNew(network->def->name,
+ driverState->dnsmasqStateDir))) {
goto cleanup;
+ }
/* Look for first IPv4 address that has dhcp defined.
* We only support dhcp-host config on one IPv4 subnetwork
@@ -1375,16 +1416,16 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
goto cleanup;
}
- if (virFileMakePath(NETWORK_PID_DIR) < 0) {
+ if (virFileMakePath(driverState->pidDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- NETWORK_PID_DIR);
+ driverState->pidDir);
goto cleanup;
}
- if (virFileMakePath(RADVD_STATE_DIR) < 0) {
+ if (virFileMakePath(driverState->radvdStateDir) < 0) {
virReportSystemError(errno,
_("cannot create directory %s"),
- RADVD_STATE_DIR);
+ driverState->radvdStateDir);
goto cleanup;
}
@@ -1393,7 +1434,7 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
virReportOOMError();
goto cleanup;
}
- if (!(pidfile = virPidFileBuildPath(NETWORK_PID_DIR, radvdpidbase))) {
+ if (!(pidfile = virPidFileBuildPath(driverState->pidDir, radvdpidbase))) {
virReportOOMError();
goto cleanup;
}
@@ -1421,7 +1462,7 @@ networkStartRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
if (virCommandRun(cmd, NULL) < 0)
goto cleanup;
- if (virPidFileRead(NETWORK_PID_DIR, radvdpidbase, &network->radvdPid) < 0)
+ if (virPidFileRead(driverState->pidDir, radvdpidbase, &network->radvdPid) < 0)
goto cleanup;
ret = 0;
@@ -1448,7 +1489,7 @@ networkRefreshRadvd(struct network_driver *driver ATTRIBUTE_UNUSED,
network->def->name) >= 0) &&
((radvdpidbase = networkRadvdPidfileBasename(network->def->name))
!= NULL)) {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
network->radvdPid = -1;
@@ -1488,7 +1529,7 @@ networkRestartRadvd(struct network_driver *driver,
network->def->name) >= 0) &&
((radvdpidbase = networkRadvdPidfileBasename(network->def->name))
!= NULL)) {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
network->radvdPid = -1;
@@ -2572,7 +2613,7 @@ static int networkShutdownNetworkVirtual(struct network_driver *driver,
if (!(radvdpidbase = networkRadvdPidfileBasename(network->def->name))) {
virReportOOMError();
} else {
- virPidFileDelete(NETWORK_PID_DIR, radvdpidbase);
+ virPidFileDelete(driverState->pidDir, radvdpidbase);
VIR_FREE(radvdpidbase);
}
}
@@ -2673,7 +2714,8 @@ networkStartNetwork(struct network_driver *driver,
/* Persist the live configuration now that anything autogenerated
* is setup.
*/
- if ((ret = virNetworkSaveStatus(NETWORK_STATE_DIR, network)) < 0) {
+ if ((ret = virNetworkSaveStatus(driverState->stateDir,
+ network)) < 0) {
goto error;
}
@@ -2703,7 +2745,8 @@ static int networkShutdownNetwork(struct network_driver *driver,
if (!virNetworkObjIsActive(network))
return 0;
- stateFile = virNetworkConfigFile(NETWORK_STATE_DIR, network->def->name);
+ stateFile = virNetworkConfigFile(driverState->stateDir,
+ network->def->name);
if (!stateFile)
return -1;
@@ -3368,8 +3411,10 @@ networkUpdate(virNetworkPtr net,
}
/* save current network state to disk */
- if ((ret = virNetworkSaveStatus(NETWORK_STATE_DIR, network)) < 0)
+ if ((ret = virNetworkSaveStatus(driverState->stateDir,
+ network)) < 0) {
goto cleanup;
+ }
}
ret = 0;
cleanup:
@@ -4702,7 +4747,7 @@ networkPlugBandwidth(virNetworkObjPtr net,
/* update sum of 'floor'-s of attached NICs */
net->floor_sum += ifaceBand->in->floor;
/* update status file */
- if (virNetworkSaveStatus(NETWORK_STATE_DIR, net) < 0) {
+ if (virNetworkSaveStatus(driverState->stateDir, net) < 0) {
ignore_value(virBitmapClearBit(net->class_id, class_id));
net->floor_sum -= ifaceBand->in->floor;
iface->data.network.actual->class_id = 0;
@@ -4748,7 +4793,7 @@ networkUnplugBandwidth(virNetworkObjPtr net,
ignore_value(virBitmapClearBit(net->class_id,
iface->data.network.actual->class_id));
/* update status file */
- if (virNetworkSaveStatus(NETWORK_STATE_DIR, net) < 0) {
+ if (virNetworkSaveStatus(driverState->stateDir, net) < 0) {
net->floor_sum += ifaceBand->in->floor;
ignore_value(virBitmapSetBit(net->class_id,
iface->data.network.actual->class_id));
--
1.7.11.7
3
3
02 May '13
1/2 prevents memory leaks and hair loss in qemuParseCommandLineCPU
2/2 adds support for the new cpu flags
v1:
https://www.redhat.com/archives/libvir-list/2013-May/msg00173.html
v2:
uses virStringSplit instead of strsep
added a missing break to virDomainDefParseXML
Ján Tomko (2):
qemu: simplify CPU command line parsing
qemu: add hv_vapic and hv_spinlocks support
docs/formatdomain.html.in | 17 ++-
docs/schemas/domaincommon.rng | 12 ++
src/conf/domain_conf.c | 40 +++++-
src/conf/domain_conf.h | 3 +
src/qemu/qemu_command.c | 168 +++++++++++++-----------
tests/qemuxml2argvdata/qemuxml2argv-hyperv.args | 2 +-
tests/qemuxml2argvdata/qemuxml2argv-hyperv.xml | 2 +
7 files changed, 164 insertions(+), 80 deletions(-)
--
1.8.1.5
1
2
I forgot to make the rc2 release on tuesday, but looking at the
git state it was looking like the problem reported on rc1 had been
fixed, so I decided to go ahead and roll the release as scheduled
today. It is tagged in git and the tarball is available as usual at:
ftp://libvirt.org/libvirt/
along with rpms. This release contains an homogenous set of features, bug
fixes and improvements with some refactoring done in various places.
It also includes more localization updates now coming from the Fedora
localization project, with around 6 languages fully localized and 3 more
over the 70% threshold:
Features:
- Add NVRAM device (Li Zhang)
- Add XML config for resource partitions (Daniel P. Berrange)
- Add support for TPM (Stefan Berger)
- NPIV storage migration support (Osier Yang)
Documentation:
- Fix closing tag in snapshot documentation (Christophe Fergeau)
- Fix typo in augeas comment (Martin Kletzander)
- Fix VIR_DOMAIN_EVENT_ID_PMSUSPEND capitalization in API doc (Christophe Fergeau)
- Improve /domainsnapshot/disks/disk@snapshot doc (Christophe Fergeau)
- fix memballoon examples (Ján Tomko)
- Clarify usage of SELinux baselabel (Peter Krempa)
- fix usage of 'onto' (Eric Blake)
- Update HACKING (Osier Yang)
- conf: fix comment about parsing graphics listen address (Ján Tomko)
- lib: Fix docs about return value of virDomainGetVcpusFlags() (Peter Krempa)
- virsh: Document that using incomplete XML files may have unexpected results (Peter Krempa)
- fix typo when using Kerberos principals (Eric Blake)
- use MiB/s instead of Mbps for migration speed (Ján Tomko)
- Add the missed <pre> tag (Osier Yang)
- virsh: Fix typo in docs (Peter Krempa)
- manual: Fix copy-paste errors (Martin Kletzander)
- manual: Add info about migrateuri in virsh manual (Martin Kletzander)
Portability:
- virInitctlRequest: Don't hardcode 384 bytes size (Guido Günther)
- S390: Do not generate a default USB controller (Viktor Mihajlovski)
- S390: Mention changed USB behavior (Viktor Mihajlovski)
- build: fix cygwin build in virnetdev (Eric Blake)
- portability: handle ifreq differences in virnetdev (Roman Bogorodskiy)
- qemu: fix build error with older platforms (Eric Blake)
- Fix compilation error in util/vircgroup.c (Stefan Berger)
- Conditionally compile storagevolxml2argvtest (Daniel P. Berrange)
- Fix signature of dummy virNetlinkCommand stub (Daniel P. Berrange)
- Add empty stub for virThreadCancel on Win32 (Daniel P. Berrange)
- Don't enable -fPIE on Win32 platforms (Daniel P. Berrange)
- spec: Require pod2man when running autoreconf (Jiri Denemark)
- Avoid cast alignment warnings in port allocator test (Daniel P. Berrange)
Bug Fixes:
- pci: autolearn name of stub driver, remove from arglist (Laine Stump)
- ESX: Fix DISPATCH_FREE generation code to free all extended objects (Ata E Husain Bohra)
- qemu: fix failure to start with spice graphics and no tls (Laine Stump)
- Need to call virFreeError after virSaveLastError (John Ferlan)
- libvirt-guests: status: return non-zero when stopped (Ján Tomko)
- security driver: eliminate memory leaks in failure paths (Laine Stump)
- libxl: Fix double-dispose of libxl domain config (Jim Fehlig)
- virsh: fix incorrect argument errors for long options (Ján Tomko)
- network: Don't remove transient network if creating of config file fails (Peter Krempa)
- qemu: prevent invalid reads in qemuAssignDevicePCISlots (Ján Tomko)
- qemu: don't assign a PCI address to 'none' USB controller (Ján Tomko)
- fix segfault during virsh save in pv guest (Bamvor Jian Zhang)
- conf: reject controllers with duplicate indexes (Ján Tomko)
- fix typo introduced by 90430791 (Bamvor Jian Zhang)
- Fix usb master startport parsing (Martin Kletzander)
- qemu_conf: Don't discard strdup OOM error (Michal Privoznik)
- util: Error out if the numa nodeset is out of range (Osier Yang)
- selinux: Don't mask errors of virSecuritySELinuxGenNewContext (Peter Krempa)
- qemu: Fix the wrong expression (Osier Yang)
- audit: properly encode device path in cgroup audit (Eric Blake)
- network: bridge_driver: don't lose transient networks on daemon restart (Peter Krempa)
- qemu: fix default spice password setting (Ján Tomko)
- Fix build breaker with ATTRIBUTE_NONNULL defs (John Ferlan)
- Resolve valgrind error (John Ferlan)
- Do more complete initialization of libgcrypt (Daniel P. Berrange)
- qemu: Set correct migrate host in client_migrate_info (Michal Privoznik)
- qemu: fix crash in qemuOpen (Ján Tomko)
- conf: fix error for parallel port mismatch (Ján Tomko)
- conf: fix a memory leak when parsing nat port XML nodes (Guannan Ren)
- conf: Fix race between looking up a domain object and freeing it (Peter Krempa)
- Fix crash in virNetDevGetVirtualFunctions (Laine Stump)
- schemas: Move PortNumber and sourceinfoadapter to basictypes.rng (Han Cheng)
- virsh: Unregister the connection close notifier upon termination (Viktor Mihajlovski)
- libvirt: Increase connection reference count for callbacks (Viktor Mihajlovski)
- storage: Fix volume cloning for logical volume. (Atsushi Kumagai)
- security_manager: fix comparison (Guido Günther)
- qemu: fix memory leak on -machine usage error (Eric Blake)
- qemu-blockjob: Fix limit of bandwidth for block jobs to supported value (Peter Krempa)
- sec_manager: Refuse to start domain with unsupported seclabel (Michal Privoznik)
- qemu: Fix crash when updating media with shared device (Peter Krempa)
- virsh: Call virDomainFree in cmdDomFSTrim (Michal Privoznik)
- smartcard: spell ccid-card-emulated qemu property correctly (Eric Blake)
- Resolve valgrind failure (John Ferlan)
Improvements:
- spec: collect all BuildRequires into one area (Eric Blake)
- Resolve valgrind error (John Ferlan)
- esx: Support virtualHW version 9 (Martin Kletzander)
- build: mark conditionally unused variables (Eric Blake)
- virsh: clarify vol-{down,up}load description (Ján Tomko)
- qemu: report an error if memballoon has wrong address type (Ján Tomko)
- qemu: assign addresses when converting xml to native (Ján Tomko)
- qemu: Error out if spice port autoallocation is requested, but disabled (Peter Krempa)
- qemu: put usb cgroup setup in common function (Laine Stump)
- qemu: add vfio devices to cgroup ACL when appropriate (Laine Stump)
- qemu: honor allowDiskFormatProbing when parsing command line (Ján Tomko)
- conf: add missing error on OOM (Ján Tomko)
- qemu: don't always reserve PCI addresses for implicit controllers (Ján Tomko)
- conf: remove extraneous _TYPE from driver backend enums (Laine Stump)
- network: support <driver name='vfio'/> in network definitions (Laine Stump)
- qemu: launch bridge helper from libvirtd (Paolo Bonzini)
- virnetdevtap: add virNetDevTapGetName (Paolo Bonzini)
- qemu: set qemu process' RLIMIT_MEMLOCK when VFIO is used (Laine Stump)
- qemu: use new virCommandSetMax(Processes|Files) (Laine Stump)
- util: new virCommandSetMax(MemLock|Processes|Files) (Laine Stump)
- Do proper escaping of cgroup resource partitions (Daniel P. Berrange)
- Ensure all cgroup partitions have a suffix of ".partition" (Daniel P. Berrange)
- Change VM cgroup suffix from '{lxc,qemu}.libvirt' to 'libvirt-{lxc,qemu}' (Daniel P. Berrange)
- test: Add JSON test for query-tpm-types (Stefan Berger)
- virsh: suppress aliases in group help (Eric Blake)
- security: update hostdev labelling functions for VFIO (Laine Stump)
- util: new function virPCIDeviceGetVFIOGroupDev (Laine Stump)
- virsh: use new virNodeDeviceDetachFlags (Laine Stump)
- xen: implement virNodeDeviceDetachFlags backend (Laine Stump)
- qemu: implement virNodeDeviceDetachFlags backend (Laine Stump)
- hypervisor api: implement RPC calls for virNodeDeviceDetachFlags (Laine Stump)
- hypervisor api: new virNodeDeviceDetachFlags (Laine Stump)
- qemu: bind/unbind stub driver according to config <driver name='x'/> (Laine Stump)
- pci: keep a stubDriver in each virPCIDevice (Laine Stump)
- qemu: use vfio-pci on commandline when appropriate (Laine Stump)
- conf: formatter/parser/RNG/docs for hostdev <driver name='kvm|vfio'/> (Laine Stump)
- conf: put hostdev pci address in a struct (Laine Stump)
- qemu: detect vfio-pci device and its bootindex parameter (Laine Stump)
- build: avoid unsafe functions in libgen.h (Eric Blake)
- qemu: auto-add pci-root to 'pc-i440*' machines too (Ján Tomko)
- qemu: auto-add bridges and allow using them (Ján Tomko)
- qemu: auto-add pci-root controller for pc machine types (Ján Tomko)
- qemu: build command line for pci-bridge device (liguang)
- conf: add PCI controllers (Ján Tomko)
- qemu: call post-parse callbacks when parsing command line too (Ján Tomko)
- qemu: Add command line builder and parser for NVRAM. (Li Zhang)
- qemuBuildCommandLine: Don't overwrite errors with NWFilter's one (Michal Privoznik)
- Introduce a sub-element <driver> for controller (Osier Yang)
- qemu: Don't require a block or file when looking for an alias (Wido den Hollander)
- Change the tag name "num_queues" into "queues" (Osier Yang)
- qemu: Improve handling of channels when generating SPICE command line (Peter Krempa)
- qemu: Do sensible auto allocation of SPICE port numbers (Peter Krempa)
- Make driver method names consistent with public APIs (Daniel P. Berrange)
- Dedicated name for sub-driver open/close methods (Daniel P. Berrange)
- Rename 'DeviceMonitor' to 'NodeDeviceDriver' (Daniel P. Berrange)
- Extend previous check to validate driver struct field names (Daniel P. Berrange)
- Ensure driver method names match public API names (Daniel P. Berrange)
- Make naming of remote procedures match API names exactly (Daniel P. Berrange)
- Cleanup command line options in gendispatch.pl (Daniel P. Berrange)
- qemu: Split out SPICE port allocation into a separate function (Peter Krempa)
- qemu: Use switch instead of ifs in qemuBuildGraphicsCommandLine (Peter Krempa)
- qemu: Split out code to generate VNC command line (Peter Krempa)
- qemu: Split out code to generate SPICE command line (Peter Krempa)
- qemu: Use -machine accel=tcg|kvm when available (Jiri Denemark)
- qemu: Move -enable-kvm and friends earlier in the command line (Jiri Denemark)
- Switch to a more extensible annotation system for RPC protocols (Daniel P. Berrange)
- qemu: Fix setting of memory tunables (Peter Krempa)
- logging: Make log regexp more compact (and readable) (Jiri Denemark)
- qemu: Ignore libvirt logs when reading QEMU error output (Jiri Denemark)
- qemu: Move QEMU log reading into a separate function (Jiri Denemark)
- update input ip processing (Gene Czarcinski)
- create virSocketAddrGetIpPrefix utility function (Gene Czarcinski)
- Replace more cases of /system with /machine (Daniel P. Berrange)
- Change default resource partition to /machine (Daniel P. Berrange)
- qemu: rename CheckSlot to SlotInUse (Ján Tomko)
- qemu: switch PCI address set from hash table to an array (Ján Tomko)
- conf: add model attribute to virDomainDefMaybeAddController (Ján Tomko)
- qemu: move PCI address check out of qemuPCIAddressAsString (Ján Tomko)
- qemu: QEMU_PCI constant consistency (Ján Tomko)
- qemu: print PCI address hexadecimally in errors (Ján Tomko)
- qemu: make qemuComparePCIDevice aware of multiple buses (Ján Tomko)
- conf: Reword error message to be more universal (Peter Krempa)
- cpu: Rename PowerPCUpdate and PowerPCDataFree functions (Jiri Denemark)
- cpu: Remove hardcoded list of PowerPC models (Jiri Denemark)
- cpu: Reimplement PowerPCDecode (Jiri Denemark)
- cpu: Reimplement PowerPCBaseline (Jiri Denemark)
- cpu: Fix loading PowerPC vendor from cpu_map.xml (Jiri Denemark)
- cpu: Fix PowerPCNodeData (Jiri Denemark)
- cpu: Make comparing PowerPC CPUs easier to read (Jiri Denemark)
- cpu: Introduce cpuModelIsAllowed internal API (Jiri Denemark)
- virsh-domain: Refactor cmdVcpucount and fix output on inactive domains (Peter Krempa)
- Set legacy USB option with default for ppc64. (Li Zhang)
- qemu_conf: add new configuration key bridge_helper (Paolo Bonzini)
- util: allow using virCommandAllowCap with setuid helpers (Paolo Bonzini)
- util: simplify virSetUIDGIDWithCaps (Paolo Bonzini)
- virsh-domain: Report errors on invalid --holdtime value for cmdSendKey (Peter Krempa)
- virsh-domain: Clean up cmdSendKey (Peter Krempa)
- qemu: simplify use of virArchFromHost (Tal Kain)
- rng: tighten up domain <controller> schema (Laine Stump)
- network: remove autostart flag from network when undefining it (Peter Krempa)
- syntax-check: Only allows to include public headers in external tools (Osier Yang)
- syntax-check: Don't include public headers in internal source (Osier Yang)
- syntax-check: Don't include duplicate header (Osier Yang)
- qemu: Allow the disk wwn to have "0x" prefix (Osier Yang)
- cleanup: Don't include libvirt/virterror.h (Osier Yang)
- cleanup: Don't include libvirt/libvirt.h (Osier Yang)
- cleanup: Remove the duplicate header (Osier Yang)
- cleanup: Only include testutils.h once (Osier Yang)
- Check for unsupported QMP command (Stefan Berger)
- qemu_agent: Add support for appending arrays to commands (Peter Krempa)
- Add support for perf_event and net_cls cgroup controllers (Daniel P. Berrange)
- Replace LXC cgroup mount code with call to virCgroupIsolateMount (Daniel P. Berrange)
- Add an API for re-mounting cgroups, to isolate the process location (Daniel P. Berrange)
- Track symlinks for co-mounted cgroup controllers (Daniel P. Berrange)
- Remove non-functional code for setting up non-root cgroups (Daniel P. Berrange)
- Change default cgroup layout for QEMU/LXC and honour XML config (Daniel P. Berrange)
- Add a new virCgroupNewPartition for setting up resource partitions (Daniel P. Berrange)
- Cleanup if creating cgroup directories fails (Daniel P. Berrange)
- Add misc extra debugging into cgroups code (Daniel P. Berrange)
- Refactor cgroups internal data structures (Daniel P. Berrange)
- Add a test suite for cgroups functionality (Daniel P. Berrange)
- Rename virCgroupForXXX to virCgroupNewXXX (Daniel P. Berrange)
- Pull definition of structs out of vircgroup.c to vircgrouppriv.h (Daniel P. Berrange)
- Store a virCgroupPtr instance in virLXCDomainObjPrivatePtr (Daniel P. Berrange)
- Store a virCgroupPtr instance in qemuDomainObjPrivatePtr (Daniel P. Berrange)
- Add missing param to virCgroupForDriver stub (Daniel P. Berrange)
- Introduce a virFileDeleteTree method (Daniel P. Berrange)
- Conditionalize use of symlink() function in test suite (Daniel P. Berrange)
- maint: update to latest gnulib (Eric Blake)
- Use unsigned int instead of unsigned (Osier Yang)
- qemu: Report also domain name in error message when domain object wasn't found (Peter Krempa)
- qemu: Refactor lookup of domain object (Peter Krempa)
- cleanup: Change datatype of net->stp to boolean (Osier Yang)
- cleanup: Change datatype of usbdev->allow to boolean (Osier Yang)
- cleanup: Change datatype of graphic's members to boolean (Osier Yang)
- cleanup: Change datatype of accel's members to boolean (Osier Yang)
- Add test case for TPM passthrough (Stefan Berger)
- TPM support for QEMU command line (Stefan Berger)
- QEMU Cgroup support for TPM passthrough (Stefan Berger)
- Audit the starting of a guest using TPM passthrough (Stefan Berger)
- Add SELinux and DAC labeling support for TPM passthrough (Stefan Berger)
- Convert QMP strings into QEMU capability bits (Stefan Berger)
- Parse TPM passthrough XML in the domain XML (Stefan Berger)
- Helper functions for host TPM support (Stefan Berger)
- Add documentation and schema for TPM passthrough (Stefan Berger)
- Add function to find a needle in a string array (Stefan Berger)
- Add QMP probing for TPM (Stefan Berger)
- conf: Allow for non-contiguous device boot orders (Peter Krempa)
- Tweak EOF handling of streams (Daniel P. Berrange)
- Add USB option capability (Li Zhang)
- Add error handling to optional arguments in cmdCPUStats (John Ferlan)
- qemu: Do not report unsafe migration for local files (Jiri Denemark)
- qemu: Try to use QMP for send-key if supported (Peter Krempa)
- virsh: Update list of shutdown/reboot modes (Michal Privoznik)
- cleanup: Change datatype of secret->private to boolean (Osier Yang)
- cleanup: Change datatype of secret->ephemeral to boolean (Osier Yang)
- cleanup: Change datatype of fs->readonly to boolean (Osier Yang)
- cleanup: Change datatype of disk->readonly to boolean (Osier Yang)
- cleanup: Change datatype of disk->transient to boolean (Osier Yang)
- cleanup: Change datatype of disk->shared to boolean (Osier Yang)
- cleanup: Change datatype of auth->expires to boolean (Osier Yang)
- cleanup: Change datatype of hostdev->missing to boolean (Osier Yang)
- Cleanup: Change datatype of origstate's members to boolean (Osier Yang)
- Cleanup: Change datatype of hostdev->managed to boolean (Osier Yang)
- conf: Change help function (Han Cheng)
- qemu: Remove now obsolete assignment of default network card model for s390 hosts (Peter Krempa)
- qemu: Clean up network device CLI generator (Peter Krempa)
- qemu: Use correct default model on s390 (Viktor Mihajlovski)
- sanlock: add missing test command in virt-sanlock-cleanup.in (Alex Jia)
- Generate RFC4122 compliant UUIDs (Milos Vyletel)
- Unmount existing filesystems under user specified mounts in LXC (Daniel P. Berrange)
- Move lxcContainerUnmountSubtree further up in file (Daniel P. Berrange)
- Implement support for <hostdev caps=net> (Bogdan Purcareata)
- Update structure & XML definitions to support <hostdev caps=net> (Bogdan Purcareata)
- Rename virCgroupMounted to virCgroupHasController & make it more robust (Daniel P. Berrange)
- qemu: Allow volume type disk for device 'lun' (Osier Yang)
- qemu: Support sgio setting for volume type disk (Osier Yang)
- qemu: Support shareable volume type disk (Osier Yang)
- qemu: Translate the pool disk source earlier (Osier Yang)
- Support seclabels for volume type disk (Osier Yang)
- Support startupPolicy for 'volume' disk (Osier Yang)
- qemu: Translate the pool disk source when building drive string (Osier Yang)
- Introduce new XMLs to specify disk source using libvirt storage (Osier Yang)
- conf: New helper virDomainDiskSourceDefFormat to format the disk source (Osier Yang)
- storage: Guess the parent if it's not specified for vHBA (Osier Yang)
- storage: Add startPool and stopPool for scsi backend (Osier Yang)
- util: Add helper to get the scsi host name by iterating over sysfs (Osier Yang)
- phyp: Prohibit fc_host adapter for phyp driver (Osier Yang)
- storage: Move virStorageBackendSCSIGetHostNumber into iscsi backend (Osier Yang)
- storage: Make the adapter name be consistent with node device driver (Osier Yang)
- New XML attributes for storage pool source adapter (Osier Yang)
- Disable cast-align warnings in various places (Daniel P. Berrange)
- Copy struct inotify_event entries to avoid alignment problems (Daniel P. Berrange)
- Use VIR_ALLOC_VAR instead of VIR_ALLOC_N for creating virObject (Daniel P. Berrange)
- Avoid casts between unsigned char * and struct nlmsghdr (Daniel P. Berrange)
- Rewrite keycode map to avoid a struct (Daniel P. Berrange)
- Add a test suite for keycode mapping functions (Daniel P. Berrange)
- qemu: Error out if the bitmap for pinning is all clear (Osier Yang)
- util: Add a helper to check if all bits of a bitmap are clear (Osier Yang)
- qemu: Support multiple queue virtio-scsi (Osier Yang)
- build: check correct protocol.o file (Eric Blake)
- build: use proper pod for nested bulleted VIRSH_DEBUG list (Eric Blake)
- qemu: Remove maximum cpu limit when setting processor count using the API (Peter Krempa)
- Don't create dirs in cgroup controllers we don't want to use (Daniel P. Berrange)
- Rename virCgroupGetAppRoot to virCgroupForSelf (Daniel P. Berrange)
- Ensure LD_PRELOAD exists before running test case (Daniel P. Berrange)
- Refactor RNG schema for resource tuning (Daniel P. Berrange)
- rpc: Fix connection close callback race condition and memory corruption/crash (Peter Krempa)
- virsh: Register and unregister the close callback also in cmdConnect (Peter Krempa)
- virsh: Move cmdConnect from virsh-host.c to virsh.c (Peter Krempa)
- virCaps: get rid of defaultConsoleTargetType callback (Peter Krempa)
- virCaps: get rid of macPrefix field (Peter Krempa)
- virCaps: get rid of hasWideScsiBus (Peter Krempa)
- virCaps: get rid of defaultDiskDriverType (Peter Krempa)
- virCaps: get rid of emulatorRequired (Peter Krempa)
- virCaps: get rid of defaultDiskDriverName (Peter Krempa)
- virCaps: get rid of "defaultInitPath" value in the virCaps struct (Peter Krempa)
- qemu: Record the default NIC model in the domain XML (Peter Krempa)
- conf callback: Rearrange function parameters (Peter Krempa)
- conf: Add post XML parse callbacks and prepare for cleaning of virCaps (Peter Krempa)
- maint: Rename xmlconf to xmlopt and virDomainXMLConfig to virDomainXMLOption (Peter Krempa)
- Create fake NUMA info if libnuma isn't available (Daniel P. Berrange)
- Cope with missing /sys/devices/system/cpu/cpu0/topology files (Daniel P. Berrange)
- Add armv6l architecture to list of valid arches (Daniel P. Berrange)
- Implement minimal sysinfo for ARM platforms (Daniel P. Berrange)
- Disable of unused sysinfotest functions (Daniel P. Berrange)
- Wire up sysinfo for LXC driver (Daniel P. Berrange)
- Add support for SD cards in nodedev driver (Daniel P. Berrange)
- Auto-add a root <filesystem> element to LXC containers on startup (Daniel P. Berrange)
- Remove support for old kernels lacking private devpts (Daniel P. Berrange)
- Enable full RELRO mode (Daniel P. Berrange)
- Build all binaries with PIE (Daniel P. Berrange)
- rng: Add definition for network disk source (Osier Yang)
- Disable static libraries by default (Daniel P. Berrange)
- Allow multiple parameters for schedinfo (Martin Kletzander)
- virsh-domain: Add --live, --config, --current logic to cmdDetachDisk (Peter Krempa)
- virsh-domain: Add --live, --config, --current logic to cmdDetachDevice (Peter Krempa)
- virsh-domain: Add --live, --config, --current logic to cmdDetachInterface (Peter Krempa)
- virsh: Fix semantics of --config for "update-device" command (Peter Krempa)
- virsh-domain: Fix declarations of flag variables in cmdChangeMedia (Peter Krempa)
- virsh-domain: Simplify usage of --current, --live and --config flags (Peter Krempa)
- virsh-domain-monitor: Refactor cmdDomIfGetLink (Peter Krempa)
- Use virMacAddrFormat instead of manual mac address formatting (Peter Krempa)
- util: Change virMacAddrFormat to lowercase hex characters (Peter Krempa)
- Optimize machine option to set more options with it (Li Zhang)
- conf: Enforce ranges on cputune variables (Peter Krempa)
- test: Return Libvirt logo as domain screenshot (Michal Privoznik)
- qemu: Allow migration over IPv6 (Ján Tomko)
- virsh: Add a helper to parse cpulist (Osier Yang)
Cleanups:
- qemu_command.c: Fix whitespacing within for() (Michal Privoznik)
- qemu: Fix the indention (Osier Yang)
- Sanitize whitespace in driver.h (Daniel P. Berrange)
- sheepdog: Omit braces with a single-line body (Harry Wei)
- storage: Fix the indention (Osier Yang)
- Remove extraneous comma in info_cpu_stats and opts_cpu_stats (John Ferlan)
Thanks to everybody who helped one way or another in producing this
release !
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
5
7
[libvirt] [PATCH] util: fix compile errors caused by moving string functions
by Laine Stump 02 May '13
by Laine Stump 02 May '13
02 May '13
commit 7c9a2d8 missed adding in a few #include "virstring.h"s, causing
builds to fail.
---
Pushed under the build-breaker rule.
src/locking/lock_driver_sanlock.c | 1 +
src/storage/storage_backend_rbd.c | 1 +
src/storage/storage_backend_sheepdog.c | 1 +
tests/storagebackendsheepdogtest.c | 1 +
4 files changed, 4 insertions(+)
diff --git a/src/locking/lock_driver_sanlock.c b/src/locking/lock_driver_sanlock.c
index 48c6d56..4b48868 100644
--- a/src/locking/lock_driver_sanlock.c
+++ b/src/locking/lock_driver_sanlock.c
@@ -43,6 +43,7 @@
#include "virfile.h"
#include "md5.h"
#include "virconf.h"
+#include "virstring.h"
#include "configmake.h"
diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index ca23d4b..99024e3 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -30,6 +30,7 @@
#include "virlog.h"
#include "base64.h"
#include "viruuid.h"
+#include "virstring.h"
#include "rados/librados.h"
#include "rbd/librbd.h"
diff --git a/src/storage/storage_backend_sheepdog.c b/src/storage/storage_backend_sheepdog.c
index dfa5673..a9ee7d3 100644
--- a/src/storage/storage_backend_sheepdog.c
+++ b/src/storage/storage_backend_sheepdog.c
@@ -32,6 +32,7 @@
#include "vircommand.h"
#include "viralloc.h"
#include "virlog.h"
+#include "virstring.h"
#define VIR_FROM_THIS VIR_FROM_STORAGE
diff --git a/tests/storagebackendsheepdogtest.c b/tests/storagebackendsheepdogtest.c
index 8800acb..9b43a6d 100644
--- a/tests/storagebackendsheepdogtest.c
+++ b/tests/storagebackendsheepdogtest.c
@@ -32,6 +32,7 @@
#include "internal.h"
#include "testutils.h"
#include "storage/storage_backend_sheepdog.h"
+#include "virstring.h"
typedef struct {
--
1.7.11.7
1
0