~serge-hallyn/ubuntu/oneiric/libvirt/fix-shutdown

« back to all changes in this revision

Viewing changes to ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): Serge Hallyn
  • Date: 2010-11-02 16:26:51 UTC
  • mfrom: (1.2.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20101102162651-aq8tnbz58mdf01bf
Tags: 0.8.5-0ubuntu1
* New upstream release.
* Removed a slew of patches which have been
  applied upstream since 0.8.3.
  - 9012-apparmor-extra-tests.patch
  - 9013-apparmor-chardev.patch
  - 9015-Add-ubd-to-the-list-of-disk-prefixes.patch
  - 9016-Close-fd-s-of-persistent-tap-devices.patch
  - 9017-Make-sure-all-command-line-arguments-get-passed-to-U.patch
  - 9018-Make-umlConnectTapDevice-ask-brAddTap-for-a-persiste.patch
  - 9019-uml-fix-logic-bug-in-checking-reply-length.patch
  - 9021-Allow-chardev-of-type-file-for-UML-domains.patch
  - 9022-Rename-qemudShrinkDisks-to-virDomainDiskRemove-and-m.patch
  - 9023-Support-virDomainAttachDevice-and-virDomainDetachDev.patch
  - 9024-Explicitly-pass-uml_dir-argument-to-user-mode-linux.patch
  - 9025-Add-nwfilter-support-to-UML-driver.patch
  - 9026-Rebuild-network-filter-for-UML-guests-on-updates.patch
  - 9027-Make-newfilter-xml-transformations-endian-safe.patch
  - 9028-lp628055.patch
* Updated 9002-better_default_uri_virsh.patch to use vshStrdup,
  as now required in that file.  (use of strdup now causes compilation
  to fail)
* Removed 9008-run-as-root-by-default.patch, which has not been
  applied for awhile now, with no ill effects.
* Simple refresh of:
  - 0001-remove-RHism.diff.patch
  - 0003-allow-libvirt-group-to-access-the-socket.patch
  - 0004-fix-Debian-specific-path-to-hvm-loader.patch
  - 0006-patch-qemuMonitorTextGetMigrationStatus-to-intercept.patch
  - 9000-delayed_iff_up_bridge.patch
  - 9001-dont_clobber_existing_bridges.patch
  - 9003-better-default-arch.patch
  - 9004-libvirtd-group-name.patch
  - 9005-increase-unix-socket-timeout.patch
  - 9006-default-config-test-case.patch
  - 9009-autodetect-nc-params.patch
  - 9010-dont-disable-ipv6.patch
  - 9011-move-ebtables-script.patch
  - 9014-skip-nodeinfotest.patch
  - 9020-lp545795.patch
* Create a patch to include stdint.h so lxc_container.h, which
  #includes linux/fs.h, doesn't trip up on undefined uint64_t.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
2010-10-29  Daniel Veillard  <veillard@redhat.com>
 
2
 
 
3
        Updating localization and regenerating before release
 
4
 
 
5
2010-10-29  Matthias Bolte  <matthias.bolte@googlemail.com>
 
6
 
 
7
        vbox: Don't warn when the linker search path doesn't contain VBoxXPCOMC.so
 
8
        This is actually a workaround, to unbreak make check on systems
 
9
        without VirtualBox.
 
10
 
 
11
        vbox: Stop hardcoding a single path for VBoxXPCOMC.so
 
12
        This partly reverts df90ca7661b0a789bd790ccf8258a4527c13eb8d.
 
13
 
 
14
        Don't disable the VirtualBox driver when configure can't find
 
15
        VBoxXPCOMC.so, rely on detection at runtime again instead.
 
16
 
 
17
        Keep --with-vbox=/path/to/virtualbox intact, added to for:
 
18
        https://bugzilla.redhat.com/show_bug.cgi?id=609185
 
19
 
 
20
        Detection order for VBoxXPCOMC.so:
 
21
 
 
22
        1. VBOX_APP_HOME environment variable
 
23
        2. configure provided location
 
24
        3. hardcoded list of known locations
 
25
        4. dynamic linker search path
 
26
 
 
27
        Also cleanup the glue code and improve error reporting.
 
28
 
 
29
2010-10-29  Justin Clift  <jclift@redhat.com>
 
30
 
 
31
        virsh: improve the help description for managedsave and start
 
32
        Updated the descriptions for managedsave and start in virsh and
 
33
        the virsh man page, and also for managedsave-remove in the virsh
 
34
        man page.
 
35
 
 
36
2010-10-28  KAMEZAWA Hiroyuki  <kamezawa.hiroyu@jp.fujitsu.com>
 
37
 
 
38
        audit: printf warning fix
 
39
        fix warning
 
40
          CC     libvirt_util_la-virtaudit.lo
 
41
        cc1: warnings being treated as errors
 
42
        util/virtaudit.c: In function 'virAuditEncode':
 
43
        util/virtaudit.c:146: error: implicit declaration of function 'virAsprintf' [-Wimplicit-function-declaration]
 
44
        util/virtaudit.c:146: error: nested extern declaration of 'virAsprintf' [-Wnested-externs]
 
45
 
 
46
2010-10-28  Stefan Berger  <stefanb@us.ibm.com>
 
47
 
 
48
        eliminate possibility of a double-closed file descriptor
 
49
        The 2nd and 3rd hunk show the only double-closed file descriptor code part that I found while trying to clean up close(). The first hunk seems a harmless cleanup in that same file.
 
50
 
 
51
2010-10-28  Eric Blake  <eblake@redhat.com>
 
52
 
 
53
        qemu: check for vm after starting a job
 
54
        https://bugzilla.redhat.com/show_bug.cgi?id=638285 - when migrating
 
55
        a guest, it was very easy to provoke a race where an application
 
56
        could query block information on a VM that had just been migrated
 
57
        away.  Any time qemu code obtains a job lock, it must also check
 
58
        that the VM was not taken down in the time where it was waiting
 
59
        for the lock.
 
60
 
 
61
        * src/qemu/qemu_driver.c (qemudDomainSetMemory)
 
62
        (qemudDomainGetInfo, qemuDomainGetBlockInfo): Check that vm still
 
63
        exists after obtaining job lock, before starting monitor action.
 
64
 
 
65
2010-10-28  Laine Stump  <laine@laine.org>
 
66
 
 
67
        Only attempt removal of the rule allowing tftp if it was added
 
68
        During virtual network startup, the iptables rule that allows tftp
 
69
        traffic is only added if network->def->tftproot is non-empty, but when
 
70
        the virtual network is destroyed, we had been unconditionally trying
 
71
        to delete the rule. This was harmless, except that it created a bogus
 
72
        error message.
 
73
 
 
74
        This patch conditionalizes the delete command in the same manner that
 
75
        the insert command is already conditionalized.
 
76
 
 
77
2010-10-28  Justin Clift  <jclift@redhat.com>
 
78
 
 
79
        docs: updated the C# bindings page with arnauds latest changes
 
80
 
 
81
        docs: update ruby bindings maintainer to chris lalancette
 
82
 
 
83
2010-10-28  Eric Blake  <eblake@redhat.com>
 
84
 
 
85
        build: use shorter file names for 'make dist'
 
86
        * docs/api_extension/{0013,0014}*.patch: Rename to shorter files.
 
87
        * docs/api_extension.html.in: Reflect rename.
 
88
 
 
89
2010-10-28  Justin Clift  <jclift@redhat.com>
 
90
 
 
91
        docs: reworded and reordered the bindings page, plus minor tweaks
 
92
        Reordered the bindings into alphabetical order, added a link to
 
93
        the php-libvirt source on Github, plus gave the direct package
 
94
        names needed for Python usage on RHEL/Fedora, and Ubuntu.
 
95
 
 
96
2010-10-27  Matthias Bolte  <matthias.bolte@googlemail.com>
 
97
 
 
98
        mingw: Add body for virFork and remove double virDriverLoadModule export
 
99
        Commit 9bd3cce0d2d54e6ab893bb8137218b83d9294714 added virFork and
 
100
        virDriverLoadModule to libvirt_private.syms, but virFork didn't have
 
101
        a body on Win32 and virDriverLoadModule was already correctly
 
102
        exported conditional via libvirt_driver_modules.syms.
 
103
 
 
104
2010-10-27  Daniel P. Berrange  <berrange@redhat.com>
 
105
 
 
106
        Add disk/net resource auditing to QEMU driver
 
107
        Add auditing of all initial disk/net assignments to QEMU guests
 
108
        at startup. Add auditing for all hotplug & unplug events and
 
109
        disk media changes.
 
110
 
 
111
        * src/qemu/qemu_driver.c: Add disk/net resource auditing
 
112
 
 
113
        Add auditing of security label in QEMU driver
 
114
        Add auditing of the allocated security label in the QEMU driver
 
115
        VM startup code
 
116
 
 
117
        * src/qemu/qemu_driver.c: Audit security label
 
118
 
 
119
        Add auditing of start/stop events to the QEMU driver
 
120
        Add audit hooks to report all start and stop events on QEMU
 
121
        guest domains.
 
122
 
 
123
        * src/qemu/qemu_driver.c: Audit start/stop events
 
124
 
 
125
        Add printf format attribute annotation to virAuditSend method
 
126
        * src/util/virtaudit.h: Add printf format attribute annotation
 
127
 
 
128
        Add audit helper for escaping log message strings
 
129
        Add a helper API for ecscaping the value in audit log
 
130
        messages
 
131
 
 
132
        * src/util/virtaudit.h, src/util/virtaudit.c,
 
133
          src/libvirt_private.syms: Add virAuditEncode
 
134
 
 
135
        Remove audit hooks from the selinux security driver code
 
136
        This reverts commit b8e2de8899594edcd78b3a7cb1b39b89bbed2891
 
137
        The hooks will be re-added in the QEMU driver itself.
 
138
 
 
139
        * src/security/security_selinux.c: Remove audit hooks
 
140
 
 
141
        Remove all auditing hooks from libvirtd dispatch code
 
142
        Revert most of commit a8b5f9bd27d65c2ced064b9267ca31dee7ad9c86.
 
143
        The audit hooks will be re-added directly in the QEMU driver code
 
144
        in a future commit
 
145
 
 
146
        * daemon/remote.c: Remove all audit logging hooks
 
147
        * src/qemu/qemu_driver.c: Remove all audit logging hooks
 
148
 
 
149
2010-10-27  Philipp Hahn  <hahn@univention.de>
 
150
 
 
151
        Fix xen API documentation
 
152
        *src/xen/xend_internal.c: fix a couple of comments in function descriptions
 
153
 
 
154
2010-10-27  Justin Clift  <jclift@redhat.com>
 
155
 
 
156
        docs: added a table of contents to the first 11 docs files
 
157
        There are a 58 docs files, so adding an autogenerated Table Of
 
158
        Contents to them all will take some time.  This is the first
 
159
        piece of the work done.
 
160
 
 
161
        docs: reformated the bindings page html markup to match other pages
 
162
 
 
163
2010-10-26  Eric Blake  <eblake@redhat.com>
 
164
 
 
165
        virsh: use - not _ in memtune option names
 
166
        * tools/virsh.c (opts_memtune): All other options in virsh use -
 
167
        for separating words.
 
168
 
 
169
        build: fix shell detection bug
 
170
        A missing shell was noisy, and the use of command to decipher a
 
171
        shell's absolute path requires "" rather than ''.
 
172
 
 
173
        * configure.ac (lv_cv_wrapper_shell): Fix logic errors if candidate
 
174
        shell is not available.
 
175
        * .gitignore: Ignore file created when /bin/sh is old dash.
 
176
        Reported by Matthias Bolte.
 
177
 
 
178
        maint: fix syntax-check failure of previous patch
 
179
        * cfg.mk (sc_prohibit_trailing_blank_lines): Delete; this is
 
180
        adequately covered by maint.mk's sc_prohibit_empty_lines_at_EOF.
 
181
        * .x-sc_prohibit_empty_lines_at_EOF: New file, to exempt raw
 
182
        patches.
 
183
        * Makefile.am (EXTRA_DIST): Include new exemption.
 
184
 
 
185
        docs: revamp api_extension example, using vcpu patch series
 
186
        * docs/api_extension/*: Replace example files.
 
187
        * docs/api_extension.html.in: Rewrite to match new example files.
 
188
 
 
189
2010-10-26  Diego Elio Pettenò  <flameeyes@gmail.com>
 
190
 
 
191
        qemu: don't use %.3d format for bus/addr of USB devices
 
192
        When using 0-prefixed numbers, QEmu will interpret them as octal numbers
 
193
        (as C convention says); this means that if you attach a device that has
 
194
        addr > 10 (decimal) you're going to attach a different device.
 
195
 
 
196
2010-10-26  Eric Blake  <eblake@redhat.com>
 
197
 
 
198
        virsh: fix range of memtune command
 
199
        * tools/virsh.c (cmdMemtune): Use long long for memory
 
200
        sizes. Simplify allocation, and plug memory leak.
 
201
 
 
202
        virsh: improve help text where integers are expected
 
203
        * tools/virsh.c (opts_freecell, opts_memtune, opts_vcpupin)
 
204
        (opts_setvcpus, opts_setmaxmem, opts_setmem)
 
205
        (opts_migrate_setmaxdowntime): Use VSH_OT_INT when only an integer
 
206
        is expected.
 
207
        (vshCmddefHelp, vshCmddefGetData): Allow mandatory VSH_OT_INT
 
208
        arguments.
 
209
 
 
210
        qemu: work around dash 0.5.5 bug in managed save
 
211
        Older dash mistakenly truncates regular files when using <> redirection;
 
212
        this kills our use of double dd to reduce storage overhead when
 
213
        saving qemu images.  But qemu insists on running a command through
 
214
        /bin/sh, so we work around it by having qemu run $sh -c 'real command'
 
215
        when we have a replacement $sh in mind.
 
216
 
 
217
        * configure.ac (VIR_WRAPPER_SHELL): Define to a replacement shell,
 
218
        if /bin/sh is broken on <> redirection.
 
219
        * src/qemu/qemu_monitor.h (VIR_WRAPPER_SHELL_PREFIX)
 
220
        (VIR_WRAPPER_SHELL_SUFFIX): New macros.
 
221
        * src/qemu/qemu_monitor_text.c (qemuMonitorTextMigrateToFile): Use
 
222
        them.
 
223
        * src/qemu/qemu_monitor_json.c (qemuMonitorJSONMigrateToFile):
 
224
        Likewise.
 
225
 
 
226
2010-10-26  Justin Clift  <jclift@redhat.com>
 
227
 
 
228
        docs: make the location of the xml catalog file a configure option
 
229
        The default location for the XML catalog file, /etc/xml/catalog,
 
230
        used when validating the generated html docs, isn't correct for
 
231
        MacOS X.
 
232
 
 
233
        This commit adds an option to the configure script, allowing the
 
234
        default to be overridden:
 
235
 
 
236
          --with-xml-catalog-file=/path/to/xml/catalog/file
 
237
 
 
238
2010-10-26  Daniel P. Berrange  <berrange@redhat.com>
 
239
 
 
240
        Avoid squashing errors during network startup cleanup path
 
241
        When failing to start a virtual network, we have to cleanup,
 
242
        tearing down any iptables rules. If the iptables rules were
 
243
        not present yet though, this raises an error, which squashes
 
244
        the original error we were handling.
 
245
 
 
246
        * src/network/bridge_driver.c: When failing to start a virtual
 
247
          network, don't squash the original error in cleanup
 
248
 
 
249
2010-10-26  Justin Clift  <jclift@redhat.com>
 
250
 
 
251
        docs: install the generated html files when make install is run
 
252
        Previously, only the API docs were installed, rather than the
 
253
        complete documentation set.  This commit ensures the complete
 
254
        documentation set is installed.
 
255
 
 
256
2010-10-26  Matthias Bolte  <matthias.bolte@googlemail.com>
 
257
 
 
258
        Fix build for SystemTap 1.0
 
259
        With SystemTap 1.0 a part of the generated macros in probes.h
 
260
        expands to:
 
261
 
 
262
        volatile __typeof__(((name))) arg2 = (name);
 
263
 
 
264
        GCC reports an 'invalid initialize' error when name has type
 
265
        char[]. Therfore, add casts to char* to avoid this.
 
266
 
 
267
2010-10-26  Jiri Denemark  <jdenemar@redhat.com>
 
268
 
 
269
        xen: Fix domain dump
 
270
        Remove redundant 'live' parameter which caused an error from xend:
 
271
 
 
272
            "xend.err 'Too many values for live'"
 
273
 
 
274
2010-10-26  Daniel P. Berrange  <berrange@redhat.com>
 
275
 
 
276
        Fix formatting of network address in iptables helpers
 
277
        The network address was being set to 192.168.122.0 instead
 
278
        of 192.168.122.0/24. Fix this by removing the unneccessary
 
279
        'network' field from virNetworkDef and just pass the
 
280
        network address and netmask into the iptables APIs directly.
 
281
 
 
282
        * src/conf/network_conf.h, src/conf/network_conf.c: Remove
 
283
          the 'network' field from virNEtworkDef.
 
284
        * src/network/bridge_driver.c: Update for iptables API changes
 
285
        * src/util/iptables.c, src/util/iptables.h: Require the
 
286
          network address + netmask pair to be passed in
 
287
 
 
288
2010-10-26  Osier Yang  <jyang@redhat.com>
 
289
 
 
290
        virsh: Add option 'model' for attach-interface
 
291
        * tools/virsh.c: add missing option from the CLI to allows setting
 
292
          up the NIC model type when attaching an interface
 
293
        * tools/virsh.pod: extend documentation
 
294
        * AUTHORS: add Osier Yang to the list
 
295
 
 
296
2010-10-26  Jiri Denemark  <jdenemar@redhat.com>
 
297
 
 
298
        qemu: Fix detection of drive readonly option
 
299
        So far, readonly=on option is used when qemu supports -device. However,
 
300
        there are qemu versions which support readonly option with -drive
 
301
        although they don't have support for -device.
 
302
 
 
303
2010-10-26  Philipp Hahn  <hahn@univention.de>
 
304
 
 
305
        Fix documentation for virEventAddTimeout()
 
306
        * src/util/event.h: Fix copy&paste error from virEventAddHandle()
 
307
 
 
308
2010-10-25  Eric Blake  <eblake@redhat.com>
 
309
 
 
310
        maint: ignore new test executable
 
311
        * tests/.gitignore: Sort, and add sockettest.
 
312
 
 
313
2010-10-23  Justin Clift  <jclift@redhat.com>
 
314
 
 
315
        daemon: updates previous 1 line patch for correctness
 
316
        The previous commit, 880da47a05b9fb8381e79b03ead5dd2d8a6a937a,
 
317
        worked on my system, but wasn't actually correct.  This follow
 
318
        up patch corrects it properly.
 
319
 
 
320
2010-10-22  Justin Clift  <jclift@redhat.com>
 
321
 
 
322
        daemon: exclude requirement for probes.h on systems without systemtap
 
323
        This 1-liner was actually written by Eric Blake, over IRC. It
 
324
        addresses a compilation failure in make dist and make rpm for
 
325
        systems without the dtrace/systemtap development libraries
 
326
        installed.
 
327
 
 
328
2010-10-22  Matthias Bolte  <matthias.bolte@googlemail.com>
 
329
 
 
330
        esx: Add documentation about certificates and connection problems
 
331
 
 
332
2010-10-22  Jiri Denemark  <jdenemar@redhat.com>
 
333
 
 
334
        tests: Silence qemuxml2argv test
 
335
 
 
336
2010-10-22  Eric Blake  <eblake@redhat.com>
 
337
 
 
338
        dnsmasq: avoid potential crash
 
339
        * src/util/dnsmasq.c (hostsfileAdd): Don't free uninitialized
 
340
        memory on allocation failure.
 
341
 
 
342
2010-10-22  Justin Clift  <jclift@redhat.com>
 
343
 
 
344
        docs: added a table of contents to the new c sharp bindings page
 
345
 
 
346
        docs: removed old changelog file, as it is no longer relevant
 
347
        We instead point to the live git log URL for the few links still
 
348
        needing to point to something.
 
349
 
 
350
2010-10-22  Matthias Bolte  <matthias.bolte@googlemail.com>
 
351
 
 
352
        vbox: Fix compile errors due to the virSocketAddr series
 
353
 
 
354
2010-10-22  Daniel P. Berrange  <berrange@redhat.com>
 
355
 
 
356
        Don't try to parse a NULL ip address for boot server
 
357
        The boot server IP address is optional, so it needs to be
 
358
        checked before attempting to parse it.
 
359
 
 
360
        * src/conf/network_conf.c: Don't parse NULL ip address for
 
361
          boot server
 
362
 
 
363
        Convert virNetwork to use virSocketAddr everywhere
 
364
        Instead of storing the IP address string in virNetwork related
 
365
        structs, store the parsed virSocketAddr. This will make it
 
366
        easier to add IPv6 support in the future, by letting driver
 
367
        code directly check what address family is present
 
368
 
 
369
        * src/conf/network_conf.c, src/conf/network_conf.h,
 
370
          src/network/bridge_driver.c: Convert to use virSocketAddr
 
371
          in virNetwork, instead of char *.
 
372
        * src/util/bridge.c, src/util/bridge.h,
 
373
          src/util/dnsmasq.c, src/util/dnsmasq.h,
 
374
          src/util/iptables.c, src/util/iptables.h: Convert to
 
375
          take a virSocketAddr instead of char * for any IP
 
376
          address parameters
 
377
        * src/util/network.h: Add macros to determine if an address
 
378
          is set, and what address family is set.
 
379
 
 
380
        Include socket address in client probe data
 
381
        It is useful to know where the client is connecting from,
 
382
        so include the socket address in probe data.
 
383
 
 
384
        * daemon/libvirtd.h: Use virSocketAddr for storing client
 
385
          address and keep printable address handy for logging
 
386
        * daemon/libvirtd.c: Include socket address in client
 
387
          connect/disconnect probes
 
388
        * daemon/probes.d: Add socket address to probes
 
389
        * examples/systemtap/client.stp: Print socket address
 
390
        * src/util/network.h: Add sockaddr_un to virSocketAddr union
 
391
 
 
392
        Add dtrace static probes in libvirtd
 
393
        Adds initial support for dtrace static probes in libvirtd
 
394
        daemon, assuming use of systemtap dtrace compat shim on
 
395
        Linux. The probes are inserted for network client connect,
 
396
        disconnect, TLS handshake states and authentication protocol
 
397
        states.
 
398
 
 
399
        This can be tested by running the xample program and then
 
400
        attempting to connect with any libvirt client (virsh,
 
401
        virt-manager, etc).
 
402
 
 
403
         # stap examples/systemtap/client.stp
 
404
          Client fd=44 connected readonly=0
 
405
          Client fd=44 auth polkit deny pid:24997,uid:500
 
406
          Client fd=44 disconnected
 
407
          Client fd=46 connected readonly=1
 
408
          Client fd=46 auth sasl allow test
 
409
          Client fd=46 disconnected
 
410
 
 
411
        The libvirtd.stp file should also really not be required,
 
412
        since it is duplicated info that is already available in
 
413
        the main probes.d definition file. A script to autogenerate
 
414
        the .stp file is needed, either in libvirtd tree, or better
 
415
        as part of systemtap itself.
 
416
 
 
417
        * Makefile.am: Add examples/systemtap subdir
 
418
        * autobuild.sh: Disable dtrace for mingw32
 
419
        * configure.ac: Add check for dtrace
 
420
        * daemon/.gitignore: Ignore generated dtrace probe file
 
421
        * daemon/Makefile.am: Build dtrace probe header & object
 
422
          files
 
423
        * daemon/libvirtd.stp: SystemTAP convenience probeset
 
424
        * daemon/libvirtd.c: Add connect/disconnect & TLS probes
 
425
        * daemon/remote.c: Add SASL and PolicyKit auth probes
 
426
        * daemon/probes.d: Master probe definition
 
427
        * daemon/libvirtd.h: Add convenience macro for probes
 
428
          so that compilation is a no-op when dtrace is not available
 
429
        * examples/systemtap/Makefile.am, examples/systemtap/client.stp
 
430
          Example systemtap script using dtrace probe markers
 
431
        * libvirt.spec.in: Enable dtrace on F13/RHEL6
 
432
        * mingw32-libvirt.spec.in: Force disable dtrace
 
433
 
 
434
        Add test suite for virSocket APIs
 
435
        Add a test suite for check parsing, formatting, range calculation
 
436
        and netmask checking APIs in virSocketAddr.
 
437
 
 
438
        * tests/sockettest.c, tests/Makefile.am: Add new test case
 
439
 
 
440
        Ban use of all inet_* functions
 
441
        All the inet_* functions can be replaced with calls to the
 
442
        virSocket APIs. Since many of the inet_* funtions are unsafe,
 
443
        and the remainder are obsolete, forbid all future use of them
 
444
        in libvirt.
 
445
 
 
446
        * Makefile.nonreentrant: Ban use of inet_*
 
447
 
 
448
        Remove all use of inet_pton and inet_ntop
 
449
        The  inet_pton and inet_ntop functions are obsolete, replaced
 
450
        by getaddrinfo+getnameinfo with the AI_NUMERICHOST flag set.
 
451
        These can be accessed via the virSocket APIs.
 
452
 
 
453
        The bridge.c code had methods for fetching the IP address of
 
454
        a bridge which used inet_ntop. Aside from the use of inet_ntop
 
455
        these methods are broken, because a NIC can have multiple
 
456
        addresses and this only returns one address. Since the methods
 
457
        are never used, just remove them.
 
458
 
 
459
        * src/conf/network_conf.c, src/nwfilter/nwfilter_learnipaddr.c:
 
460
          Replace inet_pton and inet_ntop with virSocket APIs
 
461
        * src/util/bridge.c, src/util/bridge.h: Remove unused methods
 
462
          which called inet_ntop.
 
463
 
 
464
        Remove both addrToString methods
 
465
        The addrToString functionality is now available via the
 
466
        virSocketFormatAddrFull method.
 
467
 
 
468
        * daemon/remote.c, src/remote/remote_driver.c: Remove
 
469
          addrToString methods
 
470
 
 
471
        Fix error reporting for virSocketParse
 
472
        The virSocketParse method was not doing any error reporting
 
473
        which meant the true cause of the problem was lost. Remove
 
474
        all error reporting from callers, and push it into virSocketParse
 
475
 
 
476
        * src/util/network.c: Add error reporting to virSocketParse
 
477
        * src/conf/domain_conf.c, src/conf/network_conf.c,
 
478
          src/network/bridge_driver.c: Remove error reporting in
 
479
          callers of virSocketParse
 
480
 
 
481
        Expand virSocketFormat to be more flexible
 
482
        The getnameinfo() function is more flexible than inet_ntop()
 
483
        avoiding the need to if/else the code based on socket family.
 
484
        Also make it support UNIX socket addrs and allow inclusion
 
485
        of a port (service) address. Finally do proper error reporting
 
486
        via normal APIs.
 
487
 
 
488
        * src/conf/domain_conf.c, src/nwfilter/nwfilter_ebiptables_driver.c,
 
489
          src/qemu/qemu_conf.c: Fix error handling with virSocketFormat
 
490
        * src/util/network.c: Rewrite virSocketFormat to use getnameinfo
 
491
          and cope with UNIX socket addrs.
 
492
 
 
493
        Remove pointless nwIPAddress struct & void *casts
 
494
        The nwIPAddress was simply a wrapper about virSocketAddr.
 
495
        Just use the latter directly, removing all the extra field
 
496
        de-references from code & helper APIs for parsing/formatting.
 
497
 
 
498
        Also remove all the redundant casts from strong types to
 
499
        void * and then immediately back to strong types.
 
500
 
 
501
        * src/conf/nwfilter_conf.h: Remove nwIPAddress
 
502
        * src/conf/nwfilter_conf.c, src/nwfilter/nwfilter_ebiptables_driver.c:
 
503
          Update to use virSocketAddr and remove void * casts.
 
504
 
 
505
        Fix netmask checks for IPv6 in virSocketCheckNetmask
 
506
        There was a typo in the IPv6 path of virSocketCheckNetmask which
 
507
        caused it to never execute.
 
508
 
 
509
        * src/util/network.c: s/AF_INET/AF_INET6/ in virSocketCheckNetmask
 
510
 
 
511
        Fix passing of address family to virSocketParseAddr
 
512
        The virSocketParseAddr function was accepting any AF_* constant
 
513
        and using that to set the ai_flags field in struct addrinfo.
 
514
        This is invalid, since address families must go in the ai_family
 
515
        field of the struct.
 
516
 
 
517
        * src/util/network.c: Fix handling of address family
 
518
        * src/conf/network_conf.c, src/network/bridge_driver.c: Pass
 
519
          AF_UNSPEC instead of relying on it being 0.
 
520
 
 
521
        Include length with virSocketAddr data
 
522
        Some operations on socket addresses need to know the length of
 
523
        the sockaddr struct for the particular address family. This
 
524
        info was being discarded when passing around virSocketAddr
 
525
        instances. Turn it from a union into a struct containing
 
526
        union+socklen_t fields, so length is always kept around.
 
527
 
 
528
        * src/util/network.h: Add socklen_t field to virSocketAddr
 
529
        * src/util/network.c, src/network/bridge_driver.c,
 
530
          src/conf/domain_conf.c: Update to take account of new
 
531
          struct definition.
 
532
 
 
533
        Remove useless code in error path of getnameinfo()
 
534
        If getnameinfo() with NI_NUMERICHOST set fails, there are no
 
535
        grounds to expect inet_ntop to succeed, since these calls
 
536
        are functionally equivalent. Remove useless inet_ntop code
 
537
        in the getnameinfo() error path.
 
538
 
 
539
        * daemon/remote.c, src/remote/remote_driver.c: Remove
 
540
          calls to inet_ntop
 
541
 
 
542
2010-10-21  Eric Blake  <eblake@redhat.com>
 
543
 
 
544
        maint: sort private sym lists
 
545
        * src/libvirt_private.syms: Sort by header name, then within
 
546
        header, and drop duplicate virNetworkDefParseNode,
 
547
        virFileLinkPointsTo and virXPathBoolean.
 
548
 
 
549
2010-10-21  Daniel P. Berrange  <berrange@redhat.com>
 
550
 
 
551
        Enable JSON and netdev features in QEMU >= 0.13
 
552
        The QEMU 0.13 release is finally out and from testing in RHEL-6
 
553
        we know that its JSON and netdev features are now good enough
 
554
        for us to use by default.
 
555
 
 
556
        * src/qemu/qemu_conf.c: Enable JSON + netdev for QEMU >= 0.13
 
557
 
 
558
2010-10-20  Eric Blake  <eblake@redhat.com>
 
559
 
 
560
        audit: simplify declaration
 
561
        * src/util/virtaudit.c (virAuditSend): one less ifdef, since gcc
 
562
        does not care if an ATTRIBUTE_UNUSED var gets used in some paths.
 
563
 
 
564
2010-10-20  Matthias Bolte  <matthias.bolte@googlemail.com>
 
565
 
 
566
        qemu: Exit on first error in qemuDomainGetMemoryParameters
 
567
        There is no point in trying to fill params beyond the first error,
 
568
        because when qemuDomainGetMemoryParameters returns -1 then the caller
 
569
        cannot detect which values in params are valid.
 
570
 
 
571
        virsh: Don't read nparams when virDomainGetMemoryParameters fails
 
572
        Also exit early when nparams is 0.
 
573
 
 
574
        Rename VIR_DOMAIN_SWAP_HARD_LIMIT to VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT
 
575
        To get them under the common VIR_DOMAIN_MEMORY_* prefix.
 
576
 
 
577
        Fix formatting of the memtune XML element
 
578
        Also output the min_guarantee element when set.
 
579
 
 
580
2010-10-20  Jiri Denemark  <jdenemar@redhat.com>
 
581
 
 
582
        Fix make check on RHEL-5
 
583
        The test for <vcpu> element is unrelated to vnc so the easiest fix is to
 
584
        remove related configuration.
 
585
 
 
586
2010-10-20  Matthias Bolte  <matthias.bolte@googlemail.com>
 
587
 
 
588
        Don't let daemon-conf test fail when auditing is disabled
 
589
 
 
590
2010-10-20  Nikunj A. Dadhania  <nikunj@linux.vnet.ibm.com>
 
591
 
 
592
        Update comments for the memory tunables macros
 
593
        * include/libvirt/libvirt.h.in: Update comment with actual description
 
594
 
 
595
2010-10-20  Daniel Veillard  <veillard@redhat.com>
 
596
 
 
597
        Add John Morrissey to AUTHORS
 
598
 
 
599
2010-10-20  John Morrissey  <jwm@horde.net>
 
600
 
 
601
        Add process= support for 'qemu-kvm -name'
 
602
        This sets the process name to the same value as the Windows title,
 
603
        but since the name is limited to 16 chars only this is kept as a
 
604
        configuration option and turned off by default
 
605
        * src/qemu/qemu.conf src/qemu/qemu_conf.[ch]: hceck for support in the
 
606
          QEmu help output, add the option in qemu conf file and augment
 
607
          qemudBuildCommandLine to add it if switched on
 
608
        * src/qemu/libvirtd_qemu.aug src/qemu/test_libvirtd_qemu.aug: augment
 
609
          the augeas lenses accordingly
 
610
        * tests/qemuhelptest.c: cope with the extra flag being detected now
 
611
 
 
612
2010-10-20  Stefan Berger  <stefanb@us.ibm.com>
 
613
 
 
614
        nwfilter: avoid dir. enforcement for certain types of rules
 
615
         Avoid the enforcement of direction if
 
616
        - icmp rules specify the type/code information
 
617
        - the 'skipMatch' variable is set to 'true'
 
618
 
 
619
2010-10-19  Justin Clift  <jclift@redhat.com>
 
620
 
 
621
        docs: added initial page for c# binding, with links to it
 
622
        Adds a new page for the C# language bindings being developed by Arnaud
 
623
        Champion.
 
624
 
 
625
2010-10-19  Guido Günther  <agx@sigxcpu.org>
 
626
 
 
627
        Don't fail lxc domain start when memory controller support is missing
 
628
        Debian stock kernel has CONFIG_CGROUP_MEM_RES_CTLR disabled due to the
 
629
        overhead [1]. Allow to start containers if the corresponding files in
 
630
        the cgroup filesystem are missing. This fixes Debian bug #566180 [2].
 
631
 
 
632
        [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=534964
 
633
        [2] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=566180
 
634
 
 
635
2010-10-19  Matthias Bolte  <matthias.bolte@googlemail.com>
 
636
 
 
637
        Fix compile errors in remote.c and newly added audit code
 
638
 
 
639
2010-10-19  Daniel P. Berrange  <berrange@redhat.com>
 
640
 
 
641
        Fix symbol exports & remove duplicated libvirt_util.la linkage
 
642
        The libvirt_util.la library was mistakenly linked into libvirtd
 
643
        directly. Since libvirt_util.la is already linked to libvirt.so,
 
644
        this resulted in libvirtd getting two copies of the code and
 
645
        more critically 2 copies of static global variables.
 
646
 
 
647
        Testing in turn exposed a issue with loadable modules. The
 
648
        gnulib replacement functions are not exported to loadable
 
649
        modules. Rather than trying to figure out the name sof all
 
650
        gnulib functions & export them, just linkage all loadable
 
651
        modules against libgnu.la statically.
 
652
 
 
653
        * daemon/Makefile.am: Remove linkage of libvirt_util.la
 
654
          and libvirt_driver.la
 
655
        * src/Makefile.am: Link driver modules against libgnu.la
 
656
        * src/libvirt.c: Don't try to load modules which were
 
657
          compiled out
 
658
        * src/libvirt_private.syms: Export all other internal
 
659
          symbols that are required  by drivers
 
660
 
 
661
2010-10-19  Miloslav Trmač  <mitr@redhat.com>
 
662
 
 
663
        Audit SELinux label assignment.
 
664
        A more natural auditing point would perhaps be
 
665
        SELinuxSetSecurityProcessLabel, but this happens in the child after root
 
666
        permissions are dropped, so the kernel would refuse the audit record.
 
667
 
 
668
        Audit VM start/stop/suspend/resume
 
669
        Most operations are audited at the libvirtd level; auditing in
 
670
        src/libvirt.c would result in two audit entries per operation (one in
 
671
        the client, one in libvirtd).
 
672
 
 
673
        The only exception is a domain stopping of its own will (e.g. because
 
674
        the user clicks on "shutdown" inside the interface).  There can often be
 
675
        no client connected at the time the domain stops, so libvirtd does not
 
676
        have any virConnectPtr object on which to attach an event watch.  This
 
677
        patch therefore adds auditing directly inside the qemu driver (other
 
678
        drivers are not supported).
 
679
 
 
680
2010-10-19  Daniel P. Berrange  <berrange@redhat.com>
 
681
 
 
682
        Basic framework for auditing integration
 
683
        Integrate with libaudit.so for auditing of important operations.
 
684
        libvirtd gains a couple of config entries for auditing. By
 
685
        default it will enable auditing, if its enabled on the host.
 
686
        It can be configured to force exit if auditing is disabled
 
687
        on the host. It will can also send audit messages via libvirt
 
688
        internal logging API
 
689
 
 
690
        Places requiring audit reporting can use the VIR_AUDIT
 
691
        macro to report data. This is a no-op unless auditing is
 
692
        enabled
 
693
 
 
694
        * autobuild.sh, mingw32-libvirt.spec.in: Disable audit
 
695
          on mingw
 
696
        * configure.ac: Add check for libaudit
 
697
        * daemon/libvirtd.aug, daemon/libvirtd.conf,
 
698
          daemon/test_libvirtd.aug, daemon/libvirtd.c: Add config
 
699
          options to enable auditing
 
700
        * include/libvirt/virterror.h, src/util/virterror.c: Add
 
701
          VIR_FROM_AUDIT source
 
702
        * libvirt.spec.in: Enable audit
 
703
        * src/util/virtaudit.h, src/util/virtaudit.c: Simple internal
 
704
          API for auditing messages
 
705
 
 
706
        Fix statstest when driver modules are enabled
 
707
        The statstest is xen specific. Instead of filling the code with
 
708
        a huge number of #ifdef WITH_XEN, just make its entire compilation
 
709
        conditional in the Makefile.am. Also ensure it links to the Xen
 
710
        driver so that it builds when driver modules are enabled
 
711
 
 
712
        * tests/Makefile.am: Make statstest xen conditional. Link to
 
713
          xen driver
 
714
        * tests/Makefile.am: Remove all conditionals
 
715
 
 
716
2010-10-19  Eric Blake  <eblake@redhat.com>
 
717
 
 
718
        virsh: consolidate memtune docs
 
719
        * tools/virsh.pod (memtune): Drop second copy, fill to 80 columns,
 
720
        enhance wording.
 
721
 
 
722
        vcpu: remove dead xen code
 
723
        * src/xen/xen_driver.h (xenUnifiedDriver): Remove now-unused
 
724
        domainGetMaxVcpus, domainSetVcpus.
 
725
        * src/xen/proxy_internal.c (xenProxyDriver): Likewise.
 
726
        * src/xen/xen_hypervisor.c (xenHypervisorDriver): Likewise.
 
727
        * src/xen/xen_inotify.c (xenInotifyDriver): Likewise.
 
728
        * src/xen/xend_internal.c (xenDaemonDriver)
 
729
        (xenDaemonDomainSetVcpus): Likewise.
 
730
        * src/xen/xm_internal.c (xenXMDriver, xenXMDomainSetVcpus):
 
731
        Likewise.
 
732
        * src/xen/xs_internal.c (xenStoreDriver): Likewise.
 
733
 
 
734
        vcpu: improve support for setting xen vcpu counts
 
735
        Tested with RHEL 5.6 (xendConfigVersion 2, where xend_internal
 
736
        controls live domains and xm_internal controls inactive domains).
 
737
        Hopefully this works with xendConfigVersion 3 (where xend_internal
 
738
        controls everything).
 
739
 
 
740
        * src/xen/xen_driver.c (xenUnifiedDomainSetVcpusFlags): Support
 
741
        more flags.
 
742
        (xenUnifiedGetMaxVcpus): Export.
 
743
        * src/xen/xm_internal.h (xenXMDomainSetVcpusFlags): New prototype.
 
744
        * src/xen/xend_internal.h (xenDaemonDomainSetVcpusFlags): Likewise.
 
745
        * src/xen/xen_driver.h (xenUnifiedGetMaxVcpus): Likewise.
 
746
        * src/xen/xm_internal.c (xenXMDomainSetVcpusFlags): New function.
 
747
        * src/xen/xend_internal.c (xenDaemonDomainSetVcpusFlags): Likewise.
 
748
 
 
749
        vcpu: improve support for getting xen vcpu counts
 
750
        * src/xen/xen_driver.c (xenUnifiedDomainGetVcpusFlags): Support
 
751
        more flags.
 
752
        * src/xen/xend_internal.h (xenDaemonDomainGetVcpusFlags): New
 
753
        prototype.
 
754
        * src/xen/xm_internal.h (xenXMDomainGetVcpusFlags): Likewise.
 
755
        * src/xen/xend_internal.c (virDomainGetVcpusFlags): New function.
 
756
        * src/xen/xm_internal.c (xenXMDomainGetVcpusFlags): Likewise.
 
757
 
 
758
        vcpu: improve vcpu support in xen command line
 
759
        This patch series focuses on xendConfigVersion 2 (xm_internal) and 3
 
760
        (xend_internal), but leaves out changes for xenapi drivers.
 
761
 
 
762
        See this link for more details about vcpu_avail for xm usage.
 
763
        http://lists.xensource.com/archives/html/xen-devel/2009-11/msg01061.html
 
764
 
 
765
        This relies on the fact that def->maxvcpus can be at most 32 with xen.
 
766
 
 
767
        * src/xen/xend_internal.c (xenDaemonParseSxpr)
 
768
        (sexpr_to_xend_domain_info, xenDaemonFormatSxpr): Use vcpu_avail
 
769
        when current vcpus is less than maximum.
 
770
        * src/xen/xm_internal.c (xenXMDomainConfigParse)
 
771
        (xenXMDomainConfigFormat): Likewise.
 
772
        * tests/xml2sexprdata/xml2sexpr-pv-vcpus.sexpr: New file.
 
773
        * tests/sexpr2xmldata/sexpr2xml-pv-vcpus.sexpr: Likewise.
 
774
        * tests/sexpr2xmldata/sexpr2xml-pv-vcpus.xml: Likewise.
 
775
        * tests/xmconfigdata/test-paravirt-vcpu.cfg: Likewise.
 
776
        * tests/xmconfigdata/test-paravirt-vcpu.xml: Likewise.
 
777
        * tests/xml2sexprtest.c (mymain): New test.
 
778
        * tests/sexpr2xmltest.c (mymain): Likewise.
 
779
        * tests/xmconfigtest.c (mymain): Likewise.
 
780
 
 
781
        vcpu: complete vcpu support in qemu driver
 
782
        * src/qemu/qemu_driver.c (qemudDomainSetVcpusFlags)
 
783
        (qemudDomainGetVcpusFlags): Support all feasible flag
 
784
        combinations.
 
785
 
 
786
        vcpu: improve vcpu support in qemu command line
 
787
        * src/qemu/qemu_conf.c (qemuParseCommandLineSmp): Distinguish
 
788
        between vcpus and maxvcpus, for new enough qemu.
 
789
        * tests/qemuargv2xmltest.c (mymain): Add new test.
 
790
        * tests/qemuxml2argvtest.c (mymain): Likewise.
 
791
        * tests/qemuxml2xmltest.c (mymain): Likewise.
 
792
        * tests/qemuxml2argvdata/qemuxml2argv-smp.args: New file.
 
793
 
 
794
        vcpu: support all flags in test driver
 
795
        * src/test/test_driver.c (testDomainGetVcpusFlags)
 
796
        (testDomainSetVcpusFlags): Support all flags.
 
797
        (testDomainUpdateVCPUs): Update cpu count here.
 
798
 
 
799
        vcpu: add virsh support
 
800
        * tools/virsh.c (cmdSetvcpus): Add new flags.  Let invalid
 
801
        commands through to driver, to ease testing of hypervisor argument
 
802
        validation.
 
803
        (cmdMaxvcpus, cmdVcpucount): New commands.
 
804
        (commands): Add new commands.
 
805
        * tools/virsh.pod (setvcpus, vcpucount, maxvcpus): Document new
 
806
        behavior.
 
807
 
 
808
        vcpu: support maxvcpu in domain_conf
 
809
        Although this patch adds a distinction between maximum vcpus and
 
810
        current vcpus in the XML, the values should be identical for all
 
811
        drivers at this point.  Only in subsequent per-driver patches will
 
812
        a distinction be made.
 
813
 
 
814
        In general, virDomainGetInfo should prefer the current vcpus.
 
815
 
 
816
        * src/conf/domain_conf.h (_virDomainDef): Adjust vcpus to unsigned
 
817
        short, to match virDomainGetInfo limit.  Add maxvcpus member.
 
818
        * src/conf/domain_conf.c (virDomainDefParseXML)
 
819
        (virDomainDefFormat): parse and print out vcpu details.
 
820
        * src/xen/xend_internal.c (xenDaemonParseSxpr)
 
821
        (xenDaemonFormatSxpr): Manage both vcpu numbers, and require them
 
822
        to be equal for now.
 
823
        * src/xen/xm_internal.c (xenXMDomainConfigParse)
 
824
        (xenXMDomainConfigFormat): Likewise.
 
825
        * src/phyp/phyp_driver.c (phypDomainDumpXML): Likewise.
 
826
        * src/openvz/openvz_conf.c (openvzLoadDomains): Likewise.
 
827
        * src/openvz/openvz_driver.c (openvzDomainDefineXML)
 
828
        (openvzDomainCreateXML, openvzDomainSetVcpusInternal): Likewise.
 
829
        * src/vbox/vbox_tmpl.c (vboxDomainDumpXML, vboxDomainDefineXML):
 
830
        Likewise.
 
831
        * src/xenapi/xenapi_driver.c (xenapiDomainDumpXML): Likewise.
 
832
        * src/xenapi/xenapi_utils.c (createVMRecordFromXml): Likewise.
 
833
        * src/esx/esx_vmx.c (esxVMX_ParseConfig, esxVMX_FormatConfig):
 
834
        Likewise.
 
835
        * src/qemu/qemu_conf.c (qemuBuildSmpArgStr)
 
836
        (qemuParseCommandLineSmp, qemuParseCommandLine): Likewise.
 
837
        * src/qemu/qemu_driver.c (qemudDomainHotplugVcpus): Likewise.
 
838
        * src/opennebula/one_conf.c (xmlOneTemplate): Likewise.
 
839
 
 
840
        vcpu: make old API trivially wrap to new API
 
841
        Note - this wrapping is completely mechanical; the old API will
 
842
        function identically, since the new API validates that the exact
 
843
        same flags are provided by the old API.  On a per-driver basis,
 
844
        it may make sense to have the old API pass a different set of flags,
 
845
        but that should be done in the per-driver patch that implements
 
846
        the full range of flag support in the new API.
 
847
 
 
848
        * src/esx/esx_driver.c (esxDomainSetVcpus, escDomainGetMaxVpcus):
 
849
        Move guts...
 
850
        (esxDomainSetVcpusFlags, esxDomainGetVcpusFlags): ...to new
 
851
        functions.
 
852
        (esxDriver): Trivially support the new API.
 
853
        * src/openvz/openvz_driver.c (openvzDomainSetVcpus)
 
854
        (openvzDomainSetVcpusFlags, openvzDomainGetMaxVcpus)
 
855
        (openvzDomainGetVcpusFlags, openvzDriver): Likewise.
 
856
        * src/phyp/phyp_driver.c (phypDomainSetCPU)
 
857
        (phypDomainSetVcpusFlags, phypGetLparCPUMAX)
 
858
        (phypDomainGetVcpusFlags, phypDriver): Likewise.
 
859
        * src/qemu/qemu_driver.c (qemudDomainSetVcpus)
 
860
        (qemudDomainSetVcpusFlags, qemudDomainGetMaxVcpus)
 
861
        (qemudDomainGetVcpusFlags, qemuDriver): Likewise.
 
862
        * src/test/test_driver.c (testSetVcpus, testDomainSetVcpusFlags)
 
863
        (testDomainGetMaxVcpus, testDomainGetVcpusFlags, testDriver):
 
864
        Likewise.
 
865
        * src/vbox/vbox_tmpl.c (vboxDomainSetVcpus)
 
866
        (vboxDomainSetVcpusFlags, virDomainGetMaxVcpus)
 
867
        (virDomainGetVcpusFlags, virDriver): Likewise.
 
868
        * src/xen/xen_driver.c (xenUnifiedDomainSetVcpus)
 
869
        (xenUnifiedDomainSetVcpusFlags, xenUnifiedDomainGetMaxVcpus)
 
870
        (xenUnifiedDomainGetVcpusFlags, xenUnifiedDriver): Likewise.
 
871
        * src/xenapi/xenapi_driver.c (xenapiDomainSetVcpus)
 
872
        (xenapiDomainSetVcpusFlags, xenapiDomainGetMaxVcpus)
 
873
        (xenapiDomainGetVcpusFlags, xenapiDriver): Likewise.
 
874
        (xenapiError): New helper macro.
 
875
 
 
876
        vcpu: implement the remote protocol
 
877
        Done by editing the first three files, then running
 
878
        'make -C src rpcgen', then editing src/remote_protocol-structs
 
879
        to match.
 
880
 
 
881
        * daemon/remote.c (remoteDispatchDomainSetVcpusFlags)
 
882
        (remoteDispatchDomainGetVcpusFlags): New functions.
 
883
        * src/remote/remote_driver.c (remoteDomainSetVcpusFlags)
 
884
        (remoteDomainGetVcpusFlags, remote_driver): Client side
 
885
        serialization.
 
886
        * src/remote/remote_protocol.x
 
887
        (remote_domain_set_vcpus_flags_args)
 
888
        (remote_domain_get_vcpus_flags_args)
 
889
        (remote_domain_get_vcpus_flags_ret)
 
890
        (REMOTE_PROC_DOMAIN_SET_VCPUS_FLAGS)
 
891
        (REMOTE_PROC_DOMAIN_GET_VCPUS_FLAGS): Define wire format.
 
892
        * daemon/remote_dispatch_args.h: Regenerate.
 
893
        * daemon/remote_dispatch_prototypes.h: Likewise.
 
894
        * daemon/remote_dispatch_table.h: Likewise.
 
895
        * src/remote/remote_protocol.c: Likewise.
 
896
        * src/remote/remote_protocol.h: Likewise.
 
897
        * src/remote_protocol-structs: Likewise.
 
898
 
 
899
        vcpu: implement the public APIs
 
900
        Factors common checks (such as nonzero vcpu count) up front, but
 
901
        drivers will still need to do additional flag checks.
 
902
 
 
903
        * src/libvirt.c (virDomainSetVcpusFlags, virDomainGetVcpusFlags):
 
904
        New functions.
 
905
        (virDomainSetVcpus, virDomainGetMaxVcpus): Refer to new API.
 
906
 
 
907
        vcpu: define internal driver API
 
908
        * src/driver.h (virDrvDomainSetVcpusFlags)
 
909
        (virDrvDomainGetVcpusFlags): New typedefs.
 
910
        (_virDriver): New callback members.
 
911
        * src/esx/esx_driver.c (esxDriver): Add stub for driver.
 
912
        * src/lxc/lxc_driver.c (lxcDriver): Likewise.
 
913
        * src/opennebula/one_driver.c (oneDriver): Likewise.
 
914
        * src/openvz/openvz_driver.c (openvzDriver): Likewise.
 
915
        * src/phyp/phyp_driver.c (phypDriver): Likewise.
 
916
        * src/qemu/qemu_driver.c (qemuDriver): Likewise.
 
917
        * src/remote/remote_driver.c (remote_driver): Likewise.
 
918
        * src/test/test_driver.c (testDriver): Likewise.
 
919
        * src/uml/uml_driver.c (umlDriver): Likewise.
 
920
        * src/vbox/vbox_tmpl.c (Driver): Likewise.
 
921
        * src/xen/xen_driver.c (xenUnifiedDriver): Likewise.
 
922
        * src/xenapi/xenapi_driver.c (xenapiDriver): Likewise.
 
923
 
 
924
        vcpu: add new public API
 
925
        API agreed on in
 
926
        https://www.redhat.com/archives/libvir-list/2010-September/msg00456.html,
 
927
        but modified for enum names to be consistent with virDomainDeviceModifyFlags.
 
928
 
 
929
        * include/libvirt/libvirt.h.in (virDomainVcpuFlags)
 
930
        (virDomainSetVcpusFlags, virDomainGetVcpusFlags): New
 
931
        declarations.
 
932
        * src/libvirt_public.syms: Export new symbols.
 
933
 
 
934
        vcpu: add current attribute to <vcpu> element
 
935
        Syntax agreed on in
 
936
        https://www.redhat.com/archives/libvir-list/2010-September/msg00476.html
 
937
 
 
938
        <domain ...>
 
939
          <vcpu current='x'>y</vcpu>
 
940
        ...
 
941
 
 
942
        can now be used to specify 1 <= x <= y current vcpus, in relation
 
943
        to the boot-time max of y vcpus.  If current is omitted, then
 
944
        current and max are assumed to be the same value.
 
945
 
 
946
        * docs/schemas/domain.rng: Add new attribute.
 
947
        * docs/formatdomain.html.in: Document it.
 
948
        * tests/qemuxml2argvdata/qemuxml2argv-smp.xml: Add to
 
949
        domainschematest.
 
950
        * tests/xml2sexprdata/xml2sexpr-pv-vcpus.xml: Likewise.
 
951
 
 
952
2010-10-19  Stefan Berger  <stefanb@us.ibm.com>
 
953
 
 
954
        nwfilter: changes to rules in VM->host table
 
955
        In the table built for traffic coming from the VM going to the host make the following changes:
 
956
 
 
957
        - don't ACCEPT the packets but do a 'RETURN' and let the host-specific firewall rules in subsequent rules evaluate whether the traffic is allowed to enter
 
958
 
 
959
        - use the '-m state' in the rules as everywhere else
 
960
 
 
961
2010-10-19  Eric Blake  <eblake@redhat.com>
 
962
 
 
963
        build: avoid false positive syntax-check failure
 
964
        * .x-sc_po_check: Exclude docs directory.
 
965
 
 
966
2010-10-19  Matthias Bolte  <matthias.bolte@googlemail.com>
 
967
 
 
968
        proxy: Fix undefined reference to virClose
 
969
        Add src/util/files.c to libvirt_proxy_SOURCES.
 
970
 
 
971
        esx: Handle non-UTF-8 encoded VMX files
 
972
        ESX(i) uses UTF-8, but a Windows based GSX server writes
 
973
        Windows-1252 encoded VMX files.
 
974
 
 
975
        Add a test case to ensure that libxml2 provides Windows-1252
 
976
        to UTF-8 conversion.
 
977
 
 
978
2010-10-19  Stefan Berger  <stefanb@us.ibm.com>
 
979
 
 
980
        Introduce VIR_CLOSE to be used rather than close()
 
981
        Since bugs due to double-closed file descriptors are difficult to track down in a multi-threaded system, I am introducing the VIR_CLOSE(fd) macro to help avoid mistakes here.
 
982
 
 
983
        There are lots of places where close() is being used. In this patch I am only cleaning up usage of close() in src/conf where the problems were.
 
984
 
 
985
        I also dare to declare close() as being deprecated in libvirt code base (HACKING).
 
986
 
 
987
2010-10-19  Dan Kenigsberg  <danken@redhat.com>
 
988
 
 
989
        root_squash: virFileOperation may fail with EPERM too
 
990
        Over root-squashing nfs, when virFileOperation() is called as uid==0,
 
991
        it may fail with EACCES, but also with EPERM, due to
 
992
        virFileOperationNoFork()'s failed attemp to chown a writable file.
 
993
 
 
994
        qemudDomainSaveFlag() should expect this case, too.
 
995
 
 
996
        Run initgroups() in qemudOpenAsUID()
 
997
        qemudOpenAsUID is intended to open a file with the credentials of a
 
998
        specified uid. Current implementation fails if the file is accessible to
 
999
        one of uid's groups but not owned by uid.
 
1000
 
 
1001
        This patch replaces the supplementary group list that the child process
 
1002
        inherited from libvirtd with the default group list of uid.
 
1003
 
 
1004
2010-10-19  Nikunj A. Dadhania  <nikunj@linux.vnet.ibm.com>
 
1005
 
 
1006
        memtune: Add min_guarantee to the virsh memtune command
 
1007
        * tools/virsh.c: Add new memory tunable "min_guarantee", currently only
 
1008
          ESX can use this
 
1009
        * tools/virsh.pod: Update the manpage
 
1010
 
 
1011
        Update docs for memory parameters and memtune command
 
1012
        * docs/formatdomain.html.in: Add memtune element details, added min_guarantee
 
1013
        * src/libvirt.c: Update virDomainGetMemoryParameters api description, make
 
1014
          it more clear that the user first needs to call the api to get the number
 
1015
          of parameters supported and then call again to get the values.
 
1016
        * tools/virsh.pod: Add usage of new command memtune in virsh manpage
 
1017
 
 
1018
2010-10-18  Dan Kenigsberg  <danken@redhat.com>
 
1019
 
 
1020
        qemu: let qemu group look below /var/lib/libvirt/qemu/
 
1021
        Vdsm needs to communicate with its guest agent via unix domain socket,
 
1022
        which qemu creates due to the following domain xml device:
 
1023
 
 
1024
            <channel type='unix'>
 
1025
              <target type='virtio' name='com.redhat.rhevm.vdsm'/>
 
1026
              <source mode='bind' path='/var/lib/libvirt/qemu/channels/fcp-xp-1.com.redhat.rhevm.vdsm'/>
 
1027
            </channel>
 
1028
 
 
1029
        The location of the socket below /var/lib/libvirt/qemu/channels makes
 
1030
        sense, to humans and selinux policy alike. However, that socket should
 
1031
        be accessible to vdsm, too.
 
1032
 
 
1033
        Due to other (storage) reasons, vdsm is to join the "qemu" group. With
 
1034
        this patch, vdsm can look below /var/lib/libvirt/qemu and connect to the
 
1035
        socket.
 
1036
 
 
1037
        The socket itself should be chmod'ed to allow qemu group read/write, but
 
1038
        that's for another project.
 
1039
 
 
1040
        BZ#643407
 
1041
 
 
1042
2010-10-16  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1043
 
 
1044
        esx: Fix check in esxDomainGetInfo's perf metric handling
 
1045
 
 
1046
2010-10-16  Eric Blake  <eblake@redhat.com>
 
1047
 
 
1048
        build: use latest gnulib, for ignore-value fix
 
1049
        * .gnulib: Update to latest.
 
1050
 
 
1051
2010-10-15  Eric Blake  <eblake@redhat.com>
 
1052
 
 
1053
        virsh: add tests for recent cli improvements
 
1054
        * tests/virshtest.c (mymain): Add tests of command parsing and
 
1055
        echo command.
 
1056
 
 
1057
        virsh: new echo command
 
1058
        * tools/virsh.c (cmdEcho): New command.
 
1059
        (commands): Add it.
 
1060
        * tools/virsh.pod (echo): Document it.
 
1061
 
 
1062
        virsh: add support for accepting arbitrary argv
 
1063
        * tools/virsh.c (vshCmdOptType): Add VSH_OT_ARGV.  Delete
 
1064
        unused VSH_OT_NONE.
 
1065
        (vshCmddefGetData): Special case new opt flag.
 
1066
        (vshCmddefHelp): Display help for argv.
 
1067
        (vshCommandOptArgv): New function.
 
1068
 
 
1069
        docs: document how to disable memballoon
 
1070
        https://bugzilla.redhat.com/show_bug.cgi?id=623903 documents a qemu
 
1071
        bug that causes libvirt to hang if virt-manager happens to be
 
1072
        querying balloon info when a guest is paused.  Until the qemu bug
 
1073
        is fixed, people need to know how to avoid the issue.
 
1074
 
 
1075
        * docs/formatdomain.html.in (Memory balloon device): Mention
 
1076
        model='none'.
 
1077
 
 
1078
2010-10-15  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1079
 
 
1080
        esx: Explictly declare VMX file content as UTF-8
 
1081
 
 
1082
2010-10-15  Laine Stump  <laine@laine.org>
 
1083
 
 
1084
        Fix warning about a non-literal format string in qemu_driver.c
 
1085
 
 
1086
2010-10-15  Eric Blake  <eblake@redhat.com>
 
1087
 
 
1088
        build: skip xenapi driver when building for RHEL
 
1089
        https://bugzilla.redhat.com/show_bug.cgi?id=643118
 
1090
 
 
1091
        * libvirt.spec.in: Provide xenapi conditionals.
 
1092
 
 
1093
2010-10-14  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1094
 
 
1095
        esx: Handle name escaping properly
 
1096
        VMware uses a mix of percent-, pipe- and base64-encoding in
 
1097
        different combinations in different places.
 
1098
 
 
1099
        Add a testcase for this.
 
1100
 
 
1101
2010-10-14  Stefan Berger  <stefanb@us.ibm.com>
 
1102
 
 
1103
        nwfilter: prevent filters with different name but same UUID
 
1104
        Patch to prevent multiple nwfilters with different name but same UUID.
 
1105
 
 
1106
2010-10-14  Eric Blake  <eblake@redhat.com>
 
1107
 
 
1108
        maint: add recent author
 
1109
        * AUTHORS: List Harsh Prateek Bora, for 'make syntax-check'.
 
1110
 
 
1111
        build: fix accidental submodule reversion
 
1112
        * .gnulib: Undo change in previous commit.
 
1113
 
 
1114
2010-10-14  Harsh Prateek Bora  <harsh@linux.vnet.ibm.com>
 
1115
 
 
1116
        new attribute accessmode to filesystem element
 
1117
        This introduces new attribute to filesystem element
 
1118
        to support customizable access mode for mount type.
 
1119
        Valid accessmode are: passthrough, mapped and squash.
 
1120
 
 
1121
        Usage:
 
1122
                <filesystem type='mount' accessmode='passthrough'>
 
1123
                  <source dir='/export/to/guest'/>
 
1124
                  <target dir='mount_tag'/>
 
1125
                </filesystem>
 
1126
 
 
1127
        passthrough is the default model if not specified, that's
 
1128
        also the current behaviour.
 
1129
 
 
1130
2010-10-14  Stefan Berger  <stefanb@us.ibm.com>
 
1131
 
 
1132
        nwfilter: cut off connections after changing filters
 
1133
        The following filter transition from a filter allowing incoming TCP connections
 
1134
 
 
1135
          <rule action='accept' direction='in' priority='401'>
 
1136
            <tcp/>
 
1137
          </rule>
 
1138
          <rule action='accept' direction='out' priority='500'>
 
1139
            <tcp/>
 
1140
          </rule>
 
1141
 
 
1142
        to one that does not allow them
 
1143
 
 
1144
          <rule action='drop' direction='in' priority='401'>
 
1145
            <tcp/>
 
1146
          </rule>
 
1147
          <rule action='accept' direction='out' priority='500'>
 
1148
            <tcp/>
 
1149
          </rule>
 
1150
 
 
1151
        did previously not cut off existing (ssh) connections but only prevented newly initiated ones. The attached patch allows to cut off existing connections as well, thus enforcing what the filter is showing.
 
1152
 
 
1153
        I had only tested with a configuration where the physical interface is connected to the bridge where the filters are applied. This patch now also solves a filtering problem where the physical interface is not connected to the bridge, but the bridge is given an IP address and the host routes between bridge and physical interface. Here the filters drop non-allowed traffic on the outgoing side on the host.
 
1154
 
 
1155
2010-10-14  Eric Blake  <eblake@redhat.com>
 
1156
 
 
1157
        build: provide URL in 'configure --help'
 
1158
        * configure.ac (AC_INIT): Provide email and URL.
 
1159
 
 
1160
        build: fix mingw build
 
1161
        * .gnulib: Update to latest, for termios fix.
 
1162
        * configure.ac (AC_CHECK_HEADERS): Drop redundent check.
 
1163
        * bootstrap: Synchronize from upstream.
 
1164
        Reported by Daniel P. Berrange.
 
1165
 
 
1166
2010-10-14  Jiri Denemark  <jdenemar@redhat.com>
 
1167
 
 
1168
        qemu: Prohibit migration of guests with host devices
 
1169
        Explicitly raising a nice error in the case user tries to migrate a
 
1170
        guest with assigned host devices is much better than waiting for a
 
1171
        mysterious error with no clue for the reason.
 
1172
 
 
1173
        tests: Honor LIBVIRT_{DEBUG,LOG_*} variables
 
1174
 
 
1175
        tests: Do not override LIBVIRT_DEBUG variable
 
1176
 
 
1177
        cpu: Use vendor in baseline CPU only if all hosts use it
 
1178
        When only some host CPUs given to cpuBaseline contain <vendor> element,
 
1179
        baseline CPU should not contain it. Otherwise the result would not be
 
1180
        compatible with the host CPUs without vendor. CPU vendors are still
 
1181
        taken into account when computing baseline CPU, it's just removed from
 
1182
        the result.
 
1183
 
 
1184
        cpu: Fix vendor for recent CPU models
 
1185
        Recent CPU models were specified using invalid vendor element
 
1186
        <vendor>NAME</vendor>, which was silently ignored due to a bug in the
 
1187
        code which was parsing it.
 
1188
 
 
1189
2010-10-14  Stefan Berger  <stefanb@us.ibm.com>
 
1190
 
 
1191
        test: silence nwfilter test
 
1192
         This patch silences the nwfilter test case.
 
1193
 
 
1194
2010-10-13  Eric Blake  <eblake@redhat.com>
 
1195
 
 
1196
        tests: fix spurious test failure
 
1197
        Failure introduced in commit 3a092f389.
 
1198
 
 
1199
        * tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr: Fix typo.
 
1200
 
 
1201
        memory: fix remote protocol compilation
 
1202
        'make -C src rpcgen' is supposed to be idempotent.  But commit
 
1203
        f928f43b7b mistakently manually edited a generated file rather
 
1204
        than fixing the upstream file.
 
1205
 
 
1206
        * src/remote/remote_protocol.x (remote_memory_param_value): Use
 
1207
        correct spelling of enum values.
 
1208
        * src/remote/remote_protocol.c: Regenerate.
 
1209
 
 
1210
2010-10-13  Daniel P. Berrange  <berrange@redhat.com>
 
1211
 
 
1212
        Enable support for nested SVM
 
1213
        This enables support for nested SVM using the regular CPU
 
1214
        model/features block. If the CPU model or features include
 
1215
        'svm', then the '-enable-nesting' flag will be added to the
 
1216
        QEMU command line. Latest out of tree patches for nested
 
1217
        'vmx', no longer require the '-enable-nesting' flag. They
 
1218
        instead just look at the cpu features. Several of the models
 
1219
        already include svm support, but QEMU was just masking out
 
1220
        the svm bit silently. So this will enable SVM on such
 
1221
        models
 
1222
 
 
1223
        * src/qemu/qemu_conf.h: flag for -enable-nesting
 
1224
        * src/qemu/qemu_conf.c: Use -enable-nesting if VMX or SVM are in
 
1225
          the CPUID
 
1226
        * src/cpu/cpu.h, src/cpu/cpu.c: API to check for a named feature
 
1227
        * src/cpu/cpu_x86.c: x86 impl of feature check
 
1228
        * src/libvirt_private.syms: Add cpuHasFeature
 
1229
        * src/qemuhelptest.c: Add nesting flag where required
 
1230
 
 
1231
        Improve error reporting in test suites
 
1232
        Before running each test case clear the thread local error
 
1233
        indicator. After running each test case, dispatch any error
 
1234
        that was reported
 
1235
 
 
1236
        * tests/testutils.c: Fix error reporting in test suites
 
1237
 
 
1238
        Update todo list file to point at bugzilla/website
 
1239
        The TODO list changes frequently so cannot be well maintained
 
1240
        under GIT. Update the TODO file to point people at bugzilla
 
1241
        and the libvirt website
 
1242
 
 
1243
        * TODO: Point at bugzilla/website
 
1244
 
 
1245
        Fix Xen SEXPR generation to properly quote strings containing ()
 
1246
        * src/xen/sexpr.c: Ensure () are escaped in sexpr2string
 
1247
        * tests/sexpr2xmldata/sexpr2xml-boot-grub.sexpr,
 
1248
          tests/sexpr2xmldata/sexpr2xml-boot-grub.xml,
 
1249
          tests/xml2sexprdata/xml2sexpr-boot-grub.sexpr,
 
1250
          tests/xml2sexprdata/xml2sexpr-boot-grub.xml: Data files to
 
1251
          check escaping
 
1252
        * tests/sexpr2xmltest.c, tests/xml2sexprtest.c: Add boot-grub
 
1253
          escaping test case
 
1254
 
 
1255
2010-10-13  Stefan Berger  <stefanb@us.ibm.com>
 
1256
 
 
1257
        nwfilter: resolve deadlock between VM ops and filter update
 
1258
         This is from a bug report and conversation on IRC where Soren reported that while a filter update is occurring on one or more VMs (due to a rule having been edited for example), a deadlock can occur when a VM referencing a filter is started.
 
1259
 
 
1260
        The problem is caused by the two locking sequences of
 
1261
 
 
1262
        qemu driver, qemu domain, filter             # for the VM start operation
 
1263
        filter, qemu_driver, qemu_domain            # for the filter update operation
 
1264
 
 
1265
        that obviously don't lock in the same order. The problem is the 2nd lock sequence. Here the qemu_driver lock is being grabbed in qemu_driver:qemudVMFilterRebuild()
 
1266
 
 
1267
        The following solution is based on the idea of trying to re-arrange the 2nd sequence of locks as follows:
 
1268
 
 
1269
        qemu_driver, filter, qemu_driver, qemu_domain
 
1270
 
 
1271
        and making the qemu driver recursively lockable so that a second lock can occur, this would then lead to the following net-locking sequence
 
1272
 
 
1273
        qemu_driver, filter, qemu_domain
 
1274
 
 
1275
        where the 2nd qemu_driver lock has been ( logically ) eliminated.
 
1276
 
 
1277
        The 2nd part of the idea is that the sequence of locks (filter, qemu_domain) and (qemu_domain, filter) becomes interchangeable if all code paths where filter AND qemu_domain are locked have a preceding qemu_domain lock that basically blocks their concurrent execution
 
1278
 
 
1279
        So, the following code paths exist towards qemu_driver:qemudVMFilterRebuild where we now want to put a qemu_driver lock in front of the filter lock.
 
1280
 
 
1281
        -> nwfilterUndefine()   [ locks the filter ]
 
1282
            -> virNWFilterTestUnassignDef()
 
1283
                -> virNWFilterTriggerVMFilterRebuild()
 
1284
                    -> qemudVMFilterRebuild()
 
1285
 
 
1286
        -> nwfilterDefine()
 
1287
            -> virNWFilterPoolAssignDef() [ locks the filter ]
 
1288
                -> virNWFilterTriggerVMFilterRebuild()
 
1289
                    -> qemudVMFilterRebuild()
 
1290
 
 
1291
        -> nwfilterDriverReload()
 
1292
            -> virNWFilterPoolLoadAllConfigs()
 
1293
                ->virNWFilterPoolObjLoad()
 
1294
                    -> virNWFilterPoolAssignDef() [ locks the filter ]
 
1295
                        -> virNWFilterTriggerVMFilterRebuild()
 
1296
                            -> qemudVMFilterRebuild()
 
1297
 
 
1298
        -> nwfilterDriverStartup()
 
1299
            -> virNWFilterPoolLoadAllConfigs()
 
1300
                ->virNWFilterPoolObjLoad()
 
1301
                    -> virNWFilterPoolAssignDef() [ locks the filter ]
 
1302
                        -> virNWFilterTriggerVMFilterRebuild()
 
1303
                            -> qemudVMFilterRebuild()
 
1304
 
 
1305
        Qemu is not the only driver using the nwfilter driver, but also the UML driver calls into it. Therefore qemuVMFilterRebuild() can be exchanged with umlVMFilterRebuild() along with the driver lock of qemu_driver that can now be a uml_driver. Further, since UML and Qemu domains can be running on the same machine, the triggering of a rebuild of the filter can touch both types of drivers and their domains.
 
1306
 
 
1307
        In the patch below I am now extending each nwfilter callback driver with functions for locking and unlocking the (VM) driver (UML, QEMU) and introduce new functions for locking all registered callback drivers and unlocking them. Then I am distributing the lock-all-cbdrivers/unlock-all-cbdrivers call into the above call paths. The last shown callpath starting with nwfilterDriverStart() is problematic since it is initialize before the Qemu and UML drives are and thus a lock in the path would result in a NULL pointer attempted to be locked -- the call to virNWFilterTriggerVMFilterRebuild() is never called, so we never lock either the qemu_driver or the uml_driver in that path. Therefore, only the first 3 paths now receive calls to lock and unlock all callback drivers. Now that the locks are distributed where it matters I can remove the qemu_driver and uml_driver lock from qemudVMFilterRebuild() and umlVMFilterRebuild() and not requiring the recursive locks.
 
1308
 
 
1309
        For now I want to put this out as an RFC patch. I have tested it by 'stretching' the critical section after the define/undefine functions each lock the filter so I can (easily) concurrently execute another VM operation (suspend,start). That code is in this patch and if you want you can de-activate it. It seems to work ok and operations are being blocked while the update is being done.
 
1310
        I still also want to verify the other assumption above that locking filter and qemu_domain always has a preceding qemu_driver lock.
 
1311
 
 
1312
2010-10-13  Eric Blake  <eblake@redhat.com>
 
1313
 
 
1314
        virsh: update comment about parsing
 
1315
        * tools/virsh.c: Update comments to match patch series.
 
1316
 
 
1317
        virsh: move code into topological order
 
1318
        * tools/virsh.c (vshCommandParse): Float up, to avoid the need for
 
1319
        a forward declaration.
 
1320
 
 
1321
        virsh: simplify top-level option parsing
 
1322
        This makes 'virsh --conn test:///default help help' work right;
 
1323
        previously, the abbreviation confused our hand-rolled option parsing.
 
1324
 
 
1325
        * tools/virsh.c (vshParseArgv): Use getopt_long feature, rather
 
1326
        than (incorrectly) reparsing options ourselves.
 
1327
 
 
1328
2010-10-13  Lai Jiangshan  <laijs@cn.fujitsu.com>
 
1329
 
 
1330
        virsh: add -- support
 
1331
        "--" means no option at the following arguments.
 
1332
 
 
1333
        virsh: support single quote
 
1334
        Some users may type command like this at the virsh shell:
 
1335
        virsh # somecmd 'some arg'
 
1336
 
 
1337
        because they often use single quote in linux shell.
 
1338
 
 
1339
        virsh: add escaper \ for command string parsing
 
1340
        add escaper \ for command string parsing, example:
 
1341
 
 
1342
        virsh # cd /path/which/have/a/double\"quote
 
1343
 
 
1344
2010-10-13  Eric Blake  <eblake@redhat.com>
 
1345
 
 
1346
        virsh: document options in man page
 
1347
        * tools/virsh.pod: Document top-level options.
 
1348
 
 
1349
2010-10-13  Lai Jiangshan  <laijs@cn.fujitsu.com>
 
1350
 
 
1351
        virsh: rework command parsing
 
1352
        Old virsh command parsing mashes all the args back into a string and
 
1353
        miss the quotes, this patches fix it. It is also needed for introducing
 
1354
        qemu-monitor-command which is very useful.
 
1355
 
 
1356
        This patches uses the new vshCommandParser abstraction and adds
 
1357
        vshCommandArgvParse() for arguments vector, so we don't need
 
1358
        to mash arguments vector into a command sting.
 
1359
 
 
1360
        And the usage was changed:
 
1361
        old:
 
1362
        virsh [options] [commands]
 
1363
 
 
1364
        new:
 
1365
        virsh [options]... [<command_string>]
 
1366
        virsh [options]... <command> [args...]
 
1367
 
 
1368
        So we still support commands like:
 
1369
        "define D.xml; dumpxml D" was parsed as a commands-string.
 
1370
 
 
1371
        and support commands like:
 
1372
        we will not mash them into a string, we use new argv parser for it.
 
1373
 
 
1374
        But we don't support the command like:
 
1375
        "define D.xml; dumpxml" was parsed as a command-name, but we have no such command-name.
 
1376
 
 
1377
        virsh: add vshCommandParser abstraction
 
1378
        add vshCommandParser and make vshCommandParse() accept different
 
1379
        parsers.
 
1380
 
 
1381
        the current code for parse command string is integrated as
 
1382
        vshCommandStringParse().
 
1383
 
 
1384
        virsh: better handling the boolean option
 
1385
        in old code the following commands are equivalent:
 
1386
             virsh # dumpxml --update-cpu=vm1
 
1387
             virsh # dumpxml --update-cpu vm1
 
1388
        because the old code split the option argument into 2 parts:
 
1389
        --update-cpu=vm1 is split into update-cpu and vm1,
 
1390
        and update-cpu is a boolean option, so the parser takes vm1 as another
 
1391
        argument, very strange.
 
1392
 
 
1393
        after this patch applied, the first one will become illegal.
 
1394
 
 
1395
        To achieve this, we don't parse/check options when parsing command sting,
 
1396
        but check options when parsing a command argument. And the argument is
 
1397
        not split when parsing command sting.
 
1398
 
 
1399
        virsh: allow zero length arguments
 
1400
        the following command is allowed at shell, we also make it allowed at virsh shell.
 
1401
 
 
1402
2010-10-13  Eric Blake  <eblake@redhat.com>
 
1403
 
 
1404
        virsh: poison raw allocation routines
 
1405
        * tools/virsh.c (malloc, calloc, realloc, strdup): Enforce that
 
1406
        within this file, we use the safe vsh wrappers instead.
 
1407
        (cmdNodeListDevices, cmdSnapshotCreate, main): Fix violations of
 
1408
        this policy.
 
1409
 
 
1410
2010-10-13  Lai Jiangshan  <laijs@cn.fujitsu.com>
 
1411
 
 
1412
        virsh: better support double quote
 
1413
        In origin code, double quote is only allowed at the begin or end
 
1414
        "complicated argument"
 
1415
        --some_opt="complicated string"  (we split this argument into 2 parts,
 
1416
        option and data, the data is "complicated string").
 
1417
 
 
1418
        This patch makes it allow double quote at any position of
 
1419
        an argument:
 
1420
        complicated" argument"
 
1421
        complicated" "argument
 
1422
        --"some opt=complicated string"
 
1423
 
 
1424
        This patch is also needed for the following patches,
 
1425
        the following patches will not split option argument into 2 parts,
 
1426
        so we have to allow double quote at any position of an argument.
 
1427
 
 
1428
2010-10-13  Guido Günther  <agx@sigxcpu.org>
 
1429
 
 
1430
        Don't fail on missing D-Bus
 
1431
        We don't fail when we can't contact HAL so we shouldn't fail if we can't
 
1432
        contact D-Bus either.
 
1433
 
 
1434
2010-10-13  Daniel Veillard  <veillard@redhat.com>
 
1435
 
 
1436
        Fixes for documentation extraction
 
1437
        * include/libvirt/libvirt.h.in: some of the function type description
 
1438
          were broken so they could not be automatically documented
 
1439
        * src/util/event.c docs/apibuild.py: event.c exports one public API
 
1440
          so it needs to be scanned too, avoid a few warnings
 
1441
 
 
1442
2010-10-13  Daniel P. Berrange  <berrange@redhat.com>
 
1443
 
 
1444
        Implement support for virtio plan9fs filesystem passthrough in QEMU
 
1445
        Make use of the existing <filesystem> element to support plan9fs
 
1446
        filesystem passthrough in the QEMU driver
 
1447
 
 
1448
            <filesystem type='mount'>
 
1449
              <source dir='/export/to/guest'/>
 
1450
              <target dir='/import/from/host'/>
 
1451
            </filesystem>
 
1452
 
 
1453
        NB, the target is not actually a directory, it is merely a arbitrary
 
1454
        string tag that is exported to the guest as a hint for where to mount
 
1455
        it.
 
1456
 
 
1457
        Add todo.pl and config example to EXTRA_DIST
 
1458
        * docs/Makefile.am: Add todo.pl and todo.cfg-example to EXTRA_DIST
 
1459
 
 
1460
2010-10-12  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1461
 
 
1462
        Fix several minor problems introduced by the memtune series
 
1463
        Add proper documentation to the new VIR_DOMAIN_MEMORY_* macros in
 
1464
        libvirt.h.in to placate apibuild.py.
 
1465
 
 
1466
        Mark args as unused in for libvirt_virDomain{Get,Set}MemoryParameters
 
1467
        in the Python bindings and add both to the libvirtMethods array.
 
1468
 
 
1469
        Update remote_protocol-structs to placate make syntax-check.
 
1470
 
 
1471
        Undo unintended modifications in vboxDomainGetInfo.
 
1472
 
 
1473
        Update the function table of the VirtualBox and XenAPI drivers.
 
1474
 
 
1475
2010-10-12  Nikunj A. Dadhania  <nikunj@linux.vnet.ibm.com>
 
1476
 
 
1477
        Remote protocol implementation of virDomainSet/GetMemoryParameters
 
1478
 
 
1479
        Adding memtune command to virsh tool
 
1480
        The command helps to control the memory/swap parameters for the system, for
 
1481
        eg. hard_limit (max memory the vm can use), soft_limit (limit during memory
 
1482
        contention), swap_hard_limit(max swap the vm can use)
 
1483
 
 
1484
2010-10-12  Daniel Veillard  <veillard@redhat.com>
 
1485
 
 
1486
        Avoid checking against strncpy in virsh.c
 
1487
        since the replacement function virStrcpy is not available
 
1488
 
 
1489
2010-10-12  Nikunj A. Dadhania  <nikunj@linux.vnet.ibm.com>
 
1490
 
 
1491
        Implement domainGetMemoryParamters for LXC
 
1492
        Driver interface for getting memory parameters, eg. hard_limit,
 
1493
        soft_limit and swap_hard_limit.
 
1494
 
 
1495
        Implement domainSetMemoryParamters for LXC
 
1496
        Add support in the lxc driver for various memory controllable parameters
 
1497
 
 
1498
        Adding memtunables to libvirt-lxc command
 
1499
        libvirt-lxc now configures the hardlimit, softlimit and swaplimit, if
 
1500
        specified in the domain xml file or picks up the defaults.
 
1501
 
 
1502
        Adding memtunables to qemuSetupCgroup
 
1503
        QEmu startup will pick up the memory tunables specified in the domain
 
1504
        configuration file
 
1505
 
 
1506
        Implement domainGetMemoryParamters for QEmu
 
1507
        Driver interface for getting memory parameters, eg. hard_limit,
 
1508
        soft_limit and swap_hard_limit based on cgroup support
 
1509
 
 
1510
        Implement domainSetMemoryParamters for QEmu
 
1511
        Driver interface for setting memory hard_limit, soft_limit and swap
 
1512
        hard_limit based on cgroup support
 
1513
 
 
1514
        Implement cgroup memory controller tunables
 
1515
        Provides interfaces for setting/getting memory tunables like hard_limit,
 
1516
        soft_limit and swap_hard_limit
 
1517
 
 
1518
        XML parsing for memory tunables
 
1519
        Adding parsing code for memory tunables in the domain xml file
 
1520
        also change the internal define structures used for domain memory
 
1521
        informations
 
1522
        Adds a new specific test
 
1523
 
 
1524
2010-10-12  Daniel Veillard  <veillard@redhat.com>
 
1525
 
 
1526
        Cleanup some tabs issues
 
1527
 
 
1528
2010-10-12  Nikunj A. Dadhania  <nikunj@linux.vnet.ibm.com>
 
1529
 
 
1530
        Adds xml entries for memory tunables in domain schema
 
1531
        The patch adds xml entries to the domain.rng file.
 
1532
 
 
1533
        v2:
 
1534
        + Fix typo min_guarantee
 
1535
 
 
1536
        Adding virDomainSetMemoryParameters and virDomainGetMemoryParameters API
 
1537
        Public api to set/get memory tunables supported by the hypervisors.
 
1538
 
 
1539
        dv:
 
1540
        * some cleanups in libvirt.c
 
1541
        * adding extra checks in libvirt.c new entry points
 
1542
 
 
1543
        v4:
 
1544
        * Move exporting public API to this patch
 
1545
        * Add unsigned int flags to the public api for future extensions
 
1546
 
 
1547
        v3:
 
1548
        * Add domainGetMemoryParamters and NULL in all the driver interface
 
1549
 
 
1550
        v2:
 
1551
        * Initialize domainSetMemoryParameters to NULL in all the driver
 
1552
          interface structure.
 
1553
 
 
1554
        Adding structure and defines for virDomainSet/GetMemoryParameters
 
1555
        This patch adds a structure virMemoryParameter, it contains the name of
 
1556
        the
 
1557
        parameter and the type of the parameter along with a union.
 
1558
 
 
1559
        dv:
 
1560
        + rename enums to VIR_DOMAIN_MEMORY_PARAM_*
 
1561
        + remove some extraneous tabs
 
1562
 
 
1563
        v4:
 
1564
        + Add unsigned int flags to the public api for future extensions
 
1565
 
 
1566
        v3:
 
1567
        + Protoype for virDomainGetMemoryParameters and dummy python binding.
 
1568
 
 
1569
        v2:
 
1570
        + Includes dummy python bindings for the library to build cleanly.
 
1571
        + Define string constants like "hard_limit", etc.
 
1572
        + re-order this patch.
 
1573
 
 
1574
2010-10-12  Jiri Denemark  <jdenemar@redhat.com>
 
1575
 
 
1576
        cpu: Remove redundant features
 
1577
        Some features provided by the recently added CPU models were mentioned
 
1578
        twice for each model. This was a result of automatic generation of the
 
1579
        XML from qemu's CPU configuration file without noticing this redundancy.
 
1580
 
 
1581
2010-10-12  Eric Blake  <eblake@redhat.com>
 
1582
 
 
1583
        util: add missing export
 
1584
        Commit 1fe2927a3 forgot to export a symbol.
 
1585
 
 
1586
        * src/libvirt_private.syms (virHexToBin): Add.
 
1587
        * src/.gitignore: Ignore temporary file.
 
1588
 
 
1589
2010-10-12  Daniel P. Berrange  <berrange@redhat.com>
 
1590
 
 
1591
        Set sensible defaults for cpu match and feature policy
 
1592
        To enable the CPU XML from the capabilities to be pasted directly
 
1593
        into the guest XML with no editing, pick a sensible default for
 
1594
        match and feature policy. The CPU match will be exact and the
 
1595
        feature policy will be require. This should ensure safety for
 
1596
        migration and give DWIM semantics for users
 
1597
 
 
1598
        * src/conf/cpu_conf.c: Default to exact match and require policy
 
1599
        * docs/formatdomain.html.in: Document new defaults
 
1600
 
 
1601
        Add automatic generation of a todo item page
 
1602
        This adds a script to generate the todo item page from
 
1603
        bugzilla. This requires a valid username+password for
 
1604
        bugzilla, so it is intended that this only be run on
 
1605
        the libvirt.org website via cron. Normal usage will just
 
1606
        generate an empty stub page.
 
1607
 
 
1608
        * docs/todo.pl: Script to extract todo items from bugzilla
 
1609
        * docs/todo.cfg-example: Example config file
 
1610
        * docs/sitemap.html.in: Add todo page
 
1611
        * docs/Makefile.am: Generation rules for todo items
 
1612
 
 
1613
2010-10-12  Jiri Denemark  <jdenemar@redhat.com>
 
1614
 
 
1615
        xen: Fix virDomain{At,De}tachDevice
 
1616
        According to API documentation virDomain{At,De}tachDevice calls are
 
1617
        supposed to only work on active guests for device hotplug. For anything
 
1618
        beyond that, their *Flags variants have to be used.
 
1619
 
 
1620
        Despite the variant which was acked on libvirt mailing list
 
1621
        (https://www.redhat.com/archives/libvir-list/2010-January/msg00385.html)
 
1622
        commit ed9c14a7ef86d7a45a6d57cbfee5410fca428633 (by Jim Fehlig)
 
1623
        introduced automagic behavior of these API calls for xen driver. Since
 
1624
        January, these calls always change persistent configuration of a guest
 
1625
        and if the guest is currently active, they also hot(un)plug the device.
 
1626
 
 
1627
        That change didn't follow API documentation and also broke device
 
1628
        hot(un)plug for older xend implementations which do not support changing
 
1629
        persistent configuration of a guest and hot(un)plugging in one step.
 
1630
 
 
1631
        This patch should not break anything for active guests. On the other
 
1632
        hand, changing inactive guests is not supported any more.
 
1633
 
 
1634
        xen: xenXMDomain*DeviceFlags should obey all flags
 
1635
        xenXMDomain*DeviceFlags() silently ignores requests to modify live
 
1636
        configuration of an active guest while still touching its persistent
 
1637
        configuration.
 
1638
 
 
1639
        xen: Fix logic bug in xenDaemon*DeviceFlags
 
1640
 
 
1641
        xen: Make xenDaemon*DeviceFlags errors less confusing
 
1642
        When a user calls to virDomain{Attach,Detach,Update}DeviceFlags() with
 
1643
        flags == VIR_DOMAIN_DEVICE_MODIFY_LIVE on an inactive guest running on
 
1644
        an old Xen hypervisor (such as RHEL-5) xend_internal driver reports:
 
1645
 
 
1646
            Xend version does not support modifying persistent config
 
1647
 
 
1648
        which is pretty confusing since no-one requested to modify persistent
 
1649
        config.
 
1650
 
 
1651
2010-10-12  Guido Günther  <agx@sigxcpu.org>
 
1652
 
 
1653
        Return a suitable error message if we can't find a matching emulator
 
1654
 
 
1655
2010-10-08  Guido Günther  <agx@sigxcpu.org>
 
1656
 
 
1657
        Pass -n to ip(6)tables
 
1658
        to avoid long timeouts waiting for DNS servers
 
1659
 
 
1660
2010-10-07  Stefan Berger  <stefanb@us.ibm.com>
 
1661
 
 
1662
        nwfilter: Add 2nd example to the html docs
 
1663
        This patch adds another example to the nwfilter html page and provides 2 solutions for how to write a filter meeting the given requirements using newly added features.
 
1664
 
 
1665
        nwfilter: Extend docs with info about the state attribute
 
1666
        I am adding a row with information about the newly supported state
 
1667
        attribute to each of the tables describing supported attributes of protocols.
 
1668
 
 
1669
        nwfilter: Extend schema to accept state attribute
 
1670
        Extend the nwfilter.rng schema to accept state attribute.
 
1671
 
 
1672
        nwfilter: Add test case for testing the state attribute
 
1673
        This patch adds a test case for testing the XML parser's and instantiator's
 
1674
        support of the state attribute. The other test case tests existing
 
1675
        capabilities. Both test cases will be used in TCK again.
 
1676
 
 
1677
        nwfilter: Instantiate state match in ip(6)tables rules
 
1678
        In this patch I am extending the rule instantiator to create the state
 
1679
        match according to the state attribute in the XML. Only one iptables
 
1680
        rule in the incoming or outgoing direction will be created for a rule
 
1681
        in direction 'in' or 'out' respectively. A rule in direction 'inout' does
 
1682
        get iptables rules in both directions.
 
1683
 
 
1684
        nwfilter: Extend XML parser and gen. to support state attr.
 
1685
        The patch below extends the XML parser and generator so that every l3 protocol
 
1686
        now can have a state attribute.
 
1687
 
 
1688
2010-10-05  Eric Blake  <eblake@redhat.com>
 
1689
 
 
1690
        build: require pkg-config for bootstrap
 
1691
        * .gnulib: Update to latest, for bootstrap fixes.
 
1692
        * bootstrap: Synchronize with upstream.
 
1693
        * bootstrap.conf: Add pkg-config pre-requisite.
 
1694
        * autogen.sh: Tweak wording message.
 
1695
        Reported by Justin Clift, and with feedback from Bruno Haible.
 
1696
 
 
1697
2010-10-05  Jiri Denemark  <jdenemar@redhat.com>
 
1698
 
 
1699
        xen: Fix bogus error when attaching a device
 
1700
        The xm internal xen driver only supports disk and network devices to be
 
1701
        added to a guest. On an attempt to attach any other device the xm driver
 
1702
        used VIR_ERR_XML_ERROR which resulted in a completely bogus error
 
1703
        message:
 
1704
 
 
1705
        error: Failed to attach device from pci.xml
 
1706
        error: XML description for unknown device is not well formed or invalid
 
1707
 
 
1708
2010-10-05  Justin Clift  <jclift@redhat.com>
 
1709
 
 
1710
        configure: disable network and storage-fs drivers on mac os x
 
1711
        Disabling these two drivers on MacOS X, where they are known to
 
1712
        not work, allows libvirt (including the daemon) to compile without
 
1713
        any further changes.
 
1714
 
 
1715
2010-10-04  Stefan Berger  <stefanb@us.ibm.com>
 
1716
 
 
1717
        nwfilter: fix memory leaks
 
1718
        Fixing memory leak shown by valgrind and freeing buffer in two more places.
 
1719
 
 
1720
2010-10-01  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1721
 
 
1722
        esx: Add support for virtual serial device network backing
 
1723
        Since version 4.1 ESX(i) can expose virtual serial devices over TCP.
 
1724
 
 
1725
        Add support in the VMX handling code for this, add test cases to cover
 
1726
        it and add links to some documentation.
 
1727
 
 
1728
        ESX supports two additional protocols: TELNETS and TLS. Add them to
 
1729
        the list of serial-over-TCP protocols.
 
1730
 
 
1731
2010-10-01  Eric Blake  <eblake@redhat.com>
 
1732
 
 
1733
        vcpu: improve cpuset attribute
 
1734
        The <vcpu cpuset=...> attribute has been available since commit
 
1735
        e193b5dd, but without documentation or RNG validation.
 
1736
 
 
1737
        * docs/schemas/domain.rng (vcpu): Further validate cpuset.
 
1738
        * docs/formatdomain.html.in: Document it.
 
1739
        * src/conf/domain_conf.c: Fix typos.
 
1740
 
 
1741
2010-10-01  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1742
 
 
1743
        phyp: Verify that domain XML contains at least one disk element
 
1744
        phypBuildLpar expects that at least one disk element is provided.
 
1745
 
 
1746
2010-09-30  Jamie Strandboge  <jamie@canonical.com>
 
1747
 
 
1748
        virt-aa-helper-test cleanups
 
1749
        Don't cat | sed, just sed.  Suggested by Eric Blake.
 
1750
 
 
1751
        implement usb and pci hot attach in AppArmor driver
 
1752
        Description: Implement AppArmorSetSecurityHostdevLabel() and
 
1753
        AppArmorRestoreSecurityHostdevLabel() for hostdev and pcidev attach.
 
1754
 
 
1755
        virt-aa-helper also has to be adjusted because *FileIterate() is used for pci
 
1756
        and usb devices and the corresponding XML for hot attached hostdev and pcidev
 
1757
        is not in the XML passed to virt-aa-helper. The new '-F filename' option is
 
1758
        added to append a rule to the profile as opposed to the existing '-f
 
1759
        filename', which rewrites the libvirt-<uuid>.files file anew. This new '-F'
 
1760
        option will append a rule to an existing libvirt-<uuid>.files if it exists,
 
1761
        otherwise it acts the same as '-f'.
 
1762
 
 
1763
        load_profile() and reload_profile() have been adjusted to add an 'append'
 
1764
        argument, which when true will use '-F' instead of '-f' when executing
 
1765
        virt-aa-helper.
 
1766
 
 
1767
        All existing calls to load_profile() and reload_profile() have been adjusted
 
1768
        to use the old behavior (ie append==false) except AppArmorSetSavedStateLabel()
 
1769
        where it made sense to use the new behavior.
 
1770
 
 
1771
        This patch also adds tests for '-F'.
 
1772
 
 
1773
        Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/640993
 
1774
 
 
1775
2010-09-30  Stefan Berger  <stefanb@us.ibm.com>
 
1776
 
 
1777
        nwfilter: Add a test case for testing the comment attribute
 
1778
        This patch adds a test case for testing the XML parser's and instantiator's
 
1779
        support of the comment attribute.
 
1780
 
 
1781
        nwfilter: Extend docs with information about comment attr.
 
1782
        I am adding a row with information about the newly supported comment
 
1783
        attribute to each of the tables describing supported attributes of protocols.
 
1784
 
 
1785
        nwfilter: Extend nwfilter schema to accept comment attrib.
 
1786
        Extend the nwfilter.rng schema to accept comment attributes for all protocol
 
1787
        types.
 
1788
 
 
1789
        nwfilter: Instantiate comments in ip(6)tables rules
 
1790
        In this patch I am extending the rule instantiator to create the comment
 
1791
        node where supported, which is the case for iptables and ip6tables.
 
1792
 
 
1793
        Since commands are written in the format
 
1794
 
 
1795
        cmd='iptables ...-m comment --comment \"\" '
 
1796
 
 
1797
        certain characters ('`) in the comment need to be escaped to
 
1798
        prevent comments from becoming commands themselves or cause other
 
1799
        forms of (bash) substitutions. I have tested this with various input and in
 
1800
        my tests the input made it straight into the comment. A test case for TCK
 
1801
        will be provided separately that tests this.
 
1802
 
 
1803
        nwfilter: Extend XML parser and generator w/ comment attribute
 
1804
        The patch below extends the XML parser and generator so that every protocol
 
1805
        now can have a comment node. Comments are limited to 256 characters.
 
1806
 
 
1807
2010-09-30  Eric Blake  <eblake@redhat.com>
 
1808
 
 
1809
        build: fix example build on MacOS X
 
1810
        Partial reversion of commit 76d87a59, now that bootstrap is smarter.
 
1811
 
 
1812
        * .gnulib: Update to latest, for poll and bootstrap fixes.
 
1813
        * bootstrap: Resync from gnulib.
 
1814
        * autogen.sh: Drop redundant tool checks; bootstrap does them
 
1815
        better, by honoring environment variables.
 
1816
        * examples/domain-events/events-c/Makefile.am (INCLUDES)
 
1817
        (event_test_LDADD): Use gnulib library during build.
 
1818
        * bootstrap.conf (gnulib_tool_option_extras): Revert --libtool
 
1819
        addition, now that updated bootstrap does it for us.
 
1820
        Reported by Justin Clift.
 
1821
 
 
1822
2010-09-29  Eduardo Otubo  <otubo@linux.vnet.ibm.com>
 
1823
 
 
1824
        phyp: Checking for NULL values when building new guest
 
1825
        When creating a new gust, the function phypBuildLpar() was not
 
1826
        checking for NULL values
 
1827
 
 
1828
        src/phyp/phyp_driver.c: check the definition arguments to avoid a segmentation
 
1829
          fault in phypBuildLpar()
 
1830
 
 
1831
2010-09-29  Justin Clift  <jclift@redhat.com>
 
1832
 
 
1833
        configure: tweak logic flow of virtport check
 
1834
        This fixes a small logic bug, where passing --without-macvtap
 
1835
        on the configure line, or otherwise indicating a lack of
 
1836
        support for macvtap, causes configure to bail.
 
1837
 
 
1838
        mpath: disable devmapper-multipath checking on non-linux
 
1839
        The configure script was breaking on MacOS X unless passed:
 
1840
 
 
1841
          --without-storage-mpath
 
1842
 
 
1843
        This patch leverages Stefan Bergers earlier work for nwfilter,
 
1844
        so non-linux systems don't even attempt to build multipath.
 
1845
 
 
1846
2010-09-29  Stefan Berger  <stefanb@us.ibm.com>
 
1847
 
 
1848
        Rework configure logic for virtualport support
 
1849
        In this patch I am reworking the logic around detecting virtual port support and requiring the libnl dependency.
 
1850
 
 
1851
        - It requires --with-macvtap and displays an error in case of --without-macvtap --with-virtualport.
 
1852
        - It tests for availability of certain data in include files and displays an error in case the include file is not at the correct level and --with-virtualport was chosen
 
1853
        - displays 'checking' messages for macvtap and virtualport support and results
 
1854
        - libnl support is required when macvtap is found or requested; if libnl is not there, please supply without-macvtap
 
1855
 
 
1856
2010-09-28  Justin Clift  <jclift@redhat.com>
 
1857
 
 
1858
        mac os x: use awk selected by build system rather than first in path
 
1859
        Prior to this patch, the ChangeLog generation was hard coded to use
 
1860
        "awk", when it should have been using the AWK variable set by our
 
1861
        build system.
 
1862
 
 
1863
        This breaks compilation on a newly installed OS X system, where the
 
1864
        default path has the Mac (non GNU) awk in the default search PATH
 
1865
        before any installed GNU awk (gawk).
 
1866
 
 
1867
        nwfilter: remove recently added workaround define for macos x
 
1868
        This reverses commit 04c3704, which added a define to nwfilter to
 
1869
        allow libvirtd compilation on Mac OS X.  Stefan Bergers commit, 2e7294d,
 
1870
        is the proper solution, removing the requirement for nwfilter on non-Linux.
 
1871
 
 
1872
        virtualbox: fix a typo in the expected location on mac os x
 
1873
        Mac OS X provides an "/Applications" folder, not an "/Application" folder,
 
1874
        so installed VirtualBox wasn't being detected by default.
 
1875
 
 
1876
        This 1 character patch fixes this.
 
1877
 
 
1878
2010-09-27  Dan Kenigsberg  <danken@redhat.com>
 
1879
 
 
1880
        python: drop unnecessary conn assignment
 
1881
        Since 554d82a200289938d5639a782a9f12e3e2e968f0, conn is unused. Let's
 
1882
        drop it - but keep the signature of the constructor for backward
 
1883
        compatibility.
 
1884
 
 
1885
2010-09-27  Stefan Berger  <stefanb@us.ibm.com>
 
1886
 
 
1887
        nwfilter: Don't compile nwfilter driver on other systems than Linux
 
1888
        Don't compile the nwfilter driver (instantiating the rules) on other systems than Linux.
 
1889
 
 
1890
2010-09-27  Justin Clift  <jclift@redhat.com>
 
1891
 
 
1892
        nwfilter: add a missing define, so libvirtd builds on macos x
 
1893
        The nwfilter code uses ETH_ALEN, which isn't defined on MacOS X.
 
1894
        This is a simple workaround, to add it when missing.
 
1895
 
 
1896
2010-09-24  Stefan Berger  <stefanb@us.ibm.com>
 
1897
 
 
1898
        nwfilter: report if ip(6)tables rules would not be active
 
1899
        The patch below reports a warning in the log if the generated ip(6)tables rules would not be effective due to the proc filesystem entries
 
1900
 
 
1901
            /proc/sys/net/bridge/bridge-nf-call-iptables
 
1902
            /proc/sys/net/bridge/bridge-nf-call-ip6tables
 
1903
 
 
1904
        containing a '0'. The warning tells the user what to do. I am rate-limiting the warning message to appear only every 10 seconds.
 
1905
 
 
1906
2010-09-23  Jamie Strandboge  <jamie@canonical.com>
 
1907
 
 
1908
        app-armor: add 'rw' for appropriate devices
 
1909
        Description: Check for VIR_DOMAIN_CHR_TYPE in serial ports and add 'rw' for
 
1910
        defined serial ports, parallel ports and channels
 
1911
 
 
1912
        Bug-Ubuntu: LP: #578527, LP: #609055
 
1913
 
 
1914
        add extra tests to virt-aa-helper-test for new '-p' option
 
1915
 
 
1916
2010-09-23  Eric Blake  <eblake@redhat.com>
 
1917
 
 
1918
        docs: grammar cleanups on logging examples
 
1919
        * docs/logging.html.in: Fix spelling and grammar.
 
1920
 
 
1921
2010-09-23  Philipp Hahn  <hahn@univention.de>
 
1922
 
 
1923
        Fix spelling of Xen in comments
 
1924
 
 
1925
2010-09-23  Eric Blake  <eblake@redhat.com>
 
1926
 
 
1927
        maint: update to latest gnulib
 
1928
        * .gnulib: Update to latest.
 
1929
        * bootstrap.conf (gnulib_modules): Add new termios module.
 
1930
        (gnulib_tool_option_extras): Make libtool usage explicit.
 
1931
        * src/util/util.c (includes): Gnulib now guarantees termios.h.
 
1932
        * bootstrap: Resync from gnulib.
 
1933
 
 
1934
2010-09-23  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1935
 
 
1936
        esx: Allow '-' in VMX entry names
 
1937
        Add a test for this.
 
1938
 
 
1939
        Reported by Frank Dirks.
 
1940
 
 
1941
2010-09-23  Chris Wright  <chrisw@redhat.com>
 
1942
 
 
1943
        pciFindStubDriver should return NULL on error
 
1944
        pciFindStubDriver currently returns 0 in one of the error cases.
 
1945
        While it's correct...NULL is more readable.
 
1946
 
 
1947
2010-09-22  Jiri Denemark  <jdenemar@redhat.com>
 
1948
 
 
1949
        libvirt-guests: start late and stop early
 
1950
        libvirt-guests init script should be started as late as possible during
 
1951
        host startup and stopped as early as possible during host shutdown to
 
1952
        make sure required services are already/still up and running at the time
 
1953
        libvirt-guests runs.
 
1954
 
 
1955
2010-09-22  Daniel P. Berrange  <berrange@redhat.com>
 
1956
 
 
1957
        Make SASL work over UNIX domain sockets
 
1958
        The addrToString methods were not coping with UNIX domain sockets
 
1959
        which have no normal host+port address. Hardcode special handling
 
1960
        for these so that SASL routines can work over UNIX sockets. Also
 
1961
        fix up SSF logic in remote client so that it presumes that a UNIX
 
1962
        socket is secure
 
1963
 
 
1964
        * daemon/remote.c: Fix addrToString for UNIX sockets.
 
1965
        * src/remote/remote_driver.c: Fix addrToString for UNIX sockets
 
1966
          and fix SSF logic to work for TLS + UNIX sockets in the same
 
1967
          manner
 
1968
 
 
1969
        Refactor some daemon code to facilitate introduction of static probes
 
1970
        Refactor some daemon code to facilitate the introductioin of static
 
1971
        probes, sanitizing function exit paths in many places
 
1972
 
 
1973
        * daemon/libvirtd.c: Pass the dname string into remoteCheckDN
 
1974
          to let caller deal with failure paths. Add separate exit paths
 
1975
          to remoteCheckCertificate for auth failure vs denial. Merge
 
1976
          all exit paths in qemudDispatchServer to one cleanup block
 
1977
        * daemon/remote.c: Add separate exit paths to SASL & PolicyKit
 
1978
          functions for auth failure vs denial
 
1979
 
 
1980
2010-09-22  Eric Blake  <eblake@redhat.com>
 
1981
 
 
1982
        nodeinfo: work when hot-plugging is disabled
 
1983
        Fixes https://bugzilla.redhat.com/show_bug.cgi?id=635857.
 
1984
 
 
1985
        * src/nodeinfo.c (cpu_online): Allow missing directory for all
 
1986
        CPUs, not just cpu0.
 
1987
 
 
1988
2010-09-22  Stefan Berger  <stefanb@us.ibm.com>
 
1989
 
 
1990
        This patch fixes a bug appearing on big endian machines where the returned XML is not the one that is expected (see test/nwfilterxml2xmltest). The problem is due to for example the casting of pointers to unsigned integers to void * and then back to 16 bit integers.
 
1991
 
 
1992
2010-09-16  Eric Blake  <eblake@redhat.com>
 
1993
 
 
1994
        tests: silence qemuargv2xmltest noise
 
1995
        Before this patch, the testsuite was noisy:
 
1996
 
 
1997
        TEST: qemuargv2xmltest
 
1998
              ........................................ 40
 
1999
              ................20:41:28.046: warning : qemuParseCommandLine:6565 : unknown QEMU argument '-unknown', adding to the qemu namespace
 
2000
        20:41:28.046: warning : qemuParseCommandLine:6565 : unknown QEMU argument 'parameter', adding to the qemu namespace
 
2001
        .                        57  OK
 
2002
        PASS: qemuargv2xmltest
 
2003
 
 
2004
        It's not a real failure (which is why the test was completing
 
2005
        successfully), so much as an intentional warning to the user that use
 
2006
        of the qemu namespace has the potential for undefined effects that
 
2007
        leaked through the default logging behavior.  After this patch series,
 
2008
        all tests can access any logged data, and this particular test can
 
2009
        explicitly check for the presence or absence of the warning, such that
 
2010
        the test output becomes:
 
2011
 
 
2012
        TEST: qemuargv2xmltest
 
2013
              ........................................ 40
 
2014
              .................                        57  OK
 
2015
        PASS: qemuargv2xmltest
 
2016
 
 
2017
        * tests/testutils.h (virtTestLogContentAndReset): New prototype.
 
2018
        * tests/testutils.c (struct virtTestLogData): New struct.
 
2019
        (virtTestLogOutput, virtTestLogClose, virtTestLogContentAndReset):
 
2020
        New functions.
 
2021
        (virtTestMain): Always capture log data emitted during tests.
 
2022
        * tests/qemuargv2xmltest.c (testCompareXMLToArgvHelper, mymain):
 
2023
        Use flag to mark which tests expect noisy stderr.
 
2024
        (testCompareXMLToArgvFiles): Add parameter to test whether stderr
 
2025
        was appropriately silent.
 
2026
 
 
2027
        tests: clean up qemuargv2xmltest
 
2028
        Since commit 107a7bd06bc, the extraFlags argument was unused.
 
2029
 
 
2030
        * tests/qemuargv2xmltest.c (DO_TEST): Drop extraFlags argument.
 
2031
        Adjust all callers.
 
2032
 
 
2033
2010-09-16  Justin Clift  <jclift@redhat.com>
 
2034
 
 
2035
        docs: reworked the policykit patch submitted by Patrick Dignan
 
2036
        Tweaked the PolicyKit documentation improvement patch submitted
 
2037
        by Patrick Dignan.
 
2038
 
 
2039
        Additionally, removed the reference to PolicyKit.conf, which is
 
2040
        no longer used by PolicyKit, plus added a link to the expanded
 
2041
        PolicyKit example page on the wiki.
 
2042
 
 
2043
        docs: fix the xml validity errors regarding name and id
 
2044
        Got sick of seeing the "validity error : ID Objects already defined"
 
2045
        errors, which this patch addresses.
 
2046
 
 
2047
2010-09-15  Eric Blake  <eblake@redhat.com>
 
2048
 
 
2049
        build: avoid non-portable IPv6 struct member, for MacOS X
 
2050
        * src/util/network.c (getIPv6Addr): Manually join s6_addr bytes,
 
2051
        instead of assuming s6_addr16 shorts.
 
2052
        Reported by Justin Clifton; solution suggested by Bruno Haible.
 
2053
 
 
2054
2010-09-15  Justin Clift  <jclift@redhat.com>
 
2055
 
 
2056
        virsh: change wexitstatus order to allow compilation on mac osx
 
2057
        This is the simple fix Daniel Veillard suggested last year:
 
2058
 
 
2059
          http://www.redhat.com/archives/libvir-list/2009-May/msg00459.html
 
2060
 
 
2061
        libvirtd: improve the error message displayed on tls client auth failure
 
2062
        This address BZ # 556599:
 
2063
 
 
2064
          https://bugzilla.redhat.com/show_bug.cgi?id=556599
 
2065
 
 
2066
2010-09-14  Eric Blake  <eblake@redhat.com>
 
2067
 
 
2068
        maint: silence warning from libtool
 
2069
        I got tired of seeing this.
 
2070
 
 
2071
        config.status: executing libtool commands
 
2072
        /bin/rm: cannot remove `libtoolT': No such file or directory
 
2073
        config.status: executing po-directories commands
 
2074
 
 
2075
        While I was at it, there were a couple other unused variables.
 
2076
 
 
2077
        * configure.ac (RM, MV, TAR): Drop; nothing in libvirt directly uses
 
2078
        this, and assigning RM interferes with libtool.
 
2079
 
 
2080
2010-09-14  Soren Hansen  <soren@linux2go.dk>
 
2081
 
 
2082
        Rebuild network filter for UML guests on updates
 
2083
        When nwfilter support was added to UML, I didn't realise the UML driver
 
2084
        needed instrumentation to make updating nwfilters on the fly work. This
 
2085
        patch adds this bit of glue.
 
2086
 
 
2087
2010-09-14  Jiri Denemark  <jdenemar@redhat.com>
 
2088
 
 
2089
        virsh: Use virBuffer for generating XML
 
2090
        cmdAttachInterface and cmdAttachDisk still used vshRealloc and sprintf
 
2091
        for generating XML, which is hardly maintainable. Let's get rid of this
 
2092
        old code.
 
2093
 
 
2094
2010-09-14  Eric Blake  <eblake@redhat.com>
 
2095
 
 
2096
        build: use portable sed expressions
 
2097
        * src/Makefile.am (libvirt.def, libvirt_qemu.def): '\}' and '\t'
 
2098
        are not required by POSIX.  Use '}' and literal tab instead.
 
2099
        (install-data-local): Avoid sed -i.
 
2100
        * tests/read-bufsiz: Likewise.
 
2101
        Reported by Mitchell Hashimoto.
 
2102
 
 
2103
2010-09-13  Justin Clift  <jclift@redhat.com>
 
2104
 
 
2105
        docs: improve wording for the dev guide
 
2106
        Wording tweak suggested by David Jorm, author of the libvirt App Dev Guide.
 
2107
 
 
2108
2010-09-13  Jiri Denemark  <jdenemar@redhat.com>
 
2109
 
 
2110
        tests: Fix preprocessor indentation
 
2111
 
 
2112
2010-09-10  Justin Clift  <jclift@redhat.com>
 
2113
 
 
2114
        docs: add the app dev guide
 
2115
        Added a workable initial page for the libvirt Application
 
2116
        Development Guide, giving the online viewable options +
 
2117
        the available download ones (pdf, epub, srpm).
 
2118
 
 
2119
        Added a link to the PDF to the main Downloads page, plus
 
2120
        neatened the html tags throughout the page as they
 
2121
        were a bit of a mess.
 
2122
 
 
2123
        Added --enable-compile-warnings=error to the autogen line,
 
2124
        as suggested by Eric Blake.
 
2125
 
 
2126
2010-09-10  Daniel Veillard  <veillard@redhat.com>
 
2127
 
 
2128
        Libvirt release 0.8.4
 
2129
        update news, spec and french localizaton
 
2130
 
 
2131
2010-09-10  Cole Robinson  <crobinso@redhat.com>
 
2132
 
 
2133
        buf: Fix possible infinite loop in EscapeString, VSnprintf
 
2134
        The current code will go into an infinite loop if the printf generated
 
2135
        string is >= 1000, AND exactly 1 character smaller than the amount of free
 
2136
        space in the buffer. When this happens, we are dropped into the loop body,
 
2137
        but nothing will actually change, because count == (buf->size - buf->use - 1),
 
2138
        and virBufferGrow returns unchanged if count < (buf->size - buf->use)
 
2139
 
 
2140
        Fix this by removing the '- 1' bit from 'size'. The *nprintf functions handle
 
2141
        the NULL byte for us anyways, so we shouldn't need to manually accommodate
 
2142
        for it.
 
2143
 
 
2144
        Here's a bug where we are actually hitting this issue:
 
2145
        https://bugzilla.redhat.com/show_bug.cgi?id=602772
 
2146
 
 
2147
        v2: Eric's improvements: while -> if (), remove extra va_list variable,
 
2148
            make sure we report buffer error if snprintf fails
 
2149
 
 
2150
        v3: Add tests/virbuftest which reproduces the infinite loop before this
 
2151
            patch, works correctly after
 
2152
 
 
2153
2010-09-10  Guido Günther  <agx@sigxcpu.org>
 
2154
 
 
2155
        Fix block statistics with newer versions of Xen
 
2156
        Apparently the xen block device statistics moved from
 
2157
        "/sys/devices/xen-backend/vbd-%d-%d/statistics/%s"
 
2158
        to
 
2159
        "/sys/bus/xen-backend/devices/vbd-%d-%d/statistics/%s"
 
2160
 
 
2161
        * src/xen/block_stats.c: try the extra path in case of failure to
 
2162
          find the statistics in /sys
 
2163
 
 
2164
2010-09-10  Jiri Denemark  <jdenemar@redhat.com>
 
2165
 
 
2166
        virsh: Option for overriding disk type in attach-disk
 
2167
        Unless --driver tap|file option was given to attach-disk, virsh would
 
2168
        generate <disk type='block'> XML which might be fine for Xen but not for
 
2169
        other hypervisors. This patch introduces a new option --sourcetype which
 
2170
        can be used to explicitly set the type of disk source. The option
 
2171
        accepts either "file" or "block" types.
 
2172
 
 
2173
2010-09-10  Daniel P. Berrange  <berrange@redhat.com>
 
2174
 
 
2175
        Fix dependancies for remote generated files
 
2176
        Very occasionally during a parallel make, dispatch.c would
 
2177
        be compiled before the generated remote headers had been
 
2178
        fully written. This would cause it to compile an empty
 
2179
        union, and result in really wierd runtime bugs that are
 
2180
        near impossible to diagnose.
 
2181
 
 
2182
        * daemon/Makefile.am: Fix remote build deps
 
2183
 
 
2184
        Ensure remote daemon unions are always non-zero length
 
2185
        If the remote daemon args/ret unions ever become zero length
 
2186
        (due to a build / Makefile bug) then bad stuff happens at
 
2187
        runtime. Add a compile time assertion to check for this kind
 
2188
        of problem
 
2189
 
 
2190
        * daemon/remote.h: Ensure non-zero length unions
 
2191
 
 
2192
        Fix off-by-1 in QEMU boot arg array handling
 
2193
        A QEMU guest can have upto VIR_DOMAIN_BOOT_LAST boot entries
 
2194
        defined. When building the QEMU arg, each entry takes a
 
2195
        single byte. This means the array must be declared to be
 
2196
        VIR_DOMAIN_BOOT_LAST+1 bytes in length to allow for the
 
2197
        trailing null
 
2198
 
 
2199
        * src/qemu/qemu_conf.c: Fix off-by-1 boot arg array size
 
2200
 
 
2201
2010-09-10  Jiri Denemark  <jdenemar@redhat.com>
 
2202
 
 
2203
        bridge: Fix static-only DHCP configuration
 
2204
        For static-only DHCP, i.e. with no <range> but at least one <host>
 
2205
        element within <dhcp> element, we have to add "--dhcp-range IP,static"
 
2206
        option to dnsmasq to actually enable the service. Without this option,
 
2207
        dnsmasq will not respond to DHCP requests.
 
2208
 
 
2209
2010-09-10  Luiz Capitulino  <lcapitulino@redhat.com>
 
2210
 
 
2211
        qemu: qemuMonitorJSONEjectMedia(): Fix arguments' type
 
2212
        QMP in QEMU 0.13 has been fixed to enforce type correctness,
 
2213
        this means that boolean types must be true or false, not
 
2214
        integers.
 
2215
 
 
2216
        qemu: qemuMonitorJSONMigrate(): Fix arguments' type
 
2217
        QMP in QEMU 0.13 has been fixed to enforce type correctness,
 
2218
        this means that boolean types must be true or false, not
 
2219
        integers.
 
2220
 
 
2221
2010-09-09  Soren Hansen  <soren@linux2go.dk>
 
2222
 
 
2223
        Add nwfilter support to UML driver
 
2224
        Extend user-mode-linux driver to support nwfilter.
 
2225
 
 
2226
2010-09-09  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2227
 
 
2228
        test: Don't overwrite storage volume target path and key
 
2229
        Only generate target path and key when they are not defined
 
2230
        in the XML config.
 
2231
 
 
2232
2010-09-09  Daniel Veillard  <veillard@redhat.com>
 
2233
 
 
2234
        Remove hack to get static binaries in DV environment
 
2235
 
 
2236
2010-09-08  Justin Clift  <jclift@redhat.com>
 
2237
 
 
2238
        Moved my name up to the primary list, as I have commit rights now.
 
2239
        As recommended by Eric. :)
 
2240
 
 
2241
2010-09-08  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2242
 
 
2243
        esx: Use SessionIsActive when available
 
2244
        Before this commit SessionIsActive was not used because ESX(i)
 
2245
        doesn't implement it. vCenter supports SessionIsActive, so use
 
2246
        it here, but keep the fall back mechanism for ESX(i) and GSX.
 
2247
 
 
2248
2010-09-07  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2249
 
 
2250
        esx: Fall back to path as key when QueryVirtualDiskUuid isn't available
 
2251
        QueryVirtualDiskUuid is only available on an ESX(i) server. vCenter
 
2252
        returns an NotImplemented fault and a GSX server is missing the
 
2253
        VirtualDiskManager completely. Therefore only use QueryVirtualDiskUuid
 
2254
        with an ESX(i) server and fall back to path as storage volume key for
 
2255
        vCenter and GSX server.
 
2256
 
 
2257
2010-09-07  Eric Blake  <eblake@redhat.com>
 
2258
 
 
2259
        mingw: match recent changes in spec file
 
2260
        * libvirt.spec.in (%file): List new installed files.
 
2261
        * configure.ac (with_init_script): Assume default of none when
 
2262
        cross-compiling.
 
2263
 
 
2264
2010-09-07  Jiri Denemark  <jdenemar@redhat.com>
 
2265
 
 
2266
        build: Fix permissions of sysconfig files
 
2267
 
 
2268
2010-09-04  Daniel Veillard  <veillard@redhat.com>
 
2269
 
 
2270
        Update of localization files
 
2271
        - Updated dutch, spanish and russian, regenerated the po/pot files
 
2272
 
 
2273
2010-09-04  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2274
 
 
2275
        esx: Use the VirtualDisk UUID as storage volume key
 
2276
        VirtualDisks are .vmdk file based. Other files in a datastore
 
2277
        like .iso or .flp files don't have a UUID attached, fall back
 
2278
        to the path as key for them.
 
2279
 
 
2280
2010-09-03  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2281
 
 
2282
        esx: Add .vmdk storage volume creation
 
2283
 
 
2284
2010-09-03  Jean-Baptiste Rouault  <jean-baptiste.rouault@diateam.net>
 
2285
 
 
2286
        OpenVZ: add ethernet interface type support
 
2287
        This patch adds support for ethernet interface type to OpenVZ domains
 
2288
        as stated in this previous message: http://www.redhat.com/archives/libvir-
 
2289
        list/2010-July/msg00658.html
 
2290
 
 
2291
2010-09-03  Eric Blake  <eblake@redhat.com>
 
2292
 
 
2293
        build: avoid uninitialized variable warning
 
2294
        * src/vbox/vbox_tmpl.c (vboxAttachDrives): Capture return value.
 
2295
 
 
2296
2010-09-03  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2297
 
 
2298
        esx: Rework datastore path parsing and handling
 
2299
        Instead of splitting the path part of a datastore path into
 
2300
        directory and file name, keep this in one piece. An example:
 
2301
 
 
2302
          "[datastore] directory/file"
 
2303
 
 
2304
        was split into this before:
 
2305
 
 
2306
          datastoreName = "datastore"
 
2307
          directoryName = "directory"
 
2308
          fileName = "file"
 
2309
 
 
2310
        Now it's split into this:
 
2311
 
 
2312
          datastoreName = "datastore"
 
2313
          directoryName = "directory"
 
2314
          directoryAndFileName = "directory/file"
 
2315
 
 
2316
        This simplifies code using esxUtil_ParseDatastorePath, because
 
2317
        directoryAndFileName is used more often than fileName. Also the
 
2318
        old approach expected the datastore path to reference an actual
 
2319
        file, but this isn't always correct, especially when listing
 
2320
        volumes. In that case esxUtil_ParseDatastorePath is used to parse
 
2321
        a path that references a directory. This fails for a vpx://
 
2322
        connection because the vCenter returns directory paths with a
 
2323
        trailing '/'. The new approach is robust against this and the
 
2324
        actual decision if the datastore path should reference a file or
 
2325
        a directory is up to the caller of esxUtil_ParseDatastorePath.
 
2326
 
 
2327
        Update the tests accordingly.
 
2328
 
 
2329
2010-09-02  Eric Blake  <eblake@redhat.com>
 
2330
 
 
2331
        vbox: factor a large function
 
2332
        * src/vbox/vbox_tmpl.c (vboxDomainDefineXML): Split...
 
2333
        (vboxSetBootDeviceOrder, vboxAttachDrives, vboxAttachSound)
 
2334
        (vboxAttachNetwork, vboxAttachSerial, vboxAttachParallel)
 
2335
        (vboxAttachVideo, vboxAttachDisplay, vboxAttachUSB): ...into new
 
2336
        helper functions.
 
2337
 
 
2338
        lxc: avoid large stacks with veth creation
 
2339
        * src/lxc/veth.h (vethCreate): Change prototype.
 
2340
        * src/lxc/veth.c (vethCreate): Always malloc veth2, and allocate
 
2341
        veth1 if needed.
 
2342
        (getFreeVethName): Adjust signature, and use virAsprintf.
 
2343
        * src/lxc/lxc_driver.c (lxcSetupInterfaces): Adjust caller.
 
2344
 
 
2345
2010-09-02  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2346
 
 
2347
        esx: Fix generator for string return values
 
2348
        Distinguish between strings as parameters (const char *)
 
2349
        and strings as return values (char **).
 
2350
 
 
2351
2010-09-02  Eric Blake  <eblake@redhat.com>
 
2352
 
 
2353
        openvz: use virAsprintf to avoid large stacks
 
2354
        * src/openvz/openvz_conf.c (openvzLocateConfFile): Alter
 
2355
        signature.
 
2356
        (openvzGetVPSUUID, openvzSetDefinedUUID)
 
2357
        (openvzWriteVPSConfigParam, openvzReadVPSConfigParam)
 
2358
        (openvzCopyDefaultConfig): Adjust callers.
 
2359
 
 
2360
        openvz: formatting cleanups
 
2361
        * src/openvz/openvz_conf.c: Whitespace fixes.
 
2362
        * src/openvz/openvz_driver.c: Likewise.
 
2363
 
 
2364
2010-09-01  Eric Blake  <eblake@redhat.com>
 
2365
 
 
2366
        network: use virAsprintf when appropriate
 
2367
        * src/conf/network_conf.c (virNetworkAllocateBridge): Avoid
 
2368
        limited buffer from snprintf.
 
2369
 
 
2370
        build: add some modules
 
2371
        snprintf is currently implicitly picked up by getaddrinfo, but we
 
2372
        might as well make it explicit so that mingw doesn't break if
 
2373
        getaddrinfo changes to drop the dependency.
 
2374
 
 
2375
        func doesn't matter for gcc compilation, but may help other compilers
 
2376
        cope with our use of __func__.
 
2377
 
 
2378
        * bootstrap.conf (gnulib_modules): Add snprintf and func.
 
2379
 
 
2380
2010-09-01  Ryan Harper  <ryanh@us.ibm.com>
 
2381
 
 
2382
        virsh: remove driver check from attach-disk command
 
2383
        Virsh shouldn't check for driver support but rather let the backend handled this.
 
2384
        After removing the check, I can successfully attach file-based images to a qemu
 
2385
        VM with attach-disk.
 
2386
 
 
2387
        % virsh attach-disk vm2 /images/test02.img vdc --driver qemu --type disk --subdriver raw
 
2388
        Disk attached successfully
 
2389
 
 
2390
        This command generates the following XML:
 
2391
 
 
2392
        <disk type='block' device='disk'>
 
2393
              <driver name='qemu' type='raw'/>
 
2394
              <source dev='/images/test02.img'/>
 
2395
              <target dev='vdc' bus='virtio'/>
 
2396
              <alias name='virtio-disk2'/>
 
2397
              <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
 
2398
        </disk>
 
2399
 
 
2400
2010-08-31  Soren Hansen  <soren@linux2go.dk>
 
2401
 
 
2402
        Use global directory as UML's monitorDir for privileged connections
 
2403
        For privileged UML connections (uml:///system), we shouldn't use root's
 
2404
        home dir, but rather somewhere in /var/run/libvirt/uml-guest.
 
2405
 
 
2406
        https://bugzilla.redhat.com/show_bug.cgi?id=499536
 
2407
 
 
2408
        Explicitly pass uml_dir argument to user-mode-linux
 
2409
        uml_dir overrides user-mode-linux's default of ~/.uml. This is needed
 
2410
        for a couple of different reasons:
 
2411
 
 
2412
        libvirt expects this to default to virGetUserDirectory(geteuid()) +
 
2413
        '/.uml'. However, user-mode-linux actually uses the HOME environment
 
2414
        variable to determine where to look for the uml sockets, but if running
 
2415
        libvirtd under sudo (which I routinely do during development), $HOME is
 
2416
        pointing at my user's homedir, while my euid is 0, so libvirt looks in
 
2417
        /root.
 
2418
 
 
2419
        Also (and this was my actual motivation for this patch), if HOME isn't
 
2420
        set at all, user-mode-linux utterly fails. Looking at the code, it seems
 
2421
        it's meant to emit a warning, but alas, it doesn't for some reason.
 
2422
        If running libvirtd from upstart, HOME is not set, so any system using
 
2423
        upstart will need this change.
 
2424
 
 
2425
2010-08-31  Eric Blake  <eblake@redhat.com>
 
2426
 
 
2427
        maint: track moved file
 
2428
        * daemon/.gitignore: Move libvirt-guests.init...
 
2429
        * tools/.gitignore: ...to its new location.
 
2430
 
 
2431
2010-08-31  Jim Fehlig  <jfehlig@novell.com>
 
2432
 
 
2433
        Add tests for Xen's blktap2 implementation
 
2434
        xml2sexpr and sexpr2xml tests for blktap2
 
2435
 
 
2436
        Add blktap2 support to xend driver
 
2437
        Xen4.0 includes a new blktap2 implementation, which is specified
 
2438
        with 'tap2' prefix.  AFAICT it's configuration syntax is identical
 
2439
        to blktap, with exception of 'tap2' vs 'tap' prefix.  This patch
 
2440
        takes the simple approach of accepting and generating sexp
 
2441
        containing 'tap2' prefix.
 
2442
 
 
2443
2010-08-30  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2444
 
 
2445
        esx: Map the .vmx annotation to the domain XML description
 
2446
        Take care of escaping '"' and '|' (the escape character).
 
2447
 
 
2448
        Add tests for this.
 
2449
 
 
2450
        Move hextobin as virHexToBin to util.c
 
2451
        virHexToBin will be used in the .vmx handling code.
 
2452
 
 
2453
2010-08-27  Eduardo Otubo  <otubo@linux.vnet.ibm.com>
 
2454
 
 
2455
        PHYP: Bad comparison when checking for existing domain name
 
2456
        When creating a new domain from XML, the check for an existing
 
2457
        domain name should compare the return of the function to a valid
 
2458
        LPAR ID (!= -1) and not to error (== -1).
 
2459
 
 
2460
2010-08-27  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2461
 
 
2462
        esx: Fix esxVI_BuildSelectSet's invalid argument check
 
2463
        The check was altered in 8c48743b9737ad4d246ab6043fd299316f9a2091
 
2464
        and got too strict, I've no clue how that snuck in. This check
 
2465
        makes every try to open a connection using the ESX driver fail
 
2466
        with an invalid argument error.
 
2467
 
 
2468
        Revert the change to the check and add a comment to prevent future
 
2469
        mistakes with this check.
 
2470
 
 
2471
2010-08-26  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2472
 
 
2473
        esx: Add read-only storage volume access
 
2474
        This allows to list existing volumes and to retrieve information
 
2475
        about them.
 
2476
 
 
2477
2010-08-25  Jiri Denemark  <jdenemar@redhat.com>
 
2478
 
 
2479
        Move libvirt-guests init script and config to tools
 
2480
        Since libvirt-guests init script and its configuration do not require
 
2481
        libvirtd to be running/installed, it was a bad idea to put them into
 
2482
        daemon directory. libvirt.spec even includes these files in
 
2483
        libvirt-client subpackage, which may result in build failure for
 
2484
        client-only builds when the whole daemon directory is just skipped.
 
2485
 
 
2486
        spec: Fix undefined with_libnl
 
2487
        When building libvirt RPM without macvtap, with_libnl would be
 
2488
        undefined.
 
2489
 
 
2490
2010-08-24  Soren Hansen  <soren@linux2go.dk>
 
2491
 
 
2492
        Support virDomainAttachDevice and virDomainDetachDevice for disks in UML
 
2493
        UML supports hot plugging and unplugging of various devices. This patch
 
2494
        exposes this functionality for disks.
 
2495
 
 
2496
        Rename qemudShrinkDisks to virDomainDiskRemove and move to domain_conf.c
 
2497
        Other drivers will need this same functionality, so move it to up to
 
2498
        conf/domain_conf.c and give it a more general name.
 
2499
 
 
2500
2010-08-24  Serge Hallyn  <serge.hallyn@canonical.com>
 
2501
 
 
2502
        docs: fix lxc examples
 
2503
        * docs/drvlxc.html.in: Use correct VM name, and mention that
 
2504
        libvirt_lxc might be in an alternate location.
 
2505
 
 
2506
2010-08-24  Daniel P. Berrange  <berrange@redhat.com>
 
2507
 
 
2508
        Fix handling of sparse NUMA topologies
 
2509
        When finding a sparse NUMA topology, libnuma will return ENOENT
 
2510
        the first time it is invoked. On subsequent invocations it
 
2511
        will return success, but with an all-1's CPU mask. Check for
 
2512
        this, to avoid polluting the capabilities XML with 4096 bogus
 
2513
        CPUs
 
2514
 
 
2515
        * src/nodeinfo.c: Check for all-1s CPU mask
 
2516
 
 
2517
        Log return value for virConnectGetCapabilities
 
2518
        Enabling debug doesn't show the capabilities XML for a connection.
 
2519
        Add an extra debug statement for the return value
 
2520
 
 
2521
        * src/libvirt.c: Enable debug logging of capabilities XML
 
2522
 
 
2523
        Try harder to send RPC error message back to client
 
2524
        When failing to serialize the normal RPC reply, try harder to
 
2525
        send a error message back to the client, instead of immediately
 
2526
        closing the connection.
 
2527
 
 
2528
        * daemon/dispatch.c: Improve error messages when RPC reply
 
2529
          can not be sent
 
2530
 
 
2531
        Add explicit warning messages when failing to serialize to XDR
 
2532
        When libvirtd fails to serialize a message to XDR the client
 
2533
        connection is terminated immediately. To enable this to be
 
2534
        diagnosed, log the message which caused the problem on the
 
2535
        server
 
2536
 
 
2537
        * daemon/dispatch.c: Log XDR serialization failures
 
2538
 
 
2539
2010-08-24  Soren Hansen  <soren@linux2go.dk>
 
2540
 
 
2541
        Allow chardev of type 'file' for UML domains.
 
2542
        Like the comment suggested, we just open the file and pass the file
 
2543
        descriptor to uml. The input "stream" is set to "null", since I couldn't
 
2544
        find any useful way to actually use a file for input for a chardev and
 
2545
        this also mimics what e.g. QEmu does internally.
 
2546
 
 
2547
2010-08-24  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2548
 
 
2549
        esx: Improve object-by-type lookup performance
 
2550
        Instead of using one big traversal spec for lookup use a set of
 
2551
        more fine grained traversal specs that are selected based on the
 
2552
        actual needs of the lookup.
 
2553
 
 
2554
        This gives up to 20% speedup for certain operations like domain
 
2555
        listing due to less HTTP(S) traffic.
 
2556
 
 
2557
2010-08-24  Jiri Denemark  <jdenemar@redhat.com>
 
2558
 
 
2559
        xen tests: Fix PV-VFB tests with RHEL-5 API
 
2560
        RHEL-5 Xen doesn't support the old style vnc configuration. In sexpr, we
 
2561
        can't really check it with rhel5-api turned on. However, for XM
 
2562
        configuration files it's sufficient to use cfg version 1 instead of 2.
 
2563
 
 
2564
        xml2sexprtest: Remove graphics from unrelated tests
 
2565
        This caused unnecessary make check failures when libvirt is configured
 
2566
        --with-rhel5-api
 
2567
 
 
2568
        xen tests: Fix missing "type ioemu" with rhel5-api
 
2569
        The most common cause of errors with rhel5-api turn on was missing
 
2570
        "(type ioemu)" in sexpr or its equivalent in XM configuration file. This
 
2571
        happens because the presence of that part in sexpr (or cfg) depends on
 
2572
        xen version the host is running. Let's avoid it by explicitly specifying
 
2573
        interface model which ensures "type ioemu" will always be emitted.
 
2574
 
 
2575
        This patch adds
 
2576
 
 
2577
            <model type='e1000'/>
 
2578
 
 
2579
        withing the interface element in all affected xml files. And
 
2580
 
 
2581
            (model 'e1000')
 
2582
 
 
2583
        to all corresponding sexpr files with similar fix to cfg files. Such
 
2584
        configuration works regardless on Xen version.
 
2585
 
 
2586
        nodeinfotest: Print libvirt error on failure
 
2587
        If linuxNodeInfoCPUPopulate() fails, the test would just print "FAILED"
 
2588
        which is not very informative. It's better to print the real error.
 
2589
 
 
2590
2010-08-23  Eric Blake  <eblake@redhat.com>
 
2591
 
 
2592
        xenapi: support xenapi 5.6.0 headers
 
2593
        * src/xenapi/xenapi_driver.c (xenapiDomainGetInfo): Avoid using
 
2594
        XEN_VM_POWER_STATE_UNKNOWN, which disappeared in newer xenapi.
 
2595
        * src/xenapi/xenapi_utils.c (mapPowerState): Likewise.
 
2596
 
 
2597
2010-08-23  Daniel P. Berrange  <berrange@redhat.com>
 
2598
 
 
2599
        Add support for -enable-kqemu flag
 
2600
        Previously QEMU enabled KQEMU by default and had -no-kqemu.
 
2601
        0.11.x switched to requiring -enable-kqemu. 0.12.x dropped
 
2602
        kqemu entirely. This patch adds support for -enable-kqemu
 
2603
        so 0.11.x works. It replaces a huge set of if() with a
 
2604
        switch() to make the code a bit more readable.
 
2605
 
 
2606
        * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Support
 
2607
          -enable-kqemu
 
2608
 
 
2609
2010-08-21  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2610
 
 
2611
        esx: Use MD5 sum of mount path as storage pool UUID
 
2612
        With the previous storage pool UUID source not all storage pools
 
2613
        had a proper UUID, especially GSX storage pools. The mount path
 
2614
        is unique per host and cannot change during the lifetime of the
 
2615
        datastore. Therefore, it's MD5 sum can be used as UUID.
 
2616
 
 
2617
        Use gnulib's crypto/md5 module to generate the MD5 sum.
 
2618
 
 
2619
        esx: Make sure dumpxml outputs proper ID for active domains
 
2620
 
 
2621
2010-08-20  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2622
 
 
2623
        xenapi: Fix compile error in previous commit
 
2624
 
 
2625
2010-08-20  Jim Fehlig  <jfehlig@novell.com>
 
2626
 
 
2627
        Add actions to virDomainLifecycle enum
 
2628
        Xen supports on_crash actions coredump-{destroy,restart}.  libvirt
 
2629
        cannot parse config returned by xend that contains either of these
 
2630
        actions
 
2631
 
 
2632
        xen52 # xm li -l test | grep on_crash
 
2633
            (on_crash coredump-restart)
 
2634
        xen52 # virsh dumpxml test
 
2635
        error: internal error unknown lifecycle type coredump-restart
 
2636
 
 
2637
        This patch adds a new virDomainLifecycleCrash enum and appends
 
2638
        the new options to existing destroy, restart, preserve, and
 
2639
        rename-restart options.
 
2640
 
 
2641
2010-08-20  Jiri Denemark  <jdenemar@redhat.com>
 
2642
 
 
2643
        qemu: Remove code duplication
 
2644
        We already filled the PCI address structure when we checked whether it's
 
2645
        free or not, so let's just use the structure here instead of filling it
 
2646
        again.
 
2647
 
 
2648
        qemu: Check for errors when converting PCI address to string
 
2649
 
 
2650
        qemu: Fix JSON migrate_set_downtime command
 
2651
 
 
2652
2010-08-20  Eric Blake  <eblake@redhat.com>
 
2653
 
 
2654
        vbox: factor a large function
 
2655
        * src/vbox/vbox_tmpl.c (vboxDomainCreateWithFlags): Split...
 
2656
        (vboxStartMachine): ...into new helper.
 
2657
 
 
2658
        vbox: add location used in rpmfusion release
 
2659
        * configure.ac (vbox_xpcomc_dir): Add another potential dir.
 
2660
 
 
2661
        xenapi: avoid sprintf
 
2662
        * src/xenapi/xenapi_utils.h (createVifNetwork): Delete prototype.
 
2663
        * src/xenapi/xenapi_utils.c (createVifNetwork): Change signature,
 
2664
        and use virAsprintf.  Detect allocation failure.
 
2665
        (createVMRecordFromXml): Adjust caller.
 
2666
 
 
2667
        storage: avoid s[n]printf
 
2668
        * src/storage/storage_backend.c (virStorageBackendCreateQemuImg)
 
2669
        (virStorageBackendCreateQcowCreate): Use virAsprintf instead.
 
2670
        * src/storage/storage_backend_disk.c
 
2671
        (virStorageBackendDiskCreateVol, virStorageBackendDiskPartFormat):
 
2672
        Likewise.
 
2673
 
 
2674
        maint: whitespace cleanups
 
2675
        * src/storage/storage_backend_disk.c
 
2676
        (virStorageBackendDiskPartFormat): Fix spacing.
 
2677
 
 
2678
        build: delete dead comments
 
2679
        * src/qemu/qemu_driver.c (qemudGetProcessInfo): Clean up.
 
2680
        * src/uml/uml_driver.c (umlGetProcessInfo): Likewise.
 
2681
        * src/xen/sexpr.c (_string2sexpr): Likewise.
 
2682
 
 
2683
2010-08-19  Patrick Dignan  <pat_dignan@dell.com>
 
2684
 
 
2685
        storage: add support for Vendor and Model in XML
 
2686
        I wrote a patch to add support for listing the Vendor and Model of a
 
2687
        storage pool in the storage pool XML.  This would allow vendor
 
2688
        extensions of specific devices.  The patch includes a test for the new
 
2689
        attributes as well.
 
2690
 
 
2691
        Patrick Dignan
 
2692
 
 
2693
2010-08-19  Eric Blake  <eblake@redhat.com>
 
2694
 
 
2695
        uml: fix logic bug in checking reply length
 
2696
        * src/uml/uml_driver.c (umlMonitorCommand): Validate that enough
 
2697
        bytes were read to dereference both res.length, and that many
 
2698
        bytes from res.data.
 
2699
        Reported by Soren Hansen.
 
2700
 
 
2701
        nwfilter: use consistent OOM reporting
 
2702
        * src/nwfilter/nwfilter_driver.c (nwfilterLog): Delete.
 
2703
        (nwfilterDriverStartup): Use virReportOOMError instead.
 
2704
 
 
2705
2010-08-18  Eric Blake  <eblake@redhat.com>
 
2706
 
 
2707
        build: fix compiler warning
 
2708
        node_device/node_device_driver.c: In function 'nodeDeviceVportCreateDelete':
 
2709
        node_device/node_device_driver.c:423: error: implicit declaration of function 'stat' [-Wimplicit-function-declaration]
 
2710
 
 
2711
        * src/node_device/node_device_driver.c (includes): Add <sys/stat.h>.
 
2712
 
 
2713
2010-08-18  Daniel Veillard  <veillard@redhat.com>
 
2714
 
 
2715
        xen: Fix scheduler setting problems
 
2716
        Doing `virsh schedinfo rhel5u3 --cap 65535' the hypervisor does the
 
2717
        call, but does not change the value nor raise an error. Best is just to
 
2718
        consider it's not in the allowed values. The problem is that the error
 
2719
        won't be output since the xend driver will then be called and raise an
 
2720
        error
 
2721
 
 
2722
            error: this function is not supported by the hypervisor: unsupported
 
2723
            in xendConfigVersion < 4
 
2724
 
 
2725
        which will override the useful information from
 
2726
        xenUnifiedDomainSetSchedulerParameters(). So best is to also invert the
 
2727
        order in which the xen sub-drivers are called.
 
2728
 
 
2729
        * src/xen/xen_hypervisor.c: mark 65535 cap value as out of bound
 
2730
        * src/xen/xen_hypervisor.c: reverse the order of the calls to the xen
 
2731
          sub drivers to get the error message if needed
 
2732
 
 
2733
2010-08-18  Jiri Denemark  <jdenemar@redhat.com>
 
2734
 
 
2735
        nodedev: Free the right pointers when getting WWNs fails
 
2736
 
 
2737
2010-08-18  Dave Allan  <dallan@redhat.com>
 
2738
 
 
2739
        nodedev: Fix sysfs paths for vport operations
 
2740
        Some kernels, such as the one used in RHEL-5, have vport_create and
 
2741
        vport_delete operation files in /sys/class/scsi_host/hostN directory
 
2742
        instead of /sys/class/fc_host/hostN. Let's check both paths for
 
2743
        compatibility reasons.
 
2744
 
 
2745
        This also removes unnecessary '/' characters from sysfs paths containing
 
2746
        LINUX_SYSFS_FC_HOST_PREFIX.
 
2747
 
 
2748
2010-08-18  Daniel Berrange  <berrange@redhat.com>
 
2749
 
 
2750
        xen: Fix device count on detach
 
2751
 
 
2752
        remote: Fix incorrect use of private data field
 
2753
        NodeDeviceCreateXML and NodeDeviceDestroy methods added for NPIV were
 
2754
        using the wrong privateData field for the remote driver. This doesn't
 
2755
        impact KVM, since the remote driver handles everything, thus
 
2756
        privateData == devMonPrivateData. It does impact Xen though, because
 
2757
        the remote driver only handles a subset of methods and thus
 
2758
        privateData != devMonPrivateData.
 
2759
 
 
2760
2010-08-17  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2761
 
 
2762
        esx: Fix memory leak when looking up an non-existing domain by name
 
2763
        In case an optional object cannot be found the lookup function is
 
2764
        left early and the cleanup code is not executed.
 
2765
 
 
2766
        This pattern occurs in some other functions too.
 
2767
 
 
2768
2010-08-17  Chris Lalancette  <clalance@redhat.com>
 
2769
 
 
2770
        Fix up qemu domain save/managed save locking.
 
2771
        The current version of the qemu managed save implementation
 
2772
        is subject to a race where the domain shuts down between
 
2773
        the time that we start the command and the time that we
 
2774
        actually try to do the save.  Close this race by making
 
2775
        qemuDomainSaveFlags() expect both the driver and the passed-in
 
2776
        vm object to be locked before executing.
 
2777
 
 
2778
2010-08-17  Eric Blake  <eblake@redhat.com>
 
2779
 
 
2780
        docs: mention domain <clock> improvements
 
2781
        Add documentation for features added a while ago.
 
2782
 
 
2783
        * docs/formatdomain.html.in (Time keeping): Update documentation
 
2784
        of <clock> element to match 0.8.0 addition.
 
2785
 
 
2786
2010-08-17  Stefan Berger  <stefanb@us.ibm.com>
 
2787
 
 
2788
        cygwin: build fix
 
2789
        Fixing a problem in the build on cygwin due to missing #define's.
 
2790
 
 
2791
2010-08-16  Jiri Denemark  <jdenemar@redhat.com>
 
2792
 
 
2793
        qemu: Fix copy&paste error in warning message
 
2794
        This also makes the message consistent with the message used in error
 
2795
        path of qemudDomainAttachHostPciDevice.
 
2796
 
 
2797
        qemu: Release PCI slot when detaching disk and net devices
 
2798
 
 
2799
        qemu: Re-reserve all PCI addresses on libvirtd restart
 
2800
        When reconnecting to existing VMs, we re-reserved only those PCI
 
2801
        addresses which were explicitly mentioned in domain XML. Since some
 
2802
        addresses are always reserved (e.g., 0:0:0 and 0:0:1), we need to handle
 
2803
        those too.
 
2804
 
 
2805
        Also all this should only be done if device flag is supported by qemu.
 
2806
 
 
2807
2010-08-16  Jamie Strandboge  <jamie@canonical.com>
 
2808
 
 
2809
        build: fix AppArmor compilation
 
2810
        * src/security/virt-aa-helper.c: Add missing include.
 
2811
 
 
2812
2010-08-16  Stefan Berger  <stefanb@us.ibm.com>
 
2813
 
 
2814
        nwfilter: extend nwfilter reload support
 
2815
        In this patch I am extending and fixing the nwfilter module's reload support to stop all ongoing threads (for learning IP addresses of interfaces) and rebuild the filtering rules of all interfaces of all VMs when libvirt is started. Now libvirtd rebuilds the filters upon the SIGHUP signal and libvirtd restart.
 
2816
 
 
2817
        About the patch: The nwfilter functions require a virConnectPtr. Therefore I am opening a connection in qemudStartup, which later on needs to be closed outside where the driver lock is held since otherwise it ends up in a deadlock due to virConnectClose() trying to lock the driver as well.
 
2818
 
 
2819
        I have tested this now for a while with several machines running and needing the IP address learner thread(s). The rebuilding of the firewall rules seems to work fine following libvirtd restart or a SIGHUP. Also the termination of libvirtd worked fine.
 
2820
 
 
2821
2010-08-14  Eric Blake  <eblake@redhat.com>
 
2822
 
 
2823
        build: allow mingw VPATH build
 
2824
        * .gnulib: Update to latest.
 
2825
        Reported by Matthias Bolte.
 
2826
 
 
2827
2010-08-14  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2828
 
 
2829
        esx: Explicitly disable unused floppy devices
 
2830
        floppy0.present defaults to true. Therefore, it needs to be
 
2831
        explicitly set to false when the XML config doesn't specify the
 
2832
        corresponding floppy device.
 
2833
 
 
2834
        Also update tests accordingly.
 
2835
 
 
2836
        Generate libvirt_qemu.def from libvirt_qemu.syms for MinGW builds
 
2837
 
 
2838
2010-08-14  Eduardo Otubo  <otubo@linux.vnet.ibm.com>
 
2839
 
 
2840
        PHYP: Add rudimentary network driver
 
2841
        I changed virStorage[Open|Close] to virVIOSDriver[Open|Close] so
 
2842
        the network driver can use it - since the network driver deals
 
2843
        with Open/Close in the same way.
 
2844
 
 
2845
2010-08-14  Soren Hansen  <soren@linux2go.dk>
 
2846
 
 
2847
        Make umlConnectTapDevice ask brAddTap for a persistent tap device.
 
2848
        This patch does two things:
 
2849
 
 
2850
         * It makes umlConnectTapDevice ask brAddTap for a persistent tap by
 
2851
           passing it a NULL tapfd argument.
 
2852
         * Stops umlConnectTapDevice from immediately dismantling the bridge
 
2853
           it just set up.
 
2854
 
 
2855
        Close fd's of persistent tap devices
 
2856
        When passing a NULL tapfd argument to brAddTap, we need to close the fd
 
2857
        of the tap device. If we don't, libvirt will keep the fd open
 
2858
        indefinitely and renders the the guest unable to configure its side of
 
2859
        the tap device.
 
2860
 
 
2861
        Make sure all command line arguments get passed to UML
 
2862
        If umlBuildCommandLineChr fails (e.g. due to an unsupported chardev
 
2863
        type), it returns NULL. umlBuildCommandLine does not check for this and
 
2864
        sets this as an argument on the comand line, effectively ending the
 
2865
        argument list. This patch checks for this case and sets the chardev to
 
2866
        "none".
 
2867
 
 
2868
2010-08-13  Stefan Berger  <stefanb@us.ibm.com>
 
2869
 
 
2870
        nwfilter: Discard class D,E IP addresses when sniffing pkts
 
2871
        When sniffing the network traffic, discard class D and E IP addresses when sniffing traffic. This was a reason why filters were not correctly rebuilt on VMs on the local 192.* network when libvirt was restarted and those VMs did not use a DHCP request to get its IP address.
 
2872
 
 
2873
        nwfilter: serialize execution of scripts with ebtables cmds
 
2874
        While testing the SIGHUP handling and reloading of the nwfilter driver, I found that when the filters are rebuilt and mutlipe threads handled the individual interfaces, concurrently running multiple external bash scripts causes strange failures even though the executed ebtables commands are working on different tables for different interfaces. I cannot say for sure where the concurrency problems are caused, but introducing this lock definitely helps.
 
2875
 
 
2876
2010-08-13  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2877
 
 
2878
        Only require XDR when building libvirtd or the remote driver
 
2879
 
 
2880
2010-08-13  Chris Lalancette  <clalance@redhat.com>
 
2881
 
 
2882
        Move the tunnelled migration unix socket to /var/lib/libvirt/qemu
 
2883
        Since the qemu process is running as qemu:qemu, it can't actually
 
2884
        look at the unix socket in /var/run/libvirt/qemu which is owned by
 
2885
        root and has permission 700.  Move the unix socket to
 
2886
        /var/lib/libvirt/qemu, which is already owned by qemu:qemu.
 
2887
 
 
2888
        Thanks to Justin Clift for test this out for me.
 
2889
 
 
2890
        Fix tunnelled migration with qemu running as qemu:qemu.
 
2891
        The problem is that on the source of the migration, libvirtd
 
2892
        is responsible for creating the unix socket over which the data
 
2893
        will flow.  Since libvirtd is running as root, this file will
 
2894
        be created as root.  When the qemu process running as qemu:qemu
 
2895
        goes to access the unix file to write data to it, it will get
 
2896
        permission denied and fail.  Make sure to change the owner
 
2897
        of the unix file to qemu:qemu.
 
2898
 
 
2899
        Thanks to Justin Clift for testing this patch out for me.
 
2900
 
 
2901
2010-08-12  Stefan Berger  <stefanb@us.ibm.com>
 
2902
 
 
2903
        Fix valgrind complaints when using kill -SIGHUP on libvirtd
 
2904
        This patch fixes a couple of complaints from valgrind when tickling libvirtd with SIGHUP.
 
2905
 
 
2906
        The first two files contain fixes for memory leaks. The 3rd one initializes an uninitialized variable. The 4th one is another memory leak.
 
2907
 
 
2908
2010-08-12  Daniel Veillard  <veillard@redhat.com>
 
2909
 
 
2910
        qemu: avoid calling the balloon info command if disabled
 
2911
         Basically a followup of the previous patch about balloon desactivation
 
2912
        if desactivated, to not ask for balloon information to qemu as we will
 
2913
        just get an error back.
 
2914
         This can make a huge difference in the time needed for domain
 
2915
        information or list when a machine is loaded, and balloon has been
 
2916
        desactivated in the guests.
 
2917
 
 
2918
        * src/qemu/qemu_driver.c: do not get the balloon info if the balloon
 
2919
          suppor is disabled
 
2920
 
 
2921
2010-08-12  Jiri Denemark  <jdenemar@redhat.com>
 
2922
 
 
2923
        bridge: Add --dhcp-no-override option to dnsmasq
 
2924
        --dhcp-no-override description from dnsmasq man page:
 
2925
 
 
2926
              Disable  re-use  of  the  DHCP servername and filename fields as
 
2927
              extra option space. If it can, dnsmasq moves the boot server and
 
2928
              filename  information  (from  dhcp-boot)  out of their dedicated
 
2929
              fields into DHCP options. This make extra space available in the
 
2930
              DHCP  packet  for options but can, rarely, confuse old or broken
 
2931
              clients. This flag forces "simple and safe" behaviour  to  avoid
 
2932
              problems in such a case.
 
2933
 
 
2934
        It seems some virtual network card ROMs are this old/buggy so let's add
 
2935
        --dhcp-no-override as a workaround for them. We don't use extra DHCP
 
2936
        options so this should be safe. The option was added in dnsmasq-2.41,
 
2937
        which becomes the minimum required version.
 
2938
 
 
2939
2010-08-12  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2940
 
 
2941
        esx: Improve VMX file name parsing and formatting
 
2942
        For parsing try to match by datastore mount path first, if that
 
2943
        fails fallback to /vmfs/volumes/<datastore>/<path> parsing. This
 
2944
        also fixes problems with GSX on Windows. Because GSX on Windows
 
2945
        doesn't use /vmfs/volumes/ style file names.
 
2946
 
 
2947
        For formatting use the datastore mount path too, instead of using
 
2948
        /vmfs/volumes/<datastore>/<path> as fixed format.
 
2949
 
 
2950
2010-08-11  Jiri Denemark  <jdenemar@redhat.com>
 
2951
 
 
2952
        bridge: Fix potential segfault when preparing dnsmasq arguments
 
2953
        We add --dhcp-lease-max=xxx argument when network->def->nranges > 0 but
 
2954
        we only allocate space for in the opposite case :-) I guess we are lucky
 
2955
        enough to miscount somewhere else so that we actually allocate more
 
2956
        space than we need since no-one has hit this bug so far.
 
2957
 
 
2958
2010-08-11  Matthias Bolte  <matthias.bolte@googlemail.com>
 
2959
 
 
2960
        esx: Split VMX code into a general and an ESX specific part
 
2961
        Introduce esxVMX_Context containing functions pointers to
 
2962
        glue both parts together in a generic way.
 
2963
 
 
2964
        Move the ESX specific part to esx_driver.c.
 
2965
 
 
2966
        This is a step towards making the VMX code reusable in a
 
2967
        potential VMware Workstation and VMware Player driver.
 
2968
 
 
2969
2010-08-11  Daniel Veillard  <veillard@redhat.com>
 
2970
 
 
2971
        allow memballoon type of none to desactivate it
 
2972
          The balloon device is automatically added to qemu guests if supported,
 
2973
        but it may be useful to desactivate it. The simplest to not change the
 
2974
        existing behaviour is to allow
 
2975
          <memballoon type="none"/>
 
2976
        as an extra option to desactivate it (it is automatically added if the
 
2977
        memballoon construct is missing for the domain).
 
2978
        The following simple patch just adds the extra option and does not
 
2979
        change the default behaviour but avoid creating a balloon device if
 
2980
        type="none" is used.
 
2981
 
 
2982
        * docs/schemas/domain.rng: add the extra type attribute value
 
2983
        * src/conf/domain_conf.c src/conf/domain_conf.h: add the extra enum
 
2984
          value
 
2985
        * src/qemu/qemu_conf.c: if enum is NONE, don't activate the device,
 
2986
          i.e. don't pass the args to qemu/kvm
 
2987
 
 
2988
2010-08-11  Jiri Denemark  <jdenemar@redhat.com>
 
2989
 
 
2990
        Avoid unnecessary bootstrap runs in VPATH builds
 
2991
 
 
2992
2010-08-11  Doug Goldstein  <cardoe@gentoo.org>
 
2993
 
 
2994
        Add a detailed message when tap device add fails
 
2995
        Added a more detailed error message when adding a tap devices fails and
 
2996
        the kernel is missing tun support.
 
2997
 
 
2998
        Fix return value usage
 
2999
        Fix the error checking to use the return value from brAddTap() instead
 
3000
        of checking the current errno value which might have been changed by
 
3001
        clean up calls inside of brAddTap().
 
3002
 
 
3003
2010-08-11  Eric Blake  <eblake@redhat.com>
 
3004
 
 
3005
        nodeinfo: skip offline CPUs
 
3006
        https://bugzilla.redhat.com/622515 - When hot-unplugging CPUs,
 
3007
        libvirt failed to start a guest that had been pinned to CPUs that
 
3008
        were still online.
 
3009
 
 
3010
        Tested on a dual-core laptop, where I also discovered that, per
 
3011
        http://www.cyberciti.biz/files/linux-kernel/Documentation/cpu-hotplug.txt,
 
3012
        /sys/devices/system/cpu/cpu0/online does not exist on systems where it
 
3013
        cannot be hot-unplugged.
 
3014
 
 
3015
        * src/nodeinfo.c (linuxNodeInfoCPUPopulate): Ignore CPUs that are
 
3016
        currently offline.  Detect readdir failure.
 
3017
        (parse_socket): Move guts...
 
3018
        (get_cpu_value): ...to new function, shared with...
 
3019
        (cpu_online): New function.
 
3020
 
 
3021
2010-08-10  Jiri Denemark  <jdenemar@redhat.com>
 
3022
 
 
3023
        qemu: Hack around asynchronous device_del
 
3024
        device_del command is not synchronous for PCI devices, it merely asks
 
3025
        the guest to release the device and returns. If the host wants to use
 
3026
        that device before the guest actually releases it, we are in big
 
3027
        trouble. To avoid this, we already added a loop which waits up to 10
 
3028
        seconds until the device is actually released before we do anything else
 
3029
        with that device. But we only added this loop for managed PCI devices
 
3030
        before we try reattach them back to the host.
 
3031
 
 
3032
        However, we need to wait even for non-managed devices. We don't reattach
 
3033
        them automatically, but we still want to prevent the host from using it.
 
3034
        This was revealed thanks to sVirt: when we relabel sysfs files
 
3035
        corresponding to the PCI device before the guest finished releasing the
 
3036
        device, qemu is no longer allowed to access those files and if it wants
 
3037
        (as a result of guest's request) to write anything to them, it just
 
3038
        exits, which kills the guest.
 
3039
 
 
3040
        This is not a proper fix and needs some further work both on libvirt and
 
3041
        qemu side in the future.
 
3042
 
 
3043
2010-08-10  Eric Blake  <eblake@redhat.com>
 
3044
 
 
3045
        maint: update an email address preference
 
3046
        * AUTHORS (Soren Hansen): Update address.
 
3047
        * .mailmap: Alias other addresses to new preference.
 
3048
 
 
3049
2010-08-10  Diego Elio Pettenò  <flameeyes@gmail.com>
 
3050
 
 
3051
        build-sys: only build the test programs during the check phase.
 
3052
        This avoids building the tests when testing libvirt is not the aim.
 
3053
 
 
3054
2010-08-10  Soren Hansen  <soren@linux2go.dk>
 
3055
 
 
3056
        Add "ubd" to the list of disk prefixes
 
3057
        virDiskNameToIndex has a list of disk name prefixes that it uses in the
 
3058
        process of finding the disk's index. This list is missing "ubd" which
 
3059
        is the disk prefix used for UML domains.
 
3060
 
 
3061
2010-08-10  Daniel Veillard  <veillard@redhat.com>
 
3062
 
 
3063
        Extend virSocketParseAddr() to allow a NULL result pointer
 
3064
        That way it can be used to verify a numeric address without storing
 
3065
        the details
 
3066
        * src/util/network.c: change virSocketParseAddr to allow a null @addr
 
3067
          parameter
 
3068
 
 
3069
2010-08-10  Philipp Hahn  <hahn@univention.de>
 
3070
 
 
3071
        bootloader_args is named bootargs in xen-xm
 
3072
        According to <xen-3.4.3/tools/python/xen/xm/create.py:158>
 
3073
                gopts.var('bootargs', val='NAME',
 
3074
                                  fn=set_value, default=None,
 
3075
                                  use="Arguments to pass to boot loader")
 
3076
        the "bootloader_args" parameter needs to be translated into "bootargs"
 
3077
        when using "virsh domxml-to-native xen-xm".
 
3078
        The reverse direction (domxml-from-native) is already okay.
 
3079
 
 
3080
        This patch fixes domxml-to-native and adds two test files to catch this
 
3081
        problem.
 
3082
 
 
3083
2010-08-06  Eduardo Otubo  <otubo@linux.vnet.ibm.com>
 
3084
 
 
3085
        phyp: refactor phypListDomainsGeneric to eliminate buffer overflow
 
3086
        src/phyp/phyp_driver.c:phypListDomainsGeneric was crashing due to a buffer
 
3087
        overflow if any line returned from virRun wasn't <=10 characters.
 
3088
 
 
3089
        Since virStrToLong_i recognizes any non-numeric as a terminator (not
 
3090
        just NULL), there actually is no need to copy the number into a
 
3091
        separate string anyway, so this patch eliminates that copy, the fixed
 
3092
        length buffer, and therefore the potential to overflow.
 
3093
 
 
3094
        This change also provided the oppurtunity to eliminate the character
 
3095
        counting loop, instead using the return from virStrToLong_i to point
 
3096
        past the end of the number, then simply skip the \n to get to the
 
3097
        next.
 
3098
 
 
3099
2010-08-06  Justin Clift  <jclift@redhat.com>
 
3100
 
 
3101
        docs: fix an incorrect keyword in updated hooks page
 
3102
 
 
3103
2010-08-06  Diego Elio Pettenò  <flameeyes@gmail.com>
 
3104
 
 
3105
        build-sys: fix build when daemon is disabled by not installing libvirtd.8
 
3106
        Since the rule to build libvirtd.8 is within the WITH_LIBVIRTD conditional,
 
3107
        so declare the man page in there as well. Without this change, build
 
3108
        without daemon will fail.
 
3109
 
 
3110
2010-08-06  Justin Clift  <jclift@redhat.com>
 
3111
 
 
3112
        docs: significant expansion of custom hook script information
 
3113
 
 
3114
2010-08-06  Doug Goldstein  <cardoe@gentoo.org>
 
3115
 
 
3116
        Fix return value usage
 
3117
        Fix the error checking to use the return value from brAddTap() instead
 
3118
        of checking the current errno value which might have been changed by
 
3119
        clean up calls inside of brAddTap().
 
3120
 
 
3121
        qemu: improve error if tun device is missing
 
3122
        Added a more detailed error message when adding a tap devices fails and
 
3123
        the kernel is missing tun support.
 
3124
 
 
3125
2010-08-04  Eric Blake  <eblake@redhat.com>
 
3126
 
 
3127
        build: rerun bootstrap if po/Makevars got nuked
 
3128
        There has been a frequent complaint of:
 
3129
 
 
3130
        make[2]: Entering directory `/home/remote/eblake/libvirt/po'
 
3131
        make[2]: *** No rule to make target `/config.status', needed by `Makefile'.  Stop.
 
3132
 
 
3133
        It happens after nuking and regenerating the po directory,
 
3134
        which is a common action after running anything like
 
3135
        'make dist' or 'make rpm' that dirties all the .po files.
 
3136
 
 
3137
        Teach autogen.sh that it must regenerate po/Makevars to avoid
 
3138
        the missing variable declaration, and teach cfg.mk to recognize
 
3139
        that a nuked po directory is cause to rerun autogen.sh.
 
3140
 
 
3141
        * cfg.mk (_update_required): Check for po/Makevars.
 
3142
        * autogen.sh (bootstrap): Run bootstrap if it got lost.
 
3143
        Diagnosed by Justin Clift.
 
3144
 
 
3145
2010-08-04  Daniel Veillard  <veillard@redhat.com>
 
3146
 
 
3147
        Do not use boot=on on IDE device
 
3148
        the followup on the boot=on problem, basically it's not needed to
 
3149
        specify it when booting out of IDE devices when using KVM
 
3150
        * src/qemu/qemu_conf.c: do not use boot=on for IDE devices
 
3151
        * tests/qemuxml2argvdata/qemuxml2argv*.args: this changes the output
 
3152
          for 5 of the tests
 
3153
 
 
3154
        Release of libvirt-0.8.3
 
3155
        * configure.ac docs/news.html.in libvirt.spec.in: updates
 
3156
        * po/*.po*: update and regenerated
 
3157
 
1
3158
2010-08-04  Jiri Denemark  <jdenemar@redhat.com>
2
3159
 
3
3160
        qemu: Fix PCI address allocation