diff --git a/.cvsignore b/.cvsignore index 050345f..e61589c 100644 --- a/.cvsignore +++ b/.cvsignore @@ -18,3 +18,4 @@ libvirt-0.2.0.tar.gz libvirt-0.2.1.tar.gz libvirt-0.2.2.tar.gz libvirt-0.2.3.tar.gz +libvirt-0.3.0.tar.gz diff --git a/libvirt-0.2.2-bridge-init.patch b/libvirt-0.2.2-bridge-init.patch deleted file mode 100644 index f27667b..0000000 --- a/libvirt-0.2.2-bridge-init.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -rup libvirt-0.2.2/qemud/conf.c libvirt-0.2.2.new/qemud/conf.c ---- libvirt-0.2.2/qemud/conf.c 2007-05-14 10:38:52.000000000 -0400 -+++ libvirt-0.2.2.new/qemud/conf.c 2007-05-14 10:38:34.000000000 -0400 -@@ -1151,6 +1151,12 @@ qemudNetworkIfaceConnect(struct qemud_se - goto error; - } - -+ if (!server->brctl && (err = brInit(&server->brctl))) { -+ qemudReportError(server, VIR_ERR_INTERNAL_ERROR, -+ "cannot initialize bridge support: %s", strerror(err)); -+ goto error; -+ } -+ - if ((err = brAddTap(server->brctl, brname, - ifname, BR_IFNAME_MAXLEN, &tapfd))) { - qemudReportError(server, VIR_ERR_INTERNAL_ERROR, -Only in libvirt-0.2.2.new/qemud: conf.c.orig diff --git a/libvirt-0.2.2-disable-xm.patch b/libvirt-0.2.2-disable-xm.patch deleted file mode 100644 index 51a9b68..0000000 --- a/libvirt-0.2.2-disable-xm.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -rup libvirt-0.2.2/src/xen_unified.c libvirt-0.2.2.new/src/xen_unified.c ---- libvirt-0.2.2/src/xen_unified.c 2007-04-17 04:38:52.000000000 -0400 -+++ libvirt-0.2.2.new/src/xen_unified.c 2007-05-01 16:49:54.000000000 -0400 -@@ -112,6 +112,11 @@ xenUnifiedOpen (virConnectPtr conn, cons - for (i = 0; i < nb_drivers; ++i) { - int failed_to_open = 1; - -+ /* Only use XM driver for Xen <= 3.0.3 (ie xendConfigVersion <= 2) */ -+ if (drivers[i] == &xenXMDriver && -+ priv->xendConfigVersion > 2) -+ continue; -+ - /* Ignore proxy for root */ - if (i == proxy_offset && getuid() == 0) - continue; diff --git a/libvirt-0.2.2-dnsmasq-order.patch b/libvirt-0.2.2-dnsmasq-order.patch deleted file mode 100644 index 372a3f9..0000000 --- a/libvirt-0.2.2-dnsmasq-order.patch +++ /dev/null @@ -1,23 +0,0 @@ -diff -rup libvirt-0.2.2/qemud/qemud.c libvirt-0.2.2.new/qemud/qemud.c ---- libvirt-0.2.2/qemud/qemud.c 2007-04-11 10:13:36.000000000 -0400 -+++ libvirt-0.2.2.new/qemud/qemud.c 2007-05-01 16:51:15.000000000 -0400 -@@ -1110,6 +1110,7 @@ qemudBuildDnsmasqArgv(struct qemud_serve - len = - 1 + /* dnsmasq */ - 1 + /* --keep-in-foreground */ -+ 1 + /* --strict-order */ - 1 + /* --bind-interfaces */ - 2 + /* --pid-file "" */ - 2 + /* --conf-file "" */ -@@ -1133,6 +1134,11 @@ qemudBuildDnsmasqArgv(struct qemud_serve - APPEND_ARG(*argv, i++, "dnsmasq"); - - APPEND_ARG(*argv, i++, "--keep-in-foreground"); -+ /* -+ * Needed to ensure dnsmasq uses same algorithm for processing -+ * multiple nameserver entries in /etc/resolv.conf as GLibC. -+ */ -+ APPEND_ARG(*argv, i++, "--strict-order"); - APPEND_ARG(*argv, i++, "--bind-interfaces"); - - APPEND_ARG(*argv, i++, "--pid-file"); diff --git a/libvirt-0.2.2-graphics-hvm.patch b/libvirt-0.2.2-graphics-hvm.patch deleted file mode 100644 index b0b80e7..0000000 --- a/libvirt-0.2.2-graphics-hvm.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff -rup libvirt-0.2.2.new/src/xend_internal.c libvirt-0.2.2/src/xend_internal.c ---- libvirt-0.2.2.new/src/xend_internal.c 2007-04-15 16:09:10.000000000 -0400 -+++ libvirt-0.2.2/src/xend_internal.c 2007-05-03 14:52:42.000000000 -0400 -@@ -1676,35 +1676,38 @@ xend_parse_sexp_desc(virConnectPtr conn, - } - } - -- /* Graphics device (HVM <= 3.0.4, or PV <= 3.0.4) vnc config */ -- tmp = sexpr_fmt_node(root, "domain/image/%s/vnc", hvm ? "hvm" : "linux"); -- if (tmp != NULL) { -- if (tmp[0] == '1') { -- int port = xenStoreDomainGetVNCPort(conn, domid); -- const char *listenAddr = sexpr_fmt_node(root, "domain/image/%s/vnclisten", hvm ? "hvm" : "linux"); -- const char *keymap = sexpr_fmt_node(root, "domain/image/%s/keymap", hvm ? "hvm" : "linux"); -- /* For Xen >= 3.0.3, don't generate a fixed port mapping -- * because it will almost certainly be wrong ! Just leave -- * it as -1 which lets caller see that the VNC server isn't -- * present yet. Subsquent dumps of the XML will eventually -- * find the port in XenStore once VNC server has started -- */ -- if (port == -1 && xendConfigVersion < 2) -- port = 5900 + domid; -- virBufferVSprintf(&buf, " \n", 3); -+ /* Graphics device (HVM <= 3.0.4, or PV <= 3.0.3) vnc config */ -+ if ((hvm && xendConfigVersion < 4) || -+ (!hvm && xendConfigVersion < 3)) { -+ tmp = sexpr_fmt_node(root, "domain/image/%s/vnc", hvm ? "hvm" : "linux"); -+ if (tmp != NULL) { -+ if (tmp[0] == '1') { -+ int port = xenStoreDomainGetVNCPort(conn, domid); -+ const char *listenAddr = sexpr_fmt_node(root, "domain/image/%s/vnclisten", hvm ? "hvm" : "linux"); -+ const char *keymap = sexpr_fmt_node(root, "domain/image/%s/keymap", hvm ? "hvm" : "linux"); -+ /* For Xen >= 3.0.3, don't generate a fixed port mapping -+ * because it will almost certainly be wrong ! Just leave -+ * it as -1 which lets caller see that the VNC server isn't -+ * present yet. Subsquent dumps of the XML will eventually -+ * find the port in XenStore once VNC server has started -+ */ -+ if (port == -1 && xendConfigVersion < 2) -+ port = 5900 + domid; -+ virBufferVSprintf(&buf, " \n", 3); -+ } - } -- } - -- /* Graphics device (HVM, or old (pre-3.0.4) style PV sdl config) */ -- tmp = sexpr_fmt_node(root, "domain/image/%s/sdl", hvm ? "hvm" : "linux"); -- if (tmp != NULL) { -- if (tmp[0] == '1') -- virBufferAdd(&buf, " \n", 27 ); -+ /* Graphics device (HVM, or old (pre-3.0.4) style PV sdl config) */ -+ tmp = sexpr_fmt_node(root, "domain/image/%s/sdl", hvm ? "hvm" : "linux"); -+ if (tmp != NULL) { -+ if (tmp[0] == '1') -+ virBufferAdd(&buf, " \n", 27 ); -+ } - } - - tty = xenStoreDomainGetConsolePath(conn, domid); -Only in libvirt-0.2.2/src: xend_internal.c.orig diff --git a/libvirt-0.2.2-qemu-noreboot.patch b/libvirt-0.2.2-qemu-noreboot.patch deleted file mode 100644 index bd4ef34..0000000 --- a/libvirt-0.2.2-qemu-noreboot.patch +++ /dev/null @@ -1,128 +0,0 @@ -diff -rup libvirt-0.2.2/qemud/conf.c libvirt-0.2.2.new/qemud/conf.c ---- libvirt-0.2.2/qemud/conf.c 2007-04-17 04:34:42.000000000 -0400 -+++ libvirt-0.2.2.new/qemud/conf.c 2007-05-14 10:36:12.000000000 -0400 -@@ -245,21 +245,25 @@ static int qemudExtractVersionInfo(const - cleanup1: - _exit(-1); /* Just in case */ - } else { /* Parent */ -- char help[4096]; /* Ought to be enough to hold QEMU help screen */ -- int got, ret = -1; -+ char help[8192]; /* Ought to be enough to hold QEMU help screen */ -+ int got = 0, ret = -1; - int major, minor, micro; - - if (close(newstdout[1]) < 0) - goto cleanup2; - -- reread: -- if ((got = read(newstdout[0], help, sizeof(help)-1)) < 0) { -- if (errno == EINTR) -- goto reread; -- goto cleanup2; -+ while (got < (sizeof(help)-1)) { -+ int len; -+ if ((len = read(newstdout[0], help+got, sizeof(help)-got-1)) <= 0) { -+ if (!len) -+ break; -+ if (errno == EINTR) -+ continue; -+ goto cleanup2; -+ } -+ got += len; - } - help[got] = '\0'; -- - if (sscanf(help, "QEMU PC emulator version %d.%d.%d", &major,&minor, µ) != 3) { - goto cleanup2; - } -@@ -267,6 +271,8 @@ static int qemudExtractVersionInfo(const - *version = (major * 1000 * 1000) + (minor * 1000) + micro; - if (strstr(help, "-no-kqemu")) - *flags |= QEMUD_CMD_FLAG_KQEMU; -+ if (strstr(help, "-no-reboot")) -+ *flags |= QEMUD_CMD_FLAG_NO_REBOOT; - if (*version >= 9000) - *flags |= QEMUD_CMD_FLAG_VNC_COLON; - ret = 0; -@@ -858,6 +864,22 @@ static struct qemud_vm_def *qemudParseXM - } - xmlXPathFreeObject(obj); - -+ -+ /* See if we disable reboots */ -+ obj = xmlXPathEval(BAD_CAST "string(/domain/on_reboot)", ctxt); -+ if ((obj == NULL) || (obj->type != XPATH_STRING) || -+ (obj->stringval == NULL) || (obj->stringval[0] == 0)) { -+ def->noReboot = 0; -+ } else { -+ if (!strcmp((char*)obj->stringval, "destroy")) -+ def->noReboot = 1; -+ else -+ def->noReboot = 0; -+ } -+ if (obj) -+ xmlXPathFreeObject(obj); -+ -+ - /* Extract OS type info */ - obj = xmlXPathEval(BAD_CAST "string(/domain/os/type[1])", ctxt); - if ((obj == NULL) || (obj->type != XPATH_STRING) || -@@ -1220,6 +1242,8 @@ int qemudBuildCommandLine(struct qemud_s - 2 + /* cpus */ - 2 + /* boot device */ - 2 + /* monitor */ -+ (server->qemuCmdFlags & QEMUD_CMD_FLAG_NO_REBOOT && -+ vm->def->noReboot ? 1 : 0) + /* no-reboot */ - (vm->def->features & QEMUD_FEATURE_ACPI ? 0 : 1) + /* acpi */ - (vm->def->os.kernel[0] ? 2 : 0) + /* kernel */ - (vm->def->os.initrd[0] ? 2 : 0) + /* initrd */ -@@ -1255,6 +1279,11 @@ int qemudBuildCommandLine(struct qemud_s - goto no_memory; - if (!((*argv)[++n] = strdup("pty"))) - goto no_memory; -+ if (server->qemuCmdFlags & QEMUD_CMD_FLAG_NO_REBOOT && -+ vm->def->noReboot) { -+ if (!((*argv)[++n] = strdup("-no-reboot"))) -+ goto no_memory; -+ } - - if (!(vm->def->features & QEMUD_FEATURE_ACPI)) { - if (!((*argv)[++n] = strdup("-no-acpi"))) -@@ -2517,6 +2546,17 @@ char *qemudGenerateXML(struct qemud_serv - goto no_memory; - } - -+ if (bufferAdd(buf, " destroy\n", -1) < 0) -+ goto no_memory; -+ if (def->noReboot) { -+ if (bufferAdd(buf, " destroy\n", -1) < 0) -+ goto no_memory; -+ } else { -+ if (bufferAdd(buf, " restart\n", -1) < 0) -+ goto no_memory; -+ } -+ if (bufferAdd(buf, " destroy\n", -1) < 0) -+ goto no_memory; - - if (bufferAdd(buf, " \n", -1) < 0) - goto no_memory; -diff -rup libvirt-0.2.2/qemud/internal.h libvirt-0.2.2.new/qemud/internal.h ---- libvirt-0.2.2/qemud/internal.h 2007-04-11 10:13:36.000000000 -0400 -+++ libvirt-0.2.2.new/qemud/internal.h 2007-05-14 10:36:02.000000000 -0400 -@@ -161,6 +161,7 @@ enum qemud_vm_grapics_type { - enum qemud_cmd_flags { - QEMUD_CMD_FLAG_KQEMU = 1, - QEMUD_CMD_FLAG_VNC_COLON = 2, -+ QEMUD_CMD_FLAG_NO_REBOOT = 4, - }; - - -@@ -191,6 +192,8 @@ struct qemud_vm_def { - int maxmem; - int vcpus; - -+ int noReboot; -+ - struct qemud_vm_os_def os; - - int features; diff --git a/libvirt-0.2.2-sync-daemon-restart.patch b/libvirt-0.2.2-sync-daemon-restart.patch deleted file mode 100644 index efddd13..0000000 --- a/libvirt-0.2.2-sync-daemon-restart.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- libvirt-0.2.2/ChangeLog.sync-restart 2007-05-02 13:07:21.719425000 -0400 -+++ libvirt-0.2.2/ChangeLog 2007-05-02 13:08:23.204879000 -0400 -@@ -0,0 +1,5 @@ -+Wed May 2 17:55:12 IST 2007 Mark McLoughlin -+ -+ * qemud/libvirtd.in: synchronously restart the daemon in -+ order to avoid https://bugzilla.redhat.com/238492 -+ ---- libvirt-0.2.2/qemud/libvirtd.in.sync-restart 2007-02-23 07:50:58.000000000 -0500 -+++ libvirt-0.2.2/qemud/libvirtd.in 2007-05-02 13:08:23.209868000 -0400 -@@ -34,7 +34,7 @@ - stop() { - echo -n $"Stopping $SERVICE daemon: " - -- killproc $PROCESS -TERM -+ killproc $PROCESS - RETVAL=$? - echo - if [ $RETVAL -eq 0 ]; then diff --git a/libvirt.spec b/libvirt.spec index 8182081..442dcf6 100644 --- a/libvirt.spec +++ b/libvirt.spec @@ -1,15 +1,9 @@ # -*- rpm-spec -*- -# This macro is used for the continuous automated builds. It just -# allows an extra fragment based on the timestamp to be appended -# to the release. This distinguishes automated builds, from formal -# Fedora RPM builds -%define _extra_release %{?dist:%{dist}}%{!?dist:%{?extra_release:%{extra_release}}} - Summary: Library providing a simple API virtualization Name: libvirt -Version: 0.2.3 -Release: 1%{?_extra_release} +Version: 0.3.0 +Release: 1%{?dist}%{?extra_release} License: LGPL Group: Development/Libraries Source: libvirt-%{version}.tar.gz @@ -20,13 +14,14 @@ Requires: libxml2 Requires: readline Requires: ncurses Requires: dnsmasq +Requires: bridge-utils +Requires: iptables BuildRequires: xen-devel BuildRequires: libxml2-devel BuildRequires: readline-devel BuildRequires: ncurses-devel BuildRequires: gettext -BuildRequires: libsysfs-devel -BuildRequires: /sbin/iptables +BuildRequires: gnutls-devel Obsoletes: libvir ExclusiveArch: i386 x86_64 ia64 @@ -61,14 +56,15 @@ of recent versions of Linux (and other OSes). %setup -q %build -%configure --with-init-script=redhat --with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid +%configure --with-init-script=redhat --with-qemud-pid-file=%{_localstatedir}/run/libvirt_qemud.pid --with-remote-file=%{_localstatedir}/run/libvirtd.pid make %install rm -fr %{buildroot} %makeinstall -(cd docs/examples ; make clean ; rm -rf .deps) +(cd docs/examples ; make clean ; rm -rf .deps Makefile Makefile.in) +(cd docs/examples/python ; rm -f Makefile Makefile.in) rm -f $RPM_BUILD_ROOT%{_libdir}/*.la rm -f $RPM_BUILD_ROOT%{_libdir}/*.a rm -f $RPM_BUILD_ROOT%{_libdir}/python*/site-packages/*.la @@ -129,10 +125,7 @@ fi %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/ %dir %attr(0700, root, root) %{_sysconfdir}/libvirt/qemu/networks/autostart %{_sysconfdir}/rc.d/init.d/libvirtd -%dir %{_sysconfdir}/libvirt -%dir %{_sysconfdir}/libvirt/qemu -%dir %{_sysconfdir}/libvirt/qemu/networks -%dir %{_sysconfdir}/libvirt/qemu/networks/autostart +%config(noreplace) %{_sysconfdir}/sysconfig/libvirtd %dir %{_datadir}/libvirt/ %dir %{_datadir}/libvirt/networks/ %{_datadir}/libvirt/networks/default.xml @@ -140,7 +133,7 @@ fi %dir %{_localstatedir}/lib/libvirt/ %dir %attr(0700, root, root) %{_localstatedir}/log/libvirt/qemu/ %attr(4755, root, root) %{_libexecdir}/libvirt_proxy -%attr(0755, root, root) %{_sbindir}/libvirt_qemud +%attr(0755, root, root) %{_sbindir}/libvirtd %doc docs/libvirt.rng %files devel @@ -171,27 +164,20 @@ fi %doc docs/examples/python %changelog -* Fri Jun 8 2007 Daniel Veillard - 0.2.3-1.fc7 +* Mon Jul 9 2007 Daniel Veillard - 0.3.0-1.fc8 +- Release of 0.3.0 +- Secure remote access support +- unification of daemons +- lots of assorted bugfixes and cleanups +- documentation and localization improvements + +* Fri Jun 8 2007 Daniel Veillard - 0.2.3-1.fc8 - Release of 0.2.3 - lot of assorted bugfixes and cleanups - support for Xen-3.1 - new scheduler API -* Mon May 14 2007 Daniel P. Berrange - 0.2.2-4.fc7 -- Fixed uninitialized value causing stack overflow -- Fixed bridged networking when no virtual network is defined (bz 239273) - -* Thu May 3 2007 Daniel P. Berrange - 0.2.2-3.fc7 -- Fixed init script restart race -- Remove duplicate tag for HVM -- Support -no-reboot in qemu for installs -- Disable xm config file driver for 3.0.5 -- Force dnsmasq ordering for resolv.conf - -* Fri Apr 21 2007 Daniel P. Berrange - 0.2.2-2.fc7 -- Added Requires on dnsmasq for virtual networking - -* Tue Apr 17 2007 Daniel Veillard - 0.2.2-1.fc7 +* Tue Apr 17 2007 Daniel Veillard - 0.2.2-1 - Release of 0.2.2 - lot of assorted bugfixes and cleanups - preparing for Xen-3.0.5 @@ -201,7 +187,7 @@ fi - fix scriptlet error (need to own more directories) - update description text -* Fri Mar 16 2007 Daniel Veillard - 0.2.1-1.fc7 +* Fri Mar 16 2007 Daniel Veillard - 0.2.1-1 - Release of 0.2.1 - lot of bug and portability fixes - Add support for network autostart and init scripts diff --git a/sources b/sources index 731337e..f4e4782 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -3b9e192de1777c8ec801d16cbf1c7819 libvirt-0.2.3.tar.gz +e6a85e2ef99f985a298376e01fcc7a3c libvirt-0.3.0.tar.gz