Compare commits
26 Commits
libvirt-0_
...
F-10-split
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2a3935580c | ||
|
|
28f7f11450 | ||
|
|
ca07bc4597 | ||
|
|
8e23194a2b | ||
|
|
fe09090e2d | ||
|
|
b5868cf8cf | ||
|
|
f294b40ba5 | ||
|
|
c0c1a7bb79 | ||
|
|
1b864048bd | ||
|
|
072c9c45ab | ||
|
|
af111679c3 | ||
|
|
dd9f21eaa2 | ||
|
|
f0e356df98 | ||
|
|
140bcf9ffc | ||
|
|
af69660412 | ||
|
|
6dc94c6252 | ||
|
|
eb34165670 | ||
|
|
7ce08f2148 | ||
|
|
049a8c79d9 | ||
|
|
f7a6d90012 | ||
|
|
67a2f29a89 | ||
|
|
82422fa1ff | ||
|
|
a73cf1d010 | ||
|
|
481419ebb6 | ||
|
|
1e65165c3a | ||
|
|
bca27d9111 |
@@ -3,3 +3,4 @@
|
|||||||
i686
|
i686
|
||||||
x86_64
|
x86_64
|
||||||
libvirt-*.tar.gz
|
libvirt-*.tar.gz
|
||||||
|
libvirt-0.4.6.tar.gz
|
||||||
|
|||||||
@@ -1,48 +0,0 @@
|
|||||||
diff -rup libvirt-0.4.1.orig/qemud/qemud.c libvirt-0.4.1.new/qemud/qemud.c
|
|
||||||
--- libvirt-0.4.1.orig/qemud/qemud.c 2008-03-10 17:31:09.000000000 -0400
|
|
||||||
+++ libvirt-0.4.1.new/qemud/qemud.c 2008-03-10 17:31:36.000000000 -0400
|
|
||||||
@@ -393,7 +393,7 @@ static int qemudGoDaemon(void) {
|
|
||||||
case -1:
|
|
||||||
return -1;
|
|
||||||
default:
|
|
||||||
- return nextpid;
|
|
||||||
+ _exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
@@ -418,8 +418,7 @@ static int qemudGoDaemon(void) {
|
|
||||||
status != 0) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
- return pid;
|
|
||||||
+ _exit(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2116,16 +2115,12 @@ int main(int argc, char **argv) {
|
|
||||||
goto error1;
|
|
||||||
|
|
||||||
if (godaemon) {
|
|
||||||
- int pid;
|
|
||||||
openlog("libvirtd", 0, 0);
|
|
||||||
- pid = qemudGoDaemon();
|
|
||||||
- if (pid < 0) {
|
|
||||||
+ if (qemudGoDaemon() < 0) {
|
|
||||||
qemudLog(QEMUD_ERR, _("Failed to fork as daemon: %s"),
|
|
||||||
strerror(errno));
|
|
||||||
goto error1;
|
|
||||||
}
|
|
||||||
- if (pid > 0)
|
|
||||||
- goto out;
|
|
||||||
|
|
||||||
/* Choose the name of the PID file. */
|
|
||||||
if (!pid_file) {
|
|
||||||
@@ -2172,7 +2167,6 @@ int main(int argc, char **argv) {
|
|
||||||
if (godaemon)
|
|
||||||
closelog();
|
|
||||||
|
|
||||||
- out:
|
|
||||||
ret = 0;
|
|
||||||
|
|
||||||
error2:
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
commit 570fd656d1b67e5d02f52e107946930257e811a7
|
|
||||||
Author: Daniel Veillard <veillard@redhat.com>
|
|
||||||
Date: Thu Mar 13 09:17:45 2008 +0000
|
|
||||||
|
|
||||||
* src/qemu_conf.c src/qemu_driver.c: patch from Cole Robinson
|
|
||||||
fixing CD Rom change on live QEmu/KVM domains.
|
|
||||||
Daniel
|
|
||||||
|
|
||||||
diff --git a/src/qemu_conf.c b/src/qemu_conf.c
|
|
||||||
index e54da5b..ebbd251 100644
|
|
||||||
--- a/src/qemu_conf.c
|
|
||||||
+++ b/src/qemu_conf.c
|
|
||||||
@@ -594,9 +594,16 @@ static int qemudParseDiskXML(virConnectPtr conn,
|
|
||||||
}
|
|
||||||
|
|
||||||
if (source == NULL) {
|
|
||||||
- qemudReportError(conn, NULL, NULL, VIR_ERR_NO_SOURCE, target ? "%s" : NULL, target);
|
|
||||||
- goto error;
|
|
||||||
+ /* There is a case without the source
|
|
||||||
+ * to the CD-ROM device
|
|
||||||
+ */
|
|
||||||
+ if (!device || STRNEQ((const char *) device, "cdrom")) {
|
|
||||||
+ qemudReportError(conn, NULL, NULL, VIR_ERR_NO_SOURCE,
|
|
||||||
+ target ? "%s" : NULL, target);
|
|
||||||
+ goto error;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
+
|
|
||||||
if (target == NULL) {
|
|
||||||
qemudReportError(conn, NULL, NULL, VIR_ERR_NO_TARGET, source ? "%s" : NULL, source);
|
|
||||||
goto error;
|
|
||||||
@@ -630,7 +637,7 @@ static int qemudParseDiskXML(virConnectPtr conn,
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
- strncpy(disk->src, (const char *)source, NAME_MAX-1);
|
|
||||||
+ strncpy(disk->src, (source ? (const char *) source : "\0"), NAME_MAX-1);
|
|
||||||
disk->src[NAME_MAX-1] = '\0';
|
|
||||||
|
|
||||||
strncpy(disk->dst, (const char *)target, NAME_MAX-1);
|
|
||||||
@@ -1747,9 +1754,15 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|
||||||
char dev[NAME_MAX];
|
|
||||||
char file[PATH_MAX];
|
|
||||||
if (!strcmp(disk->dst, "hdc") &&
|
|
||||||
- disk->device == QEMUD_DISK_CDROM)
|
|
||||||
- snprintf(dev, NAME_MAX, "-%s", "cdrom");
|
|
||||||
- else
|
|
||||||
+ disk->device == QEMUD_DISK_CDROM) {
|
|
||||||
+ if (disk->src[0])
|
|
||||||
+ snprintf(dev, NAME_MAX, "-%s", "cdrom");
|
|
||||||
+ else {
|
|
||||||
+ /* Don't put anything on the cmdline for an empty cdrom*/
|
|
||||||
+ disk = disk->next;
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+ } else
|
|
||||||
snprintf(dev, NAME_MAX, "-%s", disk->dst);
|
|
||||||
snprintf(file, PATH_MAX, "%s", disk->src);
|
|
||||||
|
|
||||||
@@ -2906,8 +2919,10 @@ char *qemudGenerateXML(virConnectPtr conn,
|
|
||||||
types[disk->type], devices[disk->device]) < 0)
|
|
||||||
goto no_memory;
|
|
||||||
|
|
||||||
- if (virBufferVSprintf(buf, " <source %s='%s'/>\n", typeAttrs[disk->type], disk->src) < 0)
|
|
||||||
- goto no_memory;
|
|
||||||
+ if (disk->src[0])
|
|
||||||
+ if (virBufferVSprintf(buf, " <source %s='%s'/>\n",
|
|
||||||
+ typeAttrs[disk->type], disk->src) < 0)
|
|
||||||
+ goto no_memory;
|
|
||||||
|
|
||||||
if (virBufferVSprintf(buf, " <target dev='%s'/>\n", disk->dst) < 0)
|
|
||||||
goto no_memory;
|
|
||||||
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
|
|
||||||
index 21f0fed..2b4c2a6 100644
|
|
||||||
--- a/src/qemu_driver.c
|
|
||||||
+++ b/src/qemu_driver.c
|
|
||||||
@@ -2223,23 +2223,29 @@ static int qemudDomainChangeCDROM(virDomainPtr dom,
|
|
||||||
struct qemud_driver *driver = (struct qemud_driver *)dom->conn->privateData;
|
|
||||||
char *cmd, *reply, *safe_path;
|
|
||||||
|
|
||||||
- /* Migrate to file */
|
|
||||||
- safe_path = qemudEscapeMonitorArg(newdisk->src);
|
|
||||||
- if (!safe_path) {
|
|
||||||
- qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
|
|
||||||
- "out of memory");
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
- if (asprintf (&cmd, "change %s \"%s\"",
|
|
||||||
- /* XXX qemu may support multiple CDROM in future */
|
|
||||||
- /* olddisk->dst */ "cdrom",
|
|
||||||
- safe_path) == -1) {
|
|
||||||
+ if (newdisk->src[0]) {
|
|
||||||
+ safe_path = qemudEscapeMonitorArg(newdisk->src);
|
|
||||||
+ if (!safe_path) {
|
|
||||||
+ qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
|
|
||||||
+ "out of memory");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ if (asprintf (&cmd, "change %s \"%s\"",
|
|
||||||
+ /* XXX qemu may support multiple CDROM in future */
|
|
||||||
+ /* olddisk->dst */ "cdrom",
|
|
||||||
+ safe_path) == -1) {
|
|
||||||
+ qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
|
|
||||||
+ "out of memory");
|
|
||||||
+ free(safe_path);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ free(safe_path);
|
|
||||||
+
|
|
||||||
+ } else if (asprintf(&cmd, "eject cdrom") == -1) {
|
|
||||||
qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED,
|
|
||||||
"out of memory");
|
|
||||||
- free(safe_path);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
- free(safe_path);
|
|
||||||
|
|
||||||
if (qemudMonitorCommand(driver, vm, cmd, &reply) < 0) {
|
|
||||||
qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED, "cannot change cdrom media");
|
|
||||||
@@ -2248,7 +2254,7 @@ static int qemudDomainChangeCDROM(virDomainPtr dom,
|
|
||||||
}
|
|
||||||
free(reply);
|
|
||||||
free(cmd);
|
|
||||||
- strcpy(olddisk->dst, newdisk->dst);
|
|
||||||
+ strcpy(olddisk->src, newdisk->src);
|
|
||||||
olddisk->type = newdisk->type;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
|
|
||||||
Avoid segfault upon early libvirtd failure.
|
|
||||||
* qemud/qemud.c (main): Don't call qemudCleanup on an
|
|
||||||
uninitialized pointer.
|
|
||||||
|
|
||||||
By the way, even though this evoked a warning from gcc,
|
|
||||||
"make distcheck" passes. Obviously, that means the distcheck
|
|
||||||
rule is inadequate. I'll fix it so that it turns on -Werror
|
|
||||||
for the final build.
|
|
||||||
|
|
||||||
Signed-off-by: Jim Meyering <meyering@redhat.com>
|
|
||||||
---
|
|
||||||
qemud/qemud.c | 5 +++--
|
|
||||||
1 files changed, 3 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/qemud/qemud.c b/qemud/qemud.c
|
|
||||||
index 96fdf32..b6b82ed 100644
|
|
||||||
--- a/qemud/qemud.c
|
|
||||||
+++ b/qemud/qemud.c
|
|
||||||
@@ -2025,7 +2025,7 @@ libvirt management daemon:\n\
|
|
||||||
|
|
||||||
#define MAX_LISTEN 5
|
|
||||||
int main(int argc, char **argv) {
|
|
||||||
- struct qemud_server *server;
|
|
||||||
+ struct qemud_server *server = NULL;
|
|
||||||
struct sigaction sig_action;
|
|
||||||
int sigpipe[2];
|
|
||||||
const char *pid_file = NULL;
|
|
||||||
@@ -2180,7 +2180,8 @@ int main(int argc, char **argv) {
|
|
||||||
unlink (pid_file);
|
|
||||||
|
|
||||||
error1:
|
|
||||||
- qemudCleanup(server);
|
|
||||||
+ if (server)
|
|
||||||
+ qemudCleanup(server);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
|
|
||||||
Don't use first byte of string as a pointer.
|
|
||||||
* src/qemu_conf.c (qemudReportError): Use the pointer, errorMessage,
|
|
||||||
not its first byte, errorMessage[0].
|
|
||||||
|
|
||||||
Signed-off-by: Jim Meyering <meyering@redhat.com>
|
|
||||||
---
|
|
||||||
src/qemu_conf.c | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/qemu_conf.c b/src/qemu_conf.c
|
|
||||||
index eead0bc..e54da5b 100644
|
|
||||||
--- a/src/qemu_conf.c
|
|
||||||
+++ b/src/qemu_conf.c
|
|
||||||
@@ -68,7 +68,7 @@ void qemudReportError(virConnectPtr conn,
|
|
||||||
errorMessage[0] = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
- virerr = __virErrorMsg(code, (errorMessage[0] ? errorMessage[0] : NULL));
|
|
||||||
+ virerr = __virErrorMsg(code, (errorMessage[0] ? errorMessage : NULL));
|
|
||||||
__virRaiseError(conn, dom, net, VIR_FROM_QEMU, code, VIR_ERR_ERROR,
|
|
||||||
virerr, errorMessage, NULL, -1, -1, virerr, errorMessage);
|
|
||||||
}
|
|
||||||
@@ -1,63 +0,0 @@
|
|||||||
diff -rupN libvirt-0.4.1.orig/src/bridge.c libvirt-0.4.1.new/src/bridge.c
|
|
||||||
--- libvirt-0.4.1.orig/src/bridge.c 2008-02-28 06:16:21.000000000 -0500
|
|
||||||
+++ libvirt-0.4.1.new/src/bridge.c 2008-03-13 11:25:12.000000000 -0400
|
|
||||||
@@ -313,7 +313,6 @@ brDeleteInterface(brControl *ctl ATTRIBU
|
|
||||||
int
|
|
||||||
brAddTap(brControl *ctl,
|
|
||||||
const char *bridge,
|
|
||||||
- unsigned char *macaddr,
|
|
||||||
char *ifname,
|
|
||||||
int maxlen,
|
|
||||||
int *tapfd)
|
|
||||||
@@ -357,18 +356,6 @@ brAddTap(brControl *ctl,
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ioctl(fd, TUNSETIFF, &try) == 0) {
|
|
||||||
- struct ifreq addr;
|
|
||||||
- memset(&addr, 0, sizeof(addr));
|
|
||||||
- memcpy(addr.ifr_hwaddr.sa_data, macaddr, 6);
|
|
||||||
- addr.ifr_hwaddr.sa_family = ARPHRD_ETHER;
|
|
||||||
-
|
|
||||||
- /* Device actually starts in 'UP' state, but it
|
|
||||||
- * needs to be down to set the MAC addr
|
|
||||||
- */
|
|
||||||
- if ((errno = brSetInterfaceUp(ctl, try.ifr_name, 0)))
|
|
||||||
- goto error;
|
|
||||||
- if (ioctl(fd, SIOCSIFHWADDR, &addr) != 0)
|
|
||||||
- goto error;
|
|
||||||
if ((errno = brAddInterface(ctl, bridge, try.ifr_name)))
|
|
||||||
goto error;
|
|
||||||
if ((errno = brSetInterfaceUp(ctl, try.ifr_name, 1)))
|
|
||||||
diff -rupN libvirt-0.4.1.orig/src/bridge.h libvirt-0.4.1.new/src/bridge.h
|
|
||||||
--- libvirt-0.4.1.orig/src/bridge.h 2008-02-28 06:16:21.000000000 -0500
|
|
||||||
+++ libvirt-0.4.1.new/src/bridge.h 2008-03-13 11:25:12.000000000 -0400
|
|
||||||
@@ -62,7 +62,6 @@ int brDeleteInterface (brContr
|
|
||||||
|
|
||||||
int brAddTap (brControl *ctl,
|
|
||||||
const char *bridge,
|
|
||||||
- unsigned char *mac,
|
|
||||||
char *ifname,
|
|
||||||
int maxlen,
|
|
||||||
int *tapfd);
|
|
||||||
diff -rupN libvirt-0.4.1.orig/src/qemu_conf.c libvirt-0.4.1.new/src/qemu_conf.c
|
|
||||||
--- libvirt-0.4.1.orig/src/qemu_conf.c 2008-03-13 11:24:39.000000000 -0400
|
|
||||||
+++ libvirt-0.4.1.new/src/qemu_conf.c 2008-03-13 11:25:12.000000000 -0400
|
|
||||||
@@ -1540,7 +1540,6 @@ qemudNetworkIfaceConnect(virConnectPtr c
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((err = brAddTap(driver->brctl, brname,
|
|
||||||
- net->mac,
|
|
||||||
ifname, BR_IFNAME_MAXLEN, &tapfd))) {
|
|
||||||
qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
|
|
||||||
"Failed to add tap interface '%s' to bridge '%s' : %s",
|
|
||||||
@@ -1548,7 +1547,9 @@ qemudNetworkIfaceConnect(virConnectPtr c
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
- snprintf(tapfdstr, sizeof(tapfdstr), "tap,fd=%d,script=,vlan=%d", tapfd, vlan);
|
|
||||||
+ snprintf(tapfdstr, sizeof(tapfdstr),
|
|
||||||
+ "tap,fd=%d,script=,vlan=%d,ifname=%s",
|
|
||||||
+ tapfd, vlan, ifname);
|
|
||||||
|
|
||||||
if (!(retval = strdup(tapfdstr)))
|
|
||||||
goto no_memory;
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
commit 2bcf35336cd649e58c08d7cf3452a8d4353bcf85
|
|
||||||
Author: Daniel Veillard <veillard@redhat.com>
|
|
||||||
Date: Fri Mar 7 09:23:30 2008 +0000
|
|
||||||
|
|
||||||
* src/xend_internal.c: applied patch from Cole Robinson to not
|
|
||||||
loose the boot tag when defining a fully virtualized xen domain
|
|
||||||
Daniel
|
|
||||||
|
|
||||||
diff --git a/src/xend_internal.c b/src/xend_internal.c
|
|
||||||
index 8bbc28f..fef54f8 100644
|
|
||||||
--- a/src/xend_internal.c
|
|
||||||
+++ b/src/xend_internal.c
|
|
||||||
@@ -1323,7 +1323,7 @@ xend_parse_sexp_desc_os(virConnectPtr xend, struct sexpr *node, virBufferPtr buf
|
|
||||||
if (hvm)
|
|
||||||
virBufferVSprintf(buf, " <loader>%s</loader>\n", loader);
|
|
||||||
|
|
||||||
- if (kernel) {
|
|
||||||
+ if ((kernel) && ((!loader) || (STRNEQ(kernel, loader)))) {
|
|
||||||
virBufferVSprintf(buf, " <kernel>%s</kernel>\n", kernel);
|
|
||||||
if (initrd && initrd[0])
|
|
||||||
virBufferVSprintf(buf, " <initrd>%s</initrd>\n", initrd);
|
|
||||||
@@ -1,146 +0,0 @@
|
|||||||
--- a/src/storage_backend_iscsi.c 4 Mar 2008 20:02:34 -0000 1.3
|
|
||||||
+++ b/src/storage_backend_iscsi.c 26 Mar 2008 22:07:05 -0000
|
|
||||||
@@ -170,20 +170,91 @@
|
|
||||||
virStorageBackendISCSIMakeLUN(virConnectPtr conn,
|
|
||||||
virStoragePoolObjPtr pool,
|
|
||||||
char **const groups,
|
|
||||||
- void *data ATTRIBUTE_UNUSED)
|
|
||||||
+ void *data)
|
|
||||||
{
|
|
||||||
virStorageVolDefPtr vol;
|
|
||||||
int fd = -1;
|
|
||||||
+ unsigned int target, channel, id, lun;
|
|
||||||
char lunid[100];
|
|
||||||
- char *dev = groups[4];
|
|
||||||
int opentries = 0;
|
|
||||||
char *devpath = NULL;
|
|
||||||
+ char *session = data;
|
|
||||||
+ char sysfs_path[PATH_MAX];
|
|
||||||
+ char *dev = NULL;
|
|
||||||
+ DIR *sysdir;
|
|
||||||
+ struct dirent *block_dirent;
|
|
||||||
+ struct stat sbuf;
|
|
||||||
+ int len;
|
|
||||||
+
|
|
||||||
+ if ((virStrToLong_ui(groups[0], NULL, 10, &target) < 0) ||
|
|
||||||
+ (virStrToLong_ui(groups[1], NULL, 10, &channel) < 0) ||
|
|
||||||
+ (virStrToLong_ui(groups[2], NULL, 10, &id) < 0) ||
|
|
||||||
+ (virStrToLong_ui(groups[3], NULL, 10, &lun) < 0)) {
|
|
||||||
+ virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR, "%s",
|
|
||||||
+ _("Failed parsing iscsiadm commands"));
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (lun == 0) {
|
|
||||||
+ /* the 0'th LUN isn't a real LUN, it's just a control LUN; skip it */
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ snprintf(sysfs_path, PATH_MAX,
|
|
||||||
+ "/sys/class/iscsi_session/session%s/device/"
|
|
||||||
+ "target%d:%d:%d/%d:%d:%d:%d/block",
|
|
||||||
+ session, target, channel, id, target, channel, id, lun);
|
|
||||||
+
|
|
||||||
+ if (stat(sysfs_path, &sbuf) < 0) {
|
|
||||||
+ /* block path in subdir didn't exist; this is unexpected, so fail */
|
|
||||||
+ virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
|
|
||||||
+ _("Failed to find the sysfs path for %d:%d:%d:%d: %s"),
|
|
||||||
+ target, channel, id, lun, strerror(errno));
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ sysdir = opendir(sysfs_path);
|
|
||||||
+ if (sysdir == NULL) {
|
|
||||||
+ /* we failed for some reason; return an error */
|
|
||||||
+ virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
|
|
||||||
+ _("Failed to opendir sysfs path %s: %s"),
|
|
||||||
+ sysfs_path, strerror(errno));
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ while ((block_dirent = readdir(sysdir)) != NULL) {
|
|
||||||
+ len = strlen(block_dirent->d_name);
|
|
||||||
+ if ((len == 1 && block_dirent->d_name[0] == '.') ||
|
|
||||||
+ (len == 2 && block_dirent->d_name[0] == '.' && block_dirent->d_name[1] == '.')) {
|
|
||||||
+ /* the . and .. directories; just skip them */
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* OK, not . or ..; let's see if it is a SCSI device */
|
|
||||||
+ if (len > 2 &&
|
|
||||||
+ block_dirent->d_name[0] == 's' &&
|
|
||||||
+ block_dirent->d_name[1] == 'd') {
|
|
||||||
+ /* looks like a scsi device, smells like scsi device; it must be
|
|
||||||
+ a scsi device */
|
|
||||||
+ dev = strdup(block_dirent->d_name);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ closedir(sysdir);
|
|
||||||
+
|
|
||||||
+ if (dev == NULL) {
|
|
||||||
+ /* we didn't find the sd? device we were looking for; fail */
|
|
||||||
+ virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
|
|
||||||
+ _("Failed to find SCSI device for %d:%d:%d:%d: %s"),
|
|
||||||
+ target, channel, id, lun, strerror(errno));
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
snprintf(lunid, sizeof(lunid)-1, "lun-%s", groups[3]);
|
|
||||||
|
|
||||||
if ((vol = calloc(1, sizeof(virStorageVolDef))) == NULL) {
|
|
||||||
virStorageReportError(conn, VIR_ERR_NO_MEMORY, "%s", _("volume"));
|
|
||||||
- return -1;
|
|
||||||
+ goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((vol->name = strdup(lunid)) == NULL) {
|
|
||||||
@@ -197,6 +268,8 @@
|
|
||||||
}
|
|
||||||
strcpy(devpath, "/dev/");
|
|
||||||
strcat(devpath, dev);
|
|
||||||
+ free(dev);
|
|
||||||
+ dev = NULL;
|
|
||||||
/* It can take a little while between logging into the ISCSI
|
|
||||||
* server and udev creating the /dev nodes, so if we get ENOENT
|
|
||||||
* we must retry a few times - they should eventually appear.
|
|
||||||
@@ -258,6 +331,7 @@
|
|
||||||
if (fd != -1) close(fd);
|
|
||||||
free(devpath);
|
|
||||||
virStorageVolDefFree(vol);
|
|
||||||
+ free(dev);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -281,14 +355,13 @@
|
|
||||||
* scsi1 Channel 00 Id 0 Lun: 5
|
|
||||||
* Attached scsi disk sdg State: running
|
|
||||||
*
|
|
||||||
- * Need 2 regex to match alternating lines
|
|
||||||
+ * Need a regex to match the Channel:Id:Lun lines
|
|
||||||
*/
|
|
||||||
const char *regexes[] = {
|
|
||||||
- "^\\s*scsi(\\S+)\\s+Channel\\s+(\\S+)\\s+Id\\s+(\\S+)\\s+Lun:\\s+(\\S+)\\s*$",
|
|
||||||
- "^\\s*Attached\\s+scsi\\s+disk\\s+(\\S+)\\s+State:\\s+running\\s*$"
|
|
||||||
+ "^\\s*scsi(\\S+)\\s+Channel\\s+(\\S+)\\s+Id\\s+(\\S+)\\s+Lun:\\s+(\\S+)\\s*$"
|
|
||||||
};
|
|
||||||
int vars[] = {
|
|
||||||
- 4, 1
|
|
||||||
+ 4
|
|
||||||
};
|
|
||||||
const char *prog[] = {
|
|
||||||
ISCSIADM, "--mode", "session", "-r", session, "-P", "3", NULL,
|
|
||||||
@@ -296,11 +369,11 @@
|
|
||||||
|
|
||||||
return virStorageBackendRunProgRegex(conn, pool,
|
|
||||||
prog,
|
|
||||||
- 2,
|
|
||||||
+ 1,
|
|
||||||
regexes,
|
|
||||||
vars,
|
|
||||||
virStorageBackendISCSIMakeLUN,
|
|
||||||
- NULL);
|
|
||||||
+ (void *)session);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
--- /home/boston/clalance/devel/libvirt--devel/src/storage_backend_iscsi.c 2008-02-13 13:48:32.497466000 -0500
|
|
||||||
+++ libvirt-0.4.0/src/storage_backend_iscsi.c 2008-02-11 17:19:35.000000000 -0500
|
|
||||||
@@ -143,6 +143,14 @@ static int virStorageBackendISCSIConnect
|
|
||||||
"--targetname", pool->def->source.devices[0].path, action, NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
+ const char *cmdsendtarget[] = {
|
|
||||||
+ ISCSIADM, "--mode", "discovery", "--type", "sendtargets",
|
|
||||||
+ "--portal", portal, NULL
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ if (virRun(conn, (char **)cmdsendtarget, NULL) < 0)
|
|
||||||
+ return -1;
|
|
||||||
+
|
|
||||||
if (virRun(conn, (char **)cmdargv, NULL) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
280
libvirt.spec
280
libvirt.spec
@@ -1,39 +1,45 @@
|
|||||||
# -*- rpm-spec -*-
|
# -*- rpm-spec -*-
|
||||||
|
|
||||||
%if "%{fedora}" >= "8"
|
%define with_xen 0%{!?_without_xen:1}
|
||||||
%define with_polkit 1
|
%define with_xen_proxy 0%{!?_without_xen_proxy:1}
|
||||||
%define with_proxy no
|
%define with_qemu 0%{!?_without_qemu:1}
|
||||||
%else
|
%define with_openvz 0%{!?_without_openvz:1}
|
||||||
%define with_polkit 0
|
%define with_lxc 0%{!?_without_lxc:1}
|
||||||
%define with_proxy yes
|
%define with_sasl 0%{!?_without_sasl:1}
|
||||||
|
%define with_avahi 0%{!?_without_avahi:1}
|
||||||
|
%define with_polkit 0%{!?_without_polkit:0}
|
||||||
|
%define with_python 0%{!?_without_python:1}
|
||||||
|
%define with_libvirtd 0%{!?_without_libvirtd:1}
|
||||||
|
|
||||||
|
# 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
|
%endif
|
||||||
|
|
||||||
%if "%{fedora}"
|
%if "%{fedora}"
|
||||||
%ifarch ppc64
|
%ifarch ppc64
|
||||||
%define with_qemu 0
|
%define with_qemu 0
|
||||||
%else
|
|
||||||
%define with_qemu 1
|
|
||||||
%endif
|
%endif
|
||||||
%else
|
%endif
|
||||||
%define with_qemu 0
|
|
||||||
|
%if 0%{?fedora} >= 8
|
||||||
|
%define with_polkit 0%{!?_without_polkit:1}
|
||||||
|
%define with_xen_proxy 0
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Summary: Library providing a simple API virtualization
|
Summary: Library providing a simple API virtualization
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 0.4.1
|
Version: 0.4.6
|
||||||
Release: 5%{?dist}%{?extra_release}
|
Release: 3%{?dist}%{?extra_release}
|
||||||
License: LGPL
|
License: LGPLv2+
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
Source: libvirt-%{version}.tar.gz
|
Source: libvirt-%{version}.tar.gz
|
||||||
Patch0: libvirt-0.4.1-qemud1.patch
|
Patch0: python_make.patch
|
||||||
Patch1: libvirt-0.4.1-qemud2.patch
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
Patch2: %{name}-%{version}-daemon-startup.patch
|
|
||||||
Patch3: %{name}-%{version}-qemu-media-change.patch
|
|
||||||
Patch4: %{name}-%{version}-xen-boot-device.patch
|
|
||||||
Patch5: %{name}-%{version}-tap-ifname.patch
|
|
||||||
Patch6: libvirt-storage-api-iscsi-sendtarget.patch
|
|
||||||
Patch7: libvirt-iscsi-sysfs4.patch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
|
||||||
URL: http://libvirt.org/
|
URL: http://libvirt.org/
|
||||||
BuildRequires: python python-devel
|
BuildRequires: python python-devel
|
||||||
Requires: libxml2
|
Requires: libxml2
|
||||||
@@ -45,21 +51,25 @@ Requires: iptables
|
|||||||
# So remote clients can access libvirt over SSH tunnel
|
# So remote clients can access libvirt over SSH tunnel
|
||||||
# (client invokes 'nc' against the UNIX socket on the server)
|
# (client invokes 'nc' against the UNIX socket on the server)
|
||||||
Requires: nc
|
Requires: nc
|
||||||
|
%if %{with_sasl}
|
||||||
Requires: cyrus-sasl
|
Requires: cyrus-sasl
|
||||||
# Not technically required, but makes 'out-of-box' config
|
# Not technically required, but makes 'out-of-box' config
|
||||||
# work correctly & doesn't have onerous dependencies
|
# work correctly & doesn't have onerous dependencies
|
||||||
Requires: cyrus-sasl-md5
|
Requires: cyrus-sasl-md5
|
||||||
|
%endif
|
||||||
%if %{with_polkit}
|
%if %{with_polkit}
|
||||||
Requires: PolicyKit >= 0.6
|
Requires: PolicyKit >= 0.6
|
||||||
%endif
|
%endif
|
||||||
# For mount/umount in FS driver
|
# For mount/umount in FS driver
|
||||||
BuildRequires: util-linux
|
BuildRequires: util-linux
|
||||||
# PPC64 has no Xen nor QEmu, try to build anyway
|
# For showmount in FS driver (netfs discovery)
|
||||||
%ifnarch ppc64
|
BuildRequires: nfs-utils
|
||||||
|
Requires: nfs-utils
|
||||||
%if %{with_qemu}
|
%if %{with_qemu}
|
||||||
# From QEMU RPMs
|
# From QEMU RPMs
|
||||||
Requires: /usr/bin/qemu-img
|
Requires: /usr/bin/qemu-img
|
||||||
%else
|
%else
|
||||||
|
%if %{with_xen}
|
||||||
# From Xen RPMs
|
# From Xen RPMs
|
||||||
Requires: /usr/sbin/qcow-create
|
Requires: /usr/sbin/qcow-create
|
||||||
%endif
|
%endif
|
||||||
@@ -70,33 +80,37 @@ Requires: lvm2
|
|||||||
Requires: iscsi-initiator-utils
|
Requires: iscsi-initiator-utils
|
||||||
# For disk driver
|
# For disk driver
|
||||||
Requires: parted
|
Requires: parted
|
||||||
%ifarch i386 x86_64 ia64
|
%if %{with_xen}
|
||||||
BuildRequires: xen-devel
|
BuildRequires: xen-devel
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: libxml2-devel
|
BuildRequires: libxml2-devel
|
||||||
|
BuildRequires: xhtml1-dtds
|
||||||
BuildRequires: readline-devel
|
BuildRequires: readline-devel
|
||||||
BuildRequires: ncurses-devel
|
BuildRequires: ncurses-devel
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
BuildRequires: gnutls-devel
|
BuildRequires: gnutls-devel
|
||||||
|
%if %{with_avahi}
|
||||||
BuildRequires: avahi-devel
|
BuildRequires: avahi-devel
|
||||||
|
%endif
|
||||||
BuildRequires: libselinux-devel
|
BuildRequires: libselinux-devel
|
||||||
BuildRequires: dnsmasq
|
BuildRequires: dnsmasq
|
||||||
BuildRequires: bridge-utils
|
BuildRequires: bridge-utils
|
||||||
%if %{with_qemu}
|
%if %{with_qemu}
|
||||||
BuildRequires: qemu
|
BuildRequires: qemu
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with_sasl}
|
||||||
BuildRequires: cyrus-sasl-devel
|
BuildRequires: cyrus-sasl-devel
|
||||||
|
%endif
|
||||||
%if %{with_polkit}
|
%if %{with_polkit}
|
||||||
BuildRequires: PolicyKit-devel >= 0.6
|
BuildRequires: PolicyKit-devel >= 0.6
|
||||||
%endif
|
%endif
|
||||||
# For mount/umount in FS driver
|
# For mount/umount in FS driver
|
||||||
BuildRequires: util-linux
|
BuildRequires: util-linux
|
||||||
# PPC64 has no Xen nor QEmu, try to build anyway
|
|
||||||
%ifnarch ppc64
|
|
||||||
%if %{with_qemu}
|
%if %{with_qemu}
|
||||||
# From QEMU RPMs
|
# From QEMU RPMs
|
||||||
BuildRequires: /usr/bin/qemu-img
|
BuildRequires: /usr/bin/qemu-img
|
||||||
%else
|
%else
|
||||||
|
%if %{with_xen}
|
||||||
# From Xen RPMs
|
# From Xen RPMs
|
||||||
BuildRequires: /usr/sbin/qcow-create
|
BuildRequires: /usr/sbin/qcow-create
|
||||||
%endif
|
%endif
|
||||||
@@ -121,7 +135,7 @@ Summary: Libraries, includes, etc. to compile with the libvirt library
|
|||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
Requires: libvirt = %{version}
|
Requires: libvirt = %{version}
|
||||||
Requires: pkgconfig
|
Requires: pkgconfig
|
||||||
%ifarch i386 x86_64 ia64
|
%if %{with_xen}
|
||||||
Requires: xen-devel
|
Requires: xen-devel
|
||||||
%endif
|
%endif
|
||||||
Obsoletes: libvir-devel
|
Obsoletes: libvir-devel
|
||||||
@@ -130,6 +144,7 @@ Obsoletes: libvir-devel
|
|||||||
Includes and documentations for the C library providing an API to use
|
Includes and documentations for the C library providing an API to use
|
||||||
the virtualization capabilities of recent versions of Linux (and other OSes).
|
the virtualization capabilities of recent versions of Linux (and other OSes).
|
||||||
|
|
||||||
|
%if %{with_python}
|
||||||
%package python
|
%package python
|
||||||
Summary: Python bindings for the libvirt library
|
Summary: Python bindings for the libvirt library
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
@@ -141,41 +156,62 @@ The libvirt-python package contains a module that permits applications
|
|||||||
written in the Python programming language to use the interface
|
written in the Python programming language to use the interface
|
||||||
supplied by the libvirt library to use the virtualization capabilities
|
supplied by the libvirt library to use the virtualization capabilities
|
||||||
of recent versions of Linux (and other OSes).
|
of recent versions of Linux (and other OSes).
|
||||||
|
%endif
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
%patch0 -p0
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
%patch5 -p1
|
|
||||||
%patch6 -p1
|
|
||||||
%patch7 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# Xen is available only on i386 x86_64 ia64
|
%if ! %{with_xen}
|
||||||
%ifarch i386 i686 x86_64 ia64
|
%define _without_xen --without-xen
|
||||||
%configure --with-init-script=redhat \
|
|
||||||
--with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid \
|
|
||||||
--with-remote-file=%{_localstatedir}/run/libvirtd.pid \
|
|
||||||
--with-xen-proxy=%{with_proxy}
|
|
||||||
%else
|
|
||||||
%ifnarch ppc64
|
|
||||||
%configure --without-xen \
|
|
||||||
--with-init-script=redhat \
|
|
||||||
--with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid \
|
|
||||||
--with-remote-file=%{_localstatedir}/run/libvirtd.pid
|
|
||||||
%else
|
|
||||||
%configure --without-xen \
|
|
||||||
--without-qemu \
|
|
||||||
--with-init-script=redhat \
|
|
||||||
--with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid \
|
|
||||||
--with-remote-file=%{_localstatedir}/run/libvirtd.pid
|
|
||||||
%endif
|
|
||||||
%endif
|
%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
|
||||||
|
|
||||||
|
%if ! %{with_sasl}
|
||||||
|
%define _without_sasl --without-sasl
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if ! %{with_avahi}
|
||||||
|
%define _without_avahi --without-avahi
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if ! %{with_polkit}
|
||||||
|
%define _without_polkit --without-polkit
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if ! %{with_python}
|
||||||
|
%define _without_python --without-python
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if ! %{with_libvirtd}
|
||||||
|
%define _without_libvirtd --without-libvirtd
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%configure %{?_without_xen} \
|
||||||
|
%{?_without_qemu} \
|
||||||
|
%{?_without_openvz} \
|
||||||
|
%{?_without_lxc} \
|
||||||
|
%{?_without_sasl} \
|
||||||
|
%{?_without_avahi} \
|
||||||
|
%{?_without_polkit} \
|
||||||
|
%{?_without_python} \
|
||||||
|
%{?_without_libvirtd} \
|
||||||
|
--with-init-script=redhat \
|
||||||
|
--with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid \
|
||||||
|
--with-remote-file=%{_localstatedir}/run/libvirtd.pid
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -fr %{buildroot}
|
rm -fr %{buildroot}
|
||||||
@@ -190,7 +226,10 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.a
|
|||||||
install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/run/libvirt/
|
install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/run/libvirt/
|
||||||
# Default dir for disk images defined in SELinux policy
|
# Default dir for disk images defined in SELinux policy
|
||||||
install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/lib/libvirt/images/
|
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/
|
||||||
|
|
||||||
|
%if %{with_qemu}
|
||||||
# We don't want to install /etc/libvirt/qemu/networks in the main %files list
|
# 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
|
# because if the admin wants to delete the default network completely, we don't
|
||||||
# want to end up re-incarnating it on every RPM upgrade.
|
# want to end up re-incarnating it on every RPM upgrade.
|
||||||
@@ -201,14 +240,30 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
|
|||||||
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
|
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
|
||||||
# Strip auto-generated UUID - we need it generated per-install
|
# Strip auto-generated UUID - we need it generated per-install
|
||||||
sed -i -e "/<uuid>/d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
|
sed -i -e "/<uuid>/d" $RPM_BUILD_ROOT%{_datadir}/libvirt/networks/default.xml
|
||||||
|
%else
|
||||||
|
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/default.xml
|
||||||
|
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
|
||||||
|
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/libvirtd_qemu.aug
|
||||||
|
rm -f $RPM_BUILD_ROOT%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
|
||||||
|
%endif
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
|
|
||||||
|
%if ! %{with_python}
|
||||||
|
rm -rf $RPM_BUILD_ROOT%{_datadir}/doc/libvirt-python-%{version}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if ! %{with_qemu}
|
||||||
|
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/libvirt/qemu.conf
|
||||||
|
%endif
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
rm -fr %{buildroot}
|
rm -fr %{buildroot}
|
||||||
|
|
||||||
%post
|
%post
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
|
|
||||||
|
%if %{with_libvirtd}
|
||||||
|
%if %{with_qemu}
|
||||||
# We want to install the default network for initial RPM installs
|
# We want to install the default network for initial RPM installs
|
||||||
# or on the first upgrade from a non-network aware libvirt only.
|
# or on the first upgrade from a non-network aware libvirt only.
|
||||||
# We check this by looking to see if the daemon is already installed
|
# We check this by looking to see if the daemon is already installed
|
||||||
@@ -221,14 +276,18 @@ then
|
|||||||
> %{_sysconfdir}/libvirt/qemu/networks/default.xml
|
> %{_sysconfdir}/libvirt/qemu/networks/default.xml
|
||||||
ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
|
ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml
|
||||||
fi
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
/sbin/chkconfig --add libvirtd
|
/sbin/chkconfig --add libvirtd
|
||||||
|
%endif
|
||||||
|
|
||||||
%preun
|
%preun
|
||||||
|
%if %{with_libvirtd}
|
||||||
if [ $1 = 0 ]; then
|
if [ $1 = 0 ]; then
|
||||||
/sbin/service libvirtd stop 1>/dev/null 2>&1
|
/sbin/service libvirtd stop 1>/dev/null 2>&1
|
||||||
/sbin/chkconfig --del libvirtd
|
/sbin/chkconfig --del libvirtd
|
||||||
fi
|
fi
|
||||||
|
%endif
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
/sbin/ldconfig
|
/sbin/ldconfig
|
||||||
@@ -241,29 +300,69 @@ fi
|
|||||||
%{_bindir}/virsh
|
%{_bindir}/virsh
|
||||||
%{_libdir}/lib*.so.*
|
%{_libdir}/lib*.so.*
|
||||||
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
|
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/
|
||||||
|
|
||||||
|
%if %{with_qemu}
|
||||||
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
|
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/
|
||||||
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
|
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/
|
||||||
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
|
%dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_libvirtd}
|
||||||
%{_sysconfdir}/rc.d/init.d/libvirtd
|
%{_sysconfdir}/rc.d/init.d/libvirtd
|
||||||
%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
|
%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd
|
||||||
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
|
%config(noreplace) %{_sysconfdir}/libvirt/libvirtd.conf
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_qemu}
|
||||||
%config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
|
%config(noreplace) %{_sysconfdir}/libvirt/qemu.conf
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_sasl}
|
||||||
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
|
%config(noreplace) %{_sysconfdir}/sasl2/libvirt.conf
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_qemu}
|
||||||
%dir %{_datadir}/libvirt/
|
%dir %{_datadir}/libvirt/
|
||||||
%dir %{_datadir}/libvirt/networks/
|
%dir %{_datadir}/libvirt/networks/
|
||||||
%{_datadir}/libvirt/networks/default.xml
|
%{_datadir}/libvirt/networks/default.xml
|
||||||
|
%endif
|
||||||
|
|
||||||
%dir %{_localstatedir}/run/libvirt/
|
%dir %{_localstatedir}/run/libvirt/
|
||||||
%dir %{_localstatedir}/lib/libvirt/
|
%dir %{_localstatedir}/lib/libvirt/
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/images/
|
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/images/
|
||||||
%if %{with_polkit}
|
%dir %attr(0700, root, root) %{_localstatedir}/lib/libvirt/boot/
|
||||||
%{_datadir}/PolicyKit/policy/libvirtd.policy
|
|
||||||
|
%if %{with_qemu}
|
||||||
|
%{_datadir}/augeas/lenses/libvirtd_qemu.aug
|
||||||
|
%{_datadir}/augeas/lenses/tests/test_libvirtd_qemu.aug
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %{with_libvirtd}
|
||||||
|
%{_datadir}/augeas/lenses/libvirtd.aug
|
||||||
|
%{_datadir}/augeas/lenses/tests/test_libvirtd.aug
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_polkit}
|
||||||
|
%{_datadir}/PolicyKit/policy/org.libvirt.unix.policy
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_qemu}
|
||||||
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
|
%dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/
|
||||||
%if %{with_proxy} == "yes"
|
%endif
|
||||||
|
|
||||||
|
%if %{with_xen_proxy}
|
||||||
%attr(4755, root, root) %{_libexecdir}/libvirt_proxy
|
%attr(4755, root, root) %{_libexecdir}/libvirt_proxy
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %{with_lxc}
|
||||||
|
%attr(0755, root, root) %{_libexecdir}/libvirt_lxc
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if %{with_libvirtd}
|
||||||
%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
|
%attr(0755, root, root) %{_libexecdir}/libvirt_parthelper
|
||||||
%attr(0755, root, root) %{_sbindir}/libvirtd
|
%attr(0755, root, root) %{_sbindir}/libvirtd
|
||||||
|
%endif
|
||||||
|
|
||||||
%doc docs/*.rng
|
%doc docs/*.rng
|
||||||
%doc docs/*.xml
|
%doc docs/*.xml
|
||||||
|
|
||||||
@@ -283,6 +382,7 @@ fi
|
|||||||
%doc docs/examples
|
%doc docs/examples
|
||||||
%doc docs/libvirt-api.xml
|
%doc docs/libvirt-api.xml
|
||||||
|
|
||||||
|
%if %{with_python}
|
||||||
%files python
|
%files python
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
|
|
||||||
@@ -293,8 +393,70 @@ fi
|
|||||||
%doc python/TODO
|
%doc python/TODO
|
||||||
%doc python/libvirtclass.txt
|
%doc python/libvirtclass.txt
|
||||||
%doc docs/examples/python
|
%doc docs/examples/python
|
||||||
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 24 2008 Daniel Veillard <veillard@redhat.com> - 0.4.6-3.fc10
|
||||||
|
- apply the python makefile patch for #463733
|
||||||
|
|
||||||
|
* Wed Sep 24 2008 Daniel Veillard <veillard@redhat.com> - 0.4.6-2.fc10
|
||||||
|
- upstream release 0.4.6
|
||||||
|
- fixes some problems with 0.4.5
|
||||||
|
|
||||||
|
* Tue Sep 9 2008 Daniel Veillard <veillard@redhat.com> - 0.4.5-2.fc10
|
||||||
|
- fix a crash if a QEmu/KVM domain is defined without an emulator path
|
||||||
|
|
||||||
|
* Mon Sep 8 2008 Daniel Veillard <veillard@redhat.com> - 0.4.5-1.fc10
|
||||||
|
- upstream release 0.4.5
|
||||||
|
- a lot of bug fixes
|
||||||
|
- major updates to QEmu/KVM and Linux containers drivers
|
||||||
|
- support for OpenVZ if installed
|
||||||
|
|
||||||
|
* Thu Aug 7 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 0.4.4-3.fc10
|
||||||
|
- fix license tag
|
||||||
|
|
||||||
|
* Tue Jul 8 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.4-2.fc10
|
||||||
|
- Fix booting of CDROM images with KVM (rhbz #452355)
|
||||||
|
|
||||||
|
* Wed Jun 25 2008 Daniel Veillard <veillard@redhat.com> - 0.4.4-1.fc10
|
||||||
|
- upstream release 0.4.4
|
||||||
|
- fix a few bugs in previous release
|
||||||
|
|
||||||
|
* Thu Jun 12 2008 Daniel Veillard <veillard@redhat.com> - 0.4.3-1.fc10
|
||||||
|
- upstream release 0.4.3
|
||||||
|
- many bug fixes
|
||||||
|
- many small improvements
|
||||||
|
- serious xenner fixes
|
||||||
|
|
||||||
|
* Wed Jun 4 2008 Mark McLoughlin <markmc@redhat.com> - 0.4.2-6.fc10
|
||||||
|
- Disable lokkit support again (#449996, #447633)
|
||||||
|
- Ensure %{fedora} is evaluated correctly
|
||||||
|
|
||||||
|
* Thu May 15 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-5.fc10
|
||||||
|
- Rebuild with policy enabled (rhbz #446616)
|
||||||
|
|
||||||
|
* Fri May 9 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.2-4.fc10
|
||||||
|
- Added directory for initrd/kernel images for SELinux policy
|
||||||
|
|
||||||
|
* Mon Apr 28 2008 Mark McLoughlin <markmc@redhat.com> - 0.4.2-3.fc10
|
||||||
|
- Simplify the way arch conditionals are handled
|
||||||
|
|
||||||
|
* Mon Apr 28 2008 Mark McLoughlin <markmc@redhat.com> - 0.4.2-2.fc10
|
||||||
|
- Enable lokkit support (#443796)
|
||||||
|
|
||||||
|
* Tue Apr 8 2008 Daniel Veillard <veillard@redhat.com> - 0.4.2-1.fc9
|
||||||
|
- upstream release 0.4.2
|
||||||
|
- many bug fixes
|
||||||
|
- localization updates
|
||||||
|
|
||||||
|
* Thu Apr 4 2008 Daniel P. Berrange <berrange@redhat.com> - 0.4.1-7.fc9
|
||||||
|
- Don't run polkit-auth as root
|
||||||
|
- Don't request polkit auth if client is root
|
||||||
|
|
||||||
|
* Fri Mar 28 2008 Chris Lalancette <clalance@redhat.com> - 0.4.1-6.fc9
|
||||||
|
- 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
|
||||||
|
|
||||||
* Thu Mar 27 2008 Chris Lalancette <clalance@redhat.com> - 0.4.1-5.fc9
|
* Thu Mar 27 2008 Chris Lalancette <clalance@redhat.com> - 0.4.1-5.fc9
|
||||||
- Do iscsiadm sendtarget before trying to do login
|
- Do iscsiadm sendtarget before trying to do login
|
||||||
- Do sysfs scanning for iSCSI LUNs instead of trying to parse them from
|
- Do sysfs scanning for iSCSI LUNs instead of trying to parse them from
|
||||||
|
|||||||
35
python_make.patch
Normal file
35
python_make.patch
Normal 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 $@
|
||||||
|
|
||||||
Reference in New Issue
Block a user