Compare commits

...

18 Commits
master ... f8

Author SHA1 Message Date
Fedora Release Engineering 1ce42c4afe dist-git conversion 2010-07-29 07:22:35 +00:00
Bill Nottingham cb1c60162d Fix typo that causes a failure to update the common directory. (releng #2781) 2009-11-26 01:55:07 +00:00
Daniel Veillard d24eeb1bfb - update to latest upstream release
daniel
2008-09-30 13:10:43 +00:00
Daniel P. Berrange 69c5ad5162 Fix CDROM boot for KVM guests (rhbz #452355) 2008-07-08 13:27:10 +00:00
Daniel P. Berrange e2d10000d0 Fix CDROM boot for KVM guests (rhbz #452355) 2008-07-08 13:27:10 +00:00
Daniel Veillard c9d228b690 - upstream release 0.4.4
- fixes a couple of bugs in previous release
Daniel
2008-06-25 09:29:06 +00:00
Daniel Veillard b36bd32f0e upstream release of 0.4.3, daniel 2008-06-13 10:08:27 +00:00
Daniel Veillard aa5b837480 upstream release 0.4.2, Daniel 2008-04-10 14:57:56 +00:00
Daniel P. Berrange 576c952d6c Pull in all bug fixes from rawhide 2008-04-04 15:52:04 +00:00
Daniel Veillard 6cba2d7c9e Forgot to bump the release, daniel 2008-03-11 10:29:48 +00:00
Daniel Veillard 824ac1932d Fix from danpb to fix the iptables startup error, Daniel 2008-03-11 10:28:30 +00:00
Daniel Veillard 2457ff7037 wrong release number, Daniel 2008-03-06 10:17:31 +00:00
Daniel Veillard d8ce9b00e6 Update to 0.4.1, Daniel 2008-03-06 09:52:14 +00:00
Daniel P. Berrange 5238691972 Fix remote SSH tunnelling bug 2008-01-17 15:21:08 +00:00
Daniel P. Berrange 49bd0fe0f6 Fix crash when no auth callback 2008-01-14 04:08:08 +00:00
Daniel P. Berrange f57c13f43b Fixed auth callback crash and config file reading 2008-01-02 21:47:05 +00:00
Daniel Veillard b4531a6202 Update to 0.4.0, remove old patches not needed anymore, Daniel 2007-12-18 11:02:18 +00:00
Jesse Keating 0685aa3535 Initialize branch F-8 for libvirt 2007-10-21 00:04:39 +00:00
9 changed files with 332 additions and 466 deletions

View File

View File

@ -4,7 +4,7 @@ NAME := libvirt
SPECFILE = $(firstword $(wildcard *.spec))
define find-makefile-common
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$d/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
endef
MAKEFILE_COMMON := $(shell $(find-makefile-common))

1
branch Normal file
View File

@ -0,0 +1 @@
F-8

View File

@ -1,207 +0,0 @@
changeset: 1147:7481eafdde8d
user: berrange
date: Fri Oct 12 18:54:15 2007 +0000
files: libvirt.spec.in qemud/Makefile.am qemud/libvirtd.conf src/Makefile.am src/qemu.conf
description:
Added default example configs for libvirtd/qemu driver
diff -r c48e81e685a3 -r 7481eafdde8d qemud/libvirtd.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qemud/libvirtd.conf Fri Oct 12 18:54:15 2007 +0000
@@ -0,0 +1,141 @@
+# Master libvirt daemon configuration file
+#
+# For further information consult http://libvirt.org/format.html
+
+
+# Flag listening for secure TLS connections on the public TCP/IP port.
+# NB, must pass the --listen flag to the libvirtd process for this to
+# have any effect.
+#
+# It is neccessary to setup a CA and issue server certificates before
+# using this capability.
+#
+# This is enabled by default, uncomment this to disable it
+# listen_tls = 0
+
+# Listen for unencrypted TCP connections on the public TCP/IP port.
+# NB, must pass the --listen flag to the libvirtd process for this to
+# have any effect.
+#
+# NB, this is insecure. Do not use except for development.
+#
+# This is disabled by default, uncomment this to enable it.
+# listen_tcp = 1
+
+
+
+# Override the port for accepting secure TLS connections
+# This can be a port number, or service name
+#
+# tls_port = "16514"
+
+# Override the port for accepting insecure TCP connections
+# This can be a port number, or service name
+#
+# tcp_port = "16509"
+
+
+
+# Flag toggling mDNS advertizement of the libvirt service.
+#
+# Alternatively can disable for all services on a host by
+# stopping the Avahi daemon
+#
+# This is enabled by default, uncomment this to disable it
+# mdns_adv = 0
+
+# Override the default mDNS advertizement name. This must be
+# unique on the immediate broadcast network.
+#
+# The default is "Virtualization Host HOSTNAME", where HOSTNAME
+# is subsituted for the short hostname of the machine (without domain)
+#
+# mdns_name "Virtualization Host Joe Demo"
+
+
+
+# Set the UNIX domain socket group ownership. This can be used to
+# allow a 'trusted' set of users access to management capabilities
+# without becoming root.
+#
+# This is restricted to 'root' by default.
+# unix_sock_group "libvirt"
+
+# Set the UNIX socket permissions for the R/O socket. This is used
+# for monitoring VM status only
+#
+# Default allows any user. If setting group ownership may want to
+# restrict this to:
+# unix_sock_ro_perms "0777"
+
+# Set the UNIX socket permissions for the R/W socket. This is used
+# for full management of VMs
+#
+# Default allows only root. If setting group ownership may want to
+# relax this to:
+# unix_sock_rw_perms "octal-perms" "0770"
+
+
+
+# Flag to disable verification of client certificates
+#
+# Client certificate verification is the primary authentication mechanism.
+# Any client which does not present a certificate signed by the CA
+# will be rejected.
+#
+# Default is to always verify. Uncommenting this will disable
+# verification - make sure an IP whitelist is set
+# tls_no_verify_certificate 1
+
+# Flag to disable verification of client IP address
+#
+# Client IP address will be verified against the CommonName field
+# of the x509 certificate. This has minimal security benefit since
+# it is easy to spoof source IP.
+#
+# Uncommenting this will disable verification
+# tls_no_verify_address 1
+
+# Override the default server key file path
+#
+# key_file "/etc/pki/libvirt/private/serverkey.pem"
+
+# Override the default server certificate file path
+#
+# cert_file "/etc/pki/libvirt/servercert.pem"
+
+# Override the default CA certificate path
+#
+# ca_file "/etc/pki/CA/cacert.pem"
+
+# Specify a certificate revocation list.
+#
+# Defaults to not using a CRL, uncomment to enable it
+# crl_file "/etc/pki/CA/crl.pem"
+
+# A whitelist of allowed x509 Distinguished Names
+# This list may contain wildcards such as
+#
+# "C=GB,ST=London,L=London,O=Red Hat,CN=*"
+#
+# See the POSIX fnmatch function for the format of the wildcards.
+#
+# NB If this is an empty list, no client can connect, so comment out
+# entirely rather than using empty list to disable these checks
+#
+# By default, no DN's are checked
+# tls_allowed_dn_list ["DN1", "DN2"]
+
+
+# A whitelist of allowed client IP addresses
+#
+# This list may contain wildcards such as 192.168.* See the POSIX fnmatch
+# function for the format of the wildcards.
+#
+# NB If this is an empty list, no client can connect, so comment out
+# entirely rather than using empty list to disable these checks
+#
+# By default, no IP's are checked. This can be IPv4 or IPv6 addresses
+# tls_allowed_ip_list ["ip1", "ip2", "ip3"]
+
+
diff -r c48e81e685a3 -r 7481eafdde8d src/qemu.conf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qemu.conf Fri Oct 12 18:54:15 2007 +0000
@@ -0,0 +1,49 @@
+# Master configuration file for the QEMU driver.
+# All settings described here are optional - if omitted, sensible
+# defaults are used.
+
+# VNC is configured to listen on 127.0.0.1 by default.
+# To make it listen on all public interfaces, uncomment
+# this next option.
+#
+# NB, strong recommendation to enable TLS + x509 certificate
+# verification when allowing public access
+#
+# vnc_listen = "0.0.0.0"
+
+
+# Enable use of TLS encryption on the VNC server. This requires
+# a VNC client which supports the VeNCrypt protocol extension.
+# Examples include vinagre, virt-viewer, virt-manager and vencrypt
+# itself. UltraVNC, RealVNC, TightVNC do not support this
+#
+# It is neccessary to setup CA and issue a server certificate
+# before enabling this.
+#
+# vnc_tls = 1
+
+
+# Use of TLS requires that x509 certificates be issued. The
+# default it to keep them in /etc/pki/libvirt-vnc. This directory
+# must contain
+#
+# ca-cert.pem - the CA master certificate
+# server-cert.pem - the server certificate signed with ca-cert.pem
+# server-key.pem - the server private key
+#
+# This option allows the certificate directory to be changed
+#
+# vnc_tls_x509_cert_dir = "/etc/pki/libvirt-vnc"
+
+
+# The default TLS configuration only uses certificates for the server
+# allowing the client to verify the server's identity and establish
+# and encrypted channel.
+#
+# It is possible to use x509 certificates for authentication too, by
+# issuing a x509 certificate to every client who needs to connect.
+#
+# Enabling this option will reject any client who does not have a
+# certificate signed by the CA in /etc/pki/libvirt-vnc/ca-cert.pem
+#
+# vnc_tls_x509_verify = 1

View File

@ -1,230 +0,0 @@
changeset: 1146:c48e81e685a3
user: berrange
date: Fri Oct 12 15:05:44 2007 +0000
files: ChangeLog src/qemu_conf.c src/qemu_conf.h src/qemu_driver.c
description:
Added QEMU driver config file
diff -r 522efe7f7e8f -r c48e81e685a3 src/qemu_conf.c
--- a/src/qemu_conf.c Wed Oct 10 18:46:17 2007 +0000
+++ b/src/qemu_conf.c Fri Oct 12 15:05:44 2007 +0000
@@ -45,6 +45,7 @@
#include "qemu_conf.h"
#include "uuid.h"
#include "buf.h"
+#include "conf.h"
#define qemudLog(level, msg...) fprintf(stderr, msg)
@@ -65,6 +66,68 @@ void qemudReportError(virConnectPtr conn
__virRaiseError(conn, dom, net, VIR_FROM_QEMU, code, VIR_ERR_ERROR,
NULL, NULL, NULL, -1, -1, errorMessage);
}
+
+int qemudLoadDriverConfig(struct qemud_driver *driver,
+ const char *filename) {
+ virConfPtr conf;
+ virConfValuePtr p;
+
+ /* Setup 2 critical defaults */
+ strcpy(driver->vncListen, "127.0.0.1");
+ if (!(driver->vncTLSx509certdir = strdup(SYSCONF_DIR "/pki/libvirt-vnc"))) {
+ qemudReportError(NULL, NULL, NULL, VIR_ERR_NO_MEMORY,
+ "vncTLSx509certdir");
+ return -1;
+ }
+
+ /* Just check the file is readable before opening it, otherwise
+ * libvirt emits an error.
+ */
+ if (access (filename, R_OK) == -1) return 0;
+
+ conf = virConfReadFile (filename);
+ if (!conf) return 0;
+
+
+#define CHECK_TYPE(name,typ) if (p && p->type != (typ)) { \
+ qemudReportError(NULL, NULL, NULL, VIR_ERR_INTERNAL_ERROR, \
+ "remoteReadConfigFile: %s: %s: expected type " #typ "\n", \
+ filename, (name)); \
+ virConfFree(conf); \
+ return -1; \
+ }
+
+ p = virConfGetValue (conf, "vnc_tls");
+ CHECK_TYPE ("vnc_tls", VIR_CONF_LONG);
+ if (p) driver->vncTLS = p->l;
+
+ p = virConfGetValue (conf, "vnc_tls_x509_verify");
+ CHECK_TYPE ("vnc_tls_x509_verify", VIR_CONF_LONG);
+ if (p) driver->vncTLSx509verify = p->l;
+
+ p = virConfGetValue (conf, "vnc_tls_x509_cert_dir");
+ CHECK_TYPE ("vnc_tls_x509_cert_dir", VIR_CONF_STRING);
+ if (p && p->str) {
+ free(driver->vncTLSx509certdir);
+ if (!(driver->vncTLSx509certdir = strdup(p->str))) {
+ qemudReportError(NULL, NULL, NULL, VIR_ERR_NO_MEMORY,
+ "vncTLSx509certdir");
+ virConfFree(conf);
+ return -1;
+ }
+ }
+
+ p = virConfGetValue (conf, "vnc_listen");
+ CHECK_TYPE ("vnc_listen", VIR_CONF_STRING);
+ if (p && p->str) {
+ strncpy(driver->vncListen, p->str, sizeof(driver->vncListen));
+ driver->vncListen[sizeof(driver->vncListen)-1] = '\0';
+ }
+
+ virConfFree (conf);
+ return 0;
+}
+
struct qemud_vm *qemudFindVMByID(const struct qemud_driver *driver, int id) {
struct qemud_vm *vm = driver->vms;
@@ -1234,7 +1297,7 @@ static struct qemud_vm_def *qemudParseXM
if (vnclisten && *vnclisten)
strncpy(def->vncListen, (char *)vnclisten, BR_INET_ADDR_MAXLEN-1);
else
- strcpy(def->vncListen, "127.0.0.1");
+ strcpy(def->vncListen, driver->vncListen);
def->vncListen[BR_INET_ADDR_MAXLEN-1] = '\0';
xmlFree(vncport);
xmlFree(vnclisten);
@@ -1750,15 +1813,30 @@ int qemudBuildCommandLine(virConnectPtr
}
if (vm->def->graphicsType == QEMUD_GRAPHICS_VNC) {
- char vncdisplay[BR_INET_ADDR_MAXLEN+20];
+ char vncdisplay[PATH_MAX];
int ret;
- if (vm->qemuCmdFlags & QEMUD_CMD_FLAG_VNC_COLON)
- ret = snprintf(vncdisplay, sizeof(vncdisplay), "%s:%d",
+
+ if (vm->qemuCmdFlags & QEMUD_CMD_FLAG_VNC_COLON) {
+ char options[PATH_MAX] = "";
+ if (driver->vncTLS) {
+ strcat(options, ",tls");
+ if (driver->vncTLSx509verify) {
+ strcat(options, ",x509verify=");
+ } else {
+ strcat(options, ",x509=");
+ }
+ strncat(options, driver->vncTLSx509certdir,
+ sizeof(options) - (strlen(driver->vncTLSx509certdir)-1));
+ options[sizeof(options)-1] = '\0';
+ }
+ ret = snprintf(vncdisplay, sizeof(vncdisplay), "%s:%d%s",
vm->def->vncListen,
- vm->def->vncActivePort - 5900);
- else
+ vm->def->vncActivePort - 5900,
+ options);
+ } else {
ret = snprintf(vncdisplay, sizeof(vncdisplay), "%d",
vm->def->vncActivePort - 5900);
+ }
if (ret < 0 || ret >= (int)sizeof(vncdisplay))
goto error;
diff -r 522efe7f7e8f -r c48e81e685a3 src/qemu_conf.h
--- a/src/qemu_conf.h Wed Oct 10 18:46:17 2007 +0000
+++ b/src/qemu_conf.h Fri Oct 12 15:05:44 2007 +0000
@@ -289,6 +289,10 @@ struct qemud_driver {
char *networkConfigDir;
char *networkAutostartDir;
char logDir[PATH_MAX];
+ int vncTLS : 1;
+ int vncTLSx509verify : 1;
+ char *vncTLSx509certdir;
+ char vncListen[BR_INET_ADDR_MAXLEN];
};
@@ -311,6 +315,8 @@ void qemudReportError(virConnectPtr conn
ATTRIBUTE_FORMAT(printf,5,6);
+int qemudLoadDriverConfig(struct qemud_driver *driver,
+ const char *filename);
struct qemud_vm *qemudFindVMByID(const struct qemud_driver *driver,
int id);
diff -r 522efe7f7e8f -r c48e81e685a3 src/qemu_driver.c
--- a/src/qemu_driver.c Wed Oct 10 18:46:17 2007 +0000
+++ b/src/qemu_driver.c Fri Oct 12 15:05:44 2007 +0000
@@ -155,6 +155,7 @@ qemudStartup(void) {
uid_t uid = geteuid();
struct passwd *pw;
char *base = NULL;
+ char driverConf[PATH_MAX];
if (!(qemu_driver = calloc(1, sizeof(struct qemud_driver)))) {
return -1;
@@ -167,7 +168,7 @@ qemudStartup(void) {
if (snprintf(qemu_driver->logDir, PATH_MAX, "%s/log/libvirt/qemu", LOCAL_STATE_DIR) >= PATH_MAX)
goto snprintf_error;
- if ((base = strdup (SYSCONF_DIR "/libvirt/qemu")) == NULL)
+ if ((base = strdup (SYSCONF_DIR "/libvirt")) == NULL)
goto out_of_memory;
} else {
if (!(pw = getpwuid(uid))) {
@@ -179,7 +180,7 @@ qemudStartup(void) {
if (snprintf(qemu_driver->logDir, PATH_MAX, "%s/.libvirt/qemu/log", pw->pw_dir) >= PATH_MAX)
goto snprintf_error;
- if (asprintf (&base, "%s/.libvirt/qemu", pw->pw_dir) == -1) {
+ if (asprintf (&base, "%s/.libvirt", pw->pw_dir) == -1) {
qemudLog (QEMUD_ERR, "out of memory in asprintf");
goto out_of_memory;
}
@@ -188,24 +189,36 @@ qemudStartup(void) {
/* Configuration paths are either ~/.libvirt/qemu/... (session) or
* /etc/libvirt/qemu/... (system).
*/
- if (asprintf (&qemu_driver->configDir, "%s", base) == -1)
+ if (snprintf (driverConf, sizeof(driverConf), "%s/qemu.conf", base) == -1)
goto out_of_memory;
-
- if (asprintf (&qemu_driver->autostartDir, "%s/autostart", base) == -1)
+ driverConf[sizeof(driverConf)-1] = '\0';
+
+ if (asprintf (&qemu_driver->configDir, "%s/qemu", base) == -1)
goto out_of_memory;
- if (asprintf (&qemu_driver->networkConfigDir, "%s/networks", base) == -1)
+ if (asprintf (&qemu_driver->autostartDir, "%s/qemu/autostart", base) == -1)
goto out_of_memory;
- if (asprintf (&qemu_driver->networkAutostartDir, "%s/networks/autostart",
+ if (asprintf (&qemu_driver->networkConfigDir, "%s/qemu/networks", base) == -1)
+ goto out_of_memory;
+
+ if (asprintf (&qemu_driver->networkAutostartDir, "%s/qemu/networks/autostart",
base) == -1)
goto out_of_memory;
- if (qemudScanConfigs(qemu_driver) < 0)
+ free(base);
+
+ if (qemudLoadDriverConfig(qemu_driver, driverConf) < 0) {
qemudShutdown();
+ return -1;
+ }
+
+ if (qemudScanConfigs(qemu_driver) < 0) {
+ qemudShutdown();
+ return -1;
+ }
qemudAutostartConfigs(qemu_driver);
- free(base);
return 0;
snprintf_error:

View File

@ -0,0 +1,99 @@
diff -rupN libvirt-0.4.4.orig/src/qemu_conf.c libvirt-0.4.4.new/src/qemu_conf.c
--- libvirt-0.4.4.orig/src/qemu_conf.c 2008-06-19 14:15:02.000000000 +0100
+++ libvirt-0.4.4.new/src/qemu_conf.c 2008-07-08 12:24:07.000000000 +0100
@@ -2616,7 +2616,8 @@ int qemudBuildCommandLine(virConnectPtr
disk->src, qemudBusIdToName(disk->bus, 1),
media ? media : "",
idx,
- bootable ? ",boot=on" : "");
+ bootable && disk->device == QEMUD_DISK_DISK
+ ? ",boot=on" : "");
ADD_ARG_LIT("-drive");
ADD_ARG_LIT(opt);
diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args
--- libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args 1970-01-01 01:00:00.000000000 +0100
+++ libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.args 2008-07-08 12:25:59.000000000 +0100
@@ -0,0 +1 @@
+/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot d -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0 -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb
\ No newline at end of file
diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
--- libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml 1970-01-01 01:00:00.000000000 +0100
+++ libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml 2008-07-08 12:20:42.000000000 +0100
@@ -0,0 +1,26 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory>219200</memory>
+ <currentMemory>219200</currentMemory>
+ <vcpu>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='cdrom'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu</emulator>
+ <disk type='block' device='disk'>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ </disk>
+ <disk type='block' device='cdrom'>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdc' bus='ide'/>
+ </disk>
+ </devices>
+</domain>
diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args
--- libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args 1970-01-01 01:00:00.000000000 +0100
+++ libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.args 2008-07-08 12:13:15.000000000 +0100
@@ -0,0 +1 @@
+/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb
\ No newline at end of file
diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
--- libvirt-0.4.4.orig/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml 1970-01-01 01:00:00.000000000 +0100
+++ libvirt-0.4.4.new/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml 2008-07-08 12:12:41.000000000 +0100
@@ -0,0 +1,26 @@
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory>219200</memory>
+ <currentMemory>219200</currentMemory>
+ <vcpu>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu</emulator>
+ <disk type='block' device='disk'>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ </disk>
+ <disk type='block' device='cdrom'>
+ <source dev='/dev/HostVG/QEMUGuest2'/>
+ <target dev='hdc' bus='ide'/>
+ </disk>
+ </devices>
+</domain>
diff -rupN libvirt-0.4.4.orig/tests/qemuxml2argvtest.c libvirt-0.4.4.new/tests/qemuxml2argvtest.c
--- libvirt-0.4.4.orig/tests/qemuxml2argvtest.c 2008-06-02 10:16:46.000000000 +0100
+++ libvirt-0.4.4.new/tests/qemuxml2argvtest.c 2008-07-08 12:21:53.000000000 +0100
@@ -158,6 +158,10 @@ mymain(int argc, char **argv)
QEMUD_CMD_FLAG_DRIVE_BOOT);
DO_TEST("disk-xenvbd", QEMUD_CMD_FLAG_DRIVE |
QEMUD_CMD_FLAG_DRIVE_BOOT);
+ DO_TEST("disk-drive-boot-disk", QEMUD_CMD_FLAG_DRIVE |
+ QEMUD_CMD_FLAG_DRIVE_BOOT);
+ DO_TEST("disk-drive-boot-cdrom", QEMUD_CMD_FLAG_DRIVE |
+ QEMUD_CMD_FLAG_DRIVE_BOOT);
DO_TEST("graphics-vnc", 0);
DO_TEST("graphics-sdl", 0);
DO_TEST("input-usbmouse", 0);

View File

@ -1,17 +1,41 @@
# -*- rpm-spec -*-
%define with_xen 1
%define with_xen_proxy 1
%define with_qemu 1
%define with_openvz 1
%define with_lxc 1
%define with_polkit 0
# Xen is available only on i386 x86_64 ia64
%ifnarch i386 i686 x86_64 ia64
%define with_xen 0
%endif
%if ! %{with_xen}
%define with_xen_proxy 0
%endif
%if "%{fedora}"
%ifarch ppc64
%define with_qemu 0
%endif
%endif
%if 0%{fedora} >= 8
%define with_polkit 1
%define with_xen_proxy 0
%endif
Summary: Library providing a simple API virtualization
Name: libvirt
Version: 0.3.3
Release: 2%{?dist}%{?extra_release}
License: LGPL
Version: 0.4.6
Release: 1%{?dist}%{?extra_release}
License: LGPLv2+
Group: Development/Libraries
Source: libvirt-%{version}.tar.gz
Patch1: %{name}-%{version}-qemu-config.patch
# NB, when removing this patch on next release, also remove the manual
# config file copy in the install section of this spec file
Patch2: %{name}-%{version}-example-config.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-root
Patch0: python_make.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
URL: http://libvirt.org/
BuildRequires: python python-devel
Requires: libxml2
@ -20,25 +44,80 @@ Requires: ncurses
Requires: dnsmasq
Requires: bridge-utils
Requires: iptables
%ifarch i386 x86_64 ia64
# So remote clients can access libvirt over SSH tunnel
# (client invokes 'nc' against the UNIX socket on the server)
Requires: nc
Requires: cyrus-sasl
# Not technically required, but makes 'out-of-box' config
# work correctly & doesn't have onerous dependencies
Requires: cyrus-sasl-md5
%if %{with_polkit}
Requires: PolicyKit >= 0.6
%endif
# For mount/umount in FS driver
BuildRequires: util-linux
# For showmount in FS driver (netfs discovery)
BuildRequires: nfs-utils
Requires: nfs-utils
%if %{with_qemu}
# From QEMU RPMs
Requires: /usr/bin/qemu-img
%else
%if %{with_xen}
# From Xen RPMs
Requires: /usr/sbin/qcow-create
%endif
%endif
# For LVM drivers
Requires: lvm2
# For ISCSI driver
Requires: iscsi-initiator-utils
# For disk driver
Requires: parted
%if %{with_xen}
BuildRequires: xen-devel
%endif
BuildRequires: libxml2-devel
BuildRequires: xhtml1-dtds
BuildRequires: readline-devel
BuildRequires: ncurses-devel
BuildRequires: gettext
BuildRequires: gnutls-devel
BuildRequires: avahi-devel
BuildRequires: libselinux-devel
BuildRequires: dnsmasq
BuildRequires: bridge-utils
%if %{with_qemu}
BuildRequires: qemu
%endif
BuildRequires: cyrus-sasl-devel
%if %{with_polkit}
BuildRequires: PolicyKit-devel >= 0.6
%endif
# For mount/umount in FS driver
BuildRequires: util-linux
%if %{with_qemu}
# From QEMU RPMs
BuildRequires: /usr/bin/qemu-img
%else
%if %{with_xen}
# From Xen RPMs
BuildRequires: /usr/sbin/qcow-create
%endif
%endif
# For LVM drivers
BuildRequires: lvm2
# For ISCSI driver
BuildRequires: iscsi-initiator-utils
# For disk driver
BuildRequires: parted-devel
Obsoletes: libvir
# Fedora build root suckage
BuildRequires: gawk
%description
Libvirt is a C toolkit to interract with the virtualization capabilities
Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes).
%package devel
@ -46,10 +125,9 @@ Summary: Libraries, includes, etc. to compile with the libvirt library
Group: Development/Libraries
Requires: libvirt = %{version}
Requires: pkgconfig
%ifarch i386 x86_64 ia64
%if %{with_xen}
Requires: xen-devel
%endif
Requires: gnutls-devel
Obsoletes: libvir-devel
%description devel
@ -65,23 +143,38 @@ Obsoletes: libvir-python
%description python
The libvirt-python package contains a module that permits applications
written in the Python programming language to use the interface
supplied by the libvirt library to use the the virtualization capabilities
supplied by the libvirt library to use the virtualization capabilities
of recent versions of Linux (and other OSes).
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch0 -p0
%build
# Xen is availble only on i386 x86_64 ia64
%ifarch i386 i686 x86_64 ia64
%configure --with-init-script=redhat --with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid --with-remote-file=%{_localstatedir}/run/libvirtd.pid
%else
%configure --without-xen --with-init-script=redhat --with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid --with-remote-file=%{_localstatedir}/run/libvirtd.pid
%if ! %{with_xen}
%define _without_xen --without-xen
%endif
make
%if ! %{with_qemu}
%define _without_qemu --without-qemu
%endif
%if ! %{with_openvz}
%define _without_openvz --without-openvz
%endif
%if ! %{with_lxc}
%define _without_lxc --without-lxc
%endif
%configure %{?_without_xen} \
%{?_without_qemu} \
%{?_without_openvz} \
%{?_without_lxc} \
--with-init-script=redhat \
--with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid \
--with-remote-file=%{_localstatedir}/run/libvirtd.pid
make %{?_smp_mflags}
%install
rm -fr %{buildroot}
@ -94,11 +187,10 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la
rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a
install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/run/libvirt/
# Copy files from patch2 into location
install -d $RPM_BUILD_ROOT%{_sysconfdir}/libvirt
install -m 0755 src/qemu.conf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
install -m 0755 qemud/libvirtd.conf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/libvirtd.conf
# Default dir for disk images defined in SELinux policy
install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/lib/libvirt/images/
# Default dir for kernel+initrd images defnied in SELinux policy
install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/lib/libvirt/boot/
# We don't want to install /etc/libvirt/qemu/networks in the main %files list
# because if the admin wants to delete the default network completely, we don't
@ -157,13 +249,29 @@ fi
%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
%config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
%dir %{_datadir}/libvirt/
%dir %{_datadir}/libvirt/networks/
%{_datadir}/libvirt/networks/default.xml
%dir %{_localstatedir}/run/libvirt/
%dir %{_localstatedir}/lib/libvirt/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/images/
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/boot/
%{_datadir}/augeas/lenses/libvirtd.aug
%{_datadir}/augeas/lenses/libvirtd_qemu.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd.aug
%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
%if %{with_polkit}
%{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
%endif
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
%if %{with_xen_proxy}
%attr(4755, root, root) %{_libexecdir}/libvirt_proxy
%endif
%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
%if %{with_lxc}
%attr(0755, root, root) %{_libexecdir}/libvirt_lxc
%endif
%attr(0755, root, root) %{_sbindir}/libvirtd
%doc docs/*.rng
%doc docs/*.xml
@ -196,6 +304,66 @@ fi
%doc docs/examples/python
%changelog
* Tue Sep 30 2008 Daniel Veillard <veillard@redhat.com> - 0.4.6-1.f8
- update to latest upstream release
* Tue Jul 8 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.4-2.fc8
- Fix booting of CDROM images with KVM (rhbz #452355)
* Thu Jun 25 2008 Daniel Veillard <veillard@redhat.com> - 0.4.4-1.fc8
- upstream release 0.4.4
- fixes a couple of bugs in previous release
* Thu Jun 12 2008 Daniel Veillard <veillard@redhat.com> - 0.4.3-1.fc8
- upstream release 0.4.3
- many bug fixes
- many small improvements
* Tue Apr 8 2008 Daniel Veillard <veillard@redhat.com> 0.4.2-1.fc8
- upstream release 0.4.2
- many bug fixes
- localization updates
* Thu Apr 4 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.1-3.fc8
- Don't run polkit-auth as root
- Don't request polkit auth if client is root
- When dumping XML for a storage pool, make the <source> directory tag
match the <dir> tag used for specifying the pool in the first place
- Do iscsiadm sendtarget before trying to do login
- Do sysfs scanning for iSCSI LUNs instead of trying to parse them from
iscsiadm session output
- Fix QEMU tap device setup
- Fix Xen boot device XML processing
- Fixed QEMU cdrom media change
* Tue Mar 11 2008 Daniel Veillard <veillard@redhat.com> - 0.4.1-2.fc8
- Fixed daemon startup when run with --daemon flag
* Thu Mar 6 2008 Daniel Veillard <veillard@redhat.com> - 0.4.1-1.fc8
- Update to 0.4.1
- Storage APIs
- xenner support
- lots of assorted improvements, bugfixes and cleanups
- documentation and localization improvements
* Thu Jan 17 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.0-4.fc8
- Fix SSH tunnelling (rhbz #428743)
* Sun Jan 13 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.0-3.fc8
- Fix crash when no auth callback
* Wed Jan 2 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.0-2.fc8
- Fix reading large config files (rhbz #426425)
- Fix crash when connecting to a PolicyKit enabled server with not auth callback (rhbz #427107)
* Tue Dec 18 2007 Daniel Veillard <veillard@redhat.com> - 0.4.0-1.fc8
- Release of 0.4.0
- SASL based authentication
- PolicyKit authentication
- improved NUMA and statistics support
- lots of assorted improvements, bugfixes and cleanups
- documentation and localization improvements
* Mon Oct 15 2007 Daniel P. Berrange <berrange@redhat.com> - 0.3.3-2.fc8
- Added QEMU driver config file support
- Added example config files

35
python_make.patch Normal file
View File

@ -0,0 +1,35 @@
Index: python/Makefile.am
===================================================================
RCS file: /data/cvs/libxen/python/Makefile.am,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile.am
--- python/Makefile.am 5 Feb 2008 19:27:37 -0000 1.13
+++ python/Makefile.am 24 Sep 2008 13:21:06 -0000
@@ -50,7 +50,7 @@ GENERATED= libvirt-export.c \
$(GENERATED): $(srcdir)/$(GENERATE) $(API_DESC)
$(PYTHON) $(srcdir)/$(GENERATE) $(srcdir)
-libvirt.py: $(srcdir)/libvir.py libvirtclass.py
+libvirt.py: $(srcdir)/libvir.py $(GENERATED)
cat $(srcdir)/libvir.py libvirtclass.py > $@-t
mv $@-t $@
*** python/Makefile.in.orig 2008-09-24 15:19:20.000000000 +0200
--- python/Makefile.in 2008-09-24 15:20:07.000000000 +0200
*************** uninstall-am: uninstall-local uninstall-
*** 1027,1033 ****
@WITH_PYTHON_TRUE@$(GENERATED): $(srcdir)/$(GENERATE) $(API_DESC)
@WITH_PYTHON_TRUE@ $(PYTHON) $(srcdir)/$(GENERATE) $(srcdir)
! @WITH_PYTHON_TRUE@libvirt.py: $(srcdir)/libvir.py libvirtclass.py
@WITH_PYTHON_TRUE@ cat $(srcdir)/libvir.py libvirtclass.py > $@-t
@WITH_PYTHON_TRUE@ mv $@-t $@
--- 1027,1033 ----
@WITH_PYTHON_TRUE@$(GENERATED): $(srcdir)/$(GENERATE) $(API_DESC)
@WITH_PYTHON_TRUE@ $(PYTHON) $(srcdir)/$(GENERATE) $(srcdir)
! @WITH_PYTHON_TRUE@libvirt.py: $(srcdir)/libvir.py $(GENERATED)
@WITH_PYTHON_TRUE@ cat $(srcdir)/libvir.py libvirtclass.py > $@-t
@WITH_PYTHON_TRUE@ mv $@-t $@

View File

@ -1 +1 @@
583fa13938df63bd404cc1b7cf553874 libvirt-0.3.3.tar.gz
abdf727deaffd868172f7243eb75ffe3 libvirt-0.4.6.tar.gz